You’re correct that the situation needs to change.
The mechanics behind the 3d model download “wizard” are the stuff of nightmares. They “look” like they use Git but they do not, they only download models directly from GitHub.
Instead of hooking into Git functionality, the 3D downloader actually used wget or curl to download raw file data (from raw.github.com). If you go to GitHub and look at the actual file content of each model, that’s what is being downloaded.
All the bells and whistles of git are thrown away.
Git doesn’t provide a way to individually download single files. Users who don’t clone the entire repo cannot pull down the file changes. So this dirty hack was instigated to allow download of individual files.
This is not a good solution and you’re right to be confused and annoyed.
I have a few ideas on how to improve this, but they are about 7 down on my KiCad stack, which isn’t my only stack
Are there any plans to replace static files with dynamic (generated on the fly) parameterized templates for symbols, footprints and 3D models?
Pin headers in particular, and SIP/DIP/rectangular connectors in general, would greatly benefit from being able to derive a specific symbol, footprint, or 3D model from a generic template, and a specific set of parameters such as pin count, angled vs straight, pin spacing, etc.
It’s a great idea and has been discussed. But it would be a lot of work. If you are willing to work out how to implement this in KiCad, this would be a headline feature! You’d be rich! Well, not rich. But, we would all be very thankful.
For a somewhat less facetious answer:
I believe that Altium has this feature?
@maui has done a lot of fantastic work with PythonOCC to generate models on the fly
a. This requires FreeCAD to work
b. Perhaps there is a way to remove the FreeCAD dependency?
It would be awesome to implement Python 3D model wizards similar to the footprint wizards
a. A LOT more complicated than the footprints
b. Generating STEP data is complex. @maui would have some interesting thoughts here I would imagine
Still not sure if the array thing is gonna be a great choice but let’s see down the road
If the individual files could be downloaded, tje models could probably be downloaded automatically when the 3Dviewer was ran (or similar) this way people would only get the files they need.
Perhaps even decide if they only want WRL models or also step files
BTW I seriously hope somebody finds those connectors useful, still haven’t heard of any. On the other hand I learned how many people doesn’t have enough internet or a decent sized harddrive. (I consider these my money saved on an Altium/Eagle license)
The two that “I” needed were perfect, looked great, totally AWESOME!
I just did not have the need for the other 2,079 at the moment.
It has always been my position that the libraries be as complete as possible, but not be a thing that users are FORCED to download EVERY thing EVERY time.
@Shack, and a few others, I don’t think you get the feedback here that you deserve for the impact that effort has made to the current quality of KiCad.
Again I wish to state, this thread was created as a “heads-up” since the nightlies have been down for so long. There is zero intent to convey anything negative in any way shape or form about KiCad or towards anyone involved in the development, the libraries, or those that participate in the forums. My intent is such that I hope new users will find the future KiCad to be awesome out of the box.
I agree the library size is building up (and it’s only getting “worse”)
Perhaps the 3D models shouldn’t be shipped with KiCad but rather have a popup in the installation process if you would like to download it and perhaps selectable between steps and WRL (only downloading WRL would cut down 2/3 size).
Regarding the on-the-fly generator I don’t think it’s gonna be fast enough since my pretty heavy computer spend a lot of hours generating the connectors
I don’t think so… from what I can see from video tutorials, they have a sort of generating the 3D model with an user aided process mainly getting info from footprint layers, but with a simplified result. The primary way to integrate MCAD is to load pre-built 3D models.
the best in having FC to build the models is that you have a MCAD environment that can/must be used to check model geometry errors/problems.
The quality of the STEP models may vary a lot depending on the way it get build (sequence/primitives) and on the OCC release.
Mechanical environment requires more deep analysis compared to what is needed for a simple rendering.
The quality of the actual KiCAD MCAD library is a result of a script process to generate models, and a user post process to inspect the result issues of the generated models, including geometry check.
A part of a great developing effort from a great MCAD squad!
The nice thing is that FreeCAD could be used inside KiCAD as a python module … this is a lot of work because you need to have FC built with the same python resources used inside KiCAD.
A lot of dependencies and moreover a lot of work to use the FC powerful resources inside KiCad.
Anyway normally other EDA sw just are implementing the basis of MCAD inside EDA and are working more on MCAD / ECAD interaction and collaboration, leaving the ‘dirt’ MCAD work in MCAD native environment.
That is what I would suggest too: do your EDA work in EDA tool and check your mechanical requirements (enclosures, mechanical connections etc.) in a MCAD tool.
An option IMO would be to give the user the ability to have some basic 3D full library and the option to load other 3D parts as an user option.
An other interesting option IMO would be to have a function to be called inside Kicad or pcbnew to create a full list of needed 3D parts for the user kicad project, then check automatically if those models are already in the users local 3D library and give an option to retrieve with a ‘wget’ process the missing models from kicad on-line library; finally the downloaded missing models would be placed automatically in the right local folder by the function itself.
For example if you need:
your wget could point to: https://github.com/KiCad/kicad-packages3D/raw/master/Buttons_Switches_SMD.3dshapes/SW_SP3T_PCM13.step
and download it directly, placing it to local configured
This would require a very little work to be implemented, compared to create a reliable building MCAD chain in KiCAD, and it would give the user a very little manual work to do and very little internet loading band.
[quote=“Shack, post:10, topic:8243”][quote=“Shack, post:8, topic:8243”]
BTW I seriously hope somebody finds those connectors useful
an other happy user here
If git is used for the pin headers… …could it be made use the git command-line program instead of the git library used for the footprints that doesn’t support proxies and therefore is a no-go in many a corporate environment?
It is possible already to use footprint 3D Shapes to add multiple (eg: arrays) of 3D models.
So for instance itt can be used for pin headers, just one 3D model that will be added for each pin position.
Also, it is possible for WRL (on the latest kicad development version) to include other external WRL files.
This could also be used for DIP and QFP packages. however it will be harder for library maintainers to create and mantain this files.
Though at 3000 connectors, even 12 hours is about 15 seconds per connector. Unless I’m missing something, this seems a small penalty per connector for first use, if the generated file is stored locally.