# Grasshopper Intro #02

### Contents

- Basic components
- Components for mathematic operations
- Components for translation
- Components for 2D modeling
- Components for 3D modeling

- Advanced components
- Components for surface subdivision
- Components for numerical sequence
- Components for list operations
- Components for descriptive geometry
- Components for set operations

- appendix | example

### Basic Components

#### Components for mathematic operations

- ConstructPoints : make point with 3 numbers
- Unit X/Y/Z : make vectors with length of vector
- XY/YZ/XZ Plane : make planes with orient point
- Vector2Point : make vectors with 2 points
- ConstructDomain : make domain with a pair of numbers

#### Components for translation

- Move : move objects with vectors
- Rotate : rotate objects with planes and angles
- Rotate3D : rotate objects with axis start points, axis vectors, and angles
- Mirror : mirror object with planes
- Orient : orient objects from origin planes to target planes

#### Components for 2D modeling

- Line : draw lines from a pair of points
- LineSDL : draw lines with start points, direction vectors, and lengths
- Rectangle : draw rectangle with planes and domains
- Circle : draw circles with center points, planes, and radius
- CircleCNR : draw circles with center points, normal vectors of circle, and radius
- Polyline : draw polylines with a series of points
- Curve : draw curves with a series of control points
- Interpolate : draw curves with a series of interpolate points
- Explode : disjoint polycurves and polylines into segments
- JoinCurves : join curves and lines into polylines or polycurves

#### Components for 3D modeling

- CenterBox : model boxes with planes and domains
- Sphere : model spheres with planes and radius
- Extrude : model columella with base curves and direction vector
- Loft : model surfaces with a series of curves
- BoundarySrf : model trimmed planar surfaces with boundary curves
- DeconstructBrep : disjoint polysurfaces into faces, vertices, and edges
- BrepJoin : join faces into polysurfaces

### Advanced Components

#### Components for surface subdivision

- SurfaceDivide : divide surfaces and get points, uv parameter, and normal vector on surfaces
- SurfaceFrames : divide surfaces and get tangent planes and uv parameter
- IsoTrim : divide surfaces with uv domains
- DivideDomain2 : divide domains into sub domains

"UV coordinates"are 2D coordinates to handle anti-euclidean surfaces as planar 2D plane. Metaphorical speaking, ordinates of UV which is called U, is longitude in Geocode, and abscissas, which is V, is latitude. It enable us to define points on surface with pairs of parameters.

#### Components for numerical sequence

- Series : generate sequences of numbers with common differences from initial number, common difference, and length of sequences
- Range : generate sequences of numbers with common differences from domain of number and length of sequences

#### Components for list operation

- ListItem : get Nth object in lists
- CullIndex : delete Nth object in lists
- CullPattern : delete objects in list with patterns
- Dispatch : separate object in two part with patterns
- Pick’n’Choose : pick up objects from lists with pattern (length of result lists are the same as the longest list in source)
- source list A – ABCDEFG
- source list B – abcdefg
- pattern – A, B
- result – AbCdEfG

- Weave : merge lists with pattern (length of result lists are the same as the sum of the length of all lists in source)
- source list A – ABCDEFG
- source list B – abcdefg
- pattern – A, B
- result – AaBbCcDdEeFfGg

#### Components for descriptive geometry

- Line|Line : find intersections with lines (if lines don’t intersect, lines are extended or projected)
- Curve|Curve : find intersections with curves
- Brep|Line : find intersections with Breps and lines (if they don’t intersect, lines are extended)
- Brep|Curve : find intersections with Breps and curves
- Brep|Plane : find intersections with Breps and planes
- Brep|Brep : find intersections with Breps
- SplitWithBrep : Split curves with Brep
- TrimWithBrep : Trim curves with Brep
- SurfaceSplit : split surfaces with curves
- SplitBrep : split Breps with Breps

#### Components for set operation

- RegionUnion : calculate united regions from pairs of regions
- RegionDifference : calculate differences between pairs of regions
- RegionIntersect : calculate intersections with pairs of regions
- SolidUnion : calculate united solid from pairs of regions
- SolidDifference : calculate differences between pairs of regions
- SolidIntersect : calculate intersections with pairs of regions