鱼与熊掌 发表于 2015-8-10 22:06:36

获取多段线的顶点坐标. 欢迎拍砖,新手代码

      
      public void tt()
      {
            Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            Database db = HostApplicationServices.WorkingDatabase;
            Editor ed = doc.Editor;
            PromptEntityOptions enOpts = new PromptEntityOptions("选择一个多段线");
            PromptEntityResult enRes = ed.GetEntity(enOpts);
            if (enRes.Status == PromptStatus.OK)
            {
                //绘图事物
                using (Transaction trans = db.TransactionManager.StartTransaction())
                {
                  Entity en = (Entity)trans.GetObject(enRes.ObjectId, OpenMode.ForRead);
                  if (en is Polyline)
                  {
                        Polyline pl = (Polyline)en;
                        int pts_len = pl.NumberOfVertices;
                        for (int i = 0; i < pts_len; i++)
                        {
                            ed.WriteMessage(pl.GetPoint3dAt(i).ToString() +"\n");
                        }
                        ed.WriteMessage("你选择的是PolyLine");
                  }
                  else
                  {
                        ed.WriteMessage("你选择的是" + en.GetRXClass().Name);
                  }
                  trans.Commit();
                }
            }
      }

czb203 发表于 2020-10-22 07:56:22


非常好的代码,谢谢楼主分享

vladimirputin 发表于 2020-10-21 22:43:42

非常好的代码,谢谢楼主分享。

Zhouwl 发表于 2020-11-28 15:53:56

谢谢楼主,学习学习

434939575 发表于 2015-8-11 10:57:14

完全看不懂。这个难学不

鱼与熊掌 发表于 2015-8-11 11:01:01

434939575 发表于 2015-8-11 10:57 static/image/common/back.gif
完全看不懂。这个难学不

还行      需要 时间~~~~~~~~~

434939575 发表于 2015-8-11 11:11:33

我买了一本,李冠亿的,net深入浅出。没勇气看。没啥语音基础

鱼与熊掌 发表于 2015-8-11 14:31:47

434939575 发表于 2015-8-11 11:11 static/image/common/back.gif
我买了一本,李冠亿的,net深入浅出。没勇气看。没啥语音基础

..这本书我也有

hfzengzhen 发表于 2015-8-12 17:15:41

获取选择的对象,判断该对象的类型if (en is Polyline)    和    en.GetRXClass().Name

ivde 发表于 2015-8-21 01:21:39

都不喜欢用 GetStretchPoints?

鱼与熊掌 发表于 2015-8-21 09:26:10

ivde 发表于 2015-8-21 01:21 static/image/common/back.gif
都不喜欢用 GetStretchPoints?

孤陋寡闻 多谢提醒

SWAYWOOD 发表于 2015-8-25 12:15:27

GetStretchPoints也比较好用!

j15tty 发表于 2015-9-19 10:17:17

获取多段线顶点坐标

/// <summary>
      /// 获取多段线的顶点
      /// </summary>
      /// <param name="pline">多段线对象</param>

      public static Point3dCollection GetPolyPoints(this Polyline pline)
      {
            Point3dCollection pts = new Point3dCollection();
            int i;
            for (i = 0; i < pline.NumberOfVertices; i++)
            {
                Point3d pt = pline.GetPoint3dAt(i);
                pts.Add(pt);
            }
            return pts;
      }
页: [1] 2
查看完整版本: 获取多段线的顶点坐标. 欢迎拍砖,新手代码