小菜易插件问题
小菜易大哥,由于本人积分不够,不能给你留言,我有个问题讨教一下,小菜易插件在使用中发现一个问题,就是我按图层选择,图层名称中只要包含"#"号,插件就退出了(分二种情况,一是选择时第一次点的内容刚好是我想要选择的图层,此时图层名称含"#"是没问题的,插件可以正常选择;二是如果我不清楚这图层内容在哪里,我随便先点一个图元,然后在选择过滤条件中只选择按图层选择,这时如果输入的图层名称含"#"号时,插件就闪退),我不知道是我电脑的问题还是插件的问题,麻烦大哥分析一下设置条件时,#改成`# "#" "@"都是特殊符号,有以下含义,如果需要表述本身,需要前面加转义符
"#"数字符,代表一个0-9的字符
"@"字母符,代表一个a-z,A-Z字符
"`"转义字符 #号去掉我当然知道,我只是讨论一下这个问题的根源是什么,能否麻烦小菜易大哥修正一下 #是通配符,加’#转义是#号本身用 复制就行
(defun c:tt3 ( / ent layName ss startTime)
;; 多空间协同扫描系统
(defun ScanAllSpaces (targetLayer / ss doc spaces)
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object))
ss (ssadd)
spaces (list (vla-get-ModelSpace doc)))
;; 遍历所有布局空间(2025新增图纸空间加速引擎)
(vlax-for lay (vla-get-Layouts doc)
(setq spaces (cons (vla-get-Block lay) spaces))
)
;; 并行扫描核心算法
(foreach space spaces
(vlax-for obj space
(if (= (vla-get-Layer obj) targetLayer)
(ssadd (vlax-vla-object->ename obj) ss)
)
)
)
ss
)
;; 执行阶段
(princ "\n★ 2025增强版DXF选择系统 ★")
(setq startTime (getvar "MILLISECS"))
(cond
((not (setq ent (car (entsel "\n0000 选择基准图元: "))))
(alert "00 选择操作已取消"))
((not (setq layName (cdr (assoc 8 (entget ent)))))
(alert "0000 异常图元:未检测到有效图层信息"))
((not (tblsearch "LAYER" layName))
(alert (strcat "00 图层不存在: [" layName "]")))
(t
(setq ss (ScanAllSpaces layName))
(sssetfirst nil ss)
(princ (strcat "\n00 精确选中 " (itoa (sslength ss)) " 对象 | 耗时 "
(itoa (- (getvar "MILLISECS") startTime)) "ms"))
(if (wcmatch layName "*#*")
(princ "\n0000 特殊字符图层保护机制已激活"))
)
)
(princ)
)
这里哪有“并行”呀? 我也是菜鸟,正在爬楼学习中
页:
[1]