måndag 21 september 2015

Koordinattransformation! Eller Var i hela världen är vi?

Allting du ritar i AutoCAD hamnar på koordinater. Även om du inte bryr dig om vilka koordinater det är. I de allra flesta fallen bryr sig mina kunder om vilka koordinater objekt hamnar på, det tillhör ett av de vanliga problemen jag får ta hand om, filer som hamnar på fel ställe.

Men ibland vill man flytta hela schabraket till ett annat ställe. Under de senaste fem-sex åren verkar de flesta kommuner gått över till koordinatsystemet SWEREF. Oftast är det inga problem för projekt som startas nu, men det kommer alltid dyka upp filer som skapades innan transformationen som då är i fel koordinatsystem.

Eftersom AutoCAD alltid använder koordinater så är det inte så långt steg att tycka att man borde kunna transformera mellan koordinatsystem med hjälp av AutoCAD. Tyvärr har inte AutoCAD någon funktion för att göra en koordinattransformation automatiskt. Så om du ska göra det i AutoCAD så är det Move och Rotate som gäller - då kan Lantmäteriets Koordinattransformationsverktyg hjälpa till: www.lantmateriet.se/sv/Sjalvservice/Koordinattransformation/

Om du istället har AutoCAD Civil 3D eller AutoCAD MAP 3D så finns det inbyggd funktionalitet för att göra en koordinattransformation.

Det första du behöver göra är att ange koordinatsystemet på din befintliga fil, det gör du genom i Drawing Settings (DRAWINGSETTINGS el. högerklick på ritningsnamnet på Tool Space/Settings-fliken). På första fliken, Units and Zones anger du koordinatsystem. Stängs sedan filen.

Öppna en helt ny fil och ställ in koordinatsystemet i Drawing Settings. Här ska du alltså ställa in det koordinatsystem du vill transformera TILL.

När vi nu kommer in själva transformationen så beskriver jag det ur ett Civil 3D-perspektiv.

Öppna först MAP Task Pane, enklast genom kommandot MAPWSPACE > On.
I Task Pane, gå till Map Explorer-fliken och högerklicka på Drawings och välj Attach. (om du inte får upp en dialogruta här, se längst ner i denna text!) Leta fram filen som du vill transformera. Klicka på Add och sedan OK. Ritningen ska nu ligga under Drawings i Map-panen, om ikonen framför ritningen är ljusgrå så behöver du högerklicka på den och välja Activate.

Tillbaka till Task Pane, högerklicka på Current Query (finns under Query Library) och välj Define.


Klicka på Location-knappen, välj All och OK

Bocka i Draw-alternativet och klicka till sist på Execute Query. Om inget händer och det står längst ner i dialogen "Query source is not available or empty" så behöver du högerklicka på ritningen i Map Pane och välja Activate. Gör sedan om Query-delen.

Gör en Zoom Extents och du bör se din ritning och nu ska de ligga på nya koordinater.

Gå tillbaka till Task Pane och högerklicka på ritningen under Drawings och välj Detach.

När du sparar filen kommer du kanske få en varning som säger The association between queried objects .. will not be retained once this file is closed. Detta är precis vad vi är ute efter så klicka OK.



Om du inte får upp någon dialogruta när du kör Attach, så saknas en sökväg. Gå då in i OPTIONS, till fliken Files, öppna Support File Search Path och lägg till sökvägen: c:\program files\autodesk\autocad <version>\map\support\en-us. Klicka OK och starta om programmet. Mer information Finns Här!

Brasklapp! Av egen erfarenhet så finns det olika sätt att transformera koordinater - olika program gör det på olika sätt vilket leder till att det kan bli olika resultat beroende på vilket program man använder. Civil 3D och MAP 3D använder sin metod, jag garanterar inte på något sätt att det är exakt som Lantmäteriet anser att det ska göras. Kontrollera ert resultat! 

tisdag 8 september 2015

Begränsa ytor! Eller Varför skapar Civil 3D så många trianglar?

Någon sa någon gång att en dag som man har lärt sig något nytt är en bra dag. Så om jag har lärt mig något nytt innan 9 på morgonen så måste det vara en riktigt bra dag!

En grundsten i att hantera ytor (Surfaces) i Civil 3D är att programmet vill triangulera så mycket den bara kan. Detta är oftast en bra inställning, när vi får in punkter så gör programmet en vild triangulering och sen får användaren gå in och peka ut var det inte ska vara någon triangulering.

Specialfallet av detta är när man får 3DFaces som underlag. 3DFaces ser väldigt mycket ut som en färdig triangulering, man vill oftast bara duplicera samma triangulering till en surface. Då blir det oftast problem när Civil 3D gör en egen triangulering, baserad på alla ändpunkterna av 3DFaces-trianglarna.

