onsdag 13 december 2017

Ett udda macro Eller It doesn't matter if you're black or white.

Idag blir det ett macro!

När man är AutoCAD-nörd så blir man himla glad när man får AutoCAD att göra precis som man har tänkt sig. Jag har haft detta macro tidigare men i och med datorbyte och sånt så har jag tappat det, så lite återskapande och googling krävdes för att få ordning på det.

Men vi börjar lite från början - och detta är min väldigt basic nivå av kunskap när det kommer till programmering så jag ber om ursäkt från början om jag förenklar något alldeles för mycket.

Man kan säga att allt som man gör upprepade gånger i AutoCAD kan automatiseras. Det stämmer framförallt för alla kommandon som man kan sköta på kommandoraden. Du kan klistra in kod direkt på kommandoraden för att få AutoCAD kan göra som du vill. Och ibland räcker det, men det är oftast enklare i det långa loppet att lägga den kodning på en knapp som ett macro.

Grunden i macro-byggande är att du skriver macrot som du skriver det på kommandoraden och mellanslag eller semi-colon representerar enter-slag. Macron kan innehålla flera funktioner i följd och kan komma ihåg information mellan funktionerna.

Macrot som jag skapade idag ska både byta bakgrundsfärg i ritytan och tema-färg på ribbonet och paletterna. Just detta är inte funktioner faktiskt utan variabler, men det fungerar på precis samma sätt.

Det första man behöver göra är att hitta funktionen eller variabeln som gör det man är ute efter. Om det är funktion man använder så ser man på kommandraden vad funktionen heter. Om det är en tick-box man vill ändra på så kan det finnas ett tool tip där det står vilken variabel som gäller. Annars är det letande i Help-filen eller Google som gäller. Om det är en variabel som man är ute efter så kan man leta i System Variable Dialog (kommando SYSVDLG), den är inte super-rolig att leta i men har man lite koll på vad variabeln kan heta så går det ganska bra.

Idag var det variablen COLORTHEME som jag behövde, den bestämmer tema-färgen bakom ribbonet och paletter. Backgrundsfärgen är lite svårare, det är en miljö-variabel. Fråga mig inte vad som är skillnad mellan miljö-variabel och vanliga variabler. Google is your friend!

För att klura ut hur jag ska skriva macrot så börjar jag med att skriva hur jag tror det ska fungera i Anteckningar/Notepad och sedan klistrar jag in den texten på kommandoraden och ser om det jag vill ska hända händer.

Dagens macro behövde en extra funktion. När jag testade macrot så slog inte förändringen igenom förrän jag flippade till Layout-fliken och sedan tillbaka igen. Det finns säkert andra funktioner som skulle tvinga fram samma regenerering men jag valde att använda TILEMODE=0 (gå till senast aktiva layouten) och sedan TILEMODE=1 (gå till model space)

Så totalt blir mina macro då:

Svart bakgrund: ^C^Ccolortheme 0 (setenv "Background" "0") tilemode 0 tilemode 1

Vit bakgrund: ^C^Ccolortheme 1 (setenv "Background" "16777215") tilemode 0 tilemode 1


Nu är detta väldigt specifika macron. Byta bakgrundsfärg är nog inget som de flesta gör speciellt ofta men för mig så gör jag detta nästan varje dag. Vit bakgrund passar bäst när jag tar screenshots och håller presentationer på projektor - men jag vill ha svart bakgrund när jag jobbar själv.

Sidenote: frågan kommer ibland om vilket man ska ha, svart eller vit bakgrund. AutoCAD kommer som standard idag med en mörkgrå bakgrund, min gissning är att det ska vara lättare för ögonen. Man kan sätta precis vilken färg man än vill ha på bakgrunden, men vitt och svart är det två vanligaste. Vilken man ska ha?

Såna här frågor brukar jag svara med att säga att det är som Apple och Android. Det spelar egentligen ingen roll - men de flesta är helt övertygande om att deras inställning är det korrekta och alla andra har fel!

Inga kommentarer:

Skicka en kommentar