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å :)
Visar inlägg med etikett edit. Visa alla inlägg
Visar inlägg med etikett edit. Visa alla inlägg
tisdag 22 januari 2019
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.
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.
Etiketter:
Alignment,
Assembly,
Civil 3D,
corridor,
edit,
Korridor,
parameter,
subassembly,
superelevation,
target,
targets
tisdag 20 mars 2018
Flödesriktning! eller Rikta den där pilen åt nåt annat håll.
Etiketter. Detta gissel. Ibland är de helt underbar, när de gör som man vill! Men ibland är det mest bara ett härke utan dess like.
(Härke? Ni måste väl hört ordet härke? okejdå, Språk och Folkminnen to the rescue! Så? Alla är med på härke nu? Bra, då fortsätter vi)
Dagens inlägg handlar om en liten aspekt hos etiketter, och det är när vi vill göra en flödespil som alltid pekar nedåt. Eller uppåt, jag är inte känslig. Men jag vill att den ska ändra riktning när linjen ändrar riktning.
Lösningen är Expressions. Jag är inte den största stjärnan på expressions ska jag erkänna, men expressions kan vi använda när vi behöver ha/använda någon information i etiketter som inte finns som en standard property. T.ex. plushöjd för en pipes underkant finns inte som standard property (i 2018) men vi kan räkna fram det med hjälp av diameter och godstjocklek i ett expression.
Under General > Label Styles > Line > Expressions finns ett färdigt expression för FlowArrowRotation och om man högerklickar och väljer Edit på den så ser man detta:
(Härke? Ni måste väl hört ordet härke? okejdå, Språk och Folkminnen to the rescue! Så? Alla är med på härke nu? Bra, då fortsätter vi)
Dagens inlägg handlar om en liten aspekt hos etiketter, och det är när vi vill göra en flödespil som alltid pekar nedåt. Eller uppåt, jag är inte känslig. Men jag vill att den ska ändra riktning när linjen ändrar riktning.
Lösningen är Expressions. Jag är inte den största stjärnan på expressions ska jag erkänna, men expressions kan vi använda när vi behöver ha/använda någon information i etiketter som inte finns som en standard property. T.ex. plushöjd för en pipes underkant finns inte som standard property (i 2018) men vi kan räkna fram det med hjälp av diameter och godstjocklek i ett expression.
Under General > Label Styles > Line > Expressions finns ett färdigt expression för FlowArrowRotation och om man högerklickar och väljer Edit på den så ser man detta:
Jag kan inte förklara matematiken bakom detta, men jag kan säga att det fungerar. I mitt fall så pekade denna etikett konsekvent uppåt istället för nedåt, då ändrade jag < till > och pilen pekade konsekvent nedåt. Det fungerade även att ändra 0,pi,0 till 0,0,pi - men varför? No clue.
För att detta Expression ska vara tillgängligt för t.ex. Surface-labels så kopierade jag ovanstående text, och gick sedan ner till Surface > Surface Styles > Slope > Högerklick på Expressions > New och klistrade in texten. Jag fick sedan ändra General Segment Grade (som är specifikt för en linje) till Surface Slope (som är specifik för ytan) - enklast var att klicka på den lilla Properties-knappen på höger sida och lägga till Surface Slope.
När expressionet är klart så går jag in i Stylen som jag vill rotera och istället för att ange ett värde för rotation på pilen så kan jag nu välja mitt Expression som rotation.
Etiketter:
Civil 3D,
edit,
Featureline,
flowdirectionarrow,
Labels,
lutning,
slope,
Surface
Prenumerera på:
Inlägg (Atom)