Det finns en inställning och en funktion som hjälper med detta.

Inställningen är Maintain edges from objects och du hittar den när du lägger in 3DFaces i ytan.

Den gör att Civil 3D skapar trianglar efter 3DFaces-trianglarna.

Det som är kvar då är de långa trianglarna  i ytterkanterna på Surfacen. Det finns några olika metoder för att begränsa triangellängden. Den enklaste metoden är att begränsa triangellängden. Det gör man i Surface Properties, på Definition-fliken, under Build-avdelningen. Denna begränsning slår på alla trianglar, så har man långa trianglar mitt i en yta så fungerar inte denna metod speciellt bra. Jag tycker denna metoden passar som en första, grov trimning av ytan.

Man kan gå in och ta bort triangel för triangel, det gör man med DeleteSurfaceLine (Surface-ribbonet > Edit). Det är den mest tidskrävande och mest finlirande av metoder. Jag rekommenderar det som en sista finputsning eller om det bara är några få trianglar som ska bort.

Metoden som jag föredrar är att lägga in en begränsningslinje på en yta. Det gör man med AddSurfaceBoundaries (Surface-ribbonet > Add Data > Boundaries). Först behöver man rita en linje som kommer att fungera som den nya yttersta linjen för ytan. Den linjen kan vara en platt 2D Polylinje utan någon nivå, men den behöver vara sluten.

Nu till det nya jag har lärt mig idag!

Just för 3DFaces är det lite unikt för man har i princip redan en yttre gräns, man vill oftast inte att ytan ska sträcka sig utanför de objekt man har. Då finns det ett kommando som heter LineWorkShrinkWrap som skapar en linje runt de objekt man väljer, vilket då blir en perfekt ny yttre gräns för ytan.

torsdag 3 september 2015

Vikten av att använda en DWT

En av de vanligare frågorna jag får som CAD-support handlar om filer som är långsamma, hackiga, allmänt knasiga. Det tillhör också de frågor som är ofta är väldigt svåra att lösa. Jag tror stenhårt på att om man startar sin fil på rätt sätt och lägger lite tid i början för att sätta upp projektet på rätt sätt och lägger tid på att rensa alla filer innan man börjar använda dem så får man bättre fungerande filer.

Så grundtesen är att alltid starta en ny fil från din mallfil. Alltid.

Innan du tar in några objekt i din ritning rekommenderar jag starkt att du städar den filen! Annars är risken att du tar med onödiga inställningar och styles till din nya fina fil! Hur jag rekommenderar att du gör finns HÄR. 

Alla objekt som du behöver använda ska du sedan ta in i din fil. Hur du gör det beror på vad du ska göra med de objekten. Grovt delat finns det två grupper av objekt: objekt du vill ha som bakgrund medan du projekterar och objekt du vill fortsätta arbeta med.

A) Objekt du vill ha som bakgrund

A-1) Civil 3D objekt. 
För Civil 3D objekt som du vill ha som bakgrund rekommenderar jag att du använder Data Shortcuts. Längst ner i Tool Space finns en avdelning för Data shortcuts. Genom att högerklicka på Data Shortcuts-headingen så hittar du de kommandon du behöver för att använda Data Shortcuts. Du får då in dina objekt i din ritning, med en aktiv länk till den ursprungliga ritningen så om nånting ändras i den ursprungliga filen så kommer de ändringarna slå igenom i din fil.

A-2) AutoCAD objekt
För filer som enbart innehåller AutoCAD-objekt så använder ni Externa Referenser (X-ref) för att ta in dem. Då får ni en aktiv länk till ursprungsfilen så om den ändras så slår ändringarna igenom i din ritning också.

B) Objekt du vill arbeta med

B-1) Civil 3D objekt
Den enklaste metoden i mitt tycke är att använda kommandona LANDXMLOUT och LANDXMLIN. I den filen du har objekten använder du LANDXMLOUT (finns på Output-fliken), bockar för de objekt du vill använda och väljer var du ska spara XML-filen. Sedan kör du LANDXMLIN i din egen fil och tar in dina objekt.

B-2) AutoCAD objekt 
I filen där du har dina objekt, använd WBLOCK för att ta med dig enbart de objekt du vill ha till en ny DWG. Använd sedan INSERT för att sätta in den filen i din egen fil.

När du sätter in objekt i din fil behöver du ha lite koll på koordinaterna så att allt hamnar på rätt ställe. Titta på statusraden i den ursprungliga filen så ser du koordinaterna för dina objekt, försäkra din om att de hamnar på samma ställe när du tar in dem i din fil!