找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 656|回复: 7

[求助] [求助]:选择集里怎样判别多义线

[复制链接]
发表于 2005-11-13 17:51:31 | 显示全部楼层 |阅读模式

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

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

×
一个选择集ss里有若干个圆、若干条多义线,还有若干个其他图元,怎样判别第n个图元是多义线?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-13 17:56:30 | 显示全部楼层
循环取每个实体的实体类型,即(cdr (assoc 0 (entget ent))) 当返回值为"POLYLINE" 或"LWPOLYLINE" 时,此实体即为多义线!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-13 18:36:16 | 显示全部楼层
(setq en (ssname s1 1))
(setq en_data (entget en))  
(setq tvmb (nth 1 en_data))
(setq tvm (cdr (assoc 0 (entget tvmb))))
(if (= tvm "LWPOLYLINE") (setq m (+ m 1))    ;;判别图元是否多义线
已知选择集s1里第0个图元是一个圆,第1个图元是条多义线,程序运行到(setq tvm (cdr (assoc 0 (entget tvmb))))时因错误而终止,并提示:“错误 : 参数类型错误: lentityp (0 . "LWPOLYLINE")”,经查询得知tvmb=(0 . "LWPOLYLINE") ,  tvm=nil,说明问题出在(setq tvm (cdr (assoc 0 (entget tvmb)))),请问该怎样改才能正确判别是否多义线?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-13 20:27:30 | 显示全部楼层
  1. [FONT=courier new](defun num (ss)
  2.   (setq i -1)
  3.   (while (or (/= etype "POLYLINE")
  4.              (/= etype "LWPOLYLINE")
  5.          )
  6.     (setq s1        (ssname ss (setq i (1+ i)))
  7.           etype        (cdr (assoc 0 (entget s1)))
  8.     )
  9.   )
  10.   (princ (1+ i))
  11. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-13 23:02:07 | 显示全部楼层
最初由 xyp1964 发布
[B][CODE](defun num (ss)
  (setq i -1)
  (while (or (/= etype "POLYLINE")
             (/= etype "LWPOLYLINE")
         )
    (setq s1        (ssname ss (setq i (1+ i)))
          etype        (cdr (assoc (entget s... [/B]


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

使用道具 举报

发表于 2005-11-14 13:21:23 | 显示全部楼层
判别很容易,但是你判别了之后用来做什么?可能有更简便的方法达到你的效果呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-15 10:35:54 | 显示全部楼层
判别后只求取选择集里多义线的交点坐标
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-11-15 12:18:11 | 显示全部楼层
为什么不直接过滤选择多义线呢?
(wcmatch (cdr (assoc 0 el)) "*POLYLINE")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 19:06 , Processed in 0.195305 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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