I agree with this wholeheartedly.
(although there may be some anti-features that are best removed or replaced with something better)
In it’s current form, it’s a useless checkbox, but removing it does not help much. What needs to be done is to implement functionality to re-use graphics of a unit for another unit, without that silly and error prone copying you keep mentioning. LM9172 seems to be so focused on this little checkbox that he refuses to see the bigger picture.
No copying!
It’s not only creation of a symbol, but also maintenance and modifications later on. There should not be a path that breaks things by forgetting to redo some kind of copy operation.
Ways that may work, are:
The multiple pin numbers I mentioned earlier.
A way of "Reuse graphics & pin locations of another unit.
Probably many more How do other programs handle this? (I already asked that too here).
I also do not have much experience with designing multi- Unit symbols. I once figured it out for a 2 deck rotary switch, (and made a half writeup / tutorial on this forum for the steps). And that was about the only time I did this. I remember some fidgeting to get the pin locations in the right place. If the same graphics is used for another unit, then in my book this implies the pin locations are also the same.
When creating a new multi part symbol, if “all units are interchangeable” is selected, the graphics, pins and pin locations are copied to each part of the symbol. The only thing able to be edited in the pin number, so, if you make a 74xx gate IC, your fifth part must be the same graphic as the first four.
If you change the fifth part, the first four parts will follow suit, and change to match the edited fifth unit.
This function is worthless unless the graphics and pin locations are identical for every part.
My thought were for another window to open if “select interchangeable parts” is selected. This new window will list the number of parts required for the symbol, and you tick which parts are interchangeable.
eg. A 74xx gate IC has 5 parts. you tick only the first 4 parts, so each in turn when selected allows only the pin number change (same as the current feature), but because the fifth part is not ticked, this allows a different graphic with different numbers and locations of pins.
If you want this new feature to behave as the old feature, you tick all the parts listed in the new window.
If you want three the same and two different, just tick the appropriate three.
Here is a rough example.
You want to create a symbol of six parts, with the first five interchangeable.
You select the “select interchangeable units”, a chart pops up with 6 (in this case, because that is what was selected in the number of parts).
You mark the parts you want interchangeable (graphics and pins the same, pin numbers only alterable), and any part not selected can be edited as you wish (different graphics and pins).
If you place a cross in all the boxes, you have the same result as the current feature.
I wouldn’t worry about the exact details of the UI now. Let the boffins work it out.
I think the safest way ahead is to leave this option in place until a more encompassing feature can be developed to fulfill the promise of capturing the equivalence information for use downstream. This could allow more than one group as I have suggested. As you have noted, the current option is simply the special case of all units belonging to the only equivalence group for the symbol.
As a librarian for my company I have to contest the claim that the current implementation does no harm. I had more then enough cases where colleagues used the function without knowing what it does and in the process creating a completely crippled symbol which I then had to redo from the ground. I don’t think I ever have used it for its intended purpose with how our internal library rules are laid out. As it cost me a lot of time I am fully on the “exterminate the ‘feature’” side.
I would like to see all of these confusing to newcomers features hidden behind an “advanced” button and all defaulted to off.
I would like to be able to define unit groups that are equivalent. Copying can be a nuisance if you go off grid
I have seen that tried in several programs (for example VLC) and in my opinion, the feature is useless and counter productive. In such programs I very often go searching for some “advanced” setting, very early after starting to use a program, and then can’t find it, and have to enable the “advanced” menu’s, just to have access to a single (but important to me) setting. For newcomers it is also common to not know all functions of a program, and just ignore most of them. I often remember menu locations, and when menu options change later when the advanced feature set is enabled, the positions of functions in menu’s change, and that triggers re-learning, which is a nuisance. When I see an option to enable “advanced” menu’s in a program, I’ve learned to enable them the first time I become aware of it.
But I also see that KiCad is loosing it’s simplicity and ease of learning it now it is getting many more advanced features. When I started using KiCad (about 10 years ago) I was quite impressed by it’s simple but yet powerful capabilities. Different people have different minds, that work in (subtle) different ways. I guess it may be beneficial for some to start with a sub set of the menu’s.