tryhi 发表于 2011-7-28 16:05:44

根据一个封闭图形选取该图形内所有元素

本帖最后由 tryhi 于 2011-8-2 12:32 编辑

(defun c:xq(/ dengf ssd i lss point1 xuanze)
(setq dengf(entsel))
(command "measure" dengf "2" "");每两个单位分一个点,可根据具体情况修改大小
(setq ssd(ssget "p"))
(setq i 0)
(setq lss nil)
(repeat (sslength ssd)
    (setq point1(cdr(assoc 10 (entget(ssname ssd i)))))
    (setq lss (cons point1 lss))
    (setq i (+ 1 i))
;;;    (prompt (strcat (rtos i 2 2) "\n"))
)

(command "erase" ssd "")
(setq ssd nil)
(command "zoom" "o" dengf "")
(Setq xuanze (ssget "XP" lss))
(sssetfirst xuanze xuanze)
)
(prompt
"******* 加载图形内选元素xq命令完成!*******------大海制作"
)
(prin1)源码在上面,发附件是为了求赞助


原理是用Andyhon的指点的方法   measure曲线    取出 Points 串成 PtList



ljpnb 发表于 2011-7-29 06:27:00

(Setq xuanze (ssget "XP" lss))
改成(Setq xuanze (ssget "WP" lss))

tryhi 发表于 2011-7-29 13:20:37

ljpnb 发表于 2011-7-29 06:27 static/image/common/back.gif
(Setq xuanze (ssget "XP" lss))
改成(Setq xuanze (ssget "WP" lss))

找到原因了,不是这个。原因是屏幕要完全显示多边形才能正常选择,不知有什么办法解决

ljpnb 发表于 2011-7-29 13:32:14

加一句(command "zoom" "o" dengf "")

tryhi 发表于 2011-7-29 13:47:26

ljpnb 发表于 2011-7-29 13:32 static/image/common/back.gif
加一句(command "zoom" "o" dengf "")

非常感谢ljpnb的指点。居然忘了这个命令。


刚来学习autolisp,刚来这个论坛,好像评分加的金钱没有用是不?

llkill 发表于 2011-7-29 14:17:56

不错的东西啊

Adgkkk 发表于 2011-8-2 11:06:51

挺不错的,这个

652758365 发表于 2012-4-17 13:28:21

............................

xujinhua 发表于 2012-4-17 14:32:43

送上赞助....我一直想写。。可不会

TANER 发表于 2012-4-17 17:21:07

如果封闭实体为不规则网线如spline等呢?
页: [1]
查看完整版本: 根据一个封闭图形选取该图形内所有元素