Hi guys. This subject is OLD… but… I was thinkin’ about it, so what the heck, I’ll do some blabbing.
Yeah, it WOULD be fun/cool to see that. I was thinking about HOW that could be tolerably done. Continuously doing boolean subtraction (CSG) of bit-removed material… is likely impossible.
BUT… what if… we made the entire sheet of plywood… out-of VERY tiny 8-vert boxes? (standard BJS boxes are 24-vert by default, allowing for fancy texturing, flat-shading, and 2-sided-ness).
Then… if (routerbit.intersects(anyLittleBox) { that_box.dispose() } hmm.
You would not get a PERFECT representation of the machined piece, but… depending upon how many little boxes per plywood piece (resolution/tessellation)… you SHOULD be able to get decent results, theoretically.
The machined piece could be called “quantized” (has rounded-up/down precision). Or maybe “voxeled”. On most curved-cuts, you WILL see “jaggies” around the curvature… but still… it might look SORT-OF ok.
Quantizing is what “digitizing” audio… does. A 44.1 khz audio sampler (analog-to-digital converter - A2D)… checks the amplitude (volume) of input analog audio… about 44,100 times per second… and records that value. This causes the digitized audio to have “audio jaggies”. With me?
During playback, a digital-to-analog (D2A) converter… “re-models” that jaggy audio… smoothing (averaging) those jaggies… making it ready to be sent to an audio amplifier and speaker.
We cannot de-jaggy the machined-piece that I describe above, but we CAN smooth-shade it. 8-vert boxes CAN’T be flat-shaded at all… not enough verts, I believe. SO… just maybe… the (tiny) jaggies on the curved-cuts of the machined part… might not be so cosmetically-ugly after all.
Note: When smooth-shading, the .specular of the lights/materials… is important… in order to give shape-definition information to our eyeballs. Use many lights, and give due diligence-to specular settings on lights and voxel-box materials… for good shape-definition of complex smooth-shaded models. If I turn off the colors, and turn off the edge renderer, our basic 8-vert box loses it’s shape clarity. This is a GOOD THING to keep from seeing voxel jaggies, but a BAD THING for someone “touring” the machined part… examining complex “bowl” and “trough” cuts. But… wireframing the machined part… is pretty easy.
Anyway, onward-to related fun:
Click on the red plywood sign. POOM! @jerome’s Solid Particle System (SPS) at-work. Sweet. According to his post about it, it has 6300 boxes… and those MIGHT BE 24-vert boxes. Use 8-vert boxes, and maybe TRIPLE the number of boxes allowed in the source-board.
Good thing: SPS system maintains an array of active particles FOR us - nice for onCutFinished mergeMeshes(). Other tools/customizing available, too.
And, there’s no “exploding the board”… needed in the CNC simulator. Just a little “chewing” at the router bit. Hmm. You’ll need a master “board parent” gizmo mesh (blank-mesh/invisible)… to parent all the little quantize-boxes (voxels?) to a central place.
I think this could work… and maybe produce a satisfactory representation of the machined piece, AND allow “live-routing”… ie. watch it being cut.
So, I guess the tests start with a sheet of plywood using… umm… approximately a CRAPLOAD of 8-vert boxes. Then try to program a routerbit onIntersectWithAnySceneMesh observer (likely, a nightmare)… and then… we’re ready for early tests. Coooooool. Notice that Jerome’s boxes ARE doing basic intersect/collision testing. DOUBLE cooooool ! hmm.
PS: Just by THINKING about this… my dog got scared and ran under the fridge, and my CPU fan kicked-into high-speed mode. Party on!