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

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

寸法補助線の非表示
寸法補助線を片側だけ非表示にしたい事が有ります。

今は、オブジェクトプロパティ管理で、寸法補助線1の方をオフにして、
「そっちじゃなかった」のときは、またオンにして寸法補助線2の方をオフにしています。

これが、地味に面倒です。

寸法補助線をクリックしたら、その線を非表示にする様な事は出来ませんか?
LISPは使用Okです。

宜しくお願いします。
  • くっく
  • 2025/10/10 (Fri) 13:58:52
Re: 寸法補助線の非表示
https://autocadtips1.com/2011/06/07/autolisp-dimension-extension-line-toggle/
こちらにある XLTGL.lsp はどうでしょう?

クリックした補助線を非表示にします。
非表示になっている場合は、寸法線の補助線が表示される付近をクリックすると、再表示されます。
  • LUNE
  • 2025/10/10 (Fri) 15:04:12
Re: 寸法補助線の非表示
超早の御返事ありがとうございます。
希望する物でした。またよろしくお願いします。
  • くっく
  • 2025/10/10 (Fri) 18:39:46
Re: 寸法補助線の非表示
寸法補助線ではなく、矢印の表示・非表示の機能にするには、どの様に変更したら良いでしょうか。
お願いします。
  • くっく
  • 2025/10/27 (Mon) 11:45:41
Re: 寸法補助線の非表示
矢印の場合、少し考え方を変えないといけないので、以下のように修正しました。
矢印の種類は、"_Open"としています。

(defun C:BLKTGL () (BLKTGLSEL))

(defun BLKTGLSEL (/ obj objName objData pickPoint)
(graphscr)
(while (setq obj (entsel))
(setq objName (car obj)
objData (entget objName '("ACAD"))
pickPoint (cadr obj)
)
(if (equal "DIMENSION" (cdr (assoc 0 objData)))
(BLKTGLACT objName objData pickPoint)
)
)
)

(defun BLKTGLACT (objName objData pickPoint /
distance1 distance2 side blkOverride
)
(setq distance1 (distance pickPoint (cdr (assoc 10 objData)))
distance2 (/ (cdr (assoc 42 objData)) 2)
)
(if (> distance1 distance2)
(setq side "Arrowhead1Type")
(setq side "Arrowhead2Type")
)

(if (eq (getpropertyvalue objName side) "_None")
(setq blkOverride "_Open")
(setq blkOverride "_None")
)

(setpropertyvalue objName side blkOverride)

)

(princ)


矢印の種類が異なる場合は、"_Open"の部分を変更してください。
塗りつぶし矢印:""
空矢印:"_ClosedBlank"
閉矢印:"_Closed"
直角矢印:"_Open90"
30度矢印:"_Open30"

  • LUNE
  • 2025/10/27 (Mon) 13:41:34
Re: 寸法補助線の非表示
ありがとうございます。

非表示から表示にする際は、どの矢印を適用するか決めないといけないのですね。
確かに、手作業でもその通りでした。

もし出来るのならば、その寸法オブジェクトに割り当てられている寸法スタイルを読み取って、
その寸法スタイルに設定されている矢印を使うという事に出来ませんでしょうか。

または、「現在の寸法スタイル」から読み取る方法でも構いません。
  • くっく
  • 2025/10/27 (Mon) 17:25:25
Re: 寸法補助線の非表示
多分これでOKかと。
矢印が非表示の場合は、その寸法に設定されている寸法スタイルの矢印になるようにしました。

(defun C:BLKTGL () (BLKTGLSEL))

(defun BLKTGLSEL (/ obj objName objData pickPoint)
(graphscr)
(while (setq obj (entsel))
(setq objName (car obj)
objData (entget objName '("ACAD"))
pickPoint (cadr obj)
)
(if (equal "DIMENSION" (cdr (assoc 0 objData)))
(BLKTGLACT objName objData pickPoint)
)
)
)

(defun BLKTGLACT (objName objData pickPoint /
distance1 distance2 side blkOverride t_blk a_blk
)
(setq distance1 (distance pickPoint (cdr (assoc 10 objData)))
distance2 (/ (cdr (assoc 42 objData)) 2)
)

(setq side '("Arrowhead2Type" "Arrowhead1Type"))
(if (> distance1 distance2)
(setq side (reverse side))
)

(setq t_blk (getpropertyvalue objName (car side)))
(setq a_blk (getpropertyvalue objName (cadr side)))

(if (eq t_blk "_None")
(progn
(command-s "dimoverride" "c" objName "")
(setpropertyvalue objName (cadr side) a_blk)

)
(setpropertyvalue objName (car side) "_None")
)
)

(princ)
  • LUNE
  • 2025/10/28 (Tue) 12:41:03
Re: 寸法補助線の非表示
いつもありがとうございます。

大変助かりました。
  • くっく
  • 2025/10/28 (Tue) 15:33:12

返信フォーム






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