この掲示板は AutoCADマクロ屋本舗 の掲示板です。

【 注意 】最初に必ず ↓↓ 下記内容 ↓↓ を参照ください。
① マクロが分からない方は、まず 【 マクロ講座 】 を参照ください。
② 質問の前に 【 マクロ使用前の注意事項 】 をお読みください。
③ 質問する時は、新規投稿フォーム下の【 新規投稿時のお願い 】を必ずお読みください。

LISP作成依頼
こんにちは。
特定の長さ寸法オブジェクトの文字列を書き換えたいのですが、
長さ寸法オブジェクトの現在の文字列を入力→書き換えたい文字列を入力で、文字を書き換えるLISPを作って頂くことはできますか?
よろしくお願いします。
  • 名無し
  • 2025/05/07 (Wed) 22:34:04
Re: LISP作成依頼
こういうことでしょうか。

(defun c:moddim ()

(setq obj (car(nentsel)))
(setq ent (entget obj))
(setq dimtext_new (getstring "新規寸法を入力: "))

(setq dimtext_old (cdr(assoc 1 ent)))

(entmod (subst (cons 1 dimtext_new )(assoc 1 ent) ent))

)
  • ruru
  • 2025/05/08 (Thu) 08:26:21
Re: LISP作成依頼
ruruさん
作成ありがとうございます。
置き換えたい長さ寸法をマウスで選択ではなく、文字列を入力で選択したいのですが出来ますか?
  • 名無し
  • 2025/05/08 (Thu) 09:53:04
Re: LISP作成依頼
変更したい"1000"と寸法がありましたら、1000と入力する。→対象寸法選択→ 書き換え後の文字列入力→書き換え
ということでしょうか。
  • ruru
  • 2025/05/08 (Thu) 10:45:30
Re: LISP作成依頼
ruruさん
早速のご返信ありがとうございます。

その手順を希望します!
ただ、数値ではなく置き換えたいのは文字になりますがいけますか・・・?
例えば、数値は無く「高さ」とだけ書いてある長さ寸法オブジェクトがあるとして、
「高さ」と入力すると、その長さ寸法が取得され、「幅」と入力するとその文字に置き換わるといった感じです。

伝え方が下手で申し訳ありません・・・m(__)m

  • 名無し
  • 2025/05/08 (Thu) 10:56:23
Re: LISP作成依頼
こういうことでしょうか?

(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

返信フォーム






プレビュー (投稿前に内容を確認)