Dynamic Components Alignment

We are developing a mechanical constraint solver, and it might (hopefully) make it to V6. If it does, it will allow more control over pad/component placement. I thought at some point about developing the ‘proximity’ grid as mentioned by @elekgeek but I’m probably too ignorant for the moment :slight_smile:

Tom

2 Likes

Never heard OCD. If well understand here it can mean something as obsessive going to perfection.
I have it all the time (need not to be triggered :slight_smile: )

It was KiCad (unfinished - work interrupted a year ago) copy (as better looking) of Protel original. The original (from B&W documentation):

If you align R21 with R9 you will end with smaller GND plane (to left of R21).
OCD - the bigger GND generally the better.
This bus is one direction - the source is at the right. The closer the resistor to the source the shorter the track having higher dU/dt so better.
The line below R21 is digital. The line from R36 is going to A/D converter.
OCD - the bigger distance between them (and more GND) - the better.
At top-left there is the L from DCDC converter. I couldn’t moved it farther to the top or left.
I tried to go with tracks as far away from it as possible.
You see the peninsula to the left of R5. It is GND to isolate the bus from those three lines over it. Don’t remember now what they are.

All these are very small improvements. But I believe that the sum of small can rise to something not to be ignored.

Even my actions have 0.0001 influence at EMC the ‘look better’ has absolutely 0.

A bit off topic but i always thought such tangling parts of a GND plane are actually bad so i generally tried to avoid them. (Is my info wrong or are there vias that are just not shown?)

I always have the problem with it. The long cursor helps but the addition lines triggered when you are in aligned position can be helpful.

Vias are not shown and the bottom is all GND plane.
What for the peninsula has a bigger end what certainly had to be made intentional and not that it just happened to be done that way.

Ninth: Use the anchor + long cursor crosshair. It works in a similar way than in the Altium example. Every footprint has an anchor. My footprints have the anchor in the centre of the footprint. I align even non identical footprints, for example 0805 and SMA using the anchor.

Many times I also use your second method, editing the coordinates. Or selecting one of them, hitting the space bar and moving the second footprint until the X or the Y matches zero.

Ha,ha, you already knew the functionality would not change. There is another electronic design law: when in doubt about two layouts of the same schematic, the one looking better works better.

1 Like

nice work :clap:

anyway, your argument still doesn’t render this feature useless :slight_smile: nevertheless it doesn’t harm to mention what the more important stuff are, we are all ears.

To be clear – I’m not talking about visual lines only, but an alternate grid. Things can snap only to points defined by X/Y lines going through other items’ snapping points or other relevant points.

(EDIT: naturally the original point of the current item would also be among the grid points, just like it’s now possible to move in one direction without moving horizontally/vertically even though the item isn’t currently in the grid.)

I’m waiting eagerly for the constraint system, but it wouldn’t render this kind of grid system needless.

This system would need refinements to be optimally useful. There should be user settings to turn different kinds of snapping points (or other relevant points) active/inactive. There should be different settings for pcbnew and fp editor (and eeschema and sym editor, respectively). There should be a hotkey to turn this grid on/off i.e. switching between the normal grid and this one, and possibly switching between complex and simple version. Complex would uses all the points from the user settings, simple would use only similar item’s points.

As you can see, this wouldn’t be based on proximity of one item, but would make it possible to align many different kinds of items with each other’s critical points. Graphics, vias, tracks, footprints, pads, text…

