<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Which transform (copy) method is faster? in VBA Forum</title>
    <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029977#M24149</link>
    <description>Me again... I noticed in your MoveLine function that you do not use the .update.   Is it neccessary and if not, does it add additional time to the process?</description>
    <pubDate>Fri, 27 Jul 2007 13:41:50 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2007-07-27T13:41:50Z</dc:date>
    <item>
      <title>Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029974#M24146</link>
      <description>I have written a VB app that needs to retrieve specific entities (sometimes over 200 at a time) and transform (copy) them to a new location via code.&lt;BR /&gt;
&lt;BR /&gt;
So my question is... Is it faster to simply cycle thru the entities transforming them one by one OR...&lt;BR /&gt;
&lt;BR /&gt;
put them in a selection set and then execute the Copy command via sendcommand.&lt;BR /&gt;
&lt;BR /&gt;
I would have tried this myself but I don't understand how to use the selection set I added the entities to as part of the SENDCOMMAND verbage or if there is a way to 'select' them via code before using the Sendcommand "Copy"&lt;BR /&gt;
&lt;BR /&gt;
Any and all input on this issue will be greatly appreciated... I don't know how many more times I can bang my head against the wall without it or the wall being damaged.  &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;</description>
      <pubDate>Fri, 27 Jul 2007 02:00:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029974#M24146</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-27T02:00:31Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029975#M24147</link>
      <description>Hi,&lt;BR /&gt;
&lt;BR /&gt;
This may give some ideas.  It follows the general principle of wherever &lt;BR /&gt;
possible avoiding sendcommand entirely.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Sub ssTest()&lt;BR /&gt;
Dim oObj As AcadObject&lt;BR /&gt;
Dim lTmp As Long&lt;BR /&gt;
Dim ssObjects As AcadSelectionSet&lt;BR /&gt;
Dim oLine As AcadLine&lt;BR /&gt;
Dim oMText As AcadMText&lt;BR /&gt;
Dim Distance As Double, Direction As Double&lt;BR /&gt;
    Distance = 10&lt;BR /&gt;
    Direction = 0&lt;BR /&gt;
    If SelectObjectsOnLayer(ssObjects, "LINE,MTEXT", "*") &amp;gt; 0 Then&lt;BR /&gt;
      For Each oObj In ssObjects&lt;BR /&gt;
        If TypeOf oObj Is AcadLine Then&lt;BR /&gt;
          Set oLine = oObj&lt;BR /&gt;
          Set oLine = oLine.Copy&lt;BR /&gt;
          MoveLine oLine, Distance, Direction&lt;BR /&gt;
        ElseIf TypeOf oObj Is AcadMText Then&lt;BR /&gt;
          Set oMText = oObj&lt;BR /&gt;
          Set oMText = oMText.Copy&lt;BR /&gt;
          'Function to move new Mtext as required&lt;BR /&gt;
        End If&lt;BR /&gt;
      Next&lt;BR /&gt;
    End If&lt;BR /&gt;
&lt;BR /&gt;
End Sub  ' ssTest()&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Function MoveLine(oLine As AcadLine, Distance As Double, Direction As &lt;BR /&gt;
Double)&lt;BR /&gt;
&lt;BR /&gt;
  oLine.StartPoint = ThisDrawing.Utility.PolarPoint(oLine.StartPoint, &lt;BR /&gt;
Direction, Distance)&lt;BR /&gt;
  oLine.EndPoint = ThisDrawing.Utility.PolarPoint(oLine.EndPoint, Direction, &lt;BR /&gt;
Distance)&lt;BR /&gt;
&lt;BR /&gt;
End Function&lt;BR /&gt;
&lt;BR /&gt;
''''''''''''''''''''''''''''' '''''''''''''''''''&lt;BR /&gt;
Public Function SelectObjectsOnLayer(ssObs As AcadSelectionSet, spObjectType &lt;BR /&gt;
As String, spLayer As String) As Long&lt;BR /&gt;
On Error GoTo SOLErrorHandler&lt;BR /&gt;
Dim FilterType(0 To 1)    As Integer&lt;BR /&gt;
Dim FilterData(0 To 1)    As Variant&lt;BR /&gt;
Dim sNumber As String&lt;BR /&gt;
  FilterType(0) = 0: FilterData(0) = spObjectType&lt;BR /&gt;
  FilterType(1) = 8: FilterData(1) = spLayer&lt;BR /&gt;
' The line below will create an error if the SSET doesn't exist&lt;BR /&gt;
' or delete it if it does exist.&lt;BR /&gt;
' The ON Error will allow the program to continue and create the set&lt;BR /&gt;
  On Error Resume Next&lt;BR /&gt;
  ThisDrawing.SelectionSets.Item("SSET").Delete&lt;BR /&gt;
  If Err Then Err.Clear&lt;BR /&gt;
  On Error GoTo SOLErrorHandler&lt;BR /&gt;
  Set ssObs = ThisDrawing.SelectionSets.Add("SSET")&lt;BR /&gt;
  ssObs.Select acSelectionSetAll, , , FilterType, FilterData&lt;BR /&gt;
  SelectObjectsOnLayer = ssObs.Count&lt;BR /&gt;
  Exit Function&lt;BR /&gt;
&lt;BR /&gt;
SOLErrorHandler:&lt;BR /&gt;
  Err.Clear&lt;BR /&gt;
  SelectObjectsOnLayer = 0&lt;BR /&gt;
End Function  ' SelectObjectsOnLayer()&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671345@discussion.autodesk.com...&lt;BR /&gt;
I have written a VB app that needs to retrieve specific entities (sometimes &lt;BR /&gt;
over 200 at a time) and transform (copy) them to a new location via code.&lt;BR /&gt;
&lt;BR /&gt;
So my question is... Is it faster to simply cycle thru the entities &lt;BR /&gt;
transforming them one by one OR...&lt;BR /&gt;
&lt;BR /&gt;
put them in a selection set and then execute the Copy command via &lt;BR /&gt;
sendcommand.&lt;BR /&gt;
&lt;BR /&gt;
I would have tried this myself but I don't understand how to use the &lt;BR /&gt;
selection set I added the entities to as part of the SENDCOMMAND verbage or &lt;BR /&gt;
if there is a way to 'select' them via code before using the Sendcommand &lt;BR /&gt;
"Copy"&lt;BR /&gt;
&lt;BR /&gt;
Any and all input on this issue will be greatly appreciated... I don't know &lt;BR /&gt;
how many more times I can bang my head against the wall without it or the &lt;BR /&gt;
wall being damaged.  &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/GMYROUP&gt;</description>
      <pubDate>Fri, 27 Jul 2007 05:44:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029975#M24147</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-27T05:44:35Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029976#M24148</link>
      <description>Thanks Laurie... I will heed your word of advice. &lt;BR /&gt;
&lt;BR /&gt;
On another subject seeing I have your attention... I have written a rather large vb exe that runs independently of ACAD while ACAD is open.  It adds, removes, and modifies ACAD entities to the open ACAD dwg. From what I am reading on other post... converting the VB app to a activex dll will drastically improve the speed it takes to add and modifies entities in the ACAD session.  If so, is there a good post that could help me make this conversion?  And leaning on your experience... are there pitfalls that I should be aware of.. you know, things or methods to avoid?&lt;BR /&gt;
&lt;BR /&gt;
Thanks again</description>
      <pubDate>Fri, 27 Jul 2007 13:38:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029976#M24148</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-27T13:38:50Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029977#M24149</link>
      <description>Me again... I noticed in your MoveLine function that you do not use the .update.   Is it neccessary and if not, does it add additional time to the process?</description>
      <pubDate>Fri, 27 Jul 2007 13:41:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029977#M24149</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-27T13:41:50Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029978#M24150</link>
      <description>If you do your work from stand-alone exe app (automating AutoCAD), then it &lt;BR /&gt;
does not make difference where you move your Acad related operation into a &lt;BR /&gt;
dll or not, because the dll code is still running in the process of your &lt;BR /&gt;
app, not Acad, you still have to communicate between two processes - Acad &lt;BR /&gt;
and your app, that is where the slowness occurs.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671648@discussion.autodesk.com...&lt;BR /&gt;
Thanks Laurie... I will heed your word of advice.&lt;BR /&gt;
&lt;BR /&gt;
On another subject seeing I have your attention... I have written a rather &lt;BR /&gt;
large vb exe that runs independently of ACAD while ACAD is open.  It adds, &lt;BR /&gt;
removes, and modifies ACAD entities to the open ACAD dwg. From what I am &lt;BR /&gt;
reading on other post... converting the VB app to a activex dll will &lt;BR /&gt;
drastically improve the speed it takes to add and modifies entities in the &lt;BR /&gt;
ACAD session.  If so, is there a good post that could help me make this &lt;BR /&gt;
conversion?  And leaning on your experience... are there pitfalls that I &lt;BR /&gt;
should be aware of.. you know, things or methods to avoid?&lt;BR /&gt;
&lt;BR /&gt;
Thanks again&lt;/GMYROUP&gt;</description>
      <pubDate>Fri, 27 Jul 2007 14:55:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029978#M24150</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-27T14:55:18Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029979#M24151</link>
      <description>Thanks for your help Norman!&lt;BR /&gt;
&lt;BR /&gt;
So you are saying... if I convert my app to a dll that will be started in ACAD that there will not be a performance improvement.  I was under the impression that if you make a call to a dll from within the ACAD vba environment that is runs in ACAD's process and therefore is much faster.&lt;BR /&gt;
&lt;BR /&gt;
A little background on my app... it must be started while ACAD is running... preferably from ACAD though right now it can be started like any other exe.  The app runs until the user exits ACAD.  If I create an activex dll... it would work the same way... running, once started,  until ACAD closes.</description>
      <pubDate>Fri, 27 Jul 2007 19:53:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029979#M24151</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-27T19:53:27Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029980#M24152</link>
      <description>Hi,&lt;BR /&gt;
&lt;BR /&gt;
When creating this bit of code Update didn't occur to me as necessary to &lt;BR /&gt;
illustrate the copy method.&lt;BR /&gt;
&lt;BR /&gt;
In the same way, there is no error checking (except as needed in the &lt;BR /&gt;
SelectObjectsOnLayer)&lt;BR /&gt;
&lt;BR /&gt;
As far as I'm aware Update works on the graphic screen display of the &lt;BR /&gt;
object.  The object itself is added to the database by the API without it.&lt;BR /&gt;
&lt;BR /&gt;
If you are drawing a small number of objects and are interested in seeing &lt;BR /&gt;
them - perhaps while you are debugging the code then use Update.  However &lt;BR /&gt;
long it takes would be trivial.&lt;BR /&gt;
&lt;BR /&gt;
If you are drawing a large and potentially unknown number of objects, you &lt;BR /&gt;
may not wish to update the screen during the process to save time.  It would &lt;BR /&gt;
certainly seem to be a waste of time to start an update on an object which &lt;BR /&gt;
was drawn outside the current view.&lt;BR /&gt;
&lt;BR /&gt;
You can run a regen at the end of a function if it suits, or any of the zoom &lt;BR /&gt;
commands which update the screen&lt;BR /&gt;
&lt;BR /&gt;
If timing is critical then the best way to check it is to write some code to &lt;BR /&gt;
create large numbers of something and wrap it in a timer so that you can &lt;BR /&gt;
work with real numbers on the time effects of different code.&lt;BR /&gt;
&lt;BR /&gt;
Most of the code I write does very little drafting, so I could safely use &lt;BR /&gt;
Update without human observable effects.&lt;BR /&gt;
&lt;BR /&gt;
About the VB query:&lt;BR /&gt;
&lt;BR /&gt;
If speed is a real issue, why not port the AutoCAD interaction side of the &lt;BR /&gt;
code to VBA?&lt;BR /&gt;
&lt;BR /&gt;
The non-AutoCAD bits can easily be poked into a DLL called from the VBA &lt;BR /&gt;
environment and the EXE file abandoned.&lt;BR /&gt;
&lt;BR /&gt;
-- &lt;BR /&gt;
&lt;BR /&gt;
Laurie Comerford&lt;BR /&gt;
CADApps&lt;BR /&gt;
www.cadapps.com.au&lt;BR /&gt;
www.civil3Dtools.com&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671650@discussion.autodesk.com...&lt;BR /&gt;
Me again... I noticed in your MoveLine function that you do not use the &lt;BR /&gt;
.update.   Is it neccessary and if not, does it add additional time to the &lt;BR /&gt;
process?&lt;/GMYROUP&gt;</description>
      <pubDate>Fri, 27 Jul 2007 19:54:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029980#M24152</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-27T19:54:41Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029981#M24153</link>
      <description>Laurie - Consider learning to use the API properly, &lt;BR /&gt;
before you attempt to show/teach others how to use it.&lt;BR /&gt;
&lt;BR /&gt;
I'm not going to say any more than that, other than&lt;BR /&gt;
what you just posted is horrendus and not even worth&lt;BR /&gt;
of being classified as 'entry level'.&lt;BR /&gt;
&lt;BR /&gt;
-- &lt;BR /&gt;
http://www.caddzone.com&lt;BR /&gt;
&lt;BR /&gt;
AcadXTabs: MDI Document Tabs for AutoCAD 2008&lt;BR /&gt;
Supporting AutoCAD 2000 through 2008&lt;BR /&gt;
http://www.acadxtabs.com&lt;BR /&gt;
&lt;BR /&gt;
"Laurie Comerford" &lt;LAURIE.COMERFORD&gt; wrote in message news:5671420@discussion.autodesk.com...&lt;BR /&gt;
Hi,&lt;BR /&gt;
&lt;BR /&gt;
This may give some ideas.  It follows the general principle of wherever &lt;BR /&gt;
possible avoiding sendcommand entirely.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Sub ssTest()&lt;BR /&gt;
Dim oObj As AcadObject&lt;BR /&gt;
Dim lTmp As Long&lt;BR /&gt;
Dim ssObjects As AcadSelectionSet&lt;BR /&gt;
Dim oLine As AcadLine&lt;BR /&gt;
Dim oMText As AcadMText&lt;BR /&gt;
Dim Distance As Double, Direction As Double&lt;BR /&gt;
    Distance = 10&lt;BR /&gt;
    Direction = 0&lt;BR /&gt;
    If SelectObjectsOnLayer(ssObjects, "LINE,MTEXT", "*") &amp;gt; 0 Then&lt;BR /&gt;
      For Each oObj In ssObjects&lt;BR /&gt;
        If TypeOf oObj Is AcadLine Then&lt;BR /&gt;
          Set oLine = oObj&lt;BR /&gt;
          Set oLine = oLine.Copy&lt;BR /&gt;
          MoveLine oLine, Distance, Direction&lt;BR /&gt;
        ElseIf TypeOf oObj Is AcadMText Then&lt;BR /&gt;
          Set oMText = oObj&lt;BR /&gt;
          Set oMText = oMText.Copy&lt;BR /&gt;
          'Function to move new Mtext as required&lt;BR /&gt;
        End If&lt;BR /&gt;
      Next&lt;BR /&gt;
    End If&lt;BR /&gt;
&lt;BR /&gt;
End Sub  ' ssTest()&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Function MoveLine(oLine As AcadLine, Distance As Double, Direction As &lt;BR /&gt;
Double)&lt;BR /&gt;
&lt;BR /&gt;
  oLine.StartPoint = ThisDrawing.Utility.PolarPoint(oLine.StartPoint, &lt;BR /&gt;
Direction, Distance)&lt;BR /&gt;
  oLine.EndPoint = ThisDrawing.Utility.PolarPoint(oLine.EndPoint, Direction, &lt;BR /&gt;
Distance)&lt;BR /&gt;
&lt;BR /&gt;
End Function&lt;BR /&gt;
&lt;BR /&gt;
''''''''''''''''''''''''''''' '''''''''''''''''''&lt;BR /&gt;
Public Function SelectObjectsOnLayer(ssObs As AcadSelectionSet, spObjectType &lt;BR /&gt;
As String, spLayer As String) As Long&lt;BR /&gt;
On Error GoTo SOLErrorHandler&lt;BR /&gt;
Dim FilterType(0 To 1)    As Integer&lt;BR /&gt;
Dim FilterData(0 To 1)    As Variant&lt;BR /&gt;
Dim sNumber As String&lt;BR /&gt;
  FilterType(0) = 0: FilterData(0) = spObjectType&lt;BR /&gt;
  FilterType(1) = 8: FilterData(1) = spLayer&lt;BR /&gt;
