Tuesday, 18 October 2022

Παραγωγή Civil 3D alignment από alignment exported to dwg από 3rd party software ή μη.

Είχα μια οριζοντιογραφία περίπου 85 χλμ.
Έπρεπε να την περάσω στο χειριστήριο του GNSS.
 
Προφανώς άπειρες οι κορυφές.
Ο μελετητής αν και την σχεδίασε με το Civil 3D έδωσε τον άξονα σπασμένο σε polylines.
 
Ένωσα όλα τα κομμάτια με join.
Έκανα Create alignment from polyline. Άπειρα ευθύγραμμα τμήματα από τις σπασμένες κλωθοειδείς.
Το Trimble Access σε TSC3 το δέχθηκε.
To FieldGenius σε South HW300, για το οποίο προοριζόταν, γονάτισε. Πάγωσε κυριολεκτικά.
Οπότε έπρεπε να εισάγω τον άξονα με γεωμετρικά στοιχεία.

Ξεκίνησα λοιπόν την αναπαραγωγή του με βάση τον πίνακα των κορυφών.
Έκανα ένα τμήμα και το ήλεγξα. Ο πίνακας που συνόδευε την επίσημη μελέτη δεν είχε σχέση με τον σχεδιασμένο άξονα! Μελέτες Made in Greece.
Έστειλα email στον μελετητή . Δεν μου αρνήθηκε τίποτα, εγώ καταφερτζής δεν είμαι, οπότε άξονα δεν πήρα. Το γνωρίζει ότι κάνει για πολιτικός;! Άτομα με τέτοιες ικανότητες χρειάζονται τα κόμματα για τα τηλεοπτικά παράθυρα!

Οπότε σκέφτηκα τι μπορώ να κάνω με την καλύτερη δυνατή ακρίβεια και τον ελάχιστο κόπο;

Χρησιμοποίησα λοιπόν το Quick select.
 
Έπιασα όλα τα arc και τα έβαλα σε ένα layer με το ανάλογο όνομα και το δικό τους χρώμα, πράσινο. 

Έπιασα όλες τις line με μήκος μεγαλύτερο των 10μ, αφού από ένα πρόχειρο έλεγχο δεν βρήκα τμήμα ευθείας που να απαρτίζει κλωθοειδή, με μήκος μεγαλύτερο αυτού.
Τις πέρασα σε ένα layer με μπλε χρώμα, όπως έκανα για τα κυκλικά τόξα.
 
Τα υπόλοιπα τα έβαλα σε ένα layer με κόκκινο χρώμα για κλωθοειδείς.

Τούτη όμως η μέθοδος δεν μου εξασφαλίζει όμως ότι δεν θα υπάρχει κάποιο μικρό ευθύγραμμο τμήμα που δεν θα ανήκει σε κλωθοειδή αλλά θα μου ξεφύγει. Επίσης δεν μου ξεχώριζε τις διαδοχικές ομόρροπες ή αντίρροπες κλωθοεδείς με ή χωρίς ενδιάμεσο ευθύγραμμο τμήμα. Αλλά και για αυτό βρήκα άμεσα κι εύκολα λύση και την παραθέτω παρακάτω.

Ξεκίνησα την παραγωγή άξονα.
Για την οικονομία του χρόνου επέλεξα να μην αναπαράξω την πολυγωνική αλλά να κάνω την εισαγωγή τμήμα προς τμήμα.

Πέρασα πρώτα όλα τα ευθύγραμμα τμήματα με Fixed line (two points).
Κι όμως. Ο μελετητής είχε τμήματα με θλάση έστω κι απειροελάχιστη!
Οπότε ποτέ δεν πήγαινα το σταυρόνημα κατευθείαν στο endpoint αλλά έτρεχα αυτό κατά μήκος της γραμμής μην τυχόν και βρει κανένα endpoint. Και βρήκα ουκ ολίγα!
 
Μετά άρχισα να περνώ τα ενδιάμεσα.
 
Όπου υπήρχε απλό κυκλικό τόξο ενδιάμεσα ήταν απλό. Με ενεργοποιημένες τις Quick Properties έκανα click επάνω του και διάβαζα την τιμή της ακτίνας. Για μεγαλύτερη ακρίβεια, όπου χρειαζόταν, έκανα Endpoint και Center.
 
Όπου υπήρχε κλωθοειδής η ακρίβεια αναπαραγωγής της εξαρτώταν από την πυκνότητα των επιμέρους ευθύγραμμων τμημάτων που την απάρτιζαν. Και τελικά δεν είχα πρόβλημα στις χιλιομετρήσεις.
Έπιανα με αριστερό παράθυρο όλα τα επιμέρους ευθύγραμμα τμήματα, τις κόκκινες γραμμές στο layer της.
Έχοντας ενεργοποιημένες τις Quick Properties αυτομάτως άνοιγε παράθυρο με τα στοιχεία των γραμμών.
Αν στην property Length υπήρχε μια ενιαία τιμή κι όχι various αυτό σήμαινε ότι δεν κρυβόταν κάποιο μικρό ευθύγραμμο τμήμα ή άλλη κλωθοειδής. Οπότε μετά έκανα join.
Και είχα το μήκος της κλωθοειδούς στις Quick Properties.
Αν όχι τότε έψαχνα με το μάτι. Αν δεν έβρισκα το διαφορετικό τμήμα μετρούσα το μήκος ενός τμήματος κι έβρισκα όλα τα όμοιά του με Quick Select για αυτό το μήκος σε αυτά τα τμήματα και τα έκανα join.
 
Τόσο απλά. Πολύ δουλειά μεν αλλά συγκροτημένη και ακριβής δε.

Έτσι πέρασα 85 χλμ.
Ο άξονας από Join των επιμέρους τμημάτων του μελετητή είχε μήκος 85301.0369μ, από την μέθοδό μου 85301.2189, δηλαδή μεγαλύτερος κατά 0.182μ και η αναγραφή του μελετητή ήταν 85301.037μ.
Υποφερτή διαφορά για το είδος του έργου αναφοράς.

Αμαρτίες μελετητών παιδεύουσιν εργοταξιακούς τοπογράφους.

Friday, 9 April 2021

Trimble Business Center : Incapable of exporting corridor with variable SideSlope through RXL templates.

There are some cases that a corridor can not be exported correctly or at all through RXL templates.

Correct surface


One of this is when a template has a Side Slope with a varying slope through eg a table with no surface to catch assigned.
It simply fails showing an error message. Complete failure. No file at all.
 
 
Error message
 


At a similar case where a surface is not assigned but the SideSlope is constant then the exported RXL is a complete mess. Added lines from nowhere and wrong SideSlopes . A now warning at all RXL file full of serious mistakes !!!
 
No comment



Another case is when a template ends either with a varied SideSlope or with an element such as Offset/Elevation that is based on a target or a table to set its exact width, height or slope.
In this case the exported templates do not reflect the desired form.
The exported template is broken into templates adjusted at each horizontal and vertical point of intersection of the hinge point. The slope that the original template had at this stationing is kept and applied constantly throughout until the next template.
Finally you get an RXL file full of errors, no warning at all !!!


Red for wrong daylights. Green for correct. Yellow for POIs.


So it is impossible to export through RXL templates a variable Side Slope either in the form of a SideSlope/CutFill or just in the form of line.

Such a frustrating limitation!

The only semi workaround i have found is to do the export through "RXL road export from surface".

Trimble Business Center : RXL road exporter from surface : Critical parameter for curved alignments

Exported Corridor Surface can have a wrong form like the below.

Watch the triangles top right. 

This is happening only at curved alignments when an exporting parameter is not set to the proper value.

Here is what to do.
Select Export.
At the Export window select RXL road exporter by surface.
At the settings set parameter "Adjust for arc/chord offset:" Yes
 

Now the exported RXL is correct.

 


Thursday, 8 April 2021

Trimble Business Center v5.20 : Corridor : Slope/Elevation direction tip

I created a template with a Slope/Elevation for the left side. Desired slope direction was towards the left side no further actions required.
I mirrored it to the right. And the Slope/Elevation direction was towards left though it should be to the right.
I got almost crazy trying to find what was going on.
 
Finally i found the solution.
By default the slope is towards the left side. To set it to the right the point that is attached to must have a positive offset from its previous one! If it is vertical a 0.00001 value is enough to turn the set the direction to the right.
 
Trimble should mention this at the manual. I lost 7 hours from my work trying to find a solution.
 
This problem was reported to a Trimble forum and was answered by Alan Sharp. The solution was the same. I should have checked there from the very first time.
 

Thursday, 4 March 2021

Subassembly composer multiple nested decisions issues and workarounds

I used to work with SubAssembly Composer (SAC) 2014 because it was the last version allowing a variable to be deleted and recreated with the same name not reporting the message that this variable already exists. Same thing happens when a variable is cut and pasted somewhere else. Trying to rename from copy to the previous name resulted to the same message. A serious bug that autodesk never responded to my notifications at the civil 3d customization support forum.

I created a subassembly using SAC 2014.Working at it, step by step it became huge and unresponsive.
Solution :
I turned to SAC 2018. This version handles huge subassemblies far better.

Copy or cut/paste a variable makes it impossible to use it with the same name, as mentioned at the beginning of this topic.
Solution :
Declare all variables inside a Sequence at the very start of the program. So there is no need to move it to another place. Not a good solution for someone that is used to programming but...

Finally i reached to a level of complexivity that doing a minor change had a huge time cost.
Solution :
I started unlinking all unecessary nodes keeping linked only those for the case i wanted to create or examine. Quite annoying but i did not find another workaround. For this to work  properly i had to keep written notes about how to reproduce each case.

But even so there was also a quite annoying time lag during changes or addings.
Solution :
Cut the preceding link. Everything takes place on the fly.

But no link or point already entered is available to select. Empty dropdown lists !
Solution :
The above method is perfect as long as no poimt or link selection has to be made. If so i found a better workaround.
Instead of cutting the preceding link i do a dummy insertion eg an empty shape so an error takes place.
Whatever is inserted, changed or moved takes place on the fly.
And best of all, all points and links are available to select.

Finally i have to connect all nodes. Program becomes completely unresponsible. It never unfreezes.
Solution :
Cut the very first node.
Join all others.
Save it using a name that identifies this.
Save it again removing this identification.
Do the every first join.
It freezes. Finally it reports a message that it is out of memory. Press OK. Save it.
It freezes again. But it is saved.
End it by force.
In case of changes use the one that is cut at the very first node. Repeat the above steps.

Notice :
Variables, Points and Links declared in a Switch or Decision are NOT available out of this Switch or Decision scope !!!

Saturday, 6 February 2021

Civil 3D upgrade. Native subassembly property GetValueFrom issues.

So you have some complex assemblies made of native Civil 3D subassemblies.
You upgrade to a newer version.
You use the same assemblies to a new dwg or even you just open an existing dwg with the new version.
Everything works fine.
BUT...you have to make a change. Make subassemblies property changes to GetValueFrom eg Slope from a previous one. You select the value to override with. Check is automatically assigned.
But no changes take place at the drawing. You look again and the value is not assigned! Yes, Civil 3D fooled you.
The only way to achieve this change is to use a current version of the native Civil 3D subassembly for the one to GetValueFrom . Then the following, previous version, subassemblies can actually GetValueFrom.

Tuesday, 7 May 2019

Civil 3D and SAC insanity...once again.

I created a subassembly using SAC2014.
It checks corridor stationing to decide to do some actions.
I have a decision like the following.

math.floor((StationValue-StaStart)/Step) = (StationValue-StaStart)/Step and StationValue>=StaStart and StationValue<=StaEnd

For StationValue=4059, StaStart=4045, Step=2, StaEnd=4059 the result was False !!! because floor was 6 (???!!!) and full double was 7. Insane !!!

I changed to math.round and values became equal so it should turn to True. But i did not !!!???

Being one step before madness i reduced the region less than the StaEnd and then i got it back.
Everything got as expected.
Simple Corridor rebuilding  or region stationing extending by grips does not trully rebuilds that station. Only reducing region stationing that much so that the desired station does not exist and then extending back worked out.

Autodesk's products insanity.

I made a test. Changed SAC code back to "Floor". Reloaded subassembly and rebuilded the corridor. Everything looked as expected so the result was True. But i did not trust it. So i reduced region stationing and then restored it.
Guess what. Now it turned to False. Again. So true rebuild for a station takes place only if it is vanished and restored !!!

Back to "Round" and everything worked fine although it should with "Floor".

Insanity continued...
I did the region stationing changes using the plan view grips.
When finally subassembly worked as expected plan view was immediatelly updated.
But the Cross Section View was not ! I had to move the Sample Line back and forth to update !