3D new library for Mechanical CAD exporting and enclosure design

I think add different center points for rotation will make things (even more) “complicated to understand” for the user. That should be left to 3dmodel / MCAD editors.

Maybe I can evaluate to add lights. Any good reason for that? (I was thinking do something like that using emissive models as I explained before).
As I agree with some discussions before on 3d-viewer, adding too much options will “confuse” normal users and they will not get good results because they will not full understand or choose the correct values for parameters. So maybe it is better to not expose some o that features, so they will end always with good render results!

in case of big dimensions board, without the ability to move the rotation center it is not possible to view in zooming the peripheral of board …
moreover this is an option very common in any 3d-viewer (e.g. view3dscene, freeWRL, blender etc. have that option)
you just click in a different point and you get the rotation on that (not an option really complicated to be understood, just intuitive)

just aesthetic reason… I was just trying to follow your point of view in 3d-viewer…
As you know, my point of view is more mechanical then aesthetic…
moreover, the MCAD approach I have to 3d-viewer is aligned to what Altium is doing… as per my knowledge in Altium all models are not rendered with ligth properties, just diffuse color

so the only feature I real miss is the ability to move the rotation point, to be able to inspect the edge of board with big dimensions…

ah ok sorry, I thought you were talking in relation of 3d-models transformations…

Lets keep that idea as a wish and see in future… I experience some viewers that have that feature and some are a bit hard (for me) to understand how to use it.

@kammutierspule
so I would add these two items to my whishlist:

  1. intuitive way to move the rotation center of 3D viewer
  2. option to Hide some models (as Altium does for 3d bodies)

Both options would be very useful for 3D enclosure design and MCAD collaboration :slight_smile:
May be this is the right timing to ask, because of 3d refactoring work in progress :wink:

[quote=“kammutierspule, post:18, topic:1763”]

[quote=“maui, post:15, topic:1763”]
I also miss the ability to move the center point of the rotation view, as is usually available in 3d viewer…[/quote]
Lets keep that idea as a wish and see in future… I experience some viewers that have that feature and some are a bit hard (for me) to understand how to use it.[/quote]
Oh yes, please.
I can deal with different directions of turning the mouse wheel for zooming, I can deal with different behaviors for paning and orbitting… but what I really miss is to be able to have a custom centre point for that.

Inventor: click somewhere ON an object and this becomes your new centre for orbiting/zooming - intuitive
pcbnew: you can zoom with the mouse as centre - intuitive (I find myself cursing at a paintprog lately I use where this doesn’t happen :slight_smile:
FreeCAD: sucks, no option to get the centre point defined
KiCAD 3dviewer: sucks, no option to get the centre point defined

If you still take wishes for 3d viewer… a button or keystroke for hiding/showing 3d shapes as the menu is cumbersome for that but it’s the feature I use the most. Absolute fantastic would be on a per footprint basis, but alone a button/keystroke for all of them together would go a long way.

That should be easy features to implement, but I am still a bit faraway from start working on that.

Btw, in that “point and rotate” how do you back to usual rotate (by center of the object / board) mode?

’Fit in page’ will reset all (center view, zoom and center of rotation)


http://www.freecadweb.org/wiki/index.php?title=Mouse_Model

@Joan_Sparky
if you use ‘inventor navigation style’ in FreeCAD, when you pan (central mouse button) and double center click, then your rotation center will be moved to the cursor point…
I normally use ‘inventor navigation style’ instead of ‘CAD navigation style’ in FreeCAD

@maui
Oh my, that implementation is awkward and really useless. But thanks for the pointer. :confused:

@kammutierspule
As Maui wrote… clicking on [zoom extends] will bring you back to the objects point of centre sitting at it’s centre… that works in FreeCAD or pcbnew too :smile:

Thinking of it… Inventor has got a tool for orbit and for pan etc…
For them it’s easy to decide if one wants to set the centre point or not… if the button is released and the pointer is ‘over’ something on the object, then this becomes the point, because of the tool.

In KiCAD you don’t have this, as there is no orbit tool… so you will need some sort of timer that decides between:

  • click to select new centrepoint (if object underneath mouse pointer)
    and
  • click&hold to orbit the model

… does clicking in the 3d viewer do anything? Didn’t think so… so if the button has been released after x ms the user wants a new orbit centre… if no release until then he prolly goes for orbitting…

But just so we’re clear… the point of centre is determined by the mouse pointers position OVER the object… whatever surface is being hit first by that projected mouse-pointer-axis (which is perpendicular to the view-plane) determines the depth on that ‘axis’. This way one can’t get a rotation centre inside of something, except you reset the zoom, as then it’s back at the pcb centre again, but I never have a real prob with that in a CAD prog, so flat pcbs should be even less dramatic.

hi @all,

your 3D-contributions sound great!
i will have to try this out in the near future.
but i have a question regarding the license:
if the models are GPL - than the by Kicad generated model is also GPL…
and so iam not allowed to use this in a closed source design?

  • and if i have a customer that does not accept open source design that would mean i can not use the generated model or have to do the parts again just to be able to use theme? :worried:

ps iam willing to contribute 3D-modells of things i need…
will just have to refine some of theme before i can upload theme…

sunny greetings
stefan

@s_light
I started the 3D mechanical and parametric library mainly because
I would like to make possible to publish a full open hardware project:
- schematic, pcb and 3D mechanical model for enclosure design …

but as kicad is fine also for closed design, I would like that the library would apply to that too…

I think GPL should be fine…
there is a discussion about license and fonts on developers mailing list…
http://www.mail-archive.com/kicad-developers@lists.launchpad.net/msg16268.html
but we could go deeper … I would appreciate any comment and suggestions…

a possible solution would be something like SnapEda has done: adding a design exception

Design Exception: The permission to propagate a work of a design formed by combining CAD symbols and 3D mechanical library, even if such propagation would otherwise violate the terms of GPL.
That would apply only to a complete assembly of board and 3D cad symbols.

I would ask also the point of view of @Joan_Sparky as a valuable contributor of the 3D library :smile:

PS
@s_light you may know that everything started from


and
http://forum.freecadweb.org/viewtopic.php?t=10815

and then I developed


and the parametric 3D models ( thanks to @hyOzd )

:slight_smile:

and looking at an other good open source eda suite
The gEDA developers found a similar solution, they have defined a exception clause for their library - just like the GPL font exception - so you can use the library also for commercial (closed) projects

http://wiki.geda-project.org/geda:license/

As a special exception, if you create a design which uses this symbol,
and embed this symbol or unaltered portions of this symbol into the
design, this symbol does not by itself cause the resulting design to
be covered by the GNU General Public License. This exception does not
however invalidate any other reasons why the design itself might be
covered by the GNU General Public License. If you modify this
symbol, you may extend this exception to your version of the
symbol, but you are not obligated to do so. If you do not
wish to do so, delete this exception statement from your version

[EDIT]
and a Wayne point of view
http://www.mail-archive.com/kicad-developers@lists.launchpad.net/msg16274.html

Query:
What kind of restrictions do I have to expect when I’m using KiCad for my designs?
Wayne reply:
None. I don’t think anyone here believes that if you use our symbols,
footprints, and/or 3D models that we own you design. If they do, we
have a serious issue.

that point of view, I think, is putting away the problem of distributing the design …
[EDIT]
and the last minute update
http://www.mail-archive.com/kicad-developers@lists.launchpad.net/msg16679.html

Wayne Stambaugh
Tue, 08 Dec 2015 06:50:24 -0800

I just wanted to give everyone a heads up that I did not forget about our library license issue. I sent a modified version of the gEDA symbol library (GPL font exception) to the FSF for comment on November 20. I received a reply that they are looking at and will get back to me. I’m not sure what is taking so long but as I’m not a lawyer, I would rather get some feedback before making it public. As soon as I hear back from the FSF and we have an acceptable license, I will forward the license to the library and website devs. Who knows, if I did a good enough job, maybe I can start my second career as lawyer. :wink: Cheers,

Wayne

Cool, as soon as Wayne get’s back with a useful exception ‘block’ I’ll add them to my symbols… still got to add the license to the VRML parts… lol.
Just woke up after I wrote the lib2csv&back script last night in 4-5 hours to get a ‘manf#’ field into all my symbols :sleeping:

PS: I’m able to do 1-2 new 3d models per week I think, so if there are any useful ones missing, keep 'em coming.

PPS: new today - TminiDIP, SSOP8-P-0.65 & VSSOP8-P-0.50 all in SMD_SMDx_others.zip

nvmd, I just did read the kicad docs about it… might take a while :slight_smile:

@Joan_Sparky
I don’t think this is going to happen in the main branch… I asked to add a single button to pcbnew and I got a big reaction, because it was changing the UI policy :smile:
https://www.mail-archive.com/kicad-developers@lists.launchpad.net/msg14185.html
I can imagine what could happen if someone would ask for many :wink:
Anyway, if you are interested,
I have done a version of 3d-viewer with buttons to display/toggle
- pcb body
- realistic mode
- 3d modules
- 3d virtual models
- shadows
- silkscreen
- fill zone
- solder mask
- solder paste
- drawings
note: virtual models let me show/hide mechanical models (e.g. enclosure)
https://lists.launchpad.net/kicad-developers/msg18069.html


please let me know if that may be of your interest, then I will clean a bit the code and publish it
most of the diff are only in 3d-viewer code
(it will be aligned to the stable release)
Maurice

1 Like

don’t worry about me… I can live with what’s there atm. I’m sure they’ll add the missing stuff at some point as the 3d viewer is a bit very sparse with manipulation elements.

I’m fighting with the library code right now… damn thing does weird stuff - and all I wanted was the manf# field in there, arghh :tired_face:
Ah well, I’ll get there - eventually…

Hi :slight_smile:
the licence thing semes to solve itself in ‘near’ time :wink:
thats great :smile:

@maui your buttons looks good - i personally dont want to get into development/editing source of kicad for the moment - its just one thing to much to keep track of… (iam fine with ‘alpa/beta’ testing the daily builds during normal work ;-))
hopefully at some point the interface is just easily editable (for example like in FreeCAD - there you can add/delete buttons as you like - and if you have a python script/macro you can create a button for this… and this thing is the same for libre office…)
-> how does your ‘virtual models’ work?
i have made a footprint for my DIN-Rail Enclosure that iam using for some of my pcbs…
currently the 3D model is on ‘TODO’ - but if i have it ready i would add it to the footprint.
but than i have a big box around my pcb…

so i currently have some new footprints + 3D-modells in work:

*3D model to be done…
All 3D-Models for this i have done/will do in FreeCAD
for the BreakoutBoard / Pin-Headers i currently have used my own model and made the array-modification and final combination in blender.
but i think i can try to do this only with FreeCAD so it is contained all in one file / software…
(hopefully the FreeCAD-Assembly thing will get merged next year :wink: )

than i also could export step files from all models -

what are you guys are thinking for something like these ‘special’ footprints -
should i just make my own library on github for theme ?
or do you want to merge them in one of yours?
or should i make a official requests to the KiCAD libs?
(currently i think i only loosely following the KLC - have to reread this and update all parts)

thanks for all the work you all have done so far on this!! its amazing!

sunny greetings
stefan

if I can get some spare time during holidays, I would put a snapshot of stable with 3d-viewers add-ons on sourceforge…
are you on windows or ubuntu?

I just put a 3d object associated to e.g. a hole/pad and I assign it as virtual
(check the Virtual Attribute for the mechanical part in Footprint, Edit Parameters, Properties)


then I toggle ‘virtual’ models visibility using my menu button…
I toggle only 3d modules (wrl files) and not pcb footprint, so in case of a spacer anchored to a pad, the pad will always be displayed, but the spacer only when the virtual 3d modules will be enabled…

in this way you can assign mechanical parts (e.g. enclosure, add-on boards etc) to virtual and decide when you want to display them, during board design

I think the easier would be to have your own lib in github, so they will be available for merging…
I’m going to package some models to fit in the standard kicad libs, so I will merge the models there
Please I just would need to have some rules respected, as in the first post…

I think a try would be fine, but I don’t think they are still ready to accept FreeCAD models… which is a quite not smart choice, considering they are going to develop the 3d-refactoring to accept MCAD models…
I already asked few times…

anyway a try would be worthwhile :slight_smile:
Maurice

i did not know that the virtual thing existed :wink:

iam on Kubuntu 15.10 64bit. currently use the daily build (ppa:js-reynaud/ppa-kicad)
is it possible to have more than one kicad install side by side?

for my parts i will make a library/libraries on github and reread your specs and the KLCs.
as licence iam fine with MIT currently for about all my things :wink: - and my parts are all made from scratch (reading the available documents)

is there a macro for FreeCAD to export all needed formats (inclusive vrml with scaling) at once?
(if not iam willing to try to write one…)

is it easier to have one library for every part -
or one big library to cherry pick from?

it is used to add e.g. connector that have not a correspondent 3D model, I thought to use this feature for mechanical enclosures/parts because it has a very small impact in pcbnew (not changing anything in board format, not adding any new field) but it can be easily associated to a mechanical 3D model…

I suggested to the dev list the option to include it, because I think it is a really useful tool, in mechanical ECAD design

I’m not very familiar with linux, so I’m not sure if it is possible to have 2 installation side by side… I would appreciate any suggestion…

in windows it is easy… different version of kicad can be just installed in a different folder (I use to have old stable 4022 and dev side by side)

it is fine, but for merging models I would prefer to have the possibility to apply the same GPL licence, that is the one adopted by kicad official libraries…

at the moment I have written, separate from StepUp script a macro to scale and export only VRML files…
but if you have a look inside the FreeCAD parametric libraries @


there you can find code that will scale/export VRML and STEP (not scaled) from freecad doc…

kicad has adopted a one big library, but there are a lot of people maintaining it…
I have chosen some sector zipped libraries, with a README.txt file with a list of included models, just to make the process faster

thank you for contributing :smile: