KeyHydra LazerCut

I am happy to share a tool that's nearing release now: LazerCut, part of the KeyHydra package (see also the polycount discussion). It provides an interactive boolean workflow inside 3ds max using the object manipulation tools everyone is used to, without ever having to go to the boolean subobjects and settings:

The cutters can be created in any view, perpective, orthogonal, camera etc. Depending on the current mode, they can be used to split the selected geometry, add to it, subtract from it or create independent objects. Since all the cutters (with the exception of multi-object subtractions) are created in a separate layer as children of the object operated on, you can easily select those relevant to the object with PgDn, or unhide them using unhide $.children.

Subtract Mode
Unlike Union, Subtraction can be done on multiple selected objects at the same time - in that case, the cutter is not parented to the original object and they all stay independent. You can add any modifiers to the cutter object, shown in the gif is a basic clone modifier. If you want to keep everything procedural, radial symmetry and other similar modifiers offer even more ways to extend the possibilites.

Split Mode
In the Split operation case, cutters are parented to the object they are subtracted from and the newly created subtracted part is independent:

Manipulating Cutters
To speed up the workflow, you might want to turn off the Manipulate checkbox. When inactive, the created cutters are left hidden and unselected. You can always unhide them later and change any of the properties, from segment count to projection direction and cutter height.

If the Revert checkbutton is pressed, manipulate mode stays only active right after the cutter is created, and is deactivated once the selection changes. If you want to change the fillets or move the cutter segments and vertices, you can activate the Select and Manipulate mode in the main max toolbar. It's the leftmost icon on the toolbar in the following gif:

There are three manipulator types for all the cutter nodes. First one is the vertex, marked by the small cross, and you can either move it freely in the construction plane of the cutter or constrain the movement to X and Y axis in the cutter's local coordsys by pressing SHIFT while dragging it.

Then there is the square segment marker. In addition to the X/Y SHIFT constraint you can also use CTRL to move its point together/apart (in effect scaling it) and CTRL+SHIFT to slide its points along the segment.

The thrid one is the circular fillet manipulator. You can select several of them by CTRL+clicking them, dragging them apart from the node pivot increases the fillet radius, dragging them toward it makes it smaller. The fillets are further controlled by the segment count and weld threshold in the cutter object parameters.

When manipulating fillets, you can use SHIFT while dragging to force snapping to values (uses spinner snap value found in the general preferences). SHIFT-clicking a fillet brings up an input dialog where you can find the current value for the clicked fillet and input your own value (this will apply to all the selected fillets).

Both during the cutter creation process and while manipulating them, you can use max snap mode. For the creation process, it has to be active before entering it.

The cutters are automatically aligned based on the current active alignment mode. For subtraction and splitting, safe bounding box makes sure that the cutter will extend past the selection to avoid overlapping faces which can be a problem with booleans. You might want to use exact bounding box in the create mode, when matching other objects.

There's also construction plane, which goes through the closest point of the selected object in the active view, and another one that goes through world origin. In these two modes, you have to specify the cutter height yourself, and you can also add an offset value. All these values are saved across sessions and can be different for all the cutter modes.

You might have noticed that when created in the perspective view, the cutter shape is projected from the camera viewpoint. Sometimes, this might not be desirable and instead parellel edges would be preferred. For these cases, there are Directional and Ortho types of projection. Directional keeps the projection direction, ortho makes the cutter edges perpendicular to the construction plane.

Cutter Types
The Rectangle cutter creates a parametric cutter box. When holding SHIFT, the base will be always square. Holding CTRL treats the first point as a center rather than a corner point. Both these modes can be combined when holding SHIFT+CTRL.

The Circle cutter is created with fillet points along the X and Y axes by default. This is shown by the small × mark on the circle while dragging. When SHIFT is pressed, the positions are rotated 45 degrees which is handy when using it to cut slots; in that case, extending to the oblong shape is done holding SHIFT while dragging one of the segments, as shown in the following gif:

The NGon cutter is similar to Circle. Holding SHIFT locks the rotation to use increments the angle snap value (Grid and Snap Settings). CTRL-dragging along the bounding circle drives the number of segments.

Unlike the other cutters, you don't have to keep the mouse button pressed to draw the PolyLine cutter, you can directly click the points along the path. When dragging, holding SHIFT locks the segment orientation in increments of 45 degrees. Pressing backspace removes last inserted point just like with splines. When clicking over the first point, you're presented with dialog asking if you want to close the PolyLine.

Known issues: repeating undo multiple times might cause instability in some cases. Haven't had the issues outside of stress-testing it, but still something to bear in mind.

This Post needs Your Comment!

Return to top