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

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

Страницы: 1 [2] 3 4 ... 10
11
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от Алексей Кулик 13-08-2025, 12:50:15 »
азделять ответственность - эти слова да обществу в уши!
SOLID, KISS, DRY, "Банда четырех"... Все уже придумано до нас ))
12
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от izhgtumekhanik 13-08-2025, 11:52:13 »
нет конечно. если работает горячая перезагрузка, то можно переименовывать все
не помню что так можно было или не знал.. загуглил и увидел дату - 2021 год тогда я точно не знаю про это.

И у нас тут форум "AutoCAD .NET API", а не про python.
Только для сравнения. Следить за трендами в языках дабы облегчить необлегченное.
13
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от avc 13-08-2025, 11:44:37 »
но там нужно строго сохранять иерархию имен функций/методов и результаты
нет конечно. если работает горячая перезагрузка, то можно переименовывать все, кроме имен самих Автокадовских команд. Все было прекрасно... пока я что-то не сломал...
И у нас тут форум "AutoCAD .NET API", а не про python.
14
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от izhgtumekhanik 13-08-2025, 11:33:29 »
Горячая перезагрузка кода у меня работала на всех версиях .Net вплоть до самой свежей.

Аа что то припоминаю.. AppDomain - но там нужно строго сохранять иерархию имен функций/методов и результаты - очень напрягало это ограничение..
А в python - reload.module() - абсолютная свобода -> сменил имя функции и тут же из приложения ее можно вызвать и получить любой тип результата..

Использую встроенный в студию Dotfuscator для переименования классов. Реальной защиты кода не существует - все можно декомпилировать и полечить, не важно на C++ это было написано или на C#. Защищает только низкая цена программы.
На торрентах лежат программы чьи стоимости пожизненной лицензии - 300 руб. :))

В Python есть пару тройку компонентов что знаю - получше защищают приложение ну по крайней мере не разбирают за 5- 40 сек на марафонах по патчингу.

15
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от avc 13-08-2025, 11:17:35 »
я не как не мог выгрузить плагин из памяти и приходилось перезапускать программу и килить процессы связанные с ним так они тоже не дают заменить библиотеки плагина.
Горячая перезагрузка кода у меня работала на всех версиях .Net вплоть до самой свежей. Я уже привык кодить в процессе отладки - очень расслабляет. Но вот поменял систему, винду на 11, VS обновил и кирдык. Больше не работает горячая перезагрузка ни в одной версии Net. Копилот утверждает , что майкрософт нарочно отключает горячую перезагрузку в старых версиях .Net Framework. Но под Автокад 2026 и .Net6 тоже самое - одну букву в коде поменял - выскакивает окошко, что надо останавливать отладку и все перекомпилировать. Бесит ужасно. Что делать не знаю...

Помню как еще пытался защитить программу .Net от взлома - так малого того что инструменты для этого стоят больших денег например Themida так еще и как вирус распознается программа..
Использую встроенный в студию Dotfuscator для переименования классов. Реальной защиты кода не существует - все можно декомпилировать и полечить, не важно на C++ это было написано или на C#. Защищает только низкая цена программы.
И да - любую новую версию любой программы антивирусы могут банить. Не думаю что это как-то связано с .Net или обфускацией. Чтоб не писать False Positive во все антивирусы на каждую версию плагинов, я выделил все функции обновления программ, убийства процессов, скачки с интернета и т.п., что антивирусы не любят - выделил в отдельный Exe и обновляю его как можно реже. И, если все-таки обновляю, то сразу проверяю в VirusTotal и пишу во все антивирусы.
16
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от izhgtumekhanik 13-08-2025, 11:12:05 »
то зачастую можно и без САПР обойтись
Если речь о внешнем приложении - то скорее всего да тк много чего вышло с тех пор.. но это все время которое не воротишь..

Разделять ответственность - эти слова да обществу в уши! в обществе нет таких исторических сложившийся "технологий" разве что остается диверсифицировать.

Молчу что ИИ "дышит в затылок" и все это за бесплатно.. зп падают и все бегут быть разносчиками пиццы, зачем им идти инженеришками за грошики разрабатывать сложные технологии? менталитет?
17
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от Алексей Кулик 13-08-2025, 10:33:40 »
Вспомнил свои "болячки" - дебажил плагины .Net под другой САПР который тяжело запускается<...>
ИМХО если разделять ответственность, то зачастую можно и без САПР обойтись. Я, если что, про NET ;)
18
AutoCAD .NET API / Re: AutoCAD 2025 - переползаю на Net8
« Последний ответ от izhgtumekhanik 13-08-2025, 10:06:12 »
Вспомнил свои "болячки" - дебажил плагины .Net под другой САПР который тяжело запускается, особенно под мой слабенький компуктер тогда - я не как не мог выгрузить плагин из памяти и приходилось перезапускать программу и килить процессы связанные с ним так они тоже не дают заменить библиотеки плагина. В общем бросил эту садомазу. Написал обертку под python - и просто прям на месте редактирую скрипты и все работает уже как 4 версий подряд - дебажу скрипты прям на лету. Связка с++ и python.
Помню как еще пытался защитить программу .Net от взлома - так малого того что инструменты для этого стоят больших денег например Themida так еще и как вирус распознается программа..
19
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.  
20
Добрый вечер, а можно перезагрузить книгу а ту ссылка уже видимо давно как битая. Спасибо!
Судя по оглавлению - слабенькая книга..
Есть ли тотальный мануал по 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 - там должны быть ссылки а не просто набор информации.



Страницы: 1 [2] 3 4 ... 10