Tuesday 24 October 2017

Autocad tips and knowledge. Also Cadalyst-Lynn Allen videos

Autodesk knowledge base
Turn off background of a field assigned to an attribute
Export and import custom dwg properties to other dwgs
Add custom shortcut to a command
Start CAD session with a user selected profile - Shortcut solution
Start CAD session with a user selected profile - Registry solution
Startup switches for AutoCAD
Command line switch reference
To Preview the Effects of a Plot Style Table in a Layout
Some layouts cannot be imported into a sheet set (SSFOUND)
Edit object type list - Does not show when invoked
Entering line breaks in table cells
Preventing text in blocks from being mirrored with block or MTEXT 
To Control the Display of the UCS Menu
Commands for working with file tabs
Show/Hide VPorts controls (Top left of ModelSpace Screen)
Texts do not follow the Text Style
Saving raster image in DWG file to eliminate need for external image file
Command ghost preview
Cadalyst-Lynn Allen videos
OP Draft EnableDim&Pattern selection
RemoveFromWorkingSet for Blocks & Xrefs
PEDIT Multiple - To join multiple non touching lines
Click on an object and then on top of viewCube to zoom to
LTGAPSELECTION to osnap on gapped linetypes
Quick commands : 1.Icon to quick menu 2.CUI-Shortcut order 3.CUI-create shortcut
Switch among pspace views : CTRL+R, create pspace views : MVIEW

Saturday 30 September 2017

Civil 3D limited automated annotation. Alignment name can not be mentioned for an axis in a Section View.

I tried to find a fully automated way to annotate alignment axies in section views. Bummer !

I did an internet search. Same problem for other users.

Profile Grade Line Marker Point is capable of using blocks containing whatever info. But all this must be made by hand, one by one !!!

So i used VB.net to create a custom app to solve this problem.

Reads the Civil database and gets all the axies (with or without profile).
Exposes them to the user to select which of them to work with using CheckedListBox.
Creates blocks with the Alignment names.
Assigns them to new MarkerPoint Styles.
Select PGL to create using those new MarkerPointStyles.

I could also create plain autocad points and text for each PGL but these objects do not belong to the section view and that is a disadvantage.

App soon to be completed and available for downloading for Civil 3D 2017.

Autocad custom apps : DBtext rotation angle

Well, always the same problem when it is time to code for angles.
Where is the zero, what direction, what units...

This is for the Autodesk.Autocad.Database.DBtext (single line text)
Here is the code for this case

        Dim AngleIs As Double
        AngleIs = CDbl(Me.tbAngle.Text) 'angle got in Gradians from a text box
        AngleIs -= 100 'Gradians i said
        AngleIs = -AngleIs
        AngleIs = AngleIs * math.PI/200 'Gradians i said

Units : radians
Direction : CounterClockWise
Zero : Positive X axis

Autocad custom apps : Block entities assignment cases

A block can add Entities using two methods.

block.AppendEntity(entity)
Entities created and added immediately in the block, not the BlockTable

block.AssumeOwnerShipOf(CollectionOfObjectIDs)
Entities are already created and exist in the BlockTable. If not copied then after commiting transaction they dissapear from the Model/Paper Space blocks and they "live" only in the block !

I had a hard time trying to configure how to do the second case. Adding existing entities to a block. All examples i found were for the first case.

Tuesday 26 September 2017

SAC : strings, enums and math

In Subassembly Composer is possible to refer to the Math library of Microsoft Visual Basic.
But it is not possible to use simple functions such as CSTR or CDBL. No further library can have a reference.

Also Enum.value results to a string value. It can be used in Switch. But it can not be used as a string in a point code ! To do this you must DefineVariable (string) and finally assign the variable to the point Code !

Codes are capable of direct strings or direct string variables. 

Monday 28 August 2017

VB net Serialization : ShouldSerialize boolean function (not in MSDN)

When serializing a property it is possible to include it or exclude it using the boolean function ShouldSerializeXXXX where XXXX is the exact name of the property !
In MSDN there is no straight reference to it.

eg

<SXS.XmlAttribute(AttributeName:="desc")> Public Property desc As String = String.Empty

Public Function ShouldSerializedesc() As Boolean
   If desc = String.Empty Then Return False Else Return True
End Function

FeatureLine based Corridor Baseline results to hidden Alignment & Profile exposed through API !!!

I develop a custom Civil 3D plugin to export alignments, profiles and corridor cross sections to LandXML.
I used a dwg with various cases for testing.
There was a case of a Corridor that uses a Feature Line for Baseline.
When getting Alignments and Profiles i found out that Civil 3D creates a hidden Alignment and Profile for this Feature Line !!!
The Profile type although unnamed has an enum value of 5 !!!

Monday 31 July 2017

Civil 3D road corridor with multiple shoulders. One corridor. Two baselines one for each side vs one baseline using conditional subassemblies. Trimble Link Roads export. Leica Infrastructure Link export.

In a road corridor a common case is the existing of both sides different kind shoulders.

A way to deal with it is creating a single corridor with two baselines refering to the same alignment
and profile, one for each side.
Breaking the baselines into multiple regions each one ending to a different shoulder.
So subassemblies are created for one side at a time.
Final count of them is significant less as also regions needed, than if a single baseline would exist for both sides. Also much simpler and understandable.
BUT exporting to a Trimble sensor is a problem. Although user creates a single surface with both sides, Trimble Link exports a seperate RXL for each side.
Also Leica HeXML export breaks apart corridor into two layers, one for each side.

Another way to deal with it is to create a single corridor with one baseline and only one region.
Assembly is based on conditional offset assemblies for different shoulders. So if user declares a target then the correspondent subassembly is applied !
Conditional target needs not to be drawn on the exact trail. Just joining start to end of the certain kind of shoulder.
Caution ! A good practice is to create Targets as properly named Feature Lines and even better in properly named Layers. This approach is time consuming but leads to less mistakes and it is easier to examine and make changes.
Also it is crucial that Sections are added for each start and end of each Conditional Offset Target for each side.
Obviously there is no problem exporting to either sensor.
BUT there is a huge "bug".
In the first case shoulder always changes at the start and end of each region.
But in this case shoulder does not change at the exact station a conditional target is apllied !!!
There is a tolerance which is not user accessible.
I have found that this tolerance is a 0.042m delta East from the edge of the declared target of the Conditional Offset Assembly that has the priority.
This is equivalent to the first case (of two baselines multiple regions) using 4.2cm (East to West) gaps among regions.

So, Conditional Offset Subassemblies is not a solution when strict accuracy is expected regarding stationing performed.

My preffered approach is...
...the first case of Corridor creation
...exporting corridor sections as two LandXML files containing only sections, one for each side, through my custom Civil 3D plugin
...join those two sided sections into a single one, based on stationing using another custom desktop NET software of mine
...finally attaching them to the Civil 3D alignment (and profile) export using my previously mentioned custom software or MS XML editor (not preffered-time consuming) or a Text editor (need to be carefull where to do the join).

But this is also not the best solution if there is a need for ovelapping conditional subassemblies. Leica import for LandXML does not assign C3D point names but custom names based on side and ascending offset position. If names were used points would be joined correct. But in this case sections are totally a mess.
Why overlapping conditional subassemblies ? It is very simple. GOMACO cable extensions !

Worst of all.
Leica Infrastructure Link exporting to HeXML is a perfect LandXML enhancement since points are named -even though using a weird manner- and is LandXML and HeXML schema error free
But in some cases finally unexplained error stops the transformation to RoadRunner job. eg "error found at position 1469"

 

Friday 7 July 2017

Civil 3D corridor baseline based on Feature Line export to sensor

Trimble Link is capable of no question exporting these kind of baselines !
Leica Infrastructure Link displays an error message and no export takes place.
Leica X-Change is discontinued. Last version was for Civil 3D 2016. This feature is available from v2017.

