请教一个Autolisp加载出现的问题
我编写了一个lisp程序,把选中区域图形中的矩形用一个已有的块替换(本人是做工程的,想把工程桩用一个块替换),代码如下:(defun C:RtoB(/ in_block ask ss1 pt11 ss1_length pt_data ent1 ent1_data type_info i pt_num )
(setvar "cmdecho" 0)
(setq in_block (entsel "\n选择被插入的块:"));*
(initget 1 "Yes No")
(setq ask (getkword "\n替换后删除原矩形?(Yes or No):"));*
(print '选择替换区域:)
(setq ss1 (ssget "C" (setq pt11 (getpoint)) (getcorner pt11)))
(setq ss1_length (1- (sslength ss1)))
(while (>= ss1_length 0)
(setq pt_data (append))
(setq ent1 (ssname ss1 ss1_length))
(setq ent1_data (entget ent1))
(setq type_info (assoc 0 ent1_data))
(if (wcmatch (cdr type_info) "LWPOLYLINE")
(progn
(foreach i ent1_data
(if(= (car i) 10)
(setq pt_data (append pt_data (list (cdr i))))
)
)
(setq pt_num (cdr(assoc 90 ent1_data)))
(cond ((or (= pt_num 4) (= pt_num 5))
(setq in_point (inters (nth 0 pt_data) (nth 2 pt_data) (nth 1 pt_data) (nth 3 pt_data)))
(entmake (list (cons 0 "insert") (cons 2 (cdr(assoc 2 (entget (car in_block))))) (list 10 (car in_point) (cadr in_point))))
(if (= ask "Yes") (entdel ent1))
)
((= pt_num 6)
(setq in_point (inters (nth 1 pt_data) (nth 3 pt_data) (nth 2 pt_data) (nth 4 pt_data)))
(entmake (list (cons 0 "insert") (cons 2 (cdr(assoc 2 (entget (car in_block))))) (list 10 (car in_point) (cadr in_point))))
(if (= ask "Yes") (entdel ent1))
)
)
)
)
(setq ss1_length (1- ss1_length))
)
(setvar "cmdecho" 1)
(princ)
)
以上的代码直接复制到命令行里执行是没问题,但如果通过加载方式 运行的话,load后就要求响应上面打*号处的句子,而且“选择被插入的块”和“替换后删除原矩形?(Yes or No):”这两句话在命令提示行都成了乱码,这里强调一下,是加载的时候,不是输入命令rtob时,有哪位知道怎么回事吗,指教一下,感激不尽。
沒異狀啊(補字) 我刚在自己的电脑上appload后,出现 错误: 参数类型错误: numberp: nil,这又怎么回事,这问题困惑了我两个星期了 本帖最后由 丶冫氵灬氵冫丶 于 2014-4-12 11:21 编辑
lsjj 发表于 2014-4-12 11:11 static/image/common/back.gif
沒異狀啊(補字)
我刚在自己的电脑上appload后,出现 错误: 参数类型错误: numberp: nil,这又怎么回事,这问题困惑了我两个星期了,在公司的时候,就出现前面说过的问题,按理说在load后不应该响应代码里的输入输出语句才对呀 cad2008试一下,没有你说的情况. 丶冫氵灬氵冫丶 发表于 2014-4-12 11:19 static/image/common/back.gif
我刚在自己的电脑上appload后,出现 错误: 参数类型错误: numberp: nil,这又怎么回事,这问题困惑了我两 ...
我不检查你的程序了。出现这种错误还有一个可能性就是电脑中了CAD病毒。参见http://bbs.mjtd.com/thread-100858-1-1.html ll_j 发表于 2014-4-12 11:47 static/image/common/back.gif
我不检查你的程序了。出现这种错误还有一个可能性就是电脑中了CAD病毒。参见http://bbs.mjtd.com/thread- ...
你是load加载的吗 ...通过加载方式...
这么说就是一个文件喽
请将该文件 打包 上传供检测...
Andyhon 发表于 2014-4-12 13:45 static/image/common/back.gif
...通过加载方式...
这么说就是一个文件喽
请将该文件 打包 上传供检测...
这就是一般的lisp源代码文件
Command: (load "V:/Rtob")
C:RTOB
Command: rtob
选择被插入的块:
替换后删除原矩形?(Yes or No):y
选择替换区域:
==============
ok,未见异常
页:
[1]
2