重定义块
From AutoCAD ActiveX/VBA
要重定义块,请使用 Block 对象的任何方法和特性。重定义块时,图形中对该块的所有参照也随即更新,以便反映新的定义。
重定义会影响以前和以后的块插入。固定属性会丢失,并且被新的固定属性所替换。即使新块不包含属性,可变属性也保持不变。
本例创建一个块并向块定义中添加一个圆,然后将块作为块参照插入到图形中。块定义中的圆将被更新,块参照也会自动更新。
Sub Ch10_RedefiningABlock()
' 定义块
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")
' 向块中添加圆Dim circleObj As AcadCircleDim center(0 To 2) As DoubleDim radius As Doublecenter(0) = 0center(1) = 0center(2) = 0radius = 1Set circleObj = blockObj.AddCircle(center, radius)' 插入块Dim blockRefObj As AcadBlockReferenceinsertionPnt(0) = 2insertionPnt(1) = 2insertionPnt(2) = 0Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _(insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)ZoomAll' 重定义块中的圆,' 并更新块参照circleObj.radius = 3blockRefObj.UpdateEnd Sub