【错误处理】各位大哥来看看 lisp看的视频错误处理这一块
以下是源码,我的问题是到循环那按esc退出后捕捉不会恢复,刚开始接触lisp;找了很多次错,也没找到哪里的问题
各位大哥来看看
(defun c:px (/ pd pd1 sz wz wzcj wzh xg xg1 yy);序号排序
;错误处理
(setq *error*_bak *error*)
(setq *error* *error*_non)
;-----------------------------------------
(setq osmode_bak (getvar "osmode"));备份捕捉
-----------------------------------------
(setq pd (getint "\n是否关闭捕捉,0为否,1为是:"));是否关闭捕捉
(setq pd1 1)
(if (eq pd pd1)
(setvar "osmode" 0)
(nil);setvar "osmode" OSMODE_bak
)
;主程序
(setq sz (getint "输入一个数"))
(setq wzh (getreal "\n输入文字高度"))
(setq wz t)
(while t
(setq wz (getpoint "\n选择点"))
(setq wzcj (Vlax-Invoke-Method (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) 'ModelSpace) 'AddText (rtos sz 2 0) (vlax-3D-point wz) wzh))
(setq xg (Vlax-Put-Property wzcj 'Alignment 4));修改对齐方式
(setq xg1 (Vlax-Put-Property wzcj 'TextAlignmentPoint (vlax-3D-point wz)) );修改对齐方式参照点
(setq yy (Vlax-Invoke-Method (Vlax-Get (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) 'ModelSpace) 'AddCircle (vlax-3D-point wz) (* wzh 2) ));画圆
(setq sz (+ sz 1))
)
;
(setq *error* *error*_bak)
(setvar "osmode" osmode_bak)
(princ)
)
(defun *error*_non (msg); 错误信息
(setq *error* *error*_bak)
(setvar "osmode" osmode_bak)
) 你是用飞诗加载的吧!用飞诗加载就会有这个问题 ,你把lsp托进CAD能正常了
谢谢了,确实是这个毛病 我也是小白,请问lisp视频是哪里获取的呢
猫老师的课程
页:
[1]