bradb 发表于 2022-7-6 14:26:20

标注属性编辑

很多时候,我不得不将维度单位属性从分数改为3或4位小数。属性工具可以为我添加注释。我想写一个例程来通过键盘完成这项工作。问题是我似乎找不到AutoCAD命令来执行此操作。我知道我可以写lisp,只是不知道命令。我尝试了属性、更改和dimtedit。这些都不对。有人能告诉我要找的命令名吗。我可以从那里拿走。提前谢谢。

The Buzzard 发表于 2022-7-6 14:33:38

 
 
检查DIMVAR(维度变量)

The Buzzard 发表于 2022-7-6 14:40:09

 
变量为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.

bradb 发表于 2022-7-6 14:44:11

 
 
谢谢,我到处都找了,包括autocad帮助。我再也没见过这个。谢谢。我会试试的

bradb 发表于 2022-7-6 14:48:01

 
 
这些似乎只适用于下一个时间维度。如果屏幕上有一个精度为小数1/64的维度,并且想用小数将其更改为小数,那么现在我想更改一个现有维度。xxx精度我必须选择尺寸-属性(这会打开属性工具pallete)将分数更改为小数,然后更改。xxxxxx至。xxx精度。
 
我想知道我是否可以写一个Lisp程序的句子
 
命令到3PLC
选择要更改的尺寸
结果将维度从小数更改为小数点后3位

The Buzzard 发表于 2022-7-6 14:51:22

 
尝试使用Dimoverride命令
 
 
也在命令下的ACAD帮助中

bradb 发表于 2022-7-6 14:55:08

 
 
谢谢你的帮助。我将检查覆盖命令,但目前它正在工作
 

(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

bradb 发表于 2022-7-6 15:03:14


(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变量设置回退出命令之前的状态。

Lee Mac 发表于 2022-7-6 15:04:20

试试这个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))


bradb 发表于 2022-7-6 15:11:05

 
 
 
谢谢李,这很有效,但我需要更多。
 
我不理解visual lisp,所以我不知道在这个lisp上编辑什么。
 
我还需要3个命令
 
t3m更改为3plc并将文本移到外行(DIMTMOVE 0)
tf更改为分数(DIMLUNIT 5 DIMFRAC 1)
tfm更改为分数并将文本移到外行(DIMTMOVE 0)
页: [1] 2
查看完整版本: 标注属性编辑