Code:
Option ExplicitFunction CreateRegion1() As String
Dim RoomObjects(0 To 3) As AcadLine
Dim StPt(2) As Double
Dim EndPt(2) As Double
StPt(0) = 0
StPt(1) = 0
StPt(2) = 0
EndPt(0) = 0
EndPt(1) = -50
EndPt(2) = 0
Set RoomObjects(0) = ThisDrawing.ModelSpace.AddLine(StPt, EndPt)
StPt(0) = 0
StPt(1) = -50
StPt(2) = 0
EndPt(0) = 20
EndPt(1) = -50
EndPt(2) = 0
Set RoomObjects(1) = ThisDrawing.ModelSpace.AddLine(StPt, EndPt)
StPt(0) = 20
StPt(1) = -50
StPt(2) = 0
EndPt(0) = 20
EndPt(1) = 0
EndPt(2) = 0
Set RoomObjects(2) = ThisDrawing.ModelSpace.AddLine(StPt, EndPt)
StPt(0) = 20
StPt(1) = 0
StPt(2) = 0
EndPt(0) = 0
EndPt(1) = 0
EndPt(2) = 0
Set RoomObjects(3) = ThisDrawing.ModelSpace.AddLine(StPt, EndPt)
' Erstellen einer Region aus den linien
Dim regions As Variant, region As AcadRegion
regions = ThisDrawing.ModelSpace.AddRegion(RoomObjects)
Set region = regions(0)
CreateRegion1 = region.Handle
End Function
Function CreateRegion2() As String
Dim RoomObjects(0 To 3) As AcadLine
Dim StPt(2) As Double
Dim EndPt(2) As Double
StPt(0) = -10
StPt(1) = 0
StPt(2) = 0
EndPt(0) = -10
EndPt(1) = -10
EndPt(2) = 0
Set RoomObjects(0) = ThisDrawing.ModelSpace.AddLine(StPt, EndPt)
StPt(0) = -10
StPt(1) = -10
StPt(2) = 0
EndPt(0) = 30
EndPt(1) = -10
EndPt(2) = 0
Set RoomObjects(1) = ThisDrawing.ModelSpace.AddLine(StPt, EndPt)
StPt(0) = 30
StPt(1) = -10
StPt(2) = 0
EndPt(0) = 30
EndPt(1) = 0
EndPt(2) = 0
Set RoomObjects(2) = ThisDrawing.ModelSpace.AddLine(StPt, EndPt)
StPt(0) = 30
StPt(1) = 0
StPt(2) = 0
EndPt(0) = -10
EndPt(1) = 0
EndPt(2) = 0
Set RoomObjects(3) = ThisDrawing.ModelSpace.AddLine(StPt, EndPt)
' Erstellen einer Region aus den linien
Dim regions As Variant, region As AcadRegion
regions = ThisDrawing.ModelSpace.AddRegion(RoomObjects)
Set region = regions(0)
CreateRegion2 = region.Handle
End Function
Public Sub test()
Dim Handles(0 To 1) As String
Handles(0) = CreateRegion1()
Handles(1) = CreateRegion2()
ThisDrawing.SendCommand "(command " & Chr(34) & "_union" & Chr(34) _
& "(handent " & Chr(34) & Handles(0) & Chr(34) & ")" _
& "(handent " & Chr(34) & Handles(1) & Chr(34) & ")" _
& Chr(34) & Chr(34) & ")" & vbCr
End Sub