2016-03-27 7 views
0

Я использую Python, чтобы вставить блок в AutoCad код document.The ниже:Использование питона, чтобы вставить блок в AutoCad документ, безуспешно

import comtypes.client 
app = comtypes.client.GetActiveObject("AutoCAD.Application") 
ms = app.ActiveDocument 
files = r"C:\Users\TOM\Desktop\02python\516.00-501.50.dwg" 
insertionPnt = [0,0,0] 
ms.ModelSpace.InsertBlock(insertionPnt, files, 1, 1, 1, 0) 

Блок вставляется в документ, но ModelSpace Безразлично» t. Исключения составляют:

File "C:\Users\TOM\Documents\002pybookcode\backup_code\test.py", line 10, in <module> 
    ms.ModelSpace.InsertBlock(insertionPnt, files, 1, 1, 1, 0) 
_ctypes.COMError: (-2147024809, '\xb2\xce\xca\xfd\xb4\xed\xce\xf3\xa1\xa3', (None, None, None, 0, None)) 

Я решил эту проблему, и приведенный ниже код работает.

import win32com.client 
import pythoncom 

def POINT(x,y,z): 
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x,y,z)) 

acad = win32com.client.Dispatch("AutoCAD.Application") 
doc = acad.ActiveDocument 
ms = doc.ModelSpace 
files = r"C:\Users\TOM\Desktop\02python\516.00-501.50.dwg" 
doc.Utility.Prompt("hello World\n") 
pt1= POINT(0.0,0.0,0.0) 
ms.InsertBlock(pt1, files, 1.0,1.0,1.0, 0) 
+1

спасибо @Padraic Cunningham –

+0

Вы пробовали глядя, какие COM ошибки -2147024809 средства? Похоже, это было бы важным ключом к тому, что не так ... – martineau

+0

Извините, я не понимаю, как выделить код. –

ответ

0

Хотя, казалось, найти решение проблемы, я просто нашел простое решение непосредственно в документации comtypes http://www.pythonhosted.org/comtypes/#converting-data-types где объяснить проблему и пример для вставки точки в Autocad.

Короче говоря, измените код:

import array 
import comtypes.client 
app = comtypes.client.GetActiveObject("AutoCAD.Application") 
ms = app.ActiveDocument 
files = r"C:\Users\TOM\Desktop\02python\516.00-501.50.dwg" 
insertionPnt = array.array('d', [0,0,0]) 
ms.ModelSpace.InsertBlock(insertionPnt, files, 1, 1, 1, 0) 

 Смежные вопросы

  • Нет связанных вопросов^_^