Последние сообщения

Последние сообщения

Страницы: 1 ... 3 4 [5] 6 7 ... 10
41
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от Алексей Кулик 13-08-2025, 10:33:40 »
Вспомнил свои "болячки" - дебажил плагины .Net под другой САПР который тяжело запускается<...>
ИМХО если разделять ответственность, то зачастую можно и без САПР обойтись. Я, если что, про NET ;)
42
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от izhgtumekhanik 13-08-2025, 10:06:12 »
Вспомнил свои "болячки" - дебажил плагины .Net под другой САПР который тяжело запускается, особенно под мой слабенький компуктер тогда - я не как не мог выгрузить плагин из памяти и приходилось перезапускать программу и килить процессы связанные с ним так они тоже не дают заменить библиотеки плагина. В общем бросил эту садомазу. Написал обертку под python - и просто прям на месте редактирую скрипты и все работает уже как 4 версий подряд - дебажу скрипты прям на лету. Связка с++ и python.
Помню как еще пытался защитить программу .Net от взлома - так малого того что инструменты для этого стоят больших денег например Themida так еще и как вирус распознается программа..
43
AutoCAD .NET API / Re: Импорт step файла в Autocad (Python)
« Последний ответ от izhgtumekhanik 12-08-2025, 13:43:56 »
Наверно кто то заметил что получил объект doc, но работа идет через AcadObject.ActiveDocument..

Объект doc во время активного перестраивания недоступен и вылетает ошибка:

Код - Python [Выбрать]
  1. Reloaded modules: win32com.gen_py.4E3F492A-FB57-4439-9BF0-1567ED84A3A9x0x1x0
  2. Traceback (most recent call last):
  3.  
  4.   File C:\Python3.13.5x64\Lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec
  5.     exec(code, globals, locals)
  6.  
  7.   File c:\cad\безымянный1.py:31
  8.     doc.SetVariable("FILEDIA", 0)  # отключаем диалог выбора файла
  9.  
  10.   File ~\AppData\Local\Temp\gen_py\3.13\4E3F492A-FB57-4439-9BF0-1567ED84A3A9x0x1x0.py:7038 in SetVariable
  11.     return self._oleobj_.InvokeTypes(52, LCID, 1, (24, 0), ((8, 1), (12, 1)),Name
  12.  
  13. com_error: (-2147418111, 'Вызов был отклонен.', None, None)
  14.  

НО! После вызова

Код - Python [Выбрать]
  1. AcadObject.ActiveDocument.SendCommand(f'._IMPORT\r"{step_file}"\r')

объект doc доступен после ожидания 0.1 сек и доступен до момента завершения импорта!

значит потеря доступа к doc - признак завершения импорта!

Код - Python [Выбрать]
  1. from win32com.client import Dispatch, gencache
  2. # import pythoncom
  3. import time
  4.  
  5. AcadAPI = gencache.EnsureModule('{4E3F492A-FB57-4439-9BF0-1567ED84A3A9}', 0, 1, 0)
  6. AcadObject = Dispatch('AutoCAD.Application.20.1', None, AcadAPI.IAcadApplication.CLSID)
  7. # AcadObject = DispatchWithEvents('AutoCAD.Application.20.1', AcadAPI.IAcadApplication)
  8.  
  9. AcadObject.Visible = True
  10.  
  11. # Открываем ГОСТ-шаблон
  12. template_path = r"C:\Users\ZeroHour\AppData\Local\Autodesk\AutoCAD Mechanical 2016\R20.1\rus\Acadm\Template\am_gost.dwt"
  13. doc = AcadObject.Documents.Add(template_path)
  14.  
  15. # AcadObject.ActiveDocument.SetVariable("FILEDIA", 0)  # отключаем диалог выбора файла
  16.  
  17. time.sleep(0.1)
  18. doc.SetVariable("FILEDIA", 0)
  19.  
  20. # Импортируем STEP
  21. step_file = r"C:\cadеталь.stp"
  22. # Импортируем STEP
  23. # AcadObject.ActiveDocument.SendCommand(f'._IMPORT\r"{step_file}"\r')
  24.  
  25. time.sleep(0.1)
  26. doc.SendCommand(f'._IMPORT\r"{step_file}"\r')
  27.  
  28. flag = True
  29.  
  30. # for i in range(20):
  31. #     # pythoncom.PumpWaitingMessages()
  32.    
  33. #     print(doc.ModelSpace.Count)
  34. #     time.sleep(0.2)
  35.  
  36. while flag:
  37.     try:
  38.         tmp = doc.ModelSpace.Count
  39.         time.sleep(0.2)
  40.     except:
  41.         flag = False
  42.         time.sleep(1)
  43.  
  44. print('модель импортирована')
  45.  
  46. # Открываем готовый результат (аналог клика по уведомлению)
  47. AcadObject.ActiveDocument.SendCommand("IMPORTTRANSLATIONRESULT\r")
  48.  
  49. # Перестраиваем вид
  50. AcadObject.ActiveDocument.SendCommand("._REGEN\r")
  51.  
  52. AcadObject.ActiveDocument.SetVariable("FILEDIA", 1)  # возвращаем диалог выбора файла
  53.  
44
Добрый вечер, а можно перезагрузить книгу а ту ссылка уже видимо давно как битая. Спасибо!
Судя по оглавлению - слабенькая книга..
Есть ли тотальный мануал по api всех этих САПРов ? Нужно именно в pdf/djv/png и с примерами.

Вы наверно спросите - чем штатные файлы хелпа не подойдут которые например для Autocad лежат:
"C:\Program Files\Common Files\Autodesk Shared\en-US\acadauto.chm"
"C:\Program Files\Common Files\Autodesk Shared\ru-RU\acadauto.chm"
"C:\Program Files\Common Files\Autodesk Shared\en-US\acad_aag.chm"
"C:\Program Files\Common Files\Autodesk Shared\ru-RU\acad_aag.chm"

там есть все но скудно с примерами -> написал обработчик chm и скидываю роботу,
так же скидываю ему все что "cпылесосил" примеры с гитхаб/форумы и все скармливаю роботу..

Я не могу понять с чего он после всей этой инфы предлагает мне НЕсуществующие объекты.. он как в песне - "фантазер ты меня называла".
Робот не большой там все базы минимальные и проблем с обучением при имеющимся железе - нет.
Но заметил что он хорошо воспринимает pdf/png/djv и хорошо оперирует данными оттуда но там не все так просто в плане формирования этих pdf/png/djv - там должны быть ссылки а не просто набор информации.



45
AutoCAD .NET API / Re: Импорт step файла в Autocad (Python)
« Последний ответ от izhgtumekhanik 11-08-2025, 17:31:16 »
Так как отловить событие конца импорта ?
46
AutoCAD .NET API / Re: Импорт step файла в Autocad (Python)
« Последний ответ от izhgtumekhanik 11-08-2025, 16:14:33 »
Вот вторя часть - рабочий.

Код - Python [Выбрать]
  1. time.sleep(4)
  2.  
  3. # Открываем готовый результат (аналог клика по уведомлению)
  4. AcadObject.ActiveDocument.SendCommand("IMPORTTRANSLATIONRESULT\r")
  5.  
  6. # Перестраиваем вид
  7. AcadObject.ActiveDocument.SendCommand("._REGEN\r")
  8.  

Остается каким то образом отловить событие окончания импорта.

47
AutoCAD .NET API / Re: Импорт step файла в Autocad (Python)
« Последний ответ от izhgtumekhanik 11-08-2025, 15:56:01 »
Через события средствами api Autocad не могу подойти.
48
AutoCAD .NET API / Импорт step файла в Autocad (Python)
« Последний ответ от izhgtumekhanik 11-08-2025, 15:23:36 »
Добрый день!
Как импортировать Step файл в Autocad Mechanical 2016 x64 ?

Вот часть кода - рабочий:

Код - Python [Выбрать]
  1. from win32com.client import Dispatch, gencache
  2.  
  3. AcadAPI = gencache.EnsureModule('{4E3F492A-FB57-4439-9BF0-1567ED84A3A9}', 0, 1, 0)
  4. AcadObject = Dispatch('AutoCAD.Application.20.1', None, AcadAPI.IAcadApplication.CLSID)
  5. AcadObject.Visible = True
  6.  
  7. # Открываем ГОСТ-шаблон
  8. template_path = r"C:\Users\ZeroHour\AppData\Local\Autodesk\AutoCAD Mechanical 2016\R20.1\rus\Acadm\Template\am_gost.dwt"
  9. doc = AcadObject.Documents.Add(template_path)
  10.  
  11. # Импортируем STEP
  12. AcadObject.ActiveDocument.SetVariable("FILEDIA", 0)  # отключаем диалог выбора файла
  13. AcadObject.ActiveDocument.SendCommand(f'._IMPORT\r"{r"C:\cadеталь.stp"}"\r')
  14.  

А дальше я так понимаю Autocad тратит время на обработку этого файла и выходит всплывающее окошко о готовности с гиперссылкой по которому надо кликнуть и модель открывается. Фото окошка прикладываю.


49
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от Привалов Дмитрий 29-07-2025, 14:27:11 »
AutoCAD 2013-2024 - Net Framework 4.8

Вроде так должно быть:
2005   1.1
2006   1.1 SP1
2007   2.0
2008   2.0
2009   3.0
2010   3.51 SP1
2011   3.51 SP1
2012   3.51 SP1
2013   4.0
2014   4.0
2015   4.5
2016   4.5
2017   4.6
2018   4.6
2019   4.7
2020   4.7
2021   4.8
2022   4.8
2023   4.8
2024   4.8
50
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от avc 28-07-2025, 18:10:19 »
Net6.0 и выше только с автокада 2025?
AutoCAD 2013-2024 - Net Framework 4.8
AutoCAD 2025-2026 - Net 8.0

где-то лежала табличка с минимально допустимыми версиями net...
Страницы: 1 ... 3 4 [5] 6 7 ... 10