In een eerdere blog is uitgelegd hoe je de standaard werkhoogte kunt aanpassen met de variabele ELEVATION. Nu is het wel handig om ergens te kunnen zien wat de actuele waarde ervan is, als je deze variabele vaak aanpast. In AutoCAD kun je een stukje programmeren om zo’n waarde op de Status Bar te tonen, onderaan in je scherm waar ook de Layout tabs worden getoond.
Met het hamburger-menu knopje kun je al veel zelf kiezen wat je zien wilt, bijvoorbeeld de Coordinates van de cursor, de Snap instellingen of de Annotation Scales. Maar je kunt dit zelf ook aanvullen met een korte programmeeropdracht. Dit doe je met het commando MODEMACRO. Er wordt gevraagd om een tekst, en alles wat je opgeeft zal in de Status Bar worden getoond.
Erg bevredigend, al zeg ik het zelf. Maar het verveelt wat op de lange duur. Het is niet echt functioneel. Maar gelukkig kun je ook andere teksten plaatsen. De ModeMacro kan namelijk teksten plaatsen die zichzelf evalueren. Hiervoor wordt de programmeertaal DIESEL gebruikt. Dit is een heel beperkte taal die een tekst evalueert en de gebruikte functies in die tekst omzet naar weer te geven tekst.
En zo kun je een variabele tonen op de Status Bar, met de volgende expressie:
Het dollar-teken is een signaal dat erna een DIESEL instructie volgt. De aanroep ‘getvar’ is een functie om een variabele op te vragen, en wel variabele ‘ELEVATION’. En zo wordt op de Status Bar de hoogte getoond die de variabele ELEVATION bevat. Zodra je de waarde van deze variabele aanpast, zal ook direct de tekst op de Status Bar worden bijgewerkt. Dit is dus een mooie oplossing voor de vorige blog, hoe je inzichtelijk maakt op welke hoogte je eigenlijk aan het tekenen bent.
Een andere interessante macro is:
$(getvar, CLAYER)
Hiermee wordt de actieve laag getoond waarin gewerkt wordt.
Je hoeft het niet te beperken tot één variabele, je kunt ook meerdere variabelen tonen. Bijvoorbeeld:
Inlog: $(Getvar,LOGINNAME) | Profiel: $(Getvar,CPROFILE) | Workspace: $(Getvar,WSCURRENT)
Om je loginnaam, het huidige profiel en de gebruikte Workspace te tonen. Maar ja, vermoedelijk allemaal waarden die je toch al weet, en zeker niet voortdurend hoeft te checken. In het algemeen is het tonen van een enkele variabele vaak het meest handig, en persoonlijk vind ik de actieve laag het meest interessant.
Je kunt ook beperkt programmeren, bijvoorbeeld een if-then statement:
Actief commando: $(if,$(eq,$(getvar,CMDNAMES),""),doe momenteel niets...,$(getvar, CMDNAMES))
Hier worden nogal wat functies genest. Er wordt gekeken of de variabele CMDNAMES gelijk is (‘eq’) aan een lege string (“”), zo ja dan wordt de tekst “doe momenteel niets…” getoond, en anders wordt het actieve commando getoond. Leuk, maar echt nuttig? Maar wie een beetje voorzien is van een creatieve mind, voelt intussen vast de talloze mogelijkheden opborrelen.
Altijd al plug-ins willen maken voor AutoCAD? Dan is dit het boek dat je nodig hebt om dat te leren. Het helpt je om plug-ins te ontwikkelen in de .NET taal C# met behulp van Visual Studio. This book is only available in English.