Skip to content

How it works or should work

Ania A edited this page Dec 5, 2022 · 22 revisions

Assembly

  • copy(): features / trimmed geometries are not copied!?

TimberAssembly

  • assembly.parts, assembly.beams

Beam

Part

  • part.shape:
    base shape
    → still working??
    type: BrepGeometry or MeshGeometry (inherit from PartGeometry from Geometry)
  • part.geometry:
    including applied features

Joint

Features

General stuff from compas Part class [source]:

  • types: MeshFeature, BrepFeature, ParametricFeature(?)
  • know their feature shape and operation
  • store a deepcopy of previous part geometry after applying
  • hold reference to Part
  • parts and joints hold list of references to features
  • do not know where they come from (don't hold reference to e.g. joint)
  • apply themselves
  • 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?

Example T-butt joint:

features:

  • extend main beam (esp. if the cutting plane is not perp to main beam's centerline)
  • trim main beam
Clone this wiki locally