06czy 发表于 2012-5-14 13:41:44

请问这句代码哪里错了,我只想提取s选集里面的多段线

(setq s (ssget) ss (ssget "p" '((0. "LWPOLYLINE")))
请问这句代码哪里错了,我只想提取s选集里面的多段线
为什么程序执行到((0. "LWPOLYLINE"))这里时就显示错误呢?

【KAIXIN】 发表于 2012-5-14 14:03:18

本帖最后由 【KAIXIN】 于 2012-5-14 14:04 编辑


(setq s (ssget) ss (ssget "p" '((0 . "LWPOLYLINE")))

零后面少了空格,点对的使用要慎重


(setq s(ssget "p"'((0 . "LWPOLYLINE")))

革天明 发表于 2012-5-14 15:51:46

;;本函数用于从已知选择集中过滤出所需要的对象的图元名列表
;;使用循环的方式可能有麻烦,但对选择集的要求降低了,不必再考虑选择集的“时效性”
;;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
)
使用此函数可以返回符合条件的图元名组成的表

06czy 发表于 2012-5-14 16:04:13

非常感谢,明经论坛真好!

yu54211168 发表于 2012-5-14 23:51:14

如果有来世,就让我们做一对小小的老鼠吧。笨笨的相爱,呆呆的过日子,拙拙的依偎,傻傻的一起。即便大雪封山,还可以窝在暖暖的草堆紧紧的抱着咬你耳朵……

flowedcloud 发表于 2015-12-10 15:06:14

本帖最后由 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]
查看完整版本: 请问这句代码哪里错了,我只想提取s选集里面的多段线