自动正交需要lsp
对于类似auto ortho的revit软件,需要lsp。我不想每次都按F8键。如果有人知道这样的lsp请发我。萨吉德 不清楚您在寻找什么,因为没有REVIT。你能再解释一下吗。 我想象每次OP绘制直线或多段线时,他都希望AutoCAD自动假设它将在启用正交模式的情况下绘制。可以将其视为增强的直线和/或多段线命令。 将“orthomode”=1设置为acaddoc。lspM、 R。 将以下内容添加到您的acaddoc中。lsp:
(defun c:auto-ortho-on nil
(if (= 'vlr-command-reactor (type auto-ortho:reactor))
(if (not (vlr-added-p auto-ortho:reactor))
(vlr-add auto-ortho:reactor)
)
(setq auto-ortho:reactor
(vlr-command-reactor nil
'(
(:vlr-commandwillstart . auto-ortho:callback)
(:vlr-commandended . auto-ortho:restore)
(:vlr-commandcancelled . auto-ortho:restore)
(:vlr-commandfailed . auto-ortho:restore)
)
)
)
)
(princ "\nAuto-Ortho Reactor enabled.")
(princ)
)
(defun c:auto-ortho-off nil
(if (= 'vlr-command-reactor (type auto-ortho:reactor))
(vlr-remove auto-ortho:reactor)
)
(setq auto-ortho:reactor nil)
(princ "\nAuto-Ortho Reactor disabled.")
(princ)
)
(defun auto-ortho:callback ( obj arg )
(if (wcmatch (strcase (car arg) t) "line,pline")
(progn
(setq auto-ortho:ortho (getvar 'orthomode))
(setvar 'orthomode 1)
)
)
(princ)
)
(defun auto-ortho:restore ( obj arg )
(if (= 'int (type auto-ortho:ortho))
(setvar 'orthomode auto-ortho:ortho)
)
(setq auto-ortho:ortho nil)
(princ)
)
(vl-load-com) (c:auto-ortho-on)反应堆默认启用;然后,您可以使用以下命令手动启用/禁用反应堆:auto ortho on&auto ortho off。
将为LINE和PLINE命令启用正交模式(触发反应堆的命令可根据需要定制)。
李
也许是“极地追踪”。
美好的
干杯Gian 我认为自AutoCAD 2012以来,一旦启动命令(直线、复制、移动等)并拾取第一个点,请按住Shift键,一秒钟后,将临时启用正交,反之亦然。如果正交模式为1(启用),则将临时禁用正交。我在2013年和2014年进行了测试,这两种测试都有效。
页:
[1]