wcmatch区分大小写
嘿,有一个常规,我有问题修改。我需要它不区分大小写,从xx01ls重命名外部参照。图纸至LS。原因是偶尔有人会将外部参照命名为XX01LS。dwg和代码正在查找XX01ls。图纸。请参阅下面的代码。谢谢(defun c:refls (/ ref refnamepath Oldname)
(COMMAND "CLAYER" "XREF-LS")
(setq ref (CAR (vl-directory-files dir "*ls.dwg")))
(if (/= ref nil)
(progn
(setq refnamepath (strcat dir "\\" ref))
(COMMAND "-XREF" "Overlay" refnamepath "0,0" "1" "1" "0")
(vl-load-com)
(vlax-for blk (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(if
(and
(equal (vla-get-IsXref blk) :vlax-true)
(wcmatch (setq OldName (vla-get-Name blk)) "*LS")
)
(vla-put-Name blk "LS"))
)
)
)
)
在获取blk变量的Name属性时,请考虑STRCASE函数。 好的,但我应该把它放在哪里?我知道用setq放在哪里,但我以前从未用过wcmatch。 你可以这样放置strcase。
(wcmatch (setq OldName (strcase (vla-get-Name blk))) "*LS")
OldName变量的用途是什么?
我不知道,也许作者想为下一个函数保存旧名称,就像“dir”变量来自哪里一样,可能来自前一个函数。我只是展示了strcase func放在哪里。 谢谢7o7,这似乎可以做到。
我不确定为什么我需要OldName变量,因为我没有在07年编写这部分代码,但我需要更新它。无论如何,我认为原因是它需要做一些事情来重命名外部参照。在are项目中,我们使用它来帮助管理层。是的,“dir”变量位于代码的前端。如果你愿意的话,我可以发布整个代码。但除了这次更新。我正在为此添加更多内容。
再次感谢您的关注和帮助。 欢迎您的帮助,很高兴!
页:
[1]