Skip to content

How it works or should work

Ania A edited this page Nov 23, 2022 · 22 revisions

Assembly

  • copy(): trimmed geometries are not copied!

  • assembly.parts, assembly.beams

Beam

Joint

Features

General stuff from compas Part class [source]:

  • types: MeshFeature, BrepFeature, ParametricFeature(?)
  • know their feature shape and operation
  • hold reference to Part
  • part holds list of references to features
  • store a deepcopy of previous part geometry
  • apply themselves
  • do not know where they come from
  • do they know if already applied?

What part.add_geometry_feature() does:

  • creates a feature instance
  • adds it to part.features() list
  • optionally calls feature.apply()

What feature.apply() does:

  • performs feature operation
  • stores new geometry of the part (transformed) in part._part_geometry

from joints

Each joint type has specific features to apply to the parts, beams etc. For example: trim with a plane, extend length on one side, boolean subtract a notch geometry.

What joint.add_features() does:

  • using part.add_feature() :
    • creates joint-specific features
    • adds them to part.features() list
  • adds them to joint.features() list
  • optionally calls feature.apply()

TODO:

  • prevent duplicates of features from the same joint
  • a failed operation (e.g. trimming) throws an error --> warning / ignore instead?
Clone this wiki locally