Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IDF import/link support #625

Closed
azonenberg opened this issue Jun 3, 2020 · 9 comments
Closed

IDF import/link support #625

azonenberg opened this issue Jun 3, 2020 · 9 comments
Assignees

Comments

@azonenberg
Copy link

This would be very useful when using solvespace to design enclosures for PCBs.

https://en.wikipedia.org/wiki/Intermediate_Data_Format

@phkahler
Copy link
Member

For bare PCBs this file format should be fairly easy to read and could be "converted" to an actual SovleSpace file. The board outline and cut-outs are defined by line and arc entities that could be directly represented by SolveSpace sketch entities. The board thickness is given, so an extrusion could be created from the outline. Drilled holes are defined separately but could also be included as part of the 2D sketch. Keepout regions are defined the same way and could be imported as some other line style.

Components are another story, but they're not much more complicated than the PCB itself.

Google search for "IDF file format specification" turned up this:
http://www2.me.rochester.edu/courses/ME204/nx_help/en_US/graphics/fileLibrary/nx/tdoc_pcb/idf_v3.pdf

You know, for anyone that wants to write an importer and learn more about solvespace internals! ;-)

@phkahler
Copy link
Member

phkahler commented Sep 27, 2020

Having written a crude importer for IDF boards, I think the better approach will be Linking. The distinctions is this: Import creates a SolveSpace sketch (and maybe extrusions etc...) from an IDF file, but they will not be fully constrained and not exportable as IDF, so the best use would be to save it as .slvs and then link it into an assembly. Instead we should allow directly linking an IDF file. That's what I'm working on here:
https://github.com/phkahler/solvespace/tree/idf-import

@phkahler phkahler self-assigned this Sep 28, 2020
@phkahler phkahler changed the title IDF import support IDF import/link support Sep 28, 2020
@phkahler
Copy link
Member

phkahler commented Sep 29, 2020

Looking for feedback on a preliminary implementation in PR #725. Also looking for a simple PCB design with routing keepouts and some components (in IDF format with both files). Use NewGroup->Link / Assemble to bring in your board.
IDF_link

@phkahler
Copy link
Member

@azonenberg I merged IDF linking support to SolveSpace master. Part placement is still not there so I'm leaving this issue open.

@azonenberg
Copy link
Author

Will test soonish. Been busy w/ other stuff and haven't had time to test.

For the most part I'm primarily interested in PCB outlines, not components.

@phkahler
Copy link
Member

For the most part I'm primarily interested in PCB outlines, not components.

You may find it useful then! thanks for the response.

@phkahler
Copy link
Member

The circuit boards (.emn) can be linked in version 3.0 final but will not show board keepout regions. There is a new Pull Request that shows keepouts as construction lines which should be merged soon.

Parts files (.emp) are not supported yet. I have not been able to get a design from anyone with the part placements. Someone sent me a pair of files for a KiCAD project, but the part file was empty and the board file had no part placement info (makes sense if the part definitions aren't there).

@ghost
Copy link

ghost commented May 17, 2021

Parts files (.emp) are not supported yet. I have not been able to get a design from anyone with the part placements. Someone sent me a pair of files for a KiCAD project, but the part file was empty and the board file had no part placement info (makes sense if the part definitions aren't there).

@phkahler, Here are some IDF PCB examples on GitHub:

For example, here is .emn + .emp made with KiCad:

@phkahler
Copy link
Member

Closing since the PCBs can be linked. Not many people are using it, and no one has requested that we add the ability to load the parts file too. Let's call this done until further notice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants