SSGET选择中关键字带横杠的问题
本帖最后由 zhb236623 于 2012-10-23 11:58 编辑(defun c:tt()
(setq ddf "172001-3")
(setq bbd (ssget "x" (list (list -3 ( list "south" (cons 1000 ddf))))))
(command "erase"bbd"")
)
SSGET选择中关键字带横杠的问题
以上程序不能达到要求,如果换成172001就可以选中地物。而172001-3是有地物存在的。 我用172001*,这样可以选中
172001,不能选中172001-1,172001-2,172001-3,现在只想选中172001-3的地物要如何操作呢……。
本帖最后由 lee50310 于 2020-12-12 22:08 编辑
既然直取不行,那繞個彎就能抓到了,存在SEL中
(defun c:test()
(setq ss (ssget "x" '((0 . "LINE")(8 . "GXYZ") ))) ;過濾線型及圖層
(setq sel (ssadd))
(repeat (setq i (sslength ss))
(setq en (ssname ss (1- i)))
(setq xdata (cdr (assoc -3 (entget en '("*"))))) ;取出擴展數據串列
(setq z (assoc 1000 (cdar xdata)))
(if (equal z (cons 1000 "172001-3")) ;比對兩者值
(setq sel (ssadd en sel)) ;若符合加入選集中
)
)
)
使用版主提供的 test01.dwg 檔案做測試
带扩展属性只能选择多段线,其他属性要二次过滤,例如楼上的方法 大佬有什么教材可以推荐么,新手看的迷迷糊糊的 (setq ddf "171201`-3")试试看 byghbcx 发表于 2012-10-23 11:23 static/image/common/back.gif
(setq ddf "171201`-3")试试看
这个我里不行,放上测试文件了,麻烦再帮忙试下。 测试文件中171201*也选 不到 好象是除lwpolilyne外的实体都不能将扩展数据内的特征值作为ssget的过滤条件,可以用(ssget "x" (list (list -3 ( list "south"))))过滤 byghbcx 发表于 2012-10-23 12:03
测试文件中171201*也选 不到
en,不是用这个了,换了个地物了,看题目,不过也是选不上!等高人出现! byghbcx 发表于 2012-10-23 15:50
好象是除lwpolilyne外的实体都不能将扩展数据内的特征值作为ssget的过滤条件,可以用(ssget "x" (list (lis ...
setq ddf "172001") 这样可以过滤 没有人会吗?期待高手帮忙解决。 自己再顶一个………… 难道 “-” 不能作为字符串处理?
页:
[1]
2