lisp能否用通配符搜索图层名
(tblsearch "LAYER" "家具" )想请教一下大家!lisp中有没有方法可以用通配符来搜索图层名,
tblsearch函数貌似不支持通配符
例如:
文件中有 "平面|家具"和"立面|家具" 两个图层,
我想通过 "*|家具" 来直接搜索到这两个图层、
不知道能不能实现、之前是用遍历所有图层的方法、
但是图层多了以后、执行起来就会很卡
lisp应该没有这种函数 图层列表是个表,最多也就几千个图层,lsp处理这种级别表会卡?搞笑呢吧 随手,未测试
(defun get_l(pattern / tbl lst);_(get_l "*|家具")
(setq tbl (tblnext "layer" t))
(while tbl
(setq lst (cons (cdr (assoc 2 tbl)) lst)
tbl (tblnext "layer")))
(vl-remove-if-not (function (lambda (x) (wcmatch x pattern))) lst)) kozmosovia 发表于 2024-7-2 09:12
图层列表是个表,最多也就几千个图层,lsp处理这种级别表会卡?搞笑呢吧
亲测会卡、我用的tblnext加while循环获取的参照图层列表、两千来个参照图层、需要2秒以上才能获取到图层列表、如果再判断图层是否再图层列表内、就更卡了、而且我还要循环判断一个图层列表、是否在当前文件的参照图层列表内、运行以后简直卡成狗 kozmosovia 发表于 2024-7-2 09:12
图层列表是个表,最多也就几千个图层,lsp处理这种级别表会卡?搞笑呢吧
当然我这个获取参照图层列表不仅仅是获取图层名、还把图层名进行了拆分处理、就是将参照图层名又拆分成3部分(参照图层名+参照名+去掉参照名后的图层名)、不知道是不是因为加了这个拆分处理才变卡的、晚点我去掉试一下 如果非常卡可能要优化算法和思路 ssyfeng 发表于 2024-7-2 11:55
如果非常卡可能要优化算法和思路
现在就是再研究其他的方法、目前想到的都行不通 xiaocainiao 发表于 2024-7-2 11:37
亲测会卡、我用的tblnext加while循环获取的参照图层列表、两千来个参照图层、需要2秒以上才能获取到图层 ...
用vlax-for,层数量多时比tblsearch快 kozmosovia 发表于 2024-7-2 13:00
用vlax-for,层数量多时比tblsearch快
谢谢、我试试、刚刚想到另外一种方法、不去获取参照图层列表、直接获取当前文件内的参照名就行了、然后反向判断应该会好点
页:
[1]
2