I need to import a 3D model of my PCB with components into SolidWorks. My design consists of a rectangular PCB, parts from the stock KiCAD footprint library (SSOP, 0603, etc…), and custom footprints with custom 3D models. In KiCAD, the board renders correctly. However, I am having difficulty importing the board with components into Solidworks using the VRML export. Regardless of the VRML export options, I have been unable to get the actual components to appear in the imported module.
When importing the main VMRL file, the board appears as expected in Solidworks, with vias, SMT pads, and silkscreen, but no parts at all. I can load each part’s VRML file separately, and each part’s imported model appears correct. This was tried with both relative and absolute paths on export with identical results.
As a second data point, I experienced the same issue with FreeCAD until I switched to “Absolute” paths on export.
Right now I don’t know what the problem(s) is(are). Has anyone seen any problem like this? Any suggestions on tackling this problem?
I asked Cirilo Bernardo who is a big contributor to the 3D import/export stuff on IRC. He recommend using IDF export (if the version of SolidWorks has CircuitWorks) for several reasons.
The SW VRML importer is awful; you’re lucky if it doesn’t crash
well, so it should be good enough reason not to import VRML unless you’re very desperate.
Possible issues with the parts themselves not loading are:
Maybe the SW VRML engine does not follow links
The links may be bad so the references VRML models are not found when the link is followed
but another big reason for not using the VRML import is that many of the VRML models do not have sensible sizes.
The models Cirilo have created in his VRML model project all have sizes which conform to published datasheets. Others do not - for example the stock DIL8 package in the repository is very obviously wrong.
I can import it into MeshLab, and export as .STL, but SolidWorks will not import it as a solid body (only as a graphic body or mesh) due to too many vertices.
I think FreeCAD can convert between a mesh and a solid object, but I can’t get it to load the VRML file as a “mesh”.
My understanding is that it will if you have the correct import settings. I have been able to import individual pieces and generate solid bodies from those pieces, but they are apparently small enough on their own to work.
The 3D export options in KiCAD are also somewhat lacking - I can’t disable a lot of unnecessary shapes on export. Each letter on the silkscreen, for example, consists of dozens of vertexes. I can’t pare down the board rendering options to just mechanical (non-PTH) holes and part models.
Another user requested it recently (in fact it was first requested about 2 years ago) so all text and tracks can be removed as of 2014-12-20, so your version of kicad is just a few weeks too old:
timestamp: Sat 2014-12-20 17:13:51 +0100
message:
Add option to VRML Export for Plain PCB (patch from Cirilo Bernardo)
If your copy of SolidWorks has CircuitWorks I would recommend using IDF instead since you have an exact representation of the board. VRML models arcs using line segments so the holes are never really round. The IDF export also eliminates all vias since they are of no importance in the solid model and only add complexity to the model.
i have tried to import a exported wrl into solidworks -
the import of the pcb itself worked.
but the importer can not follow the links in the wrl file.
one option to fix this would be to write a (python)script that merges the individual parts in the main pcb file…
next time i get access to solidworks i will try the IDF way - that sounds interesting -
are there some more details about IDF? i have read about it the first time…
There are a few bugs in to documentation but I haven’t had time to properly edit it yet.
The documentation will appear in the official KiCad documentation project once all
KiCad documents have been migrated to asciidoc format and I will find some time to
edit it then.
IDF can only produce very simple extrusions to represent components, but this is not
a problem. On the MCAD side any critical component models are simply replaced
with better models. The only real down side to IDF is that you need SolidWorks Pro
since the IDF import is provided in CircuitWorks. To provifde a format that’s more
universally supported without the expensive additions like CircuitWorks I’m working
on an IGES implementation.
I was involved in the development of CircuitWorks a few years back, and just to echo what Cirilo’s said above, using CircuitWorks to read IDF files would have the advantage of giving you properly editable solid models in SolidWorks rather than surface data from VRML.
There are two versions of CircuitWorks in SolidWorks - the full product which was only in SolidWorks Premium and above, and CircuitWorks Lite which is in all flavors of SolidWorks. So every SolidWorks user will at least have the Lite version.
There are a few differences between the two tools; CircuitWorks creates assemblies, and can use a component library and hence can create detailed models. CircuitWorks Lite creates a single part file with extrusions representing the components. As a result you’ll get a less detailed model, but one that’s ideal for checking space constraints or performing thermal analysis.
To use CircuitWorks Lite, you need to select ‘IDF’ in the ‘Files of type’ drop-down in the SolidWorks File > Open dialog. Don’t forget that IDF files are two files on disk, so you’ll need both parts of the file saved in the same folder with the same name but different suffixes. E.g. circuitboard.emn / circuitboard.emp.
Full CircuitWorks for SolidWorks Premium users is a separate Add-In - you’ll have to enable it under Tools > Addins in SolidWorks.
I now work for Autodesk rather than SolidWorks, and we’ve been working on an online ECAD to MCAD tool called ecad.io (www.ecad.io). It’ll read IDF and can output STEP, so this might also be an option (and we’d certainly value the feedback if anybody fancies giving it a try!).
I just tried that and wanted to register, but there was an SSL error when clicking on the “send” button.
I retried registering but it said my username was taken.
So I tried logging in, but it said my account was still awaiting activation from the email and now, around 4 hours later, I still haven’t received it…
Thanks for giving it a go (or at least attempting to!). If you remember anything specific about the error message that would be really useful. If you could let me know what browser and device you’re using that would be a big help too.
We’re in the UK, so everybody has called it a night, but I’ll take a look at the site’s database tomorrow and see if I can find out what the status is with your login and get back to you.
Ahh, I just tried again (different username and email address) and I know why the email didn’t get through: “The SMTP server requires a secure connection or the client was not authenticated” error message.
I have a full capture of the log / screenshot if you need it (it’s rather long!).
Thanks Xavier, that was really helpful to us. I forwarded it to a colleague who now thinks he’s solved the problem.
Unfortunately we had to delete your two existing failed registrations out of the database to fix the issue. Please could you try and register again? Hopefully it’ll work this time. Thanks again for your help and patience with this - please let me know how you get on.
Phew - good news. The site’s a bit low on help at the moment (we’re having some training videos done soon), and it’s still in beta, so you may encounter the odd issue, but hopefully it’s fairly self explanatory. Any issues please let me know via this forum, or you can use the ‘Contact Us’ page on the site. Thanks!
So — has anything changed in the last several months? I tried, and did not find a way to get the full board with components from KiCad into Solidworks. I can get just the board.
The EMN/EMP files seem to contain just the board, too.