Anyone succesfully using Sketchup to create/export 3D shapes?


Hi all,

I want to create some 3D shapes for modules i’ve made.
I made a test and have drawn a DB9 and a HE 10 connector. They look nice in Skecthup (SU)

Following a tutorial, i installed a STL export plugin in SU (v 2015) and exported my sketchs.

I then tried to import them in Wings3D, but it crashes.

I tried to export directly from SU to WRL format and used this in Kicad but it does not show in or is completely out of scale.

Any help is welcome…


I’ve made some rudimentary 3D stuff with OpenSCAD and it has some sort of tutorial online how to convert this data to a format that doesn’t crash Kicad. You may want to find that (not at hand ATM, sorry). I haven’t tried it myself yet, my “designs” are pretty much worse then rudimentary :thumbsdown:



The current advice is to use Freecad + Kicad Stepup (This workflow generates MCAD compatible step files used for mechanical design and wrl files for nice renders.)

I think i got kicad to accept stl files in the past. (Generated with Blender)


Hi and thanks for the answers,

After some (well a lot) of tries, i finally managed to create two 3D shapes.

I used ::

  • Sketchup to draw my 3D shape and export it with a STL export extension
  • Wings3D to postwork on the design (cleaning and colors) and export it in WRL format
  • and finally imported it in Kicad

Wings3D is (for me) a PITA to work with. A lot of work has to be done on the models.

FYI, my main problem was a origin setting in the models and when imported, they were there but completely out of screen in Kicad.

I finally switched to Freecad which produces STEP format 3D shapes that can be directly used by Kicad. The learning curve is a way more difficult than with Sketchup, but it’s certainly worth the work.
One more argument is that the future 3D models with Kicad 5 will use only STEP models which can’t be made with the upper method.

I uploaded my first model in my fork of Github. I don’t know how it can added to the 3d packages, and who will do that.



This is not true. Kicad will in the foreseeable future support wrl.
The reason for this is that wrl has better material properties and can therefore create better renderings.

Just create a pull request on the repo.


Ouch !

I probably mixed up while searching in the forums.

So, what solution is recommended when i want to create and share packages ? My Sketchup tests are not so bad, but the results need to be converterd…

I tried to pull a request, but no way… Github also needs some learning. not very intuitive.



@Rene_Poschl sugested already a good workflow: Freecad + Stepup.
The KiCad 3D libraries are now moving to provide both STEP and WRL files. You can create STEPs with multiple softwares. STEP files will be directly supported. If you want to tweak materials for more customized renderings the best solution will be use Stepup to assign good materials and create WRL files.
Users will have to choose in the Footprints when to add/use a STEP or WRL…


The new Kicad 3D library is accepting only modules with STEP and WRL model, so there is no chance to submit models from Sketchup to the new library. Unfortunately Sketchup doesn’t support STEP exporting and any other supported format will not be converted to step without losing mechanical properties.
The path is to model the part in a mechanical sw that can provide a step export option.


Hi !

I thought Stepup was to export FROM Kicad and not TO… I need to create shapes and use them with Kicad.

If WRL will still be supported, than my original idea using Sketchup will be still working. The (for me) only painfull step is the Wings3D phase.

Anyway, i created a shape with Freecad and that works fine, even if more painfull than Sketchup.

I still couldn’t find out how to offer my shapes with Github. The pull request needs to compare before pulling, and i have nothing to compare !



Everything i describe below might be doable in a git gui. But i describe it via the command line commands because this should work for everyone. (Each gui looks different)

Atlassian has nice tutorials for git in general (Might be of some help for dealing with the git side of things.)

If you want to contribute to a repository for which you do not have write access, you need to do this via a pull request.

For that you first need to fork the repo in question. (This creates a copy of the repo in your personal github account such that you have write access to it.)

Next clone this repo to your local device.
(More detailed description of the clone command)
git clone [web address of your personal fork]

The git clone command sets up your local repo such that the so called origin points to your personal fork.
It is advisable to also have a pointer to the repo to which you want to contribute. (Such that you can merge changes that are made by others back into your personal repo. This is especially important if you plan on contributing more than once.)

To achieve this i normally simply add a second remote called upstream.
(Atlassian tutorial about syncing)

git remote add upstream [web address of the repo you want to contribute to]

