标注属性编辑
很多时候,我不得不将维度单位属性从分数改为3或4位小数。属性工具可以为我添加注释。我想写一个例程来通过键盘完成这项工作。问题是我似乎找不到AutoCAD命令来执行此操作。我知道我可以写lisp,只是不知道命令。我尝试了属性、更改和dimtedit。这些都不对。有人能告诉我要找的命令名吗。我可以从那里拿走。提前谢谢。检查DIMVAR(维度变量)
变量为DIMLUNIT和DIMFRAC。
从ACAD帮助部分:
Type: Integer
Saved in: Drawing
Initial value: 2
Obsolete. Has no effect except to preserve the integrity of scripts. DIMUNIT is replaced by DIMLUNIT and DIMFRAC.
谢谢,我到处都找了,包括autocad帮助。我再也没见过这个。谢谢。我会试试的
这些似乎只适用于下一个时间维度。如果屏幕上有一个精度为小数1/64的维度,并且想用小数将其更改为小数,那么现在我想更改一个现有维度。xxx精度我必须选择尺寸-属性(这会打开属性工具pallete)将分数更改为小数,然后更改。xxxxxx至。xxx精度。
我想知道我是否可以写一个Lisp程序的句子
命令到3PLC
选择要更改的尺寸
结果将维度从小数更改为小数点后3位
尝试使用Dimoverride命令
也在命令下的ACAD帮助中
谢谢你的帮助。我将检查覆盖命令,但目前它正在工作
(defun c:to3plc ()
(setq
OLDDIMDEC (getvar "DIMDEC")
OLDDIMLUNIT (getvar "DIMLUNIT")
);end setq
(setvar "DIMDEC" 3)
(setvar "DIMLUNIT" 2)
(command "dim" "update" pause pause)
(command "exit")
(setvar "DIMDEC" OLDDIMDEC)
(setvar "DIMLUNIT" OLDDIMLUNIT)
(princ)
);end defun
(defun c:t3 (/ OLDDIMDEC OLDDIMLUNIT)
(setq
OLDDIMDEC (getvar "DIMDEC")
OLDDIMLUNIT (getvar "DIMLUNIT")
);end setq
(setvar "DIMDEC" 3)
(setvar "DIMLUNIT" 2)
(command "dim" "update" pause pause)
(command "exit")
(setvar "DIMDEC" OLDDIMDEC)
(setvar "DIMLUNIT" OLDDIMLUNIT)
(princ)
);end defun
此选项的问题是,如果选择一个命令,它可以正常工作。如果您选择的大于on,则dim变量不会被设置回位。我需要它能够选择多重维度将其转换为3 plc十进制,并将dim变量设置回退出命令之前的状态。 试试这个Bradb:
(defun c:T3 (/ ss Objlst)
(vl-load-com)
(if (setq ss (ssget '((0 . "DIMENSION"))))
(progn
(setq objlst
(mapcar 'vlax-ename->vla-object
(vl-remove-if 'listp
(mapcar 'cadr
(ssnamex ss)))))
(mapcar
(function
(lambda (x)
(vla-put-UnitsFormat x acDimLDecimal))) ObjLst)
(mapcar
(function
(lambda (x)
(vla-put-PrimaryUnitsPrecision x acDimPrecisionThree))) ObjLst))
(princ "\n<< Nothing Selected >>"))
(princ))
谢谢李,这很有效,但我需要更多。
我不理解visual lisp,所以我不知道在这个lisp上编辑什么。
我还需要3个命令
t3m更改为3plc并将文本移到外行(DIMTMOVE 0)
tf更改为分数(DIMLUNIT 5 DIMFRAC 1)
tfm更改为分数并将文本移到外行(DIMTMOVE 0)
页:
[1]
2