Kicad StepUp: The Sketcher for Getting to Blinky

finally I have completed my kicad StepUp WorkBench for FreeCAD and it has just been merged to the official FC repo.
So it is now possible to install StepUp using the FC addon installer just with a simple click!

In this new WB there are some enhancements:

1) The Sketcher for Push and Pull KiCad pcb Edge from the FreeCAD powerful Sketcher
BSplines and Ellipses are also allowed
(please read the Cheat sheet for configuring: the best is to use grid origin in KiCAD and configure it in ‘ksu-config.ini’)

2) Cheat sheet pdf file and Demos available in the ksu WB menu

3) Main buttons available directly in the StepUp WB Menu

4) An other great boost in speed when creating pcb board with thousand of drill just using multi-thread (available only in FC 0.17)

5) Interference and Collisions checker available also for hierarchical STEP models

PS: Please note that if you have previously installed kicad StepUp as Macro in the Macro folder, this will not be updated. Simply delete this macro and use the WB buttons (the configuration file will be the same).

Many thanks to all that have downloaded and are using my tools for MCAD Collaboration…
I have reached almost 20K downloads in 2 years :smiley:


Kicad StepUp: a new UPDATE
Import DXF with arcs from OpenSCAD, FreeCAD or LibreCAD into KiCAD
Exporting 3D model of PCBs
Rounded corner PCB?
Unable to import graphic file
Start a new pcb without schematic
Tutorial: Introduction to PCB design with KiCad version 5.1 (Getting Started)
Edge.Cuts error
Drawing origin in Kicad
How do I create an arc? I need a slot on board edge
STEP export problem, board outline
STEP export "Cannot determine the board outline"
Creating a Board cut using FreeCAD
Edge.Cut Arcs Changing causing discontinuity
PCB shape from enclosure STEP file
KiCAD/FreeCAD mechanical collaboration
Kicad StepUp: a Seamless ECAD/MCAD PCB Data Integration
A few question about libraries
KiCad 5.0 should I upgrade from 4.07?
Pcbnew DXF outline import reference point is not stable
Removing Copper Pour from outside PCB boundaries
Complex board outlines
Editing (x,y) coordinates of dimensional measure after placement
Panelizing for multiple boards
PCB missing from step file
Mechanical alignment in Pcbnew
Creating a pad from a DXF import gives error
Major feature request regarding drawing
KiCadStepup board fails to load
Acute isosceles triangle and KiCad Rounding?
How to draw an irregular border for kicad?
KiCADStepUp load board failed [solved]
PCBNew How to trim PCB's Edge Cuts?
DXF file import is incorrect
Drawing a rectangle
Margin or Edge.Cuts
KiCad-StepUp Export to STEP Changes FreeCAD Project
Proper way to do it... fit in an enclosure
Suggestion for generation of rectangular and circular board outlines
PCB Edge Tool in Nightly Builds?
Mirror image of a board outline
Problem trying to import DXF files
Error while exporting a .dsn file
Importing splines from DXF file to kicad from Fusion 360

Thanks for the excellent work! The installation with the Addon Manager could not be easier, it worked very well on FC 0.17/Win7. Looking forward to try out the new features.


Hi @maui,
i can’t thank you enough. The Add-On is gorgeous. I just needed to briefly fly over your “cheat sheet” and had my first .igs in less than 10mins.



which Freecad version is needed? because I have 0.15 (linux mint stock) and it doesn’t have addon manager in the tools menu :frowning:

never mind, I already found the addons_installer.FCMacro, I needed to run the macro from the macro menu and create the folder macro inside .FreeCad but now is there!

1 Like

thanks, I’m glad you appreciate the new WB :smiley:

please consider that iges is an old format, not more updated. I would suggest you to export the models / boards to STEP which is a more recent format, still in development and much more supported by FC code.

1 Like

I did this at first, but FreeCAD exports the PCB with each Component as seperate Modell. Which is fine, but my PC can’t handle that detailed a reference Modell. With the “.iges” it runs at least a bit smoother. It also comes as “one thing” and is easier to hide from the Modell browser.

Simply fuse the components of the board first. (Use the boolean union function of the part work bench)
Maybe also setup stepup to ignore smaller parts like small resistors

1 Like

As @Rene_Poschl already suggested the Union of Parts is the simplest approach. You can make a Union also by the ksu ‘make a Union’ button

An other option is to move to FC0.17 and save Step file as Hierarchy. Then you will have a single object with many sub-parts, but all as child of the main one.
This is a bit risky because FC0.17 is changing a lot and you can have some build with issues, quite often fast patched though. At the same time you will get many goodies from the new version of FC :wink:

An other option again, if you use FC as CAD modeler, is to save the board as a Compound of PCB + Parts in FreeCAD native format and use it as a single object inside your design.