Now your local repo is setup and good to go. Lets prepare it for a new pull request.
For that you first want to sync your personal master branch with the official repo. (Not necessary for your first contribution. If you use the detached head method i describe below you do not need to do this.)

git checkout master (makes sure you are on the master branch)
git pull (makes sure your local master is in sync with your remote master)
git pull upstream/master (This gets your local master in sync with the official repo)
git push (This gets your remote master in sync as well.)

You should always create a separate branch for each pull request. So lets create a new branch.
(Atlassain what are branches)

git checkout master
git checkout -b [branch name that makes sense to you]
git branch --set-upstream [my_branch] origin/[my_branch]

Now everything is ready and you can make your changes locally.
If you are done (or want the current state saved on the server) you need to commit your changes and push them.

git commit -m "[A meaningful commit message that tells you and others what you have done.]"
git push

If you are happy with your local changes you can create a pull request via the github web page of the repo you want to contribute to.

If a library maintainer requests changes you can simply push them to the same branch. Make sure you are on the correct branch before you start to work. The order of operations is:

  1. git checkout [my_branch] (use the same branch name as you used above)
  2. git pull
  3. do your changes
  4. git commit -m "[Another meaningful commit message]"
  5. git push

With luck your contribution will be merged at the end of this process. (It looks worse than it is. It is also not the only way of doing it. Might not even be the easiest. But it is the workflow that i use.)

Detached HEAD method:
instead of keeping the master branch of your fork always in sync with the master of the official lib repo you can work from a detached head. (Don’t think to much about the terminology.)

For that i assume you have added the official repo as upstream. (As described above.)

When creating a new pull request you don’t do the sync step of pulling from upstream but instead you fetch the upstream master and create the new branch from this branch.
git fetch upstream
git checkout upstream/master (After that you get a message that you are in detached head. This is why i call it this way.)
git checkout -b [my_branch]
git push --set-upstream [my_branch] origin/[my_branch]

This has a lot less commands to remember. But it might be harder to understand for a beginner.


I am not an expert, but Stepup does import boards and footprints from KiCad … but just for align proposes.

If it is just for you and it works for you then is OK.
However for other users (if you plan to share your models) will not accept WRL files, they may only accept STEP formats. This will be the case when working with external 3D CAD softwares for mechanical proposes and mechanical validation.


Hi René,

Thanks for this looong tutorial.
Well, i’m not sure to be ready to learn to work around this Github. Far too complicated for my casual use.

I will send my shapes to anyone who is ready to help and push them. Otherwise, they will stay “at home”.

Anyway, i will give it a try with a cool beer and more time…

Thanks a million,


As i wrote it is not as complicated as if looks at first glance. (It’s just a lot of steps that need a bit explaining such that you don’t run against a wall if something goes wrong.)


you are not an expert :stuck_out_tongue:
StepUp can be used to:

  1. export KiCad PCB and parts to a 3D mechanical model as STEP or as a FreeCAD file
  2. import directly a KiCad pcb and parts in FreeCAD to create a 3D mechanical model
  3. import directly a KiCad footprint in FreeCAD to check 3D model fit and footprint drills, measure
  4. create/edit a KiCad pcb Edge using FreeCAD sketcher and pushing it back to KiCad pcb
  5. convert the STEP 3D model of parts, board, enclosure to VRML with Materials properties for the best use in kicad
  6. check interference and collisions for enclosure and footprint design

StepUp are a set of Tools to Collaborate between ECAD and MCAD
please have a look at StepUp cheatsheet
KiCad StepUp Cheatsheet


Hi René,

I hopefully succeeded in push a new package in the “fuseholder” repo. Can you check this ?

I can’t find a repo where i can add a coil…

Is it possible for me to create a new one ?



Inductors_THT or Inductors_SMD should be the correct repos. (for footprints)

Footprint repos can only be created by the library owner (currently @SchrodingersGat)
If the footprint repo exists, everyone can create a directory for the 3d shapes in the packages3d repo. (Give it the same name as the footprint repo. Example: for the Inductors_THT.pretty lib create a Inductors_THT.3dshapes folder within the 3d model repo)

It is always a good idea to link the thing you are talking about. (took me a while to find it.)
Is it this pull request?


Yep it is ! Sorry…
What is the next step ?

Will put my 3dpackages in “Inductors_SMD.3dshapes”…

Thanks for your help.


please have a look at GH message from @Rene_Poschl