Saturday 23 August 2014

Civil 3D 2014 custom command : PVI extend

Some times there is a need to extend a profile at its start or end by moving a PVI or adding a new one using the starting or ending grade.
Command PVIext does the job.
Prerequisites

Civil 3D 2014 custom commands program download addresses and instructions


This is the DropBox address  you can refer to download my DLL that contains my commands that i mention in my posts. You must also download this DLL.
Both must be saved in the same whatever place.


It works only with Civil 3D 2014.
It is written using Visual Basic.NET Express 2013.


When in Civil 3D 2014 at the command line enter NETLOAD, select the C3D2014TKV.dll and load it. This must be done only once in every new session. Afterwards whatever custom command of my own is available.


New posts mean that those DLLs must be downloaded again for the refered commands to exist.



2017.01.11 addition

For version download...
2016 : C3D2016TKV.dll  TKVclassLibraryNet2013.dll
2017 : C3D2017TKV.dll  TKVclassLibrary_vs2015_frmwrk4.6.dll

Civil 3D 2014 custom command : Sample Line Group Material Export

QTO HTML export is not always suitable for excel manipulation.
Using custom command SLGME a more suitable text report comes out.
It is a tab delimiter one.
Prerequisites

Sunday 10 August 2014

Προένταση στο Civil 3D

Ως γνωστόν οι προεντασάδες υλοποιούν μόνοι τους τις θέσεις των τενόντων. Έλα όμως που το συγκεκριμένο συνεργείο είχε προφανή αδυναμία ορθής εφαρμογής. Και την πλήρωσα εγώ.

Κάθησα κι έγραψα ένα subbasembly ευτυχώς όχι σε NET όπως παλιά αλλά με τον subassembly composer.

Έπρεπε...
...να εφαρμόζει στο δάπεδο του φορέα μια επίκλιση ανεξάρτητα από το τι γίνεται στο κατάστρωμα κυκλοφορίας (είναι αμφικλινές) κι ανεξάρτητα πλευράς του τένοντα ως προς τον άξονα
...να εφαρμόζει την μεταβλητή οριζοντιογραφική θέση του τένοντα με alignment ανεξάρτητη από αυτή της γέφυρας
...να εφαρμόζει την μεταβλητή local profile του τένοντα πάνω στο δάπεδο του φορέα που είχε την δική του profile κι αυτή η εφαρμογή να γίνεται είτε κατακόρυφα είτε κάθετα στον φορέα!!!
...να γίνεται εφαρμογή είτε για το κέντρο της σωλήνας είτε για την στέψη της (για έλεγχο) είτε στον πυθμένα της για υλοποίηση

Έκανα κι από μια alignment και profile για κάθε τένοντα (εδώ μου γεννήθηκε και η ανάγκη για ένα πρόγραμμα που να κάνει on the fly επέκταση μηκοτομής όταν αυτή δεν επαρκεί ως μήκος έστω και για λίγα χιλιοστά-το πρόγραμμα ακολουθεί τις επόμενες μέρες) , στο assembly του φορέα έφτιαξα μια νέα baseline με region αποκλειστικά για τους τένοντες, εισήγαγα το subassembly μου, έδωσα τιμές σε όλες τις properties (default επίκλιση, επίκλιση προς εφαρμογή, οριζ και υψομ defaults, κάθετα ή κατακόρυφα, πάχος σωλήνα, θέση υπολογισμού-στέψη,κέντρο,πυθμένας) και επέλεξα όλα τα target.

Πολλή δουλειά αλλά με ένα απλό export στο Leica-RoadRunner η εφαρμογή στη γέφυρα αλλά κι ο έλεγχος της υλοποίησης από τον προεντασά έγινε υγιεινός περίπατος την εξοχή!

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

Κάποια στιγμή θα ανεβάσω και την διεύθυνση με το pkt του subassembly για public download.
 

Civil 3D API help

Πρόσφατα χρειάστηκε να γράψω ένα ακόμη πρόγραμμα για το Civil 3D 2014. Σε .NET με Visual studio 2013 express edition και Visual Basic.
Οι HTML report lists που εμφανίζει από το QTO είναι μη αξιοποιήσιμες από το EXCEL.
Έπρεπε λοιπόν να κάνω εξαγωγή ανά Alignment/SLG/Material list/Material/Station με συγκεκριμένο format.
Η τρέχουσα έκδοση έκανε expose του QTO για πρώτη φορά! Έλα όμως που ως συνήθως το documentation είναι απλά επιφανειακό. Τέλος πάντων βρήκα και το path και την area propery που ήθελα.
Τεστάροντας όμως είδα ότι έπαιρνα πάντα area value μηδέν. Θεώρησα ότι δεν ήταν τελικά αυτό το ζητούμενο path και property κι άρχισα να ξαναψάχνω στα τυφλά μέσα στο API.
Στα πρόθυρα της παράνοιας κατέληξα δια της εις άτοπον απαγωγή ότι η αρχική μου επιλογή ήταν η ορθή κι ότι υπήρχε bug. Η property ήταν exposed αλλά ο προγραμματιστής ξέχασε να κάνει assign την value. Κι αυτό γιατί τα σημεία που όριζαν την επιφάνεια και ήταν προσβάσιμα κι έδιναν την προσδοκώμενη τιμή όταν την υπελόγιζα με απλό κομπιουτεράκι.
Οπότε έγραψα και μια fucntion για να υπολογίζω μόνος μου την επιφάνεια. Μόνον που τα πράματα δεν ήταν τόσο απλά. Η επιφάνεια μπορεί να ήταν μια σύνθεση από πολλές κλειστές επιφάνειες.
Τελικά όλα πήγαν καλά. Τις επόμενες μέρες θα δώσω και την διεύθυνση όπου αυτό το πρόγραμμα θα μπορεί να γίνει download.