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); }