こういうことでしょうか?
(defun c:SelectDimAndChangeValue ()
;; 最初の寸法値を取得
(setq originalDimString (getstring "\n変更する対象の寸法値を入力してください (例: 1000 高さ): "))
;; 指定した寸法値のオブジェクトを選択
(if originalDimString
(setq ss (ssget "X" (list (cons 0 "DIMENSION") (cons 1 originalDimString))))
)
;; オブジェクトが見つかった場合
(if ss
(progn
(alert (strcat (itoa (sslength ss)) " 個の " originalDimString " の寸法が選択されました。"))
;; 新しい寸法値を入力
(setq newDimString (getstring "\n新しい寸法値を入力してください (例: 1200 幅): "))
;; 選択された寸法オブジェクトの値を更新
(setq i 0)
(while (< i (sslength ss))
(setq ent (ssname ss i)) ;; 寸法オブジェクトの名前を取得
(setq entData (entget ent)) ;; プロパティを取得
(setq entData (subst (cons 1 newDimString) (assoc 1 entData) entData)) ;; グループコード1の値を更新
(entmod entData) ;; 更新を適用
(entupd ent) ;; AutoCADに変更を通知
(setq i (1+ i))
)
(alert (strcat "選択した " originalDimString " の寸法値が " newDimString " に変更されました。"))
)
(alert "指定した寸法値の寸法が見つかりませんでした。")
)
(princ)
)
- ruru
- 2025/05/09 (Fri) 18:48:36