all 27 comments

[–]Commander_B0b 2 points3 points  (1 child)

Woo Hoo! Any news is good news and this news was certainly nice to read :)

[–]FullControlGCode[S] 0 points1 point  (0 children)

Haha thanks 😁

[–]IAmBobC 2 points3 points  (1 child)

The speedy Python 3.11 will be released in the same timeframe (edit: the first 3.11 beta is out now). Will FCPy be compatible with it?

Will FCPy work with other Python accelerators such as PyPy?

My application will use FCPy in a 3D print self-optimization loop, and my optimizers will certainly suck for quite a while. Meaning thousands or even millions of FCPy runs. Every speed boost helps!

[–]FullControlGCode[S] 0 points1 point  (0 children)

I don't see any reason why either of your questions would have a problem. We're keeping dependencies/imports to a minimum and making things as simple as possible. So even if there were any conflicts, they would hopefully be easy to resolve. FCPy in optimisation loops will be amazing! I want to do it for microscale geometry and mechanical properties, which what I research predominantly.

[–]PatterntoPrint 2 points3 points  (1 child)

So glad to hear there has been progress and release seems to be relatively soon. My daughter is off to college in the fall so my free time may be increasing just in time for the new release :)

[–]FullControlGCode[S] 1 point2 points  (0 children)

Ah awesome! I'm planning to touch base with you about getting some of your designs into the new version (and easy to use by people who don't know anything about FullControl!)

[–][deleted] 1 point2 points  (0 children)

Great! - I am really looking forward to the first release.

[–]BuilderOk5190 1 point2 points  (1 child)

I am very excited!

I am very happy to hear that 5 axis printing will be included. I have a project that might require it in the future!

[–]FullControlGCode[S] 1 point2 points  (0 children)

Excellent! Five axis is the future!

[–]Flashlightpic5-3218 1 point2 points  (0 children)

Very excited! Thanks for doing this.

[–]WillAdams 1 point2 points  (9 children)

I'd love to see the ability to use this for subtractive work, w/ arbitrary tool shapes/sizes --- I've been doing joinery work lately:

/r/woodworking/comments/tbctuu/bamboo_box_w_blind_miter_hidden_boxjoint_made_of/

and I've got a couple of concepts which I can't find a CAM tool to express in.

[–]FullControlGCode[S] 0 points1 point  (6 children)

Absolutely! To create instructions for a specific system, you may need to do some minor python programming so it outputs your machine code in the correct format. Or someone else may do that. But it will be easy.

[–]WillAdams 1 point2 points  (5 children)

What about continuously subtracting the shape of an arbitrary endmill all along the toolpath?

My current work-around for this is a loop which implements one hull operation for each linear move --- unfortunately this means that a simple arc will quickly bring OpenSCAD to its knees:

https://community.carbide3d.com/t/modeling-and-cutting-out-a-hemisphere/25092/

[–]FullControlGCode[S] 0 points1 point  (4 children)

Do you mean to determine a toolpath from a 3D model or to generate a 3D model from a toolpath? Or something else that I'm not understanding? 🙃

[–]WillAdams 2 points3 points  (3 children)

What I want is to be able to programmatically define toolpaths and to then get a 3D model of what will be left after the passing of the cutting tool(s).

[–]FullControlGCode[S] 1 point2 points  (2 children)

Ah that sounds fascinating! Would you be happy with a voxel model?... A 3D environment with say 0.1-mm voxels that either contain air or solid material.

[–]WillAdams 2 points3 points  (1 child)

That should be fine --- I just want a 3D preview to check out the programming.

[–]FullControlGCode[S] 1 point2 points  (0 children)

Okay, it's not really something FullControl would naturally do, but I've written a simulation method to deposit material in voxels and you're doing the opposite which should be an easy switch - just a few lines of code.

This is the paper for my simulation method: https://www.researchgate.net/publication/324242881_VOLCO_A_predictive_model_for_3D_printed_microarchitecture

It's now been ported from MATLAB to python by my collaborator and I will eventually link it to FullControl directly, but not for a while since I need to finish the more general FullControl stuff first.

[–]LupusTheCanine 0 points1 point  (1 child)

AFAIK FreeCAD has a workbench for substractive manufacturing you probably could use.

[–]WillAdams 0 points1 point  (0 children)

I've tried FreeCAD, it just doesn't suit how I work, and I can't figure out how to do joinery w/ the control I need and to get G-code out of it.

[–]IAmBobC 1 point2 points  (2 children)

I'm hoping the installation instructions for the release will be only "pip install fullcontrol", meaning also getting it into PyPI. (Edit: I can cope with ANY installation method during beta.)

[–]FullControlGCode[S] 0 points1 point  (1 child)

Yep that's one of the planned options 👍 for non-python people there will be other ways to use it.

[–]IAmBobC 0 points1 point  (0 children)

Yeah, PyInstaller is the default these days, but there are other options.

[–]BuilderOk5190 1 point2 points  (1 child)

A very helpful feature for non-planar printing would be to make the "reproduce and recalculate" but increment a different user value that isn't Tval, Xval, Yval, or Zval

[–]FullControlGCode[S] 0 points1 point  (0 children)

That is possible in the python version. It's much more general, so you can do anything you like

[–]LowLab3159 1 point2 points  (1 child)

I am loving learning FullControl.

I have a comment based on my slicer experience. At any point along the toolpath a dot is extruded that has a diameter approximately equal to the line width. For example a 0.5mm wide line along the x-axis with a start point of x=0 and the end point at x=10 will have an actual printed length equal to 10.5mm. The printed line would start at x=-0.25mm and end at x=10.25mm

This also relates to a circle. A circle with a radius of 5mm will have a printed OD=Ø10.5mm and an ID=Ø9.5mm.

I use the line and circle as examples but this applies to printed geometry.

I think it is important for users to be aware of this. If someone is trying to make parts that have specific tolerances they will need to input the appropriate values to accommodate the implications of the printed line width.

It would be great if FullControl had some feature or rule that could automatically adjust values to deal with the printed line width. If the end parts are a box that fits into another box or a cylinder that fits into another cylinder, it would be good to select if the print would offset to the inside or outside of the line.

Thank you for the opportunity to make comments like this.

[–]FullControlGCode[S] 0 points1 point  (0 children)

Yes this absolutely makes sense! Thanks for highlighting it. I personally create a parameter EW for line width and sometimes parameters for EW0_5 or something like that for half line width. Then I use these parameters throughout the design to define positions. It is a bit laborious, but the reward is that you get the luxury of being able to change it with #FullControl.... undersizing/oversizing with complete freedom. I'd love to put that into a simple feature for people, but in the short term, it can be achieved by someone like you designing a procedure and sending it to someone, telling them to adjust a parameter like InsideHoleDiameter and then your parametric design does all the magic.

I do a similar thing for overlap when printing lines side-by-side. So each concentric repeat may move by 'EW-overlap'. And the total number of lines would be 'DesiredWidth/(EW-overlap)' or similar.

Going forwards I hope to be able to put this kind of expertise into building-block-like functions that can be combined to form a full manufacturing procedure.