====== Grasshopper for New Users ====== ===== What is Grasshopper? ===== From grasshopper.com: "Grasshopper® is a graphical algorithm editor tightly integrated with Rhino’s 3-D modeling tools. Unlike RhinoScript, Grasshopper requires no knowledge of programming or scripting, but still allows designers to build form generators from the simple to the awe-inspiring." It allows geometric operations to be automated and programmed for design exploration. Through its support of plug-ins, Grasshopper can also be extended to automate other processes that operate on geometry. Intact.Simulation for Grasshopper is just one example of these types of extensions. ===== Blocks ===== Blocks in Grasshopper represent data (numbers, text, geometry) or processes that operate on data. (In Grasshopper parlance, the more proper term is "Components." We use the term "Blocks" to distinguish them from Intact.Simulation Components which are solids to which a material is assigned for simulation.) ===== Connectors ===== Connectors define the flow of data from the output of one block into the input of another. Connectors are inserted by clicking and dragging from the output node of one block to the input node of another - clicking and dragging in the opposite direction works as well. Connectors may be deleted by right-clicking on a node's label and choosing **Disconnect**. ===== Data Types ===== Grasshopper supports a wide range of data types. Here we'll only cover the basic types that are used by Intact.Simulation. * Numbers * Vectors * Lines * Surfaces (open or closed) * Brep (open or closed) * Meshes (open or closed) * Lists ==== Entering Numbers ==== Integers: /Params\ --> Primitive --> <7> --> RMB on Number block --> Set Integer Reals: /Params\ --> Primitive --> <0.1> --> RMB on Number block --> Set Number Slider: /Params\ --> Input --> --> RMB on Slider block --> Set Slider parameters Integer Shortcut / Slider: DLMB on canvas --> Keyword search --> enter integer Real Shortcut / Slider: DLMB on canvas --> Keyword search --> enter real with decimal point Shortcut: RMB on block input label --> enter number ==== Entering Vectors ==== Vector block: /Params\ --> Geometry --> --> RMB on Vector block --> Set one Vector (in Rhino) --> Follow Rhino prompts By components: /Vector\ --> Vector XYZ --> Specify vector components on Vector block inputs Shortcut: RMB on vector input label --> Set one Vector (in Rhino) --> Follow Rhino prompts ==== Entering Lines ==== Line block: /Params\ --> Geometry --> --> RMB on Line block --> Set one Line (in Rhino) --> Follow Rhino prompts Shortcut: RMB on line input label --> Set one Line (in Rhino) --> Follow Rhino prompts ==== Entering Surfaces, Breps, Meshes ==== Surface block: /Params\ --> Geometry --> --> RMB on Surface block --> Set one Surface (in Rhino) --> Follow Rhino prompts Brep block: /Params\ --> Geometry --> --> RMB on Brep block --> Set one Brep (in Rhino) --> Follow Rhino prompts Mesh block: /Params\ --> Geometry --> --> RMB on Mesh block --> Set one Mesh (in Rhino) --> Follow Rhino prompts Shortcut: RMB on geometry input label --> Set one Geometry / multiple Geometries (in Rhino) --> Follow Rhino prompts ==== Creating Lists ==== Some Intact.Simulation blocks accept lists as input. For example, Intact.Simulation can operate on bonded assemblages of components, or multiple loads may be applied in a simulation. Lists can be created in the following ways: "Flat" tree: /Sets\ --> Tree --> Merge block --> Connect multiple inputs to Merge block Shortcut: Hold shift while connecting blocks to list input