CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

相关分类

插入块方法 (ActiveX)

2023-1-4 06:07| 发布者: admin| 查看: 604| 评论: 0|来自: AutoCAD

摘要: 插入已在当前图形中定义的图形文件或命名块。

插入已在当前图形中定义的图形文件或命名块。

支持的平台:仅窗口

签名

工 务 局:

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

类型:模型空间,图纸空间

此方法适用的对象。

插入点

访问:仅输入

类型:变体(双精度的三元素数组)

3D WCS 坐标指定图形中插入块的位置。

名字

访问:仅输入

类型:字符串

AutoCAD 图形文件的名称或要插入的块的名称。如果是文件名,请包括 AutoCAD 查找文件所需的.dwg扩展名和任何路径信息。

Xscale

访问:仅输入;自选

类型:

默认值等于 1.0。必须是正数。

Yscale

访问:仅输入;自选

类型:

默认值等于 1.0。必须是正数。

Zscale

访问:仅输入;自选

类型:

默认值等于 1.0。必须是正数。

旋转

访问:仅输入;自选

类型:

默认值等于 0.0 弧度。

密码

访问:仅输入;自选

类型:变体

保存图形文件时应用于图形文件的密码。

返回值(RetVal)

类型:块引用

作为块参照对象的放置块。

言论

将一个块插入另一个块将创建嵌套块。

尝试使用未初始化的Name参数调用该方法会导致意外行为。InsertBlock

Examples

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)
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-11 19:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部