找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1896|回复: 2

[原创] 练习 Lisp定义GetStretchPoint

[复制链接]

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-4-20 16:44:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1.         [LispFunction("GetStretchPoint")] //定义一个函数名称,Lispfuction
  2.         public static ResultBuffer getStretchPoint(ResultBuffer rb) //要用返回值模式 ResultBuffer
  3.         {
  4.             ResultBuffer resultBuffer = new ResultBuffer(); //初始化返回值链表
  5.             Document document = Application.DocumentManager.MdiActiveDocument; //当前文档
  6.             Transaction trtTransaction = document.TransactionManager.StartTransaction(); //事务处理
  7.             using (trtTransaction)
  8.             {
  9.                 try
  10.                 {
  11.                     //参数不能为 nil
  12.                     if (rb != null)
  13.                     {
  14.                         TypedValue[] rbArr = rb.AsArray(); //Convoert to Array
  15.                         TypedValue entId = rbArr[0]; //取出第一个参数
  16.                         //并且是 Entity 并且只有一个参数
  17.                         if (entId.TypeCode == (int) LispDataType.ObjectId && rbArr.Length == 1)
  18.                         {
  19.                             ObjectId objId = (ObjectId) entId.Value; //将第一个参数转换为Object
  20.                             Entity entity = (Entity) trtTransaction.GetObject(objId, OpenMode.ForRead, false);
  21.                                 //转换为Entity
  22.                             Point3dCollection pnts = new Point3dCollection(); //初始化一个保存StretchPoints 的集合
  23.                             entity.GetStretchPoints(pnts); //获取Entity的StretchPoints赋给 pnts
  24.                             //将 获取的 Pnts 中的值加入到返回值
  25.                             foreach (Point3d pnt in pnts)
  26.                             {
  27.                                 resultBuffer.Add(new TypedValue((int) LispDataType.Point3d, pnt));
  28.                             }
  29.                             ;
  30.                         }
  31.                     }
  32.                     trtTransaction.Commit(); //提交事务处理
  33.                     return resultBuffer; //返回值
  34.                 }
  35.                     //错误处理暂时还没有学到
  36.                 catch (Exception)
  37.                 {
  38.                     throw;
  39.                 }
  40.             }
  41.         }

(getstretchpoint (car (Entsel)))

评分

参与人数 1D豆 +5 收起 理由
qq1254582201 + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 9个

财富等级: 恭喜发财

发表于 2019-4-19 12:44:34 | 显示全部楼层
学习了 谢谢楼主
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 58个

财富等级: 招财进宝

发表于 2019-9-30 22:29:06 来自手机 | 显示全部楼层
请教一个问题,得到点是顺时针还是随机的,想用vlacoffset 得到偏移一定距离点集
来自: 微社区
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-28 16:55 , Processed in 0.176220 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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