Teksten kunnen rare objecten zijn in AutoCAD. Dat zou je niet verwachten, van die simpele dingen, meer dan een stukje tekst op een bepaalde locatie in de tekening is het ook niet. Maar toch zal het je verbazen. Om te beginnen kijken we eerst eens naar een paar verschillende tekst-objecten:

Vraag je in Dynamo de positie op, dan kan dit op twee manieren. De generieke Object.Location uit de code nodes en de Text.Position node van The Civil Nodes.

Je ziet ook dat de uitlijning bij alle teksten anders is. Gek genoeg lijkt de tekst-positie altijd te verwijzen naar het linker-onder punt en niet naar het invoegpunt. Sluit je in AutoCAD iets aan op het invoegpunt van een tekst, dan zit het invoegpunt niet op de plek die wordt aangegeven als tekst-positie.

Er is ook een Text.AlignmentPoint node in de core nodes te vinden, deze lijkt wel het invoegpunt aan te geven.

Maar… niet als de uitlijning ‘BaseLeft’ is, de standaard uitlijningsinstelling voor teksten. In dat geval wordt de locatie 0,0 getoond.

Het uitlijningspunt wordt ook gebruikt als de teksten een andere schaal krijgen. Annotatieve teksten worden niet om de locatie maar om het uitlijningspunt verschaald.

Vraag voor de grap nog maar eens de Text.Position en de Text.AlignmentPoint op en je zult zien dat de laatste niet is veranderd maar de Text.Position wel. Dit vergt wat van je inlevingsvermogen want gevoelsmatig zijn de teksten niet van positie veranderd tijdens de verschaling.

Locatie aanpassen

Het kan nog gekker. Pas je de locatie aan met de node Object.SetLocation, dan worden alleen de teksten verplaatst die geen afwijkende uitlijning hebben! De andere tekst-objecten blijven dus gewoon staan waar ze stonden. Dat is niet alleen raar, maar ook lastig. Je kunt ze dan alleen verplaatsen met een Object.Move of een Object.Transform node. Omdat je verder geen foutmeldingen krijgt in Dynamo, weet je dus niet dat de teksten niet zijn verplaatst.

Annotatief

Let ook vooral op bij annotatieve teksten. Annotatieve objecten kunnen per schaal een andere locatie hebben. Gebruik je de Object.SetLocation node en hebben je teksten meerdere schalen, dan wordt de tekst alleen in de actieve schaal naar de gewenste positie geplaatst (en uiteraard als de uitlijning niet afwijkend is ingesteld). Switch je terug naar een van de andere schalen, dan staat de tekst weer op die plek waar het eerst ook stond.

Om dit te voorkomen kun je beter de Object.Move node gebruiken, waarbij dit fenomeen niet optreedt.

Altijd juiste locatie

Met Dynamo is het overigens niet heel moeilijk om altijd de juiste locatie op te vragen. Als het uitlijningspunt gelijk is aan 0,0, dan geef je de Text.Position, en anders de Text.AlignmentPoint:

Wil je complexe of repetitieve taken automatiseren in Civil 3D? Dit boek helpt je alles te leren over de design automating tool Dynamo voor Civil 3D. Je wordt een professional in visueel programmeren, en binnenkort zijn al je saaie of complexe taken geautomatiseerd! This book is only available in English.