Sub Erase_Example()
' This example creates some entities and adds them to a
' selection set, and then erases the objects from the selection set
' using the .Erase method
Dim pt1(0 To 2) As Double
Dim pt2(0 To 2) As Double
' Create a Ray object in model space
pt1(0) = 3: pt1(1) = 3: pt1(2) = 0
pt2(0) = 1: pt2(1) = 3: pt2(2) = 0
Dim rayObj As AcadRay
Set rayObj = ThisDrawing.ModelSpace.AddRay(pt1, pt2)
' Create a polyline object in model space
Dim points(0 To 5) As Double
points(0) = 3: points(1) = 7
points(2) = 9: points(3) = 2
points(4) = 3: points(5) = 5
Dim plineObj As AcadLWPolyline
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
plineObj.Closed = True
' Create a line object in model space
pt1(0) = 0: pt1(1) = 0: pt1(2) = 0
pt2(0) = 2: pt2(1) = 2: pt2(2) = 0
Dim lineObj As AcadLine
Set lineObj = ThisDrawing.ModelSpace.AddLine(pt1, pt2)
' Create a circle object in model space
pt1(0) = 20: pt1(1) = 30: pt1(2) = 0
Dim radius As Double: radius = 3
Dim circObj As AcadCircle
Set circObj = ThisDrawing.ModelSpace.AddCircle(pt1, radius)
' Create an ellipse object in model space
Dim majAxis(0 To 2) As Double
Dim center(0 To 2) As Double
Dim radRatio As Double
center(0) = 5#: center(1) = 5#: center(2) = 0#
majAxis(0) = 10: majAxis(1) = 20#: majAxis(2) = 0#
radRatio = 0.3
Dim ellObj As AcadEllipse
Set ellObj = ThisDrawing.ModelSpace.AddEllipse(center, majAxis, radRatio)
ZoomAll
' Create the new selection set
Dim oSS As AcadSelectionSet
Set oSS = ThisDrawing.ActiveSelectionSet 'reference the built-in or default (unnamed) selection set
oSS.Clear 'clear the SS content since it could contain entities from previous selection
' Collect all the entities in the drawing into an array
ReDim arrayOfObjects(0 To ThisDrawing.ModelSpace.Count - 1) As AcadEntity
Dim i As Integer
For i = 0 To ThisDrawing.ModelSpace.Count - 1
Set arrayOfObjects(i) = ThisDrawing.ModelSpace.Item(i)
Next
oSS.AddItems arrayOfObjects 'Add the array of objects to the selection set
MsgBox getContent(oSS) 'Display info on the selection set content
oSS.Erase 'Erase the objects in the selection set
MsgBox getContent(oSS) 'Display info on the selection set content
Set oSS = Nothing
ThisDrawing.Application.ZoomExtents
End Sub
Private Function getContent(inSelectionSet As AcadSelectionSet) As String
Dim sBuf As String: sBuf = vbNullString
Dim i As Integer
If inSelectionSet.Count = 0 Then
sBuf = "The selection set is empty"
Else
sBuf = "The selection set contains:"
For i = 0 To inSelectionSet.Count - 1
sBuf = sBuf & vbCrLf & inSelectionSet.Item(i).ObjectName
Next
End If
getContent = sBuf
End Function
Bricscad™ is commercialized by Bricsys NV. Bricsys NV and Vondle NV are fully owned subsidiaries of Menhirs NV. © 2001- Menhirs NV - All rights reserved. |