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.
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
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.