Python & ActiveX/COM Autocad

Автор Тема: Python & ActiveX/COM Autocad  (Прочитано 92669 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн loban_iv

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
Re: Python & ActiveX/COM Autocad
« Ответ #390 : 19-02-2021, 13:15:28 »
Loft решил добавлением временных групп. Наверно несколько топорно
Может можно было через SelectSet?и смущают кириллические буквы в тексте вызываемой команды
Нет какой нибудь установки чтоб Autocad понимал латинские буквы для дополнения команд?
Код - Python [Выбрать]
  1. app = win32com.client.Dispatch("AutoCAD.Application")
  2. doc = app.ActiveDocument
  3. model = doc.ModelSpace
  4.  
  5. cds = convert_coordinates([0, 0, 0])
  6. c = model.AddCircle(cds, 500)
  7. cds = convert_coordinates([0, 0, 300])
  8. c1 = model.AddCircle(cds, 250)
  9.  
  10. g = doc.Groups.Add("1")
  11. g1 = doc.Groups.Add("2")
  12.  
  13. g.AppendItems(win32com.client.VARIANT(VT_ARRAY | VT_DISPATCH, [c]))
  14. g1.AppendItems(win32com.client.VARIANT(VT_ARRAY | VT_DISPATCH, [c1]))
  15.  
  16. doc.SendCommand("_LOFT Г " + g.Name + "\n" + "Г " + g1.Name + "\n" + "Ж" + "\n" + "Т" + "\n\n\n")
  17.  
  18. g.Delete()
  19. g1.Delete()

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 12560
  • Карма: 1632
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Python & ActiveX/COM Autocad
« Ответ #391 : 19-02-2021, 16:11:12 »
Нет какой нибудь установки чтоб Autocad понимал латинские буквы для дополнения команд?

Это не дополнительные команды, а опции команд. И можно (так же, как и для команд) использовать их глобальные имена - английские с подчеркиванием спереди.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 12560
  • Карма: 1632
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Python & ActiveX/COM Autocad
« Ответ #392 : 19-02-2021, 16:12:27 »
Вроде бы я не прав и все объекты продолжают строится относительно глобальной системы координат. Это так?
Да.
Если нет, мое решение - трансформировать все объекты матрицей 4х4?
Да.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн loban_iv

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
Re: Python & ActiveX/COM Autocad
« Ответ #393 : 19-02-2021, 21:05:41 »
Александр, а нет мыслей по поводу как передать матрицу4х4 в TransformBy?
4х компонентный массив 4х компонентных массивов

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 12560
  • Карма: 1632
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Python & ActiveX/COM Autocad
« Ответ #394 : 19-02-2021, 21:20:12 »
loban_iv,
Как в Python - понятия не имею. На VBA есть пример в документации. Вообще же эта матрица должна быть VARIANT.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 12560
  • Карма: 1632
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Python & ActiveX/COM Autocad
« Ответ #395 : 19-02-2021, 21:33:58 »
Подозреваю, что через Utility.CreateTypedArray(matrix, vbDouble, [16 плавающих чисел, образующих матрицу 4x4])
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение