Vla-getwindowtoplot

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年1月23日 (土) 20:05時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-getwindowtoplot ''vla-object'' ''LowerLeft'' ''UpperRight'') ; 機能 : レイアウトの印刷する部分を定義する座標を取得...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(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)
)

関連事項