AcadBlockReference VBA Inserti
我要编辑多个块参照的插入点。我一直在尝试使用以下代码编辑它们:Private Sub FINDMARQBOOKINLAYOUTS()
Dim OBJLAYOUT As AcadLayout
Dim AOBJ As AcadEntity
Dim MARK As AcadBlockReference
Dim INSSTR As String
Dim ATTDATE As String
Dim LAYOUTNAME As String
Dim INSPOINT(0 To 2) As Variant
ThisDrawing.SetVariable "REGENMODE", 0
INSPOINT(0) = -0.125
INSPOINT(1) = -0.125
INSPOINT(2) = 0
For Each OBJLAYOUT In ThisDrawing.Layouts
If OBJLAYOUT.Name = "Model" Then
Else
ThisDrawing.ActiveLayout = OBJLAYOUT
LAYOUTNAME = OBJLAYOUT.Name
'COUNT1 = COUNT1 + 1 ' THIS IS JUST FOR VERIFICATION
'START BLOCK ITERATION
For Each AOBJ In ThisDrawing.ActiveLayout.Block
If TypeOf AOBJ Is AcadBlockReference Then
If AOBJ.Name = "MARQ-BOOK" Then
Set MARK = AOBJ
MARK.InsertionPoint(0) = INSPOINT(0)
MARK.InsertionPoint(1) = INSPOINT(1)
MARK.InsertionPoint(2) = INSPOINT(2)
INSSTR = INSSTR & "(" & MARK.InsertionPoint(1) & "," & MARK.InsertionPoint(1) & "," & MARK.InsertionPoint(2) & ")"
End If
End If
Next AOBJ
End If
Next OBJLAYOUT
ThisDrawing.SetVariable "REGENMODE", 1
MsgBox INSSTR
Unload Me
End Sub
这个宏迭代布局,找到一个特定的块引用,然后我试图更改其插入点属性,但我一直没能做到。我知道我错过了什么,但找不到什么。我很感谢你在这方面的帮助。 请有人回答我的问题 为了测试的目的,我稍微修改了一下你的习惯。看看这是否更好。
Sub FINDMARQBOOKINLAYOUTS()
Dim OBJLAYOUT As AcadLayout
Dim AOBJ As AcadEntity
Dim MARK As AcadBlockReference
Dim INSSTR As String
Dim ATTDATE As String
Dim LAYOUTNAME As String
Dim INSPOINT(0 To 2) As Double 'Dim as double array
ThisDrawing.SetVariable "REGENMODE", 0
INSPOINT(0) = -0.125
INSPOINT(1) = -0.125
INSPOINT(2) = 0
For Each OBJLAYOUT In ThisDrawing.Layouts
If OBJLAYOUT.Name <> "Model" Then
ThisDrawing.ActiveLayout = OBJLAYOUT
LAYOUTNAME = OBJLAYOUT.Name
'COUNT1 = COUNT1 + 1 ' THIS IS JUST FOR VERIFICATION
'START BLOCK ITERATION
For Each AOBJ In ThisDrawing.ActiveLayout.Block
If TypeOf AOBJ Is AcadBlockReference Then
If AOBJ.Name = "MARQ-BOOK" Then
Set MARK = AOBJ
MARK.InsertionPoint = INSPOINT 'reset insertion point
INSSTR = INSSTR & "(" & MARK.InsertionPoint(1) & "," & MARK.InsertionPoint(1) & "," & MARK.InsertionPoint(2) & ")"
End If
End If
Next AOBJ
End If
Next OBJLAYOUT
ThisDrawing.SetVariable "REGENMODE", 1
MsgBox INSSTR
End Sub
页:
[1]