Carve SOP

From TouchDesigner 088 Wiki

Summary

The Carve SOP works with any face or surface type, be that polygon, Bzier, or NURBS. It can be used to slice a primitive, cut it into multiple sections, or extract points or cross-sections from it.

Like the Project SOP, it also creates profile curves, but they are extracted as iso-parametric (2D) profiles directly from a surface, whereas the Project SOP extracts a 3D curve projected onto a surface.

Note: When using a Carve SOP on a trimmed surface, you can't fillet or join the trim curves.

PythonIcon.png carveSOP_Class

Parameters

Group - If there are input groups, specifying a group name in this field will cause this SOP to act only upon the Group specified. Accepts patterns, as described in the Scripting Guide under Pattern Matching.

First U /domainu1 - This specifies a starting location to begin the cut/extract. Select this and a parametric U location between 0 and 1.

Second U /domainu2 - This specifies an ending location to complete the cut / extract. Select this and a parametric U location between 0 and 1.

U Divisions /divsu - This specifies the number of cuts / extracts to be performed between first U and the second U.

First V /domainv1 - This specifies a starting location to begin the cut/extract. Select this and a parametric V location between 0 and 1. Applies only to surfaces.

Second V /domainv2 - This specifies an ending location to complete the cut / extract. Select this and a parametric V location between 0 and 1. Applies only to surfaces.

V Divisions /divsv - Specifies the number of cuts/extracts to be performed between first V and second V.

Cut - If enabled, it will split the primitives at the locations specified above, creating an array of distinct smaller primitives.

  • Keep Inside - Keep the primitives specified between the first and second locations.
  • Keep Outside - Keep the primitives lying outside the first and second locations.

Extract Type - If enabled, it will extract a cross-section along each location specified above.

Note: if a face is used, only points can be extracted and the V parameters have no effect.

  • Extract 3-D Isoparametric Curve(s) - The extraction operation creates a 3-D, free-floating curve that matches the surface perfectly at the given U or V location.
  • Extract Point(s) - Available for Mesh and surfaces only. If selected, it will create a point at every U, V location specified, rather than removing a U cross section and a V cross section.
  • Extract 2-D Isoparametric Profile(s) - Creates a 2D curve at the specified U/V location that matches the surface perfectly.

Keep Original - If selected, it will not remove the original primitive.

Only At Breakpoints - Performs cutting or extractions at breakpoints for curves and surfaces, at vertices for polygons, and along isoparms for meshes.

By default the Only At Breakpoints option will only cut the outer breakpoints within the specified interval. By enabling Only At Breakpoints, the U and V divisions parameters are replaced with Cut At All Internal U/V Breakpoints, which cut the primitives at all breakpoints falling within the specified interval when enabled.

Example

Opening a Closed Primitive

Given a closed surface, it can be converted to an identical open surface at any location by using the Carve SOP, and cutting at a single location (e.g. First U enabled, Second U disabled). The same is true for faces.

Dicing a Face or Surface

Select the Cut operation, First U = 0, Second U = 1, First V = 0, Second V = 1, with (at least) three Divisions for U and V. This will dice the surface into (at least) 3 components. This can later be used with the Primitive SOP to "explode" the surface.

Cutting a Hole in a Surface

Select the Cut operation, First U = 0.33, Second U = 0.66, First V = 0.33, Second V = 0.66, 2 Divisions for U and V. Keep Inside is off, Keep Outside is on. This will cut a rectangular region from the centre of the surface.

Animating a Point Over a Face or Surface

Select the Extract option, First U = x, Last U disabled, First V = y, Last V disabled, Extract Point is on, Keep Primitives is optional. This will create a point over any position on the surface (0<=x<=1, 0<=y<=1).


See Also