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!


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!

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.


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.




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!

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)

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

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.


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 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.

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. 




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å :)


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.


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.

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.

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.

fredag 26 oktober 2018

Section Editor och Baselines eller Vad i hela friden har du gjort med din korridor? Ah wait...

Dagens tips blir en påminnelse om något som jag egentligen vet men hade glömt bort. Det ledde till en viss panik för en timme sen, men nu är jag lugnt.

Fallet är som följer, jag fick en bild av kund på en korridor som bara kan beskrivas som helt totalt ur balans. Den hade ballat ur. Tagit semester. Ställt tofflorna och lagt ner pennan. Helt fel.

Den såg ut ungefär som nedan, i Corridor Section Editor. Helt normal på ena sidan, helt kajko på andra (detta ska alltså föreställa en liksidig väg)


Paniken utbröt, hade vi gjort något fruktansvärt galet i subassemblierna? Har Civil 3D 2019 bestämt för att nog är nog? Vad har hänt? Och hur ska jag kunna lösa detta?

Paniken övergick i ett visst mått av irritation när jag insåg vad som var problemet.

Korridoren i fråga innehåller flera Baselines, alltså alignments. I mitt exempel ovan så bygger högra delen av korridoren från en alignment och vänstra från en annan. När vi tittar på korridoren i Section Editor så ser vi korridoren som ett tvärsnitt längs ena alignmenten. Korridor-delen som byggs runt den andra alignmenten blir på något sätt projicerad in i det tvärsnittet, med mer eller mindre lycka. Som alltid när Civil 3D försöker göra något på egen hand så blir det mer eller mindre dåligt.

Vilken baseline vi visar tvärsnitt av väljer vi inne i Section Editor, uppe på Ribbonet, hur enkelt som helst. Det gäller bara att komma ihåg det. Och inte få panik.

Har vi alla (jag) fattat detta nu och kommer ihåg det till nästa gång? Gött. Då tar vi helg.

torsdag 4 oktober 2018

Styra Korridoren eller Hur Många Inställningar Kan Man Ha Samtidigt?

Dagens inlägg är en lista. Man skulle kunna säga att det är Dagens Lista, förutom att jag aldrig kommer att göra en lista varje dag. Men idag blir det en lista.

Listan innehåller de olika sätten vi kan sätta värden på en subassembly och på så sätt styra en korridor. Och framförallt så är listan en prioriteringsordning för korridoren, alltså vilket värde den kommer använda först om det finns flera att välja på. Ju högre upp i listan, dessto högre prioritet!

Let's begin!

1. Corridor Targets. Alltså en profile-linje eller en offset-linje. En target trumfar alla andra inställningar.

2. Superelevation. Det är bara lutning/skevning som vi kan styra med Superelevation, men om det finns en skevningsberäkning så tar den över. Subassemblies som ska styras med Superelevation har det som alternativ i sig (en parameter i Properties) och ibland har jag märkt att om det alternativet står som något annat än DoNotUse så ignoreras andra värden - även om det inte finns någon skevningsberäkning. Så om du inte ska använda Superelevation, ställ parametern till DoNotUse.

3. Parameter Override. Detta görs oftast i Section Editor för att på en viss sträcka ändra ett visst värde.

4. Assembly Parameter Override. Alltså att en subassembly tar ett värde av en annan subassembly. Detta ställs in i Assembly Properties där subassemblies kan ärva värden av varandra. (t.ex. Naviate Styrsektion för er som vet vad det är :-) )

5. Subassembly-värde. Det som man ställer in allra först i Properties för sina subassemblies, det har lägst prioritet när korridoren byggs ihop.


Korridoren har många sätt att man kan anpassa den. Ibland får jag höra att det är så himla jobbigt med alla dessa assemblies som man måste ha för korridorerna, och jag kan hålla med om det. Men tänk på att så länge du inte ska lägga till en ny subassembly i assemblyn, så behöver du förmodligen inte ha en ny assembly! Då kan du ändra värden med någon av ovanstående metoder. Och ibland kan man även nolla en subassembly med ovanstående metoder för att slippa skapa ytterligare en assembly.