-
Notifications
You must be signed in to change notification settings - Fork 26
How it works or should work
Ania A edited this page Dec 5, 2022
·
22 revisions
-
copy()
: features / trimmed geometries are not copied!?
-
part.shape
:
base shape
type:BrepGeometry
orMeshGeometry
(inherit fromPartGeometry
fromGeometry
) -
part.geometry
:
including applied features
-
assembly.parts
,assembly.beams
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
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?