Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Database libraries
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Altium Designer, DXP, Protel
Страницы: 1, 2, 3
тау
Мне понадобилось привязать Альтиум к некоторой базе данных ( производственная ) , содержащей спецификации сборочных единиц , партнамберы элементов, информацию по закупкам и складу. Главная идея - партнамберы должны храниться в единственной базе данных и не дублироваться в разных базах, для исключения ошибок. Общая схема такой базы представлена на 1-м рисунке.


Чтобы прицепить эту базу, создаю файл EX5.MDB с запросами и ссылками на проиводственную, например такой (рис.2)

В Альтиуме создаю файл библиотеки EX5.DbLib и указываю на EX5.MDB (рис.3)
В "Field Settings" настройках для каждого запроса указываю что связь идет через PartNumb . Это надо сделать для каждого запроса , появившегося в колонке Table (слева вверху). Сохраняю EX5.DbLib.

Инсталлирую EX5.DbLib в библиотеках Альтиума (4-й рисунок). Вроде работает smile.gif


Основной смысл использования такого подхода - это возможность лёгкой закачки получаемого из Альтиума ВОМ-а в производственную спецификацию (в производственной базе) без конфликта по партнамберам. По безбумажной технологии.


PS. еще пара мыслей:
Базы после создания и значительных модификаций надо сжимать , иначе удаленные таблицы , (если они там были) ,
начнут призраками появляться в Альтиуме под причудливыми именами "~TMPxxxxxx". Сжатие стандартно в ACCESS через "Сервис\Служебные программы\"Сжать и восстановить базу данных..."

Бывают производственные базы, защищенные паролями для пользователей. Альтиум же заходит по умолчанию с логином Admin и без пароля. Чтобы Альтиум смог пробиться через запросы к запароленной базе, нужно чтобы действующий администратор назначил юзеру с логином Admin права на чтение тех таблиц из производственной базы, которые фигурируют в запросах альтиумовского MDB файла.
В рассмотренном примере права на чтение Admin-у заложены по таблицам CompCls, CompV, FtPRT. Само собой редактировать через Альтиум Summer такую базу уже не получится , а оно и не надо , имхо, ибо баловство.
uriy
Цитата(Владимир @ Dec 20 2009, 17:49) *
Так вроде журнал должен уже появиться
Появился, но до нас еще не дошел.
Цитата
Вы могли подпортить запись и дугим образом, например так, чтобы исправленное УГО своим наименованием указывало на другое УГО, имеющееся в библиотеке. А откуда Альтиум должен знать что указанная ссылка на УГО технически и по сути верная?
Теперь внимательней читаем то что я написал и смотрим куда на картинке указывают красные стрелки. Capacitor - non polarized исправлено на Capacitor - non polarize (без буквы d в конце) и Discretes.SchLib исправлено на Discretes.SchLi изменено расширение. Такого компонента и бибилотеки с таким расширением нет, если бы они были то было бы неверным другое мое утверждение - "А в схему такой компонент естественно не вставляется потому-что AD не знает откуда брать УГО - я же его попортил."
Владимир
Цитата(uriy @ Dec 20 2009, 17:15) *
Появился, но до нас еще не дошел.


До меня тоже. Но где-то же уже есть biggrin.gif
тау
uriy, В DBLib все корректно.
"non polarize" это значение поля в файле VishayCapacitor.mdb, который Вы не компилировали и в котором по задумке не заложен контроль целостности. Ничего удивительного.
Владимир
Цитата(uriy @ Dec 20 2009, 14:49) *
Мне кажется было бы логично выявлять подобные ошибки при компиляции DBLib разве нет?


Может и так. Но она компилирует только схемы, и интегральные библиотеки.
Тут, для базы данных, могли бы и убрать из меню. так как все равно ничего не делается.
Надо бы это в другую ветку перенести, где про ошибки говорится, да ладно Алексей и тут прочтет
uriy
Тогда что происходит при нажатии Project->Compile Document x.DbLib?
Я думал должна пройти проверка валидности пути к бибилиотекам Library Path и Footprint Path затем проверка наличия в этих библиотеках Library Ref (УГО) и Footprint Ref (футпринта).
Владимир
Цитата(uriy @ Dec 20 2009, 17:57) *
Тогда что происходит при нажатии Project->Compile Document x.DbLib?
Я думал должна пройти проверка валидности пути к бибилиотекам Library Path и Footprint Path затем проверка наличия в этих библиотеках Library Ref (УГО) и Footprint Ref (футпринта).


Только то, про что тут красиво ругают-- красивая фича, нажал, и ничего. Хоть бы сообщение какое, аль привет biggrin.gif Оно не проверяет даже а есть ли такой Document x.DbLib cranky.gif cranky.gif cranky.gif
ellboy
Цитата(Владимир @ Nov 29 2009, 12:20) *
Как всегда, после выхода у Потапова.
Пока она в редакторской правке.


Доступна ли уже электронная версия статьи?
Владимир
Цитата(ellboy @ Jan 26 2010, 15:01) *
Доступна ли уже электронная версия статьи?

Номера не видел, но наскоко понимаю еще в прошлом году должен был быть.
Там только начало
Марик
Подскажите, как лучше организовать совместную работу с dblib?
У нас есть сервер, на котором хранятся файлы базы данных, библиотеки УГО и посадочных мест, даташиты... В общем, все, что можно отнести к производству. Смущает следующее: при одновременном редактировании файла библиотеки УГО или посадочных мест альтиум выдает сообщение, что файл был изменен и спрашивает стоит ли его перезагружать. Однако, если я правильно понял что произошло smile.gif, при ответе "да", внесенные собственно в этот файл изменения не сохраняются и приходится создавать заново, а при ответе "нет" последующее сохранение может "затереть" изменения, сделанные другим пользователем. Подскажите как лучше всего нам организоваться и есть ли у альтиума какие-то возможности, чтобы помочь в этом?
Владимир
а чего мешает каждому проекту свой dblib. На сервере только базу храните
Марик
То есть Вы предлагаете для каждого проекта хранить отдельно библиотеки УГО и посадочных мест? Мне кажется это не совсем удобным. У нас 3 человека работает над 3 разными проектами, в которых практически одинаковая элементная база. Библиотека заполняется по мере создания принципиальной схемы. mdb-файл я настроил так, что таблицу одновременно может редактировать только один пользователь. Это возможно средствами ацесса, а вот pcblib и schlib, если редактируется одновременно несколькими людьми, вызывают проблемы, описанные мною выше.
Владимир
Нет. Только файл ссылки на базу *.dblib
Jack Krieger
У меня возникла такая проблемка.

Наполняю Database Library и хочу привязать параметры SPICE моделей к компонентам. Для примера взял простой элемент - резистор. В табличке Excell заполняю столбцы:

Sim Model Name = Res
Sim Kind = General
Sim SubKind = Resistor
Sim Spice Prefix = R

Собираю схему:


При добавлении компонента на схему модель в свойствах видна, однако в настройке моделирования недоступны параметры, относящиеся к R1 (ток и мощность):


После чего открываю редактор моделей в свойствах резистора, ничего не трогая закрываю.

В настройках симуляции появляются все параметры:


После чего моделирование работает. Где я ошибаюсь?
Эксперимент проводился на AD 9.0.0 и AD 9.3 SP1
uriy
Теперь и я испоьзую базу данных. База у меня хранится в Excel. Когда создаю новые компоненты в библиотеке открываю Excel потом AD чтобы можно было редактировать таблицу в Excel. При этом AD жутко тормозит когда пытаешься открыть свойства УГО в schlib. До появления окна Library component properties может пройти пара десятков секунд. Открываю я это окно чтобы сменить имя УГО - Symbol Reference. На удаление\добавление одной буквы в этой строке тоже уходит несколько секунд. Это у всех так? Если Excel не запускать таких тормозов нет. То же самое при двойном клике на компоненте установленном на схему.
Владимир
с Access нет тормозов
peshkoff
подозреваю, что это из-за экселя.
Все таки эксель это таблица, а акцесс - это субд.
его и надо использовать.

(на секунду опередили..)
тау
Цитата(Владимир @ Apr 13 2010, 15:57) *
с Access нет тормозов

Вообще-то есть, а не было вот раньше с интегрированной библиотекой.
Если mdb лежит на локальном компе - тоже тормоза при первом открытии библиотеки через панель. Если лежит на сервере в локальной сети - тормоза усугубляются. Причем работа с базой из под другой программы - проходит без тормозов где бы она ни лежала.
Владимир
Ну есть, но только при Update. а это отдельная песня
Через сервер не знаю. Может тормоза тут
peshkoff
Цитата(тау @ Apr 13 2010, 16:13) *
Вообще-то есть, а не было вот раньше с интегрированной библиотекой.


