plycutter.sheetplex
plycutter.sheetplex.SheetPlex
Constant data extracted from a 3D model.
Three classes represent the objects that live in a sheetplex:
Sheet
-- a single plywood (or other material) sheetIntersection
-- the intersection between two sheetsInterSide
-- one sheet's side of an Intersection
The direct members are
intersections -- PMap[str, Intersection]
Stored in a pyrsistent.PRecord, see the methods therein for how to manipulate this object.
Methods
interside(self, id)
Get the interside with the given id
intersides(self, sheet_id=None)
Return an iterator for intersides of a particular sheet or all
limit(self, sheet_ids)
Return a sub-Sheetplex with only the given sheet_ids included
plycutter.sheetplex.Sheet
A single sheet that is part of the full model.
Contains various data extracted from the 3D model to help geometric reasoning about the joints.
Methods
project_point4(self, pt)
Project a homogeneous point or line to this plane, return 2D point or direction vector for a line
plycutter.sheetplex.Intersection
An intersection between two sheets.
An intersection defines the intersection coordinate system which is a 1D coordinate across the intersection.
The joint fingers are defined in terms of that coordinate.
Methods
sheets(self)
Return a tuple of the particpating sheet ids
side_by_sheet(self, sheet_id)
Get the InterSide
for the given sheet_id.
Returns:
Type | Description |
---|---|
None if the given |
plycutter.sheetplex.InterSide
A particular sheet's view of an intersection.
Methods
make_fingers(self, where, fract0=0, fract1=1)
Create a geom for fingers on the sheet on this InterSide.
The parameters fract0 and fract1 are useful mostly for visualizations of different rules affecting the fingers.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
where |
Geom1D of sections along joint |
required | |
fract0 |
From this fraction coordinate across joint |
0 |
|
fract1 |
To this fraction coordinate across joint |
1 |
Returns:
Type | Description |
---|---|
2D geometry of fingers. |
opposite(self, sheetplex)
Get the other InterSide in the Intersection we are part of
project_to_1d(self, geom2d)
Project a Geom2D in Sheet coords to a Geom1D in Intersection coords.