本帖最后由 KO你 于 2025-6-25 15:42 编辑
快捷键 ddz 标注文字归位
(defun c:ddz () (command"dimedit""h")(princ "标注文字归位")(princ))
快捷键 dda 全部解除标注关联
(defun c:dda () (command"dimdisassociate""all"""))
快捷键 ddx 标注样式替代关闭
(defun c:ddx () (command"dimstyle""s"(getvar"dimstyle")"y"))
快捷键 ddt 标注文字加减方框
(defun c:ddt ( / i s1 ss )
(while (setq ss (ssget ":S" '((0 . "DIMENSION"))))
(repeat (setq i (sslength ss))
(setq s1 (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
(if (eq (vla-get-tolerancedisplay s1) 0)
(vla-put-tolerancedisplay s1 4)
(vla-put-tolerancedisplay s1 0)))))
快捷键 dde 全图删除0值标注
(defun c:dde (/ ent)
(if (/= (setq ent (ssget "x" '((0 . "dimension")
(-4 . "<=")(42 . 1)))) nil)
(progn (command "erase" ent "")))
(princ))(c:dea)
快捷键 ddd 处理文字标注不能修改问题
(defun c:ddd () (command"mtexted""."))(c:ddd)
网友答: 标注文字加减方框,使用的对象方法不对啊,不是这个公差显示网友答: 优秀!!!!!!网友答: 你增加了论坛的热度。网友答:
论坛最近是比较冷清网友答: 挺好用的
网友答:
;;;标注文字还原位置
(defun c:ded(/ ent)
(command "DIMEDIT" "")
(princ)
)
;;;尺寸标注增加1行(需设置DIMDLI间距:比例x6)
(defun c:ad(/ ent)
(command "DIMBASELINE")
(princ)
)
;;;将尺寸值改为固定数值
(defun C:dgg ()
(if (and (princ "\nselect object:")
(setq s (ssget '((0 . "DIMENSION"))))) (progn
(setq k 0)
(repeat (sslength s)
(setq a (entget (ssname s k)))
(setq a (subst (cons 1 (rtos (cdr(assoc 42 a)) 2 0)) (assoc 1 a) a))
(entmod a)
(setq k (1+ k))
)
))
(princ)
)
;;;标注更新,四舍五入=0
(defun c:sdaa (/ ent)
(setq $orr *error*)
(setq *error* #errxts)
(setvar "CMDECHO" 0)
(command ".undo" "be")
(setvar "DIMRND" 0)
(if (setq ss (ssget (list '(0 . "DIMENSION,leader"))))
(progn
(command "_chprop" ss ""
"la" "0-PS-标注-尺寸"
"c" "bylayer"
"lt" "bylayer"
"s" "0.9"
""
)
(vl-cmdf "-dimstyle" "a" ss "")
)
);if
(command ".undo" "e")
(setvar "CMDECHO" 1)
(princ)
)
;;;标注更新d5
(defun c:sda (/ ent)
(setq $orr *error*)
(setq *error* #errxts)
(setvar "CMDECHO" 0)
(command ".undo" "be")
(setvar "DIMRND" 5)
(if (setq ss (ssget (list '(0 . "DIMENSION,leader"))))
(progn
(command "_chprop" ss ""
"la" "0-PS-标注-尺寸"
"c" "bylayer"
"lt" "bylayer"
"s" "0.9"
""
)
(vl-cmdf "-dimstyle" "a" ss "")
)
);if
(command ".undo" "e")
(setvar "CMDECHO" 1)
(princ)
)
;;;标注更新d10
(defun c:sd1 (/ ent)
(setq $orr *error*)
(setq *error* #errxts)
(setvar "CMDECHO" 0)
(command ".undo" "be")
(setvar "DIMRND" 10)
(if (setq ss (ssget (list '(0 . "DIMENSION,leader"))))
(progn
(command "_chprop" ss ""
"la" "0-PS-标注-尺寸"
"c" "bylayer"
"lt" "bylayer"
"s" "0.9"
""
)
(vl-cmdf "-dimstyle" "a" ss "")
)
);if
(command ".undo" "e")
(setvar "CMDECHO" 1)
(princ)
)
快捷键 ddz 标注文字归位
(defun c:ddz () (command"dimedit""h")(princ "标注文字归位")(princ))
快捷键 dda 全部解除标注关联
(defun c:dda () (command"dimdisassociate""all"""))
快捷键 ddx 标注样式替代关闭
(defun c:ddx () (command"dimstyle""s"(getvar"dimstyle")"y"))
快捷键 ddt 标注文字加减方框
(defun c:ddt ( / i s1 ss )
(while (setq ss (ssget ":S" '((0 . "DIMENSION"))))
(repeat (setq i (sslength ss))
(setq s1 (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
(if (eq (vla-get-tolerancedisplay s1) 0)
(vla-put-tolerancedisplay s1 4)
(vla-put-tolerancedisplay s1 0)))))
快捷键 dde 全图删除0值标注
(defun c:dde (/ ent)
(if (/= (setq ent (ssget "x" '((0 . "dimension")
(-4 . "<=")(42 . 1)))) nil)
(progn (command "erase" ent "")))
(princ))(c:dea)
快捷键 ddd 处理文字标注不能修改问题
(defun c:ddd () (command"mtexted""."))(c:ddd)
网友答: 标注文字加减方框,使用的对象方法不对啊,不是这个公差显示网友答: 优秀!!!!!!网友答: 你增加了论坛的热度。网友答:
xiaodoo 发表于 2025-6-27 11:47
你增加了论坛的热度。
论坛最近是比较冷清网友答: 挺好用的
网友答:
;;;标注文字还原位置(defun c:ded(/ ent)
(command "DIMEDIT" "")
(princ)
)
;;;尺寸标注增加1行(需设置DIMDLI间距:比例x6)
(defun c:ad(/ ent)
(command "DIMBASELINE")
(princ)
)
;;;将尺寸值改为固定数值
(defun C:dgg ()
(if (and (princ "\nselect object:")
(setq s (ssget '((0 . "DIMENSION"))))) (progn
(setq k 0)
(repeat (sslength s)
(setq a (entget (ssname s k)))
(setq a (subst (cons 1 (rtos (cdr(assoc 42 a)) 2 0)) (assoc 1 a) a))
(entmod a)
(setq k (1+ k))
)
))
(princ)
)
;;;标注更新,四舍五入=0
(defun c:sdaa (/ ent)
(setq $orr *error*)
(setq *error* #errxts)
(setvar "CMDECHO" 0)
(command ".undo" "be")
(setvar "DIMRND" 0)
(if (setq ss (ssget (list '(0 . "DIMENSION,leader"))))
(progn
(command "_chprop" ss ""
"la" "0-PS-标注-尺寸"
"c" "bylayer"
"lt" "bylayer"
"s" "0.9"
""
)
(vl-cmdf "-dimstyle" "a" ss "")
)
);if
(command ".undo" "e")
(setvar "CMDECHO" 1)
(princ)
)
;;;标注更新d5
(defun c:sda (/ ent)
(setq $orr *error*)
(setq *error* #errxts)
(setvar "CMDECHO" 0)
(command ".undo" "be")
(setvar "DIMRND" 5)
(if (setq ss (ssget (list '(0 . "DIMENSION,leader"))))
(progn
(command "_chprop" ss ""
"la" "0-PS-标注-尺寸"
"c" "bylayer"
"lt" "bylayer"
"s" "0.9"
""
)
(vl-cmdf "-dimstyle" "a" ss "")
)
);if
(command ".undo" "e")
(setvar "CMDECHO" 1)
(princ)
)
;;;标注更新d10
(defun c:sd1 (/ ent)
(setq $orr *error*)
(setq *error* #errxts)
(setvar "CMDECHO" 0)
(command ".undo" "be")
(setvar "DIMRND" 10)
(if (setq ss (ssget (list '(0 . "DIMENSION,leader"))))
(progn
(command "_chprop" ss ""
"la" "0-PS-标注-尺寸"
"c" "bylayer"
"lt" "bylayer"
"s" "0.9"
""
)
(vl-cmdf "-dimstyle" "a" ss "")
)
);if
(command ".undo" "e")
(setvar "CMDECHO" 1)
(princ)
)