' The line below will create an error if the SSET doesn't exist&lt;BR /&gt;
' or delete it if it does exist.&lt;BR /&gt;
' The ON Error will allow the program to continue and create the set&lt;BR /&gt;
  On Error Resume Next&lt;BR /&gt;
  ThisDrawing.SelectionSets.Item("SSET").Delete&lt;BR /&gt;
  If Err Then Err.Clear&lt;BR /&gt;
  On Error GoTo SOLErrorHandler&lt;BR /&gt;
  Set ssObs = ThisDrawing.SelectionSets.Add("SSET")&lt;BR /&gt;
  ssObs.Select acSelectionSetAll, , , FilterType, FilterData&lt;BR /&gt;
  SelectObjectsOnLayer = ssObs.Count&lt;BR /&gt;
  Exit Function&lt;BR /&gt;
&lt;BR /&gt;
SOLErrorHandler:&lt;BR /&gt;
  Err.Clear&lt;BR /&gt;
  SelectObjectsOnLayer = 0&lt;BR /&gt;
End Function  ' SelectObjectsOnLayer()&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671345@discussion.autodesk.com...&lt;BR /&gt;
I have written a VB app that needs to retrieve specific entities (sometimes &lt;BR /&gt;
over 200 at a time) and transform (copy) them to a new location via code.&lt;BR /&gt;
&lt;BR /&gt;
So my question is... Is it faster to simply cycle thru the entities &lt;BR /&gt;
transforming them one by one OR...&lt;BR /&gt;
&lt;BR /&gt;
put them in a selection set and then execute the Copy command via &lt;BR /&gt;
sendcommand.&lt;BR /&gt;
&lt;BR /&gt;
I would have tried this myself but I don't understand how to use the &lt;BR /&gt;
selection set I added the entities to as part of the SENDCOMMAND verbage or &lt;BR /&gt;
if there is a way to 'select' them via code before using the Sendcommand &lt;BR /&gt;
"Copy"&lt;BR /&gt;
&lt;BR /&gt;
Any and all input on this issue will be greatly appreciated... I don't know &lt;BR /&gt;
how many more times I can bang my head against the wall without it or the &lt;BR /&gt;
wall being damaged.  &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/GMYROUP&gt;&lt;/LAURIE.COMERFORD&gt;</description>
      <pubDate>Fri, 27 Jul 2007 20:04:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029981#M24153</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-27T20:04:02Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029982#M24154</link>
      <description>The code Laurie posted is a good example of&lt;BR /&gt;
bad programming and how not to write code.&lt;BR /&gt;
&lt;BR /&gt;
First, he doesn't seem to know about the Move()&lt;BR /&gt;
method of AcadEntity, so he writes his own that&lt;BR /&gt;
is entity-specific and hence, requires a different&lt;BR /&gt;
implementation for each entity type.&lt;BR /&gt;
&lt;BR /&gt;
Second, if your code is not running in AutoCAD &lt;BR /&gt;
as a DLL (or as VBA code), then the issue of &lt;BR /&gt;
what method of moving objects is faster, is a&lt;BR /&gt;
moot point.&lt;BR /&gt;
&lt;BR /&gt;
If your DLL is running in AutoCAD, the way to do &lt;BR /&gt;
it if you don't want to use SendCommand, is to &lt;BR /&gt;
simply loop through your selection set, and call &lt;BR /&gt;
each entity's Move() method.&lt;BR /&gt;
&lt;BR /&gt;
There no need to write dedicated functions to &lt;BR /&gt;
move each type of entity, like the "MoveLine" &lt;BR /&gt;
function laurie posted. That's because every&lt;BR /&gt;
entity in an AutoCAD drawing already knows how&lt;BR /&gt;
to move itself, and all you need to do is tell it&lt;BR /&gt;
to, by calling the Move() method.&lt;BR /&gt;
&lt;BR /&gt;
-- &lt;BR /&gt;
http://www.caddzone.com&lt;BR /&gt;
&lt;BR /&gt;
AcadXTabs: MDI Document Tabs for AutoCAD 2008&lt;BR /&gt;
Supporting AutoCAD 2000 through 2008&lt;BR /&gt;
http://www.acadxtabs.com&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671650@discussion.autodesk.com...&lt;BR /&gt;
Me again... I noticed in your MoveLine function that you do not use the .update.   Is it neccessary and if not, does it add additional time to the process?&lt;/GMYROUP&gt;</description>
      <pubDate>Fri, 27 Jul 2007 20:04:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029982#M24154</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-27T20:04:03Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029983#M24155</link>
      <description>What I was saying, if the dll is loaded into your exe app, then it would not &lt;BR /&gt;
help in the regard of speed. If it is called in Acad VBA, the it should be &lt;BR /&gt;
the same as VBA code. Since I have no idea how your app and Acad work &lt;BR /&gt;
together and what they do, I cannot tell more.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
"gmyroup" wrote in message news:5672282@discussion.autodesk.com...&lt;BR /&gt;
Thanks for your help Norman!&lt;BR /&gt;
&lt;BR /&gt;
So you are saying... if I convert my app to a dll that will be started in &lt;BR /&gt;
ACAD that there will not be a performance improvement.  I was under the &lt;BR /&gt;
impression that if you make a call to a dll from within the ACAD vba &lt;BR /&gt;
environment that is runs in ACAD's process and therefore is much faster.&lt;BR /&gt;
&lt;BR /&gt;
A little background on my app... it must be started while ACAD is running... &lt;BR /&gt;
preferably from ACAD though right now it can be started like any other exe. &lt;BR /&gt;
The app runs until the user exits ACAD.  If I create an activex dll... it &lt;BR /&gt;
would work the same way... running, once started,  until ACAD closes.</description>
      <pubDate>Fri, 27 Jul 2007 20:21:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029983#M24155</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-27T20:21:41Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029984#M24156</link>
      <description>Hi Tony,&lt;BR /&gt;
&lt;BR /&gt;
Hallelujah. Hallelujah. Hallelujah&lt;BR /&gt;
HHHaaaaallllllllleeeeellllllllluuuuuujjjjjjjaaaahhhhhhhh&lt;BR /&gt;
&lt;BR /&gt;
What happened?  You slipped up in your torrent of abuse and took the risk of &lt;BR /&gt;
providing a testable hint as to how my code could be improved.&lt;BR /&gt;
&lt;BR /&gt;
Yes, I was unaware of the AcadEntity.Move functionality.&lt;BR /&gt;
&lt;BR /&gt;
Thank you, thank you, thank you.&lt;BR /&gt;
&lt;BR /&gt;
I changed the original code a little to use AcadEntity.Move in the loop &lt;BR /&gt;
rather than an AcadObject which doesn't have a move method and hence, as you &lt;BR /&gt;
implied, for that code my MoveLine function and other entity specific code &lt;BR /&gt;
is no longer needed.&lt;BR /&gt;
&lt;BR /&gt;
I also amended the original post with the line of code as below to move the &lt;BR /&gt;
Mtext&lt;BR /&gt;
&lt;BR /&gt;
oMtext.InsertionPoint = &lt;BR /&gt;
ThisDrawing.Utility.PolarPoint(oMtext.InsertionPoint, Direction, Distance)&lt;BR /&gt;
&lt;BR /&gt;
Here is the results of some timing tests I did for a drawing with one line &lt;BR /&gt;
and one item of Mtext. I ran each set of code three times.&lt;BR /&gt;
&lt;BR /&gt;
1000 Lines and Mtext Items with entity.move       2.96875 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with entity.move       2.859375 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with entity.move       2.984375 seconds&lt;BR /&gt;
&lt;BR /&gt;
1000 Lines and Mtext Items with Original code            1.609375 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with Original code            1.65625 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with Original code            1.609375 seconds&lt;BR /&gt;
&lt;BR /&gt;
So now we  have&lt;BR /&gt;
"The code Laurie posted is a good example of bad programming and how not to &lt;BR /&gt;
write code."&lt;BR /&gt;
&lt;BR /&gt;
It seems strange then that it:&lt;BR /&gt;
&lt;BR /&gt;
A      Performs the required task&lt;BR /&gt;
B     Only takes about 55% of the time of the Entity.Move command process &lt;BR /&gt;
takes to complete the test data.&lt;BR /&gt;
&lt;BR /&gt;
As always, I ask you to back up your insults with real data to try and &lt;BR /&gt;
justify them.  And, as always, I know you'll wimp out on some pathetic &lt;BR /&gt;
grounds.&lt;BR /&gt;
&lt;BR /&gt;
Sub sTest()&lt;BR /&gt;
Dim oEnt As AcadEntity&lt;BR /&gt;
Dim PtStart(0 To 2) As Double&lt;BR /&gt;
Dim vPt As Variant&lt;BR /&gt;
Dim ssObjects As AcadSelectionSet&lt;BR /&gt;
Dim Distance As Double, Direction As Double&lt;BR /&gt;
    Distance = 10&lt;BR /&gt;
    Direction = 0&lt;BR /&gt;
    vPt = ThisDrawing.Utility.PolarPoint(PtStart, Direction, Distance)&lt;BR /&gt;
    If SelectObjectsOnLayer(ssObjects, "LINE,MTEXT", "*") &amp;gt; 0 Then&lt;BR /&gt;
      For Each oEnt In ssObjects&lt;BR /&gt;
          Set oEnt = oEnt.Copy&lt;BR /&gt;
          oEnt.Move PtStart, vPt&lt;BR /&gt;
      Next&lt;BR /&gt;
    End If&lt;BR /&gt;
&lt;BR /&gt;
End Sub  ' ssTest()&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
-- &lt;BR /&gt;
&lt;BR /&gt;
Laurie Comerford&lt;BR /&gt;
CADApps&lt;BR /&gt;
www.cadapps.com.au&lt;BR /&gt;
www.civil3Dtools.com&lt;BR /&gt;
"Tony Tanzillo" &lt;TONY.TANZILLO&gt; wrote in message &lt;BR /&gt;
news:5672307@discussion.autodesk.com...&lt;BR /&gt;
The code Laurie posted is a good example of&lt;BR /&gt;
bad programming and how not to write code.&lt;BR /&gt;
&lt;BR /&gt;
First, he doesn't seem to know about the Move()&lt;BR /&gt;
method of AcadEntity, so he writes his own that&lt;BR /&gt;
is entity-specific and hence, requires a different&lt;BR /&gt;
implementation for each entity type.&lt;BR /&gt;
&lt;BR /&gt;
Second, if your code is not running in AutoCAD&lt;BR /&gt;
as a DLL (or as VBA code), then the issue of&lt;BR /&gt;
what method of moving objects is faster, is a&lt;BR /&gt;
moot point.&lt;BR /&gt;
&lt;BR /&gt;
If your DLL is running in AutoCAD, the way to do&lt;BR /&gt;
it if you don't want to use SendCommand, is to&lt;BR /&gt;
simply loop through your selection set, and call&lt;BR /&gt;
each entity's Move() method.&lt;BR /&gt;
&lt;BR /&gt;
There no need to write dedicated functions to&lt;BR /&gt;
move each type of entity, like the "MoveLine"&lt;BR /&gt;
function laurie posted. That's because every&lt;BR /&gt;
entity in an AutoCAD drawing already knows how&lt;BR /&gt;
to move itself, and all you need to do is tell it&lt;BR /&gt;
to, by calling the Move() method.&lt;BR /&gt;
&lt;BR /&gt;
-- &lt;BR /&gt;
http://www.caddzone.com&lt;BR /&gt;
&lt;BR /&gt;
AcadXTabs: MDI Document Tabs for AutoCAD 2008&lt;BR /&gt;
Supporting AutoCAD 2000 through 2008&lt;BR /&gt;
http://www.acadxtabs.com&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671650@discussion.autodesk.com...&lt;BR /&gt;
Me again... I noticed in your MoveLine function that you do not use the &lt;BR /&gt;
.update.   Is it neccessary and if not, does it add additional time to the &lt;BR /&gt;
process?&lt;/GMYROUP&gt;&lt;/TONY.TANZILLO&gt;</description>
      <pubDate>Sat, 28 Jul 2007 00:15:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029984#M24156</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-28T00:15:31Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029985#M24157</link>
      <description>try TransformBy method. Copied 2000 entities in 0.421875 seconds...&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671345@discussion.autodesk.com...&lt;BR /&gt;
I have written a VB app that needs to retrieve specific entities (sometimes &lt;BR /&gt;
over 200 at a time) and transform (copy) them to a new location via code.&lt;BR /&gt;
&lt;BR /&gt;
So my question is... Is it faster to simply cycle thru the entities &lt;BR /&gt;
transforming them one by one OR...&lt;BR /&gt;
&lt;BR /&gt;
put them in a selection set and then execute the Copy command via &lt;BR /&gt;
sendcommand.&lt;BR /&gt;
&lt;BR /&gt;
I would have tried this myself but I don't understand how to use the &lt;BR /&gt;
selection set I added the entities to as part of the SENDCOMMAND verbage or &lt;BR /&gt;
if there is a way to 'select' them via code before using the Sendcommand &lt;BR /&gt;
"Copy"&lt;BR /&gt;
&lt;BR /&gt;
Any and all input on this issue will be greatly appreciated... I don't know &lt;BR /&gt;
how many more times I can bang my head against the wall without it or the &lt;BR /&gt;
wall being damaged.  &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/GMYROUP&gt;</description>
      <pubDate>Sat, 28 Jul 2007 01:17:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029985#M24157</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-28T01:17:10Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029986#M24158</link>
      <description>&amp;gt;try TransformBy method&lt;BR /&gt;
&lt;BR /&gt;
actually TransformBy is a property... entity.TransformBy&lt;BR /&gt;
&lt;BR /&gt;
"Paul Richardson" &lt;FIRSTINITIALLASTNAME&gt;&lt;LASTPOINT&gt; wrote in message &lt;BR /&gt;
news:5672465@discussion.autodesk.com...&lt;BR /&gt;
try TransformBy method. Copied 2000 entities in 0.421875 seconds...&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671345@discussion.autodesk.com...&lt;BR /&gt;
I have written a VB app that needs to retrieve specific entities (sometimes&lt;BR /&gt;
over 200 at a time) and transform (copy) them to a new location via code.&lt;BR /&gt;
&lt;BR /&gt;
So my question is... Is it faster to simply cycle thru the entities&lt;BR /&gt;
transforming them one by one OR...&lt;BR /&gt;
&lt;BR /&gt;
put them in a selection set and then execute the Copy command via&lt;BR /&gt;
sendcommand.&lt;BR /&gt;
&lt;BR /&gt;
I would have tried this myself but I don't understand how to use the&lt;BR /&gt;
selection set I added the entities to as part of the SENDCOMMAND verbage or&lt;BR /&gt;
if there is a way to 'select' them via code before using the Sendcommand&lt;BR /&gt;
"Copy"&lt;BR /&gt;
&lt;BR /&gt;
Any and all input on this issue will be greatly appreciated... I don't know&lt;BR /&gt;
how many more times I can bang my head against the wall without it or the&lt;BR /&gt;
wall being damaged.  &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/GMYROUP&gt;&lt;/LASTPOINT&gt;&lt;/FIRSTINITIALLASTNAME&gt;</description>
      <pubDate>Sat, 28 Jul 2007 01:23:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029986#M24158</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-28T01:23:32Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029987#M24159</link>
      <description>&amp;gt;actually TransformBy is a property... entity.TransformBy&lt;BR /&gt;
&lt;BR /&gt;
not it's NOT... I was right the first time. WOW! Anyway it's FAST.&lt;BR /&gt;
&lt;BR /&gt;
"Paul Richardson" &lt;FIRSTINITIALLASTNAME&gt;&lt;LASTPOINT&gt; wrote in message &lt;BR /&gt;
news:5672501@discussion.autodesk.com...&lt;BR /&gt;
&amp;gt;try TransformBy method&lt;BR /&gt;
&lt;BR /&gt;
actually TransformBy is a property... entity.TransformBy&lt;BR /&gt;
&lt;BR /&gt;
"Paul Richardson" &lt;FIRSTINITIALLASTNAME&gt;&lt;LASTPOINT&gt; wrote in message&lt;BR /&gt;
news:5672465@discussion.autodesk.com...&lt;BR /&gt;
try TransformBy method. Copied 2000 entities in 0.421875 seconds...&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671345@discussion.autodesk.com...&lt;BR /&gt;
I have written a VB app that needs to retrieve specific entities (sometimes&lt;BR /&gt;
over 200 at a time) and transform (copy) them to a new location via code.&lt;BR /&gt;
&lt;BR /&gt;
So my question is... Is it faster to simply cycle thru the entities&lt;BR /&gt;
transforming them one by one OR...&lt;BR /&gt;
&lt;BR /&gt;
put them in a selection set and then execute the Copy command via&lt;BR /&gt;
sendcommand.&lt;BR /&gt;
&lt;BR /&gt;
I would have tried this myself but I don't understand how to use the&lt;BR /&gt;
selection set I added the entities to as part of the SENDCOMMAND verbage or&lt;BR /&gt;
if there is a way to 'select' them via code before using the Sendcommand&lt;BR /&gt;
"Copy"&lt;BR /&gt;
&lt;BR /&gt;
Any and all input on this issue will be greatly appreciated... I don't know&lt;BR /&gt;
how many more times I can bang my head against the wall without it or the&lt;BR /&gt;
wall being damaged.  &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/GMYROUP&gt;&lt;/LASTPOINT&gt;&lt;/FIRSTINITIALLASTNAME&gt;&lt;/LASTPOINT&gt;&lt;/FIRSTINITIALLASTNAME&gt;</description>
      <pubDate>Sat, 28 Jul 2007 01:25:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029987#M24159</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-28T01:25:18Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029988#M24160</link>
      <description>Hi Paul,&lt;BR /&gt;
&lt;BR /&gt;
Grabbing some sample code from the help system I ended up with:&lt;BR /&gt;
&lt;BR /&gt;
Sub TestTransformBy()&lt;BR /&gt;
Dim oEnt As AcadEntity&lt;BR /&gt;
Dim oEntDup As AcadEntity&lt;BR /&gt;
Dim PtStart(0 To 2) As Double&lt;BR /&gt;
Dim i As Integer&lt;BR /&gt;
Dim vPt As Variant&lt;BR /&gt;
Dim lTmp As Long&lt;BR /&gt;
Dim ssObjects As AcadSelectionSet&lt;BR /&gt;
Dim TimeStart, TimeEnd&lt;BR /&gt;
    Dim transMat(0 To 3, 0 To 3) As Double&lt;BR /&gt;
    transMat(0, 0) = 1#: transMat(0, 1) = 0#: transMat(0, 2) = 0#: &lt;BR /&gt;
transMat(0, 3) = 10#&lt;BR /&gt;
    transMat(1, 0) = 0#: transMat(1, 1) = 1#: transMat(1, 2) = 0#: &lt;BR /&gt;
transMat(1, 3) = 0#&lt;BR /&gt;
    transMat(2, 0) = 0#: transMat(2, 1) = 0#: transMat(2, 2) = 1#: &lt;BR /&gt;
transMat(2, 3) = 0#&lt;BR /&gt;
    transMat(3, 0) = 0#: transMat(3, 1) = 0#: transMat(3, 2) = 0#: &lt;BR /&gt;
transMat(3, 3) = 1#&lt;BR /&gt;
    If SelectObjectsOnLayer(ssObjects, "LINE,MTEXT", "*") &amp;gt; 0 Then&lt;BR /&gt;
      TimeStart = 60 * Val(Format(Time, "MM")) + Val(Format(Time, "SS.SSS"))&lt;BR /&gt;
      For Each oEnt In ssObjects&lt;BR /&gt;
        For i = 1 To 1000&lt;BR /&gt;
        Set oEntDup = oEnt.Copy&lt;BR /&gt;
        oEntDup.TransformBy (transMat)&lt;BR /&gt;
        Next i&lt;BR /&gt;
      Next&lt;BR /&gt;
      TimeEnd = 60 * Val(Format(Time, "MM")) + Val(Format(Time, "SS.SSS"))&lt;BR /&gt;
      Debug.Print "1000 Lines and Mtext Items with TransformBy   ", &lt;BR /&gt;
Format(TimeEnd - TimeStart, "#0.0"); "seconds"&lt;BR /&gt;
    End If&lt;BR /&gt;
End Sub  ' ssTest()&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
For three runs in a drawing containing one line and one MText item this &lt;BR /&gt;
reported.  After each run I simply used the Undo command to remove the new &lt;BR /&gt;
data.&lt;BR /&gt;
&lt;BR /&gt;
1000 Lines and Mtext Items with TransformBy             4.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with TransformBy             4.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with TransformBy             4.0seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
As it seemed significantly slower for the same data set on my computer I ran &lt;BR /&gt;
the other methods again with the following results.&lt;BR /&gt;
&lt;BR /&gt;
1000 Lines and Mtext Items with move      4.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with move      4.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with move      4.0seconds&lt;BR /&gt;
&lt;BR /&gt;
1000 Lines and Mtext Items with Original code           2.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with Original code           2.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with Original code           2.0seconds&lt;BR /&gt;
&lt;BR /&gt;
The only difference between when the first code was run and new is time &lt;BR /&gt;
elapsed with AutoCAD open and that there is another 3Mb drawing open&lt;BR /&gt;
&lt;BR /&gt;
Original Reports&lt;BR /&gt;
1000 Lines and Mtext Items with entity.move       2.96875 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with entity.move       2.859375 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with entity.move       2.984375 seconds&lt;BR /&gt;
&lt;BR /&gt;
1000 Lines and Mtext Items with Original code            1.609375 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with Original code            1.65625 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with Original code            1.609375 seconds&lt;BR /&gt;
&lt;BR /&gt;
I'd be interested to see the results from your computer as there is nearly a &lt;BR /&gt;
ten times difference in the output.&lt;BR /&gt;
Also, my time measurement is more suited to comparisons on one computer than &lt;BR /&gt;
anything else.&lt;BR /&gt;
&lt;BR /&gt;
I'm running this in Civil 3D R2008.  Although for comparisons with my other &lt;BR /&gt;
times, that should be irrelevant.&lt;BR /&gt;
&lt;BR /&gt;
I've never had cause to write code to move objects previously other than for &lt;BR /&gt;
changing the insertion point of my test doughnut to highlight the point I've &lt;BR /&gt;
just computed when I'm doing complex geometry and de-bugging.  In that type &lt;BR /&gt;
of code, setting the insertion to a computed point is the obvious answer.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
-- &lt;BR /&gt;
&lt;BR /&gt;
Laurie Comerford&lt;BR /&gt;
CADApps&lt;BR /&gt;
www.cadapps.com.au&lt;BR /&gt;
www.civil3Dtools.com&lt;BR /&gt;
&lt;BR /&gt;
Sub TestTransformBy()&lt;BR /&gt;
Dim oEnt As AcadEntity&lt;BR /&gt;
&lt;BR /&gt;
Dim PtStart(0 To 2) As Double&lt;BR /&gt;
Dim i As Integer&lt;BR /&gt;
Dim vPt As Variant&lt;BR /&gt;
Dim lTmp As Long&lt;BR /&gt;
Dim ssObjects As AcadSelectionSet&lt;BR /&gt;
Dim TimeStart, TimeEnd&lt;BR /&gt;
Dim transMat(0 To 3, 0 To 3) As Double&lt;BR /&gt;
    transMat(0, 0) = 1#: transMat(0, 1) = 0#: transMat(0, 2) = 0#: &lt;BR /&gt;
transMat(0, 3) = 10#&lt;BR /&gt;
    transMat(1, 0) = 0#: transMat(1, 1) = 1#: transMat(1, 2) = 0#: &lt;BR /&gt;
transMat(1, 3) = 0#&lt;BR /&gt;
    transMat(2, 0) = 0#: transMat(2, 1) = 0#: transMat(2, 2) = 1#: &lt;BR /&gt;
transMat(2, 3) = 0#&lt;BR /&gt;
    transMat(3, 0) = 0#: transMat(3, 1) = 0#: transMat(3, 2) = 0#: &lt;BR /&gt;
transMat(3, 3) = 1#&lt;BR /&gt;
    If SelectObjectsOnLayer(ssObjects, "LINE,MTEXT", "*") &amp;gt; 0 Then&lt;BR /&gt;
      TimeStart = Timer&lt;BR /&gt;
      For Each oEnt In ssObjects&lt;BR /&gt;
        For i = 1 To 1000&lt;BR /&gt;
        Set oEnt = oEnt.Copy&lt;BR /&gt;
        oEnt.TransformBy (transMat)&lt;BR /&gt;
        Next i&lt;BR /&gt;
      Next&lt;BR /&gt;
      TimeEnd = Timer&lt;BR /&gt;
      Debug.Print "1000 Lines and Mtext Items with TransformBy   ", &lt;BR /&gt;
TimeEnd - TimeStart; "seconds"&lt;BR /&gt;
    End If&lt;BR /&gt;
End Sub  ' ssTest()&lt;BR /&gt;
"Paul Richardson" &lt;FIRSTINITIALLASTNAME&gt;&lt;LASTPOINT&gt; wrote in message &lt;BR /&gt;
news:5672502@discussion.autodesk.com...&lt;BR /&gt;
&amp;gt;actually TransformBy is a property... entity.TransformBy&lt;BR /&gt;
&lt;BR /&gt;
not it's NOT... I was right the first time. WOW! Anyway it's FAST.&lt;BR /&gt;
&lt;BR /&gt;
&lt;SNIP&gt;&lt;/SNIP&gt;&lt;/LASTPOINT&gt;&lt;/FIRSTINITIALLASTNAME&gt;</description>
      <pubDate>Sat, 28 Jul 2007 04:05:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029988#M24160</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-28T04:05:56Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029989#M24161</link>
      <description>This is using ADT06. All things being equal is may not be faster&lt;BR /&gt;
but still worth a try for him... This is on a relatively slow laptop&lt;BR /&gt;
too.&lt;BR /&gt;
&lt;BR /&gt;
1000 1 unit lines&lt;BR /&gt;
1000  mtext  = "foo"&lt;BR /&gt;
&lt;BR /&gt;
MS Count 2000&lt;BR /&gt;
-0.3901367&lt;BR /&gt;
MS Count 4000&lt;BR /&gt;
&lt;BR /&gt;
MS Count 2000&lt;BR /&gt;
-0.4060059&lt;BR /&gt;
MS Count 4000&lt;BR /&gt;
&lt;BR /&gt;
MS Count 2000&lt;BR /&gt;
-0.4069824&lt;BR /&gt;
MS Count 4000&lt;BR /&gt;
&lt;BR /&gt;
[code]&lt;BR /&gt;
Sub foo()&lt;BR /&gt;
&lt;BR /&gt;
    Dim startTime, endTime&lt;BR /&gt;
&lt;BR /&gt;
    Dim tm(3, 3) As Double&lt;BR /&gt;
    tm(0, 0) = 1: tm(0, 1) = 0&lt;BR /&gt;
    tm(0, 2) = 0: tm(0, 3) = 1&lt;BR /&gt;
    tm(1, 0) = 0: tm(1, 1) = 1&lt;BR /&gt;
    tm(1, 2) = 0: tm(1, 3) = 1&lt;BR /&gt;
    tm(2, 0) = 0: tm(2, 1) = 0&lt;BR /&gt;
    tm(2, 2) = 1: tm(2, 3) = 0&lt;BR /&gt;
    tm(3, 0) = 0: tm(3, 1) = 0&lt;BR /&gt;
    tm(3, 2) = 0: tm(3, 3) = 1&lt;BR /&gt;
&lt;BR /&gt;
    Debug.Print "MS Count " &amp;amp; ThisDrawing.ModelSpace.Count&lt;BR /&gt;
&lt;BR /&gt;
    startTime = VBA.Timer&lt;BR /&gt;
&lt;BR /&gt;
    Dim ent As AcadEntity&lt;BR /&gt;
    Dim iterator As AcadEntity&lt;BR /&gt;
&lt;BR /&gt;
    For Each iterator In ThisDrawing.ModelSpace&lt;BR /&gt;
&lt;BR /&gt;
        If TypeOf iterator Is AcadLine Or _&lt;BR /&gt;
            TypeOf iterator Is AcadMText Then&lt;BR /&gt;
            Set ent = iterator.Copy()&lt;BR /&gt;
            ent.TransformBy tm&lt;BR /&gt;
        End If&lt;BR /&gt;
&lt;BR /&gt;
    Next iterator&lt;BR /&gt;
&lt;BR /&gt;
   endTime = VBA.Timer&lt;BR /&gt;
&lt;BR /&gt;
   Debug.Print endTime - startTime&lt;BR /&gt;
   Debug.Print "MS Count " &amp;amp; ThisDrawing.ModelSpace.Count&lt;BR /&gt;
&lt;BR /&gt;
End Sub&lt;BR /&gt;
[/code]&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
"Laurie Comerford" &lt;LAURIE.COMERFORD&gt; wrote in message &lt;BR /&gt;
news:5672536@discussion.autodesk.com...&lt;BR /&gt;
Hi Paul,&lt;BR /&gt;
&lt;BR /&gt;
Grabbing some sample code from the help system I ended up with:&lt;BR /&gt;
&lt;BR /&gt;
Sub TestTransformBy()&lt;BR /&gt;
Dim oEnt As AcadEntity&lt;BR /&gt;
Dim oEntDup As AcadEntity&lt;BR /&gt;
Dim PtStart(0 To 2) As Double&lt;BR /&gt;
Dim i As Integer&lt;BR /&gt;
Dim vPt As Variant&lt;BR /&gt;
Dim lTmp As Long&lt;BR /&gt;
Dim ssObjects As AcadSelectionSet&lt;BR /&gt;
Dim TimeStart, TimeEnd&lt;BR /&gt;
    Dim transMat(0 To 3, 0 To 3) As Double&lt;BR /&gt;
    transMat(0, 0) = 1#: transMat(0, 1) = 0#: transMat(0, 2) = 0#:&lt;BR /&gt;
transMat(0, 3) = 10#&lt;BR /&gt;
    transMat(1, 0) = 0#: transMat(1, 1) = 1#: transMat(1, 2) = 0#:&lt;BR /&gt;
transMat(1, 3) = 0#&lt;BR /&gt;
    transMat(2, 0) = 0#: transMat(2, 1) = 0#: transMat(2, 2) = 1#:&lt;BR /&gt;
transMat(2, 3) = 0#&lt;BR /&gt;
    transMat(3, 0) = 0#: transMat(3, 1) = 0#: transMat(3, 2) = 0#:&lt;BR /&gt;
