Re-added the python-win32 list - please keep replies on list.

Your code uses:

>         pt1 = array.array('d', [0.0,0.0,0.0])
>         pt2=array.array('d',[1.0,1.0,__0.0])

But these aren't supported by pywin32 in the way you expect - what happens if you change this to:

         pt1 = [0.0,0.0,0.0]
         pt2 =[1.0,1.0,0.0]

?

Mark


On 2/02/2012 7:12 AM, DANIEL POSE wrote:
Hello Mark,

I understand the AutoCAD problem, but in my profession it is the most
extended software for CAD. In my opinion it justify the efford to make
automation tools.
Here I post the answer from Python when I try to draw a line using
win32com.client code in my last mail:

Traceback (most recent call last):
   File "<ipython console>", line 1, in <module>
   File
"C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\startup.py",
line 128, in runfile
     execfile(filename, glbs)
   File "C:\Documents and Settings\Usuario\Escritorio\borrar.py", line
15, in <module>
     line = ms.AddLine(pt1, pt2) #This draw a line in AutoCAD
   File "<COMObject <unknown>>", line 3, in AddLine
com_error: (-2147352567, 'Ocurri\xf3 una excepci\xf3n.', (0, None, None,
None, 0, -2147024809), None)

Thank you in advance,
Daniel Pose.

2012/2/1 Mark Hammond <skippy.hamm...@gmail.com
<mailto:skippy.hamm...@gmail.com>>

    Sadly not many people have access to autocad so it is hard to test.
    What errors do you get using win32com?

    Mark


    On 1/02/2012 5:11 AM, DANIEL POSE wrote:

        Hello,

        Recently I try to write some code to automate AutoCAD from Python. I
        have to draw lines from Python using win32com.client module, but I
        obtain error. By other hand I solved the problem using comtypes
        module.
        However, If I try to obtain block attributes information, comtypes
        doesn't work but win32com.client work properly.

        AutoCAD attributes working code (work for win32com.client but no for
        comtypes):
        [code]
        import win32com.client
        acad= win32com.client.Dispatch("__AutoCAD.Application")
        doc = acad.ActiveDocument
        seleccion=doc.SelectionSets.__Add('selection1')
        seleccion.SelectOnScreen()
        for objeto in seleccion:
             if objeto.ObjectName=='__AcDbBlockReference':
                 bloque=objeto.GetAttributes()
                 bloque[0].TagString='__newattributename' #This change
        the name
        for the first attribute in the selected block
        [/code]

        Draw line (work for comtypes but doesn't work for win32com.client):
        [code]
        import comtypes.client
        import array
        acad = comtypes.client.__GetActiveObject("AutoCAD.__Application")
        doc = acad.ActiveDocument
        ms = doc.ModelSpace
        pt1 = array.array('d', [0.0,0.0,0.0])
        pt2=array.array('d',[1.0,1.0,__0.0])
        line = ms.AddLine(pt1, pt2) #This draw a line in AutoCAD
        [\code]

        My question is: Is posible to fix the problem using win32com to draw
        autocad line in order to avoid comtypes use?
        I found on the web several coments to the problem, but no solution.

        Thanks for help,
        Daniel Pose.


        _________________________________________________
        python-win32 mailing list
        python-win32@python.org <mailto:python-win32@python.org>
        http://mail.python.org/__mailman/listinfo/python-win32
        <http://mail.python.org/mailman/listinfo/python-win32>




_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to