Сообщество программистов Autodesk в СНГ

Статьи => Опубликованные статьи => Тема начата: Александр Ривилис от 27-12-2013, 16:30:03

Название: Создаем блок из набора примитивов
Отправлено: Александр Ривилис от 27-12-2013, 16:30:03
Создаем блок из набора примитивов
Название: Re: Создаем блок из набора примитивов
Отправлено: D_TRex от 27-12-2022, 06:09:15
Здравствуйте отличный код для создания блоков и работает быстро. Подскажите пожалуйста а я выбранные (при создании блока) примитивы как то могу перебрать. Это надо потому что базовая точка при создании блока это 0,0 но это не всегда близко к примитивам, поэтому хотелось бы переместить их допустим к началу координат и уже после отправить в блок.
Название: Re: Создаем блок из набора примитивов
Отправлено: Александр Ривилис от 06-01-2023, 22:37:36
Подскажите пожалуйста а я выбранные (при создании блока) примитивы как то могу перебрать.
Что такое "перебрать"? Ты можешь пройтись по всем примитивам после DeepCloneObjects в mapping и перенести их туда, куда тебе нужно.
Название: Re: Создаем блок из набора примитивов
Отправлено: D_TRex от 08-01-2023, 12:32:33
Перебрать это значит... Сейчас опишу что делал, есть определённый алгоритм построения схемы, то есть выбираем элементы, поворачиваем на определённый угол, потом все эти элементы добавляем в блок и уже блок масштабируем и крутим дальше. Я работал средствами VBA то есть выбирал, разворачивал и вот тут проблема, в блок надо было добавлять каждый класс отдельно, с отрезками проблем нет, а вот с полилинией беда, а могут быть и мультивыноски и ещё сложнее, Ваш код отлично собирает блок, но вот я не смог повернуть примитивы до создания блока, а так же их бы перенести предварительно, потому что не факт что объекты близки к нулевой координате чертежа, позже попробую то что Вы предложили, спасибо.
Название: Re: Создаем блок из набора примитивов
Отправлено: Владимир Шу от 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
Наверное все таки вопросы не по статье, стоит обсуждать в профильном разделе форума
Название: Re: Создаем блок из набора примитивов
Отправлено: D_TRex от 17-05-2023, 09:26:00
Владимир Шу,  спасибо, давно не заходил.