UDT Commands in Rhino

UDT Commands in Rhino
UDT stands for Universal Deformation Technology. The UDT tools allow you to deform
meshes, lines surfaces, polysurfaces and solids without worrying about the integrity of
the object.
You can access some of the UDT commands under the transform menu, or by rightclicking in an empty area next to a toolbar and selecting the “default.UDT” toolbar…
The commands include the following…
Splop
Maelstrom
Stretch
Flow Along Surface
Twist
Bend
Cage Edit
Taper
Flow Along Curve
Stretch
As the name implies, the stretch command allows you to stretch an object. After selecting
the object you want to stretch, you specify the stretch axis’ start and end points. These
points don’t have to be on the object itself, but deciding where the axis starts and stops
can have a dramatic influence on the result, as whatever falls between these two points
will be affected.
For instance, choosing two points at the extremes of the object means that the entire
object will change…
If we don’t want the spheres at the ends to shrink, we must start and stop our stretch axis
short of them…
Start of axis
End of axis
The ability to decide where you want the stretch to occur gives this tool advantages over
the more basic 2-D Scale command. Of course, there are many additional options for this
command (see help file for more info).
Bend
In some cases, it’s easier to create a shape as a flat object, and then apply one of these
transformations to it after wards. For these situations, we have the bend command. The
bend command allows you to bend an object along a spine which you define. Starting this
command, we select our object, and then specify the start and end of the spine…
Start of spine
End of spine
Like the stretch command, the position of our spine determines where the bend occurs on
our object. To have the bend occur for only part of the object, we specify that area when
we define our spine…
When the spine falls somewhere in the middle of the object, using the Symmetric option
ensures that the bend occurs symmetrically on both sides of the spine…
Original Spine
Without Symmetric option
With Symmetric option
The faucet below is a great example of a situation where this command is used
“properly”. We have added all the detail to our faucet (i.e. applied fillets, booleaned
everything together so it is a solid)… all that is left to do is apply our bend to the neck…
I have drawn a line (red in the image) that passes through the center of the faucet and
which will serve as a guide for snapping to once we start the bend command.
We start the bend command. We select the faucet as the object to bend. For the start of
the spine, we snap to the bottom of the red line, and for the end of spine, we snap to the
top of the line. Turning on only your end snap makes it easy to make these selections.
You can select the line from which ever viewport gives you the best view (front view
seemed best for me).
Start of Spine
End of Spine
Having defined the spine, you are now in bend mode. Go into the right viewport and drag
till you like what you see. If you aren’t getting the result you expect, make sure you have
your options set as follows…
( Copy=No Rigid=No LimitToSpine=Yes Angle Symmetric=No ):
When you left click, the command will end.
Taper
The taper command allows you to taper an object.
Start the command, select the object, then draw the start and end for the taper axis.
By default the command will create a curved taper…
To create a flat tapper, toggle the “Infinite” option to “Yes”…
As with other commands, where we start and stop our taper axis will determine where the
transformation occurs…
There is one drawback to using these commands. They add many control points to the
resulting surfaces. These added points slow the software down, especially when multiple
objects are involved. Deciding when and how to use these commands must be decided on
a case by case basis. Ideally, you want to use them in moderation - to fine tune a design
after most of the modeling is complete.
Cage Edit
Cage edit works by creating a “cage” that controls the object’s shape. The control points
of the cage essentially become the control points of the object. Having a regular spacing
of points in a predictable shape is very useful as it allows for smoother transitions
between areas of an object than could be achieved with normal surface-based control
points. Also, you can edit polysurfaces without worrying about separate surfaces
becoming un-joined.
To start, left-click on the Cage Edit button (or go to Transform > Cage Editing > Cage
Edit). It asks us to select our Captive Objects (the object we want to edit), so we select
the object in the viewport. Next, it asks us to select how we will control this object. This
will create a cage that perfectly fits the object. For the Coordinate System, use the CPlane
option. At the Cage points option, you specify how many control points you want in each
direction, and the degree of influence each point will have on the surrounding surface
(lower numbers will create sharper transitions; a setting of 3 is default)). Accept the
defaults for now and click Enter.
You should now see a box (the cage you just created) surrounding your object…
While still in the command, accept the Global default for the region to edit and hit enter.
You should now see control points on the cage you created….
We can now modify the shape by selecting specific points and dragging them…
At any time, you can hit ESC to hide the points and F10 to make them visible again.
With a few more clicks we get the following…
Before and after cage editing…
When you are done editing the cage and want to remove it, hit esc to exit out of control
point mode, then select the cage and delete it.
There are many options and variations on the cage command. We will cover a few more
here.
For this example, we will again run the Cage command, but this time let’s use the Line
option as our control object…
After drawing the line, the prompt will allow us to define the degree of the line and the
PointCount (just like we did for the BoundingBox in the example above). Again, this will
establish how many points of control we will have and how extensive the influence of
each point will be on the “caged” object. Accept the default settings and hit enter. Accept
the Global setting for region to edit, and after clicking “enter”, you should see the line
you created with its control points visible.
Moving control points away from or towards each other parallel to the line will stretch
the object. Any other change in position of the control points will result in a curved
distortion…
Curving in two directions…
Had we increased the number of control points of our control line, we would have a finer
degree of control over how and where distortion takes place.
One final example using the Cage Edit command involves editing only a small area of an
object.
Start the Cage Edit command, use the Line option for your control object, and draw the
line on the object itself…
Drag one of the control points. The preview looks sort of odd, but when you release, the
deformation occurs as we would expect, relative to our control line…
This is similar to the bend command we looked at earlier, but we can bend the object in
all three axis.
Run the Cage Edit command but, this time, choose the Rectangle command… after
drawing a rectangle around your selection, you now have a rectangular cage with which
to control your object…
The rectangular cage is somewhere between the full 3d cage and the line in terms of
control and complexity.
Maelstrom
This command deforms an object in a spiral motion.
Start the command, and select the object you want to deform…
Next, we specify the center of the distortion. Then we specify the two radii. The space
between these two circles is the area we want to have affected by the maelstrom.
First Radius
Second Radius
We can then set the amount of distortion by dragging the mouse and viewing a preview…
The shape after the maelstrom command…
Twist
You can use the twist command to twist an object.
For this example, we will use the following extruded profile…
After starting the command and selecting our object, we define a twist axis. This doesn’t
have to be parallel to the piece… it doesn’t even have to BE on the piece, but we will use
an edge of the piece to keep things simple for this example.
Start
End
We can now interactively bend the shape. I found it easiest to do this in one of the plan
views (front in this case). Also, if you want your bend to be in multiples of 90 degrees,
and you are dragging rather than inputting a numeric angle, I suggest you turn on Ortho
snaps or hold down the shift key BEFORE you left click to start your first reference point
for rotation.
I did 3 full revolutions (1080 degrees) and then ended the command…
Front view during preview
Twist Axis
Where we place our twist axis will determine how the object is twisted. Placing this axis
right through the center of the object (as opposed to on the edge as in the example above)
produces a twist that is symmetrical with the object...
Twist Axis
The “infinite” option determines over what distance the twist takes place. If you want the
object to twist constantly throughout, toggle the infinite to “yes”. With the option set to
“no”, the twist will blend in and out at the ends…
Infinite set to “no”
Twist blends at the ends
Infinite set to “yes”
Twist extends to the ends
Using the “infinite” yes option will apply the twist to the entire object, even if the axis is
shorter than the object. Like the other commands, the twist can be applied to select areas
of an object. The twist will start and stop where our twist axis starts and stops, provided
we set the “infinite” to no…
Twist axis end
Twist axis start
Splop
The Splop command allows you to copy, rotate, scale and wrap an object to a surface.
For this example, we will use an organic surface (create a plane and rebuild it rebuild it
with more points).
Start the command and select the star shape as the object to Splop. We need to create a
sphere that will become a reference when we lace copies of the object on our surface. For
this shape, I used the 3Point option.
When we are done clicking, we see a preview of a wireframe sphere. We now select the
surface we want to splop on…we left click to start the center of our object, then move the
mouse away from this point to determine the scale, left click again and a copy is
created…
After Sploping a few more stars…
You may need to toggle the flip option to yes if it appears upside down on the surface.
Also, by default, the object will deform in order to remain perpendicular to the surface.
You can toggle this to rigid, so it doesn’t deform…
Rigid = Yes
Rigid = No
Rotation of the object is specified after you pick the Splop drop point by simply moving
around the drop point…
The center of rotation is the same as the center of the reference sphere you create.
The equator of the reference sphere determines how far down the object sits on the
surface. Everything from the equator of the sphere and above will show above the
surface…
Splop works with curves as well…
These curves reside exactly on the surface, so using the trim command we can edit the
surface with the curves…
or…
Finally, Splop also accepts surfaces as input…
The Splop command can really alter how you think about volume, surface and line, and
how you go about designing an object. Using the Splop command can greatly simplify
how you create complex geometry.
Flow Along Curve
Flow Along Curve allows you to re-align an object or group of objects to a curve.
For this example, let’s start with a circle and an extruded shape…
Start the Flow Along Curve command. Select the extrusion as the object to flow along the
curve. The next prompt asks for a base curve. Select the “Line” option. Turn on your End
snap and snap to the top two corners of the extrusion…
Start of line
End of line
Make sure your Stretch option is set to yes. This will ensure that our extrusion stretches
to complete the curve.
Now click on the circle. If all went well, a copy of your extrusion now flows along the
curve…
Our first and second picks for the line determine whether the extrusion sits inside or
outside of the curve…
2nd pick
1st pick
1st pick
2nd pick
The circles are stretched because we had the “stretch” option set to yes.
If we don’t want the circles on our extrusion to stretch, we can re-run this command with
the stretch set to “no”…
Without stretching, our extrusion is too short to completely follow the curve.
So what if we want to not distort the circles? We need to make the extrusion the same
length as the curve. We can find out how long the curve is by Going to Analyze > Length
and selecting the circle as the curve to measure. In the command prompt, Rhino tells me:
If I make my extrusion using this length (i.e. highlight the value in the command prompt,
CTRL-C to copy this value, then create a new extrusion by pasting this value with CTRLV), and re-run the Flow command without the stretch option, the extrusion now
completely follows the curve…
The hole spacing is regular until you come to the area where one end of the extrusion
meets the other. This is because is kept the same spacing when I remade the extrusion
and there was some material left over.
Larger gap
Smaller gap
Larger gap
Smaller gap
If we really wanted to make spacing regular, we would need to change the spacing of the
holes to match the length of the extrusion.
The “Between” Snap
One more detail to consider. When specifying your base curve, if the spot you want is not
“snappable”, like the center of a face for instance, you can use the “Between” snap to
specify a location that is between two snappable points.
Let’s demonstrate this by dropping a point on the center of a face. Start the Point
command. For location of Point, notice that there is no direct way to snap to the middle
of the end face of our extrusion. Now turn on the mid snap, then hover over the snap
toolbar area and hit the CTRL button…
Regular Snaps
Bonus Snaps when CRTL key is pressed
Between here (first click)…
And here (second click)…
A point is created between the clicks above
The between snap works anytime you are asked for a location. Also, it lasts only for one
input, so if you are defining an axis, you will need to run it twice.