One is lack of possibility to set colors for net showing lines and to hide GND net (if someone uses more than 2 layers then probably need also to hide VCC (or other power nets).
It bothers me much more than alignment problems.
But as I heard it is done in 5.99.
Currently you had to manually edit the netlist or to place GND zone and frequently press ‘B’ key because withou it the GND net lines are shown after one or two moves of components.

The other is clearance settings not for simply net but with specifying that clearance being defined from-to. For example a isolated part of your PCB. You should be able to define the Net class containing all nets belonging to isolated part and then specify for example 4mm separation from any net in that class to any net out of that class.
I don’t know if that is planned in V6.

The other could be possibility to make element classes and for example specify for each class the width of thermal connections to elements from that class. For example you will be able to define the Medium component class (1206) and Big component class (SMB, electrolitic THT capacitors) and specify that connections as 20 mils for medium and 30 mils for Big and it should work for all zones. The default setting (I think need not be separate for each zone - but opinions can be different) will work for all components you don’t put into any class with specified thermal connections.

I’d like to have an effect on thermal connections if they are horizontal end vertical. In my current project I used varistor breaking the isolotion. I wonted thermal connection to avoid soldering problems but I wonted to get at least 3 thermal connections but KiCad insisted on thermal connections at 45 degrees. I had to make waves at my zones at both sides of isolation to get it being connected with 3 connection. It would be no problem if I could forbid 45 degree connections.

When you use elements with small pitch you frequently would like to have the small tracks with small clearance only near that IC then to have the bigger clearance. It is currently not possible. Of course nobody forbids you to route the tracks with bigger clearance that you have set. But if you need to push any track then you lose the clearance you have done and you get the small one you had to set to be able to connect to that IC pins.

I’d like to have round tracks. I use them when doing windings at PCB. But for me it is less important.

I think there are other (more experienced people) to have other important needs. I had never designed the PCB with more that 2 layers (except one small containing only winding as with 2 layers there were not enough coils).

I think all that I have written is more important then alignment.

I hope you added some images to explain what you meant. concerning 5.99/6.0 do you know when it will become possible? also I heard there will be 5.1.7

#7 did really kill me :smiley:

What, from what I have written, needs an image to be understood?

I don’t know. I can only speculate that may be in 1 year and may be in 3.

It is probably stable enough to be used now. I plan to finish my current PCB and then install current 5.1.7 version available.
But, as you ask such questions I can assume that you may be expect something new in 5.1.7. It is not true. The assumption is that 5.1 with any number after next dot have exactly the same user interface. Only bugs are fixed.

You can follow what’s going on in Post-v5 new features and development news. Colored nets are already there. So is the beginnings of the new DRC rule system which should enable what Piotr hoped for clearances (although not necessarily all use cases in 6.0). See Need some guinea pigs for a rule-based DRC <<PROTOTYPE>> (it’s an ongoing work and discussion and a lot has changed and will change, but gives you ideas about the possibilities).

1 Like

I think the way you used it made perfect sense. But since we are discussing word usage, one common misspelling of yours that I always notice is your misspelling of “want” and it’s various tenses. I’ve avoided mentioning it since I can understand what you wanted to say, but it always trips my reading flow. Please don’t take this as an attack, rather it should be taken as constructive criticism to help you better master what is likely your second (or third, or fourth) language.

(Red traces on white background screenshot above)

Much like Rene, this really triggers my OCD as well. (You guessed right about OCD, it stands for Obsessive Compulsive Disorder.) But I’d probably be more likely to switch from 8 individual resistors to a single 8-resistor isolated network package here.

And to be honest the term OCD is probably misused by us. I doubt either of us really suffers from this disorder (It is however a common misuse as there really is no better term that would fit).

Rene is right, and BTW, the “symptoms” would point to https://en.wikipedia.org/wiki/Obsessive–compulsive_personality_disorder rather than OCD.

It’s not rare that people use names of diseases or disorders humorously, but sometimes it may feel offensive to those who actually suffer from them or to their relatives (like in case of alzheimer’s disease or dementia which causes great pain to the loved ones).

2 Likes

How can it be a disorder when we want order? If anything I suffer from OCO. :rofl:

OCD is a serious illness (just google for ‘severe OCD symptoms’) and making jokes of it is IMHO very inappropriate. Please stop. You’re all just picky about board aesthetics :wink:

My 5 cents
Tom

4 Likes

I did suffer from it at a certain point in my life and it is a little off-putting to see people making fun of it all the time, but I’ve got used to that.
But then, it’s not fun. It’s a disease that heavily overshadows one’s life.
Rude postings are flagged/banned/silenced. Making fun of a disability (that’s what it is) is not…

2 Likes

Most people have traits of different kinds of disorders. Or said in another way, a disorder is an extremity of certain group of personality traits.

We could say that a disorderly layout triggers someone’s Compulsive-Obsessive Personality Traits (COPT) if the person feels uneasy and would like to change the layout because of that. Would that sound non-offensive, yet leaving room for chatting without obsessive sensitiveness?