How do you maintain part categories and especially sub-categories ? - Page 1
Forum section: electronics / general

author: EE-digger
author_rank: Frequent Contributor
timestamp: July 27, 2018, 02:10:53 am
content: Just came from Cadence-CIS (Orcad with database). In CIS, there were enough part categories and under each, one or more sub-categories. It was simple to browse and simple to add a new category when it proved necessary.In Altium, all I'm seeing are large, linear lists without any sensible grouping. Caps of all types are in a linear list without sorting by type, voltage, tolerance, or anything. I don't know enough about Altium yet to know what tools can handle this desired grouping. Please assume that we would generally be creating all of our own parts.How do you or would you create categories like these examples: (the "--" are indent levels)I should probably mention that once you choose a category in Capture-CIS, all member parts are listed in a matrix. You can then sort by value, voltage, pin count or any other field. Then simply double click to place.Capacitors--SMT-- -- Ceramic-- -- -- 0201-- -- -- 0402-- -- Tantalum-- -- -- 0201-- -- -- 0402-- Through Holwetc.IC-- Analog-- Acquisition-- -- ADC-- -- DAC-- -- Math-- Bus-- Power-- -- Regulators-- -- -- Linear-- -- -- Switching-- Logic-- -- Buffers-- -- Gates-- -- Registers-- -- Driversetc. etc.

author: Deridex
author_rank: Regular Contributor
timestamp: July 27, 2018, 04:50:43 am
content: I think the integrated libraries are the linear lists that you described.For grouping and sub-categories i think you probaly should take a look at the database libraries. That should be the types you might want to use.

author: Philfreeze
author_rank: Regular Contributor
timestamp: July 27, 2018, 07:22:46 am
content: We currently use a DB-Library (or to be more specific an SVN-DB-Library) based on an excel spreadsheet (don't ask). Each sheet is a category like:- Passive - Resistor- Passive - Capacitor- Semiconductor - Diode- Semiconductor - Transistor- IC - Analog- IC - Logic- IC - Poweretc.As you can see we already split the highest level categories (semiconductors, ICs, passives, electromagnetic etc.) into their respective subcategories here.In Altium each sheet will show up as if it was a distinct library (you can also use different Int-Libs to achieve the same).If you want to search for something you select the correct library and then you just type into the search what you are searching for.The default search will include the name, parameters, footprints and symbols. Since our internal footprints names aren't easy to search for (QFN-NN_NxN_pNNN isn't exactly an easy to remember format and neither is 0805_RES) we included a parameter in the library called tags.Tags includes all possible ways to write things like OpAmp and it includes the simplified Footprint name.In the end this means that you select the library "Passive - Capacitor" then you type into the search field "0805 100n" and it will show you all 0805 100nF capacitors.(things like the dielectric and the rated voltage are also parameters so you can also search for them).If you need a more advanced search (common for ICs) you can use Altiums advanced search features which is pretty powerful.I kinda like the system (except the Excel part) and it works pretty nicely.You could also have all parts in one big library and only work with the tags system but this means that you will have to use unspecific parameter names like the default Altium libraries do (Value, Value2, Value3 etc.) which we do not really like, it makes it harder to use the advanced search and it makes it possible to enter the wrong value in the wrong field (enter resistance in the field that is used for the maximum power).Note:We also have a small tool that can create the tag list for you. You type in some tags then you click run, it searches for your entered tags in all parts and returns a list of all other tags these parts have, then you can just select which apply. This way we are able to generate pretty good tag lists.Hope that helps a bit.I am going to ask if I can share some examples.

author: ajb
author_rank: Super Contributor
timestamp: July 27, 2018, 06:01:17 pm
content: With a DbLib you can drag columns from the component list above the header bar and have them used for hierarchical sorting. It looks like the attached. This picture also shows you how my DbLib is organized. The backing DM is an Access file, and I initially used a different table for each component type but found that to be problematic for a number of reasons. I now have a single table for everything, with the TID field providing a top-level component type. TID was directly inherited from when I initially merged the many tables into one, and allows me to rebuild Sch<->DB connectivity on old designs if I need to by simply adjusting the Design Item ID link format. The Type, Subtype, and cleverly named Subtype2 fields are created specifically for the purposes of hierarchical sorting.

author: aandrew
author_rank: Frequent Contributor
timestamp: July 27, 2018, 10:50:45 pm
content: excuse the minor threadjack -- is there any script or utility which can take components/footprints from one Altium library and copy them to another? I'm thinking along the lines of creating a blank/empty DBLib and using the util/script to populate it from my old SchLib/PCBLib/IntLib files.

author: EE-digger
author_rank: Frequent Contributor
timestamp: July 27, 2018, 11:46:36 pm
content: No problem. I'm in Altium sponge mode, trying to learn everything I can.Thanks for the ideas guys. Would I be correct to assume you can use the DbLib and external coding to make the library access look any way you want it to ... with enough work?aandrew - I guess I'd like to see the replies to your question also

author: T3sl4co1l
author_rank: Super Contributor
timestamp: July 28, 2018, 02:34:25 am
content: They're in the parts vault, if you care to use it.Typical workflow is:- SchLib contains a part symbol for a default part. Attached to it, some dummy parameters, and a selection of typical footprints used with the part (e.g., a capacitor symbol with footprints C0603, C0805, C1206, CAPAE45X40, CAPAE66X60, ...).- You fill in these data / selections when the part is placed on the schematic.- Additionally, you fill in supplier data, usually by searching for the desired component in the Supplier Panel, and adding Supplier Link (and parameters if you like) to the component.- Alternately, make a library with all the parts and links already set up. PITA, but maybe worthwhile in a big design house.- Categorization is then by library file (it's not by an internal database), or by data you've set on the schematic.And yeah, you can do DbLibs and stuff, too.Tim

author: Deridex
author_rank: Regular Contributor
timestamp: July 28, 2018, 10:16:18 am
content: Quote from: aandrew on July 27, 2018, 10:50:45 pmIn my sight you can copy pretty much everything in Altium. I think you can just shift+select every Footprint (in the pcb-lib-toolbar) you want to copy and just paste em into another lib. I have no script for it right now. But the scriptsystem in Altium is very very very powerfull. So i'm pretty sure there is one.

author: Philfreeze
author_rank: Regular Contributor
timestamp: July 28, 2018, 07:02:12 pm
content: No need to reinvend the wheel aandrew:https://www.altium.com/documentation/18.0/display/ADES/((Database+Library+Migration+Tools))_AD#!DatabaseLibraryMigrationTools-ConvertingtoaDbLibajb care to name a few of the problems you encountered so we are aware of them?

author: ajb
author_rank: Super Contributor
timestamp: July 28, 2018, 08:57:53 pm
content: Quote from: EE-digger on July 27, 2018, 11:46:36 pmSure. I'm pretty sure everyone who has ever set up a Dblib had every intention of building a nice front-end for their custom parts db, and I'm equally sure that only like two people have ever gotten around to actually doing it. There's at least one commercial offering:https://pcbparts.blogspot.com/p/welcome.html(never used it, just remember seeing it a while ago), and Google turns up an open source project or two.Ideally, though, you could do things like link the parts DB into an ERP system and be able to tie in actual purchase pricing for costing out a design, or link design documents directly into procurement orders, etc.Quote from: Philfreeze on July 28, 2018, 07:02:12 pmIt was a while ago, so I don't remember the specifics, but I know I had issues with BOM outjobs, and occasionally the library browser would get confused and display/insert the wrong part. This may have been due to the particular way my Dblib was set up, and maybe some of those bugs have been fixed since, but it was a tremendous pain. I had to go through and completely re-link every part in a couple of designs a couple of times before I got the whole system set up to work around various AD limitations. It was also just annoying to deal with eight or so different tables, especially if you want to add or rename a parameter, or share footprints across part categories. . . it's all just easier with a single table.There's also a temptation to do a separate table for each part category, and put in a whole bunch of different parameters so that you can select parts parametrically when inserting parts into a design, but IME that's a huge waste of time. I mostly just put the headline specs in the description for the part, and if I need more detail than that I have a link to the datasheet just a right click away. Stuff that is critical to selecting a part on a basic level goes into the hierarchical type/subtype fields, so for instance I have Caps->MLCC and then dielectric is a subtype of that, so I can easily put C0G parts where I need them and cheaper dielectrics where I don't.

author: Philfreeze
author_rank: Regular Contributor
timestamp: July 29, 2018, 07:29:19 pm
content: Quote from: ajb on July 28, 2018, 08:57:53 pmYeah we also planned to make a frontend once upon a time.Quote from: ajb on July 28, 2018, 08:57:53 pmThanks for sharing, I will look out for these problems, maybe we can prevent them.

author: ddavidebor
author_rank: Super Contributor
timestamp: July 30, 2018, 08:45:04 pm
content: I developed a frontend web app used internally (that cannot share, also pointless because it runs on huge SQL views made join tons of stuff from custom old ERP databases). Also developed a horrible access based app that I trashed.I'm re-making the web app, how I would have done from the start of I had a blank sheet. I will log the status herehttps://www.eevblog.com/forum/altium/dblibs-viewer-app-under-development/Davide