Загрузка файлов AutoCad DWG в Python - PullRequest
0 голосов
/ 28 мая 2019

Требуется рендеринг файла AutoCad DWG в Python.Мой первый вопрос:

1: - Можно ли отобразить / загрузить файл DWG в Python и просмотреть файл / изображение в среде Python?

2: - Как я могу это сделать?Я попытался использовать arcpy, но поскольку это проприетарное программное обеспечение ArcGIS, невозможно напрямую импортировать библиотеку?Каковы альтернативы этому?

Я даже исследовал множество источников в Интернете, но не нашел ничего полезного.Пробовал comtypes.client также для импорта и просмотра того же.

import array
import comtypes.client
acad = comtypes.client.GetActiveObject("AutoCAD.Application")
doc = acad.ActiveDocument
ms = doc.ModelSpace
doc.Import("sample.dwg", array.array('d', [0, 0, 0]), 1.0)

Я получаю эту ошибку, я загрузил программное обеспечение AutoCAD, но я все еще получаю эту ошибку.Пожалуйста, предложите, что мне не хватает и что на самом деле означает ошибка.


OSError Traceback (последний вызов был последним) в 3 попытки: ----> 4 acad = comtypes.client.GetActiveObject ("AutoCAD.Application ") 5 за исключением:

~ \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ comtypes \ client__init __. Py в GetActiveObject (progid, interface, dynamic) 172" "" -> 173clsid = comtypes.GUID.from_progid (progid) 174, если динамический:

~ \ Anaconda3 \ envs \ py36 \ lib \ site-packages \ comtypes \ GUID.py в from_progid (cls, progid) 77 inst = cls() ---> 78 _CLSIDFromProgID (str (progid), byref (inst)) 79 возвращают inst

_ctypes / callproc.c в GetResult ()

OSError: [WinError -2147221005]Неверная строка класса

1 Ответ

1 голос
/ 29 мая 2019

Вы можете попробовать что-то вроде этого:

import comtypes.client
import time
try:
        acad = comtypes.client.GetActiveObject("AutoCAD.Application")
except:
        acad = comtypes.client.CreateObject("AutoCAD.Application")
while not acad.GetAcadState().IsQuiescent :
    time.sleep(5)
acad.Visible = True
doc = acad.Documents.Open("C:\\Temp\\Sample.dwg")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...