transMat(3, 3) = 1#&lt;BR /&gt;
    If SelectObjectsOnLayer(ssObjects, "LINE,MTEXT", "*") &amp;gt; 0 Then&lt;BR /&gt;
      TimeStart = 60 * Val(Format(Time, "MM")) + Val(Format(Time, "SS.SSS"))&lt;BR /&gt;
      For Each oEnt In ssObjects&lt;BR /&gt;
        For i = 1 To 1000&lt;BR /&gt;
        Set oEntDup = oEnt.Copy&lt;BR /&gt;
        oEntDup.TransformBy (transMat)&lt;BR /&gt;
        Next i&lt;BR /&gt;
      Next&lt;BR /&gt;
      TimeEnd = 60 * Val(Format(Time, "MM")) + Val(Format(Time, "SS.SSS"))&lt;BR /&gt;
      Debug.Print "1000 Lines and Mtext Items with TransformBy   ",&lt;BR /&gt;
Format(TimeEnd - TimeStart, "#0.0"); "seconds"&lt;BR /&gt;
    End If&lt;BR /&gt;
End Sub  ' ssTest()&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
For three runs in a drawing containing one line and one MText item this&lt;BR /&gt;
reported.  After each run I simply used the Undo command to remove the new&lt;BR /&gt;
data.&lt;BR /&gt;
&lt;BR /&gt;
1000 Lines and Mtext Items with TransformBy             4.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with TransformBy             4.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with TransformBy             4.0seconds&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
As it seemed significantly slower for the same data set on my computer I ran&lt;BR /&gt;
the other methods again with the following results.&lt;BR /&gt;
&lt;BR /&gt;
1000 Lines and Mtext Items with move      4.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with move      4.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with move      4.0seconds&lt;BR /&gt;
&lt;BR /&gt;
1000 Lines and Mtext Items with Original code           2.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with Original code           2.0seconds&lt;BR /&gt;
1000 Lines and Mtext Items with Original code           2.0seconds&lt;BR /&gt;
&lt;BR /&gt;
The only difference between when the first code was run and new is time&lt;BR /&gt;
elapsed with AutoCAD open and that there is another 3Mb drawing open&lt;BR /&gt;
&lt;BR /&gt;
Original Reports&lt;BR /&gt;
1000 Lines and Mtext Items with entity.move       2.96875 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with entity.move       2.859375 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with entity.move       2.984375 seconds&lt;BR /&gt;
&lt;BR /&gt;
1000 Lines and Mtext Items with Original code            1.609375 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with Original code            1.65625 seconds&lt;BR /&gt;
1000 Lines and Mtext Items with Original code            1.609375 seconds&lt;BR /&gt;
&lt;BR /&gt;
I'd be interested to see the results from your computer as there is nearly a&lt;BR /&gt;
ten times difference in the output.&lt;BR /&gt;
Also, my time measurement is more suited to comparisons on one computer than&lt;BR /&gt;
anything else.&lt;BR /&gt;
&lt;BR /&gt;
I'm running this in Civil 3D R2008.  Although for comparisons with my other&lt;BR /&gt;
times, that should be irrelevant.&lt;BR /&gt;
&lt;BR /&gt;
I've never had cause to write code to move objects previously other than for&lt;BR /&gt;
changing the insertion point of my test doughnut to highlight the point I've&lt;BR /&gt;
just computed when I'm doing complex geometry and de-bugging.  In that type&lt;BR /&gt;
of code, setting the insertion to a computed point is the obvious answer.&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
-- &lt;BR /&gt;
&lt;BR /&gt;
Laurie Comerford&lt;BR /&gt;
CADApps&lt;BR /&gt;
www.cadapps.com.au&lt;BR /&gt;
www.civil3Dtools.com&lt;BR /&gt;
&lt;BR /&gt;
Sub TestTransformBy()&lt;BR /&gt;
Dim oEnt As AcadEntity&lt;BR /&gt;
&lt;BR /&gt;
Dim PtStart(0 To 2) As Double&lt;BR /&gt;
Dim i As Integer&lt;BR /&gt;
Dim vPt As Variant&lt;BR /&gt;
Dim lTmp As Long&lt;BR /&gt;
Dim ssObjects As AcadSelectionSet&lt;BR /&gt;
Dim TimeStart, TimeEnd&lt;BR /&gt;
Dim transMat(0 To 3, 0 To 3) As Double&lt;BR /&gt;
    transMat(0, 0) = 1#: transMat(0, 1) = 0#: transMat(0, 2) = 0#:&lt;BR /&gt;
transMat(0, 3) = 10#&lt;BR /&gt;
    transMat(1, 0) = 0#: transMat(1, 1) = 1#: transMat(1, 2) = 0#:&lt;BR /&gt;
transMat(1, 3) = 0#&lt;BR /&gt;
    transMat(2, 0) = 0#: transMat(2, 1) = 0#: transMat(2, 2) = 1#:&lt;BR /&gt;
transMat(2, 3) = 0#&lt;BR /&gt;
    transMat(3, 0) = 0#: transMat(3, 1) = 0#: transMat(3, 2) = 0#:&lt;BR /&gt;
transMat(3, 3) = 1#&lt;BR /&gt;
    If SelectObjectsOnLayer(ssObjects, "LINE,MTEXT", "*") &amp;gt; 0 Then&lt;BR /&gt;
      TimeStart = Timer&lt;BR /&gt;
      For Each oEnt In ssObjects&lt;BR /&gt;
        For i = 1 To 1000&lt;BR /&gt;
        Set oEnt = oEnt.Copy&lt;BR /&gt;
        oEnt.TransformBy (transMat)&lt;BR /&gt;
        Next i&lt;BR /&gt;
      Next&lt;BR /&gt;
      TimeEnd = Timer&lt;BR /&gt;
      Debug.Print "1000 Lines and Mtext Items with TransformBy   ",&lt;BR /&gt;
TimeEnd - TimeStart; "seconds"&lt;BR /&gt;
    End If&lt;BR /&gt;
End Sub  ' ssTest()&lt;BR /&gt;
"Paul Richardson" &lt;FIRSTINITIALLASTNAME&gt;&lt;LASTPOINT&gt; wrote in message&lt;BR /&gt;
news:5672502@discussion.autodesk.com...&lt;BR /&gt;
&amp;gt;actually TransformBy is a property... entity.TransformBy&lt;BR /&gt;
&lt;BR /&gt;
not it's NOT... I was right the first time. WOW! Anyway it's FAST.&lt;BR /&gt;
&lt;BR /&gt;
&lt;SNIP&gt;&lt;/SNIP&gt;&lt;/LASTPOINT&gt;&lt;/FIRSTINITIALLASTNAME&gt;&lt;/LAURIE.COMERFORD&gt;</description>
      <pubDate>Sat, 28 Jul 2007 05:07:19 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029989#M24161</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-28T05:07:19Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029990#M24162</link>
      <description>Every time you reply to one of my posts, you &lt;BR /&gt;
 achieve little other than to make a complete &lt;BR /&gt;
fool of yourself, and in the process, do great harm&lt;BR /&gt;
to the reputation of the professional organization&lt;BR /&gt;
you affiliate yourself with in your signature. &lt;BR /&gt;
&lt;BR /&gt;
What a pathetic shame.&lt;BR /&gt;
&lt;BR /&gt;
When you factor in all of the conditional branching &lt;BR /&gt;
that must be done to accommodate every possible &lt;BR /&gt;
type of entity, rather than only lines and MText, &lt;BR /&gt;
then the code runs much slower than just calling &lt;BR /&gt;
Move() on each Entity.&lt;BR /&gt;
&lt;BR /&gt;
So, saying that garbage you posted is faster than &lt;BR /&gt;
whatever, because you deliberately limited the &lt;BR /&gt;
scope of the types involved to only lines and mtext, &lt;BR /&gt;
rather than testing with all possible types of entities, &lt;BR /&gt;
and with the conditional branching and dedicated &lt;BR /&gt;
move function needed for each type of entity, is than &lt;BR /&gt;
further demonstrating a complete lack of programming &lt;BR /&gt;
skill.&lt;BR /&gt;
&lt;BR /&gt;
And for the benefit of others who are reading this,&lt;BR /&gt;
In object oriented programming, with an object &lt;BR /&gt;
model and classes that support methods like Move() &lt;BR /&gt;
or TransformBy(), you are supposed to use them, &lt;BR /&gt;
because it allows your code to operate on any type &lt;BR /&gt;
of entity, without regards for what type of entity it&lt;BR /&gt;
is or whether you know anything about it, other than &lt;BR /&gt;
that it is an entity. &lt;BR /&gt;
&lt;BR /&gt;
Hence, if you use the Move() (or TransformBy) methods, &lt;BR /&gt;
your code will support and move any type of entity that&lt;BR /&gt;
can exist in a drawing, including custom objects that &lt;BR /&gt;
you have no knowledge of at all.&lt;BR /&gt;
&lt;BR /&gt;
That's the main problem with what Laurie is doing&lt;BR /&gt;
(writing code to move each type of entity he knows&lt;BR /&gt;
about, and hence, only supports the types of objects &lt;BR /&gt;
he writes the code to move). &lt;BR /&gt;
&lt;BR /&gt;
Now, in what is little other than a pathetic attempt to &lt;BR /&gt;
save face, Laurie is trying to mislead you into believing &lt;BR /&gt;
that performance is what matters, as opposed to sound &lt;BR /&gt;
coding practices and writing code the right way - that &lt;BR /&gt;
allows it to automatically support any and all types of &lt;BR /&gt;
entities, including those Laurie does not even know exist.&lt;BR /&gt;
&lt;BR /&gt;
How sad.&lt;BR /&gt;
&lt;BR /&gt;
-- &lt;BR /&gt;
http://www.caddzone.com&lt;BR /&gt;
&lt;BR /&gt;
AcadXTabs: MDI Document Tabs for AutoCAD 2008&lt;BR /&gt;
Supporting AutoCAD 2000 through 2008&lt;BR /&gt;
http://www.acadxtabs.com</description>
      <pubDate>Sat, 28 Jul 2007 15:31:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029990#M24162</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-28T15:31:56Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029991#M24163</link>
      <description>Hi Paul.  The Move() method calls transformBy() internally,&lt;BR /&gt;
and is just a sugar-coated  wrapper for it, that eliminates &lt;BR /&gt;
the need to construct the matrix manually.&lt;BR /&gt;
&lt;BR /&gt;
However, TransformBy can be more effecient when you&lt;BR /&gt;
need to move many objects by the same displacement, &lt;BR /&gt;
since the matrix only needs to be constructed once.&lt;BR /&gt;
&lt;BR /&gt;
-- &lt;BR /&gt;
http://www.caddzone.com&lt;BR /&gt;
&lt;BR /&gt;
AcadXTabs: MDI Document Tabs for AutoCAD 2008&lt;BR /&gt;
Supporting AutoCAD 2000 through 2008&lt;BR /&gt;
http://www.acadxtabs.com&lt;BR /&gt;
&lt;BR /&gt;
"Paul Richardson" &lt;FIRSTINITIALLASTNAME&gt;&lt;LASTPOINT&gt; wrote in message news:5672465@discussion.autodesk.com...&lt;BR /&gt;
try TransformBy method. Copied 2000 entities in 0.421875 seconds...&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671345@discussion.autodesk.com...&lt;BR /&gt;
I have written a VB app that needs to retrieve specific entities (sometimes &lt;BR /&gt;
over 200 at a time) and transform (copy) them to a new location via code.&lt;BR /&gt;
&lt;BR /&gt;
So my question is... Is it faster to simply cycle thru the entities &lt;BR /&gt;
transforming them one by one OR...&lt;BR /&gt;
&lt;BR /&gt;
put them in a selection set and then execute the Copy command via &lt;BR /&gt;
sendcommand.&lt;BR /&gt;
&lt;BR /&gt;
I would have tried this myself but I don't understand how to use the &lt;BR /&gt;
selection set I added the entities to as part of the SENDCOMMAND verbage or &lt;BR /&gt;
if there is a way to 'select' them via code before using the Sendcommand &lt;BR /&gt;
"Copy"&lt;BR /&gt;
&lt;BR /&gt;
Any and all input on this issue will be greatly appreciated... I don't know &lt;BR /&gt;
how many more times I can bang my head against the wall without it or the &lt;BR /&gt;
wall being damaged.  &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/GMYROUP&gt;&lt;/LASTPOINT&gt;&lt;/FIRSTINITIALLASTNAME&gt;</description>
      <pubDate>Sat, 28 Jul 2007 15:31:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029991#M24163</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-28T15:31:57Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029992#M24164</link>
      <description>Cool - Thanks.&lt;BR /&gt;
"Tony Tanzillo" &lt;TONY.TANZILLO&gt; wrote in message &lt;BR /&gt;
news:5672673@discussion.autodesk.com...&lt;BR /&gt;
Hi Paul.  The Move() method calls transformBy() internally,&lt;BR /&gt;
and is just a sugar-coated  wrapper for it, that eliminates&lt;BR /&gt;
the need to construct the matrix manually.&lt;BR /&gt;
&lt;BR /&gt;
However, TransformBy can be more effecient when you&lt;BR /&gt;
need to move many objects by the same displacement,&lt;BR /&gt;
since the matrix only needs to be constructed once.&lt;BR /&gt;
&lt;BR /&gt;
-- &lt;BR /&gt;
http://www.caddzone.com&lt;BR /&gt;
&lt;BR /&gt;
AcadXTabs: MDI Document Tabs for AutoCAD 2008&lt;BR /&gt;
Supporting AutoCAD 2000 through 2008&lt;BR /&gt;
http://www.acadxtabs.com&lt;BR /&gt;
&lt;BR /&gt;
"Paul Richardson" &lt;FIRSTINITIALLASTNAME&gt;&lt;LASTPOINT&gt; wrote in message &lt;BR /&gt;
news:5672465@discussion.autodesk.com...&lt;BR /&gt;
try TransformBy method. Copied 2000 entities in 0.421875 seconds...&lt;BR /&gt;
&lt;BR /&gt;
&lt;GMYROUP&gt; wrote in message news:5671345@discussion.autodesk.com...&lt;BR /&gt;
I have written a VB app that needs to retrieve specific entities (sometimes&lt;BR /&gt;
over 200 at a time) and transform (copy) them to a new location via code.&lt;BR /&gt;
&lt;BR /&gt;
So my question is... Is it faster to simply cycle thru the entities&lt;BR /&gt;
transforming them one by one OR...&lt;BR /&gt;
&lt;BR /&gt;
put them in a selection set and then execute the Copy command via&lt;BR /&gt;
sendcommand.&lt;BR /&gt;
&lt;BR /&gt;
I would have tried this myself but I don't understand how to use the&lt;BR /&gt;
selection set I added the entities to as part of the SENDCOMMAND verbage or&lt;BR /&gt;
if there is a way to 'select' them via code before using the Sendcommand&lt;BR /&gt;
"Copy"&lt;BR /&gt;
&lt;BR /&gt;
Any and all input on this issue will be greatly appreciated... I don't know&lt;BR /&gt;
how many more times I can bang my head against the wall without it or the&lt;BR /&gt;
wall being damaged.  &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/GMYROUP&gt;&lt;/LASTPOINT&gt;&lt;/FIRSTINITIALLASTNAME&gt;&lt;/TONY.TANZILLO&gt;</description>
      <pubDate>Sat, 28 Jul 2007 15:39:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029992#M24164</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-28T15:39:39Z</dc:date>
    </item>
    <item>
      <title>Re: Which transform (copy) method is faster?</title>
      <link>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029993#M24165</link>
      <description>I don’t agree: in my opinion Object.move fromPoint toPoint is the simple way to perform a single translation, no matter how many objects you have to move. One needs transformation matrices for slightly more complex transformations (that is translations with rotations), particularly when you need to transform many copies of the same object. I don’t understand what you mean with “to construct the matrix manually”. In my experience it’s a nonsense to use a sort of constant  matrix, calculated – as you say – “manually”; I for one make the program calculate the matrix, staring from two or three picked points.</description>
      <pubDate>Mon, 30 Jul 2007 07:59:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/which-transform-copy-method-is-faster/m-p/2029993#M24165</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2007-07-30T07:59:06Z</dc:date>
    </item>
  </channel>
</rss>

