Skip to content

Commit

Permalink
Merge pull request #713 from slobberingant/dev
Browse files Browse the repository at this point in the history
New section "Iterating Over Compounds" to Assembly documentation.
  • Loading branch information
gumyr authored Sep 26, 2024
2 parents e901b63 + f1244a5 commit 55f6e8f
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions docs/assemblies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,28 @@ adds the following attributes to :class:`~topology.Shape`:

.. _pack:

************************
Iterating Over Compounds
************************

As Compounds are containers for shapes, build123d can iterate over these as required.
Complex nested assemblies (compounds within compounds) do not need to be looped over with recursive functions.
In the example below, the variable total_volume holds the sum of all the volumes in each solid in an assembly.
Compare this to assembly3_volume which only results in the volume of the top level part.

.. code:: python
# [import]
from build123d import *
from ocp_vscode import *
# Each assembly has a box and the previous assembly.
assembly1 = Compound(label='Assembly1', children=[Box(1, 1, 1),])
assembly2 = Compound(label='Assembly2', children=[assembly1, Box(1, 1, 1)])
assembly3 = Compound(label='Assembly3', children=[assembly2, Box(1, 1, 1)])
total_volume = sum(part.volume for part in assembly3.solids()) # 3
assembly3_volume = assembly3.volume # 1
******
pack
******
Expand Down

0 comments on commit 55f6e8f

Please sign in to comment.