也意识到了这一点,这就是为什么我做了所有三种可能性,长度、数字和字母:-) 这还不够吗?
(wcmatch "My drawing12345678 YAY.dwg" "*########*")
OP没有提到数字是否连续。
和
(wcmatch "My drawing12345678 YAY1234567890.dwg" "*########*")
也许OP必须提供dwg文件的样例名称。 嘿Tharwat
你是对的,这里有数字和字母的组合,所以我只使用数字。
因此文件名将类似于1234567。图纸7896541。图纸9632587。图纸
@rlx,非常感谢你的代码,但是你的代码只显示文件名,你能告诉我如何使用你的代码自动运行清除命令吗。
再次感谢 如果您的文件名正好是7个数字,则不必比以下困难:
(if (wcmacth (vl-filename-base (getvar 'dwgname)) "#######")(vla-PurgeAll (vla-get-ActiveDocument (vlax-get-acad-object))))
(ps直接打出来,很抱歉我打错了…) 你好
将以下内容添加到您的acaddoc中。lsp文件。
(defun PurgeMe (/ FileName)
(and (setq FileName (vl-filename-base (getvar 'DWGNAME)))
(vl-every '(lambda (u) (< 47 u 58)) (vl-string->list FileName))
(vla-purgeall (vla-get-activedocument (vlax-get-acad-object)))
)
(princ)
)
;; Auto-run on start up of drawing names that their names are consist of digits only.
(PurgeMe)
嘿Tharwat
谢谢你的代码,这是可行的,但即使文件名有数字(它的工作文件名为1,2,3,4,5,6,7,8,9…等数字),它也总是可行的
但我需要它应该运行只有7位数字的文件名。
另外,请告诉我,如果我想使用另一个命令或Lisp命令而不是purge,那么我必须在这个Lisp中进行更改。
再次感谢。 (wcmatch(strcase…)“#########.DWG”) 认为文件名结构有点混乱。它要么是7个数字(数字什么的),什么都没有,或者,它也可以有字母,但它包含7个数字,要么相邻,要么不相邻。无论如何,如果总文件名是一行7个数字,wcmatch选项就可以了。如果它是多文化的,唯一可以确定的方法是撕下人物并测量尸体。因此:
(if (= (strlen (ripcar (vl-filename-base (getvar 'dwgname)))) 7) (progn ... purge...surge...merge whatever... ))
gr.Rlx 嘿,Rlx
我已经用Tharwat提供的代码替换了你的代码,但它不起作用。你能看看我做错了什么吗。。
(defun PurgeMe (/ FileName)
(if (= (strlen (ripcar (vl-filename-base (getvar 'dwgname)))) 7)
(progn ... purge...surge...merge whatever... ))
)
(princ)
)
;; Auto-run on start up of drawing names that their names are consist of digits only.
(PurgeMe)
谢谢
页:
1
[2]