← Inbox

C3D-CURBGEOM · Dump curb layer geometry done

Read-only: full vertex/bulge geometry of every Polyline, Polyline3d, Line and Arc on SS-V-ROAD-CURB, to compare hand-drawn curb against generated linework.

Script file
C3D-CURBGEOM.cs
Target
active document · model space
Author
claude
Approved
yes · auto-auth
Timeout
60s

C# payload

// READ-ONLY: dump geometry of every linework entity on SS-V-ROAD-CURB so I can compare
// the users hand-fixed lines against the 3D polylines I generated.
const string LAYER = "SS-V-ROAD-CURB";
foreach (ObjectId id in ModelSpace)
{
    var ent = Tx.GetObject(id, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
    if (ent == null || ent.Layer != LAYER) continue;

    var pl = ent as Polyline;
    if (pl != null)
    {
        var sb = new System.Text.StringBuilder();
        sb.Append($"PLINE h={ent.Handle} verts={pl.NumberOfVertices} len={pl.Length:F1} closed={pl.Closed} elev={pl.Elevation:F2} :");
        int bulges = 0;
        for (int i = 0; i < pl.NumberOfVertices; i++)
        {
            var p = pl.GetPoint2dAt(i);
            double b = pl.GetBulgeAt(i);
            if (System.Math.Abs(b) > 1e-9) bulges++;
            sb.Append($" ({p.X:F2},{p.Y:F2}{(System.Math.Abs(b) > 1e-9 ? ",b=" + b.ToString("F4") : "")})");
        }
        sb.Append($"  [arcs={bulges}]");
        Log(sb.ToString());
        continue;
    }

    var p3 = ent as Polyline3d;
    if (p3 != null)
    {
        var vs = new List<Point3d>();
        foreach (ObjectId vid in p3)
        {
            var v = Tx.GetObject(vid, OpenMode.ForRead) as PolylineVertex3d;
            if (v != null) vs.Add(v.Position);
        }
        double len = 0;
        for (int i = 1; i < vs.Count; i++) len += vs[i].DistanceTo(vs[i-1]);
        Log($"P3D   h={ent.Handle} verts={vs.Count} len={len:F1}");
        continue;
    }

    var ln = ent as Line;
    if (ln != null)
    {
        Log($"LINE  h={ent.Handle} len={ln.Length:F1} ({ln.StartPoint.X:F2},{ln.StartPoint.Y:F2}) -> ({ln.EndPoint.X:F2},{ln.EndPoint.Y:F2})");
        continue;
    }
    var arc = ent as Arc;
    if (arc != null)
    {
        Log($"ARC   h={ent.Handle} r={arc.Radius:F2} len={arc.Length:F1} center=({arc.Center.X:F2},{arc.Center.Y:F2})");
        continue;
    }
}

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260709 - 1512 Bass Rd, Macon, GA 31210, USA\260709 - 1512 Bass Rd.dwg
Message
Executed C3D-CURBGEOM (0 entities touched).
Entities
Duration
441 ms
Civil 3D
25.0.0.0

Log

LINE  h=1C90F len=771.1 (2429507.87,1064344.54) -> (2429525.77,1065115.08)
LINE  h=1C910 len=773.8 (2429532.88,1064342.83) -> (2429550.90,1065116.06)
PLINE h=1D0AC verts=8 len=32.2 closed=False elev=1195.30 : (2429015.91,1064608.86) (2429013.97,1064612.31) (2429009.75,1064613.96) (2429006.13,1064609.97) (2429008.16,1064603.87) (2429012.74,1064602.76) (2429015.42,1064605.54) (2429015.91,1064608.86)  [arcs=0]
LINE  h=1D0B7 len=1.6 (2429053.03,1064608.57) -> (2429052.31,1064607.17)
PLINE h=1D0B9 verts=9 len=89.4 closed=True elev=1197.49 : (2429108.67,1064691.10) (2429107.66,1064687.52) (2429135.54,1064678.51) (2429137.86,1064676.53) (2429140.14,1064674.39) (2429140.73,1064671.76) (2429145.36,1064672.40) (2429143.10,1064677.30) (2429139.16,1064680.82)  [arcs=0]
PLINE h=1D0BA verts=5 len=8.0 closed=False elev=1197.02 : (2429142.46,1064665.03) (2429142.82,1064666.62) (2429143.54,1064668.06) (2429144.02,1064669.56) (2429145.36,1064672.40)  [arcs=0]
PLINE h=1D0BD verts=5 len=11.3 closed=False elev=1196.51 : (2429139.61,1064669.34) (2429143.54,1064668.06) (2429142.82,1064666.62) (2429139.10,1064667.74) (2429139.61,1064669.34)  [arcs=0]
PLINE h=1D0BE verts=2 len=2.7 closed=False elev=1196.32 : (2429140.73,1064671.76) (2429139.61,1064669.34)  [arcs=0]
PLINE h=1D0BF verts=5 len=6.7 closed=False elev=1197.02 : (2429143.44,1064664.82) (2429143.77,1064666.29) (2429144.46,1064667.69) (2429144.95,1064669.19) (2429145.84,1064671.06)  [arcs=0]
LINE  h=1D0C8 len=1.0 (2429142.46,1064665.03) -> (2429143.44,1064664.82)
PLINE h=1D0C9 verts=5 len=32.4 closed=False elev=1195.09 : (2429163.15,1064655.46) (2429160.30,1064645.22) (2429158.07,1064637.07) (2429156.50,1064631.99) (2429164.26,1064629.92)  [arcs=0]
PLINE h=1D0CA verts=5 len=34.0 closed=False elev=1195.09 : (2429162.19,1064655.73) (2429159.34,1064645.49) (2429157.11,1064637.35) (2429155.36,1064631.68) (2429164.03,1064629.22)  [arcs=0]
LINE  h=1D0DD len=3.0 (2429099.20,1064591.66) -> (2429099.92,1064591.48)
LINE  h=1D0DE len=5.7 (2429099.92,1064591.48) -> (2429098.42,1064586.00)
PLINE h=1D0DF verts=5 len=22.0 closed=True elev=1197.98 : (2429072.37,1064603.41) (2429073.77,1064603.02) (2429070.87,1064593.79) (2429070.87,1064593.79) (2429069.68,1064594.20)  [arcs=0]
LINE  h=1D17A len=1.0 (2429045.38,1064696.46) -> (2429044.58,1064697.06)
LINE  h=1D31F len=0.7 (2429164.26,1064629.92) -> (2429164.03,1064629.22)
LINE  h=1D320 len=27.5 (2429112.05,1064607.90) -> (2429138.59,1064600.50)
LINE  h=1D321 len=2388.3 (2429138.59,1064600.50) -> (2429140.59,1064608.20)
LINE  h=1D322 len=2388.4 (2429140.59,1064608.20) -> (2429114.20,1064615.61)
LINE  h=1D323 len=8.0 (2429114.20,1064615.61) -> (2429112.05,1064607.90)
PLINE h=1EF80 verts=4 len=26.5 closed=False elev=1195.92 : (2429022.54,1064613.98) (2429023.89,1064614.84) (2429028.72,1064631.27) (2429030.49,1064638.85)  [arcs=0]
PLINE h=1EF81 verts=4 len=25.4 closed=False elev=1195.92 : (2429022.28,1064615.01) (2429023.04,1064615.49) (2429027.75,1064631.52) (2429029.52,1064639.07)  [arcs=0]
PLINE h=1EF8A verts=6 len=20.3 closed=False elev=1196.34 : (2429044.58,1064697.06) (2429046.12,1064696.32) (2429046.84,1064693.85) (2429046.71,1064688.51) (2429045.32,1064684.77) (2429041.94,1064678.97)  [arcs=0]
PLINE h=1EF8B verts=6 len=18.6 closed=False elev=1196.34 : (2429044.15,1064696.15) (2429045.28,1064695.61) (2429045.83,1064693.71) (2429045.72,1064688.70) (2429044.41,1064685.20) (2429041.07,1064679.48)  [arcs=0]
PLINE h=1EF8C verts=9 len=42.6 closed=False elev=1196.34 : (2429041.07,1064679.48) (2429038.26,1064674.32) (2429035.28,1064667.22) (2429033.63,1064661.71) (2429031.97,1064656.20) (2429030.24,1064650.65) (2429029.13,1064645.93) (2429029.11,1064642.12) (2429029.52,1064639.07)  [arcs=0]
PLINE h=1EF8D verts=9 len=42.0 closed=False elev=1196.34 : (2429041.95,1064679.00) (2429039.16,1064673.89) (2429036.23,1064666.89) (2429034.58,1064661.43) (2429032.92,1064655.91) (2429031.21,1064650.38) (2429030.13,1064645.81) (2429030.11,1064642.19) (2429030.51,1064639.21)  [arcs=0]
LINE  h=1EF96 len=1198.6 (2429030.49,1064638.85) -> (2429058.29,1064631.04)
LINE  h=1EF97 len=4.0 (2429032.92,1064647.51) -> (2429036.77,1064646.43)
LINE  h=1EF98 len=4.0 (2429036.98,1064661.95) -> (2429040.83,1064660.87)
LINE  h=1EF99 len=15.0 (2429036.98,1064661.95) -> (2429032.92,1064647.51)
LINE  h=1F575 len=15.0 (2429040.83,1064660.87) -> (2429036.77,1064646.43)
LINE  h=1F576 len=4.0 (2429034.95,1064654.73) -> (2429038.80,1064653.65)
P3D   h=20CE9 verts=4 len=45.0
P3D   h=20CEF verts=8 len=63.1
P3D   h=20CF9 verts=8 len=77.6
P3D   h=20D03 verts=2 len=3.2
P3D   h=20D07 verts=2 len=10.3
P3D   h=20D0B verts=8 len=42.1
P3D   h=20D15 verts=8 len=93.8
P3D   h=20D1F verts=7 len=68.5
P3D   h=20D28 verts=2 len=45.0
P3D   h=20D2C verts=8 len=81.4
P3D   h=20D36 verts=4 len=60.9
P3D   h=20D43 verts=7 len=39.0
P3D   h=20D4C verts=2 len=51.1
P3D   h=20DC1 verts=9 len=34.5
P3D   h=20DCC verts=12 len=123.9
P3D   h=20DDA verts=22 len=118.7
P3D   h=20DF2 verts=5 len=74.0
P3D   h=20DF9 verts=5 len=35.8
P3D   h=20E00 verts=14 len=59.4
P3D   h=20E10 verts=5 len=57.6
P3D   h=20E18 verts=7 len=104.4
P3D   h=20E21 verts=6 len=26.7
P3D   h=20E29 verts=5 len=104.3
LINE  h=20F1A len=56.4 (2428087.05,1064333.83) -> (2428045.95,1064370.83)
LINE  h=20F1B len=48.9 (2427981.34,1064423.05) -> (2427942.84,1064453.12)
LINE  h=20F1C len=11.1 (2427876.57,1064539.16) -> (2427867.90,1064532.23)
LINE  h=20F1D len=11.1 (2427867.90,1064532.23) -> (2427860.55,1064523.95)
LINE  h=20F1E len=7.2 (2427860.55,1064523.95) -> (2427857.36,1064517.44)
LINE  h=20F1F len=9.9 (2427857.36,1064517.44) -> (2427855.64,1064507.72)
LINE  h=20F20 len=4.8 (2427855.64,1064507.72) -> (2427855.00,1064502.96)
LINE  h=20F21 len=1.1 (2427855.00,1064502.96) -> (2427854.52,1064502.02)
LINE  h=20F22 len=2.2 (2427854.52,1064502.02) -> (2427853.03,1064500.45)
LINE  h=20F23 len=2.1 (2427853.03,1064500.45) -> (2427851.16,1064499.40)
LINE  h=20F24 len=1.4 (2427851.16,1064499.40) -> (2427850.03,1064498.57)
LINE  h=20F25 len=1.8 (2427850.03,1064498.57) -> (2427849.21,1064496.93)
LINE  h=20F26 len=0.4 (2427849.21,1064496.93) -> (2427849.13,1064496.55)
LINE  h=20F27 len=0.0 (2427849.13,1064496.55) -> (2427849.11,1064496.55)
LINE  h=20F28 len=4.4 (2427849.11,1064496.55) -> (2427850.70,1064492.44)
LINE  h=20F29 len=4.4 (2427850.70,1064492.44) -> (2427852.97,1064488.66)
LINE  h=20F2D len=13.3 (2427831.31,1064450.69) -> (2427818.16,1064452.41)
LINE  h=20F2E len=29.7 (2427818.16,1064452.41) -> (2427797.69,1064430.91)
LINE  h=20F2F len=56.2 (2427800.70,1064590.29) -> (2427813.07,1064537.84)
LINE  h=20F31 len=21.5 (2427781.98,1064553.13) -> (2427785.05,1064531.87)
LINE  h=20F33 len=22.1 (2427813.64,1064526.61) -> (2427812.91,1064504.53)
LINE  h=20F34 len=5.6 (2427812.91,1064504.53) -> (2427813.45,1064498.98)
LINE  h=20F35 len=7.8 (2427813.45,1064498.98) -> (2427815.07,1064491.34)
LINE  h=20F36 len=7.5 (2427815.07,1064491.34) -> (2427818.09,1064484.51)
LINE  h=20F37 len=8.2 (2427818.09,1064484.51) -> (2427824.72,1064479.71)
LINE  h=20F38 len=11.1 (2427824.72,1064479.71) -> (2427835.15,1064475.87)
LINE  h=20F39 len=9.4 (2427835.15,1064475.87) -> (2427844.48,1064476.41)
LINE  h=20F3A len=6.5 (2427844.48,1064476.41) -> (2427849.56,1064480.51)
LINE  h=20F3B len=0.1 (2427849.56,1064480.51) -> (2427849.67,1064480.51)
LINE  h=20F3C len=5.1 (2427849.67,1064480.51) -> (2427851.59,1064485.27)
LINE  h=20F3D len=3.4 (2427851.59,1064485.27) -> (2427852.74,1064488.51)
LINE  h=20F3E len=0.0 (2427796.19,1064605.18) -> (2427796.17,1064605.18)
LINE  h=20F3F len=4.7 (2427796.17,1064605.18) -> (2427798.73,1064601.18)
LINE  h=20F40 len=3.3 (2427798.73,1064601.18) -> (2427799.74,1064598.08)
LINE  h=20F41 len=7.9 (2427799.74,1064598.08) -> (2427800.70,1064590.29)
LINE  h=20F43 len=5.1 (2427769.79,1064596.39) -> (2427770.25,1064591.32)
LINE  h=20F44 len=2.9 (2427770.25,1064591.32) -> (2427770.94,1064588.50)
LINE  h=20F45 len=5.4 (2427770.94,1064588.50) -> (2427773.52,1064583.78)
LINE  h=20F46 len=19.2 (2427773.52,1064583.78) -> (2427779.11,1064565.44)
LINE  h=20F49 len=62.9 (2427796.19,1064605.18) -> (2427778.32,1064665.46)
LINE  h=20F4A len=16.7 (2427813.34,1064704.03) -> (2427797.62,1064698.52)
LINE  h=20F4B len=8.4 (2427797.62,1064698.52) -> (2427789.95,1064695.15)
LINE  h=20F4C len=7.8 (2427789.95,1064695.15) -> (2427783.77,1064690.42)
LINE  h=20F4D len=10.0 (2427783.77,1064690.42) -> (2427778.67,1064681.78)
LINE  h=20F4E len=4.6 (2427778.67,1064681.78) -> (2427777.46,1064677.38)
LINE  h=20F4F len=7.0 (2427777.46,1064677.38) -> (2427777.43,1064670.38)
LINE  h=20F50 len=5.0 (2427777.43,1064670.38) -> (2427778.32,1064665.46)
LINE  h=20F52 len=25.9 (2427874.24,1064754.19) -> (2427849.69,1064745.92)
LINE  h=20F53 len=5.4 (2427849.69,1064745.92) -> (2427844.26,1064745.94)
LINE  h=20F54 len=2.9 (2427844.26,1064745.94) -> (2427841.50,1064745.22)
LINE  h=20F55 len=5.2 (2427841.50,1064745.22) -> (2427837.64,1064741.72)
LINE  h=20F57 len=7.6 (2427860.95,1064720.25) -> (2427854.50,1064716.22)
LINE  h=20F58 len=3.2 (2427854.50,1064716.22) -> (2427851.46,1064715.28)
LINE  h=20F59 len=6.7 (2427851.46,1064715.28) -> (2427844.83,1064714.61)
LINE  h=20F5A len=33.2 (2427844.83,1064714.61) -> (2427813.34,1064704.03)
LINE  h=20F5C len=48.8 (2427837.64,1064741.72) -> (2427791.46,1064726.06)
LINE  h=20F5D len=8.2 (2427791.46,1064726.06) -> (2427783.52,1064723.99)
LINE  h=20F5E len=6.1 (2427783.52,1064723.99) -> (2427777.48,1064723.66)
LINE  h=20F5F len=4.4 (2427777.48,1064723.66) -> (2427773.15,1064724.37)
LINE  h=20F60 len=10.0 (2427773.15,1064724.37) -> (2427764.13,1064728.77)
LINE  h=20F61 len=8.5 (2427764.13,1064728.77) -> (2427758.45,1064735.04)
LINE  h=20F62 len=127.2 (2427769.79,1064596.39) -> (2427733.10,1064718.22)
LINE  h=20F63 len=4.3 (2427933.18,1064803.66) -> (2427929.40,1064801.64)
LINE  h=20F64 len=3.7 (2427929.40,1064801.64) -> (2427926.51,1064799.26)
LINE  h=20F65 len=4.5 (2427926.51,1064799.26) -> (2427924.60,1064795.15)
LINE  h=20F66 len=8.7 (2427924.60,1064795.15) -> (2427922.03,1064786.80)
LINE  h=20F67 len=3.2 (2427922.03,1064786.80) -> (2427921.24,1064783.71)
LINE  h=20F68 len=4.7 (2427921.24,1064783.71) -> (2427919.51,1064779.37)
LINE  h=20F69 len=6.2 (2427919.51,1064779.37) -> (2427916.02,1064774.30)
LINE  h=20F6A len=7.2 (2427916.02,1064774.30) -> (2427910.85,1064769.24)
LINE  h=20F6B len=6.4 (2427910.85,1064769.24) -> (2427905.40,1064765.83)
LINE  h=20F6C len=7.3 (2427905.40,1064765.83) -> (2427898.75,1064762.73)
LINE  h=20F6E len=6.9 (2427910.69,1064736.98) -> (2427917.61,1064737.48)
LINE  h=20F6F len=6.1 (2427917.61,1064737.48) -> (2427923.57,1064736.35)
LINE  h=20F70 len=5.0 (2427923.57,1064736.35) -> (2427928.00,1064733.99)
LINE  h=20F71 len=4.5 (2427928.00,1064733.99) -> (2427931.55,1064731.19)
LINE  h=20F72 len=1.6 (2427931.55,1064731.19) -> (2427932.71,1064730.11)
P3D   h=20F81 verts=6 len=55.9
LINE  h=20F98 len=68.3 (2427933.18,1064803.66) -> (2427997.98,1064825.25)
LINE  h=20F99 len=5.1 (2427997.98,1064825.25) -> (2428002.16,1064828.13)
LINE  h=20F9A len=7.3 (2428002.16,1064828.13) -> (2428005.99,1064834.33)
LINE  h=20F9B len=7.2 (2428005.99,1064834.33) -> (2428006.28,1064841.54)
LINE  h=20F9D len=6.7 (2428029.67,1064852.22) -> (2428032.62,1064846.16)
LINE  h=20F9E len=8.3 (2428032.62,1064846.16) -> (2428039.63,1064841.75)
LINE  h=20F9F len=7.8 (2428039.63,1064841.75) -> (2428047.46,1064841.69)
LINE  h=20FA0 len=3.0 (2428047.46,1064841.69) -> (2428050.31,1064842.41)
LINE  h=20FA1 len=5.0 (2428050.31,1064842.41) -> (2428055.03,1064844.02)
LINE  h=20FA2 len=2.2 (2428055.03,1064844.02) -> (2428057.14,1064844.58)
LINE  h=20FA3 len=7.0 (2428057.14,1064844.58) -> (2428063.74,1064846.84)
LINE  h=20FA4 len=1.4 (2428063.74,1064846.84) -> (2428064.85,1064847.62)
LINE  h=20FA5 len=1.3 (2428064.85,1064847.62) -> (2428064.48,1064848.86)
P3D   h=20FB0 verts=2 len=46.9
LINE  h=20FB4 len=1.4 (2427994.88,1064802.03) -> (2427993.63,1064801.33)
LINE  h=20FB5 len=2.7 (2427993.63,1064801.33) -> (2427992.50,1064798.88)
LINE  h=20FB6 len=18.0 (2427992.50,1064798.88) -> (2427988.27,1064781.44)
LINE  h=20FB7 len=29.7 (2427988.27,1064781.44) -> (2427960.05,1064772.15)
LINE  h=20FBF len=29.7 (2427993.49,1064774.78) -> (2427965.27,1064765.49)
LINE  h=20FC1 len=52.5 (2427860.95,1064720.25) -> (2427910.69,1064736.98)
LINE  h=20FC2 len=11.2 (2427813.07,1064537.84) -> (2427813.64,1064526.61)
LINE  h=20FC3 len=2.9 (2427889.22,1064480.15) -> (2427890.95,1064477.90)
LINE  h=20FC4 len=19.4 (2427890.95,1064477.90) -> (2427907.97,1064487.12)
LINE  h=20FC5 len=4.5 (2427907.97,1064487.12) -> (2427911.09,1064483.94)
LINE  h=20FC6 len=32.4 (2427911.09,1064483.94) -> (2427942.07,1064493.58)
LINE  h=20FC7 len=20.9 (2427942.07,1064493.58) -> (2427958.24,1064506.78)
LINE  h=20FC8 len=19.6 (2427958.24,1064506.78) -> (2427976.43,1064514.09)
PLINE h=20FCD verts=2 len=18.4 closed=False elev=414.11 : (2428026.93,1064744.86,b=-0.3158) (2428041.49,1064735.59)  [arcs=1]
LINE  h=20FCF len=19.4 (2428155.49,1064483.51) -> (2428140.24,1064495.49)
LINE  h=20FD1 len=72.3 (2428196.65,1064492.69) -> (2428135.26,1064529.86)
PLINE h=20FD2 verts=2 len=35.0 closed=False elev=419.62 : (2428155.49,1064483.51,b=-0.2032) (2428169.77,1064452.57)  [arcs=1]
LINE  h=20FD3 len=51.9 (2428123.35,1064442.77) -> (2428155.49,1064483.51)
LINE  h=20FDB len=80.9 (2428068.04,1064371.91) -> (2428117.93,1064435.58)
LINE  h=20FE5 len=20.7 (2427778.99,1064565.27) -> (2427781.98,1064553.13)

Notes

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

No notes yet.