AutoCAD 2004工具栏按钮Qu
大家好;我开始学习如何为ACAD 2004制作我自己的工具栏按钮,但我很难在特定操作的按钮创建对话框中编写宏命令。
将有3个按钮。一个用于。二十、 一个。三十、 一个。现有尺寸的XXXX精度编辑。看,如果我有一个2位精度的尺寸,并希望它是4位,我会点击'。XXXX按钮,然后单击尺寸,它将更改为4个位置。此外,如果可能的话,我希望它能像“匹配属性”一样,立即更新为多维度选取。
有什么想法吗?
谢谢你的帮助,
K2 您正在寻找一种编程方法来更改给定维度的精度,但还需要检查/修改维度的“superss trailing zeros”属性。
考虑这些LISP示例。。。
键盘快捷键:
(defun c:ChgDimPrec (/ ss prec)
;; © RenderMan 2011, CADTutor
(princ "\rCHANGE DIMENSION PRECISION ")
(vl-load-com)
(if (and (setq ss (ssget '((0 . "DIMENSION"))))
(not (initget 7 "1 2 3 4 5 6 7 8"))
(setq prec (getint "\nEnter DIM precision : ")))
(progn
(vla-startundomark
(cond (*activeDoc*)
((setq *activeDoc*
(vla-get-activedocument
(vlax-get-acad-object))))))
(if (/= prec (getvar 'dimdec))
(setvar 'dimdec prec))
(vlax-for oDim (setq ss (vla-get-activeselectionset *activeDoc*))
(if (= :vlax-true (vla-get-suppresstrailingzeros oDim))
(vla-put-suppresstrailingzeros oDim :vlax-false))
(vla-put-primaryunitsprecision oDim prec))
(vla-endundomark *activeDoc*)
(vla-delete ss))
(cond (ss (prompt "\n** Invalid color entered ** "))
(T (prompt "\n** Nothing selected ** "))))
(princ))
接受精度参数的函数(用于工具栏宏):
(defun ChgDimPrec (prec / ss color)
;; © RenderMan 2011, CADTutor
;; Example: (ChgDimPrec 0)
(princ "\rCHANGE DIMENSION PRECISION ")
(vl-load-com)
(if (setq ss (ssget '((0 . "DIMENSION"))))
(progn
(vla-startundomark
(cond (*activeDoc*)
((setq *activeDoc*
(vla-get-activedocument
(vlax-get-acad-object))))))
(if (/= prec (getvar 'dimdec))
(setvar 'dimdec prec))
(vlax-for oDim (setq ss (vla-get-activeselectionset *activeDoc*))
(if (= :vlax-true (vla-get-suppresstrailingzeros oDim))
(vla-put-suppresstrailingzeros oDim :vlax-false))
(vla-put-primaryunitsprecision oDim prec))
(vla-endundomark *activeDoc*)
(vla-delete ss))
(cond (ss (prompt "\n** Invalid color entered ** "))
(T (prompt "\n** Nothing selected ** "))))
(princ))
感谢您的回复RenderMan;
虽然我理解你所说的“不”超过尾随零的意思(如.25转换为.2500仍将显示为.25),但对我自己来说,这不应该是一个只会超过前导的问题。然而,我确信,由于我的无知,我试图利用您花时间生成的脚本,但只收到了“参数太多”的错误消息。很可能放置在错误的区域,因为它不适用于自定义屏幕,但仅适用于当前菜单区域。。。。。无论如何,在自定义窗口中,我已经取得了一些成功。
它位于“与此按钮相关联的宏”窗格中,我通常会在其中放置文本。。。。上面的脚本是在那里写的吗?
谢谢你的帮助,
K2
有几种方法可以做到这一点:
1.您可以在工具栏按钮上使用以下宏。
^C^Cdimdec;4;^C^C-dimstyle;A、 \;;
您可以对所有按钮使用相同的宏,只需更改值“4”以匹配您希望尺寸的位置/感知数量。问题是,您将为当前标注样式创建样式替代。要消除样式替代,可以在宏中添加另一行以恢复当前的dimstyle。但这意味着您必须将标注样式名称写入宏代码中。因此,如果使用不同的dim样式,这可能不起作用,因为宏中只有一个被还原的样式名。当然,如果你不在乎风格覆盖,那也没关系。
2.说到覆盖。。。。。您可以只选择要更改感知的DIM,然后在Properties屏幕中修改它们。这样,您只会覆盖您选择的dim,而不是整个dim样式。
3、你可以根据自己的感知水平制作不同的昏暗风格。然后,只需在要更改感知的DIM上执行属性。 感谢您的建议CADguy209;
我不确定这正是我想要的,但你和Renderman的回答都在帮助我获得想法。
再次感谢!
K2
页:
[1]