Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

first draft of new doc #233

Merged
merged 11 commits into from
Feb 20, 2024
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
Loading