win32com
私はかなり長い間、問題なくAutoCADにアクセスするために走っています。ユーティリティを適用すると、インタラクティブプロンプトでよりユーザーフレンドリーなエクスペリエンスが作成されることを知ったので、makepy
ユーティリティを実行して「AutoCAD2006タイプライブラリ」を追加しました。現在、アクセスに使用していたいくつかの一般的な属性は使用できなくなりました。コードを考えてみましょう:
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'
Name
を実行するまで、常にブロックのアクセス可能な属性でしたmakepy
。Python for Windowsを再インストールしてリセットされるかどうかを確認しようとしましたが、機能しませんでした。
makepyは、実装時に削除する必要のある別のファイルを作成しますか?
Name
私のスクリプトの多くは属性に依存しています。あなたが提供できる提案や助けをいただければ幸いです。