Sunday, January 11, 2015

GEOTABLES Free Curve, Line, and Point Tables for AutoCAD

I have been in AutoCAD customization mode a bit lately.  Today I worked on a cool Free Libre Open Software program I was paid to write by M2Group of Mesa, Arizona back in 2004 to create automated curve data tables (now also line and point data tables).  It's called Geotables, and it is one of my more well-written programs since it was written from scratch with the intent for it to be open source.  There's a pretty good brochure for it at the Wikia AutoCAD Wiki.  Anyway, I thought I might write a bit about it today partly to publicize that it is still very much viable and supported as well as to discuss a bit more what it does.

As the screen shot makes obvious, the purpose of Geotables is to create data tables for arcs and lines and their end points.  When I wrote Geotables, I included a robust user-editable variable system to make customization easy.  I also used blocks for all the objects Geotables creates so that any AutoCAD user can make the Geotables output look the way they want.  If you inspect the screen shot closely, you can see the 7 blocks that Geotables inserts:
  • the all-purpose ellipse-shaped label block: GeoTablesLabel
  • the header and table blocks for Curve, Line, and Point tables: GeotablesCHeader, GeotablesCTable, GeotablesLHeader, GeotablesLTable, GeotablesPHeader, GeotablesPTable,
For programming ease, I did not program Geotables to work with Polylines, UCSes, or Xrefs.  You have to explode polylines before you add labels (if you want, you can copy them to a different drawing, do the labeling there, then move or copy the labels back to your polylines; in other words, the labels and tables can exist without the source geometry).  You have to set UCS to world and use world coordinates.  And you have to create the ellipse labels in the same drawing the arcs and lines reside in.

Now for the good parts.

Multiple Sheets

To make Geotables work well with multiple-sheet projects, I included the ability to create tables in stages.  For example, you might want an entire project to have consistent numbering, so you might want to create labels in a single drawing.  But you might want the tables to be broken and/or repeated in part on many sheets.  Then well into a project, you might for some reason want to add or delete or recalculate a few labels without recalculating the entire project.  Geotables lets you do any of these things.  You can Create Labels Only.  Then you can insert a few of the labels (even without their objects) into another drawing or select a few of the labels in the overall drawing and create a table of just those labels.

Multiple Columns

If your table is very large, Geotables can create a multi-column table.  You just need to make sure the column width setting is correct in the source code.  That is why GeoTables always prompts you for the maximum number of rows per column (and you usually answer 1000 because you want only one column).

Changeable Rules

By default, Geotables combines any curves that are identical except for their rotation.  It combines any arcs or lines that are identical except for their location.  But you can make it stop doing that by looking for the Important variables in the source code: General.IsArcBearingImportant and General.IsArcLineLocationImportant.

Proximity Alerts

Geotables has settings for General.PointProximityAlertDistance, General.PointMergeDistance,  and General.PointGapAlertDistance to let you refine how it prevents duplicate points and bad geometry.  The source code explains carefully how these are used.

Other Settings

There are several other settings you can tweak if you need to including layer properties, output precisions, and text height (scale).

No comments: