Correcting the orientation of 3D models

G’day. Very new to KiCAD.

I have imported the model for this part from Mouser but when it is displayed in the 3D model it is upside down (J5).

1436628 Phoenix Contact | Mouser Australia

image

How do I correct this?

Cheers

Open the footprint editor
Browse to find the footprint
File → Footprint properties
Switch to the 3D Models tab
Change the rotation using the Rotation X:, Y:, Z: controls
Click OK to save.

Enjoy

1 Like

I have read (few years ago) that using this method have some disadvantages. As I remember from 9 values (3 scales, 3 rotations and 3 offsets) using only one (don’t know which one) of them is ‘save’. I don’t remember for what it is important and if it is still so. May be for exporting 3D to be used in 3D CAD programs.
Because of it I correct 3D models positions using KiCadStepUp in FreeCAD and left default values of scales, rotations and offsets in KiCad.
May be it is some old, not existing now problem. Someone knows more?

Hey I think that worked - thanks!

Still feel like I’m diving in deep and hacking things that shouldn’t need to be.

I’ve been using a lot of vendor-provided step models and haven’t had any problems so far. All step exports have worked as intended.
Usually, it’s 1-2 rotations and 2-3 offsets.

I remembered where I saw it. It’s still there. In kicadStepUp-cheat-sheet.pdf you see:

and

For now, I’m using KiCadStepUp only to save my FreeCAD models to files for KiCad and to position the 3D models found on the web.
But in order not to hinder a wider use of KiCadStepUp in the future, I adhere to these requirements, even if I do not know what they result from.

This is not because of some “bug” that rotation or scaling does not work. It is more a “good practice”, that when using 3D models, the model itself should be constructed in such a way that additional scaling or translation should not be needed. This is even officially specified in the KLC

The 3D models must be aligned and scaled appropriately to match the associated footprint.

When dealing with 3D models from external sources, it is not realistic to expect them to conform to the KLC, and for those models there is an option to rotate and translate them in KiCad.

3 Likes

That doesn’t fit the word ‘mandatory’ used there.

Also doesn’t fit to “rotate (xyz 0 0 z_value)” what allows one parameter being not 0.

The texts from StepUp-cheat-sheet do not seem to me to describe only good practices. They clearly suggest to me that perhaps an operation in StepUp that I have never used has some problems when the 3D model position is modified. Maybe the author simply knows that in one or two transformations he ignored coming from KiCad parameters for modifying the model position.

You’re overthinking it.

I had not seen that document before, but found a copy on:

My first question would be: What is the origin of that document? Who wrote it, and what is their relation to KiCad?

But such questions are not very important.
I remember an old KiCad version where offsets and rotations were added to 3D models in the default libraries, and making it “mandatory” to clean this up brought some order in the chaos.

If that is so, then it is a bug and that bug should be fixed.

I do recall a vague memory. I think part of step files is that rotation of an object can be defined in the step file itself. So there is a difference between rotating a 3D object in the step file, or defining a rotation in the step file without rotating the object itself. And this is yet another set of coordinates compared to the rotation / translation of the 3D model upon import. And a 4-th level of rotation is added while positioning the footprint itself on the PCB.

But to me it’s just “good practice” to define objects in files as they are. When you start adding different rotations and translations on top of each other you just create more room for errors to creep in and confusion.

1 Like

The best way to handle this situation is to use the KiCad StepUp tool that is a plug-in for FreeCad.

AFAIK the origin of that document is from @maui. He is the developer of the KiCadStepUp plugin for FreeCAD. AFAIR his relation to KiCad is he is a user like you and me. I don’t think he is a KiCad developer, nor a librarian.

As for the why in the footprint the scaling should be all 1s and rotations and scalings should be set to all 0s is probably because that is what StepUp expects. But @maui is the one that should give the definitive reason for why. (Which is why I’ve invoked him.) :wink:

Please note that all (most) of the KiCAD 3D libraries are based on FreeCAD scripts that I started as my own 3D library.

that was the resulting repository
https://github.com/easyw/kicad-3d-models-in-freecad/FCAD_script_generator
then moved to gitlab

and here at KiCAD the mention to be a contributor (with all the other contributors to the original 3d libraries)

StepUp allows all the offset and rotation, but it is not suggested to use it in a 3D library.

.

exactly that… 3d libraries were based only on vrml models (kicad was not able to read STEP format) These vrml models (useless for mechanical integration) were added with positions completely arbitrary and even some of them scaled (what should completely avoided in a mechanical environment).
Then the librarian agreed in writing a KiCAD Library Conventions following the above rules.

I think the source of uncertainty is the use of the word mandatory in a cheat sheet. English is not my primary language and I can understand something wrongly, For me if something is only not suggested to be used you can’t tell that it is mandatory to set it to 0.

If someone tries to tell me something is “mandatory”, I go though some unwritten checklist, and first make an estimation whether I trust that person and his judgement, and also whether that person is of importance to me.

If you met a stranger on the street, and he told you it is mandatory that you give your wallet to him, would you do it, laugh at him, or just shrug your shoulders and ignore him?

I am not sure this is as big an issue as in the past, however I use KicadSteupUp exclusively to orient parts to footprints so the Kicad Scale is at all 1.0, Rotation at all 0 an Offset at all 0. This is to guarantee if I hand off the board to another MCAD to pull it into a bigger assembly, everything still looks correct.

Using StepUp:

  1. The wrl and step always match
  2. The scaling is always correct
  3. I don’t have to worry about an MCAD not reading the scale/rotation/offset wrong
  4. Once you use StepUp a couple of times, the workflow is faster than the Kicad dialog (auto-center, set on Z-plane, import of vendor STEP, etc.)

My 2 cents…

2 Likes

This is aimed to library contribution, then I should even not allow z rotation.
Moreover if you import the footprint in FreeCAD to align the 3D model to the footprint itself, you must have x,y,z offset to zero and at least x,y rotation to zero.
So mandatory is the correct word for the use of my tool.

this one is hilarious… ok, I will give your money back because you are not satisfied by the instruction to use my tool…
oh, I forget, the tool is free to download and use… so no money back :rofl:

2 Likes

I think the point is that models come from a variety of sources and some may need adjustment, for instance rotation or translation, before they will match the real component. There is no official standardisation for model design so this is entirely to be expected. @maui StepUp plug in is the easiest way to adjust the model to fit (and does a lot more besides).
The situation is different for official KiCad 3d models included in the library. These must fit the footprint with no rotation/translation/scaling involved and this is defined in the KiCad library convention. So, if you want your 3d model to be included in the official library, it is mandatory that it complies with the scaling and placement requirements.

As related to this topic (of Origin’s with respect to Electronic parts used in Kicad and elsewhere):

You don’t care but, Once upon a time I worked for two ‘Connector’ Companies, I was Director of Engineering for a division of JAE and a Senior Design/Development Engr/Mgr for AMP. Thus, many engineer’s designs came to my desk and I taught CAD to engineers. My comments below stem from that work and working with these clients: Ford, BMW, Volvo, Visteon, Delphi, Delco, Molex, Lemo, Takata, Dyonix, Wolf, Storz and many more companies. And, my own Patents/designs.

There are NO rules, laws, Industry Standards, etc about how to Model parts or where to place Origins. The choice of Origin placement is made based on Personal Preference, Anticipation of Future Design Changes, aspects that make modeling easier or more difficult, software being used, the original intended usage of the part… There are Drafting/Drawing standards but, no Modeling standards.

Take a look at several of the STEP files that come with Kicad (example screenshots below show Origin’s in different locations… I opened them in FreeCAD) Origins are difficult to see so, I drew Yellow ring around them…

Does anyone really think that an engineer sitting at his/her desk is thinking about what Kicad, Altium, Fritzing, Fusion, and the host of others need for Origin?

The parts shown are:
Molex 55560_0601
Molex_AE_6410_09A
CUK_JS202011CQN DPDT
SW_DIP_SPSTx03_Piano
Fusion032_sp

I do not care about 3d models origin either. I make my models the easiest way I can find.

Then I match my model with its footprint with Kicad-StepUp.

This workflow is perfect to my needs.

1 Like