← Inbox

C3D-0320 · 260714 Huckaby R2: power centrelines to the GRCV squiggle done

Not a W - the squiggle. GRCV is the AutoCAD overhead-power linetype already loaded in this drawing (4 dashes, patLen 0.390, shape 133 from GRCV.shx, and the shape style is present so it renders). Assigns GRCV to SS-V-POWER-CL, sets the 4 centrelines ByLayer at LinetypeScale 40 for ~15.6 ft per squiggle on 350-1600 ft runs, and erases the POWER_LINE (W) linetype from the previous attempt. Verifies the layer assignment and each entity.

Script file
C3D-0320.cs
Target
260714 - 285 Huckaby Rd R2.dwg · model space
Author
claude
Approved
yes · auto-auth
Timeout
60s

C# payload

// Use the SQUIGGLE, not a W. GRCV is the AutoCAD overhead-power pattern and it is already loaded
// in this drawing: 4 dashes, patLen 0.390, with shape #133 from GRCV.shx as the squiggle glyph
// (verified C3D-0319, and the GRCV.shx shape style is present so it will actually draw).
//
// Puts SS-V-POWER-CL on GRCV, sets a LinetypeScale that suits 350-1600 ft runs, and purges the
// POWER_LINE linetype I made earlier so it does not linger.
const string LTNAME = "GRCV";
const string LAYER  = "SS-V-POWER-CL";
const double LTS    = 40.0;   // 0.390 * 40 = ~15.6 ft per squiggle

Log("drawing: " + Db.Filename);

var ltt = (LinetypeTable)Tx.GetObject(Db.LinetypeTableId, OpenMode.ForWrite);
if (!ltt.Has(LTNAME)) { Log("GRCV not loaded - stopping."); return; }
ObjectId ltId = ltt[LTNAME];
{
    var r = (LinetypeTableRecord)Tx.GetObject(ltId, OpenMode.ForRead);
    Log(string.Format("using {0}: dashes={1} patLen={2:F3} \"{3}\"", r.Name, r.NumDashes, r.PatternLength, r.Comments));
}

var lt = (LayerTable)Tx.GetObject(Db.LayerTableId, OpenMode.ForRead);
if (!lt.Has(LAYER)) { Log("layer " + LAYER + " missing - stopping."); return; }
var ltr = (LayerTableRecord)Tx.GetObject(lt[LAYER], OpenMode.ForWrite);
ltr.LinetypeObjectId = ltId;
{
    var back = (LayerTableRecord)Tx.GetObject(lt[LAYER], OpenMode.ForRead);
    var used = (LinetypeTableRecord)Tx.GetObject(back.LinetypeObjectId, OpenMode.ForRead);
    Log("layer " + back.Name + " linetype -> " + used.Name + " (verified)");
}

var ms = (BlockTableRecord)Tx.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(Db), OpenMode.ForWrite);
int n = 0;
foreach (ObjectId id in ms) {
    var probe = Tx.GetObject(id, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
    if (probe == null || !probe.Layer.Equals(LAYER, StringComparison.OrdinalIgnoreCase)) continue;
    var w = (Autodesk.AutoCAD.DatabaseServices.Entity)Tx.GetObject(id, OpenMode.ForWrite);
    w.LinetypeId = Db.ByLayerLinetype;
    w.LinetypeScale = LTS;
    n++;
    var back = (Autodesk.AutoCAD.DatabaseServices.Entity)Tx.GetObject(id, OpenMode.ForRead);
    var bl = (LinetypeTableRecord)Tx.GetObject(back.LinetypeId, OpenMode.ForRead);
    var line = back as Line;
    Log(string.Format("  [{0}] ltype={1} ltscale={2:F1} len={3:F1} -> ~{4:F0} squiggles (verified)",
        back.Handle, bl.Name, back.LinetypeScale,
        line != null ? line.Length : 0.0,
        line != null ? line.Length / (0.390 * LTS) : 0.0));
}

// ---- drop the W linetype from the previous attempt
if (ltt.Has("POWER_LINE")) {
    try {
        var dead = (LinetypeTableRecord)Tx.GetObject(ltt["POWER_LINE"], OpenMode.ForWrite);
        dead.Erase();
        Log("erased the earlier POWER_LINE (W) linetype");
    } catch (System.Exception e) { Log("could not erase POWER_LINE: " + e.Message); }
}

Log("");
Log(string.Format("GRCV squiggle applied to {0} centrelines on {1}", n, LAYER));
Ed.Regen();

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260714 - 285 Huckaby Rd, Brooks, GA 30205, USA\260714 - 285 Huckaby Rd R2.dwg
Message
Executed C3D-0320 (0 entities touched).
Entities
Duration
441 ms
Civil 3D
25.0.0.0

Log

drawing: C:\Users\sanja\OneDrive\_SurveyDisco\260714 - 285 Huckaby Rd, Brooks, GA 30205, USA\260714 - 285 Huckaby Rd R2.dwg
using GRCV: dashes=4 patLen=0.390 "GRCV---~~----~~---"
layer SS-V-POWER-CL linetype -> GRCV (verified)
  [20C9D] ltype=ByLayer ltscale=40.0 len=893.0 -> ~57 squiggles (verified)
  [20C9E] ltype=ByLayer ltscale=40.0 len=364.6 -> ~23 squiggles (verified)
  [20CA9] ltype=ByLayer ltscale=40.0 len=1514.6 -> ~97 squiggles (verified)
  [20CB1] ltype=ByLayer ltscale=40.0 len=1569.6 -> ~101 squiggles (verified)
erased the earlier POWER_LINE (W) linetype

GRCV squiggle applied to 4 centrelines on SS-V-POWER-CL

Notes

What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.

No notes yet.