Skip to content

Commit

Permalink
Merge pull request #233 from gramaziokohler/UpdatedDocs
Browse files Browse the repository at this point in the history
first draft of new doc
  • Loading branch information
gheyselinck authored Feb 20, 2024
2 parents 6cf454e + 6183b32 commit cd32c66
Show file tree
Hide file tree
Showing 46 changed files with 365 additions and 90 deletions.
1 change: 1 addition & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ Authors
* Gonzalo Casas <[email protected]> `@gonzalocasas <https://github.com/gonzalocasas>`_
* Jonas Haldemann <[email protected]> `@jonashaldemann <https://github.com/jonashaldemann>`_
* Oliver Appling Bucklin <[email protected]> `@obucklin <https://github.com/obucklin>`_
* Aurèle L. Gheyselinck <[email protected]> `@gheyselinck <https://github.com/gheyselinck`>_
1 change: 1 addition & 0 deletions docs/tutorials.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Then, the following sections explain in detail the concepts and tools:
tutorials/grasshopper/beam
tutorials/grasshopper/attributes
tutorials/grasshopper/joints
tutorials/grasshopper/rules
tutorials/grasshopper/features
tutorials/grasshopper/assembly
tutorials/grasshopper/show
Expand Down
41 changes: 31 additions & 10 deletions docs/tutorials/grasshopper/assembly.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,39 @@
Assembly
********

**Assembly** component creates a frame structure made of joined :code:`Beam` objects.
It connects the beams and adds features based on provided `Joints` (:doc:`joints`) and `Features` (:doc:`features`) definitions.
**Assembly** component creates a structure composed of joined :code:`Beam` objects. It connects the beams with joints and adds
features based on the :doc:`joints` and :doc:`features` inputs provided.

Geometric operations like cutting, trimming and solid boolean subtractions, which are implied by joints and features,
may be computationally expensive, and are disabled by default.
To activate it, set `applyFeatures` to :code:`True`.
Output parameter `Errors` provides a log of unsuccessful feature-apply operations.
Geometric operations like cutting, trimming and solid boolean subtractions, which are implied by joints and features,
may be computationally expensive, and are disabled by default.
To activate it, set `CreateGeometry` to :code:`True`.

.. image:: ../images/gh_assembly.png
:width: 20%

Assembly as such is an abstract object. To visualize it (to visualize the beams in the assembly),
use the :code:`ShowAssembly` component that returns the *Brep* geometry of the beams.

.. image:: ../images/assembly_01.png
:width: 50%
Inputs:

* `Beams` : collection of beams.
* `JointsRules` : collection of joint rules.
* `Features` : collection of features definitions.
* `MaxDist` : Max Distance Tolerance for topology detection.
* `CreateGeometry` : If True, Beam and joint geometry is created for visualisation. Default is False.

Outputs

* `Assembly` : Assembly object.
* `Geometry` : Geometry of the beams and joints.
* `DebugInfo` : Debug information object in the case of feature or joining errors.

|
.. note::

**Visualisation**

Assembly as such is an abstract object. To visualise the beams in the assembly, the :code:`ShowAssembly` component returns a *Brep* geometry of the beams. See :doc:`show` for the visualisation of other helpful
information such as *Joint Type* or *Beam Index*, spatially located.

For debugging, the :code:`ShowFeatureErrors` component or :code:`ShowJoiningErrors` component visualise the errors that occur during the assembly process. See :doc:`show`.

33 changes: 19 additions & 14 deletions docs/tutorials/grasshopper/beam.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,12 @@ The *origin* is located at the start of the centerline.
.. image:: ../images/beam_01png.png
:width: 40%

The Grasshopper plugin has two components to create beams:

