Component rotation

Question is simple: How to select right rotation for footprint?

JLCPCB is very good example reason customer can see with own eyes what he order. After import position file and BOM I can see with my own eyes it assembly.

This is not JLCPCB question, general. It is same problem as I can see in JLCPCB. I sent my files to other supplier. Same question as I ask myself. “Why only few components are right rotation? Components are just where it must be, but…” “this IC is 180 degree rotated”, “this connector is 90 degree rotated”, “some diodes are ± rotated”. So. When supplier import position file, he must print assembly drawing to paper and check every component rotation and polarity.

So. How I can edit Kicad footprint it meet reality? When I put footprint to design, it is just right. Of course. But in position file rotation is always wrong. So- how I can adjust position file rotation and reality same? So, “position file is just same as I see”?

Different manufacturers use different “standards” for orientation of parts, and over the last 40+years or so, the assembly houses have gotten used to manually correcting rotation issues.

An often used but quite faulty way is to define orientation from the way the SMT parts are located in the tape. The problem with this is that different manufacturers of compatible parts may use different tape orientations. sometimes you can even order different tape orientations for the same part and from the same manufacturer.

Maybe OBD++ is better in this regard then Gerber. ODB++ claims itself to be “better” then Gerber, but from what I have read about it, they compare themselves only with very old and obsolete Gerber variants.
To me it’s just another proprietary standard, and KiCad does not support it and therefore I never looked into it’s details.

As @paulvdh explained - different standards. This was (inconsistency between KiCAD and JLCPCB footprints’ rotation) discussed many times here on the forum.

Read here:

I’ve been checking it manually / visually before, but apparently (as mentioned in the above link) this plugin does the job and I’ll try it in my next project with JLCPCB: