Constructive Geometry in Julia

This was announced at:

1 Like

This is pretty cool. I have poked at OpenSCAD and it seems a bit limited. I have been trying to get my self past the basic learning curve for CNC so I haven’t really been ready to take this on yet. I would be interested in diving in once I get a bit further along.

I’ll be following this topic. :slight_smile:

It doesn’t look like there’s been a great amount of activity in the 16 months since the announcement was made.

The git repo seems to show it as functional… might need some additional people to revive activity though.

Yeah, apparently there have been a couple of efforts in this space — looking to track them all down and see how workable they are.

@Splinters-n-sawdust — what sort of work do you wish to do?

OpenSCAD isn’t that limited, esp. compared to the other options — pretty much anything one can do mathematically, one can do in it, so the limit is usually one’s knowledge of math (says the guy who’s trying to puzzle out conic sections for one project).

I’ve found the most expedient approach to use BlockSCAD to model a design in 3D, then to export to OpenSCAD and add a projection() command so as to be able export to DXF/SVG:

1 Like

I guess didn’t play with OpenSCAD enough to realize it’s full capabilities. What I really want to do you might think is naive. Everything we are doing requires a static configuration. We have to determine complete ground truth about the materials we are cutting and exactly what we are doing.

I would like to add the capability to have the machine form a detailed map of the material I am about to cut ( I would have to add a range sensor of some sort to make this happen) and have my cuts take into account the surface geometry. The are a number of advantages to having this capability. The least of which is that you could detect areas for the cutter to avoid such as clamps. It would also allow you to adapt your cuts to the surface geometry. An application of this might be to etch or engrave on a very uneven surface. Having precise map would allow the depth of cut to be adjusted appropriately.

In order to do this, I need to have more direct control over the cutting process. A very simple implementation would be to perform a scan and feed that back into the process for generating the design or even the toolpaths. The gcode could be static since the pre-processor has already compensated for the configuration of the material. I suppose there could also be benefits to having interactive control over the cutting process, but at the moment I don’t see that adding much.

I could not implement this without a real coding environment where I can taking a range or height map from a sensor scan and process it. Frankly, this is a bit ambitious given that my best coding days are behind me. :slight_smile: We can always dream or at least take baby steps toward that goal. The smarter we can make to process the easier it will be to take advantage of our machines.

I haven’t commented before, but I am really impressed with the things you have been doing with parametric generation of your boxes. It is very tricky thing to do and I have read through your threads as you have evolved this process. I would say you are far better equipped to do the sort of thing I am thinking of than I am.

Three tools which approach this problem are:

  • Fusion 360 — apparently there’s a machine simulation option in it which almost no one uses
  • GrblGru — this includes a full 3D machine simulation option: https://www.grblgru.com/
  • bCNC — this has an option for probing a surface and will then warp a file so as to match the surface — known as auto-leveling this is common for for PCB manufacture: bCNC · PyPI

c.f., Duplicating physical items (story of 2020 Christmas break)

Thanks for the kind words on the box generation! I’m pretty much satisfied w/ the current implementation, and just need to fix the 3D preview one more time, and then cut one last sample box to photograph and then I’ll be writing it up and wrapping up the book before I move on to the next project.

Will,
So it turns out that I was confusing blocksCAD with OpenSCAD. Two very different things. I need to play with OpenSCAD as it looks very capable. I am sure there is plenty that one can do in blocksCAD but I am more of an old school coder so I find that sort of interface irritating.

I think maybe I was caffeine deprived or something.