Kicad StepUp: a Seamless ECAD/MCAD PCB Data Integration


#1

KiCAD StepUp has added a Seamless ECAD/MCAD PCB Data Integration :slight_smile:

  • Push/Pull 3D model placement from/to KiCAD board to/from FreeCAD mechanical design
  • Ability to move 3D packages around on the 3D PCB mechanical sw, via both the X and Y axis
  • Tracks will not be touched by the placements done in the MCAD sw. All the routing will remain in KiCAD.

The syncing process can be done even if the board is (fully) routed (i.e. when a new release requires some mechanical reviews).

  1. Pull KiCAD board inside FreeCAD
  2. Move and Align the 3D model to the new placement in the enclosure
  3. Arrange the components nearby the new placement
  4. Move and Align the mounting holes to the enclosure supports
  5. Sync the kicad_pcb board file within the new design
  6. Check the result inside KiCAD and reroute the tracks
    that are affected by the new placement

This ECAD / MCAD process is a bi-directional PCB Data Integration with the ability to propose, accept or reject changes synchronously or asynchronously as seen on most powerful commercial CADs.
Please update StepUp WB through FreeCAD Addons Menu.

Just an addition to some DXF users:
StepUp can be useful also for PCB Edge designing:


KiCAD/FreeCAD mechanical collaboration
FAQ Index Thread
Import/Create FootPrint DXF
Insert comments in kicad_pcb file
Who uses KiCAD?
Step export Disable in KICAD 5 (Manjaro Linux)
How to create board outline and component placement from DXF?
Keeping electrical and mechanical designs in sync: Import model of entire PCB
#2

Hi,
please update the StepUp WB.
The latest release now has some improvements for ECAD MCAD collaboration and user experience.
First of all the configuration has migrated to the native FreeCAD preference Page:


Main configuration 3D prefix models paths can be configured simply using the folder browse.
All other config parameters are in the Page, within useful Tooltips.
NB: ‘ksu-config.ini’ has been dropped to the new preference Page approach.

New improved features are the generation of 3D diff for the models positions, and diff for pcb edge sketches.
Now the WB is allowing a sort of versioning for 3D model positions, generating a placement screenshot of a board revision, for an easy automatic comparing feature.
The same for PCB edge sketch, pushing the WB to a good level of mechanical integration.
PushPull Toolbar
image

For mechanical purposes, but that can be used also for aesthetic needs, StepUp now can load Top and Bottom Tracks and SilkScreen.
imageimage

And there is a nice goodie feature … exploding the 3D board:


Debugging step export
#3

@maui, this is excellent work as always.

A question: Let’s say the MCAD engineer has a place holder PCB model with the major connectors and mounting hole locations already mocked up in a bigger assembly. Is it possible to pull a 3rd party MCAD step of this PCB assembly into FreeCAD/SteupUP, then export the PCB outline, mounting holes and connectors back into KiCAD? Basically, create the initial board outline and major component locations in MCAD then push into KiCAD. I assume I would have to make some step model names line up for this to work.


#4

Wow, nice. Thanks for the tracks and silk!


#5

This should be the reason why I created & improved the WB :wink:

MD = MCAD Designer; ED = ECAD Designer; KC = KiCad; FC = FreeCAD; kSU = KiCAD StepUp
The workflow should be:

  1. MD would create a sketch of the pcb edge and mounting holes… (this could come also from a 3d model of the pcb converted to outline, as it is possible to get from enclosure manufacturers).
  2. From the pcb edge design (that could be a real FC sketch or an imported DXF converted to sketch using kSU WB tools) ED would push the sketch (edge converted) into an empty kicad_pcb file (or just a kicad_pcb file without any edge, with footprints and 3D models assigned).
  3. in kicad, ED would import all/some 3d footprint (i.e. the connectors) from a netlist and place them inside the kicad_pcb file in which the pcd edge has been previously pushed.
  4. in FC ED would pull the kicad_pcb with main connectors (using kSU) and export it to STEP, then export a report of placement to a file using kSU.
  5. MD would import the STEP hierarchy model generated from FC and kSU, aligning connectors to the real assembly needed for production, and the would export back the pcb + connector hierarchy model to STEP .
  6. ED would import the re-elaborated STEP model to FC and check what has changed its position through kSU (or just from a list of what MD had moved).
  7. ED would then select the 3D models moved and push those to the kicad_pcb to align KC design to the mechanical design.
  8. In case of changes in mechanical requirements the process would be repeated, aligning pcb edge/holes or 3D models to the new scenario.
    The process can be done all using FC, or through proprietary mechanical CAD, using FC & STEP format as vehicle (the commercial package need to be able to keep the STEP hierarchy during importing/exporting the mechanical model, but most known packages will do).

This is a push-pull process that is the ‘standardized’ workflow for ECAD/MCAD co-design used by the main commercial packages, available now with all open source packages.


#6

Thanks for the detail @maui. This is what we generally have been doing. MD pushes a DXF outline, ED imports DXF to KC and places parts, and then MD pulls KC/kSU STEP back into MCAD.

Many times the MD is already way ahead of the ED. I was looking for a way to do step 3 in reverse. Map the MD’s already mocked up parts to KC footprints.


#7

As always great work!! :smiley:
Wondering if we can import the eagle arduino boards in kicad to create nice and detailed 3D models using FC and our part library :slight_smile:


#8

Fantastic work! Looking forward to trying this out. Where does your ‘orientation cube’ (showing top, bottom etc) come from in FreeCad?


#9

you can do it…
you have three choices:

  1. just ask MD to send you details of 3D connectors and place those inside KC pcb at any place, and when MD will send you the new STEP model, pull the board from your un-aligned KC pcb file, and align the placement of the KC models to the MD 3D models (there is a button in kSU to copy placement from a part to an other in the same document); after that push those models placement to KC and check if everything is fine.
    copy-placement
    or
  2. kSU is assigning KC time stamp to 3D FC models… add the new connectors to KC at any position inside pcb, pull the KC board inside FC and copy the correspondent 3D label (which include the TimeStamp) to the 3D models to push back to KC, and push those to KC board.
    or
  3. add the new connectors to KC at any position inside pcb, use the synchronization button in FC to assign the Time Stamp related to the Reference in KC to the FC 3D model selected, and then push the 3D model position back to KC.
    sync-3d-models

I know I have to improve kSU documentation :wink:


#10

Thx! it took me about 6 months to fill your request :wink:
… but now we have a preferences Page also for StepUp in FC :smiley:

please let me know ìf there are issues on OSX… I made some tests, but I don’t use OSX with KC often…

it is available in FC 0.18 (it has to be enable in FC preference page)
nav-cube


#11

Thx :smiley:

please consider that tracks and silks will increase the 3D model weight up to 10 times… not too bad if saved in FC format, which zips the size, but very heavy if saved as STEP format…
Tracks can be useful to some mechanical tuning, and can be dropped when saving the model.
But I have to admit that tracks and silks may create a very nice rendering also in mechanical environment :wink:


#12

a nice rendering of a board with castellated pads, tracks and silk screen: