Я уже некоторое время без проблем запускаю win32com для доступа к AutoCAD.Я узнал, что применение утилиты makepy может создать более удобный интерфейс в интерактивном режиме, поэтому я запустил ее и добавил «Библиотеку типов AutoCAD 2006».Теперь некоторые общие атрибуты, к которым я обращался, больше не доступны.Рассмотрим код:
acad = win32com.client("AutoCAD.Application")
doc = acad.Documents.Open('mydoc.dwg')
ms = doc.ModelSpace
count = ms.Count #counts all entities in dwg
for i in range(count):
item = ms.Item(i)
if 'block' in item.ObjectName.lower():
print item.Name
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 462, in
__getattr__ raise AttributeError("'%s' object has no attribute '%s'"
(repr(self),attr))
AttributeError: '<win32com.gen_py.AutoCAD 2006 Type Library.IAcadEntity instance
at 0x34894552>' object has no attribute 'Name'
Имя всегда было доступным атрибутом блока, пока я не запустил makepy.Я попытался переустановить Python для Windows, чтобы увидеть, если это сбросит его, но это не сработало.
Создает ли makepy при реализации другой файл, который мне нужно удалить?
Так много моих скриптов зависят от атрибута Name.Будем весьма благодарны за любые предложения или помощь, которые вы можете предложить.