kumiki.joints.workshop.free¶
Flat import path
kumiki/__init__.py re-exports everything on this page via from kumiki import *, so every name below is also available directly as kumiki.free -- you do not need to import from the submodule path shown in the heading above.
kumiki.joints.workshop.free
¶
Kumiki - Free joint construction functions
FreeDovetailShape
dataclass
¶
__post_init__
¶
Source code in kumiki/joints/workshop/free/free_dovetail_joint.py
profile_at
¶
The dovetail's cross section at z, in its own x/y: small width at y=0, flaring to y=depth.
Source code in kumiki/joints/workshop/free/free_dovetail_joint.py
csg
¶
csg() -> CutCSG
The dovetail as a solid, in its own frame (origin's local space).
Source code in kumiki/joints/workshop/free/free_dovetail_joint.py
cut_free_house_joint
¶
cut_free_house_joint(housing_timber: TimberLike, housed_timbers: List[Union[TimberLike, CutTimber]]) -> Joint
Creates a generic house joint where the housing timber is cut to receive one or more housed timbers. Each housed timber may be a CutTimber, in which case the housing cut follows that CutTimber's actual remaining body.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
housing_timber
|
TimberLike
|
Timber that will be cut to house the housed timbers |
required |
housed_timbers
|
List[Union[TimberLike, CutTimber]]
|
Timbers that will be housed |
required |
Returns:
| Type | Description |
|---|---|
Joint
|
Joint with the cut housing timber keyed "housing_timber", and each housed timber |
Joint
|
unmodified, keyed "housed_timber_1", "housed_timber_2", ... in input order. No |
Joint
|
assembly freedoms are set (the connections are treated as rigid). |
Source code in kumiki/joints/workshop/free/free_house_joint.py
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | |
cut_free_dovetail_joint
¶
cut_free_dovetail_joint(dovetail_timber: TimberLike, receiving_timber: TimberLike, dovetail: FreeDovetailShape) -> Joint
A dovetail of any shape and placement: the receiving timber gets the socket, the dovetail timber the tongue.
The tongue's neck is the dovetail's narrow face, at its origin, and it widens toward its tip along +y -- so the dovetail timber should lie on the -y side of the dovetail shape origin, and it tapers towards +y. Between the dovetail's ends, everything of the dovetail timber past the narrow face in +y is cut away except the tongue. That face is the joint's shoulder.