Vla-getwindowtoplot
- 構文
- (vla-getwindowtoplot vla-object LowerLeft UpperRight)
- 機能
- レイアウトの印刷する部分を定義する座標を取得する。
- 引数
-
- vla-object … VLAオブジェクト(Layout、PlotConfiguration)
- LowerLeft … ウィンドウの左下の X および Y の値。
- UpperRight … ウィンドウの右上の X および Y の値。
- 戻り値
- nil
- MEMO : ウィンドウの座標は原点から取り込まれる。値の単位は PaperUnits プロパティで指定する。
- プロパティは、印刷に使用する座標を取得するため acWindow に設定されなければならない。
- サンプル
(vl-load-com)
(defun c:Example_GetWindowToPlot()
;; プロットを現在のレイアウト内の領域を定義して、
;; 定義された領域の印刷プレビューを表示するサンプル。
;;
;; * 注: 印刷プレビューはサンプルを停止して制御が返される前に、終了すること
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
;; ウィンドウの最初の点を取得
(setq point1 (vlax-variant-value (vla-GetPoint (vla-get-Utility doc) nil "印刷範囲の左下をクリック。")))
;; Z 位置を削除して2次元配列に。
(setq pointTemp1 (vlax-make-safearray vlax-vbDouble '(0 . 1)))
(vlax-safearray-put-element pointTemp1 0 (vlax-safearray-get-element point1 0))
(vlax-safearray-put-element pointTemp1 1 (vlax-safearray-get-element point1 1))
;; ウィンドウの2点目を取得
(setq point2 (vlax-variant-value (vla-GetCorner (vla-get-Utility doc) point1 "印刷範囲の右上をクリック.")))
;; Z 位置を削除して2次元配列に。
(setq pointTemp2 (vlax-make-safearray vlax-vbDouble '(0 . 1)))
(vlax-safearray-put-element pointTemp2 0 (vlax-safearray-get-element point2 0))
(vlax-safearray-put-element pointTemp2 1 (vlax-safearray-get-element point2 1))
;; 現在のレイアウトにウィンドウの値をセット
(vla-SetWindowToPlot (vla-get-ActiveLayout doc) pointTemp1 pointTemp2)
;; ウィンドウの情報を取得
(vla-GetWindowToPlot (vla-get-ActiveLayout doc) 'point1 'point2)
(setq point1 (vlax-safearray->list point1)
point2 (vlax-safearray->list point2))
(alert (strcat " 次の範囲を印刷します。 : "
"\n左下 : " (rtos (nth 0 point1) 2) ", " (rtos (nth 1 point1) 2)
"\n右上 : " (rtos (nth 0 point2) 2) ", " (rtos (nth 1 point2) 2)))
;; 印刷の種類を窓選択にセット
(vla-put-PlotType (vla-get-ActiveLayout doc) acWindow)
;; 窓選択の範囲で印刷 - プレビューを作成する前にプロットデバイスを設定する必要がある
(vla-DisplayPlotPreview (vla-get-Plot doc) acFullPreview)
)
関連事項