怎样解决捕捉丢失
问题就是运行程序后捕捉丢失,求各位大师帮助,2个币不成敬意勿笑 应该是变量的作用范围问题(DEFUN c:BBO ( / OS pt s name)
(command ".UNDO" "BE")
(setq OS (getvar "osmode")
pt 0
)
(setvar "osmode" 0)
(if (null jbak)
(setq jbak 40.0)
)
(while pt
(while
(progn
(initget "S")
(if (= (setq pt (getpoint (strcat "\n指定内部点,或[设置(S)]:<偏移距离" (rtos jbak) ">")
)
)
"S"
)
(if (setq s (getreal (strcat "\n设置偏移距离:<" (rtos jbak) ">"))
)
(setq jbak s)
)
)
(if (null pt)
(progn
(setvar "osmode" OS)
(command ".UNDO" "E")
(vl-exit-with-error "")
)
)
(or
(= pt "S")
(not (= (type pt) 'list))
)
)
)
(command "BPOLY" pt "")
(setq name (entlast))
(command "OFFSET" jbak name pt "")
(command "ERASE" name "")
)
(setvar "osmode" OS)
(command ".UNDO" "E")
) 本帖最后由 namezg 于 2015-8-12 23:38 编辑
应该是变量的作用范围问题
(DEFUN c:BBO ( / OS pt s name)
(command ".UNDO" "BE")
(setq OS (getvar "osmode")
pt 0
)
(setvar "osmode" 0)
(if (null jbak)
(setq jbak 40.0)
)
(while pt
(while
(progn
(initget "S")
(if (= (setq pt (getpoint (strcat "\n指定内部点,或[设置(S)]:<偏移距离" (rtos jbak) ">")
)
)
"S"
)
(if (setq s (getreal (strcat "\n设置偏移距离:<" (rtos jbak) ">"))
)
(setq jbak s)
)
)
(if (null pt)
(progn
(setvar "osmode" OS)
(command ".UNDO" "E")
(vl-exit-with-error "")
)
)
(or
(= pt "S")
(not (= (type pt) 'list))
)
)
)
(command "BPOLY" pt "")
(setq name (entlast))
(command "OFFSET" jbak name pt "")
(command "ERASE" name "")
)
(setvar "osmode" OS)
(command ".UNDO" "E")
)
页:
[1]