realthunder / fcad_pcb

FreeCAD scripts for PCB CAD/CAM
MIT License
130 stars 24 forks source link

pcb.makeCopper(fuseCoppers=True) fails with some new pads #4

Closed easyw closed 6 years ago

easyw commented 6 years ago

Hi, following our recent conversation I'm uploading some boards with the following pads:

Moreover I'm attaching also a very simple case in which the pcb.make() works, but the pcb.makeCopper(fuseCoppers=True) not pads-board.zip pads-drilled-board.zip (please note that your test.kicad_pcb works just fine, also if saved in kicad v5... I've not found the solution to this riddle)

Thx in advance Maurice

realthunder commented 6 years ago

I have fixed issues shown in your files. And added round rect and polyline pad. I notice that the new KiCAD allows other primitive geometry types in custom pad. If you want those, please attach a file here, and I'll add it.

realthunder commented 6 years ago

Oh, just in case. You title is kind of wrong. 'fuseCoppers' argument is for make() method, not makeCopper(). BTW, I've updated readme file to show how to make just the shape without adding document feature.

easyw commented 6 years ago

Hi @realthunder Thx for going into this... I noticed that for roundrect board (rounded-rect-pcb.zip) there is an issue: Exception (Tue May 01 10:07:49 2018): shapes are not planar when running pcb.make() and it doesn't create the F.Cu with this command pcb.makeCopper(holes=True) and with this pcb.make(copper_thickness=0.035, board_thickness=1.53, combo=False, fuseCoppers=True )

I notice that the new KiCAD allows other primitive geometry types in custom pad. If you want those, please attach a file here, and I'll add it.

I just noticed them too ... I'll add a testing board... thx again Maurice

realthunder commented 6 years ago

Just fixed. Please try again.

easyw commented 6 years ago

those are fine now, thx 😄 I'm adding an other case in which the pcb.make(copper_thickness=0.035, board_thickness=1.53, combo=False, fuseCoppers=True ) is failing... with a NPTH pad here a board test case... test-NPTH.zip

realthunder commented 6 years ago

Fixed. This is caused by tolerance problem when cutting a round pad with a NPTH with the exact same size. So I enlarge all NPTH holes size by the same amount as the copper thickness. Is that okay?

Edit: I added a parameter to KicadFcad object named hole_size_offset, default to 0.0001mm, as the default hole size adjustment.

easyw commented 6 years ago

Hi @realthunder I still get an error on creation with test-NPTH.kicad_pcb and this command: pcb.make(copper_thickness=0.035, board_thickness=1.53, combo=False, fuseCoppers=True ) and with this pcb.makeCopper(holes=True)

realthunder commented 6 years ago

It works fine on my PCB. What version of FreeCAD are you using? Can you please show me the error message? And please try to set a larger size offset and try again.

pcb.hole_size_offset = 0.005
easyw commented 6 years ago

It works, sorry... it seems I didn't update correctly my fcad_pcb folder before re-testing the board. I'm going to close this issue and later, when I will have a test case, will open a new one for the new primitive geometry pads...