Grasshopper Botcha tools

Botcha offers a number of useful tools within grasshopper. These tools can be found in the Botcha tab after the installation of the plugin.

Geometry preview

Show a preview of the provided geometries by applying a chosen color.

Inputs

  • geometry: One or more geometries to preview.
  • color: Color to apply to geometries.

Outputs

The node does not produce an actual output, but simply creates a preview in the model.

Remap

Remap geometries from a mesh to another one. As a prerequisite for this node the two meshes need to have matching UV in order to properly work, the way the node performs the mapping is by converting the coordinate of an object to the source mesh UV space and then remap that to the target mesh.

Inputs

  • sourceMesh: The original mesh where to start the mapping from. All the geometries that will be remapped will be considered starting from this one mesh.
  • targetMesh: The target mesh where the mapping will end to. The geometries will be remapped around this target mesh.
  • searchTolerance: The radius to search around each point of each object that needs remapping. This influences how far away the node will look for remapping.
  • smooth: Whether to smooth the output or not.
  • strategy: 0 will use UV mapping strategy and 1 will use the skinning strategy
    • UVMap is topology independent and allow you to use the UVs to map from one object to the other using the texture coordinates.
    • Skinning is topology dependant, the two meshes need to match but it is faster than the UV mapping
  • geometries: The actual geometries to be remapped.

Outputs

  • outputGeos: The remapped geometry.

Mesh Loft

Create a mesh loft from a set of closed curves.

Inputs

  • profiles: The set of curves representing the sections through which the mesh loft must pass.
  • samples: Number of samples along the section curves.
  • steps: Number of steps along the loft.

Outputs

  • loft: The generated mesh loft.

Mesh loft

Planar Quadmesh, Planar Trimesh

Create a planar quad or triangular mesh starting from a closed curve. The curve must be planar.

Inputs

  • boundary curve: the planar curve representing the external boundary of the mesh to generate.
  • holes: other curves representing holes in the mesh to generate.
  • guides: guide curves to which face generation and general mesh orientation will be bound.
  • edge length: length to use for mesh edges.
  • tolerance: tolerance to use for the mesh generation.

Outputs

  • mesh: The generated planar mesh.

Planar Quadmesh

Catmull-Clark subd

Subdivide a mesh with Catmull-Clark algorithm.

Inputs

  • iterations: Number of iterations of the algorithm.
  • edgeSmoothing: Boolean value that tells whether to apply edge smoothing.

Outputs

  • out: The generated subdivided mesh.

Catmull-Clark Subd

Mesh project

Project a mesh onto another mesh.

Inputs

  • originalMesh: The mesh that needs to be projected.
  • colliders: One or more meshes onto which the original mesh will be projected.
  • direction: Vector representing the direction of the projection.

Outputs

  • proj: Projected mesh generated.

Mesh project

Stitching generation

Stitching node creates a stitching along a chosen curve on a mesh.

Inputs

  • Stitching pattern: Pattern of the stitching. You can use an off-the-shelf pattern from the PrefabPatterns node or create a customized one using the StitchPattern node, both explained below.
  • Stitching curve: Curve you want your stitching along.
  • Mesh: Mesh the stitching will lay on.
  • Maximum distance: of the curve from the mesh. If the selected curve is farther it will be ignored. If not specified no distance limits will be considered and any curve will be good.
  • Curved or rounded: Boolean to choose the dash style.
  • Dash diameter.
  • Project: Boolean value that tells wether to project the result on the mesh or keep it along the curve.

Output

The generated stitching mesh.

Stitching generation A zigzag prefab pattern used to generate a stitching

Prefab stitching patterns

Choose from a set of ready-made stitching patterns from the list you can see after right-clicking on the node.

Prefab pattern

Customized stitching patterns

StitchPattern node generates a new pattern.

Inputs

  • Stitching curves: Curves the pattern is made of.
  • Leading line: Line to choose the orientation and the dimension of the curves composing the pattern.
  • Dash length.

