Создаем блок из набора примитивов

Автор Тема: Создаем блок из набора примитивов  (Прочитано 12031 раз)

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

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13871
  • Карма: 1785
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн D_TRex

  • ADN OPEN
  • ***
  • Сообщений: 104
  • Карма: 0
Re: Создаем блок из набора примитивов
« Ответ #1 : 27-12-2022, 06:09:15 »
Здравствуйте отличный код для создания блоков и работает быстро. Подскажите пожалуйста а я выбранные (при создании блока) примитивы как то могу перебрать. Это надо потому что базовая точка при создании блока это 0,0 но это не всегда близко к примитивам, поэтому хотелось бы переместить их допустим к началу координат и уже после отправить в блок.

Оффлайн Александр РивилисАвтор темы

  • Administrator
  • *****
  • Сообщений: 13871
  • Карма: 1785
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создаем блок из набора примитивов
« Ответ #2 : 06-01-2023, 22:37:36 »
Подскажите пожалуйста а я выбранные (при создании блока) примитивы как то могу перебрать.
Что такое "перебрать"? Ты можешь пройтись по всем примитивам после DeepCloneObjects в mapping и перенести их туда, куда тебе нужно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн D_TRex

  • ADN OPEN
  • ***
  • Сообщений: 104
  • Карма: 0
Re: Создаем блок из набора примитивов
« Ответ #3 : 08-01-2023, 12:32:33 »
Перебрать это значит... Сейчас опишу что делал, есть определённый алгоритм построения схемы, то есть выбираем элементы, поворачиваем на определённый угол, потом все эти элементы добавляем в блок и уже блок масштабируем и крутим дальше. Я работал средствами VBA то есть выбирал, разворачивал и вот тут проблема, в блок надо было добавлять каждый класс отдельно, с отрезками проблем нет, а вот с полилинией беда, а могут быть и мультивыноски и ещё сложнее, Ваш код отлично собирает блок, но вот я не смог повернуть примитивы до создания блока, а так же их бы перенести предварительно, потому что не факт что объекты близки к нулевой координате чертежа, позже попробую то что Вы предложили, спасибо.

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 620
  • Карма: 158
    • ПГСу Бложик
Re: Создаем блок из набора примитивов
« Ответ #4 : 23-01-2023, 19:08:58 »
Off-Topic: показать
но вот я не смог повернуть примитивы до создания блока, а так же их бы перенести предварительно, потому что не факт что объекты близки к нулевой координате чертежа
У класса Entity и его наследников, есть метод TransformBy(), с помощью этого метода можно и повернуть и перенести и от масштабировать.
Как пример:
Код - C# [Выбрать]
  1. ent.TransformBy(Matrix3d.Scaling(5, center)); // увеличил в 5 раз относительно точки center
  2. ent.TransformBy(Matrix3d.Displacement(center.GetVectorTo(Point3d.Origin))); //переместил объект


PS
Наверное все таки вопросы не по статье, стоит обсуждать в профильном разделе форума

Оффлайн D_TRex

  • ADN OPEN
  • ***
  • Сообщений: 104
  • Карма: 0
Re: Создаем блок из набора примитивов
« Ответ #5 : 17-05-2023, 09:26:00 »
Владимир Шу,  спасибо, давно не заходил.