Exemplo n.º 1
0
Arquivo: Conv.cs Projeto: 15831944/EM
        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);
        }
Exemplo n.º 2
0
Arquivo: Ldr.cs Projeto: 15831944/EM
        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);
        }