明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4104|回复: 12

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

[复制链接]
发表于 2015-8-10 22:06:36 | 显示全部楼层 |阅读模式
  1.         [CommandMethod("tt")]
  2.         public void tt()
  3.         {
  4.             Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
  5.             Database db = HostApplicationServices.WorkingDatabase;
  6.             Editor ed = doc.Editor;
  7.             PromptEntityOptions enOpts = new PromptEntityOptions("选择一个多段线");
  8.             PromptEntityResult enRes = ed.GetEntity(enOpts);
  9.             if (enRes.Status == PromptStatus.OK)
  10.             {
  11.                 //绘图事物
  12.                 using (Transaction trans = db.TransactionManager.StartTransaction())
  13.                 {
  14.                     Entity en = (Entity)trans.GetObject(enRes.ObjectId, OpenMode.ForRead);
  15.                     if (en is Polyline)
  16.                     {
  17.                         Polyline pl = (Polyline)en;
  18.                         int pts_len = pl.NumberOfVertices;
  19.                         for (int i = 0; i < pts_len; i++)
  20.                         {
  21.                             ed.WriteMessage(pl.GetPoint3dAt(i).ToString() +"\n");
  22.                         }
  23.                         ed.WriteMessage("你选择的是PolyLine");
  24.                     }
  25.                     else
  26.                     {
  27.                         ed.WriteMessage("你选择的是" + en.GetRXClass().Name);
  28.                     }
  29.                     trans.Commit();
  30.                 }
  31.             }
  32.         }
发表于 2020-10-22 07:56:22 | 显示全部楼层

非常好的代码,谢谢楼主分享
发表于 2020-10-21 22:43:42 | 显示全部楼层
非常好的代码,谢谢楼主分享。
发表于 2020-11-28 15:53:56 | 显示全部楼层
谢谢楼主,学习学习
发表于 2015-8-11 10:57:14 | 显示全部楼层
完全看不懂。这个难学不
 楼主| 发表于 2015-8-11 11:01:01 | 显示全部楼层
434939575 发表于 2015-8-11 10:57
完全看不懂。这个难学不

还行      需要 时间  ~~~~~~~~~
发表于 2015-8-11 11:11:33 | 显示全部楼层
我买了一本,李冠亿的,net深入浅出。没勇气看。没啥语音基础
 楼主| 发表于 2015-8-11 14:31:47 | 显示全部楼层
434939575 发表于 2015-8-11 11:11
我买了一本,李冠亿的,net深入浅出。没勇气看。没啥语音基础

..这本书我也有
发表于 2015-8-12 17:15:41 | 显示全部楼层
  获取选择的对象,判断该对象的类型  if (en is Polyline)    和    en.GetRXClass().Name
发表于 2015-8-21 01:21:39 | 显示全部楼层
都不喜欢用 GetStretchPoints?
 楼主| 发表于 2015-8-21 09:26:10 | 显示全部楼层
ivde 发表于 2015-8-21 01:21
都不喜欢用 GetStretchPoints?

孤陋寡闻 多谢提醒
发表于 2015-8-25 12:15:27 | 显示全部楼层
GetStretchPoints也比较好用!
发表于 2015-9-19 10:17:17 | 显示全部楼层

获取多段线顶点坐标

  1. /// <summary>
  2.         /// 获取多段线的顶点
  3.         /// </summary>
  4.         /// <param name="pline">多段线对象</param>

  5.         public static Point3dCollection GetPolyPoints(this Polyline pline)
  6.         {
  7.             Point3dCollection pts = new Point3dCollection();
  8.             int i;
  9.             for (i = 0; i < pline.NumberOfVertices; i++)
  10.             {
  11.                 Point3d pt = pline.GetPoint3dAt(i);
  12.                 pts.Add(pt);
  13.             }
  14.             return pts;
  15.         }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 04:52 , Processed in 0.167726 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表