По идее так и должно быть. Все-таки IntLib это скомпилированный проиндексированный единый кусок информации.
А mdb это набор ссылок.
Но mdb гораздо гибче, поэтому придется платить скоростью.
Впридачу у нас в планах mdb прицепить к комплектовщикам.
А там и цена и поставщики... Все в mdb.
uriy
Когда начинал разбираться с базой данных, базу делал именно в в Access но быстро перешел в Excel. У меня поля Description и Comment формируются из содержимого других ячеек. Я не разобрался как это сделать в Access и быстро слез с него. Можно ли это сделать в Access?
Есть еще вопрос.
У меня на резисторе отображается номинал, как на рисунке. У него снят параметр Autoposition чтобы номинал хранился прямо на УГО резистора. Бывает нужно поменять номинал.
Чтобы поменять номинал, дважды кликаю по резистору. В окне Component Properties в разделе Library link нажимаю Choose в новом окне выбираю нужный номинал. Закрываю окна. Новый номинал улетает в сторону (ну вроде так и должно быть, раз снят Autoposition) ставлю его куда надо, а он оказывается на заднем плане. Манипуляции с Edit->Move Front Back ни к чему не приводят. Что с этим делать? Может есть какой-то другой способ обновить номинал, чтобы при этом из базы данных выдернулись и параметры, соответствующие этому номиналу.
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
Владимир
Цитата
У меня поля Description и Comment формируются из содержимого других ячеек. Я не разобрался как это сделать в Access

Можно, но я делаю это в Аltium
Цитата
Чтобы поменять номинал, дважды кликаю по резистору. В окне Component Properties в разделе Library link нажимаю Choose в новом окне выбираю нужный номинал. Закрываю окна. Новый номинал улетает в сторону (ну вроде так и должно быть, раз снят Autoposition) ставлю его куда надо, а он оказывается на заднем плане. Манипуляции с Edit->Move Front Back ни к чему не приводят. Что с этим делать? Может есть какой-то другой способ обновить номинал, чтобы при этом из базы данных выдернулись и параметры, соответствующие этому номиналу.

При такой замене меняется полностью компонент.
Проблемы в библиотеке. Нужно там делать
Цитата
Манипуляции с Edit->Move Front Back
Буратино
Цитата(peshkoff @ Apr 14 2010, 07:56) *
По идее так и должно быть. Все-таки IntLib это скомпилированный проиндексированный единый кусок информации.
А mdb это набор ссылок.
Но mdb гораздо гибче, поэтому придется платить скоростью.
Впридачу у нас в планах mdb прицепить к комплектовщикам.
А там и цена и поставщики... Все в mdb.


Не берусь судить ,что такое IntLib (хотя скорее всего одна из разновидностей реляционного представления/хранения информации) а вот по поводу mdb категорически не согласен. *.mdb - это файл базы данных организованой по принципу "файл-сервер". В этой базе помимо таблиц (данные) находятся еще и запросы ,формы, макросы, модули (методы работы с данными). В данном конкретном случае формат "mdb" выбран не просто так, это дань его свойствам и качествам в подобных применениях. Возможности Эксел не идут ни в какое сравнение с потенциалом реляционных СУБД.
На сколько я понял dblib нужно использовать для связи этапа проектирования схемы/платы и остальных (вспомогательных) ступеней создания эл. ус-ва. Аргументы в пользу скорости копирования/создания компонентов, ведение архиваниусом библиотеки и т.п. не первостепенны!
Такая связка позволяет строить новый уровень взаимодействия разработчика и программы в котором возможны например такие штуки: выбираете резисторы не просто из либы а из либы, которая отфильтрована по наличию компонентов на складе, или например подвязываетесь к прайсу поставщика/ков и имеете возможность выбирать компоненты на схему не просто по наличию, а еще и по мин. цене..и т.д

Кстати, организована сама табличка в базе очень плохо, я бы даже сказал преступно. Я покажу немного позже, как это делают правильные пацаны.
uriy, можно сцеплять поля и в акцесе, нужно пользоваться так называемыми видами, или запросами в терминологии СУБД Access.
Владимир
Altium в базе может работать только с таблицами или запросами
Буратино
Цитата(Владимир @ Apr 14 2010, 11:53) *
Altium в базе может работать только с таблицами или запросами