Output

The new scaled geometries.

Stitching pattern

Grade geometry

Generate a new geometry transforming the input one to match a given size.

Inputs

  • Last: Geometry to be graded.
  • Other geometries: Other geometries to scale together with the last.
  • Last line: Line between heel and top points.
  • Target length: Target length of the last.
  • Target ball: Target ball girth.
  • Angle: Rotation angle in degrees.
  • Max iterations.

Grade geometry

Copy on mesh

Generate a copy of an object on a chosen mesh, subD, surface or brep.

Inputs

  • Object: Object to copy. It can be a mesh, subD, surface or brep.
  • Target mesh: The object the new copy will lay on. It also can be a mesh, subD, surface or brep.
  • Point: Point on the target object where you want the copy to be generated. if it is not right on the surface, it will be approximated to the closest point within a certain distance chosen by input as Max distance.
  • Plane: The plane to use like a "carpet" for the object to copy and put it on the target surface.
  • Angle: Rotation angle in degrees.
  • Max distance.

Output

The copy of the object in the right position.

Array on mesh

Generate an array of copies of an object on a chosen curve laying on a mesh, subD, surface or brep.

Inputs

  • Object: Object to copy. It can be a mesh, subD, surface or brep.
  • Target mesh: The object the new copy will lay on. It also can be a mesh, subD, surface or brep.
  • Curve: The curve the generated array of objects will lay on. If any location on the curve is not a point of the surface, the corresponding object position will be approximated to the surface closest point within a certain distance chosen by input as Max distance.
  • Plane: The plane to use like a "carpet" for the object to copy and put it on the target surface.
  • Angle: Rotation angle in degrees.
  • Mode: Input true in case of distance based generation, false in case you prefer to specify the number of objects in the array.
  • Value: Distance or quantity, basing on the chosen mode.
  • Max distance.

Output

The array of object copies on the curve.

Array on mesh

Cage deformation

This feature allows deforming a geometry using a cage containing it, corresponding to the object's bounding box along Cartesian axes. Each side of the cage is divided into segments, the number of which is chosen by the user. This division allows isolating the areas of the object responding to the stretching from those remaining rigid. This functionality, similar to Rhino CageEdit, provides an easy way for achieving non-uniform deformation along different axes and along different parts of each axis. It can also been applied to multiple geometries simultaneously with their relative cages.

Inputs

  • SourceGeos: Geometries to deform.
  • xSlices: The number of segments you want to subdivide on the x-axis side of the cage.
  • ySlices: The number of segments you want to subdivide on the y-axis side of the cage.
  • zSlices: The number of segments you want to subdivide on the z-axis side of the cage.
  • nMoveX: The number of cage segments on the x-axis that you want to be affected by the deformation.
  • nMoveY: The number of cage segments on the y-axis that you want to be affected by the deformation.
  • nMoveZ: The number of cage segments on the z-axis that you want to be affected by the deformation.
  • dxSlices: Quantity of deformation along x-axis (positive).
  • dySlices: Quantity of deformation along y-axis (positive).
  • dzSlices: Quantity of deformation along z-axis (positive).

Output

  • outputGeos: The deformed geometries.
  • outputCagePts: Cage points.

Cage deformer A last deformation along x-axis on different cage segments.

Cage deformation from points

You can directly manipulate an object’s cage using its control points. Two components facilitate this process:

  • CageCreation: This component generates a cage for an object based on the specified number of subdivisions along each axis.
  • CageDeformFromPoints: This component accepts a cage and new target points for deformation. To use it, first create a cage and its control points using CageCreation. Then, input the cage and the desired points into CageDeformFromPoints. By adjusting the position of these points, you can observe deformations on the object. This workflow can be applied to multiple geometries.

Cage deformer A last deformation moving cage points, which has been added to the Rhino document and then edited.