|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Связать БД Access с блоками AutoCAD
электроснабжение и автоматика
г. Пермь
Регистрация: 21.06.2005
Сообщений: 329
|
||
Просмотров: 9630
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,432
|
Работать
![]() Ctrl + 6 (он же _dbconnect, кажись) и там в справку - другого я предложить пока не могу ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 30.09.2004
Сообщений: 1,552
|
Делал такое, только не под Access а под Firebird
Блоки хранил в виде автокадовских файлов (в котором созданы блоки) в виде blob-поля. Система работает нормально, особенно удобно то что конечным юзерам библиотеки с блоками устанавливать не надо, они сами переписываются с базы на комп пользователя если нужного файла там нет. Ессно вставлять нужно из файла а не из самой базы. Еще удобно то что в базе можно дополнительно хранить картинку поясняющую действие (не обязательно вставку блока), текстовое пояснение, вычислять частоту использования той или иной команды (удобно для создателя системы отслеживать чем пользуются а что оказалось бесполезным). Хотя БД в обычном ее понимании здесь не особенно нужна - все можно решить и обычными средствами - хотелось создать систему клиент-сервер. |
|||
![]() |
|
||||
электроснабжение и автоматика Регистрация: 21.06.2005
г. Пермь
Сообщений: 329
|
Далее захожу в папку
C:\Documents and Settings\Odegov\Application Data\Autodesk\AutoCAD 2006\R16.2\rus\Data Links там хранится файл с названием jet_dbsamples.udl копирую его, переименовываю копию. Затем захожу в него. На вкладке ПОДКЛЮЧЕНИЕ меняю старую базу, на ту, что создал сам. Жму ОК. Далее Сервис/База данных Выскакивает окно "Диспетчер подключения в БД" Выделяю "Источник данных", правую кнопку и "Настроить источник данных ..."
__________________
хочу все знать |
|||
![]() |
|
||||
электроснабжение и автоматика Регистрация: 21.06.2005
г. Пермь
Сообщений: 329
|
далее выбрав из подключенной уже БД нужную строчку нажимаю правую кнопку и выбираю СВЯЗЬ!
За ключевой столбец выбираю КЛЮЧЕВОЕ ПОЛЕ базы. Дальше в коммандной строке вижу: ВЫБЕРЕТЕ ОБЪЕКТ выбираю блок. Появляется вот такая вот связь [ATTACH]1162558222.jpg[/ATTACH]
__________________
хочу все знать |
|||
![]() |
|
||||
электроснабжение и автоматика Регистрация: 21.06.2005
г. Пермь
Сообщений: 329
|
Теперь, выделяя блок, или несколько блоков, высвечиваются те строки, которые им присвоены.
А дальше? Дальше я хочу пользоваться этим в своих проектах. Я хочу всем блокам присвоить в своих проектах. Хранить их в палитре инструментов. От куда добавлять их по мере надобности в проект. Только я вот непойму как коллтчество блоков считается, где это отображается и как получить таблицу с данными заложенными в Access и колличеством блоков сосчитанном в AutoCAD.
__________________
хочу все знать |
|||
![]() |
|
||||
Регистрация: 04.07.2005
Иркутск
Сообщений: 213
|
Написано много, но все же действительно, что же с этим делать то?
создать создали, связи сделали и все. А как выбирать связанные детали, и можно ли из сформированного в access отчета брать данные? Перерыл весь форум, есть куча процедур, а как ими воспользоваться не ясно. ![]() Может кто-нибудь растолкует доходчево? Буду признателен сильно |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Какие вопросы, такие и ответы. Шедевр:
Цитата:
Кулик Алексей aka kpblc четко ответил: Цитата:
А далее, на основе принципиальной возможности, решаете свою конкретную задачу. Толко тут без программирования в Access и в AutoCAD не обойтись. И "штатный" способ связки как раз самый неудобный из всех возможных вариантов. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
1. Программа ведения базы данных оборудования (хоть в формате ACCESS, хоть в любой другой), формирования спецификаций путем отбора из базы и формирования готовой спецификации на бумаге (отчет называется). Автокад для вывода спецификаций вообще не нужен. 2. Программа (куча программ) привязывающая к примитивам Автокада ссылки на записи в базе данных оборудования. 3. Программа (часть программы 1), позволяющая отобрать из чертежа объекты, ссылающиеся на базу данных, сделать из базы выборку примененного оборудования с соответствующей сортировкой, объекдинением, группировкой. И вывод отчета. А вот про то, как это сделать, как реализовать - можно целую книгу написать. Блоки во всем этом - тупиковый путь. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,432
|
Позволю себе немного не согласиться с последней фразой:
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Теперь правильный путь - присоединение расширенных данных со связкой к любым примитивам, в том числе и к блокам. Упомянул про "тупиковость" еще и потому, что некоторые пытаются весь чертеж составить из блоков, причем имя блока используют как наименование объекта в спецификации. На блоки заглядываются и потому, что атрибуты можно легче "увидеть". Но это очень малая (и самая простая) часть всей задачи - все равно надо серьезно программировать. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,432
|
Ну я бы не делал ставку на РД. По мне лучше через vlax-ldata-* работать - более внятно, чем даже работа со словарями; нет ограничения по суммарной длине; не надо помнить собственные dxf-представления ну и так далее.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Вставлю и я свои 5 копеек.
РД использую только для "пометки" нужных мне примитивов (для этого достаточно группы 1000 - текст). РД - потому, что их можно использовать в ssget Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 04.11.2009
Сообщений: 3
|
Доброе время суток !
Извините, если уже данная тема поднималась. Помогите с решением данного вопроса: как автоматизировать процесс извлечения данных о чертеже в внешнюю БД Access. Т.е. в идеале хотелось бы иметь кнопку на панеле с макросом, которая помогла бы миновать ряд операций в аналогичном инструменте AutoCAD <Сервис/Извлечение данных...>. Заранее спасибо ! ![]() |
|||
![]() |
|
||||
Регистрация: 04.11.2009
Сообщений: 3
|
Спасибо за участие !!!
К сожалению, знаний хватает только на запуск мастера извлечения данных. При этом потенциальному пользователю системы еще предстоит путь из 8 шагов по формированию данной БД (выбор формата БД, место извлечения БД, содержание полей таблиц БД и т.д.). В идеале хотелось бы создать кнопку, при нажатии на которую AutoCAD в фоновом режиме (конечно по заранее определенному алгоритму) "выкидывал" данные блоков из чертежа в БД Access. Т.е. огородить пользователя системы от самого процесса формирования БД, по сему необходимо жестко прописать в коде формат, содержание полей и место извлечения БД Access. В дальнейшем хотелось бы данную БД через ADO подключать к внешнему приложению. ![]() |
|||
![]() |
|
||||
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295
|
Для англицкого
^C^C_SELECT;\-eattext;_O;_Pr; _N;_N;_Y;L:/Works/template/1.blk;_M;L:/Works/template/\ здесь L:/Works/template/1.blk путь и имя шаблона L:/Works/template/ путь по которому сохраняется ваша база данных. Имя набираете в командной строке как продолжение пути. На русском автокаде возможности проверить нет. Разбирайтесь сами. |
|||
![]() |
|
||||
Регистрация: 24.03.2010
Сообщений: 30
|
Цитата:
В частности задача такова. Есть БД с полем А. Есть блок с атрибутом А. Можно ли при создании связи с блоком задать значение атрибута соответствующим значению поля А. Какие требования к блоку? |
|||
![]() |