InsertBlock メソッド(ActiveX)

図面ファイルまたは現在の図面で定義された名前の付いたブロックを挿入します。

サポートされているプラットフォーム: Windows のみ

構文と要素

VBA:

RetVal = object.InsertBlock(InsertionPoint, Name [, Xscale [, Yscale [, ZScale [, Rotation [, Password]]]]])
object

タイプ: BlockModelSpacePaperSpace

このメソッドが適用されるオブジェクト。

InsertionPoint

アクセス: 入力のみ

タイプ: バリアント型(3 要素の倍精度浮動小数点数型配列)

ブロックを挿入する図面内の位置を指定する 3D WCS 座標。

Name

アクセス: 入力のみ

タイプ: 文字列

挿入する AutoCAD 図面ファイルまたはブロックの名前。ファイル名の場合、拡張子 .dwg および AutoCAD がファイルを探すために必要なパスの情報を含めてください。

Xscale

アクセス: 入力のみ; オプション

タイプ: 倍精度浮動小数点数型

既定値は 1.0 です。正の数にする必要があります。

Yscale

アクセス: 入力のみ; オプション

タイプ: 倍精度浮動小数点数型

既定値は 1.0 です。正の数にする必要があります。

Zscale

アクセス: 入力のみ; オプション

タイプ: 倍精度浮動小数点数型

既定値は 1.0 です。正の数にする必要があります。

Rotation

アクセス: 入力のみ; オプション

タイプ: 倍精度浮動小数点数型

既定値は、0.0 ラジアンです。

Password

アクセス: 入力のみ; オプション

タイプ: バリアント型

図面を保存したときに図面ファイルに適用されたパスワード。

戻り値(RetVal)

タイプ: BlockReference

ブロック参照オブジェクトとして配置されるブロック

注意

ブロックを他のブロック内に挿入すると、ネストされたブロックが作成されます。

InsertBlock メソッドを初期化されていない Name パラメータで呼び出そうとすると、予期しない結果になります。

VBA:

Sub Example_InsertBlock()
    ' This example creates a block containing a circle.
    ' It then inserts the block.

    ' Create the block
    Dim blockObj As AcadBlock
    Dim insertionPnt(0 To 2) As Double
    insertionPnt(0) = 0#: insertionPnt(1) = 0#: insertionPnt(2) = 0#
    Set blockObj = ThisDrawing.Blocks.Add(insertionPnt, "CircleBlock")
    
    ' Add a circle to the block
    Dim circleObj As AcadCircle
    Dim center(0 To 2) As Double
    Dim radius As Double
    center(0) = 0: center(1) = 0: center(2) = 0
    radius = 1
    Set circleObj = blockObj.AddCircle(center, radius)
   
    ' Insert the block
    Dim blockRefObj As AcadBlockReference
    insertionPnt(0) = 2#: insertionPnt(1) = 2#: insertionPnt(2) = 0
    Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)
    
    ZoomAll
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_InsertBlock()
    ;; This example creates a block containing a circle.
    ;; It then inserts the block.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; Create the block
    (setq insertionPnt (vlax-3d-point 0 0 0))
    (setq blockObj (vla-Add (vla-get-Blocks doc) insertionPnt "CircleBlock"))
    
    ;; Add a circle to the block
    (setq center (vlax-3d-point 0 0 0)
          radius 1)
    (setq circleObj (vla-AddCircle blockObj center radius))
   
    ;; Insert the block
    (setq insertionPnt (vlax-3d-point 2 2 0))
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq blockRefObj (vla-InsertBlock modelSpace insertionPnt "CircleBlock" 1 1 1 0))
    
    (vla-ZoomAll acadObj)
)