Ejemplo n.º 1
0
        public bool StartDraw(out bool status)
        {
            status = false;
            Editor   ed = Application.DocumentManager.MdiActiveDocument.Editor;
            Database db = HostApplicationServices.WorkingDatabase;

            if (this.startPoint == null)
            {
                PromptPointOptions opt = new PromptPointOptions("\n 选择管道的初始点");
                PromptPointResult  res = ed.GetPoint(opt);
                if (res.Status == PromptStatus.Cancel)
                {
                    status = true;
                }
                if (res.Status != PromptStatus.OK)
                {
                    return(false);
                }
                this.startPoint = res.Value;
            }
            mline = new Mline();
            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                DBDictionary mlineStyleDic = (DBDictionary)tr.GetObject(db.MLStyleDictionaryId, OpenMode.ForRead);
                mline.Style = mlineStyleDic.GetAt("MLINEJIG");
            }
            mline.Normal = Vector3d.ZAxis;
            mline.Scale  = PipeLine.GetScale();
            mline.AppendSegment((Point3d)this.startPoint);
            mline.AppendSegment((Point3d)this.startPoint);
            PromptResult res2 = ed.Drag(this);

            if (res2.Status == PromptStatus.OK)
            {
                return(true);
            }
            else if (res2.Status == PromptStatus.Cancel || res2.Status == PromptStatus.None)
            {
                if (res2.Status == PromptStatus.Cancel)
                {
                    status = true;
                }
                return(false);
            }
            return(true);
        }