AutoCADのマルチライン(MLINE)は、壁や手摺、鋼材断面など一定幅を持つ形状を効率よく作図できる便利な機能です。
通常は作図後にプロパティで尺度を変更しますが、LISPを使えば作図前に幅を入力し、そのまま指定した寸法で描くことができます。
さらに、位置合わせを「上・ゼロ・下」から選択できるようにすると、中心基準や片側基準で柔軟に作図できます。
この記事では、マルチラインをより実務的に活用するためのLISPと、その考え方について解説します。
(defun c:MLT1 ( / k s )
(setvar "CMLSTYLE" "実線端部線分")
;; 位置合わせ
(initget "T Z B")
(setq k (getkword "n位置合わせ [上(T)/ゼロ(Z)/下(B)] : "))
(if (null k) (setq k "Z"))
;; 尺度
(setq s (getreal "nマルチライン尺度 <34>: "))
(if (null s) (setq s 34))
(setvar "CMLSCALE" s)
;; MLINE 実行
(command "_.MLINE" "J" k)
)
仁(じん)画像付きのSTEPは、下で確認できますよ!
操作手順


- コマンド「MLT1」を入力します
- 「位置合わせ」をする位置を「上」「ゼロ」「下」から選択します


- 「マルチラインの尺度」を設定します
- 「34」を入力します
※マルチラインスタイルで線のオフセットを「1」にすることで尺度=線の幅にすることができます


- マルチラインを描きます
- 幅34でマルチラインを描くことができます



LISPなら尺度を設定を先にできます!
LISP解説
(setvar "CMLSTYLE" "実線端部線分")こちらではあらかじめ設定したマルチラインスタイルの名前を呼び出しています
※「実線端部線分」という名前のマルチラインスタイルをあらかじめ設定しておく必要があります
(initget "T Z B")
(setq k (getkword "n位置合わせ [上(T)/ゼロ(Z)/下(B)] : "))
(if (null k) (setq k "Z"))位置合わせのメニューをgetkwordで作成しています
入力がなければ、ifの部分で「ゼロ」が選ばれるようになっています
(setq s (getreal "nマルチライン尺度 <34>: "))
(if (null s) (setq s 34))
(setvar "CMLSCALE" s)getrealで実際の幅を入力し、変数sに格納します
CMLSCALEはマルチラインの尺度のシステム変数で、こちらに変数sの値を入れて、尺度を変更します
入力がなければ、ifの部分で「34」が入力されるようになっています
※使用頻度が高いパイプの径Φ34を初期値に設定しています
(command "_.MLINE" "J" k)コマンド「MLINE」を起動します
”J”は「位置合わせ」のオプション起動で、kは位置合わせのメニューで選択した「上」「ゼロ」「下」が入力されます。
まとめ
- 作図前に幅を指定できる
- プロパティ変更が不要
- 幅の入力値がそのまま実寸になる
- 位置合わせを簡単に切り替えられる
- 手摺や鋼材断面の作図に最適
このコマンド「MLT1」は、マルチライン作図を実務向けに効率化する便利なLISPです。
位置合わせと幅を事前に指定できるため、作図後の修正作業を減らし、テンポよく作図できます。
特に、スタイル幅を1に設定しておくことで、尺度の値をそのまま実寸として扱える点が大きなポイントです。


コメント