找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 965|回复: 10

[求助] 请问是否能选择任意不规则多边形内的文字或对象?

[复制链接]

已领礼包: 137个

财富等级: 日进斗金

发表于 2019-12-30 19:10:00 | 显示全部楼层 |阅读模式

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

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

×
请问是否能选择任意不规则多边形内的文字或对象?

下面这个程序是可以实现选择圆圈内的文字或对象?
(defun c:bb( / lst pt )(vl-load-com)
(setq lst(entget(car(entsel"\必强提示点选圆")))pt(cdr(assoc 10 lst)))
(vl-cmdf "polygon" 360 "non" pt "I" "non"(polar pt 0(cdr(assoc 40 lst))))
(sssetfirst nil(ssget "wp"  (mapcar 'cdr(vl-remove-if '(lambda (x)
(/= 10 (car x)))(entget(entlast))))))(entdel (entlast))(princ))
请问如何修改上面的程序?谢谢指导

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

已领礼包: 137个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 5295个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 333个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 137个

财富等级: 日进斗金

 楼主| 发表于 2019-12-31 09:18:16 | 显示全部楼层
zyclyl 发表于 2019-12-31 08:42
cad自带的select命令就可以呀

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

使用道具 举报

已领礼包: 137个

财富等级: 日进斗金

 楼主| 发表于 2019-12-31 09:19:43 | 显示全部楼层
请问是否能选择任意不规则多边形内的文字或对象?

下面这个程序是可以实现选择圆圈内的文字或对象,请问如何修改,当当点选多边形的时候,就可以选择多边形内的对象或文字?
(defun c:bb( / lst pt )(vl-load-com)
(setq lst(entget(car(entsel"\必强提示点选圆")))pt(cdr(assoc 10 lst)))
(vl-cmdf "polygon" 360 "non" pt "I" "non"(polar pt 0(cdr(assoc 40 lst))))
(sssetfirst nil(ssget "wp"  (mapcar 'cdr(vl-remove-if '(lambda (x)
(/= 10 (car x)))(entget(entlast))))))(entdel (entlast))(princ))
请问如何修改上面的程序?谢谢指导
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 511个

财富等级: 财运亨通

发表于 2019-12-31 12:09:51 | 显示全部楼层
(defun c:bb  (/ lst);选择圆、多线、样条曲线内对象
   (defun getlst_3(lst)
      (vl-remove nil (mapcar '(lambda (x) (if (= (rem (vl-position x
                     (mapcar 'list lst (cdr lst)(cddr lst))) 3) 0) x nil))
                     (mapcar 'list lst (cdr lst)(cddr lst)))))
   (setq e (car (entsel "\n选点封闭线:"))
         type_e (cdr(assoc 0 (entget e))))
   (cond ((= type_e "LWPOLYLINE")
          (setq lst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget e)))))
         ((= type_e "POLYLINE")
          (setq lst (getlst_3 (vlax-safearray->list (vlax-variant-value
                    (vlax-get-property (vlax-ename->vla-object e) 'Coordinates))))))
         ((member type_e '("SPLINE" "CIRCLE"))
          (setq s (/ (vlax-curve-getdistatparam e (vlax-curve-getendparam e)) 100)
                i -1 lst_1 nil)
          (repeat 100 (setq lst_1 (append lst_1 (list (* (setq i (1+ i)) s)))))
          (setq lst (mapcar '(lambda(x)(vlax-curve-getpointatdist e x)) lst_1))))
   (sssetfirst nil (ssget "wp" lst))
   (princ))

评分

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

查看全部评分

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 10:32 , Processed in 0.190629 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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