マクロでは入力値が取れないので、Lispで。
書き換える寸法値をクリック→単位寸法(添付された図だと500)
元の寸法値と単位寸法は整数限定、割り切れない等は考慮していません。
図のように2行にしています。
(defun c:dimo (/ e ent uni txt val num sent str)
(while (= ent nil)
(prompt "\n書き換える寸法値を選択:")
(setq e (entsel))
(setq ent (entget (car e)))
(if (/= (cdr (assoc 0 ent)) "DIMENSION")
(setq ent nil)
)
)
(setq uni (getint "\n単位寸法を入力:"))
(setq sent (entget (car (nentselp (cadr e)))))
(setq txt (cdr (assoc 1 sent)))
(setq val (atoi (substr txt (+ 2 (vl-string-search ";" txt)))))
(setq num (/ val uni))
(setq str (strcat "@" (itoa uni) "×" (itoa num) "\\X" "=" (itoa val)))
(setq ent (subst (cons 1 str)(assoc 1 ent) ent))
(entmod ent)
(princ)
)
- LUNE
- 2025/06/06 (Fri) 10:54:30