明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1001|回复: 7

[提问] 图层操作碰到通配符怎么办?

[复制链接]
发表于 2018-7-24 16:27:53 | 显示全部楼层 |阅读模式
       (while (< i lenth)
         (command "layer" "on" (nth i lat0)  "")
         (setq i (+ i 1))
       )

命令中一小段代码, lato 为需要打开的图层集合,现在碰到这么个问题,当图层名中包含“#”时,比如"S-1#楼|构件",无法打开该图层。
应该是通配符"#"的原因。
测试了一下,如果,把名字改成"S-1*楼|构件",就可以打开。但是,按通配符规则在名字前加“`”, 即, (strcat "`" lato), 也还是打不开。
请教各位大神,碰到带“#”的图层名,有什么办法吗?



发表于 2018-7-24 16:46:05 | 显示全部楼层
  1. (setq lat0'("DLS#S" "0"))

  2. (foreach la lat0
  3.   (if(setq la(tblobjname"layer"la))
  4.     (entmod(setq la(entget la)
  5.                  co(cdr(assoc 62 la))
  6.                  la(append la(list(cons 62 (- co))))))))
发表于 2018-7-24 17:16:39 | 显示全部楼层
楼上方法不合适
还是特殊字符前加`比较好
(defun checkstr( nm / nmlist newlist )
        (setq nmlist (vl-string->list nm))
        (setq newlist '())
        (foreach x nmlist
                (if (member x '(35 64 46 126 91 93 42 44))
                        (setq newlist (cons x (cons 96 newlist)))
                        (setq newlist (cons x newlist))
                )
        )
        (vl-list->string (reverse newlist))
)
发表于 2018-7-24 17:21:48 | 显示全部楼层
楼主有一个错误
`要加到每个特殊符号之前
而不是整个字符串之前
 楼主| 发表于 2018-7-24 17:38:43 | 显示全部楼层
原来如此,去试试,感谢
发表于 2018-7-25 16:13:47 | 显示全部楼层
masterlong 发表于 2018-7-24 17:21
楼主有一个错误
`要加到每个特殊符号之前
而不是整个字符串之前

是不是漏了两个字符
[]*?#@.~,`
发表于 2018-7-25 16:24:13 | 显示全部楼层
楼上是说漏了`和?这两个符号?
这两个符号不能用于层名、块名的
所以函数里确实没有它们
发表于 2025-1-24 22:43:04 | 显示全部楼层
masterlong 发表于 2018-7-24 17:16
楼上方法不合适
还是特殊字符前加`比较好
(defun checkstr( nm / nmlist newlist )

给力~刚好用到哈
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-23 04:44 , Processed in 0.158890 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表