Sub Example_CopyObjects()
' This example creates a Circle object and uses the CopyObjects
' method to make a copy of the new Circle.
Dim DOCOrg As AcadDocument
Dim DOC1 As AcadDocument
Dim circleObj1 As AcadCircle, circleObj2 As AcadCircle
Dim circleObj1Copy As AcadCircle, circleObj2Copy As AcadCircle
Dim centerPoint(0 To 2) As Double
Dim radius1 As Double, radius2 As Double
Dim radius1Copy As Double, radius2Copy As Double
Dim objCollection(0 To 1) As Object
Dim retObjects As Variant
' Define the Circle object
centerPoint(0) = 0: centerPoint(1) = 0: centerPoint(2) = 0
radius1 = 5#: radius2 = 7#
radius1Copy = 1#: radius2Copy = 2#
' Store current drawing
Set DOCOrg = ThisDrawing.Application.ActiveDocument
' Create a new drawing
Set DOC1 = Documents.Add
' Add two circles to the drawing
Set circleObj1 = DOC1.ModelSpace.AddCircle(centerPoint, radius1)
Set circleObj2 = DOC1.ModelSpace.AddCircle(centerPoint, radius2)
ThisDrawing.Application.ZoomAll
' Copy objects
'
' First put the objects to be copied into a form compatible with CopyObjects
Set objCollection(0) = circleObj1
Set objCollection(1) = circleObj2
' Copy object and get back a collection of the new objects (copies)
ThisDrawing.Application.ActiveDocument = DOCOrg
retObjects = DOC1.CopyObjects(objCollection, DOCOrg.ModelSpace)
' Get newly created object and apply new properties to the copies
Set circleObj1Copy = retObjects(0)
Set circleObj2Copy = retObjects(1)
circleObj1Copy.Radius = radius1Copy
circleObj2Copy.Radius = radius2Copy
ThisDrawing.Application.ZoomAll
MsgBox "Circles copied."
End Sub
добавлено через 2 минуты
VBA, VB6, VB.Net, C#
И COM