ну если уж говорить серьезно то и с хранимыми процедурами и с текстовыми полями и с многими другими базами данных. ODBC это программный интерфейс который позволяет работать с разными источниками информации (посмотрите, там ведь есть ниже строка подключения). Другое дело ,что нам других и не нужно, меня Access вполне устраивает smile.gif
Марик
Еще довольно приятным плюсом Access является заполнение таблиц с помощью форм. Планируем также синхронизировать склад с базой Altium. Еще плюс - встроенные средства блокирования, т.е. если база одна на коллектив разработчиков, исключается одновременное редактирование таблицы несколькими людьми, что может привести к катастрофическим последствиям, тогда как остальные доступны для изменений.
Буратино
На предприятии я бы не советовал использовать Access для таких целей.
В вашем случае нужны "клиент-серверные" технологии и СУБД соответствующие. Например, SQLServer.
Кстати говоря, в самом Access, начиная с 2002й версии, есть урезанная по функционалу версия SQLServer
uriy
Цитата(Владимир @ Apr 14 2010, 09:58) *
При такой замене меняется полностью компонент.
Проблемы в библиотеке. Нужно там делать
Так УГО для резистора одно и то же, оно у меня единственное. Если бы были проблемы в библиотеке то компонент который бы я ставил из панели Library тоже был бы с таким же дефектом.
А как вы поступаете если нужно поменять номинал?

Импортировал в Access свою БД из Excell нет тех тормозов которые наблюдал до этого.
Владимир
Если из базы то также.
Хотя есть вариант. Если у компонента поменять не номинал, а параметр, по которому идет синхронизация, а потом обновить только параметры из базы--- все останется как есть. Но это так долго. И много кнопок нажимать
Буратино
Еще вот не смог найти возможности выгрузить из dbLib в интегрированную библиотеку, интересно есть такая возможность вообще или нет?
Владимир
Наверняка есть. но все как-то делали----- из интегральной => базу
Буратино
Такссс, а кто смотрел внимательно либу "...\Altium Designer Summer 09\Examples\Cis\Example DBLib\VishayCapacitor.DBLib" ?
Что там за компоненты в таблице "Capacitor - Ceramic" у которых нет вообще УГО? Зачем они там нужны?
Что за поля "Signal Integrity" и "Simulation" ? В них записаны значения одинаковые что для танталов что для керемики..
Владимир
Цитата
Cis\Example DBLib

Вот вот. Обратите особое внимание на первую часть. Суть наверняка в этом
Буратино
Цитата(Владимир @ Apr 15 2010, 22:33) *
Вот вот. Обратите особое внимание на первую часть. Суть наверняка в этом


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


Вот еще посмотрите чем опасен такой как у альтиума подход к библиотечкам:
на картинке УГО конденсаторов из разных библиотек (и это я уже подправил длину выводов с 5,08 на 1,27мм для тех что побольше)
если мне понадобится использовать и те и те компоненты то придется переделывать УГОшки конденсаторов. ПРошу заметить руками переделывать ,каждый в отдельности.
Нет .ну конечно можно забить и использовать разные условные графические компоненты, но с таким подходом можно далеко зайти.
Владимир
Пройдет время--- вернете назад. Пока балуйтесь. Ручками. Надоест-- будете использовать как есть.
Интересно, что это вы можете сделать лучше, чем другие, что это создавали, и разрабатывали не один год?
Нормоконтролер, что ли ест?
Буратино
Цитата(Владимир @ Apr 15 2010, 23:52) *
Интересно, что это вы можете сделать лучше, чем другие, что это создавали, и разрабатывали не один год?
Нормоконтролер, что ли ест?


Какой нормоконтроль? Я студент еще грубо говоря. Мне просто кажется, что библиотечки должны быть правильно сделаны. Приятно потом работать с ними. Вот посмотрите моя схема, ничего особенного, но стремиться (как мне кажется) нужно к гармонии так сказать. blush.gif
В соседней ветке Вы мне кое что интересное подсказали. Проверим.
Спасибо!
Владимир
Цитата
Я студент еще грубо говоря. Мне просто кажется, что библиотечки должны быть правильно сделаны.

Мягко выражаясь, сначала поймите, почему там сделано так, а не иначе.
Или скажите, что вам конкретно там не нравится и почему

Да, в догонку. Мне кажется несколько лет назад вы были студентом? Или мне кажется, или новый Вуз?
Буратино
Цитата(Владимир @ Apr 16 2010, 00:38) *
Мягко выражаясь, сначала поймите, почему там сделано так, а не иначе.
Или скажите, что вам конкретно там не нравится и почему

Попробую даже показать, но завтра.

Цитата(Владимир @ Apr 16 2010, 00:38) *
Да, в догонку. Мне кажется несколько лет назад вы были студентом? Или мне кажется, или новый Вуз?

Вуз один, а вот учусь долгоsad.gif
P.S.
Двоешникsmile.gif
peshkoff
Цитата(Буратино @ Apr 15 2010, 22:37) *
в смысле? я не смог связать значения полей в этих строках никаким логическим рассуждением .Они просто там есть ,а для чего - хз


Вот еще посмотрите чем опасен такой как у альтиума подход к библиотечкам:
на картинке УГО конденсаторов из разных библиотек (и это я уже подправил длину выводов с 5,08 на 1,27мм для тех что побольше)
если мне понадобится использовать и те и те компоненты то придется переделывать УГОшки конденсаторов. ПРошу заметить руками переделывать ,каждый в отдельности.
Нет .ну конечно можно забить и использовать разные условные графические компоненты, но с таким подходом можно далеко зайти.


УГО конденсаторов надо нарисовать так как требует ЕСКД.
Раз и навсегда. И не придется ничего переделывать.
Но если вдруг окажется, что вкралась ошибка, а уже наделаны куча конденсаторов и библиотека IntLib
тогда запаришься переделывать.
Править УГО лучше, если DbLib, там один УГО на все компоненты получается
Буратино
Ну в общем все получилось
Итак:

Я создал библиотеку условных графических изображений Discrete.SchLib
Создал библиотеку посадочных мест Discrete.PcbLib
Создал базу данных с возможностью присоединения к моделям УГО и футпринта складской информации
Подключил базу к Альтиуму
Почувствовал кайфsmile.gif
Нажмите для просмотра прикрепленного файла

Вот теперь УГО конденсатора будет храниться в одном месте, транзистора в одном месте ,а все разнообразие вариантов расположение выводов будет учитываться в футпринтах. К посадочным будет привязана и 3Д модель. Переключаясь между таблицами вижу в альтиуме либо все компоненты , либо те которые есть у меня по складу.
Владимир
О!!! Наконец прелестный вариант. Не могли бы выложить для оценки?
Alexey Sabunin
Цитата(Буратино @ Apr 18 2010, 09:55) *
Ну в общем все получилось

Очень даже не плохо, думаю вам не стоит больше обсуждать эти вопросы в теме для "деревянных"!
Буратино
Цитата(Владимир @ Apr 18 2010, 10:25) *
О!!! Наконец прелестный вариант. Не могли бы выложить для оценки?


C Удовольствием. Прикручу еще пару тройку возможностей и выложу.
Буратино
Вот, как и обещал выкладываю архив с библиотеками и базой, может кому пригодится.
Нужно сделать обработку ошибок в форме и ну и глюки изловитьsmile.gif
Сейчас немного не до того, но если что заметите - пишите, буду поправлять.
---
Справочники заполняются прям в таблицах базы, для того, чтобы открыть окно базы данных нажимаем F11
Владимир
Никому пока.
Но находитесь на правильном пути
Буратино
Цитата(Владимир @ Apr 19 2010, 22:33) *
Никому пока.
Но находитесь на правильном пути

Имелось в виду, что пригодится в качестве примера, не более..
Удобство использования программы заметно уступает встроенным в Альтиум средствам, а в экселе удобнее тиражировать инфу, но вот возможность связывания библиотек и внешней информации, меня лично просто захватываетsmile.gif
Владимир
Цитата
удобнее тиражировать инфу

Проходили. Честно скажу--- тиражирование--- источник тиражирования ошибок!!!
Потом трата времени на стучание по лбу и чистку базы уже вручную существенно больше
Jack Krieger
Цитата
Еще вот не смог найти возможности выгрузить из dbLib в интегрированную библиотеку, интересно есть такая возможность вообще или нет?

Такая возможность есть. Называется она Tools->Offline Integrated Library Maker...
Становится досупной, когда открываем для редактирования .DbLib
Буратино
Цитата(Jack Krieger @ Apr 23 2010, 10:29) *
Такая возможность есть. Называется она Tools->Offline Integrated Library Maker...
Становится досупной, когда открываем для редактирования .DbLib


Да, спасибо. Это еще один кирпичик для понимания принципов и устройства ЛИб в Альте.
Буратино
Создавая dbLib перестали отображаться запросы базы данных Access. Таблицы есть, а вот запросы недоступныsad.gif

---
Разобрался. У меня в запросе использовались вызовы функции и именно поэтому Альтиум этот запрос игнорил
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.