Vla-getpapermargins
- 構文
- (vla-getpapermargins vla-object LowerLeft UpperRight )
- 機能
- レイアウトまたは印刷設定の余白を取得する。
- 引数
-
- vla-object … VLAオブジェクト(Layout、PlotConfiguration)
- LowerLeft … 左下余白の X および Y の値。
- UpperRight … 右上余白の X および Y の値。
- 戻り値
- nil
- 印刷基点は、ここで指定したマージンだけ用紙の端からオフセットされる。
- 値の単位は PaperUnits プロパティで指定する。
- サンプル
(vl-load-com)
(defun c:Example_GetPaperMargins()
;; 現在の図面のレイアウトのコレクションにアクセスし、モデル空間を除く
;; 各レイアウトの GetPaperMargins プロパティから返される余白に基づいて
;; プロット サイズをリストするサンプル。
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
;; 現在の図面の layouts コレクションを取得
(setq Layouts (vla-get-Layouts doc))
(setq msg "") ;; 空文字
;; レイアウトのマージン情報を取得
(vlax-for Layout Layouts
;; Skip model space
(if (/= (vla-get-Name Layout) "Model")
(progn
(vla-put-ActiveLayout doc Layout)
(setq msg (strcat msg (vla-get-Name Layout) "\n"))
;; 用紙サイズとマージンの情報
(vla-GetPaperMargins Layout 'MarginLowerLeft 'MarginUpperRight)
(vla-GetPaperSize Layout 'PaperWidth 'PaperHeight)
;; 印刷可能範囲を計算
(setq PlotWidth (- PaperWidth (- (vlax-safearray-get-element MarginUpperRight 0) (vlax-safearray-get-element MarginLowerLeft 0))))
(setq PlotHeight (- PaperHeight (- (vlax-safearray-get-element MarginUpperRight 1) (vlax-safearray-get-element MarginLowerLeft 1))))
;; インチかミリか
(setq Measurement " ミリメートル")
;; Format for display
(setq msg (strcat msg "レイアウトの用紙サイズは : " (rtos PaperWidth 2) " X " (rtos PaperHeight 2) Measurement "\n\n"))
(setq msg (strcat msg " 用紙の余白は : \n"
" 左 (" (rtos (vlax-safearray-get-element MarginLowerLeft 0) 2) ")" Measurement "\n"
" 右 (" (rtos (vlax-safearray-get-element MarginUpperRight 0) 2) ")" Measurement "\n"
" 上 (" (rtos (vlax-safearray-get-element MarginUpperRight 1) 2) ")" Measurement "\n"
" 下 (" (rtos (vlax-safearray-get-element MarginLowerLeft 1) 2) ")" Measurement "\n\n"))
(setq msg (strcat msg "印刷可能範囲は: " (rtos PlotWidth 2) " X " (rtos PlotHeight 2) Measurement "\n"))
(setq msg (strcat msg "_____________________\n"))
)
)
)
;; 用紙サイズとマージンを表示
(alert (strcat "この図面の用紙の印刷情報は : " msg))
)
関連事項