Реклама i
|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 06.07.2006
Москва
Сообщений: 42
|
В общем, когда-то мне уважаемый kpblc помог с доступом к комментарию блока. Технически оказалось проще решить все через AcadBlockReference. А чем это грозит, я тогда не понял... Теперь, чтобы данные держались при вставке блока в другой чертеж (дизайн центром или дропом из файла) мне нужно переделать эту процедуру в соответствии с замечанием VetalBY:
Цитата:
Код:
|
|||
![]() |
|
||||
Регистрация: 16.05.2005
г. Минск
Сообщений: 276
|
![]() Мне показалось, что ты не совсем понимаешь, что такое описание блока (BlockDefinition) и его вставка (BlockReference или INSERT). Описание блока оно одно в файле, но ссылок на этот блок может быть несколько в этом же файле. К BlockReference по-моему нет возможности прикрепить комментарий... Короче нужна более четкая постановка задачи, имхо. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Продвигаю свою идею - хранить данные в гиперссылке как наименее трудоемкую. К сожалению с VBA не работаю, но про гиперссылки на VBA нашел эти примеры
http://discussion.autodesk.com/threa...hreadID=569748 http://www.autocad.ru/cgi-bin/f1/board.cgi?t=34298ea И храни свою базу в URLDescription каждого вхождения блока в чертеже (INSERT) |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Вот примерчик из helpa как задать URLDescription объетку
Код:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Гиперссылки для таких целей, в принципе, использовать можно. Но это плохо:
1. Они доступны для ручной правки, а значит, могут быть (и будут) попорчены. 2. Кто-то использует их и по прямому назначению. Только не надо думать, что если вы этим не пользуетесь, так и никто больше не применяет. 3. У гиперссылки есть "база", которая может к ссылке добавляться. Она также доступна и может все испортить. Гораздо проще раз и навсегда научиться привязывать данные - пригодится много раз. Разумеется, не к определению блока, а к вставке. Одно и то же определение блока при вставке может быть связано с разными записями БД. Иначе - тупик. Сколько типоразмеров и модификаций изделий - столько и определений блока. А если у оборудования изменилось название, ТУ или еще что? Менять во всех определениях блока во всех чертежах, куда их наперетаскивали? Причем блок - только частный случай, а привязка должна быть к любому примитиву, который захочется специфицировать. Приходилось использовать гиперссылки для БД таким образом: 1. У примитивов были привязанные скрытые ссылки на записи в БД. 2. Для размещения в интернете генерировались тысячи DWF-файлов (план города). При этом перед созданием DWF к примитиву, из расширенных данных, привязывалась гиперссылка. 3. При просмотре DWF в Интернет щелчок по объекту заставлял работать гиперссылку. При этом в браузер выводилась информация об объекте. |
|||
![]() |
|
||||
Регистрация: 06.07.2006
Москва
Сообщений: 42
|
VVA, Shaggy Doc: пока с гиперссылками подожду, оставлю этот вариант на крайний случай.
А также: мне не нужно привязать описание к конкретной вставке блока. Поясняю: Постановка задачи: Имеются файлы с изображениями: шкафы, монтажные платы для них, различные аппараты, на них устанавливаемые, и всевозможные аксессуары. Папка с этими файлами открыта в Дизайн Центре. Я вытягиваю нужный мне шкаф, и начинаю его компоновать, устанавливая нужную монтажную плату, на нее, в свою очередь, нужный аппарат, и так далее. Шкаф состоит из рамы, боковых и верхней панели, рым-болтов. Если на чертеже три шкафа, то соответственно, все эти компоненты шкафа имеются в тройном размере. Таким образом, спецификация должна быть привязана к описанию блока, а не к его конкретной вставке. VetalBY, аналогично с Comments, работает и Xdata, ту же функцию нетрудно переделать: Код:
Цитата:
|
|||
![]() |
|
||||
Регистрация: 16.05.2005
г. Минск
Сообщений: 276
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Такая постановка - перетаскивание из DesignCenter принципиально неверна.
DesignCenter - это для "блондинок" (жгучие брюнеты, не обижайтесь). Это средство "малой механизации", для небольшого облегчения ручной работы. Работа все равно остается ручной. Для ручной работы можно придумать множество вариантов микроскопического улучшения (ломик, полиспаст, "эх, дубинушка, ухнем"). Все равно это ручной труд. Привязка данных к объектам, притаскиваемых откуда-то бессмысленна. Ну, если "конечно, хочется хорошенько помучиться" (как говорил тов. Сухов) - пробуйте. Радикального результата, сопоставимого с затраченными усилиями не будет. |
|||
![]() |
|
||||
Регистрация: 06.07.2006
Москва
Сообщений: 42
|
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Системы строятся не так. У них разная идеология в реализациях, но никак не такая. Например, сведения об изделиях (не только для спецификации, но и например, для расчетов) хранятся в базе данных. Объект создается по данным из базы. В "продвинутых" системах (АДТ, ABS и т.п.) это вообще специальный вид примитивов. В более простых - это стандартные примитивы Автокада, но связанные с базой данных. Блоки также могут использоваться, но как частный случай примитива. Если щит на плане здания можно изобразить блоком, то трубопроводы, проводники, крепления и тысячи других мелочей - не получится. А именно с ними проблема, а не с подсчтетом, например, количества колес на сборочном чертеже автомобиля. |
|||
![]() |
|
||||
Армспорт Регистрация: 18.07.2006
Ейск
Сообщений: 355
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 06.07.2006
Москва
Сообщений: 42
|
Цитата:
Зато у меня уже есть своя база блоков, которые мне достаточно просто обработать (добавить спецификацию или ссылку на запись в БД, и сделать эти блоки неразбиваемыми, чтобы исключить эту опасность). Вот вобщем-то и весь вопрос. Перерисовывать все хозяйство автокадовскими 3Д-телами я не стану, с учетом того, что рисовать трехмерку в акаде - это ношение воды в решете. |
|||
![]() |
|
||||
Армспорт Регистрация: 18.07.2006
Ейск
Сообщений: 355
|
Цитата:
Цитата:
Цитата:
|
|||
![]() |
|
||||
Регистрация: 21.03.2007
Санкт-Петербург
Сообщений: 2,701
|
Поностью согласен с Евгением А, 3Д-моделирование более объектно-риентировано. Здесь можно извлекать данные объектов и использовать их в спецификациях не заморачиваясь с блоками которые являются всё-таки уникальными объектами и набор характеристик ограничен. В 3-х мерке руки больше развязаны. На примере ADT все вышеперечисленные ухищрения со спецификациями забавно смотрятся. Хотя в то-же время лёгкость создания спецификаций, накладывает условия создания практически всех элементов конструкции без упрощения, но от этого тоже есть польза - меньше ошибок.
|
|||
![]() |
|
||||
Регистрация: 06.07.2006
Москва
Сообщений: 42
|
Цитата:
Цитата:
Вы на турбо паскале программировали? А почему перешли на дельфи? В чем их отличия? Отличие, в частности - в "визуальности" программирования. Для меня рабочая цель - сделать спецификацию. Так и я, могу составлять спецификацию проекта по каталогам, каждый раз выискивая заказной номер всех деталей, по сути, составляющих одни и те же сборки... А могу делать это визуально, просто собирать как конструктор. И сборки заготовить заранее, присвоив им весь список их составляющих. Для моих целей это вполне осуществимо, поверьте. Велосипеда каждый раз не изобретаем, все детали стандартные. |
|||
![]() |
|
||||
Регистрация: 07.12.2010
Уфа
Сообщений: 427
![]() |
Подождите обвинять в некрофилии!
![]() Пролог. С 2007 прошло уже почти 5 лет. Многое изменилось в этом мире в целом и в автокаде в частности. На смену просто блокам (тогда и это была диковинка), пришли динамические блоки (хотя и статические никуда не делись), а также "атрибуты" и "таблица блоков". Основная часть. Идея. 1. Создание "правильных" блоков (то что может сделать каждый). Создаем блок и восемь атрибутов в нем. Имена атрибутов могут быть разными - это не принципиально. Важно, чтобы в "таблице блоков" для этих атрибутов записывалась нужная информация. Первый атрибут это классификация блока ("Оборудование", "Изделия и материалы", "Кабели, провода, шнуры и шины", "итд"). По этому атрибуту блоки будут сортироваться. Второй - шестой атрибуты это 2-6 столбцы в спецификации ("наименование....", "тип, марка...", "Код оборудования.....", "Завод-изготовитель", "Единица измерения"). Седьмой, восьмой атрибуты это восьмой и девятый столбцы спецификации. Создали блок, заполнили атрибуты. 2. Программа (вот тут уже не каждый может). Запускаем программу. Выделяем рамочкой область подсчета. Программа сама определяет блоки и начинает их сравнивать. И считает количество блоков, у которых атрибуты №№2,3,4 и 5 одинаковые. Далее раскладывает блоки по значению первого атрибута - "оборудование" к "оборудованию", "изделия..." к "изделиям....". 3. Финальная часть программы. Создание таблички в автокаде. Табличка стандартная - спецификация по ГОСТу. Заполнение таблицы делает сама программа. Точку вставки (левый верхний угол) задает пользователь. 4. Улучшение программы. После того как она будет считать блоки и делать спецификацию в одном файле можно расширить область действия несколькими файлами. Эпилог. Прошли те времена когда машина пользовала человека. |
|||
![]() |