Trouble importing full 3D PCB into SolidWorks

Are you sure that SolidWorks will let a wrml or stl or any other mesh format be converted to a solid that is properly editable?

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… :wink:

sunny greetings
stefan

Some information on IDF and tools are here:

https://drive.google.com/open?id=0By_XTJN-s8aXbkM5UTE0Zm5SN28&authuser=0

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.

  • Cirilo

Hi @s_light, @mbarlow
please have a try with kicad StepUp script


I’m developing that and I would like to have feedback.
There is also a repository for parametric models that me and HyOzd are building up…

please have a try also with that

Thank you
Maurice

Hi all, Rob here - a new forum user.

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!).

Cheers,

Rob

Hi Rob,

Happy to give it a go!

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…

Hi Xavier,

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.

Thanks for your patience!

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!).

edit: http://pastebin.com/hStf5V57

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.

Looks good, re-registered. Received the email and activated the account. Now looking at how it works.
Thanks Rob.

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.

@jwr
if you need to export board an parts to SolidWorks you can use kicad StepUp exporter tool set.
Have a look here (it is a quite verbose post :slight_smile: )


and here for the new 3d aligner tool

and also here, for a nice review
http://hackaday.com/?s=Kicad
Kicad StepUp review
https://kicad-info.s3-us-west-2.amazonaws.com/optimized/1X/d8905139abd19e6d3cd3de78cf943cbfca9037e1_1_690x388.png
Feel free to ask or give feedbacks
Maurice

The IDF export will only contain the board unless you create and add some IDF outlines. If you want a STEP model you need to use Maurice’s scripts. If you’re happy with an IDF model you will need to create definitions for the component outlines (more documentation at https://drive.google.com/open?id=0By_XTJN-s8aXbkM5UTE0Zm5SN28&authuser=0). There are 3 command line tools to help create outlines:

  • idfcyl: creates a cylindrical model which may have a lead on one side when vertical or an axial or radial lead when horizontal
  • idfrect: creates a rectangle which may have a chamfer or a single lead
  • dxf2idf: creates an IDF outline definition from a DXF outline file

If you wish to use IDF outlines they are easily scripted; the following is a sample script to produce the components for the pic_programmer demo board:

# large horizontal axial caps
idfcyl << _EOF
in
h
x
0.2
0.8
0.05
0.04
1.0
axial_cap.idf
_EOF

# vertical inductor L1
idfcyl << _EOF
in
v
r
0.30
0.35
0
inductor.idf
_EOF

# generic resistors
idfcyl << _EOF
in
h
x
0.08
0.3
0.02
0.035
0.4
r40generic.idf
_EOF

# diode, 0.5" pitch
idfcyl << _EOF
in
h
x
0.1
0.3
0.02
0.04
0.5
diode_050.idf
_EOF

# diode, 0.3" pitch
idfcyl << _EOF
in
h
x
0.08
0.2
0.02
0.035
0.3
diode_030.idf
_EOF

# dual caps
idfrect << _EOF
in
0.3
0.1
0.3
0
n
dual_cap.idf
_EOF

# LEDs
idfcyl << _EOF
in
v
r
0.1
0.2
0
led_5mm.idf
_EOF

# VR1
cat >vr1.idf << _EOF
.ELECTRICAL
“VR1” “PIC_PROG” THOU 110
0 -300 150 0
0 -300 -150 0
0 200 -150 0
0 300 -50 0
0 300 50 0
0 200 150 0
0 -300 150 0
.END_ELECTRICAL
_EOF

# dual caps
idfrect << _EOF
in
0.4
0.35
0.3
0
n
p1.idf
_EOF

# ZIF-40x0.6
cat >zif40x60.idf << _EOF
.ELECTRICAL
“ZIF40X60” “PIC_PROG” THOU 150
0 -1350 400 0
0 -1350 -400 0
0 -1450 -400 0
0 -1500 -350 0
0 -1600 -350 0
0 -1650 -400 0
0 -1650 -450 0
0 -1600 -500 0
0 -1500 -500 0
0 -1450 -450 0
0 750 -450 0
0 750 -600 0
0 800 -650 0
0 900 -650 0
0 950 -600 0
0 950 -450 0
0 1200 -450 0
0 1250 -400 0
0 1250 400 0
0 1200 450 0
0 -950 450 0
0 -950 600 0
0 -1000 650 0
0 -1100 650 0
0 -1150 600 0
0 -1150 450 0
0 -1300 450 0
0 -1350 400 0
.END_ELECTRICAL
_EOF

# TO-220 (horizontal)
cat >to220H.idf << _EOF
.ELECTRICAL
“TO220H” “PIC_PROG” THOU 180
0 0 150 0
0 200 150 0
0 200 200 0
0 800 200 0
0 800 -200 0
0 200 -200 0
0 200 -150 0
0 0 -150 0
0 0 150 0
.END_ELECTRICAL
_EOF

# J1 (DB-9F)
cat >DB9F.idf << _EOF
.ELECTRICAL
“DB9F” “PIC_PROG” THOU 520
0 650 -100 0
0 650 600 0
0 300 600 0
0 300 950 0
0 -300 950 0
0 -300 600 0
0 -650 600 0
0 -650 -100 0
0 650 -100 0
.END_ELECTRICAL
_EOF

# TO-92, +45 orientation
cat >to92-45.idf << _EOF
.ELECTRICAL
“TO92_45” “PIC_PROG” THOU 300
0 24.497 74.497 0
0 -74.497 -24.297 180
0 -17.077 -65.561 0
0 65.561 17.077 0
0 24.497 74.497 0
.END_ELECTRICAL
_EOF

# DIL8x30
cat >dil8x30.idf << _EOF
.ELECTRICAL
“DIL8X30” “PIC_PROG” MM 4
0 4.675 -4.06 0
0 4.675 -3.24 0
0 4.9 -3.24 0
0 4.9 3.24 0
0 4.675 3.24 0
0 4.675 4.06 0
0 -4.675 4.06 0
0 -4.675 3.24 0
0 -4.9 3.24 0
0 -4.9 -3.24 0
0 -4.675 -3.24 0
0 -4.675 -4.06 0
0 4.675 -4.06 0
.END_ELECTRICAL
_EOF

# DIL14x30
cat >dil14x30.idf << _EOF
.ELECTRICAL
“DIL14X30” “PIC_PROG” MM 4
0 8.485 -4.06 0
0 8.485 -3.24 0
0 8.71 -3.24 0
0 8.71 3.24 0
0 8.485 3.24 0
0 8.485 4.06 0
0 -8.485 4.06 0
0 -8.485 3.24 0
0 -8.71 3.24 0
0 -8.71 -3.24 0
0 -8.485 -3.24 0
0 -8.485 -4.06 0
0 8.485 -4.06 0
.END_ELECTRICAL
_EOF

# DIL18x30
cat >dil18x30.idf << _EOF
.ELECTRICAL
“DIL18X30” “PIC_PROG” MM 4
0 11.025 -4.06 0
0 11.025 -3.24 0
0 11.25 -3.24 0
0 11.25 3.24 0
0 11.025 3.24 0
0 11.025 4.06 0
0 -11.025 4.06 0
0 -11.025 3.24 0
0 -11.25 3.24 0
0 -11.25 -3.24 0
0 -11.025 -3.24 0
0 -11.025 -4.06 0
0 11.025 -4.06 0
.END_ELECTRICAL
_EOF

# DIL28x30
cat >dil28x30.idf << _EOF
.ELECTRICAL
“DIL28X30” “PIC_PROG” MM 4
0 17.375 -4.06 0
0 17.375 -3.24 0
0 17.6 -3.24 0
0 17.6 3.24 0
0 17.375 3.24 0
0 17.375 4.06 0
0 -17.375 4.06 0
0 -17.375 3.24 0
0 -17.6 3.24 0
0 -17.6 -3.24 0
0 -17.375 -3.24 0
0 -17.375 -4.06 0
0 17.375 -4.06 0
.END_ELECTRICAL
_EOF

# DIL40x60
cat >dil40x60.idf << _EOF
.ELECTRICAL
“DIL40X60” “PIC_PROG” MM 4
0 25 -7.87 0
0 25 -7.3 0
0 25.225 -7.3 0
0 25.225 7.3 0
0 25 7.3 0
0 25 7.87 0
0 -25 7.87 0
0 -25 7.3 0
0 -25.225 7.3 0
0 -25.225 -7.3 0
0 -25 -7.3 0
0 -25 -7.87 0
0 25 -7.87 0
.END_ELECTRICAL
_EOF

mkdir -p idf
mv *.idf idf

@jwr
here you can see the demo board converted to SolidWorks, by the kicad StepUp exporter tool

Thanks. I looked at the StepUp exporter tool, but was scared away by the apparent complexity of the export process.

Also, I’m not clear on whether StepUp will only work for the components whose VRML (.wrl) files have been converted to STEP? (in particular, the little subset shipped with the StepUp exporter tool?). This is the impression I got from reading the starter guide.

I am silently hoping this will all get rolled into KiCad one day, so that I can just click Export and be done with it :smile:

@jwr
the process to export the board to STEP is just one click
the only relatively complex part is to prepare the 3D library

to convert board and parts, you need to have a library of 3D STEP format parts (that will be necessary also when the new 3D refactory will be available, you will have to get IGES models instead of STEP)

Basic How To '(using kicad StepUp the easiest way)'
(not changing the way you use kicad)

1. just copy the STEP 3d models in the same folder in which there are your wrl 3d models and use the same name of the wrl model name (e.g. r_0603.wrl => r_0603.step)
2. go to your board folder and copy the script kicad_StepUp.FCMacro, the config file ksu-config.cfg and the file ‘launch-kicad_StepUp-demo.bat(sh)’ inside that folder, edit the config file ksu-config.cfg with e.g. notepad changing your model prefix to your KISYS3DMOD path, edit the config file launch-kicad_StepUp-demo.bat(sh) file adjusting FreeCAD path and pcbnew boad file name
3. export from kicad pcbnew the IDF model of the board NB export at Xref=0;Yref=0
4. run the script from command line or from a bash/batch file or with the command:
“path to Freecad executable file”/freecad <kicad_pcb_name.emn> ksu-config.cfg kicad_StepUp.FCMacro
‘(e.g. freecad mypcb.emn ksu-config.cfg kicad_StepUp.FCMacro)’
just watch the script assembly your 3D board with 3D models :slight_smile:

So the process is a bit complex only in configuring the 3D part library, which is not distributed with kicad…

some image of the 3D lib here:


I’m going to add more models to the 3D library I’ve done here, thanks to @Joan_Sparky:


if you go through the repo, you can find 3D models in STEP and VRML for:
chip resistors, chip capacitors, tantalum capacitors, aluminum capacitors, qfn ICs, dip ICs, qfp ICs, soic ICs, sot ICs, ssop ICs, tssop ICs

unfortunately arranging the 3D library is the most complex part in the exporting process… but when you have done it for one board, you have done for all :slight_smile:

Well, I guess I will have to get through this eventually…

I have one related question. Could you please explain the practical difference between STEP and IGES formats? Does IGES carry more useful information?

I’d like to know for the future, as I’m collecting my 3d model library.

1 Like