EaglePCB importer for FreeCAD

Info about new community or project announcements, implemented features, classes, modules or APIs. Might get technical!
PLEASE DO NOT POST HELP REQUESTS OR OTHER DISCUSSIONS HERE!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
keithsloan52
Veteran
Posts: 2756
Joined: Mon Feb 27, 2012 5:31 pm

Re: EaglePCB importer for FreeCAD

Post by keithsloan52 »

Thanks Norman for making the effort.

I also note the mounting holes are not there. I think the problem is that the STEP files are the result of some user reverse engineering the thing. What it needs is a file created by the foundation from source as it were. But I am afraid to say that the Raspberry Pi foundation suffers from the "British Disease" and yes I am British.
keithsloan52
Veteran
Posts: 2756
Joined: Mon Feb 27, 2012 5:31 pm

Re: EaglePCB importer for FreeCAD

Post by keithsloan52 »

normandc wrote:You can get a more complete 3D model of the RaspberryPi Model B on DesignSpark's 3D Model repository but you need to register. Multiple CAD formats are available.

Edit: scratch that, here's a complete working STEP file that you can download without registration: http://www.tronetix.com/joomla/index.php/projects

Wish I had searched before spending time with those damaged files! :roll:
Thanks RS actually are a distributor so they should have a correct version. Still think a version produced by EaglePCB importer would look better as the STEP file I tried are not as detailed, but sufficient for casings etc.
marmni
Posts: 45
Joined: Sat Nov 30, 2013 3:53 pm

Re: EaglePCB importer for FreeCAD

Post by marmni »

File for Eagle from site that you navigate to is only library (board is one object), so it's impossible to generate complex 3D from that -> http://imageshack.us/photo/my-images/834/ftm3.png/.
In light version of Eagle you could create boards 100x80 so rasb should fit.
marmni
Posts: 45
Joined: Sat Nov 30, 2013 3:53 pm

Re: EaglePCB importer for FreeCAD

Post by marmni »

Hi,
I make 'few' changes in mod EaglePCB_2_FreeCAD:
- multi format supporting:
* Eagle (*.brd)
* Razen (*.rzp)
* FreePCB (*.fpc)
* gEDA (*.pcb)
* FidoCadJ (*.fcd)
* KiCad (*.kicad_pcb)
* IDF v2/v3
- support for generate path and pads for PCB,
- added function Explode and fast Explode - function is useful in making pictures for presentation/etc.,
- added part searcher in PCB,
- many changes in script code,
- managing parts directly from FreeCAD.

Next release features:
- PySide migration,
- export PCB from FreeCAD to one of supported file format,
- option create constraint area - something similar that is in CATIA,

Future features:
- From issue #1265
And, in future, it can have libraries of popular electronic parts, arduino-like boards, etc.
I think about connecting that request with Parts library browser.
- real time connection between some EDA software -> especially Eagle,
- I think also about adding cable routing options.

I would like to hear your opinions, criticism, ideas.
marmni
Posts: 45
Joined: Sat Nov 30, 2013 3:53 pm

Re: EaglePCB importer for FreeCAD

Post by marmni »

Hello,
I am just wondering about the multi format supporting of the EaglePCB_2_FreeCAD like is it able to support the KICAD files and is it is possible with it to convert the KICAD files to the Eagle files.
Mod i not a converter. Yes script can import and export from/to Eagle/KiCAD formats but not 1:1.

I would like also mention about new version ;). From this release it is not only importer, but also exporter (at this moment 4 formats are supported) and workbench that help You create board 'from scratch' in FreeCAD.
Changes from last version:
- create PCB directly in FreeCAD: at this moment only board (from next release it will be board object) and adding models (models saved in library)
- create Bounding Box for PCB: bounding box for all PCB parts or from selection
- it is possible to fix models position/rotation in special tool and save values in database - no reload PCB is necessary from now
- update parts directly from FreeCAD: no reload PCB is necessary from now
- export bill of materials (BOM): csv/html/txt
- create constraint area: Route Outline Top/Place Outline Top/Place Keepout Top/...
- export PCB layers to one of supported file formats: at this moment border and measure layers

Image

Future features:
- read holes/paths data from spreadsheet module
- descriptions on PCB

I would like to hear your opinions, criticism, ideas.
FreeRadical
Posts: 49
Joined: Sun Nov 09, 2014 9:48 pm

Re: EaglePCB importer for FreeCAD

Post by FreeRadical »

Hi marmni (and FreeCAD developers),

You asked for issues, so here goes. :)

1. File extensions for IDF

The IDF standard does not specify or even mention file extensions. I have found 3 pairs of file extensions in use. When I export to IDF in Cadence Allegro, there is a "File name type" option. It has three values:
  • IDF -> (default) produces files with the .bdf (board) and .ldf (library) file extensions.
  • PTC -> produces files with the .emn and .emp file extensions
  • SDRC -> produces files with the .emn and .pro file extensions
2. The .bdf file extension is already used by FreeCAD. Reading an IDF file with a .bdf extension creates something in the combo/tree view, but nothing is visible on the screen. No error messages are displayed. It doesn't look like the default .bdf open/import routine has good error handling (and doesn't let the user know).

3. In FreeCAD, how is the situation where two entities/modules use the same file extension handled? Is there a good way to get the correct result (force FreeCAD to use the correct file open/import routine)?

As FreeCAD supports more file types, we are likely to see more collisions like this.

4. Some documentation on setting up a part library would be nice.

5. Recent versions of Cadence Allegro have a similar capability to 3D render board assemblies; it requires STEP files. It would be nice to only have the parts in one format ...

If I use the .emn, .emp file names, your module works! 8-) The components are only boxes as I haven't set up the part library.

Thanks for reading!
marmni
Posts: 45
Joined: Sat Nov 30, 2013 3:53 pm

Re: EaglePCB importer for FreeCAD

Post by marmni »

Hi,

ad 1
There is few more extensions for IDF files.

ad 3
Yes, popup window will show with question which module use for that file.

ad 4
In next release (v 3.2, next few days) there will be manual for workbench.

ad 5
I don't agree. More file formats == bigger flexibility.

[...]If I use the .emn, .emp file names, your module works! 8-) The components are only boxes as I haven't set up the part library.[...]
So it mean that You load files not by my module :) PCB workbench does not 'support' .emn extensions (yet). IDF libraries are not supported by PCB mod, and never will.

If You want to try PCB module, change emn to idf (there was some reasons why I use idf extension, I will change this in next release). Some errors in IDF format was corrected in version 3.2 (they can appear in v3.1).
FreeRadical
Posts: 49
Joined: Sun Nov 09, 2014 9:48 pm

Re: EaglePCB importer for FreeCAD

Post by FreeRadical »

Hi marmni,

I tried the module v3.2 with an Eagle .brd file and it seemed to work well.

If I change the .emn extension to .idf, and Open the file, then the python console shows a call to PCBbrd.open() and the Report view says "Incompatible file format." If there was a new, unused window open, it is now closed after the error from PCBbrd.open() - that is an error. I've had something else close a new window in FreeCAD, so it might not be your module's fault.

The idf module opens up the .emn file fine (the only problem being the distribution is missing the .csv file for the part model library).

I've attached a simple example file. If I have time tomorrow, I'll try to add a little more interest to the example board.
HeightTest.zip
Multiple IDF exports from Cadence Allegro.
(4.47 KiB) Downloaded 157 times
In 5, I meant that since Allegro uses STEP files for part models, it would be nice to be able to use them in STEP format with FreeCAD, so I don't have to keep translating the models from STEP (our format) to IGES. Yes, supporting more file types is good. It looks like your PCB module now supports STEP!

Since I don't have an expensive mechanical CAD package available to me, I've been using FreeCAD to verify IDF export to mechanical CAD. I wanted to check out the capabilities of your PCB module. Right now, I can't use it for that purpose.

BTW, the documentation is looking much better! It's clear you've put a lot of effort into it.
marmni
Posts: 45
Joined: Sat Nov 30, 2013 3:53 pm

Re: EaglePCB importer for FreeCAD

Post by marmni »

Hi,
Ok, I think I fixed this problem with that message - I hate white characters :). In attachmnet You will find updated files - replace them in PCB folder

InitGui.py / PCBbrd.py - main folder
rest in subfolder formats

Please give me a feedback if it works (or not), so I can upload new version on project site. Thanks.
Attachments
new.7z
(6.42 KiB) Downloaded 164 times
FreeRadical
Posts: 49
Joined: Sun Nov 09, 2014 9:48 pm

Re: EaglePCB importer for FreeCAD

Post by FreeRadical »

Alright, it worked! I can view the bare board. I am using the new version of the IDF files (see atttachment).

Thanks, marmni!

It gave these messages:

The file was created in IDF v3.
could not convert string to float: C2
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
DeprecationWarning: Use 'TypeId' instead
Attachments
HeightTestv2.zip
Version 2 of IDF height test
(5.41 KiB) Downloaded 112 times
Post Reply