Visar inlägg med etikett Macro. Visa alla inlägg
Visar inlägg med etikett Macro. Visa alla inlägg

tisdag 1 september 2020

Skapa en egen Panel eller Hur man Glömmer sin CUI-fil varenda år!

Numera är jag ett fan av att använda Civil 3D och AutoCAD med orginal-utseendet, men det ska erkännas är mest för att jag installerar om min Civil 3D x antal gånger om året. När jag satt som projektör (för 7 år sen ganska precis, time flies!) och det som var viktigt var att jag var effektiv, då hade jag egna macron och egna paneler. Och det är en uppenbar fördel med att göra en egen panel där man kan ha de funktioner man använder oftast, då behöver man inte leta efter sina funktioner utan de finns alltid där. Det gäller bara att komma ihåg att ta med sig det när man väl uppgraderar... om man inte glömmer det, då kan man gå tillbaka till min fina lista nedan med de stegen du behöver för att skapa din panel igen. 

Let us begin!

1. Skapa en Panel

Alla funktioner vi behöver för detta finns i CUI-panelen, som du startar genom att skriva CUI på kommandoraden. 
CUI-panelen består av två flikar, Customize och Transfer (grön markering). På Transfer-fliken skapar och installerar du din CUIx-fil, på Customize-fliken skapar du innehållet i CUIx-filen. 







Vi börjar på Customize-fliken, gå ner under Ribbon (Blå markering) i översta vänstra avdelningen och högerklicka på Panels för att skapa en ny panel. 

2. Populera din Panel.

Nu kommer vi till det roliga! På den panelen du just har skapat kan du placera kommandon. Alla kommandon finns i rutan längst ner till vänster (röd-markering). När du har valt ett kommando så ser du information om det kommandot i rutan till höger. För att lägga kommandot på din panel så klicka-och-dra från nedre området till din panel. Du kan skapa Rows, Sub-panels, Drop-Downs och all that jazz genom högerklick på din panel och på dess rader. När du har ett kommando på din panel så kan du ändra storlek och namn på det kommandot i den högra avdelningen. 

Här kan du skapa din panel precis som du vill! 

3. Placera din Panel och testa. 

När du har din panel som du vill ha den så ska du placera den på en flik. Flikarna, eller Tabs, finns också under Ribbon (blå markering). Klicka och Dra din panel och placera den på den Tab du vill. Du kan klicka-och-dra och scrolla samtidigt genom att hålla din klick-och-dra i överkanten på listan så kommer det börja scrolla. 

Yep, det är precis som irriterande som det verkar. 

Använd Apply för att se dina ändringar, och gå tillbaka in i CUI för att redigera din panel. 

4. Spara din panel

Kanske den viktigaste delen av denna beskrivning och den som man gärna glömmer - jag vet att jag har gjort det alldeles för många gånger för att erkänna. 

När du är klar med din panel, gå tillbaka in i CUI och gå till Transfer-fliken (grön markering). På höger sida har du en ny CUIx-fil, hitta din panel på vänster sida och klicka och dra den till höger sida. Klicka sedan på Spara och spara på ett lämpligt ställe. 

När du uppdaterar din dator och får en ny AutoCAD eller Civil 3d så startar du CUI, går till Transfer-fliken, öppnar din CUix-fil (som du såklart har sparat på ett mycket logiskt ställe så att du kommer ihåg var den är eller hur?) och klickar och drar din panel från höger till vänster. Vips! Så har du din egen panel igen!

tisdag 30 april 2019

Macro för rotera viewport eller Let's twist again!

Idag blir det ett rent AutoCAD-tips faktiskt, även om vi använder det i Civil 3D.

Jag fick en fråga igår från en kund om hur ritningshanteringen går till i Civil 3d, och tyvärr så måste jag svara att ritningshanteringen i det stora hela går till precis som den gör i AutoCAD.

Ritningshanteringen i AutoCAD är inte svår, den är mest omständlig och kräver att man gör allt i rätt ordning och alltid gör samma sak. Det finns dessutom många sätt att hantera sina ritningar på, som mycket annat i AutoCAD så leder alla vägar till Rom, men det finns många vägar till Rom. (jag rekommenderar med tåg över/genom bergen genom Österrike, men igen, eget inlägg)

Idag diskuterade jag också ritningshantering, speciellt hur man roterar sin modell för ritdeffen och de kommandona jag använde insåg jag snabbt att man kan lägga ihop till ett macro, så det är dagens inlägg: ett macro för att rotera din modell och zooma in i en viewport. Och jag tänkte använda detta för att visa lite hur man kan göra macros generellt- jag har skrivit om detta tidigare, så det blir säkert en liten repetition för en del av er.

Några frågar du kan ställa dig innan du börjar:

Kan jag göra detta till ett macro?

Alla funktioner som lever på kommandoraden är enkla att göra om till macro, så så länge du inte blandar in några dialogboxar så kommer det gå galant.

Är det lönt att göra ett macro?

Om det är en serie av kommandon som du gör upprepade gånger så är det oftast lönt att göra macrot. Både för att spara tid och för att komma ihåg att alltid göra funktionerna i rätt ordning. Angående tids-aspekten så gillar jag XKCDs diagram över tidsvinst: https://xkcd.com/1205/


Hur du börjar:

Gör de funktioner du vill sätta ihop och skriv ner hur du gör. I mitt fall vill jag ställa in ett eget UCS längs en utsnittsruta, vrida vyn till det UCS, ställa tillbaka UCS till World och sist zooma till utsnittsrutan. Jag börjar med att skriva alla kommandon på kommandoraden, och medan jag skriver det på kommandoraden så skriver jag samma saker i ett Notepad/Anteckningar-fönster. Notepad är kung för detta, det minimerar risken för att formattering av text bråkar med dig.

Varje mellanslag/enter skriver jag som ett
Varje gång jag behöver klicka något på skärmen skriver jag ett \
Mitt första utkast på macro blev då UCS;\;plan;;ucs;w;zoom \\

Om ni testar det så kommer ni se att det inte fungerar. Den enklaste metoden för att testa sitt macro är att klistra in texten på kommandoraden och se vad som händer. Jag behöver väl inte säga att ni ska se till att spara ritningen och helst inte ha en "riktig" ritning uppe medan ni gör det här? Bra.

För att testa ett macro är det enklast att ta det i steg. Jag började med att få UCS-delen att fungera, tog alltså bara UCS;\; och klistrade in på kommandoraden och ändrade i macrot tills jag fick in alla enter-slag och \ på rätt ställe.

Till slut, efter lite testande, så fick jag detta: ^C^CUCS;\\;plan;;UCS;w;zoom;
Notera att det numera också börjar med ^C^C, det är för att macrot ska avbryta eventuell funktion som är igång innan den startar själva macrot.

För att sedan skapa en knapp så är det CUI-dialogen som gäller, skapa funktion, lägga in macrot, skapa en panel, lägga in knappen på panelen, lägga panelen på en tab, badabing badaboom!


Det är riktigt tillfredställande att få ihop ett riktigt snyggt macro som gör precis det man vill!

onsdag 30 januari 2019

Dela med sig av egna macro-knappar eller Captain Buttonbeard!

Detta blir till en viss del en uppdatering av ett gammalt inlägg, hur man skapar en egen knapp i Autocad med tillagd information om hur du delar med dig av den supergrymma knappen som du just gjorde!

Allt detta görs inne i en och samma dialog som du kommer till med funktionen CUI

Skapa funktionen: 
Du skapar ett kommando först, med den rödmarkerad stjärn-knappen. På höger sida får du då fylla i allt om hur du vill att din funktion ska fungera. Vad den ska heta, vad som ska visas i Tooltipet (förslagsvis hur funktionen ska användas) och vilken ikon funktionen ska ha. Du kan ha flera funktioner med samma ikon så du kan utan problem välja en bild i övre delen av dialogen - eller så har du en egen bild förberedd.
I Macro-rutan ska du skriva in din funktion, i mitt exempel använder jag Mitt Favorit Macro.


Lägga in funktionen på en panel, lägga panelen på en flik: 

När kommandot är klart så ska det läggas på en panel. Jag har skapat en egen panel här genom att högerklicka på Panels och välja New. Sedan klickar och drar du funktionen från nedre vänstra avdelningen upp till din panel. När knappen väl ligger på panelen så bestämmer du till höger hur knappen ska se ut på panelen.
Sedan lägger jag panelen på en flik eller tab. Samma förfarande, skapa en tab genom att högerklicka på Tabs och dra sedan panelen från Panel-avdelningen till din nyskapade Tab. Du behöver inte skapa en tab, du kan lägga in panelen på en befintlig tab också. 


Ska du bara använda din funktion på din dator så är du klar nu, men om du ska dela med dig av din super-duper fina funktion (eller spara ut din funktion om du ska installera om Civil 3D) så är det några steg till: 

Spara funktionen, panelen och fliken till en CUI: 

I CUI-funktionen finns också en Transfer-tab högst upp. Där har du dina tabs och paneler på vänster sida och på höger sida har du en tom CUIx-fil. Hitta din tab eller panel och dra över den från vänster sida till höger sida, klicka sedan på Spara-knappen högst upp. Om du drar tabben så får du med panelen och funktionen så du behöver bara flytta det högsta objektet så att säga. 

Det är denna CUIx-fil som du kan skicka till dina kollegor eller spara på något lämpligt ställe inför ominstallation av din egen dator. 


Läs in din flik, panel och funktion till en ny dator.

Öppna CUI-dialogen på den andra datorn. Om du tog en hel en tab så kan du ladda in CUIx-filen genom att högerklicka på Partial Customization File och hitta din CUIx-fil. 
Om du bara gjorde en panel så behöver du gå till Transfer-fliken och göra tvärtom hur du gjorde alldeles nyss, alltså öppna din egna CUIx-fil på högersida, dra panelen från höger till vänster och lägg den under Panels. Till sist gå till första fliken och lägga panelen på den befintliga fliken där du vill ha panelen. 




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!

måndag 29 juni 2015

Mitt Favorit Macro

Det finns några saker jag tjatar om, en av dessa är att rensa sina filer. Det har jag tjatat om i många år till alla som vill lyssna. Nu när jag håller kurser och besöker kunder så dyker det alltid upp, och jag försöker trycka hårt på att man sparar tid om man håller sina filer i trim. Ett sätt att göra det enkelt för sig är att använda ett macro.

Det som jag rekommenderar att man gör är framförallt att köra kommando Audit och Purge. Problemet är att Purge måste man göra på några olika sätt för att få bort allting, alltså är det enklast att lägga det på en knapp så behöver man inte komma ihåg alla varianter. 

MACROT
Enklaste sättet att ta reda på vad man ska skriva i macrot är att dra igenom alla kommandon för hand först, och anteckna i Notepad vad man skriver på kommandoraden. För Purge brukar det se ut ungefär så här:

-pu;A;;N;

Minustecknet används för att öppna kommandot på kommandoraden, semicolon är samma sak som Enter. Sen tar man nästa omgång av Purge för att ta bort regapps

-pu;R;;N;

Sedan Zero-length geometry, Empty text objects och Orphaned data:

-pu;Z;-pu;E;-pu;o;

Efter att alla Purge är klar kör jag en Audit och avslutar med en Save

audit;Y;qsave

Så totalt kommer mitt macro se ut så här: 

^C^C-pu;A;;N;-pu;R;;N;-pu;Z;-pu;E;-pu;O;audit;Y;qsave;

Jag har ^C^C i början för att avbryta alla eventuella kommandon som pågår. 

CUI

För att skapa ett kommando av ditt macro och lägga det på en knapp så använder du Customize User Interface - kommando CUI för att öppna nedanstående dialogruta. 



I den rödmarkerade rutan ser du alla flikar och paneler på ditt Ribbon. I den blåmarkerade rutan har du en lista på alla kommandon. I den grönmarkerade rutan ser du mer information när du markerar något i den blå eller röda rutan. 

För att skapa ett kommando klickar du på stjärnan med en sol på i den blå rutan. Markera sedan det nya kommandot så ser du information om kommandot i den grönmarkerade rutan. 

I raden för macro skriver du in macrot. Välj en bild för ditt kommando - eller välj en befintlig. 

I den rödmarkerade rutan letar du upp den panelen du vill lägga kommandot på - eller skapar en egen panel som du sedan lägger på flik. När du har hittat panelen nu vill lägga ditt kommando på så klickar och drar du kommandot från den blåmarkera rutan till den rödmarkerade. 

När allt är klart klickar du Apply och Ok. Testkör din nya knapp och kontrollera på kommandoraden att du skrivit allt rätt. 


Detta är en grund-rensning som jag tycker man ska göra på alla sina filer med jämna mellanrum. När jag arbetade i verksamheten så döpte jag detta kommando till Gå Hem! och lade till en ikon med ett ölglas på, sedan la jag in knappen på alla mina kollegors datorer. De flesta hade ingen aning om vad knappen gjorde men de visste att de skulle klicka på ölglaset så ofta de kunde!

Jag själv hade några varianter av detta rensnings-macro, jag la till Zoom > Extents på några, jag la till LAYON och LAYTHW för att tina och tända alla lager.