Civil 3D Trimble Link Road export tip. Feature lines unchecked. Point empty coding.

When exporting a Civil 3D Corridor to a Trimble sensor using Trimble Link the apropriate Corridor Surfaces must have already been created.
But no Cross Sections will be exported if Surface is created through Links that the Feature Lines at the two edges of each Link are not checked !
This also means that uncoded points can not create a Trimble Link exportable surface !

 

Leica Infrastructure Link discontinued ?

It is July. March was the release date of Civil 3D 2018. There is no Leica Infrastructure Link for it. Maybe discontinued ?

No. Released at the first week of August. Nothing new. Same problems. Same limitations. Just working with C3D2018. Simple DLL recompilation using latest references.

Leica Infrastructure Link multiple baseline corridor export

In case a Corridor consists of more than one Baselines based on different Alignments then all Feature Lines checked in whatever Baseline are exported but only the first Baseline Alignment is exported ! All other are ignored ! Finally only one Layer is created for the entire Corridor.
So it is not possible to set the appropriate Centerline when in RoadRunner.

X-Change was capable of producing multiple Layers.

So it is crucial to work only with X-Change and up to Civil 3D 2016
or
create mutiple Corridors, one for each Baseline
or
do multiple HeXML exports having checked only one Baseline per session but it does not work
follow this link https://infrastructuresurveyor.blogspot.gr/2017/06/i-had-corridor-with-multiple-baselines.html

Friday 30 June 2017

Generating vb.net classes using XSD schemas !!! A miracle ? No ! Just a bummer !

Two freeware solutions for producing Classes from XSD !!!

Microsoft's XSD.exe
Capable of using multiple schemas at one pass but too many errors and arrays instead of lists !!!

My path for the xsd.exe...
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\xsd.exe

In case a schema refers to another eg "HeXML-1_5.xsd" refers to "LandXML-1_2.xsd" the syntax should be as following...

xsd.exe LandXML-1_2.xsd HeXML-1_5.xsd /classes /language:vb

https://stackoverflow.com/questions/35285713/vb-net-create-class-from-xsd-and-generate-xml

https://bembengarifin.wordpress.com/2009/07/14/generate-net-class-from-xsd-with-references-to-other-xsd-using-xsd-exe/


XSD2CODE.exe
Not capable of handling multiple schemas at one pass.
Found at https://xsd2code.codeplex.com/

https://stackoverflow.com/questions/9386754/using-xsd2code-with-multiple-schema-files


Finally there is also another guy that ran into the same problems.
https://stackoverflow.com/questions/35658403/error-deserializing-xml-in-c-sharp

Endless corrections leading to...bummer. Hours lost for nothing. Crapware.

Just, do not bother loosing time with them.



Wish i had time to make my own conversion software.

VB.net How to print an object properties without iterating them by name. Also two ways to get enum value.




Wednesday 14 June 2017

LandXML & Civil 3D tips, clarifications and important matters to remind me while programming

LandXML angular direction :
Unit is always Decimal Degrees
Positive values only, counter clockwise, zero to East

LandXML horizontal alignment elements :
Are set in CoordGeom
Common to Civil 3D are Line, Curve and Spiral (others are Irregular line and Feature ?)

LandXML horizontal alignment element Spiral :
Civil 3D supports only Spiral.SPItype=Clothoid

LandXML horizontal alignment element Curve (Civil 3D Arc) :
Civil 3D supports only crvType=arc

Civil 3D api can be viewed only using Chrome. IE does not show side window elements !?
http://docs.autodesk.com/CIV3D/2018/ENU/API_Reference_Guide/

Civil 3D alignment simple type entities are subentities of more complex ones like SCCS etc.

LandXML theta angle :
is Pi-SpiralIncludedAngle in degrees and is always positive and less than Pi.
Spiral Included Angle is the angle between Short and Long tangents and is always positive and less than Pi.

Friday 2 June 2017

Leica Infrastructure Link - Civil 3D corridor export : failure - Autocad JIT error message "Enumeration has either not started or has already finished"

Searching for a workaround for the previous post i tried exporting the corridor with all baselines checked.
And i got the following message.


More serious bug reports to come...

Leica Infrastructure Link - Civil 3D corridor export : bug - Layer centerline set to wrong baseline alignment

I had a corridor with multiple baselines attached to multiple alignments.
I unchecked all of them except one of them which it was the only one i wanted to export.
I used Leica Infrastructure Link to export it.
Finally i used the MS XML editor to view the exported HeXML file.

The alignment of the checked baseline was not exported.
Instead of it, the alignment of the first (and unchecked) baseline was exported !
The correct feature lines were exported.
Finally the wrong exported alignment was attached to the layer as a centerline.



 

TPS1200 RoadRunner cannot be used for checking tunnel sections

I had a Civil 3D corridor with a tunnel.
I exported it as LandXML file.
I used the Layer check option of RoadRunner.
Unfortunately it only references the cross section vertically. Not perpendicular to it.
It gets the plumb point to the cross section and the ref lines among it are used for further calculations.
I could not find a perpendicular option for the layer check.
I guess this is, among others, a major difference between RoadRunner Road and Tunnel modules.

 
 
 
 

Leica Infrastructure Link - Civil 3D export corridor : failure - Autocad JIT error message "This operation on featureline-based baseline is invalid"

One of the top rated in the wish list about Civil 3D was the option to create a corridor using feature line baseline type. Civil 3D 2017 was the first version to support it.

Leica X-Change no longer exists since this C3D version.
Its successor Leica Infrastructure Link freeware must be used instead.

Running this addon pressing the "Read Civil Objects" button user sees the following message.
The program stucks at this point.



OR

After reading civil objects when trying to save "Export HeXML" user sees the following message

Well at least it is multithreaded. So in either cases user can press Continue and then the OK button and end this addon. But no export takes place.
Same thing happens even if baselines feature line based are unchecked when rebuilding the corridor.
Only solution is to revert to the previous baseline type method of alignment/profile.


Well. It is obvious that Leica developers did not examine the changes between v2016 and v2107.
In v2017 baselines types can differ. Developer should examine if it is "IsFeaturelineBased" or else the above exception is thrown. At least there should exist a user notification.

Leica developers should have seen this link
https://knowledge.autodesk.com/support/autocad-civil-3d/learn-explore/caas/CloudHelp/cloudhelp/2017/ENU/Civil3D-DevGuide/files/GUID-6D41D043-4958-40B7-9C7E-45A6D780955B-htm.html

Thursday 27 April 2017

Civil 3D 2017 : corridor endless out of date status finally missing after saving drawing

https://forums.autodesk.com/t5/autocad-civil-3d-forum/corridor-out-of-date/td-p/2923316

"

My problem was even worse not just Rebuild status always on.
 
Immediatelly after saving dwg...
 
...an alignment, some feature lines and the corridor that is built on them were lost. Just not existing anymore in prospector and screen !
Undoing resurrected them !
 
OR
...the above mentioned alignment was visible but not existing in the prospector ! I could right click on it and handle it although it was a...ghost ! Corridor reported it as its baseline !
If my next action was...
...moving it siteless the object became visible to prospector and everything became normal !
...saving dwg again, alignment became invisible and corridor reported that had no baselines ! Totally lost. Single undo does nothing. Second undo ressurects corridor object and the graph but not the alignment object to the prospector.
 
Had to find a solution since saving and loosing them was not an option and ofcourse keeping it open until a solution was found in the future is impossimble (on the way to madness and what could i say to my supervisors expecting from me to finish just a simple job)
 
I was lucky enough to find out that setting the alignment to whatever site, new or existing with whatever name is the caution to loose it and the corridor that is attached to it and also the feature lines.
 
Moving to site none (siteless) , rebuilt status clears after rebuilding and saving works fine !
 
I attach the dwg. First import in an empty dwg the also zipped subassemblies and then open the dwg.
The objects i mentioned above are...
alignment named...EDL002B240_TKV
corridor named...EDL002B240_TKV
feature lines...both siteless
Try move them to existing site or a new one and then rebuild. Rebuild status remains on whatever i do.
Finally try saving dwg twice.

"

Monday 3 April 2017

Visual studio 2017, autoCAD 2017, edit & continue

I am so happy !
Just realised that installing Service Pack 1 to autoCAD or Civil 3D 2017, it is possible to use full Edit & Continue with MS Visual studio 2017 community edition !!!

FULL Edit & Continue !!! By its exact meaning !!!
No workarounds, no Visual Studio extra settings.
Not just view variables.
Allowed to hit new breakpoints while running.
Allowed to change code.
Autocad loading and running absolutely fine.
Must be dreaming !!!

https://forums.autodesk.com/t5/net/edit-and-continue/td-p/6910483

http://adndevblog.typepad.com/autocad/2016/07/autocad-2017-sp1-and-net-debugging.html

Thursday 16 March 2017

Civil 3D 2017 custom programme, Section views Elevation Minimum set on the fly

Elevation minimum of selected section views can be changed on the fly with this custom programme-plug in, for Civil 3D 2017.

First download the plug in...
https://www.dropbox.com/s/bhpgymcp4herkdq/C3D2017_SectionViewElevMin.dll?dl=0
and save it anywhere you want

Then when in autocad at command line enter NETLOAD and select C3D2017_SectionViewElevMin.dll

At the command line enter setHRZ
enter the new horizon (minimum elevation)
select the desired section views

Finally right click on a section view line and select Update Section View Layout

 

AutoCAD object properties exposed by Active X as ReadOnly

Visual LISP is great tool considering portability and debugging.
It uses active x to get objects.
There are properties exposed by active x that are exposed as Read Only while in NET they are exposed as Read Write !
For example in Civil 3D, section views, elevation min/max, offset left/right are ReadOnly when getting through active x. So i had to turn to NET to change their values.

So a good practice before starting developing using VBA or Visual Lisp is to check whether properties are exposed by active x and if so if they are writeable.

A on the fly method to get the available properties and their RW availability is through command line entering the following command.

(vlax-dump-object (vlax-ename->vla-object (car (entsel))) T)

The T at the end asks for the available methods and can be omitted.
The (RO) next to property indicates that are Read Only.

Following is a copy-paste from the results in command window (F2)...

; IAeccSectionView: interface IAeccSectionView
; Property values:
;   Application (RO) = #<VLA-OBJECT IAeccApplication 000000007499ce10>
;   BandSet (RO) = #<VLA-OBJECT IAeccSectionViewBandSet 000000007499e5b8>
;   Description = ""
;   DisplayName (RO) = "0+880 (45)"
;   Document (RO) = #<VLA-OBJECT IAeccDocument 0000000074996570>
;   ElevationMax (RO) = 35.0
;   ElevationMin (RO) = 28.0
;   EntityTransparency = "ByLayer"
;   Handle (RO) = "8C4D"
;   HasExtensionDictionary (RO) = 0
;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0000000075afed68>
;   Layer = "Sections & Section Views Dev"
;   LengthLeft (RO) = -11.2552
;   LengthRight (RO) = 31.6704
;   Linetype = "ByLayer"
;   LinetypeScale = 1.0
;   Lineweight = -1
;   Material = "ByLayer"
;   Name = "0+880 (45)"
;   ObjectID (RO) = 42
;   ObjectName (RO) = "AeccDbGraphCrossSection"
;   OffsetLeft (RO) = -11.2552
;   OffsetRight (RO) = 31.6704
;   Overrides (RO) = #<VLA-OBJECT IAeccSectionOverrides 000000007499aec8>
;   OwnerID (RO) = 43
;   Parent (RO) = #<VLA-OBJECT IAeccSampleLine 000000004bd402b0>
;   PlotStyleName = "ByLayer"
;   ShowToolTip = -1
;   Style = #<VLA-OBJECT IAeccSectionViewStyle 000000004fc38ed0>
;   StyleName (RO) = "TKV - CS name and station"
;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 0000000075afea00>
;   Type (RO) = 4
;   VerticalScale = 1.0
;   Visible = -1
; Methods supported:
;   ArrayPolar (3)
;   ArrayRectangular (6)
;   Copy ()
;   Delete ()
;   FindStationOffsetAndElevationAtXY (6)
;   FindXYAtStationOffsetAndElevation (6)
;   GetBoundingBox (2)
;   GetExtensionDictionary ()
;   GetXData (3)
;   Highlight (1)
;   IntersectWith (2)
;   IsReferenceObject ()
;   IsReferenceStale ()
;   IsReferenceSubObject ()
;   IsReferenceValid ()
;   IsValid ()
;   Layout ()
;   Mirror (2)
;   Mirror3D (3)
;   Move (2)
;   Rotate (2)
;   Rotate3D (3)
;   ScaleEntity (2)
;   SetXData (2)
;   TransformBy (1)
;   Update ()
T

Wednesday 11 January 2017

Link updates

Today, Wednesday 11 January 2017, i updated all the previously mentioned links since DropBox changed its policy about Public folders.

Funny thing. I saw some sites that accessed my blog. I entered them. All of them were for...adults! Obviously only internet bots visit this blog!

So i keep going on with my main purpose which is to have an online from anywhere accessible site from which i can review my past tips, tricks, workarounds etc.

Civil 3D cross sections to sheets/layouts/sheetsets

Cross sections produced by Civil 3D can be automatically put into custom sheets, paperspace layouts and sheet sets.

How to do it...

First of all create a new dwt.
Then create a new paperspace layout using a name which points to the plotter, sheet size and orientation, and the scale to be used so that it is recognisable.
Modify it to the desired plotter type, sheet size and orientation and scale.
Scale is crucial. At the viewport frame properties Annotation and Standard Scales should be identical.

The above steps can be followed for creating various combinations.


















In dwg file Create multiple section views, select Section placement, press the button next to Production, select the desired dwt and finally select the desired paperspace layout to use.
It is crucial for all scales to be identical.
Layout selected Annotation and Standard scales should be the same with current dwg scale.



















After selecting all the other desired settings then sheets are automatically created.

















Those sheet objects now only exist in model space. In order to automatically create paperspace layouts...
either type CREATESECTIONSHEETS at the command line
...or  click on a sheet object which results into displaying the Section sheet panel from which press the button Create section sheets
and now be careful to make all the proper and desired selections

















Now paperspace layouts are created, also sheet set that point to those paperspace layouts.

Critical tips :



When creating dwt beware of layer property "New VP freeze". If set to freeze for a layer that is supposed to be Visible (thawed) then objects set in this layer will be invisible.
Beware also of the same property for layers in dwg.





Section views group original insertion position is for life. Once created then the whole pack cannot be permantly moved. Once Update layout takes place then everything goes back. It is also a bad practice to move them since PaperSpace Layout ViewPorts will point to original position. It can be moved to target the expected window but it is meaningless.











Further Tips :

Neither Sheet objects nor Layout objects are updated in case dwt paperspace layouts change. Recreation of section sheets and PaperSpace layouts must take place.
It does not work like XREFs or DataShortcuts. Unfortunately!

 
Beware of the scales. All of them must be equal
Or have a proper custom scale (Standard to annotation ratio) ! In such a case

Sheet objects can not be further proccessed once created. No properties. No nothing!
Just click on it to display Ribbon tab Section sheet and get the option to create Paperspace layouts and SheetSets. That's all.
Clicking on it and then right click displays a dropdown menu with no further usefull options.
I guess this is an area that autodesk has lots of options for future additions.


Watch out about manually erasing Section View Objects!

If all section view objects within a Section View Group are erased then the Section View Group object is not erased! It still exists but it does not react to right click Properties or Update layout.
Sheet objects do also exist. They must be manually erased but even though, Section View Group is not erased!
In case a Section View Group is deleted then all remaining empty sheets are deleted.

If some section view objects are manually erased then doing Update Layout on anyone of the remaing ones, erases empty sheets.

In whatever every deletion case all PaperSpace layouts still exist but Section View objects erased are missing from within Viewports. They must be manually erased.
Sheet sets are also not affected in whatever above deletion case. They still point to those deleted or affected dwg PaperSpace layouts. When selecting then a message appears prompting to either erase the link or set it to another PS layout.
 

 
 
 

Civil 3D 2017 paths...

Custom subassemblies using NET
"C:\Program Files\Autodesk\AutoCAD 2017\C3D\Sample\Civil 3D API\C3DStockSubassemblies"

Project reference path for COM programming
"C:\Program Files\Common Files\Autodesk Shared\Civil Engineering 110"

Basic project reference files for autocad NET programming
acdbmgd.dll, acmgd.dll, AecBaseMgd.dll, AeccDbMgd.dll, accoremgd.dll
also files
Autodesk.AutoCAD.Interop, Autodesk.AutoCAD.Interop.Common
all of them found at
"C:\Program Files\Autodesk\AutoCAD 2017"

Basic project reference files for Civil 3D NET programming
Autodesk.AEC.Interop.Base, Autodesk.AEC.Interop.UIBase
found at
"C:\Program Files\Autodesk\AutoCAD 2017\ACA"
also files
Autodesk.AEC.Interop.Land, Autodesk.AEC.Interop.UiLand
Autodesk.AEC.Interop.Roadway, Autodesk.AEC.Interop.UiRoadway
and others
found at
"C:\Program Files\Autodesk\AutoCAD 2017\C3D"

Imported custom subassemblies
"C:\ProgramData\Autodesk\C3D 2017\enu\Imported Tools"

Custom Assemblies dragged to palettes
"C:\ProgramData\Autodesk\C3D 2017\enu\Assemblies"

Original autodesk templates
"C:\Users\LS-W7\AppData\Local\Autodesk\C3D 2017\enu\Template"

Original autodesk ToolPalettes
"C:\Users\LS-W7\AppData\Roaming\Autodesk\C3D 2017\enu\Support\ToolPalette\Palettes"

AeccContent_Dir, C3DStockSubassemblyScripts.codes and custom coding

When developing custom subassemblies for Civil 3D using MS.NET there might be a need for custom coding.
There are three ways to do it.

1. Rely on module "CodesSpecific.vb" provided from autodesk.
Developer may add custom codes. But none of it will be avalaible unless the file named "C3DStockSubassemblyScripts.codes" is informed with latest codes.
This file is in the directory which variable AeccContent_Dir points to.
This variable is readonly and its initial value is set when installing Civil 3D. If user does not change its location proposed by autodesk then it points to...
C:\ProgramData\Autodesk\C3D 2017\enu\C3DStockSubassemblyScripts.codes

2. A variation of the above approach is to alter the path and/or the name of the file it points to.
Path is get from the variable "AeccContent_Dir" and file "C3DStockSubassemblyScripts.codes" is set into the constCodesFile. Even alter the whole apporoach of getting the codes.

3. Totally ignore the autodesk coding approach and set codes directly which i think is the best approach.




 

Trimble TGO GPS site calibrations tips (2)

Beware of the rotation units GON vs Degrees.

On site calibrations can be saved to TGO Coordinate System Manager as Sites and get used to other jobs.

Adjustments is only for Trimble. A site calibration can be reproduced as Datum with TGO GPS calibration as 7 parameter. Original on site job required.