from win32com.client import Dispatch, gencache
# import pythoncom
import time
AcadAPI = gencache.EnsureModule('{4E3F492A-FB57-4439-9BF0-1567ED84A3A9}', 0, 1, 0)
AcadObject = Dispatch('AutoCAD.Application.20.1', None, AcadAPI.IAcadApplication.CLSID)
# AcadObject = DispatchWithEvents('AutoCAD.Application.20.1', AcadAPI.IAcadApplication)
AcadObject.Visible = True
# Открываем ГОСТ-шаблон
template_path = r"C:\Users\ZeroHour\AppData\Local\Autodesk\AutoCAD Mechanical 2016\R20.1\rus\Acadm\Template\am_gost.dwt"
doc = AcadObject.Documents.Add(template_path)
# AcadObject.ActiveDocument.SetVariable("FILEDIA", 0) # отключаем диалог выбора файла
time.sleep(0.1)
doc.SetVariable("FILEDIA", 0)
# Импортируем STEP
step_file = r"C:\cad\Деталь.stp"
# Импортируем STEP
# AcadObject.ActiveDocument.SendCommand(f'._IMPORT\r"{step_file}"\r')
time.sleep(0.1)
doc.SendCommand(f'._IMPORT\r"{step_file}"\r')
flag = True
# for i in range(20):
# # pythoncom.PumpWaitingMessages()
# print(doc.ModelSpace.Count)
# time.sleep(0.2)
while flag:
try:
tmp = doc.ModelSpace.Count
time.sleep(0.2)
except:
flag = False
time.sleep(1)
print('модель импортирована')
# Открываем готовый результат (аналог клика по уведомлению)
AcadObject.ActiveDocument.SendCommand("IMPORTTRANSLATIONRESULT\r")
# Перестраиваем вид
AcadObject.ActiveDocument.SendCommand("._REGEN\r")
AcadObject.ActiveDocument.SetVariable("FILEDIA", 1) # возвращаем диалог выбора файла