Тема: Импорт базы данных в Acad

Интересует возможность вставлять элементы(текстовые) из базы в чертеж. То есть нужно сделать так: выбрать элемент из базы ?>он вставился в чертеж и после создания полного чертежа сгенерить типа спецификации (описания всех характеристик обьектов берется из базы).

Re: Импорт базы данных в Acad

Здесь имеется много вариантов реализации. Начиная с примитивных возможностей самого Автокада по работе с БД.

Если говорить про спецификации, то тоже имеется много вариантов. Например, формирование набора записей спецификации в БД с использованием специальной программы (справочники и прочие прелести). "Рисовать" готовую спецификацию можно как в Автокаде его примитивами (экспортируя записи из БД), так и в виде самостоятельного "отчета" с выводом на принтер.

А вот "выбрал элемент из базы - он вставился в чертеж" - плохо. Откуда он "вставится"? Он должен быть нарисован, в частном случае - в виде блока. И должна быть организована связь "вставленного" элемента с базой данных. Или наоборот, при создании элемента в чертеже, должна создаваться запись в базе данных.

По всем этим вопросам имеется много реализаций. И хороших, и плохих.

В общем случае обычно с объектами Автокада связываются "расширенные данные", указывающие на связь объекта с записями БД.

Подобные вопросы часто поднимаются изобретателями велосипедов.

Re: Импорт базы данных в Acad

Подскажите, как можно экспортировать записи из БД в Автокад.
Можно ли потом будет отслеживать изменения, произведенные в БД?

Re: Импорт базы данных в Acad

> Densy
Вот как это сделано в BestIA:

1. В таблице БД хранится вся семантика и координаты объектов (Х, У для точечных, списки для линий и полигонов). Каждая запись имеет уникальный код

2. При команде экспорта в Автокад передаются, через файл, координаты и коды. Экспортируются выделенные записи, одновременно может быть экспорт в HTML и привязка URL к объектам для последующего изготовления DWF-карты

3. Лисп-программа читает файл и, руководствуясь установками темы, рисует объекты (блоками, полилиниями, при необходимости с заливками, штриховками, надписями).

4. К каждому объекту привязываются расширенные данные - относительное имя таблицы и код записи. Сама семантика остается в БД.

5. При просмотре объекта (указанием на примитив) просматривается (или редактируется) запись БД. Если при редактировании изменяется геометрия в БД - изменяется таблица и перерисовывается объект. Если изменяется геометрия графически - обновляется БД. Но только если редактирование производится специальной командой.

Отслеживать любое редактирование с помощью реакторов не стали, так как очень тормозит систему, да и нужды особой нет.

6. Автоматически изменения не отслеживаются (было, отказались) так как расходуется бесполезно слишком много ресурсов. Информация в БД всегда актуальная, а геометрия меняется нечасто. Но есть возможность держать информацию в ссылочных файлах-слоях. В этом случае она обновляется как обычно при загрузке XREF

Re: Импорт базы данных в Acad

1. К сожалению, я не знаю как работать с BestIA.
2. Проблема у меня с редактированием спецификаций. При вставке строк все остальное приходится сдвигать вручную, что занимает много времени. Удобно редактировать в Excel, но там трудности с форматками. И так как я не владею ни VBA, ни LISP, хотелось обойтись примитивами Автокада. Может быть есть какая-нибудь функция, только я о ней не знаю?)))

Re: Импорт базы данных в Acad

Использовать Excel для спецификаций убогое решение (правда, лучше чем Word). В крайнем случае, если очень нравится Ofice, нужно использовать Access. Это уже приличная СУБД, в которой многое можно сделать без программирования.

Спецификация (любая) на выходе - не что иное, как "отчет" в терминологии баз данных. И даже если использовать Excel, то в ней имеются прекрасные средства для создания отчетов. Даже в "настоящих" СУБД теперь многие применяют методику экспортирования данных в Excel только для создания отчетов. Но всему надо учиться!

Можно и "нарисовать" спецификацию в Автокаде (отправив содержимое ячеек в формат CSV. Но никакой "функции", конечно нет (штатной). Все это надо писать или покупать. У других все давно написано, во множестве вариантов. Спецификации все-таки используются для зарабатывания денег, а не для развлечения.

Re: Импорт базы данных в Acad

Морочусь практически такой же проблемой (но у меня задача решить все програмным путем) и разрабатываю использование, так называемых "Атрибутов". Как работать с наим описано в книжках по AutoCAD ( способностей в програмировании ненадо!!!)

Re: Импорт базы данных в Acad

> Pacman
Аттрибуты я тоже использую. А как их можно связать со спецификацией?

Re: Импорт базы данных в Acad

Готового решения сейчас у меня нет  :(
Но на столе лежить книжонка: "AutoCAD 2000 Библия пользователя" в ней две главы посвящены теме "Использования атрибутов, импортирование БД атрибутов в эл. таб." и "Работе с внешними данными БД, Концепция связывания чертежей и БД, Связывание данных с об'ектами чертежа"
Так что при желании можно разобраться  wink)
В прилагаемом диске чертеж с активной спецификацией!!!

Re: Импорт базы данных в Acad

Не попадитесь на эту ловушку! На это клевали очень давно.

Использовать блоки с атрибутами  для последующего формирования спецификаций (или еще чего-то серьезного) можно только для очень простых случаев. Когда все, что надо специфицировать, непременно нарисовано, да еще определенными способами. Например, мебель и оборудование (что и приводится в примерах). Вывод данных атрибутов по шаблону в текстовый файл устарешее решение. Рудимент от тех времен, когда и программировать в Автокаде нельзя было. Лет 10 этим никто не пользуется.

Примеры из "Библии" не выдерживают реальной эксплуатации. Это, скорее, "доказательство концепции". Мол, и Автокад может с БД работать. Да, может. И есть штатные средства. Очень слабые. Конкретную частную задачу решить можно. В общем виде - трудно.

Однако у Автокада  есть главное -  возможность программно решить любую задачу так, как надо. А штатные средства лишь показывают возможные пути. Не всегда оптимальные

Re: Импорт базы данных в Acad

> ShaggyDoc
Хорошо, а для задачи обмена текстовой информацией между чертежом и БД в Accece ( длина линий по слоям- из чертежа, а сведения о заказчике, сотруднике,... из БД)
Атрибуты использовать реально?

Re: Импорт базы данных в Acad

"Текстовая" информация должна храниться в БД. Графика, со ссылкой на БД, таблицу и запись - в рисунке.

Когда не было расширенных данных (Акад-10) для хранения связей приходилось использовать атрибуты. Можно это делать и сейчас, но это будет отсталым решением. Если хранить "текстовую" информацию в атрибутах, она не будет доступна для изменения другими пользователями. И другими программами. БД позволяет это делать. Информация, спрятанная внутри DWG практически недоступна посторонним приложениям.

Использовать атрибуты только для обмена информацией, через шаблоны очень ненадежно. Гораздо эффективней экспортировать их в файл требуемого формата. При написании такой программы можно учесть все возможные ситуации. Да и формат экспорта сделать любой.

Re: Импорт базы данных в Acad

А что такое "расширенные данные"? Можно поподробнее?

Re: Импорт базы данных в Acad

"Расширенные данные" - текстовая и числовая информация, привязываемая к примитивам определенными приложениями. К одному примитиву можно привязать данные нескольких приложений. Эти данные пользователь не видит, добраться до них можно программным путем. Все современные приложения к Автокад, делающие такие чудесные вещи, так или иначе работают с расширенными данными.

Подробно см. Н.Полещук. Visual Lisp и секреты адаптации AutoCAD или фирменную документацию.

Re: Импорт базы данных в Acad

to ShaggyDoc.
пожалуйста, поконкретнее про Н.Полещук. Visual Lisp и секреты адаптации AutoCAD или фирменную документацию.
(издательство, год издания).

Re: Импорт базы данных в Acad

Пример с исходным кодом по работе с базой данных в Автокаде на VBA и Access на
сайте http://avbsoft.kulichki.net

Re: Импорт базы данных в Acad

А что если просто в шаблоне, в основную надпись и доп. графы вводим атрибуты в соответствующих местах (или что там теперь у нас вместо них) "Обозначение", Наименование", "Первичное применение". Тогда можно экспортировать эти данные в БД, и делать выбор по признаку одинакового значения "Первичное применение". Сформированный список (отчет) не будет зависить от того как нарисована сборка. Правда придется вручную дописать количество, заимствованные чертежи и все остальное (словом еще начать да кончить). Идея сырая, но может кто-нибудь поможет ее развить, или  похоронить.

Re: Импорт базы данных в Acad

У меня вопрос.
Я слышал что в AutoCad 2004 в результате оптимизации файлов и добавления средств криптографической защиты данные и структура DWG 2004 оказались защищены с помощью криптографического ключа, требующего перебора миллиардов комбинаций. И на текущий момент библиотеки OpenDWG не обеспечивают совместимости с AutoCAD 2004.
Зачем нужна такая сложность по шифрованию если каждый
может получить доступ к информации в DWG открыв его дома
в AutoCad'е купленным за 70р. на рынке ?
Или я чето не понимаю.
Я хотел написать прогу с посторонним доступом к DWG (без AutoCad) а теперь прийдется ограничится просто макросом, а не хотелось бы.

Re: Импорт базы данных в Acad

Любой AutoCAD спросит пароль на доступ к тому файлу, который авторы защитили паролем - вот тут и потркбуется перебор миллиардов комбинаций.

Re: Импорт базы данных в Acad

1. Понятие модуля. Структура и описание модуля.
2. Вводится размерность одномерного массива и его элементы. Вывести на экран максимальное значение среди элементов кратных 5.
3. Вводится размерность двумерного массива и его элементы A(N,N). Записать в одномерный массив максимальные значения среди элементов. Полученный массив  вывести на экран.