"Kelie" <[EMAIL PROTECTED]> wrote

I'm trying to translate the following VB code into Python and not sure how to
create an array of variants.

An array of variants in Python is a list.
But I'm not sure why you think you need one?

VB Code:
Sub SetXdata()
   Dim lineObj As AcadLine
   Set lineObj = ThisDrawing.ModelSpace.Item(0)

   Dim DataType(0 To 1) As Integer
   Dim Data(0 To 1) As Variant

   DataType(0) = 1001: Data(0) = "Test_Application"
   DataType(1) = 1070: Data(1) = 600

So this is basically setting up two lists where
the DataType is an integer and the Data is  - in
these cases - a string or an integer.

   lineObj.SetXdata DataType, Data

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)

import comtypes.client

def SetXData():
   activedoc =
comtypes.client.GetActiveObject("AutoCAD.Application").ActiveDocument
   line = activedoc.ModelSpace.Item(0)

   dataType = array.array('i', [1001, 1070])
dataValue = array.array('?', ['Test_Application', 600]) #What should I use
for the type code?

I don;t think you use an array here. An array in this context expects
a homogenous set of data. You need a mixed set. So a normal list
is most likely construct to use.

Alternatively does comtypes have a mechanism for converting Python
types to VB/COM Variants?

Alan G



_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to