kumiki.joints.workshop.splice¶
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.splice -- you do not need to import from the submodule path shown in the heading above.
kumiki.joints.workshop.splice
¶
Kumiki - Splice joint construction functions
cut_腰掛鎌継ぎ_joint_on_aligned_timbers
module-attribute
¶
cut_腰掛鎌継ぎ_joint_on_aligned_timbers = cut_lapped_gooseneck_joint_on_aligned_timbers
cut_koshikake_kama_tsugi_joint_on_aligned_timbers
module-attribute
¶
cut_koshikake_kama_tsugi_joint_on_aligned_timbers = cut_lapped_gooseneck_joint_on_aligned_timbers
cut_kanawa_tsugi_joint_on_aligned_timbers
module-attribute
¶
cut_kanawa_tsugi_joint_on_aligned_timbers = cut_rebated_oblique_and_dadoed_scarf_joint_on_aligned_timbers
cut_kanawa_tsugi
module-attribute
¶
cut_kanawa_tsugi = cut_rebated_oblique_and_dadoed_scarf_joint_on_aligned_timbers
cut_金輪継ぎ_joint_on_aligned_timbers
module-attribute
¶
cut_金輪継ぎ_joint_on_aligned_timbers = cut_rebated_oblique_and_dadoed_scarf_joint_on_aligned_timbers
cut_金輪継ぎ
module-attribute
¶
cut_かなわつぎ_joint_on_aligned_timbers
module-attribute
¶
cut_かなわつぎ_joint_on_aligned_timbers = cut_rebated_oblique_and_dadoed_scarf_joint_on_aligned_timbers
cut_かなわつぎ
module-attribute
¶
cut_plain_butt_splice_joint_on_aligned_timbers
¶
cut_plain_butt_splice_joint_on_aligned_timbers(arrangement: SpliceJointTimberArrangement, splice_point: Optional[V3] = None) -> Joint
Creates a plain butt splice joint between two parallel timbers cut at a shared plane.
Both timbers are cut at the splice plane, creating a flush end-to-end connection.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
arrangement
|
SpliceJointTimberArrangement
|
Splice joint arrangement with timber1, timber2, timber1_end, timber2_end. Timbers must have parallel length axes. |
required |
splice_point
|
Optional[V3]
|
Point where the splice occurs. If not provided, the midpoint between the two timber ends is used. If provided but off the centerline, it is projected onto timber1's centerline. |
None
|
Returns:
| Type | Description |
|---|---|
Joint
|
Joint object containing the two CutTimbers. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the timbers do not have parallel length axes. |
Source code in kumiki/joints/workshop/splice/plain_butt_splice_joint.py
14 15 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 | |
cut_plain_splice_lap_joint_on_aligned_timbers
¶
cut_plain_splice_lap_joint_on_aligned_timbers(arrangement: SpliceJointTimberArrangement, lap_length: Numeric, top_lap_shoulder_position_from_top_lap_shoulder_timber_end: Numeric, lap_depth: Optional[Numeric] = None) -> Joint
Creates a splice lap joint between two parallel timber ends with interlocking relief cuts.
One timber has material removed from the specified face; the other has material removed from the opposite face. Timbers must be parallel and face-aligned.
arrangement.front_face_on_timber1
v |--------| lap_length
╔════════════════════════╗╔══════╗ - ║timber1 ║║ ║ | lap_depth ║ ╔════════╝║ ║ - ║ ║╔════════╝ ║ ║ ║║ timber2 ║ ╚═══════════════╝╚═══════════════╝ ^ top_lap_shoulder_position_from_top_lap_shoulder_timber_end
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
arrangement
|
SpliceJointTimberArrangement
|
Splice joint arrangement with timber1, timber2, timber1_end, timber2_end, and optionally front_face_on_timber1 (the lap cut face on timber1). If front_face_on_timber1 is None, defaults to FRONT face. Timbers must be parallel and face-aligned. |
required |
lap_length
|
Numeric
|
Length of the lap region along the timber length. |
required |
top_lap_shoulder_position_from_top_lap_shoulder_timber_end
|
Numeric
|
Distance from the timber1 end to the shoulder, measured inward along the timber. |
required |
lap_depth
|
Optional[Numeric]
|
Depth of material to remove perpendicular to the face. If None, defaults to half the timber thickness in the face normal axis. |
None
|
Returns:
| Type | Description |
|---|---|
Joint
|
Joint object containing the two CutTimbers with lap cuts. |
Source code in kumiki/joints/workshop/splice/plain_splice_lap_joint.py
cut_lapped_gooseneck_joint_on_aligned_timbers
¶
cut_lapped_gooseneck_joint_on_aligned_timbers(arrangement: SpliceJointTimberArrangement, gooseneck_length: Numeric, gooseneck_small_width: Numeric, gooseneck_large_width: Numeric, gooseneck_head_length: Numeric, lap_length: Numeric = scalar(0), gooseneck_lateral_offset: Numeric = scalar(0), gooseneck_depth: Optional[Numeric] = None) -> Joint
Creates a lapped gooseneck joint (腰掛鎌継ぎ / Koshikake Kama Tsugi) between two timbers.
This is a traditional Japanese timber joint that combines a lap joint with a gooseneck-shaped profile. The gooseneck profile provides mechanical interlock while the lap provides additional bearing surface.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
arrangement
|
SpliceJointTimberArrangement
|
Splice arrangement where timber1 is the gooseneck timber, timber2 is the receiving timber, timber1_end/timber2_end are the joined ends, and front_face_on_timber1 is the face on timber1 where the gooseneck profile is visible. |
required |
gooseneck_length
|
Numeric
|
Length of the gooseneck shape (does not include lap length) |
required |
gooseneck_small_width
|
Numeric
|
Width of the narrow end of the gooseneck taper |
required |
gooseneck_large_width
|
Numeric
|
Width of the wide end of the gooseneck taper |
required |
gooseneck_head_length
|
Numeric
|
Length of the head portion of the gooseneck |
required |
lap_length
|
Numeric
|
Length of the lap portion of the joint |
scalar(0)
|
gooseneck_lateral_offset
|
Numeric
|
Lateral offset of gooseneck profile |
scalar(0)
|
gooseneck_depth
|
Optional[Numeric]
|
Optional depth of the gooseneck cut. If None, defaults to half the timber dimension perpendicular to arrangement.front_face_on_timber1 |
None
|
Returns:
| Type | Description |
|---|---|
Joint
|
Joint object containing the two CutTimbers with the gooseneck cuts applied |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the parameters are invalid or the timbers are not properly positioned |
Source code in kumiki/joints/workshop/splice/lapped_gooseneck_joint.py
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 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | |
cut_rebated_oblique_and_dadoed_scarf_joint_on_aligned_timbers
¶
cut_rebated_oblique_and_dadoed_scarf_joint_on_aligned_timbers(arrangement: SpliceJointTimberArrangement, rebated_shoulder_depth: Numeric, scarf_length: Numeric, dado_depth: Numeric, dado_height: Numeric, stub_tenon_width: Numeric, rebated_shoulder_length: Optional[Numeric] = None, joint_center_relative_to_timber1_end: Numeric = scalar(0), lateral_offset_from_midline: Numeric = scalar(0)) -> Joint
Creates a rebated oblique and dadoed scarf joint (金輪継ぎ / Kanawa Tsugi).
arrangement.front_face_on_timber1 determines the face which scarf cut profile is visible on.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
arrangement
|
SpliceJointTimberArrangement
|
Splice arrangement with timber1, timber2, timber1_end, timber2_end, and front_face_on_timber1. |
required |
rebated_shoulder_depth
|
Numeric
|
(Tsuki-tsuke (突付)) determines the depth of the rebated shoulder cut in the scarf joint, the 2 rebated shoulders form the pin hole for the square peg forming the Kusabi-ana (楔穴) |
required |
scarf_length
|
Numeric
|
determines the length of the scarf cut on each timber, it is measured from the corner that lies on the midline of the scarf joint of the opposite dadoes of the joint when fully assembled |
required |
dado_depth
|
Numeric
|
the "depth" of both dadoes (measured in the length axis of the timbers) |
required |
dado_height
|
Numeric
|
the "height" of both dadoes (measured in the long face axis of the long face adjacent front_face_on_timber1), the dado width is always the entire size of the timber in the front_face_on_timber1 axis |
required |
stub_tenon_width
|
Numeric
|
the "width" of the stub tenon (measured in the long face axis of the long face adjacent front_face_on_timber1), the stub tenon depth is always the distance from the surface to the dado wall. |
required |
rebated_shoulder_length
|
Optional[Numeric]
|
determines the length of the rebated shoulder cut in the scarf joint, if None, defaults to rebated_shoulder_depth (forming a rectangular peg hole). Note this measures the width of the rectangular hole that gets created by the rebated shoulder, rather than the width from corner to corner of the rectangular hole which is how you might draw this joint by hand. |
None
|
joint_center_relative_to_timber1_end
|
Numeric
|
determines the "center" of the joint (right in the middle of the rectangular peg hole) measured inward from the joint end of timber1. (positive means the joint center is further into timber1) |
scalar(0)
|
lateral_offset_from_midline
|
Numeric
|
determines the lateral offset of the joint profiles centerline from the midline of front_face_on_timber1 |
scalar(0)
|
Returns:
| Type | Description |
|---|---|
Joint
|
Joint object containing both cut timbers and the peg accessory. |
Notes
the oblique scarf face angle (Sogi-michi (斜面)) is determined by the rebated_shoulder_depth and the scarf_half_length all measurements are done relative to timber1, timber2 is expected to share the same axis and be the same size as timber1.
Source code in kumiki/joints/workshop/splice/half_blind_tenoned_dadoed_rabbeted_scarf_joint.py
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 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 | |
cut_half_blind_tenoned_dadoed_rabbeted_scarf_joint_on_aligned_timbers
¶
cut_half_blind_tenoned_dadoed_rabbeted_scarf_joint_on_aligned_timbers(arrangement: SpliceJointTimberArrangement, stepped_shoulder_depth: Optional[Numeric] = None, scarf_length: Optional[Numeric] = None, dado_depth: Optional[Numeric] = None, dado_height: Optional[Numeric] = None, stub_tenon_width: Optional[Numeric] = None, stepped_shoulder_length: Optional[Numeric] = None, joint_center_relative_to_timber1_end: Numeric = scalar(0), lateral_offset_from_midline: Numeric = scalar(0), *, rebated_shoulder_depth: Optional[Numeric] = None, rebated_shoulder_length: Optional[Numeric] = None) -> Joint
Compatibility alias for cut_rebated_oblique_and_dadoed_scarf_joint_on_aligned_timbers.