KiCad StepUp: The Sketcher for Footprint generation

BTW, there appears to be some problem with the latest build and the script crashes. I rolled back to an earlier commit. I posted the issue on your GitHub repository.

@steves it should be fixed now

would you post a fp sample case? Is it for a RF pcb?

Thank you for the fix.

Iā€™ll put a sample case together. My present use case is not an RF design specifically (but the techniques could be used for RF). Rather, my use case involves embedded passive components so some of the internal copper layers are used to form capacitors and resistors.

1 Like

Having a different problem with the recent commit:

13:10:47  PoM not present
13:10:47  using 'Part' container and 'Links'
13:10:47  FC Version 020-25541
13:10:47  Asm3 WB present
13:10:47  kicad StepUp version 9.7.5.7
13:10:47  tolerance on vertex applied
13:10:47  applying Materials to Shapes
13:10:47  your home path is /Users/stevenslupsky
13:10:47  export to STEP False
13:10:47  Tabified done !
13:10:47  done!
13:10:47  need to discretize Arcs
13:10:47  added circle pad
13:10:47  added discretized polygon
13:10:47  Running the Python command 'ksuToolsFootprintGen' failed:
Traceback (most recent call last):
  File "/Users/stevenslupsky/Library/Preferences/FreeCAD/Mod/kicadStepUpMod/kicadStepUpCMD.py", line 2065, in Activated
    kicadStepUptools.PushFootprint()
  File "/Users/stevenslupsky/Library/Preferences/FreeCAD/Mod/kicadStepUpMod/kicadStepUptools.py", line 16954, in PushFootprint
    sv0 = Draft.makeShape2DView(FreeCAD.ActiveDocument.getObject(Connect.Name), FreeCAD.Vector(-0.0, -0.0, 1.0))

Cannot access attribute 'Name' of deleted object

not having any issue ā€¦
please keep this conversation on gh repo issues
I need your FC full info version

@steves
I should have fixed both of your issues https://github.com/easyw/kicadStepUpMod/ latest commit/

Hi @maui Iā€™ve got another one that fails :slight_smile: Just as I was gaining confidence in my process, it didnt work :frowning:

My process:
Import step file
push 2 so that you look straight at it
KiCad StepUp WB
Delete duplicate part SOLID007 (this comes from me being lazy and mirroring the whole filter structure in the EM tool instead of designing each one individually)
Do a union on the parts
part workbench -> Part -> Create a copy -> Refine Shape
KiCadStepUp WB
Click 3D object to 2D projection
Click 2D object or DXF to sketch
Click RF Polyline Sketch (here I get the error)

21:21:59  Running the Python command 'ksuToolsEdges2Poly' failed:
Traceback (most recent call last):
  File "C:\Users\Dominik\AppData\Roaming\FreeCAD\Mod\kicadStepUpMod\kicadStepUpCMD.py", line 566, in Activated
    w = Part.Wire(selEdge.Object.Shape.Edges)

Hairpin-1-1.stp (146.1 KB)

Any idea what I am doing wrong?

I donā€™t have issuesā€¦
but why donā€™t you simply select from solid to solid006 and click on RF Poly Sketch?
This should just give you the Pads_Poly sketchā€¦
Have you updated the WB recently?


hairpin-1-1-sketch.FCStd (29.8 KB)

How does the polyline tool know which projection to use when you use 3d shapes? I thought I had updated the WB but it gave me a notification this time when I opened freecad saying that I was out of date. Both my tedious method as well as your much better one work with the latest version. My apologies! Thanks for your support :slight_smile:

1 Like

you are welcome

If you want to post or send the file with a pm, Iā€™ll check it with the ksu wb.

If you still have the will to create a tutorial, I would be happy to help.

PS in the KSU WB ā€˜Demoā€™ Menu there are some of the RF files used here for testingā€¦
There is the Notch filter with a Net Tie pad and the Transition Antenna with the fielding ā€˜viasā€™
In the sample files are specified also the assigned pin numbers

I will definitely make a nice write up. Though right now Iā€™m still struggling to get my own files to work so I feel I do not understand the process well enough yet. Iā€™m trying the net tie now but I canā€™t even get the main footprint to generate with only 1 pad. Maybe it is failing because of the arcs? How do you troubleshoot these issues?
Lowpass-2-2.FCStd (81.3 KB)
Lowpass-2-2.stp (248.3 KB)

You must check there is NOT a double shape overlapping in your 3d modelā€¦
Iā€™m attaching the ā€˜cleanedā€™ model, in which I have deleted the double shapesā€¦
(in your step file ā€˜SOLID011ā€™ and ā€˜SOLID025ā€™, ā€˜SOLID012ā€™ and ā€˜SOLID026ā€™)
(to check it just simply hide a shape and check if there is an other visible on the same place)
Applying the tool to that ā€˜cleanedā€™ model, it works flawlessly.
Here the reduced file and the resulting Sketch (I simply added a circle to the sketch to finalize a pad poly structure):
Lowpass-2-2-cleaned.FCStd (49.3 KB)
lowpass-2-2-cleaned.kicad_mod (4.5 KB)


Hey @maui, Thanks, I had checked this, though after I clicked the polyline tool and created the sketch. Looking at the sketch, there were no duplicate lines so I thought it was OK. Shouldnt it have caused an issue with the sketch it generated? Or I guess more simply, what is wrong with the Pads_Poly sketch that is in the file I posted? To me these two seem identical except that one works and the other doesnt.

I tried to reproduce what @maui explained and tested your design, I got also an empty footprint, but then I realize that the instructions are:

and looking at your sketch I saw that your circle is not ā€œinsideā€ of the pad poly structure.

So I changed this:

to this:

And it seems to be working, as I could connect a track to the pad:

> 14:36:12  PoM not present
> 14:36:12  using 'Part' container and 'Links'
> 14:36:12  FC Version 019-24276
> 14:36:12  kicad StepUp version 9.7.6.2
1 Like

Yes! I just noticed this too. The circle is tangentially inside so perhaps the algo doesnt like this. Iā€™ve been making the circles like this on all my footprints without any issue to ensure the pad is centered. Of course there are other ways but this seemed the quickest. Maybe I just got lucky and on this particular footprint it didnā€™t work as intended. In the future Iā€™ll do little ones instead. Good find!

1 Like

in your sketch there is a circle tangent to the external polylineā€¦ this may lead to some issue in the code generating the footprintā€¦ (in some occasion it may work as for the NetTie sketch)ā€¦
In general the circle should be, as pointed out by @der.ule, fully inside the polyline
I tried to avoid this limitation, but ATM I cannot in some user caseā€¦

Would you mind to check the new update?
I should have solved the circle pad when the circle is tangent to the polyline.
You could also test the option to specify padNumbers (and Bottom or Internal layers) for footprint generation.


Lowpass-2-3.FCStd (81.2 KB)
lowpass-2-3.kicad_mod (5.0 KB)

I will check it when I get home tonight. Could I recommend using ā€œNumā€ instead of ā€œNbrā€? I think it is the more standard abbreviation.

now both padNbr and padNum are allowed

Just tested it and it all seems to work perfectly! Thanks for all your work! Pad numbers are automatically assigned and the tangent circle pads work as well. One thing I noticed, the keywords ā€œNetTieā€ are camelcase whereas the keyword padNum and padNbr are not. Would it make sense to make them PadNum and PadNbr just so the syntax is easier to remember?

On a separate note, how do you recommend splitting step files where there is ā€œextraā€ stuff. Iā€™ve been using Part->Compound->Explode Compound from the file menu and then deleting the extra stuff before using the StepUp WB Union button. I suppose the union step is not needed and I can go straight to the Polyline sketch button, right?

nice!

you donā€™t need to union the shapes, you can just go straight to the polyline sketch button to get the final sketchā€¦ all the job is done internally