zhb236623 发表于 2012-10-23 10:56:56

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-10 23:20:24

本帖最后由 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 檔案做測試

13648893846 发表于 2020-12-11 06:23:23

带扩展属性只能选择多段线,其他属性要二次过滤,例如楼上的方法

熊咔咔 发表于 2020-12-10 11:34:23

大佬有什么教材可以推荐么,新手看的迷迷糊糊的

byghbcx 发表于 2012-10-23 11:23:06

(setq ddf "171201`-3")试试看

zhb236623 发表于 2012-10-23 11:51:13

byghbcx 发表于 2012-10-23 11:23 static/image/common/back.gif
(setq ddf "171201`-3")试试看

这个我里不行,放上测试文件了,麻烦再帮忙试下。

byghbcx 发表于 2012-10-23 12:03:54

测试文件中171201*也选 不到

byghbcx 发表于 2012-10-23 15:50:03

好象是除lwpolilyne外的实体都不能将扩展数据内的特征值作为ssget的过滤条件,可以用(ssget "x" (list (list -3 ( list "south"))))过滤

zhb236623 发表于 2012-10-23 23:22:14

byghbcx 发表于 2012-10-23 12:03
测试文件中171201*也选 不到

en,不是用这个了,换了个地物了,看题目,不过也是选不上!等高人出现!

zhb236623 发表于 2012-10-23 23:23:45

byghbcx 发表于 2012-10-23 15:50
好象是除lwpolilyne外的实体都不能将扩展数据内的特征值作为ssget的过滤条件,可以用(ssget "x" (list (lis ...

setq ddf "172001") 这样可以过滤

zhb236623 发表于 2012-10-25 00:44:17

没有人会吗?期待高手帮忙解决。

zhb236623 发表于 2012-10-30 15:33:32

自己再顶一个…………

mokson 发表于 2020-12-8 08:04:41

难道 “-” 不能作为字符串处理?
页: [1] 2
查看完整版本: SSGET选择中关键字带横杠的问题