关于插入块 (VBA/ActiveX)
您可以使用该方法将块或整个图形插入到当前图形中。InsertBlock 该方法采用六个值作为输入:插入点、要插入的块或图形的名称、X 比例因子、Y 比例因子、Z 比例因子和旋转角度。InsertBlock 将整个图形插入到另一个图形中时,AutoCAD 会像处理任何其他块参照一样处理插入的图形。后续插入引用具有不同位置、比例和旋转设置的块定义(包含块的几何描述)。如果在插入原始图形后对其进行更改,则更改对插入的块没有影响。如果希望插入的块反映对原始图形所做的更改,则可以通过重新插入原始图形来重新定义块。这可以通过该方法完成。InsertBlock 如果将图形作为块插入,则文件名将自动用作块的名称。创建块后,可以使用 Name 属性更改块的名称。 默认情况下,AutoCAD 使用坐标 (0, 0, 0) 作为插入图形的基点。可以通过打开原始图形并使用该方法为 INSBASE 系统变量指定不同的插入基点来更改图形的基点。AutoCAD 将在下次插入图形时使用新基点。SetVariable 如果插入的图形包含对象,则这些对象不包含在当前图形的块定义中。若要使用其他图形中的对象,请打开原始图形,然后使用该方法将对象定义为块。可以将图形插入到图纸空间或模型空间中的另一图形中。PaperSpacePaperSpaceAddPaperSpace 无法迭代块引用以查找组成它的原始对象。但是,您可以迭代原始块定义,也可以将块引用分解为其原始组件。 您还可以使用该方法插入块数组。此方法不会像图形那样在图形中插入单个块,而是插入指定块的数组。此方法返回一个对象。AddMInsertBlockInsertBlockMInsertBlock 定义块并将块插入到图形中此示例定义一个块,并向块定义添加一个圆圈。然后,它将块作为块参照插入到图形中。 Sub Ch10_InsertingABlock() ' Define 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 MsgBox "The circle belongs to " & blockRefObj.ObjectName End Sub 注意:插入后,外部文件的 WCS 将平行于当前图形中当前用户坐标系 (UCS) 的 XY 平面对齐。因此,通过在插入之前设置 UCS,可以在空间中的任何方向插入外部文件中的块。
父主题: |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 11:50
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.