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

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

寸法値の塗りつぶし色について
こんばんは。
AutoCAD 2026を使用しています。
AutoLISPで寸法値のプロパティ[塗りつぶし]を背景色にしたいのですが
なかなかできません。
以下のコードを実行しています。

(defun c:dim_mask (/ OBJs OBJ flg VlObj)

(vl-load-com)

(setq OBJs (ssget "_I" '((0 . "*DIMENSION"))))

(if OBJs
(setq OBJ (ssname OBJs 0))
(progn
(setq OBJ nil flg "No")
(while flg
(while (null OBJ)
(setq OBJ (car (entsel "\n寸法値を選択: ")))
);while null OBJ

(if (wcmatch (cdr(assoc 0 (entget OBJ))) "*DIMENSION")
(setq flg nil)
(setq flg "No" OBJ nil)
)
)
)
)

(setq VlObj (vlax-ename->vla-object Obj))

;; 塗りつぶしを有効にする
(vla-put-TextFill VlObj :vlax-true)

;; 塗りつぶし色を「背景色」に設定 (0 = 背景色)
(vla-put-TextFillColor VlObj 0)

(vla-update VlObj) ; 変更を反映
(princ "\n塗りつぶしを背景色に設定しました。")

)

背景色がbylayerになってしまいます。
どこがちがうのでしょうか。
  • しんちゃん
  • 2025/12/26 (Fri) 17:40:27
Re: 寸法値の塗りつぶし色について
塗りつぶし色を背景色にするには、拡張データを操作する必要があるようです。

https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/create-a-dimension-with-vla-adddimaligned-that-has-text/td-p/13728034
こちらにあるメッセージ4/9のfooというコードを参考にしてみてください。
ただし、既定の設定のままの寸法オブジェクトでは、拡張データがなく上記のコードのみでは背景色に設定できないので、しんちゃんさんのコードで塗りつぶしをBylayerにして拡張データを追加した後で、上記のコードで背景色に変更する流れになります。
  • LUNE
  • 2026/01/05 (Mon) 09:55:13
Re: 寸法値の塗りつぶし色について
LUNEさん、お返事ありがとうございます。
ご指摘通り拡張データを生成後、再設定すると背景色になりました。
拡張データがある場合と ない場合は条件分が必要なのですね。
お陰様でちょっと賢くなりました。
ありがとうございます。
  • しんちゃん
  • 2026/01/05 (Mon) 11:35:40
Re: 寸法値の塗りつぶし色について
>拡張データがある場合と ない場合は条件分が必要なのですね。
仮に背景の設定がすでにされている寸法オブジェクトでも、しんちゃんさんのコードを実行すれば一旦Bylayerになるだけだと思うので、条件分けせずとも行けると思います。
拡張データがない寸法オブジェクトに対しては、しんちゃんさんのコードで拡張データを追加して背景色がBylayerになる、拡張データがある寸法オブジェクトに対しては、一旦背景色がBylayerになる という動きになるだけなので。
  • LUNE
  • 2026/01/05 (Mon) 11:50:05
Re: 寸法値の塗りつぶし色について
LUNEさんのご指摘通り条件わけせずとも
背景色になりました。
ちょっと賢くなったと思いましたが。。。
まだまだ、頑張ります。
  • しんちゃん
  • 2026/01/05 (Mon) 17:56:43
Re: 寸法値の塗りつぶし色について
横から申し訳ありません。
私的にはまったくわかりません。
正解を教えてもらえないでしょうか
  • 初心者
  • 2026/01/15 (Thu) 14:02:30
Re: 寸法値の塗りつぶし色について
なんとかAIと相談しながらできました。
  • 初心者
  • 2026/01/16 (Fri) 07:25:48

返信フォーム






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