请问这句代码哪里错了,我只想提取s选集里面的多段线
(setq s (ssget) ss (ssget "p" '((0. "LWPOLYLINE")))请问这句代码哪里错了,我只想提取s选集里面的多段线
为什么程序执行到((0. "LWPOLYLINE"))这里时就显示错误呢?
本帖最后由 【KAIXIN】 于 2012-5-14 14:04 编辑
(setq s (ssget) ss (ssget "p" '((0 . "LWPOLYLINE")))
零后面少了空格,点对的使用要慎重
(setq s(ssget "p"'((0 . "LWPOLYLINE")))
;;本函数用于从已知选择集中过滤出所需要的对象的图元名列表
;;使用循环的方式可能有麻烦,但对选择集的要求降低了,不必再考虑选择集的“时效性”
;;ss为已知选择集,str为要过滤得到的元素,如"CIRCLE"、"LINE"、"MTEXT"等
;;明经通道革天明2012年5月12日
(defun myget (ss str / n enname)
(setq n 0
namelst '()
)
(repeat (sslength ss)
(if (= (cdr (assoc 0 (entget (ssname ss n)))) str)
(progn
(setq enname (cdr (assoc -1 (entget (ssname ss n)))))
(setq namelst (cons enname namelst))
)
)
(setq n (1+ n))
)
namelst
)
使用此函数可以返回符合条件的图元名组成的表 非常感谢,明经论坛真好! 如果有来世,就让我们做一对小小的老鼠吧。笨笨的相爱,呆呆的过日子,拙拙的依偎,傻傻的一起。即便大雪封山,还可以窝在暖暖的草堆紧紧的抱着咬你耳朵…… 本帖最后由 flowedcloud 于 2015-12-15 09:54 编辑
从论坛中搜得比较好的结果 (setq ss (ssget))
(setq ss_all (ssget "p")) ;备份了上面的选择集
(command "_.select" ss_all "") ;使备份的选择集成为上一个选择集
(setq 矩形选集 (ssget "p" '((0 . "LWPOLYLINE")(8 . "柱_实线"))))
(功能函数)
(command "_.select" ss_all "") ;使备份的选择集成为上一个选择集
(setq 文字选集 (ssget "p" '((0 . "text")(-4 . ">=")(50 . 1.570) (40 . 250)))) ;建立特定选集
(功能函数)
页:
[1]