* **BeamFromCurve** - to create a beam form a Grasshopper `Line` or `LineCurve`
* **BeamFromCurveGuid** - to create a beam from a `Guid` of a `Line` object referenced from an active Rhino document.
This one is intended for a design workflow, where the input geometry (centerlines etc.) is drawn or stored in a Rhino document
instead of Grasshopper.
Beams are created with the component :code:`Beam` - to create a beam from a Grasshopper `Line` or `LineCurve`, or from a `Guid` of a `Line` object referenced from an active Rhino document.
The latter is intended for a design workflow, where the input geometry (centerlines, etc.) is drawn or stored in a Rhino document instead of generated within the Grasshopper environment.

Inputs:

* `Centerline` : the centerline of the beam, also called the major axis.
* `Centerline` : one or more centerline of the beam(s), also called the major axis.
* `ZVector`: (optional) a vector used to define the rotation of the cross-section around the centerline.
Together with the centerline it indicates the plane in which the Z-axis of the beam lies,
which is to say that `ZVector` does not have to be perpendicular, but cannot be parallel, to the centerline.
Expand All @@ -30,16 +26,25 @@ Inputs:

* `Width`: the smaller dimension of the cross-section (by convention).
* `Height`: the larger dimension of the cross-section (by convention).
* `Category`: (optional) a string as an additional attribute, used later to define joint rules in **JointCategoryRule** component for the **AutomaticJoint** tool. See also :doc:`joints`.
* `updateRefObj`: (optional, in BeamFromCurveGuid) set it to :code:`True` to write the new attributes to the source Line objects. See also :doc:`attributes`.
* `Category`: (optional) a string as an additional attribute, used later to define joint rules in **Direct Joint Rules** component. See also :doc:`workflow`.
* `updateRefObj`: (optional) set it to :code:`True` to write the new attributes to the source Line objects. See also :doc:`attributes`.

Outputs:

* `Beam` : the resulting beam(s).
* `Blank`: the corresponding blank beam. The blank represents the raw material from which the beam is cut and without :doc:`features`. It is used to define the stock size for the beam.

.. image:: ../images/beam_02.png
:width: 30%
.. image:: ../images/gh_beam.png
:width: 40%

Once a :code:`Beam` is created, it can be used as an input for the :doc:`assembly` component or the following components:

|
* **DecomposeBeam** : extracts the frame, centreline, box, width and height from a beam.
* **FindBeamByRhinoGeometry** : finds the beam corresponding to a referenced Rhino curve or line.

Once a :code:`Beam` is created, you can preview its shape, coordinate system and extract its geometry and parameters using these components:
.. image:: ../images/gh_beamDecompose.png
:width: 40%

.. image:: ../images/beam_04.png
.. image:: ../images/gh_beamGUID.png
:width: 40%

22 changes: 18 additions & 4 deletions docs/tutorials/grasshopper/features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,26 @@ Features

Features are additional geometric operations on beams:

.. image:: ../images/diagram_features.png
:width: 75%

**BrepSubtractionFeature** is a boolean operation to subtract any *Brep* geometry from a beam.

* **Trim Feature** cuts a beam with a *Plane*. The part of the beam lying on the *z-positive* side of the plane will be removed.
* `Beam` : the beam to be subtracted from
* `Brep` : the Brep geometry to subtract as a Brep

* **Brep Subtraction Feature** is a boolean operation to subtract any *Brep* geometry from a beam.
**BrepDrillHoleFeature** is a boolean operation to subtract a hole from a beam.

.. image:: ../images/Features_diagramm.png
:width: 100%
* `Beam` : the beam to be drilled
* `Line` : the axis of the hole as a Line
* `Diameter` : the diameter of the hole

**TrimFeature** cuts a beam with a *Plane*. The part of the beam lying on the *z-positive* side of the plane will be removed.

* `Beam` : the beam to be trimmed
* `Plane` : the plane to trim the beam as a surface

The output `Feature` is to be used as input for the **Assembly** component. See :doc:`assembly`.

.. image:: ../images/gh_features.png
:width: 51%
Loading

0 comments on commit cd32c66

Please sign in to comment.