# Util

LunchBox’s Util components provide a variety of utilities to users. This ‘grab bag’ of tools is designed to give useful shortcuts to Lunchbox users.

#### Component Descriptions

Below, each component is described and visual examples are given. We’ve also included special Notes and Tips that can help users with less familiar situations.

#### ArcDivide

Turns a non-uniform spline curve into a rationalized curve made up of tangential arcs.

Input:

• A list of curves to rationalize
• A list of “t” parameter values along the curve. Tip: You can use the DivideCurve parameter to determine these.

Results:

• A list of rational, planar arcs
• A list of the center points of each arc

#### Deconstruct Wireframe

Organizes a wireframes into a list of nodes and gives definition to its curves.

Input:

• A list of curves, from a wireframe

Results:

• A list of wireframe nodes
• A list of Curve Definitions, where the numbers in each branch represent the index number of the nodes at each end of each wireframe curve.

#### Flatness Check

Checks a list of panels for their flatness, plane normals, and any deviations from flatness.

Input:

• A list of panels

Results:

• A list of flat panels (adjusted from the input list)
• A list of planes that the flat panels have been projected to
• A list of numerical deviations from the original geometry

#### Patch Surface

Returns a patch using a list of edge curves. This may not necessarily result in patches that create a watertight object, depending on the geometry and tolerance given.

Input:

• A list of edge curves as closed polylines. These do not have to be planar.
• A specified U value, the surface subdivisions in one direction.
• A specified V value, the surface subdivisions in the other direction.
• A specified tolerance (the default is 0.001)

Returns a list of patches as surfaces.

#### Random Split List

Randomly splits a list into two lists

Input:

• A list
• A random Seed (a whole number)
• A percentage, indicating how much of the list to split off (into List B).

Results:

• List A (the items remaining from the original list)
• List B (the items that have been split out)

#### Rebuild Surface

Reconstructs surfaces to the specified U and V divisions.

Input:

• A list of untrimmed surfaces
• A list of whole numbers to set the uDegrees (allowable deviation in the U direction)
• A list of whole numbers to set the vDegrees (allowable deviation in the V direction)
• A list of whole numbers to set the number of U divisions on the surface(s)
• A list of whole numbers to set the number of V divisions on the surface(s)

Results: A list of rebuilt surface(s)

#### Relative Coordinates

Returns the coordinates of a point relative to a given plane.

Input:

• A plane or list of planes to use as the basis of the point coordinates
• A list of points to coordinate

Results:

• A list of points, as (X,Y,Z) coordinates
• The X values of the deconstructed points
• The Y values of the deconstructed points
• The Z values of the deconstructed points

#### Reverse Surface Direction

Reverses the U and/or V directions on a surface.

Input:

• A list of surfaces
• A whole number between 0 and 3, indicating which elements to reverse.
• 0 = Do Nothing
• 1 = Reverse U
• 2 = Reverse V
• 3 = Reverse UV

Results:

• A list of reconstructed surfaces

Note: In the example images, the surface evaluation yields different results for its Normal, U, and V values based on the Reverse Option (R) input.

#### Unroll Brep

Creates a 2D surface that represents the faces of a 3D Brep. When folded, the unrolled Brep reforms the input Brep.

Input:

• A list of Breps to unroll.

Results: A 2D arrangement of surfaces, representing the unrolled Brep.

#### Mesh Edges (with Tolerance)

Finds Naked Edges and Edges that are adjacent to another, with an angle greater than that specified.

Input:

• A list of mesh objects
• An integer to set the angle of tolerance.

Results:

• A list of Interior Edges
• A list of Naked Edges

#### Mesh Reduce

Reduce the number of faces on a mesh, to simplify it’s geometry.

Input:

• A mesh
• The number of faces to reduce the mesh to, called Size
• A Boolean toggle to enable or disable Distortion. Setting it to true allows the mesh to distort.
• A number between 0 and 10 to determine the accuracy of the mesh rebuild.
• A Boolean toggle to enable or disable Normalization, which will attempt to make the resulting mesh faces of similar size.

Returns a mesh with the specified number of faces.

#### Sort Duplicate Breps

Sorts a list into Unique Breps and returns a list of the indices where Breps are duplicated. Breps must be defined identically to be identified (including their location).

Input:

• A list of Breps

Returns:

• A list of Unique breps
• A list of the duplicated breps

#### Sort Duplicate Curves

Sorts a list of curves based on duplicates using document tolerances.

Input:

• A list of curves to sort

Returns:

• A list of Unique curves
• A list of Indices for each unique curve

#### Sort Duplicate Points

Sort a list of points based on duplicates.

Input:

• A list of points to sort.

Returns:

• A list of unique points
• A list of the indices of each unique point.