Создание блока в другом чертеже

Автор Тема: Создание блока в другом чертеже  (Прочитано 4102 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн valtur1983Автор темы

  • ADN OPEN
  • Сообщений: 46
  • Карма: 2
Всем доброго вечера!

Макрос запускается в одном чертеже. Необходимо вставить в этот чертеж все элементы из другого чертежа. Порыскав на просторах инета понял, что проще всего вставлять один элемент (блок состоящий из всех элементов другого чертежа), а потом его взорвать. Вопрос в том, как можно создать определение блока, в который будут входить все примитивы другого чертежа), не открывая его вручную.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание блока в другом чертеже
« Ответ #1 : 12-11-2021, 18:20:22 »
Порыскав на просторах инета понял, что проще всего вставлять один элемент (блок состоящий из всех элементов другого чертежа), а потом его взорвать.
Нет. Проще и правильнее всего использовать Database.WblockCloneObjects
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание блока в другом чертеже
« Ответ #2 : 12-11-2021, 18:21:24 »
Вопрос в том, как можно создать определение блока, в который будут входить все примитивы другого чертежа), не открывая его вручную.
Он уже создан - это блок ModelSpace
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн valtur1983Автор темы

  • ADN OPEN
  • Сообщений: 46
  • Карма: 2
Re: Создание блока в другом чертеже
« Ответ #3 : 12-11-2021, 18:32:05 »
Что то не пойму.

Я инженер по автокаду, с прошлым программным знанием, но по элементам автокада чуть больше чем ноль. и для меня блок это определение блока и вставка блока.

ModelSpace, как я понял, это пространство модели со всеми примитивами.

Мне надо вставить все примитивы в определенную точку.

Не сочтите за наглость, но можно ли ссылку или часть кода как реализовать это в моем макросе

Оффлайн valtur1983Автор темы

  • ADN OPEN
  • Сообщений: 46
  • Карма: 2
Re: Создание блока в другом чертеже
« Ответ #4 : 12-11-2021, 18:34:35 »
WblockCloneObjects я как раз таки и использую, но для этот надо сформировать определение блока из всех примитивов чертежа донора

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание блока в другом чертеже
« Ответ #5 : 12-11-2021, 19:02:28 »
ModelSpace, как я понял, это пространство модели со всеми примитивами.
И она же является определением блока (класс BlockTableRecord)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение valtur1983 13-11-2021, 08:18:25

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание блока в другом чертеже
« Ответ #6 : 12-11-2021, 19:55:09 »
WblockCloneObjects я как раз таки и использую, но для этот надо сформировать определение блока из всех примитивов чертежа донора
Зачем? Достаточно в коллекцию (ObjectIdCollection) добавить все примитивы из ModelSpace и выполнить  WblockCloneObjects с указанием нового владельца ModelSpace второго чертежа.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн valtur1983Автор темы

  • ADN OPEN
  • Сообщений: 46
  • Карма: 2
Re: Создание блока в другом чертеже
« Ответ #7 : 13-11-2021, 06:02:05 »
Спасибо Александр, все получилось!

Меня, как инженера, все время сбивает с толку слово Block в процедурах и свойствах. Я интерпретирую его в понятие блока автокада. Так и с методом WblockCloneObjects. Думал он клонирует именно блок.

Следующий вопрос. Можно ли задать стартовую точку (смещение по X, Y) вставляемых элементов?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание блока в другом чертеже
« Ответ #8 : 13-11-2021, 06:41:46 »
Следующий вопрос. Можно ли задать стартовую точку (смещение по X, Y) вставляемых элементов?
Один вопрос - одна тема.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение