Y axis flipped in footprint editor

Yes i know. it often happens that 2 or more systems arise and only one wins which is what we all want or it becomes chaos. As i said above the only way to make the 2 systems work is to numerically flip all of one of the coordinate values in the 3D space in this case the Y axis or maybe the Z so that things line up again so the step model would have to be reprocessed. In most things we would not even notice as they are symetrical packages anyway.

The patch set currently being reviewed address only the layout editor “pcbnew”. The framework to handle axis direction control and origin translation in other apps is included but UI support will come later. I expect the footprint editor will be next.

Since these patches affect only how coordinates are presented to the user and not the internal representation, these patches don’t cause compatibility problems.


You guys are probably all too young to know this.
Computer terminals used to start in the upper left corner and so did graphics when it came along.
Upper Left = (0,0) is the historical convention for many computers.
Numbers increased to the right and down.

I started programming when using 80-column punch cards was standard, then moved on to 80x24 character terminals (ADM3A and VT100). Graphical displays were something most people dreamed about using.

While the internal addressing of coordinates on a screen is interesting trivia, it’s utterly irrelevant to a CAD user. It makes no more sense than expecting the user of a word processing package to understand the internals of a disk drive.

Quite, screens are not CAD Humans read top to bottom but if i am in 3D space I tend to go up into the oir not down into the ground. Until we all walk around upsidedown Y+ will be up not down.

Hey, don’t blame us Yanks for this. I know we are pretty backwards with our absolute refusal (and failure at least once) to adopt the metric system. (Except for one stretch of interstate from Tuscon to Mexico where the highway is measured in km that was done as an experiment. There are enough locals that are fine with it, (and some even enjoy the novelty), there doesn’t seem to be any significant effort to normalize it to the rest of the interstate system measured in miles.) But KiCad’s origins are French. Blame the “Continentals” if you want, but this is one time that us Yanks aren’t to blame. :wink:

1 Like

uh, when did i blame the yanks for anything? I just pointed out that you use a diferrent 3D drawing projection system an that it does not matter. I’m happy with either for drawing projections but I’d want to stick to one only for the sake of not having to check everytime.

Now the coordinate system I do not get, up is up, end of.

In a mathematical 2-D plane, the terms up and down are meaningless. How they are represented on screen or paper is quite arbitrary.

In reality, many different conventions are used and no-one seems to mind. People say “I’m going up to London”. You go up to space, you go across to London. Well, unless you live in a deep cave under London I suppose.

But if the convention is that increasing distance from the centre of the Earth is up, then Y is not up. Otherwise all our maps are wrong.

For some reason, some people get riled by KiCad even though it makes absolutely no difference whatsoever to the schematic or layout. Unlike water, electrons don’t flow down hill.

Since this is about the tenth time we have had this thread, it will be nice to have a patch so we never ever have to talk about it again!

It’s in the works. And no i am sorry but KiCad does use a convention that is not used by most people. It is cantrary to all 3D CAD environments.

And no I never go “up” to London, that is a victorian convention where in a non spatial convention all trains going to london went up and all trains coming from came down with all trains starting/ending at london. For it’s use at the time it worked and was accurate as in effect the railway system was viewed metaforically as a cone.

But we are looking at actual 3D space here. As i said if the X+ went left then you can say that it is turned around 180 degrees. My question arises not because I saw the Y+ pointing down but because I realise that this system is not the same as every 3D CAD system that will be the source of a 3D model. And as confirmed KiCad currently does the flipping internally which i was not aware of.

If I am lazily describing my movements on a 2D map, i say up for going north and yes I have had to navigate across europe in both directions called lef right and right left when we went south because i prefered to be able to read the text.

KiCad was originally a 2D only application. Computer 2D is most often top left origin because that is the way television works. When KiCad started development long ago the maths of flipping the Y axis would have seriously slowed screen drawing and added to memory requirements.
If you are old like me, you will remember when tuning DOS extender memory settings was a necessary ritual for running complex software on a PC


CAD stands for Computer Aided Drafting. CAD software is drafting software, not computer graphics software. Drafting (enigneering drawing) uses the Cartesian coordinate system. This has been the case for a long time, before computers were even invented.

To be nitpicky: The left handed system is a completely valid cartesian coordinate system :wink:

carthesian only means that you give the point as the projection to your axis system. This is opposed to the polar system where you give it as a radius plus angle. (There is no requirement for rotation direction. There is however a requirement that the axis are perpenticular to each other and scaled in the same manner. The mathematics can be generalized for any axis system even ones that are not perpendicular with different scaling for every axis. These things are then simply called vector spaces. Isn’t mathematics fun?)

And the discussion is kind of moot anyways. (I grant you it is fun.) KiCad right now always uses a left handed system. A change to that can not be made in v5 because this is how the release cycle is defined. v6 will get an abstraction layer that will allow not only to select the handedness of the coordinate system but also the origin. (Not sure if rotation will also be possible but that would then be just another setting)
The files will stay at the left handed system as it is required for compatibility reasons. (Users should not care about that and devs will simply need to live with it. It is an arbitrary decission anyways)
This abstraction layer can be seen similar to the current imperial mode. The user will simply see all coordinates as if kicad internally works with that coordinate system.


Y axis polarity seems to have become KCads little endian vs big endian religious war and getting personal, I will not tolerate this so I am closing this topic.:policeman: