找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 774|回复: 4

[求助] [求助]:如何获得闭合已有多线段的点信息用于SSGET "WP" 的定义范围

[复制链接]
发表于 2002-8-1 09:31:21 | 显示全部楼层 |阅读模式

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

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

×
请问 如何获得点选的pline的顶点列表,用于ssget “wp” pllist  ?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-8-1 09:34:45 | 显示全部楼层

  1. [FONT=courier new](defun get_lwpl-pb(e / en pl openmod enp p enp n i lst);;;取得lwPOLYLINE线顶点表
  2.   (setq en (entget e) pl nil openmod (dxf 70 en)
  3.         n (dxf 90 en))
  4.   (if (= (dxf 0 en) "LWPOLYLINE") (progn
  5.     (setq lst (assoc 10 en) lst (member lst en) i 0)
  6.     (while (= (car (nth i lst)) 10)
  7.       (setq p (cdr (nth i lst)) pl (cons p pl))
  8.       (setq i (+ i 4))
  9.     );while
  10.   ) )
  11.   (if (= openmod 1)
  12.     (setq pl (cons (nth (- (length pl) 1) pl) pl)))
  13.   (reverse pl)
  14. [/FONT])
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-8-1 09:50:31 | 显示全部楼层

Re: [求助]:如何获得闭合已有多线段的点信息用于SSGET "WP" 的定义范围

最初由 matichen 发布
[B]请问 如何获得点选的pline的顶点列表,用于ssget “wp” pllist  ? [/B]


如果都是直线段的POLYLINE,顶点用老菜的很好得到,关键是对有弧线段的POLYLINE,如果仅仅用顶点,那弧内的部分就选择不了了。因此对于弧线段,要用满足精度的直线模拟弧线。

XDRX_API里面有函数做获得任意曲线顶点表(对弧线包括模拟)


  1. [FONT=courier new]
  2. 89. xdrx_getsamplept

  3. 功能:按给定精度,返回AcDbCurve类曲线和AcDb2dPolyline(旧的POLYLINE)的样本点。将复杂的曲线用点组成的线段模拟。

  4. 调用格式:(xdrx_getsamplept <AcDbCurve 或 AcDb2dPolyline实体图元名> [精度控制])

  5. 说明:给定的[精度控制]值玄高差越小,精度越高,分段数越大,精度越高。
  6.       
  7.      精度控制只对曲线段有效,对于POLYLINE,对直线段无效,对其中的ARC段数据起做用。
  8.   
  9.      若不给[精度控制]参数,那么程序自己计算出相对满足视觉误差的值做为玄高差进行分段。

  10.      [精度控制]:分两种方法
  11.       1:给整数,按给定的整数分曲线段
  12.       2:给实数,做为玄高差
  13.      
  14.      注意:对于AcDbSpline,只能给定"玄高差",若给整数值,那么程序按照计算的相对最优值做为玄高差。

  15. 返回值:若成功,返回点表,点表肯定包括曲线的开始点和终止点。(p1 p2......),失败返回NIL.

  16. 示例:用LINE模拟SPLINE
  17.      (if (setq en (xdrx_entsel "\n请点取一个Spline<退出>:") '((0 . "spline"))))
  18.         (progn
  19.         (setq ed (xdrx_getsamplept (car en)))
  20.         (apply 'command (cons "line" ed))
  21.         (command "")
  22.      )   
  23. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-1 10:34:32 | 显示全部楼层
还好没有曲线。只有pl段。
cy956那个 提示出错,参数太少 (princ pl)返回为NIL
XD 那个看上去有点复杂,我初学,看不太懂。还要加载一次xd—api是不是。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-6-2 16:22:11 | 显示全部楼层
e 是你选择的lwPOLYLINE
关键是 (dxf 70 en)
我改为 (cdr (assoc 70 en)) 就可以用了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 06:46 , Processed in 0.200514 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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