Мне нужно программно проверить, существует ли слой на чертеже AutoCAD. Я знаю, что это просто сделать работу, используя .dxf
, например:
In [77]: import win32com.client
...: import ezdxf
...: import os
In [78]: folder = r'C:\path\to\my\folder'
...: filename = 'my_file'
In [79]: dxf_path = os.path.join(folder, filename + '.dxf')
In [80]: dxf = ezdxf.readfile(dxf_path)
In [81]: '0' in dxf.layers
Out[81]: True
Но что, если я хочу проверить доступные слои в файле .dwg
? Я сделал эту попытку, которая не сработала, потому что метод SendCommand
возвращает None
:
In [82]: acad = win32com.client.dynamic.Dispatch("AutoCAD.Application")
In [83]: dwg_path = os.path.join(folder, filename + '.dwg')
In [84]: dwg = acad.Documents.Open(dwg_path)
In [85]: dwg.SendCommand('(tblsearch "layer" "0") ') is not None
Out[85]: False
Любые предложения о том, как подойти к этой проблеме, будут с благодарностью.