poly_ArcsLines(this ObjectId idPoly, string nameLayer) { List <ObjectId> ids = new List <ObjectId>(); using (var tr = BaseObjs.startTransactionDb()){ Polyline poly = (Polyline)tr.GetObject(idPoly, OpenMode.ForWrite); for (int i = 1; i < poly.NumberOfVertices; i++) { double bulge = poly.GetBulgeAt(i - 1); if (bulge == 0) { ObjectId id = Draw.addLine(poly.GetPoint3dAt(i - 1), poly.GetPoint3dAt(i), nameLayer); id.changeProp(clr.red); BaseObjs.updateGraphics(); ids.Add(id); } else { ObjectId id = Draw.addArc(poly.GetPoint3dAt(i - 1), poly.GetPoint3dAt(i), bulge, nameLayer); id.changeProp(clr.red); BaseObjs.updateGraphics(); ids.Add(id); } } tr.Commit(); } return(ids); }
drawLdr(Point3d pnt3d, double txtSize, string nameLayer, short color) { ObjectId idLdr = ObjectId.Null; bool Stop = false; bool escape = false; PromptStatus ps; ObjectIdCollection ids = new ObjectIdCollection(); Point3dCollection pnts3d = new Point3dCollection(); pnts3d.Add(pnt3d); int k = 0; do { k = pnts3d.Count; pnt3d = UserInput.getPoint("\nPick Next Vertex: ", pnts3d[k - 1], out escape, out ps, osMode: 0); if (ps == PromptStatus.Cancel) { ids.delete(); return(ObjectId.Null); } if (ps == PromptStatus.None) { switch (ids.Count) { case 0: return(ObjectId.Null); default: Stop = true; idLdr = Draw.addLdr(pnts3d, false, nameLayer: "ARROW"); ids.delete(); break; } } else { ids.Add(Draw.addLine(pnts3d[k - 1], pnt3d)); pnts3d.Add(pnt3d); } }while (!Stop); return(idLdr); }