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

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

Страницы: [1] 2 3 ... 10
1
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Александр Ривилис 25-06-2018, 01:54:25 »
Я приложил файлы к уроку на AU 2009 про использование IronPython с AutoCAD. Могут быть полезны.
2
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Archigeo 25-06-2018, 01:43:32 »
Спасибо! Буду изучать. :)
3
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Александр Ривилис 25-06-2018, 01:37:35 »
Есть референс по классам, доступным изнутри?
Это всё в документации ObjectARX SDK, а в онлайне здесь: https://help.autodesk.com/view/OARX/2019/ENU/?guid=OREFNET-What_s_New
4
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Александр Ривилис 25-06-2018, 01:11:52 »
А изнутри, это надо скомилировать код и netload делать?
Нет. Компилировать ничего не нужно. Точнее создаётся C#-сборка, которая позволяет загрузить и выполнить python'овский-код.
Посмотри эти две темы:
http://through-the-interface.typepad.com/through_the_interface/2009/03/using-ironpython-with-autocad.html
http://through-the-interface.typepad.com/through_the_interface/2009/12/command-line-scripting-of-ironpython-code-in-autocad.html
5
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Archigeo 25-06-2018, 01:07:37 »
Да, я подключаюсь снаружи.

А изнутри, это надо скомилировать код и netload делать?
Есть референс по классам, доступным изнутри?

Еще может быть кто-то питоновую консоль сделал, которая изнутри подключается?
6
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Александр Ривилис 25-06-2018, 00:21:36 »
Я подключаюсь к Autocad следующим образом.
Подключаешься изнутри AutoCAD или снаружи? Если снаружи, то предложенный мной способ недоступен.
7
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Archigeo 25-06-2018, 00:20:12 »
Я подключаюсь к Autocad следующим образом.
Код - Python [Выбрать]
  1. app = System.Runtime.InteropServices.Marshal.GetActiveObject("Autocad.Application")

Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.GetEntity() у меня не видно. Речь идет о другом способе взаимодействия с AutoCAD?
8
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Александр Ривилис 24-06-2018, 20:59:02 »
Пытаюсь успользовать метод AutoCAD.Application.ActiveDocument.Utility.GetEntity().
Ни как не могу пользоваться им в IronPython.
Обязательно с ним? А почему не подходит Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.GetEntity() ?
9
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Archigeo 24-06-2018, 19:46:56 »
Здравствуйте, коллеги!
Я только начинаю осваивать программирование на Python для AutoCAD.
Помогите, пожалуйста, со следующим вопросом.
Пытаюсь успользовать метод AutoCAD.Application.ActiveDocument.Utility.GetEntity().
Ни как не могу пользоваться им в IronPython.
Получилось только при использовании чистого питона с pywin32.
Правда, если пользователь ничего не выбирает, то всеравно получается ошибка.

Код - Python [Выбрать]
  1. >>> import win32com.client
  2. >>> app = win32com.client.Dispatch("AutoCAD.Application")
  3. >>> a = app.ActiveDocument.Utility.GetEntity(None, None, "Select object.")
  4.  
  5. Traceback (most recent call last):
  6.   File "<pyshell#4>", line 1, in <module>
  7.     a = app.ActiveDocument.Utility.GetEntity(None, None, "Select object.")
  8.   File "<COMObject <unknown>>", line 3, in GetEntity
  9.   File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 287, in _ApplyTypes_
  10.     result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
  11. com_error: (-2147352567, '\xce\xf8\xe8\xe1\xea\xe0.', (0, None, None, None, 0, -2147352567), None)

Хотелось бы программировать на IronPython, поскольку им я пользуюсь для Revit.

В документации сказано, что GetEntity принимает три параметра: объект (как я понимаю, класса AcadObject, массив и строку.)

Как сформировать объект для передачи в метод???
При попытке создать объект "руками" появляется сообщение, что это не возможно т.к. класс AcadObject абстрактный класс. Что это такое я пока не понимаю. Может быть есть метод, который формирует такой объект?

Заранее благодарю за ответы,
Георгий
10
Можешь еще поиграться с MGDDBG - он подскажет какие еще события возникают при попытке завершения AutoCAD:
QUIT
[Doc Mgr Event] : Document Lock Mode Will Change : Drawing2.dwg
    Global Command Name  : QUIT
    Current Mode         : NotLocked
    My Current Mode      : NotLocked
    My New Mode          : Write
[Doc Mgr Event] : Document Lock Mode Changed : Drawing2.dwg
    Global Command Name  : QUIT
    Current Mode         : Write
    My Current Mode      : NotLocked
    My Previous Mode     : Write
[Doc Event] : Command will Start        : QUIT
[Doc Mgr Event] : Document Activation Changed : False
[Doc Mgr Event] : Document Activation Changed : True
[Doc Event] : Command Ended             : QUIT
[Doc Mgr Event] : Document Lock Mode Will Change : Drawing2.dwg
    Global Command Name  : #QUIT
    Current Mode         : Write
    My Current Mode      : Write
    My New Mode          : NotLocked
[Doc Mgr Event] : Document Lock Mode Changed : Drawing2.dwg
    Global Command Name  : #QUIT
    Current Mode         : NotLocked
    My Current Mode      : Write
    My Previous Mode     : NotLocked
Страницы: [1] 2 3 ... 10