家在湾里 发表于 2011-6-17 13:17:00

线段求和源代码(支持线段、多段线、圆、椭圆、样条曲线)


      public void my1()
      {
            Document acDoc = Application.DocumentManager.MdiActiveDocument;
            Database acCurDb = acDoc.Database;
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            try
            {
                using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
                {
                  BlockTable acBlkTbl;
                  acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
                  BlockTableRecord acBlkTblRec;
                  acBlkTblRec = acTrans.GetObject(acBlkTbl,
                                                    OpenMode.ForWrite) as BlockTableRecord;
                  PromptSelectionOpti** pso = new PromptSelectionOpti**();
                  PromptSelectionResult psr = ed.GetSelection(pso);
                  if (psr.Status == PromptStatus.OK)
                  {
                        Selecti**et ss = psr.Value;
                        int lcount = 0;
                        int n = ss.Count;
                        double result = 0;
                        for (int i = 0; iPromptStatus.OK Then Exit Sub
            Dim OBJ As Object = AcTrans.GetObject(EntRec.ObjectId, OpenMode.ForRead)
            Dim a As Ellipse = CType(OBJ, Ellipse)      
            b = a.Spline
            MsgBox(a.GetDistAtPoint(a.EndPoint))
      End Using
这样才是对的!

sieben 发表于 2011-6-19 08:04:00

如果是VB的。我坚决相信把A的类型改成Object.就可以直接通用到所有的有长度的对象了!
页: [1]
查看完整版本: 线段求和源代码(支持线段、多段线、圆、椭圆、样条曲线)