[AddOn] MultiMachine - repeat a pattern of boolena diff or unions

This has been a work in progress for a while. I have to believe that someone had already done something like this before, but I couldn’t find it so I just did it myself. It was a good project to learn something new about Blender.

The origin was the need to automate with python doing a series of boolean diff cuts in the edge of a coin (a quarter has 119 of them - very tedious to do manually), and then I made it into an add-on then added to it, then…

I want to do a demo video, but I thought I should get it out for review and feedback for any changes I might make before I put it on the shelf for the next project.

Quick notes:

  • The “target” is what is being modified, the “tool” is the “object” in the boolean modifier.
  • The tool stays stationary and the target is what is moved by the “rotate” or “slide”.
  • Maybe there is a better term than “slide” - moving the object in a linear fashion.
  • Diff’ing the same spot more than once (if the pattern goes over itself again) generates bad results.
  • Using this is a good exercise in thinking in the 3D space and understanding.
  • Undo (ctrl-Z) not only reverses the series of changes but also undoes the last other change (like a change in one of the coordinate values). So, remember to double check your settings after an undo.
  • If things suddenly disappear after hitting “Execute”, you probably made a mistake in which axis you were rotating on and Blender couldn’t handle too many boolean operations over the same space. Just undo, rethink your movements and try again.
  • The “pre-step” is done once at the beginning of each “repeat” cycle and then the tool is applied at each step for the number of steps before it repeats.

With the blend file in the repo, set this up as an example. [EDIT] Then use F6 redo to experiment and eventually increase the repeat count and execute:

Target = target
Tool = cone_tool
Action = Diff
Move = Slide
X = 0.48
Y = 0
Z = 0
NumSteps = 9
StartSteps = 0
Pre-Move = Slide
X = -4.32
Y = 0.48
Z = 0
Repeat = 1

[EDIT]
@mkbreuer has implemented F6 Redo, which makes tuning a tooling sequence much easier!!

any video tutorial how the addon works

Hy dswant! Thx for sharing this addon.
I learned from your script how to reset panel values and made a pull request on github.
It shows how to get redo last after execution. Please take a look at it.
Maybe you would like to add it!
(the value cache is from looptools by bart crouch)

@mkgreuer - Thank you for the UI and code cleanup and the added F6 functionality. I have merged it back in. I may even keep the spaces instead of my tabs!

@atekdigital - Videos coming next.

Made some other small tweaks and am working on the internal documentation and the demo video.