Alan Gauld <alan.gauld <at> btinternet.com> writes: > So if you pass in two Python lists containing: > > DataType = [1001,1070] > Data = ["Test_Application", 600] > > Does it work? > > If not what error do you get? (The full text please) >
Thanks Alan. This is the error I got: Traceback (most recent call last): File "C:\Python25\codes\autocad\setxdata2.py", line 13, in <module> SetXData() File "C:\Python25\codes\autocad\setxdata2.py", line 10, in SetXData line.SetXData(dataType, dataValue) _ctypes.COMError: (-2145320939, None, (u'Invalid argument type in SetXData method', u'AutoCAD.Application', u'C:\\Program Files\\AutoCAD 2008\\HELP\\OLE_ERR.CHM', -2145320939, None)) > Alternatively does comtypes have a mechanism for converting Python > types to VB/COM Variants? > I think comtypes or pywin32 do take care of some conversion between Python types and VB types. But they don't work with AutoCAD. Btw, this is the working code to draw a point in AutoCAD and you can't replace pt = array.array('d', [0,0,0]) with pt = [0,0,0]. The latter gives an error: COMError: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) import array import comtypes.client acadApp = comtypes.client.GetActiveObject("AutoCAD.Application") ms = acadApp.ActiveDocument.ModelSpace pt = array.array('d', [0,0,0]) ms.AddPoint(pt) print "Done." _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor