マルチラインは通常、作図後にプロパティから尺度を変更しますが、LISPで尺度を入力すれば最初から指定した幅で作図できます。LISP内でCMLSCALEを設定しておくことで、作図前に幅が確定し、作業の流れを止めずに使えます。また、位置合わせを「上(T)・ゼロ(Z)・下(B)」から選択できるようにすると、中心基準や片側基準で柔軟に作図できます。
この運用では、マルチラインスタイルの幅を「1」に設定しておくことが重要です。マルチラインの実際の幅は
「スタイル幅 × 尺度(CMLSCALE)」
で決まるため、スタイル幅を1にしておけば、尺度の値=実寸幅になります。これにより、幅の管理を尺度だけに集約でき、数値のズレや設定ミスを防げます。
(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)
)

コメント