CadQuery is super cool

@jmwright and @drayde did some cool work using CAD query and GitBuilding during the hackathon.

I have had a short time now to play with CAD query. I am very excited by its potential for CAD rendering for documentation. STEP → wireframe SVG is super easy and super high quality.

  • Currently if I import a STEP file which is a multicoloured assembly I appear to get get one object which is a single colour. Is there a way around this?
  • Is there a good way to import STL files?
  • I see that the jupyter client has a way to explode assemblies. It would be awesome if there was a way to export this as an animated GLTF
3 Likes

Ruslan (not sure of the screen name on this forum) worked on CadQuery modeling as well in our group and did the parametric trays.

Currently if I import a STEP file which is a multicoloured assembly I appear to get get one object which is a single colour. Is there a way around this?

If you are opening it in FreeCAD, you will have to change the STEP import settings to not merge compounds.

Edit->Preferences->Import/Export->STEP tab (uncheck "Enable STEP Compound merge)

Is there a good way to import STL files?

No. STL is a relatively lossy format, so no effort has ever been put into it. That said, there are times when all you have is an STL and it would be nice to import it and then move forward with the imprecise model. It’s not an easy fix though. You’re translating a mesh based file into BRep for OpenCASCADE, which is not mesh based. I’d be happy to review a pull request if somebody wants to try it though.

I see that the jupyter client has a way to explode assemblies. It would be awesome if there was a way to export this as an animated GLTF

There is interest in doing exploded assemblies in CQ core within the community, but nobody has taken on the task yet. Assembly animations in gltf, and exploded views exported to SVG would be nice. You can do it yourself programmatically now, but an automated system would be great.

My mind has been humming with ideas on all the work that was done at the hackathon. FreeCAD has a great UI automation API, so I was thinking that it should be possible to automatically update the parameters of the FreeCAD tray models from our generate.py script and then generate models that CadQuery could use in the automated assembly/documentation framework. It also shouldn’t be too hard to create a web front end that allows a user to select the components they have access to (from a database of components), maybe allow them to change the tray type, then generate the assembly and documentation. I could see it being helpful to allow someone to set their print volume as well ,so that the leg rail could be split into sections that will fit the build volume.

This would be a nice merging of the FreeCAD and CadQuery work done at the hackathon, and would help drive this experimental framework forward.

I also haven’t forgotten about the parametric enclosure that we didn’t have time to work on. I think there is plenty of room for auto-generation there too.

3 Likes

Ruslan’s screen name on this forum is ‘ruslan’ :grin:.

3 Likes

These people with their cryptic screen names :sweat_smile:! Sorry to exclude you and your awesome work!

2 Likes

I would be interested to hear if you think any of what is being done by the generate.py script could/should be built into gitbuilding. Maybe it makes sense to keep a meta-level script that glues the tools together rather than trying to push that functionally into gitbuilding though. I’m not sure.

1 Like

Also tagging @dmohns on this who did the CI integration for our group.

It is really interesting for me to see how GitBuilding used like this. I think the auto-generation of the yaml part library is 100% how I would have hoped it to be used (no one wants to be writing YAML by hand!). It would be interesting to think about getting the key value pair dictionary connected directly with some of the components and then just do a YAML dump. For custom parts I do want a better way to link back to the source.

As for the markdown page being made programmatically… I would prefer that this could be done in GitBuilding. But we don’t have the complex logic for a modular system where so many things can be swapped. Would be cool to implement that. Something that may be needed for projects such as UC2 or the OpenMRI [See @moedn’s post]

Would it be worthwhile for you to write that up as a proposal for GitBuilding and pursue some funding? Is there anything coming after the INTERFACER Project that would be providing funding for work like this? I would love to see GitBuilding move forward and expand.

1 Like

There is some possible funding in the pipeline :blush: I think that the full complex logic for this is out of scope for the short term, but working towards better support of more modular instrumentation is key. Also better liking back to the source files is important.

2 Likes

I have published the promised blog post about the work our group (#2) did.

https://7bindustries.com/blog/otfn_hackathon.html

I simplified some things to make the post more readable, but I think it should give a good feel for what we put together. I listed potential ideas for the future at the end of the post.

Thanks to @ericnitschke for offering to review to make sure the post was understandable by someone outside the group.

3 Likes

Thanks Jeremy for writing the blog post! Very nice summary of our work!

1 Like