C3D-0314 · 260714 Huckaby: transmission line geometry + linetypes done
READ-ONLY. Transmission/power entities with their linetypes and scales, those layers settings, all loaded linetypes, and LTSCALE/CELTSCALE/PSLTSCALE.
C# payload
// READ-ONLY: the transmission line entities + every linetype available, to match the PDF's
// ---w---w--- power line symbology.
Log("drawing: " + Db.Filename);
var ms = (BlockTableRecord)Tx.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(Db), OpenMode.ForRead);
Log("=== TRANSMISSION / POWER ENTITIES ===");
foreach (ObjectId id in ms) {
var ent = Tx.GetObject(id, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
if (ent == null) continue;
string L = ent.Layer.ToUpper();
if (L.IndexOf("TRANSMISSION") < 0 && L.IndexOf("POWER") < 0 && L.IndexOf("OHP") < 0 && L.IndexOf("ELEC") < 0) continue;
var ln = ent as Line;
var pl = ent as Polyline;
string geom = "";
if (ln != null) geom = string.Format("({0:F2},{1:F2})->({2:F2},{3:F2}) len={4:F2}",
ln.StartPoint.X, ln.StartPoint.Y, ln.EndPoint.X, ln.EndPoint.Y, ln.Length);
if (pl != null) geom = string.Format("verts={0} len={1:F2} closed={2}", pl.NumberOfVertices, pl.Length, pl.Closed);
var lt0 = (LinetypeTableRecord)Tx.GetObject(ent.LinetypeId, OpenMode.ForRead);
Log(string.Format("[{0}] {1,-10} layer={2,-32} ltype={3,-16} ltscale={4:F3} {5}",
ent.Handle, ent.GetType().Name, ent.Layer, lt0.Name, ent.LinetypeScale, geom));
if (pl != null) for (int i=0;i<pl.NumberOfVertices;i++){var v=pl.GetPoint2dAt(i);Log(string.Format(" v{0} ({1:F2},{2:F2})",i,v.X,v.Y));}
}
Log("");
Log("=== LAYER SETTINGS for those layers ===");
var lt = (LayerTable)Tx.GetObject(Db.LayerTableId, OpenMode.ForRead);
foreach (ObjectId id in lt) {
var ltr = (LayerTableRecord)Tx.GetObject(id, OpenMode.ForRead);
string L = ltr.Name.ToUpper();
if (L.IndexOf("TRANSMISSION") < 0 && L.IndexOf("POWER") < 0 && L.IndexOf("OHP") < 0 && L.IndexOf("ELEC") < 0) continue;
var lts = (LinetypeTableRecord)Tx.GetObject(ltr.LinetypeObjectId, OpenMode.ForRead);
Log(string.Format("{0,-34} ltype={1,-16} color={2} lw={3} frozen={4} off={5}",
ltr.Name, lts.Name, ltr.Color.ColorIndex, ltr.LineWeight, ltr.IsFrozen, ltr.IsOff));
}
Log("");
Log("=== LINETYPES LOADED ===");
var ltt = (LinetypeTable)Tx.GetObject(Db.LinetypeTableId, OpenMode.ForRead);
foreach (ObjectId id in ltt) {
var r = (LinetypeTableRecord)Tx.GetObject(id, OpenMode.ForRead);
Log(string.Format("{0,-22} dashes={1} \"{2}\"", r.Name, r.NumDashes, r.Comments));
}
Log("");
Log("LTSCALE=" + Db.Ltscale + " CELTSCALE=" + Db.Celtscale + " PSLTSCALE=" + Db.Psltscale);
Result
Log
drawing: C:\Users\sanja\Downloads\mike_ACAD-260714 - 285 Huckaby Rd R142.dwg === TRANSMISSION / POWER ENTITIES === [28] Line layer=SS-V-TRANSMISSION CENTER LINE ltype=ByLayer ltscale=1.000 (2204430.19,1206715.28)->(2203658.52,1207011.55) len=828.76 [2A] Line layer=SS-V-TRANSMISSION CENTER LINE ltype=ByLayer ltscale=1.000 (2203443.93,1207051.59)->(2203658.52,1207011.55) len=218.39 [2E] Line layer=SS-V-TRANSMISSION CENTER LINE ltype=ByLayer ltscale=1.000 (2206388.89,1207398.33)->(2204867.83,1207381.50) len=1521.66 [2F] Line layer=SS-V-TRANSMISSION CENTER LINE ltype=ByLayer ltscale=1.000 (2204867.83,1207381.50)->(2203403.96,1207371.06) len=1464.02 === LAYER SETTINGS for those layers === SS-V-TRANSMISSION CENTER LINE ltype=Continuous color=1 lw=ByLineWeightDefault frozen=False off=False === LINETYPES LOADED === ByBlock dashes=0 "" ByLayer dashes=0 "" Continuous dashes=0 "Solid line" DASHED dashes=2 "Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _" CENTER dashes=4 "Center ____ _ ____ _ ____ _ ____ _ ____ _ ____" FENCELINE2 dashes=4 "Fenceline square ----[]-----[]----[]-----[]----" GAS_LINE dashes=3 "Gas line ----GAS----GAS----GAS----GAS----GAS---" DASHED4 dashes=2 "_ _ _ _ _ _ _ _ (1/2 of Dashed2)_ _ _ _ _ _ _ _" ACAD_ISO05W100 dashes=6 "ISO long-dash double-dot ____ .. ____ .. ____ ." Dash dashes=2 "Dash LINE" FENCELINEX dashes=3 "Fenceline X ----X-----X----X-----X----X-----X--" FENCE dashes=3 "FENCELINE ---- X ---- X ---- X ----" DASHED2 dashes=2 "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _" LTSCALE=40 CELTSCALE=1 PSLTSCALE=True
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.