|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
22.05.2019, 10:25 | #1 | |
Взаимодействие с таблицей БД
Регистрация: 15.03.2019
Сообщений: 18
|
||
Просмотров: 6523
|
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
ну с этим результат будет предсказуемым - так как штатные возможности. Да и надо, имхо, как минимум - автофильтрацию производить по имени того же блока - зачем предлагать, например, для водопроводного крана охранные извещатели в списке)
|
|||
|
||||
Регистрация: 15.03.2019
Сообщений: 18
|
Цитата:
Так можно здесь обойтись штатными инструментами, используя AutoLisp ? Как обработать событие "нажатие на строке БД" ? |
|||
|
||||
Регистрация: 15.03.2019
Сообщений: 18
|
Об этом и спрашиваю ) Иначе бы не задавал вопросов. Если таблицу рассматривать как обычную оконную форму, то может и есть. А если оно есть, то как через методы ActiveX (COM) достучаться до такого события ?
Последний раз редактировалось sergeyVostok, 22.05.2019 в 14:08. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Цитата:
----- добавлено через ~10 мин. ----- Т.е. где на уровне ObjectARX может и есть функции, с помощью которых можно перехватить выбор строки, или нестандартными средствами через WinAPI. Только стоит ли настолько извращаться ради одного ID?) |
|||
|
||||
Регистрация: 15.03.2019
Сообщений: 18
|
Ну не ID, а строки БД. Для чего еще нужна БД ? Вместо ID может быть любое поле или несколько.
Ну а как тогда лучше решить задачу ? Меньшими потерями т.к. сделать БД в Access не составляет труда и подключение настроено. Кроме того в такую БД можно добавлять записи прям из Autocad, ничего для этого не дописывая. Если никак, то буду курить связку чего-нибудь с чем-нибудь. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Цитата:
В .Net вы будете подключаться, не используя диспетчера. Я использую бесплатную SQLite, например - зачем дополнительная зависимость от проприетарного ПО. Но это дело вкуса) |
|||
|
||||
Регистрация: 15.03.2019
Сообщений: 18
|
Цитата:
сложно понять, какая там идеология у людей заложена и откуда извлечение ? У каждого своё. Извлекать данные то по любому наверно из БД ? В общем пока у меня будут расширенные данные. Если 255 символов станет не хватать, то думал тоже сделать атрибут, но только с ID БД, и в дополнение делать свой словарь в котором будет сохраняться номер ID из БД и инфа из поля "Описание". Здесь идеология такая, что БД нужна только на этапе конструирования чертежа и выбора марок элементов из БД. Вся инфа заносится из базы в чертеж (расширенные данные или атрибут + словарь). И затем, можно получить спецификацию на чертеж не используя БД. Считаю очень надежный вариант, в случае изменения БД или её отсутствия. ----- добавлено через ~3 мин. ----- Как по скорости работы с БД такой вариант ? Нет проблем ? В том то и дело, что еще пытаюсь сделать так, чтобы можно было использовать БД, не устанавливая доп. ПО на рабочее место. В варианте с БД AutoCAD настраиваем только подключение и в редких случаях может потребоваться установка драйвера БД. Ради этого можно и поизвращаться )) Последний раз редактировалось sergeyVostok, 22.05.2019 в 15:37. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Цитата:
не мгновенно, естественно) Это как построишь работу с нею, будешь ли ту же индексацию использовать и т.п. Цитата:
Права администратора не нужны - подключаете в проект скаченную по ссылке сборку и напрямую работаете в коде с БД в виде одного файла. И там возможности по минимуму, конечно, по сравнению с другими СУБД - но как локальное хранилище меня пока вполне устраивает) |
|||
|
||||
Регистрация: 15.03.2019
Сообщений: 18
|
Цитата:
С тех рабочих мест, где будет установлена БД, она в принципе никуда не денется. Но во первых, из неё могут быть удалены записи, которые кому-то покажутся например уже не используемыми. С течением времени. Например, изменился поставщик или элементы сняты с производства. Либо чертеж открывается спустя так лет N, а за актуальность ID в БД уже никто ручиться не может. Специально за БД думаю никто следить не будет. В общем всякие случаи могут быть. Ну а если пришел со своим чертежом к кому-нибудь "в гости", то там БД точно не будет. Проще подключить LISP программу, извлекающую данные из чертежа, чем таскать с собой БД и делиться ей. А вероятнее всего, этой БД буду пользоваться только я )))) ибо вся организация работает в AutoCad можно сказать как на кульмане ) поэтому для себя решил автоматизировать составление спецификации и еще добавить некоторые функции, таким образом отгородив себя от пустой траты времени ) Цитата:
А в чем писать код ? C++ ? AutoLISP ? В какой IDE ? |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Цитата:
любой .Net язык и любая бесплатная студия - только уговорить еще придется админа поставить, если на работе) А для затравки - сайт Бушмана, там на главной странице есть ссылки на другие полезные ресурсы. Хотелки за пределы лиспа начинают выходить у вас, имхо - не чтобы работало, а чтобы было удобно и красиво) |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Лучше так: 1. Из лисп вызывается программа работы с БД - (COM-сервер). 2. В БД что-то делается - редактируется. В частном случае выбирается запись нужного "резистора". 3. Любые сведения о выбранной записи возвращаются в Лисп, а БД закрывается. 4. Лисп делает с полученными данными то, что умеет. Вставляет блок, например, привязывает РД и т.п. Но в РД надо хранить не данные, а только таблицу и ID в БД. Всё это годами проверено в разнообразных работах, вплоть до ГИС на базе AutoCAD. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Дополню. Вместо СОМ-сервера сейчас можно вставки .Net кода в Lisp-обертке делать.
|
|||
|
||||
Регистрация: 15.03.2019
Сообщений: 18
|
Цитата:
Какую таблицу имели ввиду ? У меня марка резистора что-то типа: "Р-12-0,125 120 Ом +/- 5% АБВГД.1234.0000.ЮЯ " По такому же типу остальные элементы: конденсаторы, полупроводники, разъемы и т.д. То есть данных с DXF кодом 1000 должно хватить - строковая константа длиной не более 255 знаков. Поэтому я и говорю, что есть соблазн хранить данные элемента в его дин. блоке и БД после завершения работ над чертежом в принципе уже не нужна. Можно делать спецификацию прямо из данных чертежа. Вы мне так и не привели какие минусы в такой логике работы ? Ничего криминального не вижу. Разве только что возможные тормоза из-за того, что к каждому элементу будут прикреплены расширенные данные. Тут на практике только можно понять, как это отразится на производительности. Но и чертежи не объемные, не архитектурные планы. Да и никто не мешает продублировать функцию, и составлять спецификацию, если это необходимо, обращаясь повторно к БД. В общем понял я, что начинать нужно курить COM технологии. Последний раз редактировалось sergeyVostok, 22.05.2019 в 20:58. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,041
|
Цитата:
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Рассчитывать на "должно хватить" не стоит. Завтра будет что-то другое и этой строки не хватит. Будет не короткое название "Резистор", а длинное, они бывают и в несколько строк, и вся идея накрылась. Вообще не нужно хранить в чертеже всю семантическую информацию об изделии. Только ключ. А описательную часть (формулировка заказа) всегда можно извлечь из БД, причем в самом свежем виде. Да и динамические блоки при программном рисовании совсем не нужны. Информацию можно связать с любым примитивом. Да конечно, можно по-разному. Но если ошибки на стратегическом уровне, тут и современные инструменты не помогут. Однако в любом случае надо разделить "вижуальную" часть работы с БД, причем безо всяких архаичных DCL, и "рисовальную", которую LISP может лучше сделать. |
|||
|
||||
Регистрация: 15.03.2019
Сообщений: 18
|
Ошибок на стратегическом уровне нет, ибо уровень не стратегический, пишу под себя. Заодно учусь. Задача, при наличии информации и знаний, не большая.
В принципе обо всем подумал. Вы уж тут сильно замудрили ))) У меня вполне конкретная задача, без сетей. Для интерфейса создана одна пользовательская панель с кнопками блоков. Зачем их рисовать в LISP ? Зачем мудрить. Рисуем изображение элемента и сохраняем в отдельный файл. Каждый элемент - отдельный файл. Получится база компонентов. Вставляются макросом по нажатию кнопки соответствующего типа элемента. LISP запускается именно после вставки блока, т.к. после появления БД, можно нажать "отмена" и таким образом вставить безымянный блок (элемент), если его марка еще не определена. Марку определить из БД позже. Цитата:
Цитата:
Согласен. Если это перерастет в серьезное ПО, то задача будет поставлена и решена заново. А пока в варианте "минимум". Сегодня открываю книги по .NET )) Последний раз редактировалось sergeyVostok, 23.05.2019 в 09:16. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Это сейчас имеет дело с несколькими изделиями, на каждое из которых можно "макрос на кнопку" сделать. Что, всю жизнь так и будет? Для примера - база данных электрооборудования, используемая для формирования СО. Причем это фрагмент, всего 798 позиций. Её можно и редактировать, и выбрать позицию. В ней содержится вся необходимая информация, вплоть до фотографии. Любую позицию можно легко найти, как визуально, так и поиском. И эта же самая программа работает с любой другой БД на что угодно. Всего имеется 33 таких тематических БД, можно еще сколько угодно сделать. Впрочем, видимо "не в коня корм". |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пропадает связь OLE-объекта с оригинальной таблицей Excel | XoRys | AutoCAD | 2 | 30.09.2014 15:09 |
Взаимодействие AutoCad Architecture с AutoCad Structural Detailing возможно? | VikaLupan | Вертикальные решения на базе AutoCAD | 4 | 28.08.2012 12:39 |
Можно ли создать подобное взаимодействие и прокрутить его во времени средсвами Автокада 2012? | proteirei | AutoCAD | 2 | 02.06.2012 11:17 |
Как в Лире 9.4 смоделировать взаимодействие грунта и бетонной конструкции? | sergeyc700 | Лира / Лира-САПР | 12 | 31.01.2012 17:49 |
Нужна форма с таблицей что посоветуете | Cleper | Программирование | 2 | 04.04.2007 09:26 |