Saturday 1 November 2014

Custom Windows desktop software x64 : TGO report file manipulation

Trimble Geo Office report files contain data that is difficult to use.
Each cross section contains various points.
If you want to draw them as continuous lines then you have to do this by joining points one by one.

My solution...
It is quite easy for an Excel user to get rid of useless data and create a simple text file with PENH data.
With my Civil 3D 2014 custom command PENH2SO the file can be converted to an extended one with station and offset for each point.
Finally this file can give as many files as needed. Every point next to axis is added to a unique file.
L01 for the first left point next to axis for each cross section ordered by ascending station, L02 for the second one...R01 for the first right ones, R02 for the second...X for the axis.
If there is a break then a new file is created, eg L0101,L0102...
From within Civil 3D  using my custom command PENHLOAD each line in seerate file can be drawn.

It does not run from within Civil 3D but from the Windows desktop. The program must be downloaded with the addition of the below following DLL to the same location.

Main program
Required DLL

Civil 3D 2014 custom command : Point East North Elevation file to Station and offset and surface elevation

With custom command PENH2SOE a file with Point East North Elevation data with a comma, space or tab delimiter can be loaded. The user selects a reference alignment and a file with PENHSO extension is created. It contains the above data extended with points' station and offset.
With custom command PENH2AS a similar file can be loaded. But the user can optionally select a surface to get an additional output extension, the surface elevation. File extension is PENH2AS.

Prerequisites

Civil 3D 2014 custom subassembly : Double drainage broken back

2017.01.11 link update

With this subassembly it is possible to enter a double drainage broken back ending to axis or earthworks level or to a user selected offset or to an earthworks slope.
Drainage grade minimum set to 4%.
Inside and outside endings can be NJB (or similar) horizontal level with slope, earthworks slope or user selected distance from asphalt limit line.
Drainage backs, asphalt limit lines, earthwork hinges, NJB level hinges and point on earthwork slopes can be entered numerically or by offset target.

NJB inside, earthworks and drainage cut to axis
Steep cut slope outside, drainage ends to it

Same case inside but grade is to steep so there is a drainage-earthwork levels intersection.
Fill slope outside.

Same case inside but no axis cut.

Outside end to user selected offset (eg retaining wall)

Same case with above but reversed grade

Same case with above but limited to axis

Double drainage broken back

Wednesday 15 October 2014

Tuesday 7 October 2014

Civil 3D 2014 custom command : PENHload

Using custom command PENHload a Point East North Height file is loaded. Delimiter can be comma, space, tab. The code i wrote is smart enough to find itself what the delimiter is without asking for it. It can also be a GSI 8 or 16 file!
After loading it is possible to draw...
all points
all serial lines or 2D or 3D polylines from one point to another
point ids
point elevations
and more
But the best of all is that the point ids can be drawn in what ever user current view in what ever rotated view beside the reference point. So if you have a 3D plan of an abutment it is very helpfull to print all the points to stakeout in 3D view with there ids next to them fully readable.

Prerequisites

Saturday 4 October 2014

Civil 3D 2014 custom subassembly : Two target line

2017.01.11 update

This subassembly creates a link between two points.
Those points can be entered using dX,dY or by selecting offset and/or elevation targets.
User has also the option to select a point to use as a pivot and superelevation for the height of the other point. If Superelevation to use is set to none then default grade is used. In this case Grade is side free and its sign is always considered from left to right.
Points and link codes can be entered from the user.

TwoPtLine_v1.02.pkt

Civil 3D 2014 custom subassembly : DitchWall

2017.01.11 update

This is a subassembly for a very special case of a ditch that works like a retaining wall with heels!

DitchWall_v4

Civil 3D 2014 custom subassembly : Ditch

2017.01.11 update

This is a subassembly for a special kind of ditches.
Ditch_v4

 

Civil 3D 2014 custom command : Profile export and import

Some times there is need to export a profile and reenter it to another alignment which may differ to start and end stations.
Command PrfExp exports it and PrfImp imports it.
Prerequisites

Civil 3D 2014 custom command : Profile fit


Sometimes profile does not exactly fit to alignment so there might be elevation problems with some cross sections.
Using command PrfFit then if profile is shorter than alignment it automatically fits. If longer nothing happens.
Prerequisites

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.