Schematic junction implementation
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
Unknown
|
Bug Description
The next is copied from https:/
I'm not sure if this is the right place to talk about this, but I find the concept of independent junction dot weird. Junction should be a property of two or more wires crossing (or endpoints touching, or endpoint touching another line) and there shouldn't exist any junction without two wire lines.
From the standpoint of implementation it may be easier to have separate junctions but they should very strictly depend on existence of a wire crossing. For example, instead of
junction: xcoord,ycoord
there could be
junction:
wire: id
wire: id
But at least, if they are separate independent entities, they should be updated very stricly with any change made to wires. The update mechanism should be "waterproof". I've seen different situations when junction don't correctly reflect changes made to the wires.
It shouldn't be possible to add junctions where there are no wires crossing, and there should never be need to remove junctions except from where wires are crossing. "Add junction" shouldn't blindly add a junction dot, it should only make a junction out of two wires crossing each other.
tags: | added: eeschema |
Changed in kicad: | |
importance: | Wishlist → Unknown |
status: | Expired → Fix Released |
Some problems: see the attached picture. The junction dot was added automatically by KiCad when I drew the end of the vertical wire close to the other wire, but not touching it. However, when I update PCB, the net tie doesn't belong to SOMENET. I removed the automatically created dot from the C1/SOMENET crossing. However, after an update C1 belongs to SOMENET.
These, along with freely floating junction dots and dots in wrong places, should be enough to show that the concept of junction is poorly implemented, or is basically wrong.
Even at the moment I don't see a theoretical reason why junction items should exist at all. Every time more than two wire endpoints hit the same coordinates there's a junction (or are there exceptions?). When a junction dot is added to a 4-way crossing it actually cuts wires to segments and there will be 4 endpoints in the same coordinates. Adding a junction dot to almost-touching wire endpoint/another wire doesn't necessarily connect those wires.
A dot could as well be a visual property of a point where three or more wire endpoints meet, or a visual property of a pin endpoint where it touches a wire. Every such touchpoint would be a junction.
If there are junction items in the file is a matter of practicalness, but they should be more like a cache for "real" junctions and reflect them in all situations, immediately and exactly.
The only place where I see possible need for junction items is like in the attached picture where cutting a non-90deg wire isn't possible. Even in that case it could be forced if the endpoint of the vertical line would have the property "forced junction". It would connect any nearby wires with some radius (IMO the radius should reflect the visual dot size).
In the end I don't care if the junction items are kept in files. However, as I said, it should be implemented so that the user need to handle only real junctions, not junction items or dots.