Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Runtime
Public Class CopyOBJECTS
<CommandMethod("GALMODELOBJ", CommandFlags.Session)>
Public Sub GALMODELOBJ()
Dim acApp As AcadApplication
Dim acDoc As AcadDocument
acApp = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication
acDoc = acApp.ActiveDocument
'Создание выборки объектов
Dim selSet As Autodesk.AutoCAD.Interop.AcadSelectionSet
selSet = acDoc.SelectionSets.Add("MySS")
Dim ptLL(2) As Double, ptUR(2) As Double
ptLL(0) = -9999.0# : ptLL(1) = -9999.0#
ptUR(0) = 9999.0# : ptUR(1) = 9999.0#
'Добавление объектов в выборку (выделение объектов рамкой, заданной координатами)
Call selSet.Select(Common.AcSelect.acSelectionSetWindow, ptLL, ptUR)
MsgBox("Entities selected using Window selection : " & selSet.Count)
' Создаем массив объектов из выборки
Dim obj() As Autodesk.AutoCAD.Interop.Common.AcadEntity
ReDim obj(selSet.Count - 1)
For i = 0 To selSet.Count - 1
obj(i) = selSet.Item(i)
Next
' Каждому листу присваиваем массив объектов из выборки
Dim Layout As Autodesk.AutoCAD.Interop.Common.AcadLayout
For Each Layout In acDoc.Layouts
Call acDoc.CopyObjects(obj, Layout.Block)
Next
' Очищаем выборку
selSet.Delete()
End Sub
End Class