KiCad StepUp New exporter for 3D MCAD (feedbacks are welcome)

@kammutierspule,
in KiCad to MCAD point of view, it is not useful / suggested to use Wings3D models to produce VRML models, that will be valid also for the new 3D plugin that is going to be developed… If the new plugin will integrate iges models, I think the internal visualization will be generated from iges model and NOT from VRML models coming from Wings3D… so, IMO, leaving Wings3D asap is the point
I had a feedback from a user (you can see his comment in the kicad developers mailing list) that pointed out that in terms of MCAD conversion, populating the board with models coming from Wings3D is useless / time loosing…
Regarding documentation, I can tell you what my experience has been. I’ve followed instructions to get a complete 3D model I could view with PCBnew, assuming I was going to be able to export that to Solidworks somehow. For kicad users maybe would be good to know STEP procedure before generating all WRL models, or generating both at the same time.

VRML model is exported without any translation and with a scale of 1/2.54 to be adapted to kicad 1/10inch visualization (still I don’t know why this scale was introduced in 3d-viewer)
this is also Wayne point of view in standardization of 3D models, as in a recent developers discussion
STEP model has to be only aligned to the kicad footprint … that is the only annoying part in building your 3D lib
but I still have an ace up my sleeve… you will see asap :wink:
Anyway I observed, though, that a lot of STEP files from 3DContentCentral have the correct orientation and centering, so in many cases there is little else to do
moreover for most smd 3D models, me and hyozd have created a 3D parametric lib with STEP and VRML models already oriented and ready for kicad

so that is the best moment to spend some little time in trying the script :smile:

[quote=“kammutierspule, post:30, topic:1048”]
So, after get this StepUp script working, what will be your next contribution to kicad?! Would it be possible to port that script to C and embedded in kicad? as a tool?[/quote]
At the moment kicad StepUp can be used already as plugin, and with very small modifications it can also be invoked from kicad pcbnew python console … there are some small improvements in kicad python APIs that I asked for, but at the moment I think the focus is on the stable release…
I’m missing also just a simple button in pcbnew that could be configured to launch a python script from inside pcbnew itself… I will vote for that in a whishlist :smile:

why not? wings3d is a 3rd part and the kicad installer suggests the user to install wings3d beside kicad itself…
python is a 3rd part and it is already packaged with kicad…
FreeCAD will be a big companion of KiCad also because of the new 3d plugin refactoring

I agree and I hope people can start getting theirs models more from CAD files. That is why I started the improvement of the VRML parser… so I could get proper models from 3dcontentcentral and that is why you can now make your plugin work :smile:

but still kicad will support the VRML format… and if someone would like to add a 3D bunny to their PCB modeled by a non CAD software, using VRML format, they are free to do it :smile:

VRML doesn not define / have units scale. So it was an historic decision to use that units scale:

Cheers

I asked to the developers mailing list to add a repository of 3D FreeCAD models (open source 3D models)
everything started from this discussion @ github
and Cirilo seems to agree with that repository
Since FreeCAD has fixed its VRML export enough to be useful to KiCad, I think Maurice’s sugestion to create VRML models from STEP or FreeCAD models is a good idea.
- Cirilo
but probably that will happen after the stable release will come out

@maui I understand what you mean now. But that is related with libraries project of kicad.
Because the old limitations of kicad 3d-viewer to parser VRML files, only VRML files exported by wings3d could be used (the parser was designed only for that) so they forced that suggestion to use wings3d and supply .wings files as the sources of the VRMLs.

If kicad support in future better formats natively so it is indeed a good idea to base the future 3dmodels in that formats.
…but, if kicad supports VRML files you cannot say that it does not support it :smile:

@kammutierspule

I know you have done a great job in improving the VRML 3d render interface and FreeCAD compatibility…
that gave me the chance to create kicad StepUp plugin…

and I don’t want to say that VRML is not supported by kicad anymore, I would just suggest the users to consider preferentially VRML modules coming from a better mechanical design, as the one coming from FreeCAD…

I’m working with hyozd to add also material props to the VRML generated from FreeCAD, that will improve the 3d rendering aspect of models in an aesthetic point of view…
fortunately FreeCAD supports also Materials …
and FreeCAD also supports Texture in VRML … in that case ther is a bit more work to do on kicad side :wink:
"Rule, FreeCAD!"

@aaron @jwpartain1
I’ve done a tool to align 3d model to footprint in a ‘Altium’ style…

No need to reiterate the aligning process or empiric calculate offset and rotation to apply to VRML model.
please have a look at this post:
align 3d model to footprint in a ‘Altium’ style
That tool should make the library building process very smooth and fast! :slight_smile:
Maurice

2 Likes

@maui
That looks like a nice improvement. When I started using StepUp, there were be a few “rotate-export-check kicad view” iterations to verify the step<->vwrl sync. Keep up the good work.

I’m in between board designs at the moment, but next rev I’ll load the new tools and check them out.

2 Likes

Sorry for negative feedback: not working for me. I mean I got PCB pane with holes, but 3d parts are missing. A lot of questions came up:

Editing ksu-config.cfg is not clear: I think all lines starting with # are comments. Lines don’t contain “key=value” structure, so

  • is the order of non-comment lines important? (may any number of comment lines be inserted/cleared anywhere?)

In pcbnew, footpint properties - 3d settings - 3d shape name contains a full path at me (D:/work/…/mypart.wrl).

  • Is it ok to use this path at 1st non-comment line of cfg file? Is a slash compulsory at the end of path? What if there are spaces in path?

I’ve created STP then WRL in Creo. Did anyone tested not-FreeCAD-created STP and WRL files?

What you mean KISYS3DMOD? There is no “KISYS3DMOD” env.variable set at my Windows.

Thanks for the effort…it will be very useful tool.

Tommy

ksu-config.cfg is a text file, because the all exporter is in python, I assumed that using ‘#’ as comment was clear… too bad programmer habit :wink:
[edit] I may add this to the doc
you need to configure your path to 3D models as you do in kicad…

yes, the exporter parses the parameters in order as in the ksu file…

have a look here
http://seriouslyembedded.com/custom-kicad-libraries-under-windows/
KISYS3DMOD is the prefix that kicad uses for 3D packages

every STEP file coming from CAD software would be fine… but you have to save with ‘.step’ extension NOT .stp
[edit] I may add both extensions to the exporter
I used many models coming from on-line libs without any prob…
You can check if your model will open in FreeCAD, then it will be fine also for the exporter, which is based on FC…

@novaktamas
did you have time to go further?

to see which is your 3D model path you could open the .kicad_pcb file (make a copy before as backup) with a text editor and search for ‘.wrl’
then you should see something like:

(model shapes/cap_0603.wrl
  (at (xyz 0 0 0))
  (scale (xyz 1 1 1))
  (rotate (xyz 0 0 0))
) 

this means that your KISYS3DMOD should be already set
or

(model C:/kicad/3Dmodels/smd_cap/cap_0603.wrl
  (at (xyz 0 0 0))
  (scale (xyz 1 1 1))
  (rotate (xyz 0 0 0))
) 

then you are using absolute path (which should be already supported)

@novaktamas
I’ve updated the exporter and the docs
I’ve added a larger ksu config description and .step, .stp extension support
@cbernardo
I’ve also added IGES (with colors) support!
now kicad StepUp exporter can generate a 3D mechanical model of board and parts, starting from a library of 3D ‘STEP’ or ‘IGES’ colored models
.step, .stp, .iges, .igs extensions supported
hoping that could be useful for you too :smile:

2 Likes

You are great, Maui! It works for me now.
Some more things:

I am programmer too, and I prefer old Windows type INI with
[section]
key=value
lines. In your ksu config are the different values identified simply by line order number?
I’m asking because I have project-specific .wrl files in my project folder, so I’d add two paths at ksu-config.cfg:
C:/Program Files/KiCad/share/kicad/modules/packages3d/ plus
D:/Work/…/MyStuff
Is it possible? Is it needed?
Anyway, I succeded by copying whole stuff (kicad_StepUp.FCMacro, ksu-config.cfg, .wrl’s, .step’s to every and each subdirs:))) I really don’t knwo which has been used:))

I’m gonna check the new mods you have uploaded.
many thanks,
Tomi

2 Likes

@novaktamas,
if you can post a .kicad_pcb simple board e.g. with one or two components, I could tell you which path you should configure…
probably the right one it would be:

  • D:/Work/…/MyStuff
    I wouldn’t use two path to 3D mechanical and wrl models, to avoid a mix of configuration…
    Moreover, if you enable the ‘Report View’ in FreeCAD
    (Menu View, Views, Report Views checked)
    you can see a verbose log output that will describe all the import actions…
    :smile: Maui
    P.S. you may consider to give me a skull @ Hackaday.io
    https://hackaday.io/project/7926-kicad-stepup-script-hacks-mcad-world
    :wink:
2 Likes

Dropped the skull!! :skull:

2 Likes

Thanks Maurice, that gives users much more choice. :smile: It may be an old format but it’s still there and will be around for a while.

For STEP do you have plans to support a hierarchy so people can use STEP assemblies without first exporting from FreeCAD as a single part?

@cbernardo

for the moment I’m not working on that feature, almost all models coming from manufacturers libs are already available as a single part…
moreover I don’t think it would be useful to have a model of an e.g. QFP chip with body, pin_mark and hundred of pins as separated parts, also if they are in a hierarchy…
What I think kicad is still missing is a ready to use library of 3D parametric/mechanical parts in STEP and VRML…
that would be a big enhancement in MCAD point of view for kicad users…
:slight_smile:

2 Likes

Hi guys,
I have the same problem as lots of others above: when I export my project from KiCAD to use in another MCAD, I get 3d model for only the board…parts missing. (I can see my board + parts in KiCAD 3D viewer, after successfully align of STP/WRL parts with Maurice’s StepUp script as well.)

I’ve tried exporting WRL and IDF formats from KiCAD to both FreeCAD and Creo (Pro/E successor). Plain board is displayed well in all 4 versions, but components are always missing.

I see the “one or more solid bodies” problem. E.g in Creo there are .PRT (part) and .ASM (assembly) types, where ASM can hold lots of PRT’s or even sub-assemblies. Some stock mechanic component (e.g. ball bearing downloaded from manufacturer) may come as PRT or as a ASM of some PRTs.

Is there any hint how to get a full 3d model?

@novaktamas

who’s having probs with the exporter???
I have not received any negative feedback till now…

As I already told you, if you could post a .kicad_pcb simple board e.g. with one or two components, I could tell you which path you should configure…
Also a screenshot of your Footprint 3D Settings as the one attached would help

Moreover I would need to have your ksu-config.cfg file and your launch-kicad_StepUp-demo.bat file…
and your FreeCAD version and installation path…

Sorry, Maurice, I meant problems they used to have. There were comments months ago, like


similar to my problem.
You made a perfect youtube tutorial video on getting STEP from component manufacturer, pushing and aligning it to KiCAD 3d viewer.
The opposite direction is not that clear: I see the fine model in KiCAD’s 3d viewer, but can’t export a STEP or WRL to import it to my Creo.
In your comment #27 of this thread, you display a workflow with “your KiCad design is ready to be converted to MCAD in just one click!!” Please point me to a how-to. What I have tried:

  • From pcbnew I open up 3d viewer and see board + 3d part bodies perfectly
  • I export both VRML and IDF
  • When I add these files to my assembly in Creo, I got nothing from VRML (“empty component”), and got the plain board form .EMN file (no component bodies, no holes, no wires).

I upload my whole project folder. It is a very tiny board with a single tactile switch named “SKHHLRA010”. You can also find the 3d body STEP (download from manufacturer).

.whole-project.zip (329.5 KB)

I got the point: from command prompt I run

“C:\Program Files\FreeCAD 0.15\bin\freecad” zeroswitch.emn ksu-config.cfg kicad_StepUp.FCMacro

FreeCad fires up, loads my model, but got an error (I have a single 3d-body-part switch called “SKHHLRA010”. I have SKHHLRA010.step and SKHHLRA010.wrl in my project folder)
The red error message is down at the bottom status line…it was there for short time, hard to catch…