I don’t know if this an application limit or a bug but when I try to export the board in IDFV3 format I obtain a file that’s not useable from other CAD to import (FreeCad or DesignSparck Mechanical).
This problem arise often when I use round corners but sometime it worked with such features .
The release of KiCAD I’m using is 6097 (64bit version) on a Windows 10 64bit PC.
I’m a new user so I cannot upload images or files to further describe this issue.
could you upload the kicad board (only edge if you prefer) in e.g. dropbox or similar?
I would check if there is some prob in the board edge…
it is strange I did not have any prob with IDF export …
(Cirilo has done a great work with IDF )
I usually do it with a lot of non ‘regular’ edges…
Have you tried with the RC version?
In which OS are you working?
and which version of FreeCAD?
Note that the IDF export requires that you have a ‘closed edge’ board… I mean if you see correctly in 3d-viewer your pcb edge, you should get a good IDF exporting…
if you are involved in exporting kicad board and assemblies in mechanical CAD, you probably could find useful my script kicad StepUp
it is a useful script for ECAD MCAD collaboration process…
You can find some discussion in this forum at:
kicad StepUp at the forum
moreover, if you need 3D STEP models you can download some done with parametric scripts at:
FreeCAD 3D model parametric generator
and a discussion at this forum
of course I can share trough dropbox:
I’havent tried RC version but I’m pretty sure I would give the same results since I had similar problems with RC version on a different PC.
I’m running everything in Windows 10 64bit and using FreeCAD 0.15 64bit (4671).
Yes I know it can work olny with closed board outlines. The 3d view shows the board correctly but If I export it in IDF I got the result you can see from screenshots in the dropbox folder.
I found another error on this board . If I set the two main areas to be filled with a 1 mm fillet over edges the result is what you can see in the screenshot fillet_error.png
Everything happens also with 4.0.0-rc1-stable (64bit).
the board has small overlapping in the edge…
I’m going to post you a closed edge of your board…
probably the 3d-viewer is more tolerant to overlapping then IDF exporting is… anyway mechanical things require more precision
which edge? the overlapping never caused me a problem like this… anyway it should be something less than 1 cent of millimeter…
geometry does not admit tolerance…
here the board with emn, emp files from IDF export
CEAV0030b-closed-edge.zip (71.2 KB)
and the board edge in FreeCAD
and if you use kicad StepUp script
, the board with assemblies
(I included only some parts, just to show you the result)
You could file a bug in launchpad to ask for improving the IDF exporting, checking for close points in case of non closed path… something similar has been done for 3d-rendering…
In FreeCAD there is a Validate function to check if a path is closed, but FC is a MCAD oriented sw…
MCAD software will demand <0.0001 mm error at the very least but the IDF exporter is already very generous with accepting 0.001mm differences . You cannot have overlapping edges, gaps, self-intersecting curves, or multiple board outlines (this is a restriction of the current KiCad code as well as IDF). KiCad is perfectly capable of creating outlines which meet the requirements for a valid IDF export. If you put garbage in, don’t expect the software to work magic. The only deviation from the IDF specification in KiCad’s IDF exporter is the addition of blank lines to make the file easier for a human to read; I haven’t yet had any reports of problems with that so nothing has been changed.
Anyway, your problem is easy to fix: make a correct outline.
may be it would be nice to add an error message in case of non closed board (as it is in 3d-viewer), so to be warned where the board is open…
that will help the user to know that the problem is in his/her negligence…
anyway @cbernardo you are right … a good mechanical engineering requires a good design to start from…
I’ll check the code one day and throw an exception if there is no board outline.