多行文字旋转为“viewtwist”l
大家好,第一个帖子,但直接到它!
使用以下代码时,多行文字编辑器将被抑制,而文字条目将移动到命令行(请参见屏幕截图)。我以前在另一个lisp例程中注意到过这一点(不是我自己写的,我也没有复习过)。可以修改我的例程以防止多行文字编辑器被抑制吗?
(defun c:MTR (/ mtang1 mtang2)
(setq oldcmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq mtang1 (getvar "viewtwist"))
(setq mtang2 (/ (* mtang1 180) pi))
(command "mtext" pause "r" mtang2 pause)
(setvar "cmdecho" oldcmd)
(princ)
)http://img109.imageshack.us/img109/1516/mtexteditorsuppressed.jpg
如果我的编码与您的感受不一致,请原谅,但这只是我编写AutoLISP的第二天!我是一个整洁的人,我相信我的嵌套和括号放置等,最终会让所有整洁的程序员感到高兴。 嗨,Ryan,
欢迎来到CADTutor
尝试一下:
(defun c:MTR ( / *error* oldcmd mtang )
(defun *error* ( msg )
(and oldcmd (setvar "CMDECHO" oldcmd))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ)
)
(setq oldcmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq mtang (/ (* (getvar "viewtwist") 180.) pi))
(initdia)
(command "mtext" pause "r" mtang pause)
(setvar "cmdecho" oldcmd)
(princ)
)
我添加了一个错误处理程序,以便在用户点击Esc时恢复CMDECHO。 (定义c:MTR(/mtang1 mtang2)
(setq oldcmd(getvar“cmdecho”))
(setvar“cmdecho”0)
(setq mtang1(getvar“viewtwist”))
(setq mtang2(/(*mtang1 180)pi))
(setq mtang3(rtos mtang2))
(命令“mtext”pause pause mtang3“”)
(setvar“cmdecho”oldcmd)
(普林斯“享受代码RyanGC”)
(普林斯)
)
嗨,如果这能满足你的需要,我会很高兴的。如果没有,我可以为你改装。
萨尔瓦特
专业Autocad绘图员 (initdia)用法:
嗨,李,
这非常有效。非常感谢。我最初的尝试有点离谱!对我来说,前方的学习曲线很陡峭,嗯。。。 你比你想象的要近。减去错误处理程序,您只需要(initdia)。
你好Tharwat,
这不起作用,原因我还没有确定。当我想了解“Lisp程序”的情况时,我将仔细研究一下这一点,也许我可以尝试解释为什么这没有达到我想要的结果。在所有情况下,李·麦克对我原作的编辑都非常有效。
谢谢,尽管如此。
R
您已经为我在(initdia)上发布了一些详细信息,谢谢。 欢迎你,瑞安,正如艾伦所说,你非常接近-我只是想确保你的日常工作是无懈可击的:眨眼: 您可以使用getpoint作为第一个选择,但遗憾的是,getcorner与当前UCS不匹配,因此该过程不可能完全无缝。
(defun c:MTR (/ *error* oldcmd pt)
(defun *error* (msg)
(and oldcmd (setvar "CMDECHO" oldcmd))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **"))
)
(princ)
)
(setq oldcmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(initdia)
(if (setq pt (getpoint "\nSpecify first corner: "))
(command "_.mtext" "_non" pt "_r" (/ (* (getvar "viewtwist") 180.) pi) pause)
)
(setvar "cmdecho" oldcmd)
(princ)
)
我还将viewtwist转换放在命令表达式中(只是为了表明它可以完成)。
页:
[1]
2