饿狼传说 发表于 2025-3-6 08:55:40

小菜易插件问题

小菜易大哥,由于本人积分不够,不能给你留言,我有个问题讨教一下,小菜易插件在使用中发现一个问题,就是我按图层选择,图层名称中只要包含"#"号,插件就退出了(分二种情况,一是选择时第一次点的内容刚好是我想要选择的图层,此时图层名称含"#"是没问题的,插件可以正常选择;二是如果我不清楚这图层内容在哪里,我随便先点一个图元,然后在选择过滤条件中只选择按图层选择,这时如果输入的图层名称含"#"号时,插件就闪退),我不知道是我电脑的问题还是插件的问题,麻烦大哥分析一下

kozmosovia 发表于 2025-3-6 09:09:41

设置条件时,#改成`#

woshilj 发表于 2025-3-7 15:03:29

"#" "@"都是特殊符号,有以下含义,如果需要表述本身,需要前面加转义符
"#"数字符,代表一个0-9的字符
"@"字母符,代表一个a-z,A-Z字符
"`"转义字符

饿狼传说 发表于 2025-3-6 09:05:00

#号去掉我当然知道,我只是讨论一下这个问题的根源是什么,能否麻烦小菜易大哥修正一下

wzg356 发表于 2025-3-6 10:23:13

#是通配符,加’#转义是#号本身用

hhh454 发表于 2025-3-6 13:14:56

复制就行


(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)
)

e2002 发表于 2025-3-6 16:42:48

这里哪有“并行”呀?

610062626 发表于 2025-3-10 12:10:17

我也是菜鸟,正在爬楼学习中
页: [1]
查看完整版本: 小菜易插件问题