Vla-clipboundary

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-clipboundary vla-object PointsArray )


機能
ラスター イメージまたはアンダーレイのクリップ境界を指定する。


引数
  • vla-object … VLAオブジェクト(DgnUnderlay、DwfUnderlay、PdfUnderlay、RasterImage、Wipeout)
  • PointsArray … ラスター イメージまたはアンダーレイのクリップ境界を指定する 2D WCS 座標の配列。


戻り値
nil


注意

  • イメージまたはアンダーレイをクリッピングして、表示および印刷するリージョンを定義することができる。同一オブジェクトのインスタンスが複数ある場合は、それぞれ異なる境界を設定することができる。
  • クリップ境界は、イメージまたはアンダーレイの境界内に収まるように制限された頂点を持つ閉じた 2 次元のポリゴンまたは矩形でなければならない。
  • イメージまたはアンダーレイをクリッピングするには、オブジェクトの境界が表示されている必要がある。ClippingEnabled プロパティを使用して、クリップ境界をオンまたはオフにする。


サンプル
(vl-load-com)
(defun c:Example_ClipBoundary()
    ;; モデル空間でラスター イメージを追加し、クリップ境界に基づいて
    ;; 画像を切り取るサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; サンプル ディレクトリにある "2d Projected Polylines.jpg"を使用する。
    ;; ファイルの場所は imageName 変数で調整
    (setq insertionPoint (vlax-3d-point 5 5 0)
          imageName ".\\Sample\\VISP\\2d Projected Polylines.jpg"
          scalefactor 2
          rotationAngle 0)

    (if (/= (findfile ".\\Sample\\VISP\\2d Projected Polylines.jpg") nil)
        (progn  
	    ;; モデルにラスターを配置
            (setq modelSpace (vla-get-ModelSpace doc))
            (setq rasterObj (vla-AddRaster modelSpace (findfile ".\\Sample\\VISP\\2d Projected Polylines.jpg") insertionPoint scalefactor rotationAngle))
    
	    (vla-ZoomAll acadObj)
	    (alert "イメージをクリップ?")
	    
	    ;; クリップ境界の設定
	    (setq clipPoints (vlax-make-safearray vlax-vbDouble '(0 . 9)))
	    (vlax-safearray-fill clipPoints '(6 6.75
		                              7 6
		                              6 5
                                              5 6
					      6 6.75
					      )
	    )
	    
	    ;; イメージのクリップ
	    (vla-ClipBoundary rasterObj clipPoints)
	    
	    ;; クリップの表示を有効に
	    (vla-put-ClippingEnabled rasterObj :vlax-true)
	    (vla-Regen doc acActiveViewport)
	    (alert "クリップを有効にしますた")
        )
        (alert (strcat imageName " がないっす。"))
    )    
)


関連事項