In general, if you need to check your design for enclosure, as @Rene suggested, it is useful to configure StepUp to ignore small parts and/or make bounding boxes of Parts not relevant for the enclosure, leaving only connectors as full detailed models.


1 Like

@Rene_Poschl, @maui
Thanks a lot for pointing this out :slight_smile:. This will shurly help me with future Designs.

Thank for your work. I just tried it and I discovered that If I set a transparency to an object in FreeCAD (say 75%), I lose it when exporting in VRML.
Macro v has same problem, but new version also set transparency to 0 in FreeCAD after exportation.
Is that normal or is a bug?

You have two methods to conserve transparency when exporting an object to wrl:

  1. Clicking on the button to export to kicad wrl and step with ‘use wrl materials’ selected, apply a material which have a transparency to the color you want to export (i.e. a blue face -> glass blue)
  2. Export the 3d model parts as separate objects and instead of applying a Material to the transparent object, apply ‘as is’; this will produce only wrl and not step file… then you can make a single copy of the parts of your model and make a union of them and export the step but skip the wrl.
    Both methods work with StepUp old and new.


1 Like

Thank you for your answer. unfortunately it didn’t work for me. I made a single object in FreecCAD, a cylinder. I selected “use wrl materials” in Kicad tools window, then press export to Kicad. I then changed the material to glass blue and generate the wrl and step files. I opened the wrl file with Freecad, with freeWRL, and with Kicad viewer and the result is the same: the object is not transparent.
I didn’t tried your second solution as I have a single object. Maybe I’m doing something in the wrong way?

PS In Kicad I just tried to select the object and in that windows the object is not transparent. I now tried to click ok and import the object and now is transparent.
Maybe in kicad first selector windows 3d is not supported. (and the same in Freecad if I reimport it) But this is not a problem for me. NOW IT WORKS in kicad.
Thank you.

I forgot to tell you I added F.Fab anf F.CrtYd beside F.Silks to footprint loading in FreeCAD as per your needs as Librarian :wink:

1 Like

Wow thanks. (and a few more words to have 20 chars)

I still have a problem. After “export to kicad”, in Freecad my Transparency value is erased and return to 0.

If you mean that when exporting i.e. a cube with 50% of transparency to wrl and step you will get a wrl with transparency, a step without transparency (not supported in STEP format) and your cube in FC will be changed to lose transparency, that is correct. The tools are aimed to export FC models to STEP and WRL, so the FC MCAD model will lose the transparency as it will lose the STEP model because of STEP format. If you want to preserve your model transparency in FC, just make a simple copy of it before exporting.

1 Like

needed to make a pretty funky PCB shape, so I decided to give Sketcher a spin :slight_smile:
took a few hours to understand how to use the sketcher properly, but it works very nice :slight_smile:
Thanks for the great job as always @maui keep the good stuff coming :slight_smile:
Im wondering if some of the construction data could be stored in comment.user layer or something, since you lose almost all your constraints etc when going freecad -> Kicad -> Freecad

1 Like

Hi Frank,

fortunately there is a trick to keep all the constraints… :wink:
It is a hidden feature that I’m happy to disclosure :smiley:

The ECAD/MCAD collaboration works in that way:

  1. Start your board in KiCad designing a very basic pcb edge (a simple square or even a circle) and add a Grid Origin to the board
  2. Pull (load) the board (even without an edge or with a ‘proto’ square edge) in FC
  3. Design your pcb Edge in FC using all FC Sketcher facilities (included Ellipses or BSplines)
  4. Save your design with the Sketch as FC file
  5. Push your Edge to a KiCad pcb file
  6. Design your tracks and place your modules and 3D parts in KiCad
  7. In case of some Edge modification, Pull the board in FC (that will load the pcb Edge loosing your previous assigned constraints) loading the new position of parts
    Here comes the tricky part:
  8. Load the previous release of your KiCad board as FC file
  9. Copy the Sketch of your previous release to the new one (Copy/Paste the Sketch between the two FC files)
  10. Delete the unconstrained Sketch
  11. Make the Edge changes to the previous release Sketch
  12. Push back the Sketch to your KiCad board.
  13. Save the new release of your pcb Edge as FC file.

This is a Push-Pull procedure with a sort of versioning of your Edge and PCB tracks.
One important note:
You need to assign into your KiCad pcb file a static design reference since the beginning.
The reference is:
a) Grid Origin (suggested)
b) Drill and Place offset (this will affect also Drill output of your gerbers)
and configure also StepUp to use Grid Origin (as suggested in the Cheatsheet)…
in ‘ksu-config.ini’ set:

placement = usegridorigin
;; placement options
;placement options: useauxorigin, usebaseorigin, usebasepoint;x;y, usedefault, +autoadjust

Following this versioning procedure you can keep your Sketcher always up to date with your board, and keep also the original geometries and constraints that will be lost in KiCad.