Программный обмен блоками между чертежами (VBA)
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программный обмен блоками между чертежами (VBA)

Программный обмен блоками между чертежами (VBA)

Ответ
Поиск в этой теме
Непрочитано 27.01.2007, 22:51 #1
Программный обмен блоками между чертежами (VBA)
den001
 
Инженер по автоматизации (строительство)
 
Люберцы
Регистрация: 05.05.2006
Сообщений: 241

Многоуважаемые господа VBA-шники, не заморачивался ли кто из вас такой проблемой, как программная вставка в чертеж блока из другого чертежа?
Я пока остановился на создании массива из всех объектов блока в исходном чертеже, и отрисовке их в пространстве оного блока в новом чертеже через различные Add'ы. Решение довольно громоздкое, и для каждого типа объекта нужен свой метод.
Никого не осеняло более изящное решение, в частности, через DesignCenter? Мне он пока что не покорился, никак не могу отвязаться от диалогового окна вставки блока...
Просмотров: 4098
 
Непрочитано 28.01.2007, 01:10
#2
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


В VBA я не специалист - делал бы это на ObjectARX, но раз нужно на VBA, то смотри здесь:
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=28128OA
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=20470WO
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 28.01.2007, 02:07
#3
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


Александр Ривилис
Вот спасибо так спасибо! Решение оказалось в 2 строчки!
Код:
[Выделить все]
    Dim obj(0) As Object
    Set obj(0) = Documents.Item("Drawing.dwg").Blocks("BlockName")
    Documents.Item("Drawing.dwg").CopyObjects obj, ThisDrawing.Blocks
Даа, век живи, век учись (и все равно дураком помрешь)
den001 вне форума  
 
Непрочитано 28.01.2007, 10:33 Re: Программный обмен блоками между чертежами (VBA)
#4
T-Yoke

Артиллерист - вертолётчик. Дипломированный инженер-механик. Technologist
 
Регистрация: 29.11.2004
Где-то около Москвы
Сообщений: 16,754
Отправить сообщение для T-Yoke с помощью Skype™


Цитата:
Сообщение от den001
Многоуважаемые господа VBA-шники, не заморачивался ли кто из вас такой проблемой, как программная вставка в чертеж блока из другого чертежа?
Я пока остановился на создании массива из всех объектов блока в исходном чертеже, и отрисовке их в пространстве оного блока в новом чертеже через различные Add'ы. Решение довольно громоздкое, и для каждого типа объекта нужен свой метод.
Никого не осеняло более изящное решение, в частности, через DesignCenter? Мне он пока что не покорился, никак не могу отвязаться от диалогового окна вставки блока...
Я правда не VBA-шник, но в последний месяц озаботился аналогичной проблемой.
У меня задача сопутствующая вставке блока через DesignCenter, я до этого вставлял просто через "вставку блока", но это, пока сам себе делал базу блоков, и хорошо знал, где что лежит. А теперь, боссу это понравилось, и он решил это узаконить и расширить эту базу.
Теперь собственно вопрос:
Вместе с блоком должны вставляться несколько атрибутов, значение которых может в принципе изменяться после вставки. Но если значения этих атрибуты не заносить в поле "Значение по умолчанию" то информация теряется при переносе блока.
Как быть, если поле "Значение по умолчанию" не хотелось бы использовать? Можно как то иначе сохранить информацию вместе с блоком (типа атрибутов), которая в дальнейшем используется при создании спецификаций? Или никак?
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I
T-Yoke вне форума  
 
Автор темы   Непрочитано 28.01.2007, 13:55
#5
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


T-Yoke
Не совсем понял проблему. Нужно сохранить установленные значения атрибутов для каждого вхождения?
den001 вне форума  
 
Непрочитано 28.01.2007, 20:27
#6
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Сделать блок из этого блока а потом вставить с расчленением.
Sleekka вне форума  
 
Автор темы   Непрочитано 30.01.2007, 00:46
#7
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


Вот такая родилась вещь в результате.
http://dwg.ru/dnl/2041
__________________
Number
TextDuplicate
FieldToText
den001 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программный обмен блоками между чертежами (VBA)