线的偏移部分
几年前,我拼凑出了这个lisp,基本上只是抵消了一条线的一部分,并希望能做得更好。错误陷阱似乎不起作用。
我想将其更改为拾取对象的一层,或者稍后指定另一层。
我想可以把它清理干净,但我不确定先把重点放在哪里。
;OffsetMeasureoffset a short line
(defun *error* (msg)
(setvar "osmode" 0)
(setq pt1 nil)
(setq pt2 nil)
(setq dist1 nil)
(setq *seqpt nil)
(princ "\n\n\nLeaving OM lisp routine, good day sir!\n")
(princ)
)
(defun C:OM (/ pt1 pt2 dist1 srt)
(setvar "cmdecho" 0)
(setq srt (getvar "sortents"))
(setvar "sortents" 3)
(graphscr)
(setq d "T")
(while d
(if (not *seqpt)(setq *seqpt 1.0))
(princ "\nEnter Distance For Offset <")
(princ *seqpt)
(setq dist1 (getdist ">: ")
)
(setvar "osmode" 512)
(setq pt1 (getpoint "\nPick point on object :")
pt2 (getpoint "\nSecond point :")
)
(if (not dist1)(setq dist1 *seqpt)(setq *seqpt dist1)
)
(setvar "osmode" 0)
(command ".line" pt1 pt2 "")
(princ "\nSide to offset")
(command ".offset" dist1 pt1 pause ""
".erase" pt1 ""
".move" pt1 "" "@" "@")
(setq d1 (strcase (getstring "\nPress RETURN to continue or X to
quit ")))
(if (= d1 "X")(setq d nil))
)
(setvar "sortents" srt)
(princ)
)
任何帮助都将不胜感激。给我指出一个方向,或者为我做这一切,我没有偏好。
rkent公司 在只浏览了代码之后,考虑将临时的*error*defun嵌套在主代码(c:OM)中,并确保本地化符号,以便在主代码完成后恢复原始的*error*定义。伪代码:
(defun c:OM(/*错误*;|其他变量|)(defun*错误*(msg);; Renderman,成功了!谢谢,rkent rkent,
也许我的本教程有助于理解:
http://lee-mac.com/errorhandling.html
@Rkent-很乐意帮忙。
@李-写得很好的教程,我的朋友。 谢谢伙计
页:
[1]