Hello,<br><br>I'm having problem implementing a &quot;AddPoint&quot; method in AutoCAD.&nbsp; From the search I've done,&nbsp; seems the problem is variable type: I supplied a list as the x,y,z coordinates of a point, why seems what is expected is a Variant (three-element array of doubles).
<br><br>The python code I tested with is:<br><br>[code]<br><br>import win32com.client<br><br>acad = win32com.client.Dispatch(&quot;AutoCAD.Application&quot;)<br>acad.WindowState = 3<br>acad.Visible = 1<br><br>doc = acad.ActiveDocument
<br>ms = doc.ModelSpace<br>print str(ms.ObjectName)<br>try:<br>&nbsp;&nbsp;&nbsp; ms.AddPoint([0.0, 0.0, 0.0])&nbsp;&nbsp; # this line gives the problem<br>finally:<br>&nbsp;&nbsp;&nbsp; print &quot;\nTest finished.&quot;<br><br>[/code]<br><br>This is the error I got:
<br><br>Traceback (most recent call last):<br>&nbsp; File &quot;&lt;string&gt;&quot;, line 65, in run_nodebug<br>&nbsp; File &quot;C:\Programming\Python\Codes\acad_add_point.py&quot;, line 11, in ?<br>&nbsp;&nbsp;&nbsp; ms.AddPoint([0.0, 0.0, 0.0
])<br>&nbsp; File &quot;C:\Python24\lib\site-packages\win32com\gen_py\1EFD8E85-7F3B-48E6-9341-3C8B2F60136Bx0x1x1.py&quot;, line 12688, in AddPoint<br>&nbsp;&nbsp;&nbsp; ret = self._oleobj_.InvokeTypes(1562, LCID, 1, (9, 0), ((12, 1),),Point<br>
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147024809), None)<br><br><br clear="all">python code for AddPoint method from makepy:<br><br># Result is of type IAcadPoint<br>def AddPoint(self, Point=defaultNamedNotOptArg):
<br>&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;Creates a Point object at a given location&quot;&quot;&quot;<br>&nbsp;&nbsp;&nbsp; ret = self._oleobj_.InvokeTypes(1562, LCID, 1, (9, 0), ((12, 1),),Point)<br>&nbsp;&nbsp;&nbsp; if ret is not None:<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ret = Dispatch(ret, 'AddPoint', '{35AF3AB5-755E-4AC9-8BAF-31B532870751}', UnicodeToString=0)
<br>&nbsp;&nbsp;&nbsp; return ret<br><br><br>And finally, below is the VBA doucumentation provided with AutoCAD.<br><br>Signature <br><br>RetVal = object.AddPoint(Point) <br><br>Object<br><br>ModelSpace Collection, PaperSpace Collection, Block
<br>The object or objects this method applies to. <br><br>Point<br><br>Variant (three-element array of doubles); input-only<br>The coordinates of the point to be created. <br><br>RetVal<br><br>Point object<br>The newly created Point object. 
<br><br>Example:<br><br>Sub Example_AddPoint()<br>&nbsp;&nbsp;&nbsp; ' This example creates a point in model space.<br>&nbsp;&nbsp;&nbsp; Dim pointObj As AcadPoint<br>&nbsp;&nbsp;&nbsp; Dim location(0 To 2) As Double<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; ' Define the location of the point
<br>&nbsp;&nbsp;&nbsp; location(0) = 5#: location(1) = 5#: location(2) = 0#<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; ' Create the point<br>&nbsp;&nbsp;&nbsp; Set pointObj = ThisDrawing.ModelSpace.AddPoint(location)<br>&nbsp;&nbsp;&nbsp; ZoomAll<br>&nbsp;&nbsp;&nbsp; <br>End Sub<br><br>Sorry for the long post.&nbsp; I've actually spent more than 2 or 3 hours searching the web for an answer.&nbsp; And I did see lots of discussions related to this sort of issue: safearray, variant array, etc..&nbsp; But I didn't see a definite answer.&nbsp; More than likely it is because I'm a beginner in Python and could not make sense out of those discussion.&nbsp; Can someone elaborate a little bit on this?&nbsp; 
<br><br>Thanks a lot for just reading my long message.<br><br>-- <br><br>Regards,<br>- wcc<br><br>