Objective:
Learn how to remap a field to scale or translate an implicit body by using blocks and equations. You can translate or scale an object with other blocks in nTop, but this method will help you understand how remapping works.
Applies to:
- Implicit modeling
Procedure:
To gain a further understanding of fields and remapping in nTop, take a look at this Field-Driven Design White Paper by George Allen, an nTop Fellow.
In general, Remap Field allows you to warp geometry by supplying functions or fields to specify a replacement position for every point in the model.
Let's start with a simple 2D analogy:
We have a number line [0, 1, 2, 3]. If you multiply this number by 10, you get [0, 10, 20, 30]. Basically, you are stretching out these values. This is what happens with Remap Field, but we do it to 3D geometry across XYZ.
Ex. 1 Let's use the remap block to magnify a sphere.
-
- Add a Sphere block
-
Add a Remap Field block
- Input the Sphere into the Field input
- X: X*10 (can also use a Multiply block)
- Y: Y
- Z: Z
We stretch all the X values but keep the same Y and Z values of the sphere. Multiplication scales the model while addition and subtraction translate the model.
When you add and multiply field values in nTop, you're not directly modifying a shape, you're modifying a coordinate system used to represent that shape.
One main difference between explicit and implicit modeling is that explicit geometry transforms actively (you move it where you want it), while implicits transform passively (you move the coordinate system, not the object). To apply a transformation to a shape, you have to apply the inverse transformation to its coordinate system. If your object is at the origin, and you move the origin (-1, 0, 0), your object ends up at (1, 0, 0) after.
Understanding Remapping through Equations
If you want to plot a function in the form z = f(x, y)
, you can implicitize it by moving all the terms to one side. e.g. 0 = z - f(x, y)
You want the expression opposite the zero to be negative where the part is solid.
Ex. 2 The unit circle centered at the origin has the equation sqrt(x^2 + y^2) - r = 0
. We want to shift this circle by +1 unit along the x-axis, the new equation is sqrt((x-1)^2 + y^2) - 1mm = 0mm
. To move the circle +1 in the x-direction, we replaced x by x-1, not by x+1.
The blue circle is the translated object.
Example as shown using a primitive sphere block.
-
- Input a Subtract block into the X input
- Set Operand A: x
- Operand B: 1
- Input a Subtract block into the X input
Ex. 3 We want to scale our unit circle by a factor of 3. The scaled-up circle has the equation sqrt((x/3)^2 + (y/3)^2) - 1mm = 0mm
. To scale the shape by a factor of 3, we scale its coordinates by a factor of 1/3.
Example as shown using a primitive sphere block.
-
- Input a Divide block into the X input
- Set Operand A: X
- Operand B: 3
- Input a Divide block into the Y input
- Set Operand A: Y
- Operand B: 3
- Input a Divide block into the Z input
- Set Operand A: Z
- Operand B: 3
- Input a Divide block into the X input
Are you still having issues? Contact the support team, and we’ll be happy to help!