Visst ni att man kan exportera ledningar till SHP? Ja okej, det är ingen nyhet. Visste ni att ledningarnas Invert-nivå blir fel? Jag hoppas ni visste det, men jag visste det inte.
Tydligen är detta en känd bugg, det som händer är alltså att ledningarnas Centerline-elevation används som VG (Invert) för ledningarna vid SHP-export.
Men som tur är så finns det en väg runt det här, och varning, detta är en sån där lösning som jag gillar men som är en smula omständlig. Jag har försökt tänka ut en bättre lösning, men jag hittar inget. Om ni vet en bättre lösning så hoppas jag ni meddelar mig så får jag lära mig nåt nytt!
Och jag ska också erkänna att jag kom inte på detta själv, varken problemet eller lösningen. Problemet kom från en kund, lösningen kommer från en film som ni hittar här:
https://cadpilot.com/home/resources/video-training/civil-training-on-the-web/civil-3d-pipes/correct-civil-3d-pipes-export-to-esri-shp.html
Filmen är väldigt pedagogisk så det är enkel att följa. Jag har testat det och det fungerar alldeles utmärkt när jag testar med mina ledningar. Om ni hellre vill följa en nedskriven beskrivning så har jag den nedan.
I princip är gången så här: Exportera till SDF > Importera SDF-filen > Räkna om ledningarnas VG till den riktiga VG > Exportera till SDF > Importera SDF > Exportera till SHP (Jag sa ju att det var en smula omständligt)
1. Använd ExportToSDF för att exportera ledningsnäten till en SDF-fil.
2. Använd MapWSpace för att öppna Task Pane. Använd Data > Connect to Data > Add SDF Connection och lägg till den exporterade SDF-filen > Add to Map för att se informationen din ritning. (Här kan du se att VG och Centerline är fel)
3. Markera Pipes-lagret i Task Pane och klicka på Table i Task Pane för att öppa Data Table.
4. Längst ner i dialogen hittar du Options > Create a Calculation. Sätt namn till Start_Invert_2 (eller annat lämpligt namn) och använd Property-knappen och Operator-knappen för att skapa ekvationen: StartInvert - (InsideDiameter / 2), klicka OK. Nu har du ytterligare en kolumn i Data Table som ska visa korrekt VG.
5. Klicka på Options igen, nu får du välja Manage Calculations och sedan klicka på New Calculation för att skapa kolumnen för End_Invert2, motsvarande ekvation men med EndInvert.
(5.5 nu är det ju läge att kolla att de nya VG-värdena är rätt mot ditt Civil 3D-original-pipe network)
6. I Task Pane högerklicka på Pipes-raden och välj Export Layer Data to SDF.
7. Använd MapImport och importera den senaste exporterade filen. I Import-dialogen klicka i Data-kolumnen > klicka i Create Object Data > Select Fields > klicka i de fälten som du vill importera (alltså inte det felaktiga VG-värdet, men se till att få med det korrekta, beräknade fältet)
8. Nu har du linjer i din fil med rätt VG-värden på, nu är det dags att exportera till SHP med MapExport, se till på Data-fliken välja Attributen som ska med.
Nu har du en SHP-fil med rätt värden!
Medan jag skrev det här så insåg jag att ett alternativ till denna, minst sagt omständliga metod är att flytta alla ledningar nedåt med halva diametern och sedan exportera ledningarna till SDF och sedan till SHP - men då gäller det komma ihåg att flytta tillbaka ledningarna när du är klar!
tisdag 19 maj 2020
torsdag 26 mars 2020
AutoCAD 2021
Det är den tiden på året när Autodesk släpper sina nya versioner, och först ut är AutoCAD 2021. Du kan läsa hela Release Notesen Här men jag skriver lite kort om nyheterna. Jag har lagt dom i min högst personliga intresse-ordning:
Xref Compare
När ballongen dyker upp att du behöver Reloada din Xref, så kan du i ballongen bocka i Compare (fungerar även när du öppnar en fil och x-reffen är annorlunda än förra gången.
Om du väljer att köra Compare så startas ett Xref Compare-läge där alla ändringar highlightas med rev-moln. Ganska snyggt faktiskt!
(Blir du bara irriterad på detta alternativet? Sätt variabeln XRefCompareEnable till 0)
Trim och Extend
Trim och Extend har gjorts om så de fungerar som vi trodde att de skulle fungera från början. Alltså starta funktion > klicka på det som ska bort/det som ska förlängas. Funktionen kommer Trimma/Extenda till närmaste linje, så om du vill trimma/extenda till en annan linje kan du antingen bara klicka upprepade gånger på din linje eller använda alternativet Cutting Edges när du startar funktionen så får du välja trim-linje på vanligt manér.
Det om är riktigt bra med Trim/Extend också är att den förstår att använda Erase om det behövs. Alltså ibland har man redan korta linjer och det man tror att man behöver trimma, behöver man egentligen bara ta bort, och Trim fattar det och löser det åt dig. Nice!
(vill du ha tillbaka Trim/Extend till hur det var innan? Variablen TrimExtendMode styr detta beteende, sätt till 0 för att få tillbaka den gamla varianten av Trim/Extend)
Revideringsmoln
Längden på bågarna i rev-molnet när du startar funktionen blir en procent-sats av skärm-storleken så bågarna syns när du kör funktionen, sen kan du ändra båg-storleken i Properties om du markerar ditt rev-moln.
Det finns också en ny variabel som heter RevCloudArcVariance (On/Off), som gör att rev-molnet får lite varierande storlek på bågarna. Om man gillar sånt.
BreakAtPoint
BreakAtPoint är nu ett eget kommando, det har funnits på Ribbonet tidigare men fördelen att det nu är ett eget kommando är att man kan använda Enter/Mellanslag för att upprepa kommmandot och faktiskt få det kommandot man tror att upprepas!
Quick Measure
Quick Measure är en metod som kom för någon eller några versioner sen som gör att du kan mäta flera saker samtidigt på ditt objekt. Det är ganska smidigt faktiskt, om du inte har för tung ritning. Och numera så kan du också få ut area och omkrets när du klickar inom ett område (om det är slutet såklart)
Drawing History (Subscription)
Om du sparar din fil på Box, Dropbox, eller OneDrive så kan AutoCAD samarbeta med moln-tjänstens versions-hantering. Du kan se versionerna på Drawing History-Paletten.
Jag har inte testat detta, men om du i alla fall använder någon av de moln-tjänsterna för dina filer så kan det vara smidigt.
Block Paletten
Du kan synca blockbibliotek över Box, Dropbox eller Onedrive.
Jag ska erkänna att jag är inte ett fan av nya block paletten, men om du sätter in många block och använder block bibliotek så ska du defintivt undersöka den!
(Är du old school som jag och bara vill ha den vanliga Insert-dialogen? Använd DDINSERT så kommer du dit)
Graphics Performance
De har gjort några ändringar på hur grafiken uppdateras, det ska bara göra att det ser snyggare ut men om det bara blir långsammare för dig så kan du ställa variablen RTRegenAuto till Off.
Touch Enhancements
Om du använder AutoCAD på skärm med Touch så har de ändrat hur Pan/Zoom, Selection och Esc fungerar. Säkert bra om man använder Touch.
Security Enhancements
De har uppgraderat säkerheten i AutoCAD. That's it.
AutoLISP Improvements
Om du kodar i AutoLISP (finns det nån kvar som gör det på allvar?) så kan det vara värt att läsa vad de har gjort för uppdateringar. Mina AutoLISP-kunskaper är i princip obefintliga.
Xref Compare
När ballongen dyker upp att du behöver Reloada din Xref, så kan du i ballongen bocka i Compare (fungerar även när du öppnar en fil och x-reffen är annorlunda än förra gången.
Om du väljer att köra Compare så startas ett Xref Compare-läge där alla ändringar highlightas med rev-moln. Ganska snyggt faktiskt!
(Blir du bara irriterad på detta alternativet? Sätt variabeln XRefCompareEnable till 0)
Trim och Extend
Trim och Extend har gjorts om så de fungerar som vi trodde att de skulle fungera från början. Alltså starta funktion > klicka på det som ska bort/det som ska förlängas. Funktionen kommer Trimma/Extenda till närmaste linje, så om du vill trimma/extenda till en annan linje kan du antingen bara klicka upprepade gånger på din linje eller använda alternativet Cutting Edges när du startar funktionen så får du välja trim-linje på vanligt manér.
Det om är riktigt bra med Trim/Extend också är att den förstår att använda Erase om det behövs. Alltså ibland har man redan korta linjer och det man tror att man behöver trimma, behöver man egentligen bara ta bort, och Trim fattar det och löser det åt dig. Nice!
(vill du ha tillbaka Trim/Extend till hur det var innan? Variablen TrimExtendMode styr detta beteende, sätt till 0 för att få tillbaka den gamla varianten av Trim/Extend)
Revideringsmoln
Längden på bågarna i rev-molnet när du startar funktionen blir en procent-sats av skärm-storleken så bågarna syns när du kör funktionen, sen kan du ändra båg-storleken i Properties om du markerar ditt rev-moln.
Det finns också en ny variabel som heter RevCloudArcVariance (On/Off), som gör att rev-molnet får lite varierande storlek på bågarna. Om man gillar sånt.
BreakAtPoint
BreakAtPoint är nu ett eget kommando, det har funnits på Ribbonet tidigare men fördelen att det nu är ett eget kommando är att man kan använda Enter/Mellanslag för att upprepa kommmandot och faktiskt få det kommandot man tror att upprepas!
Quick Measure
Quick Measure är en metod som kom för någon eller några versioner sen som gör att du kan mäta flera saker samtidigt på ditt objekt. Det är ganska smidigt faktiskt, om du inte har för tung ritning. Och numera så kan du också få ut area och omkrets när du klickar inom ett område (om det är slutet såklart)
Drawing History (Subscription)
Om du sparar din fil på Box, Dropbox, eller OneDrive så kan AutoCAD samarbeta med moln-tjänstens versions-hantering. Du kan se versionerna på Drawing History-Paletten.
Jag har inte testat detta, men om du i alla fall använder någon av de moln-tjänsterna för dina filer så kan det vara smidigt.
Block Paletten
Du kan synca blockbibliotek över Box, Dropbox eller Onedrive.
Jag ska erkänna att jag är inte ett fan av nya block paletten, men om du sätter in många block och använder block bibliotek så ska du defintivt undersöka den!
(Är du old school som jag och bara vill ha den vanliga Insert-dialogen? Använd DDINSERT så kommer du dit)
Graphics Performance
De har gjort några ändringar på hur grafiken uppdateras, det ska bara göra att det ser snyggare ut men om det bara blir långsammare för dig så kan du ställa variablen RTRegenAuto till Off.
Touch Enhancements
Om du använder AutoCAD på skärm med Touch så har de ändrat hur Pan/Zoom, Selection och Esc fungerar. Säkert bra om man använder Touch.
Security Enhancements
De har uppgraderat säkerheten i AutoCAD. That's it.
AutoLISP Improvements
Om du kodar i AutoLISP (finns det nån kvar som gör det på allvar?) så kan det vara värt att läsa vad de har gjort för uppdateringar. Mina AutoLISP-kunskaper är i princip obefintliga.
måndag 7 oktober 2019
What the eff eller Extract en halvmeters Solid from Surface
Ibland stöter man på buggar som bara är löjliga. Detta är en sådan.
Jag har tidigare noterat att när man Exporterar Solider från Surfaces så kan man inte skriva punkt som decimalavgränsare när man vill extrahera en solid med specifikt djup. Men du kan skriva ett kommatecken så jag har skrivit kommatecken och gått vidare.
Idag hade jag en kund som hade detta problemet och sa att det fungerar i alla fall inte när man skriver in kommatecken, soliden som ska vara 0.4 blir 0! What gives?
Jag fick granska lite och ja, extraheringen tog ingen hänsyn till decimalen. Om jag skrev in 2,4 så blev soliden 2 meter tjock. Ok, Civil 3D bugg.
Lite googling vidare gav mig tipset att skriva 2.4 (med punkt som decimalavgränsare) i ett annat dokument och klistra in 2.4 i Extract Solids-dialogen istället för att skriva in det. Och 'lo and behold - det fungerade.
(Valfri Facepalm-gif här)
Så lösningen är alltså, öppna Notepad, skriv ditt värde med punkt som decimalavgränsare, kopiera texten, högerklicka i Depth-rutan och klistra in värdet, och klicka på Create Solid så får du vilken solidtjocklek du vill. Working as Intended!
Jag har tidigare noterat att när man Exporterar Solider från Surfaces så kan man inte skriva punkt som decimalavgränsare när man vill extrahera en solid med specifikt djup. Men du kan skriva ett kommatecken så jag har skrivit kommatecken och gått vidare.
Idag hade jag en kund som hade detta problemet och sa att det fungerar i alla fall inte när man skriver in kommatecken, soliden som ska vara 0.4 blir 0! What gives?
Jag fick granska lite och ja, extraheringen tog ingen hänsyn till decimalen. Om jag skrev in 2,4 så blev soliden 2 meter tjock. Ok, Civil 3D bugg.
Lite googling vidare gav mig tipset att skriva 2.4 (med punkt som decimalavgränsare) i ett annat dokument och klistra in 2.4 i Extract Solids-dialogen istället för att skriva in det. Och 'lo and behold - det fungerade.
(Valfri Facepalm-gif här)
Så lösningen är alltså, öppna Notepad, skriv ditt värde med punkt som decimalavgränsare, kopiera texten, högerklicka i Depth-rutan och klistra in värdet, och klicka på Create Solid så får du vilken solidtjocklek du vill. Working as Intended!
Etiketter:
bugg,
Civil 3D,
decimaler,
exportera,
extract solid,
kommatecken,
punkt,
solid,
Surface
fredag 6 september 2019
LUPREC? Not LUPREC?
Ibland får jag anledning att gräva sig ner i inställningar som jag bara accepterar tidigare, men när man har kunder som gör roliga saker så får man ju göra sitt bästa för att assistera!
En effekt av dens uppbyggnad är att om man vill ha en vertikal länk så ställer man lutningen till ett högt värde (jag brukar använda 1000 eller -1000) och då styr bredden av länken (som alltid mäts horisontellt) istället höjden på länken, men multiplicerat med en faktor 1000.
Idag diskuterade jag en subassembly med en kund som är som ett pussel. Den består egentligen bara av 8 länkar och 1 shape. Men alla länkar kan ändras i bredd, riktning och lutning så med den subassen kan du skapa i princip vilken shape som helst.
En effekt av dens uppbyggnad är att om man vill ha en vertikal länk så ställer man lutningen till ett högt värde (jag brukar använda 1000 eller -1000) och då styr bredden av länken (som alltid mäts horisontellt) istället höjden på länken, men multiplicerat med en faktor 1000.
Jag gjorde ett litet exempel för att visa. I bilden nedan är Lutningen för vertikala länken satt till -50 och Bredden till 0.0001, höjden blir alltså 0.0001x50 = 0.005.
Men det var inte det här jag skulle skriva om, det var en effekt av detta, nämligen att man vill skriva in väldigt låga värden på en parameter i Properties för en subassembly, och som standard ser jag bara 3 decimaler på dessa.
Normalt i AutoCAD så styrs detta av varibeln LUPREC, men såklart måste Civil 3D vara lite speciellt. Så detta styrs i Drawing Settings (EditDrawingSettings på kommandoraden) på fliken Ambient Settings och under Unitless. Logiskt right?
torsdag 4 juli 2019
Profile Labels
Idag tänkte jag skriva några rader om Profile View Labels, mera en genomgång av hur de hänger ihop.
Profile Label och Profile View Label - What's the difference?
Profile Label sätter vi ut på en profil-linje, en projekterad linje eller en marklinje t.ex. Profile View label sätter vi ut i själva en profil-vyn, de hänger ihop med vyn och kan referera till alignmentens längdmätning men inte mycket mer än så.
Sätta ut från början eller i efterhand.
När du ritar ut en profil-linje så kan du välja ett profile label set att appliceras automatiskt när du ritar ut din linje. Då kommer ett antal labels att placeras så fort du är klar med din profillinje, dessa kan du ta bort eller redigera i efterhand.
För färdiga profil-linjer (som mark-linjer) så kan man sätta ut etiketter på dem när man ritar ut profil vyn, i Create Profile View-wizarden på Profile Display Options-sidan - eller så sätter man ut de i efterhand.
Placera Labels i efterhand
Enklaste vägen att komma åt att placera labels i efterhand är att markera profil-linjen som du vill ha etiketter på och klicka på Ribbonet > Edit Profile Labels
Dialogen ovan är från Civil 3D 2020. Om du har ett färdigt label set så klickar du på Import label set... nere till höger. Om du vill lägga till individuella labels så väljer du Type först, alltså vilken typ av linje-segement label ska placeras på. De olika segmenten kan få fram olika typer av information, och har alltså olika Label Styles. När du valt Type så väljer du Label Style till höger och sedan Add för att lägga till labeln i din profil-vy.
Profile Label och Profile View Label - What's the difference?
Profile Label sätter vi ut på en profil-linje, en projekterad linje eller en marklinje t.ex. Profile View label sätter vi ut i själva en profil-vyn, de hänger ihop med vyn och kan referera till alignmentens längdmätning men inte mycket mer än så.
Sätta ut från början eller i efterhand.
När du ritar ut en profil-linje så kan du välja ett profile label set att appliceras automatiskt när du ritar ut din linje. Då kommer ett antal labels att placeras så fort du är klar med din profillinje, dessa kan du ta bort eller redigera i efterhand.
För färdiga profil-linjer (som mark-linjer) så kan man sätta ut etiketter på dem när man ritar ut profil vyn, i Create Profile View-wizarden på Profile Display Options-sidan - eller så sätter man ut de i efterhand.
Placera Labels i efterhand
Enklaste vägen att komma åt att placera labels i efterhand är att markera profil-linjen som du vill ha etiketter på och klicka på Ribbonet > Edit Profile Labels
Dialogen ovan är från Civil 3D 2020. Om du har ett färdigt label set så klickar du på Import label set... nere till höger. Om du vill lägga till individuella labels så väljer du Type först, alltså vilken typ av linje-segement label ska placeras på. De olika segmenten kan få fram olika typer av information, och har alltså olika Label Styles. När du valt Type så väljer du Label Style till höger och sedan Add för att lägga till labeln i din profil-vy.
En sak att tänka på är Major Stations och Minor Stations. i den här dialogen kan du sätta vad som ska vara Major Station Increment och vad som är Minor Station Increment. Detta hänger alltså på Alignmentens längdmätning. Horizontal Geometry Points är där något händer på Alignmenten, brytpunkt, början/slutet av en båge osv. De övriga alternativen är delar av linjen.
Beroende på vilken mallfil du arbetar med så kan du ha olika typer av Label Styles tillgängliga och som vanligt, om du bara har Standard-styles tillgängliga så är du i fel mallfil!
torsdag 27 juni 2019
Hide and Show eller Hide and Seek
Surface-redigering kan vara himla roligt eller en riktig PITA. Men oavsett på vilken sida du faller så kommer du förmodligen alltid behöva hantera det.
En specifik surface-metod som jag ska beskriva nedan är när man vill ha en surface i delar, alltså en yta som hänger ihop som ett objekt, men består av "öar".
När vill vi ha det här då?
Ett exempel är när man har underlag från en bergsinmätning, då vill man ha en surface som bara finns där inmätningspunkten finns, för utanför det vet man inte var berget finns.
Ett annat exempel är om man gör en projektering av ett större område där man vill ha området uppdelat i olika ytor beroende på beläggningstyp (asfalt, gräs, plattor osv) men de olika beläggningarna är uppdelade i "öar". Hantering och framförallt volymberäkning är enklast om ytan är ett objekt i alla fall.
För att få till det här så gör man en en Hide-boundary och flera Show-boundaries.
Steg ett är att göra själva ytan, den görs på vanligt sätt, beroende på vilken typ av underlag du har.
Sedan ritas Hide-boundary, det ska vara en sluten polylinje som ligger utanför hela ytan så att den döljer hela ytan. Lägg till linjen som en Hide
Sedan skapas slutna polylinjer, eller cirklar som jag har gjort nedan, för varje "ö" och dessa linjer/cirklar läggs sedan till som Show-boundaries.
Ett annat exempel är om man gör en projektering av ett större område där man vill ha området uppdelat i olika ytor beroende på beläggningstyp (asfalt, gräs, plattor osv) men de olika beläggningarna är uppdelade i "öar". Hantering och framförallt volymberäkning är enklast om ytan är ett objekt i alla fall.
För att få till det här så gör man en en Hide-boundary och flera Show-boundaries.
Steg ett är att göra själva ytan, den görs på vanligt sätt, beroende på vilken typ av underlag du har.
Sedan ritas Hide-boundary, det ska vara en sluten polylinje som ligger utanför hela ytan så att den döljer hela ytan. Lägg till linjen som en Hide
Sedan skapas slutna polylinjer, eller cirklar som jag har gjort nedan, för varje "ö" och dessa linjer/cirklar läggs sedan till som Show-boundaries.
Slutresultatet blir en surface som består av flera områden, och därifrån kan du beräkna volym mellan ytor och bara få volym där de överlappar med öarna, och när du visar den upphackade ytan i profilen så visas den bara där den finns.
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!
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!
måndag 25 mars 2019
Dagens Irritation eller Bubbles! Bubbles! Bubbles!
Dagens irritationsobjekt är snarare fredags irritation, men fredagen försvann i en dimma av tandläkar-besök och textskrivande.
Jag fick en fråga från en kund i fredags om att den lilla noterings-bubblan som ska komma upp när en Data Shortcut eller en X-ref har ändrats inte dök upp för henne. Det fungerade för hennes kollega och de kunde inte se någon skillnad mellan sina datorer.
Det blev ännu mera intressant när jag märkte att jag inte heller fick upp noterings-bubblan på min dator!
Efter mycket letande och testande hittade jag lösningen, och lärde mig ett antal nya variabler på köpet. (spoiler: variablerna var inte lösningen)
Kommandot TRAYSETTINGS öppnar en dialogruta där man kan välja hur den notis-ballongen ska bete sig, om den ska auto-stänga sig och hur länge den ska visas. Dialogen styr variablerna TRAYICONS, TRAYTIMEOUT och TRAYNOTIFY alltså.
Men, spoiler spoiler, allt var ibockat hos mig och jag såg fortfarande inte notis-ballongen.
Nästa steg var att undersöka grafikkort och hardware acceleration, men inget där påverkade ballongen.
Det är nu jag läser djupt ner i alla forum-trådar jag kan hitta om det här och till slut fanns en kommentar om att ballongen dyker inte upp om man har programmet på den skärmen som inte är den primära skärmen. Och ja, när jag startade om programmet, och hade den på den primära skärmen istället, så får jag upp ballongen - och idag bekräftade min kund att det samma lösning fungerade hos henne.
Irriterande javisst, men nu vet jag vad det är iaf.
(Detta problem påminde mig om ett annat problem som jag har haft ibland. Vissa dialogrutor visas ibland som blanka om man har ett program igång som kan ta över ens skärm, t.ex. Teamviewer eller Skype. Jag hade det konstant för några år sen, och jag tycker jag märker det ibland numera också. Ytterligare ett irriterande problem)
Jag fick en fråga från en kund i fredags om att den lilla noterings-bubblan som ska komma upp när en Data Shortcut eller en X-ref har ändrats inte dök upp för henne. Det fungerade för hennes kollega och de kunde inte se någon skillnad mellan sina datorer.
Det blev ännu mera intressant när jag märkte att jag inte heller fick upp noterings-bubblan på min dator!
Efter mycket letande och testande hittade jag lösningen, och lärde mig ett antal nya variabler på köpet. (spoiler: variablerna var inte lösningen)
Kommandot TRAYSETTINGS öppnar en dialogruta där man kan välja hur den notis-ballongen ska bete sig, om den ska auto-stänga sig och hur länge den ska visas. Dialogen styr variablerna TRAYICONS, TRAYTIMEOUT och TRAYNOTIFY alltså.
Men, spoiler spoiler, allt var ibockat hos mig och jag såg fortfarande inte notis-ballongen.
Nästa steg var att undersöka grafikkort och hardware acceleration, men inget där påverkade ballongen.
Det är nu jag läser djupt ner i alla forum-trådar jag kan hitta om det här och till slut fanns en kommentar om att ballongen dyker inte upp om man har programmet på den skärmen som inte är den primära skärmen. Och ja, när jag startade om programmet, och hade den på den primära skärmen istället, så får jag upp ballongen - och idag bekräftade min kund att det samma lösning fungerade hos henne.
Irriterande javisst, men nu vet jag vad det är iaf.
(Detta problem påminde mig om ett annat problem som jag har haft ibland. Vissa dialogrutor visas ibland som blanka om man har ett program igång som kan ta över ens skärm, t.ex. Teamviewer eller Skype. Jag hade det konstant för några år sen, och jag tycker jag märker det ibland numera också. Ytterligare ett irriterande problem)
Etiketter:
ballong,
bubbla,
bugg,
Civil 3D,
Data Shortcuts,
notification,
notifikation,
notis,
skärm,
traysettings,
Variabel,
Xref
onsdag 6 mars 2019
Code Set Style eller One style to rule them all
Code Set Styles. Detta gissel. På ett sätt är det bra, code set style (eller ska vi förkorta det till CSS?) styr många olika objekt och innehåller mycket information så vi kan använda samma CSS på flera ställen. Å andra sidan så är det lättare att ha koll när man har en individuell stil för varje objekt.
Jag tänkte rada upp en del information angånde CSS som kan vara bra att ha koll på. Jag kommer säkert missa något så du fär gärna återkomma till mig om du vet något som inte jag vet, eller återkom med mer frågor så kan jag fylla på med information.
Vad är en Code Set Style och vilka objekt styr den?
En CSS styr vilka linjer, punkter och shapes (skraffering/hatcher) som visas i subassemblies och korridorer. Det gäller även alla ställen där korridorer visas, som Section Editor och tvärsektioner. CSSn definierar även hur linjer och hatcher ska visas, vilka linjetyper och hatchmönster som ska användas.
Vilken information finns i en Code Set Style och hur styr den utseendet?
I CSSen skiljer vi på Points, Links och Shapes:
Points visas som cirklar i subassemblyn med namn inom paranteser och blir linjer i korridoren. (Alltså styr Styles från Point-avdelningen hur linjerna i Korridoren ser ut, även om det känns ologiskt.)
Links visas som linjer i subassemblyn med namn inom hak-paranteser och blir ytor i korridoren.
Shapes visas som areor i subassemblyn med namn inom vinkel-paranteser och blir volymer i korridoren.
De olika delarna har några gemensamma inställningar och några unika:
Namn Namn på objekten, punktkoden, linkkoden eller shapekoden. Det är här du har kopplingen till subassemblyns kodning.
Description ytterligare information, fri text
Classification Code ytterligare information
Pay Item (Links och Points) Anger vilket pay item som areorna och linjerna ska få i korridoren, för att sedan kunna mängda via QTO.
Link
Link Style / Link Label Style Linjetyp för länken i sektioner och vilken label som länken ska få
Render Material Render material för arean i modellvy
Material Area Fill Style skraffering/hatching av arean in planläge
Point
Marker Style / Marker Label Style Markeringsstil för punkten i sektioner och vilken label texten ska ha
Featureline Style Linjetyp för linjen i korridoren i plan
Shape
Shape Style / Shape Label Style Skraffering/hatch för arean i sektion och vilken label som placeras ut
Hur redigerar jag en Code Set Style?
Du kommer åt CSS från några olika ställen men på vissa ställen kan du bara visa CSSn och på andra så görs någon form av overrride så jag rekommenderar en endaste väg för att redigera CSSn: Gå till Settings-fliken i din Tool Space, gå ner under General > Multipurpose Styles > Code Set Style och högerklicka på den stilen du vill ändra, alternativt välj Copy för att göra en kopia av CSSn.
När du är inne i din CSS så kan du sedan högerklicka på överskrifterna i tabellen för att lägga till nya koder, och sedan kan du ställa in settings för den koden.
Om du ska lägga in många koder från en subassembly så kan du använda Import Codes... i dialogens nedre högra hörn. Tänk på att den funktionen enbart importerar koder som just nu visas i subassemblyn så om du t.ex. använder Display Mode för att enbart visa fyll-läge för en slänt, så kommer du enbart att importera fyll-släntens koder i CSSen.
Var det allt?
Det finns mycket egenheter med CSSer som kan vara bra att ha koll på
- Om en kod finns i subassemblyn men inte finns med i CSSn så syns den. Default-värde är alltså att visa objekt. (Teorin säger att man ska kunna ändra det här i Settings, jag tycker inte alltid att det fungerar). Så vill du ha sten-koll på vad du ser och inte ser så ska din CSS innehålla alla koder.
- Du kommer åt CSSn t.ex. innifrån Corridor Properties och det ser ut som om du kan redigera den därifrån - det fungerar inte alltid. Min bestämda rekommendation är att enbart gå in via Settings-fliken och redigera din CSS
Jag tänkte rada upp en del information angånde CSS som kan vara bra att ha koll på. Jag kommer säkert missa något så du fär gärna återkomma till mig om du vet något som inte jag vet, eller återkom med mer frågor så kan jag fylla på med information.
Vad är en Code Set Style och vilka objekt styr den?
En CSS styr vilka linjer, punkter och shapes (skraffering/hatcher) som visas i subassemblies och korridorer. Det gäller även alla ställen där korridorer visas, som Section Editor och tvärsektioner. CSSn definierar även hur linjer och hatcher ska visas, vilka linjetyper och hatchmönster som ska användas.
Vilken information finns i en Code Set Style och hur styr den utseendet?
I CSSen skiljer vi på Points, Links och Shapes:
Points visas som cirklar i subassemblyn med namn inom paranteser och blir linjer i korridoren. (Alltså styr Styles från Point-avdelningen hur linjerna i Korridoren ser ut, även om det känns ologiskt.)
Links visas som linjer i subassemblyn med namn inom hak-paranteser och blir ytor i korridoren.
Shapes visas som areor i subassemblyn med namn inom vinkel-paranteser och blir volymer i korridoren.
De olika delarna har några gemensamma inställningar och några unika:
Namn Namn på objekten, punktkoden, linkkoden eller shapekoden. Det är här du har kopplingen till subassemblyns kodning.
Description ytterligare information, fri text
Classification Code ytterligare information
Pay Item (Links och Points) Anger vilket pay item som areorna och linjerna ska få i korridoren, för att sedan kunna mängda via QTO.
Link
Link Style / Link Label Style Linjetyp för länken i sektioner och vilken label som länken ska få
Render Material Render material för arean i modellvy
Material Area Fill Style skraffering/hatching av arean in planläge
Point
Marker Style / Marker Label Style Markeringsstil för punkten i sektioner och vilken label texten ska ha
Featureline Style Linjetyp för linjen i korridoren i plan
Shape
Shape Style / Shape Label Style Skraffering/hatch för arean i sektion och vilken label som placeras ut
Hur redigerar jag en Code Set Style?
Du kommer åt CSS från några olika ställen men på vissa ställen kan du bara visa CSSn och på andra så görs någon form av overrride så jag rekommenderar en endaste väg för att redigera CSSn: Gå till Settings-fliken i din Tool Space, gå ner under General > Multipurpose Styles > Code Set Style och högerklicka på den stilen du vill ändra, alternativt välj Copy för att göra en kopia av CSSn.
När du är inne i din CSS så kan du sedan högerklicka på överskrifterna i tabellen för att lägga till nya koder, och sedan kan du ställa in settings för den koden.
Om du ska lägga in många koder från en subassembly så kan du använda Import Codes... i dialogens nedre högra hörn. Tänk på att den funktionen enbart importerar koder som just nu visas i subassemblyn så om du t.ex. använder Display Mode för att enbart visa fyll-läge för en slänt, så kommer du enbart att importera fyll-släntens koder i CSSen.
Var det allt?
Det finns mycket egenheter med CSSer som kan vara bra att ha koll på
- Om en kod finns i subassemblyn men inte finns med i CSSn så syns den. Default-värde är alltså att visa objekt. (Teorin säger att man ska kunna ändra det här i Settings, jag tycker inte alltid att det fungerar). Så vill du ha sten-koll på vad du ser och inte ser så ska din CSS innehålla alla koder.
- Du kommer åt CSSn t.ex. innifrån Corridor Properties och det ser ut som om du kan redigera den därifrån - det fungerar inte alltid. Min bestämda rekommendation är att enbart gå in via Settings-fliken och redigera din CSS
Etiketter:
Assembly,
Civil 3D,
code set style,
css,
Korridor,
Labels,
pay item,
Styles,
subassembly
onsdag 30 januari 2019
Structure Label For Each eller Allas Vår Favoritdialog.
Liten instruktion idag, där jag ska försöka skaka fram lite snygga bilder också. Eller så snygga bilder som Civil 3Ds dialogboxar kan ge oss.
Etiketter, eller Labels, i Civil 3D ger oss en fantastisk möjlighet att sätta ut automatisk populerad information på alla möjliga Civil 3D-objekt. Eller så ger de oss en fantastisk möjlighet att bli helt vilse i dialogrutor. Either way, när man väl får ordning på dom så är de ganska underbara.
Idag ska jag skriva lite om structure-etiketter och framförallt alternativen Text For Each.
Första tipset, starta med en label som är så nära ditt mål som möjligt och gör en kopia av den stilen. Enklast är att hitta etiketten på Settings-fliken i din Tool Space och högerklicka och välja Copy. Döp din nya etikett till något bra, om sedan börjar du ändra i den. På fliken Layout så ändrar du allt innehåll i din etikett.
När jag valt vilken information jag vill ha så ställer jag in hur den informationen ska visas och klickar sedan på pilen för att läsa in mina val till högersidan, där du "ser" vad etiketten kommer innehålla. Och nej, du ser det förmodligen inte. Oavsett om man har vit eller svart bakgrund så ser man knappt något i den rutan. Om du markerar din text så ser du kanske lite bättre.
När du har ställt in vilken information du vill ha i etiketten så går du tillbaka till första dialogen. Ställ in Anchor-point för din text (var den ska ansluta i förhållande till structuren alltså), text height, text offset osv.
Om du tänker att du kommer att placera ut etiketten och sedan flytta etiketten så behöver du titta på Dragged State-fliken också. Man kan alltså ha olika text-höjd och placering av texter när du drar i den, så om du ändrar text höjd på Layout-fliken, glöm inte att ändra text-höjd på Dragged State-fliken också. Det är även här som du bestämmer om du ska få en Leader när du drar i etiketten.
Du kan även ställa in Dragged State att vara As Composed, då blir texten som Layout-fliken säger.
När du tror du är klar klickar du på Apply och OK och kollar hur din etikett ser ut i din ritning. Förmodligen behöver du göra lite ändringar, då är det bara in i Label Style Composer igen (markera din etikett, högerklick och Edit Label Style brukar vara snabbast) men glöm inte att klicka Apply innan du går tillbaka till ritningen igen, ibland så slår inte ändringar igenom annars.
Etiketter, eller Labels, i Civil 3D ger oss en fantastisk möjlighet att sätta ut automatisk populerad information på alla möjliga Civil 3D-objekt. Eller så ger de oss en fantastisk möjlighet att bli helt vilse i dialogrutor. Either way, när man väl får ordning på dom så är de ganska underbara.
Idag ska jag skriva lite om structure-etiketter och framförallt alternativen Text For Each.
Första tipset, starta med en label som är så nära ditt mål som möjligt och gör en kopia av den stilen. Enklast är att hitta etiketten på Settings-fliken i din Tool Space och högerklicka och välja Copy. Döp din nya etikett till något bra, om sedan börjar du ändra i den. På fliken Layout så ändrar du allt innehåll i din etikett.
Högst upp har du Component-listan. Här har du alla de individuella objekten som din etikett består av. När du har valt en komponent så ser du sedan all info om den komponenten i rutan nedanför, och en förhandsvisning av etiketten till höger.
För att lägga till en ny komponent så klickar du på A-knappen bredvid komponent-listan. Just idag ska jag lägga till en komponent som heter Text For Each. Structure-labels kan använda Text For Each-alternativet för att lägga till en text för varje ledning som ansluter till brunnen, eller enbart för utgående ledningar, eller enbart ingående ledningar.
Nästa steg är att lägga till vilken information som ska visas i etiketten, det gör du på Contents-raden. I nästa dialogruta har du en lista med den information som du kan lägga till för varje anslutande ledning. Denna listan är alltså all information som vi kan läsa av objektet, i detta fallet anslutande ledning. I mitt fall så vill jag ha Connected Pipe Invert Elevation eftersom jag vill ha vattengångsnivån för alla anslutande ledningar.
När du har ställt in vilken information du vill ha i etiketten så går du tillbaka till första dialogen. Ställ in Anchor-point för din text (var den ska ansluta i förhållande till structuren alltså), text height, text offset osv.
Om du tänker att du kommer att placera ut etiketten och sedan flytta etiketten så behöver du titta på Dragged State-fliken också. Man kan alltså ha olika text-höjd och placering av texter när du drar i den, så om du ändrar text höjd på Layout-fliken, glöm inte att ändra text-höjd på Dragged State-fliken också. Det är även här som du bestämmer om du ska få en Leader när du drar i etiketten.
Du kan även ställa in Dragged State att vara As Composed, då blir texten som Layout-fliken säger.
När du tror du är klar klickar du på Apply och OK och kollar hur din etikett ser ut i din ritning. Förmodligen behöver du göra lite ändringar, då är det bara in i Label Style Composer igen (markera din etikett, högerklick och Edit Label Style brukar vara snabbast) men glöm inte att klicka Apply innan du går tillbaka till ritningen igen, ibland så slår inte ändringar igenom annars.
Etiketter:
Civil 3D,
dragged state,
Etikett,
Labels,
structure
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.
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.
Etiketter:
AutoCAD,
cui,
egen knapp,
knapp,
Macro
tisdag 22 januari 2019
Surface Styles eller En EXAKT höjd? Du kan inte visa en EXAKT höjd, det förstår du väl...
Dagens inlägg, första för i år faktiskt, sponsras av Skrik och Panik. Mest Panik, men Skrik kommer som en nära tvåa. Men mitt i all panik så fick jag en fråga från en kund som hade redigerat en surface style men surfacen visade inte alla nivåkurvor på alla ställen. Mycket störigt.
Innan jag förklara lösningen så tänkte jag dra lite kort om Surface Styles.
Första att tänka på är att det faktiska utseendet på ytan har inget med stylen att göra. Ytan är en triangelmodell, stylen som du har på din yta är bara ett visningsläge. Ytan består av trianglar, hur du än gör (vi ignorerar rutnätsmodeller just nu). Så Surface Style = Visningsläge.
Styles som visar Nivåkurvor lägger ut linjer på din yta där den når vissa nivåer. Linjerna kan alltså ligga mitt i trianglar, linjerna är bara en visualisering av ytan. Du kan extrahera dessa linjer om du skulle vilja, men när du enbart har de i din style så är linjerna inte individuella linjer, du kan inte dra i dessa linjer för att förändra din yta.
Hur tätt linjerna visas, och hur de ser ut bestäms i Surface Stylen. (Här får jag en deja vu och inser att jag beskrev hur Contour Interval fungerar i senaste inlägget)
Du kan alltså ställa in vilka intervall du vill ha på Contour-fliken och sätta färger på dessa contours på Display-fliken. Det var detta min kund hade gjort, men när hen sparade sin style och gick tillbaka till ritningen och syntes inte alla Major Interval höjderna.
Förklaringen blev, i sann Civil 3D-anda: höjden var för exakt.
Ytan var skapad av featurelines och den högsta featurelinen låg på exakt 17.5 meter - och Major Interval var på 0.5m så ytan borde ha en Major Interval som högst punkt. Men så exakt fungerade det inte. När vi ändrade den högsta Featurelinen till 17.501 - då kom det fram en Major Interval-kurva på 17.5.
Sedan finjusterade vi lösningen till att lägga till en linje strax ovanför 17.5-linjen som låg på 17.501 för att få nivåkurvan på rätt ställe i alla fall.
Det är såna här fel som jag blir glad av att lösa, men så är jag kanske lite konstig också :)
Innan jag förklara lösningen så tänkte jag dra lite kort om Surface Styles.
Första att tänka på är att det faktiska utseendet på ytan har inget med stylen att göra. Ytan är en triangelmodell, stylen som du har på din yta är bara ett visningsläge. Ytan består av trianglar, hur du än gör (vi ignorerar rutnätsmodeller just nu). Så Surface Style = Visningsläge.
Styles som visar Nivåkurvor lägger ut linjer på din yta där den når vissa nivåer. Linjerna kan alltså ligga mitt i trianglar, linjerna är bara en visualisering av ytan. Du kan extrahera dessa linjer om du skulle vilja, men när du enbart har de i din style så är linjerna inte individuella linjer, du kan inte dra i dessa linjer för att förändra din yta.
Hur tätt linjerna visas, och hur de ser ut bestäms i Surface Stylen. (Här får jag en deja vu och inser att jag beskrev hur Contour Interval fungerar i senaste inlägget)
Du kan alltså ställa in vilka intervall du vill ha på Contour-fliken och sätta färger på dessa contours på Display-fliken. Det var detta min kund hade gjort, men när hen sparade sin style och gick tillbaka till ritningen och syntes inte alla Major Interval höjderna.
Förklaringen blev, i sann Civil 3D-anda: höjden var för exakt.
Ytan var skapad av featurelines och den högsta featurelinen låg på exakt 17.5 meter - och Major Interval var på 0.5m så ytan borde ha en Major Interval som högst punkt. Men så exakt fungerade det inte. När vi ändrade den högsta Featurelinen till 17.501 - då kom det fram en Major Interval-kurva på 17.5.
Sedan finjusterade vi lösningen till att lägga till en linje strax ovanför 17.5-linjen som låg på 17.501 för att få nivåkurvan på rätt ställe i alla fall.
Det är såna här fel som jag blir glad av att lösa, men så är jag kanske lite konstig också :)
tisdag 18 december 2018
User Contours eller Du vill veta var din yta når +5.3m? Varför?
Ett litet tips idag, det är ju vecka-före-julvecka så det är inte det allra högsta tempot för mig. Jag inser att det troligen är panik för de flesta av mina kunder (som det brukar vara sista veckan innan ledighet) men ju mer panik det är hos er, dessto lugnare är det hos mig. Jag klurar just nu på en assembly med mittremsa - men det är ett annan inlägg. Idag tänkte jag på User Contours.
Först lite kort angående Contours eller nivåkurvor. Om du ser nivåkurvorna på din surface eller inte beror på vilken stil du har, och vad den stilen säger ska visas. På Display-fliken i Surface Style ställer du inte om nivåkurvorna ska visas eller inte. Intervallet för nivåkurvorna ställer du in på på Contours-fliken under Contour Intervals. Tänk på att Minor Interval måste vara en faktor av Major Interval - alltså om Minor Interval är 3m så måste Major Interval vara dividerbart med 3. Du kan inte göra fel här, om du skriver in ett värde som inte fungerar så kommer Civil 3D skriva ett annat värde åt dig.
Liten notering här, detta gäller generellt för alla styles. Du kan släcka objekt i styles utan att släcka lagret, men om du släcker lagret, då släcker du objektet också. Här får man bestämma sig lite hur man ska göra, vill man jobba mycket med lager, då har man "mycket" tänt i styles och använder lager för att släcka och tända objekt. I mitt tycke så har man då missat styrkan i Civil 3Ds styles. Min rekommendation är att ha alla lager tända och ha styles för alla olika visnings-lägen. Det är alltid enklare att byta style på just de objekt du vill visa/släcka än att hålla på med lager.
Men tillbaka till contours. I Stylen så ändrar du alla contours, men om du vill se en specifik höjd, kan man göra det? Såklart! (Annars skulle jag inte nämna det...)
Det första du behöver göra är att se till att User Contours är tänt i Stylen. Så i den Surface style som du vill använda, se till att User Contours är tänt på Display-fliken (och ligger på ett lager som du vill ha).
Sedan ska du använda en analys-metod för att ta fram en enskild nivåkurva. Analyser gör du i Surface Properties, på Analysis-fliken. Välj User-defined contours högst upp, välj antalet och klicka på Run Analysis.
Hela metodiken blir då:
- Du behöver ha två surfaces som du ska beräkna volym mellan
- Skapa en volymyta (Tin Volume Surface) mellan de två ytorna
- Ta fram en User Contour för elevation=0 på volymytan
- Om du vill få ut den linjen som en "lös" linje kan du sedan använda Extract Objects from Surface och bara bocka i User Contour.
Först lite kort angående Contours eller nivåkurvor. Om du ser nivåkurvorna på din surface eller inte beror på vilken stil du har, och vad den stilen säger ska visas. På Display-fliken i Surface Style ställer du inte om nivåkurvorna ska visas eller inte. Intervallet för nivåkurvorna ställer du in på på Contours-fliken under Contour Intervals. Tänk på att Minor Interval måste vara en faktor av Major Interval - alltså om Minor Interval är 3m så måste Major Interval vara dividerbart med 3. Du kan inte göra fel här, om du skriver in ett värde som inte fungerar så kommer Civil 3D skriva ett annat värde åt dig.
Liten notering här, detta gäller generellt för alla styles. Du kan släcka objekt i styles utan att släcka lagret, men om du släcker lagret, då släcker du objektet också. Här får man bestämma sig lite hur man ska göra, vill man jobba mycket med lager, då har man "mycket" tänt i styles och använder lager för att släcka och tända objekt. I mitt tycke så har man då missat styrkan i Civil 3Ds styles. Min rekommendation är att ha alla lager tända och ha styles för alla olika visnings-lägen. Det är alltid enklare att byta style på just de objekt du vill visa/släcka än att hålla på med lager.
Men tillbaka till contours. I Stylen så ändrar du alla contours, men om du vill se en specifik höjd, kan man göra det? Såklart! (Annars skulle jag inte nämna det...)
Det första du behöver göra är att se till att User Contours är tänt i Stylen. Så i den Surface style som du vill använda, se till att User Contours är tänt på Display-fliken (och ligger på ett lager som du vill ha).
Sedan ska du använda en analys-metod för att ta fram en enskild nivåkurva. Analyser gör du i Surface Properties, på Analysis-fliken. Välj User-defined contours högst upp, välj antalet och klicka på Run Analysis.
Sist får du skriva in vilken Elevation du vill ha din(a) nivåkurva på, och klicka Apply. Nu ska du se en eller flera linjer i din surface där din angivna elevation finns.
Vad finns det för användningsområde för detta?
Förutom att det ibland kan vara bra att se en specifik nivå på sin surface så visar jag oftast denna metoden när jag pratar schakt och fyll-planer och får frågan: Hur kan jag få fram gränsen mellan schakt och fyll?Hela metodiken blir då:
- Du behöver ha två surfaces som du ska beräkna volym mellan
- Skapa en volymyta (Tin Volume Surface) mellan de två ytorna
- Ta fram en User Contour för elevation=0 på volymytan
- Om du vill få ut den linjen som en "lös" linje kan du sedan använda Extract Objects from Surface och bara bocka i User Contour.
Etiketter:
analys,
analyze,
Civil 3D,
contour,
nivåkurva,
Surface,
user contour,
volume surface,
volymyta,
yta
tisdag 11 december 2018
2019-2 Update på Civil 3D!
Det är inte första gången som Civil 3D inte bara har fixar med i sin Update, och dessa updates som kom ut alldeles nyss (7 december om vi ska vara noggranna) är ganska intressanta.
Först, man kan numera klistra in en sökväg när man ska sätta Data Shortcuts. Om ni har irriterat er på att man måste "träda" sig ner för att hitta sin datao shortcut så kan ni bli lite glada nu! Numera en helt vanlig mapp-sökruta där man har favoriter och kan klistra in sökvägar. Det är som vi tycker att det ska vara alltså.
Nästa jag reagerade på var "Add linear crossings in profile". Alltså att man kan sätta en markering i profil där en alignment, Profile, Featureline, Survey Figure eller 3D Polyline korsar profilens alignment. Vi har kunnat projicera in objekt tidigare, men nu kan i praktiken "snitta" en linje och visa korsningen. Visa var en annan gata korsar min gata t.ex. Smidigt!
Sista jag reagerade på var angående LandXML: Existing objects are updated on re-import. Alltså att kunna uppdatera en surface genom att importera LandXML-filen igen. Känns också väldigt smidigt!
Detta är inte alla updates, och till detta så kommer en hel del fixar (bland annat ett helt batteri av fixar angående export av Civil 3D-fil) så jag rekommenderar att ni läser Read Me'n.
Först, man kan numera klistra in en sökväg när man ska sätta Data Shortcuts. Om ni har irriterat er på att man måste "träda" sig ner för att hitta sin datao shortcut så kan ni bli lite glada nu! Numera en helt vanlig mapp-sökruta där man har favoriter och kan klistra in sökvägar. Det är som vi tycker att det ska vara alltså.
Nästa jag reagerade på var "Add linear crossings in profile". Alltså att man kan sätta en markering i profil där en alignment, Profile, Featureline, Survey Figure eller 3D Polyline korsar profilens alignment. Vi har kunnat projicera in objekt tidigare, men nu kan i praktiken "snitta" en linje och visa korsningen. Visa var en annan gata korsar min gata t.ex. Smidigt!
Sista jag reagerade på var angående LandXML: Existing objects are updated on re-import. Alltså att kunna uppdatera en surface genom att importera LandXML-filen igen. Känns också väldigt smidigt!
Detta är inte alla updates, och till detta så kommer en hel del fixar (bland annat ett helt batteri av fixar angående export av Civil 3D-fil) så jag rekommenderar att ni läser Read Me'n.
Etiketter:
2019,
2019.2,
Civil 3D,
Data Shortcuts,
fixar,
hotfix,
LandXML,
Profil,
Profile,
update,
updates
tisdag 13 november 2018
Försvunna Featurelines eller Linjer med 0 längd, 0 höjd och.... 0 noder?
Det finns en teori som säger att upptäckter (upptäckter som ger Nobel-pris typ) händer på flera ställen samtidigt, och detta är inget märkligt. (förklarar varför det nästan alltid delas på Nobel-pris). Det finns också en teori som säger att när du köpt en ny bil, först då ser du hur många av den bilsorten som du ser på gatorna (det borde finnas en teori för det iaf), Och på samma sätt (för att göra en kort historia lång och utnyttja paranteser så mycket jag kan) så händer det ibland att jag får in en ny fråga på supporten - för att sedan få den frågan igen och igen inom kort tid.
Just i mitt fall med supporten så handlar det oftare om att det har kommit en uppdatering till Civil 3D eller Windows som har ställt till det. Men ibland är det märkligare än så.
För någon vecka sedan fick jag för första gången ett ärende med Featurelines som var försvunna. Efter lite letande så såg jag att de var inte försvunna, utan alla Featurelines i filen hade blivit 0 i längd, 0 i elevation och märkligast av all, fått 0 noder. De hade blivit Zero-Lenght-Objects märkligt nog.
Jag hade aldrig stött på det här tidigare och sökte runt en hel del och hittade massor av forum-inlägg angående detta, från långt tillbaka i forntiden (2007). Men jag har aldrig stött på det eller fått ett ärende om det märkligt nog.
Och idag fick jag ett ärende igen om precis samma sak. Tre featurelines, de var borta - efter lite letande så fanns de där men nollade i alla aspekter. Märkligt nog så kunde fortfarande korridoren som hade dessa Featurelines som target använda dem. Så mycket märkligt är det.
Detta inlägget är tyvärr inte ett inlägg där jag har en lösning. Jag har ingen aning om hur man löser detta. För problemet med korridoren så rekommenderade jag att återskapa linjerna genom att extrahera linjer från korridoren och använda de som targets istället. För första fallet, som var en surface byggd av featurelines så tog vi ut surfacen som en LandXML och kasserade alla Featurelines.
När man kollar igenom forumposter på detta så verkar en genomgående trend vara att detta händer när man har en mallfil som ursprungligen var en tom autoCAD-mallfil, typ ACADISO.dwt, som man sedan lagt in Civil 3D-objekt i. Det finns även rapporter om att copy-paste (ctrl+C / ctrl+V) på civil 3D-objekt orsakar detta problemet. Båda dessa är inget jag tycker man ska ägna sig åt i alla fall, och detta ger mig bara mer vatten på min kvarn.
Men lösning, det har jag inte. Återskapa linjerna bäst du kan, se om du kan ta fram en BAK-fil eller en backup-fil. Annars.... jag känner med dig.
En sak till: hur hittar man linjerna, om man nu misstänker att detta har hänt? Jag använder QSELECT för att hitta alla Featurelines, och sedan (om det finns de som fungerar fortfarande) så använder jag shift för att avmarkera de som fungerar, till slut har jag bara de knäppa kvar. Då kan du se vad jag menar med knäppa.
Just i mitt fall med supporten så handlar det oftare om att det har kommit en uppdatering till Civil 3D eller Windows som har ställt till det. Men ibland är det märkligare än så.
För någon vecka sedan fick jag för första gången ett ärende med Featurelines som var försvunna. Efter lite letande så såg jag att de var inte försvunna, utan alla Featurelines i filen hade blivit 0 i längd, 0 i elevation och märkligast av all, fått 0 noder. De hade blivit Zero-Lenght-Objects märkligt nog.
Jag hade aldrig stött på det här tidigare och sökte runt en hel del och hittade massor av forum-inlägg angående detta, från långt tillbaka i forntiden (2007). Men jag har aldrig stött på det eller fått ett ärende om det märkligt nog.
Och idag fick jag ett ärende igen om precis samma sak. Tre featurelines, de var borta - efter lite letande så fanns de där men nollade i alla aspekter. Märkligt nog så kunde fortfarande korridoren som hade dessa Featurelines som target använda dem. Så mycket märkligt är det.
Detta inlägget är tyvärr inte ett inlägg där jag har en lösning. Jag har ingen aning om hur man löser detta. För problemet med korridoren så rekommenderade jag att återskapa linjerna genom att extrahera linjer från korridoren och använda de som targets istället. För första fallet, som var en surface byggd av featurelines så tog vi ut surfacen som en LandXML och kasserade alla Featurelines.
När man kollar igenom forumposter på detta så verkar en genomgående trend vara att detta händer när man har en mallfil som ursprungligen var en tom autoCAD-mallfil, typ ACADISO.dwt, som man sedan lagt in Civil 3D-objekt i. Det finns även rapporter om att copy-paste (ctrl+C / ctrl+V) på civil 3D-objekt orsakar detta problemet. Båda dessa är inget jag tycker man ska ägna sig åt i alla fall, och detta ger mig bara mer vatten på min kvarn.
Men lösning, det har jag inte. Återskapa linjerna bäst du kan, se om du kan ta fram en BAK-fil eller en backup-fil. Annars.... jag känner med dig.
En sak till: hur hittar man linjerna, om man nu misstänker att detta har hänt? Jag använder QSELECT för att hitta alla Featurelines, och sedan (om det finns de som fungerar fortfarande) så använder jag shift för att avmarkera de som fungerar, till slut har jag bara de knäppa kvar. Då kan du se vad jag menar med knäppa.
Etiketter:
0 elevation,
0 längd,
0 noder,
bak,
bak-fil,
bakfil,
Civil 3D,
Featureline,
fel,
felfelfel,
knäppt,
Properties
Prenumerera på:
Inlägg (Atom)














