AddMInsertBlock メソッド(ActiveX)

ブロック配列を挿入します。

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

構文と要素

VBA:

RetVal = object.AddMInsertBlock(InsertionPoint, Name, XScale, YScale, ZScale, Rotation, NumRows, NumColumns, RowSpacing, ColumnSpacing [, Password])
object

タイプ: BlockModelSpacePaperSpace

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

InsertionPoint

アクセス: 入力のみ

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

ブロックの配列の挿入先の 3D WCS 座標。

Name

アクセス: 入力のみ

タイプ: 文字列

MInsertBlock の名前。

注: 標準の Block では可能ですが、挿入時に、アスタリスクを MInsertBlock の名前の前に付けてブロックのオブジェクトを分割することはできません。
XScale

アクセス: 入力のみ

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

X 方向の尺度。

YScale

アクセス: 入力のみ

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

Y 方向の尺度。

ZScale

アクセス: 入力のみ

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

Z 方向の尺度。

Rotation

アクセス: 入力のみ

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

ラジアン単位で表した回転角度。

NumRows

アクセス: 入力のみ

タイプ: 長整数型

配列の行数を示す正の整数。

NumColumns

アクセス: 入力のみ

タイプ: 長整数型

配列の列数を示す正の整数。

RowSpacing

アクセス: 入力のみ

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

配列の行間隔。

ColumnSpacing

アクセス: 入力のみ

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

配列の列間隔。

Password

アクセス: 入力のみ

タイプ: バリアント型

図面を開いて挿入する際に必要なパスワード。

戻り値(RetVal)

タイプ: MInsertBlock

新しく作成されるブロックの配列

注意

次の図は作成されたブロックの配列を示します。



元のブロック



挿入されたブロックの配列

VBA:

Sub Example_AddMInsertBlock()
    ' This example creates a new Block in the current drawing, adds a
    ' Circle object to the new block, and uses the newly created block
    ' to create a rectangular array of block references using AddMInsertBlock
    
    Dim circleObj As AcadCircle
    Dim centerPoint(0 To 2) As Double, InsertPoint(0 To 2) As Double
    Dim radius As Double
    Dim newMBlock As AcadMInsertBlock
    Dim newBlock As AcadBlock
    
    ' Define the Circle object that will be inserted into the block
    centerPoint(0) = 0: centerPoint(1) = 0: centerPoint(2) = 0
    InsertPoint(0) = 1: InsertPoint(1) = 1: InsertPoint(2) = 0
    radius = 0.5
    
    ' Create a new block to hold the Circle object
    Set newBlock = ThisDrawing.Blocks.Add(centerPoint, "CBlock")
    
    ' Add the Circle object to the new block object
    Set circleObj = ThisDrawing.Blocks("CBlock").AddCircle(centerPoint, radius)
    
    ' Create a rectangular array of Circles using the new block containing the Circle
    ' and the AddMInsertBlock method
    Set newMBlock = ThisDrawing.ModelSpace.AddMInsertBlock(InsertPoint, "CBlock", 1, 1, 1, 1, 2, 2, 1, 1)
        
    ThisDrawing.Application.ZoomAll
    
    MsgBox "A rectangular array has been created from the original block."

End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_AddMInsertBlock()
    ;; This example creates a new Block in the current drawing, adds a
    ;; Circle object to the new block, and uses the newly created block
    ;; to create a rectangular array of block references using AddMInsertBlock
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; Define the Circle object that will be inserted into the block
    (setq centerPoint (vlax-3d-point 0 0 0)
          InsertPoint (vlax-3d-point 1 1 0)
          radius 0.5)
    
    ;; Create a new block to hold the Circle object
    (setq blocks (vla-get-Blocks doc))
    (setq newBlock (vla-Add blocks centerPoint "CBlock"))
    
    ;; Add the Circle object to the new block object
    (setq circleObj (vla-AddCircle newBlock centerPoint radius))
    
    ;; Create a rectangular array of Circles using the new block containing the Circle
    ;; and the AddMInsertBlock method
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq newMBlock (vla-AddMInsertBlock modelSpace InsertPoint "CBlock" 1 1 1 1 2 2 1 1))
        
    (vla-ZoomAll acadObj)
    
    (alert "A rectangular array has been created from the original block.")
)