Fw: 关于Visual LISP的问题
[b]原始短消息[/b] [url=http://www.drafting.cn/bbs/pm.php?action=send&pmid=7447&do=reply](回复)[/url][b]来自:[/b] [url=http://www.drafting.cn/bbs/space.php?uid=9158]wlzhyct[/url]
[b]发送到:[/b] [url=http://www.drafting.cn/bbs/space.php?uid=7779]wanglin[/url]
[b]时间:[/b] 2007-8-27 03:32 PM
[quote]你好!
我用的是AutoCAD2005。在使用Visual LISP开发的命令时,发现存在不稳定的情况。例如:
(
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;-----六角
defun C:PartHex()
;-----输入外部参数
( setq val_size ( getreal "请输入对边尺寸:" ) )
( setq val_height ( getreal "请输入长度:" ) )
( setq p_center ( getpoint "请输入中心:" ) )
;-----计算端点并画线
;----------四周轮廓线
( setq p_1 ( list (- (car p_center) (/ val_size 2)) (cadr p_center) ) )
( setq p_4 ( list (+ (car p_center) (/ val_size 2)) (cadr p_center) ) )
( setq p_2 ( list (- (car p_center) (/ val_size 2)) (- (cadr p_center) val_height) ) )
( setq p_3 ( list (+ (car p_center) (/ val_size 2)) (- (cadr p_center) val_height) ) )
( command "_line" p_1 p_2 p_3 p_4 "close" )
;----------棱角线
( setq p_l_1 ( list (- (car p_center) (/ val_size 4)) (cadr p_center) ) )
( setq p_l_4 ( list (+ (car p_center) (/ val_size 4)) (cadr p_center) ) )
( setq p_l_2 ( list (- (car p_center) (/ val_size 4)) (- (cadr p_center) val_height) ) )
( setq p_l_3 ( list (+ (car p_center) (/ val_size 4)) (- (cadr p_center) val_height) ) )
( command "_line" p_l_1 p_l_2 nil )
( command "_line" p_l_3 p_l_4 nil )
;-----end of defun C:PartHex()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
输入相关参数:
( setq val_size ( getreal "请输入对边尺寸:" ) ) ;-----22
( setq val_height ( getreal "请输入长度:" ) ) ;-----10
( setq p_center ( getpoint "请输入中心:" ) ) ;-----10,10
在调试过程监控每个参数都是正常的
p_1=(-1.0 10.0)
p_2=(-1.0 0.0)
p_3=(21.0 0.0)
p_4=(21.0 10.0)
p_l_1=(4.5 10.0)
p_l_2=(4.5 0.0)
p_l_3=(15.5 0.0)
p_l_4=(15.5 10.0)
但实际画出的图形,
( command "_line" p_l_1 p_l_2 nil )
( command "_line" p_l_3 p_l_4 nil )
这两条线却与 p_1-p_2 p_3-p_4 重合。
请问这是为什么?谢谢! 绘图之前应该读取“捕捉”“单位”等信息,并保存在变量中,同时设置自己的需要的参数。绘图完成后恢复原来的变量。 我没有细看你的程序
首先看坐标有没有错误的地方,
然后把 ( command "_line" p_l_1 p_l_2 nil )改为 ( command "_line" p_l_1 p_l_2 "c")试一下 我又看了一下,
( setq val_height ( getreal "请输入长度:" ) )这句修改为
( setq val_height (getdist getreal "请输入长度:" ) )是不是更完善一点
等一下帮你调试一下再说 谢谢大哥的指点!:handshake :handshake :D :D [quote]原帖由 [i]jize1980[/i] 于 2007-9-8 16:50 发表 [url=http://bbs.jzcad.com/redirect.php?goto=findpost&pid=231379&ptid=36002][img]http://bbs.jzcad.com/images/common/back.gif[/img][/url]
我又看了一下,
( setq val_height ( getreal "请输入长度:" ) )这句修改为
( setq val_height (getdist getreal "请输入长度:" ) )是不是更完善一点
等一下帮你调试一下再说 [/quote]
直接 (setq val_height (getdist "\n请输入长度:"))就行了
页:
[1]