Можно ли программно создать динамический блок?

Автор Тема: Можно ли программно создать динамический блок?  (Прочитано 5673 раз)

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

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

  • ADN OPEN
  • Сообщений: 41
  • Карма: 0
Написал небольшое приложение с базой данных. В общем выбираю из БД оборудование, нажимаю кнопку и оно вставляется в чертёж. Но второе оборудование уже не вставить, так как имена их блоков совпадают.
Вижу два варианта либо менять имена блоков (но мне не особо хочется, так как я планирую потом автоматический формировать таблицу с оборудованием, а возможно и интерактивно при вставке/удалении блока, это будет удобно делать если все блоки будут иметь одинаковые имена, а уже остальные данные будут храниться в атрибутах)

Либо динамический блок, но я не нашёл как создать его программно. И если его нельзя создать программно, то можно ли его нарисовать один раз при разработке и "засунуть" в плагин как ресурс. Как это сделать? Мне всего то надо размеры в плане менять и три типа линий что бы поддерживал (сущ., проект., демонтаж).

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Но второе оборудование уже не вставить, так как имена их блоков совпадают.
Вот тут поподробнее, пожалуйста. Вставить два одинаковых блока в чертёж никогда не было проблемой, особенно, если первый уже есть в чертеже. В чём именно у вас проблема?
Либо динамический блок, но я не нашёл как создать его программно.
Это сделать не получится.
И если его нельзя создать программно, то можно ли его нарисовать один раз при разработке и "засунуть" в плагин как ресурс. Как это сделать?
Можно файл DWG с блоками добавить как ресурс. В приложении надо будет написать обработку этого ресурса: извлечение файла, помещение его во временную/постоянную папку, последующее удаление (при необходимости). А потом уже работать с ним программно как с любым другим файлом DWG. В частности, открывать базу данных и копировать из неё блоки в текущий чертёж.

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

  • ADN OPEN
  • Сообщений: 41
  • Карма: 0
В том то  и дело что не одинаковых. Одинаковое только имя блока, а размеры, наименование и обозначение оборудования другие.
Извините, вам запрещён просмотр содержимого спойлеров.

Цитировать
Можно файл DWG с блоками добавить как ресурс. В приложении надо будет написать обработку этого ресурса: извлечение файла, помещение его во временную/постоянную папку, последующее удаление (при необходимости). А потом уже работать с ним программно как с любым другим файлом DWG. В частности, открывать базу данных и копировать из неё блоки в текущий чертёж.

Я так и думал спасибо!

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Одинаковое только имя блока, а размеры, наименование и обозначение оборудования другие.
"Одинаковое только имя блока"
Можно делать не динамические блоки с разными именами, а для имени оборудования использовать атрибут с именем типа "наименованиеОборудования"

"обозначение оборудования другие"
Либо делать динамические блоки во внешнем файле, с помощью редактора, с ручкой переключения вида. Вставлять и переключать вид программно.

Делать динамические блоки чисто программно не самый лучший способ, много времени съест.


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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Делать динамические блоки чисто программно не самый лучший способ, много времени съест.
Делать динамические блоки официальными документированными способами нельзя в принципе. Нет публичного API для создания динамических блоков.
Одинаковое только имя блока, а размеры, наименование и обозначение оборудования другие.
Это не очень хороший метод заталкивать в блок с одним именем по сути совершенно разные вещи.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение