-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* boat * In the realm of scripts and screens, adding a dash of mechanical dreams. * Update header of boat-parts.kcl * In the realm of scripts and screens, adding a dash of mechanical dreams. * Add some more clarification to the description * In the realm of scripts and screens, adding a dash of mechanical dreams. * In the realm of scripts and screens, adding a dash of mechanical dreams. * In the realm of scripts and screens, adding a dash of mechanical dreams. * In the realm of scripts and screens, adding a dash of mechanical dreams. * In the realm of scripts and screens, adding a dash of mechanical dreams. * update to latest unit syntax * In the realm of scripts and screens, adding a dash of mechanical dreams. * Update for breaking changes in KCL * In the realm of scripts and screens, adding a dash of mechanical dreams. * In the realm of scripts and screens, adding a dash of mechanical dreams. * Update for breaking changes in KCL * In the realm of scripts and screens, adding a dash of mechanical dreams. * Update for breaking changes in KCL * In the realm of scripts and screens, adding a dash of mechanical dreams. * In the realm of scripts and screens, adding a dash of mechanical dreams. * updated KCL for linear pattern 2d * updated description * In the realm of scripts and screens, adding a dash of mechanical dreams. * In the realm of scripts and screens, adding a dash of mechanical dreams. * Update process (#168) * KCL 37 release (#169) - pattern functions and `offsetPlane` now use keyword arguments --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Ryan Barton <[email protected]> * Fix assemblies to not rely on import side-effects (#171) * Fix walkie-talkie to not rely on import side-effects * Fix robot arm also * In the realm of scripts and screens, adding a dash of mechanical dreams. --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * update requirements.txt and workflow * In the realm of scripts and screens, adding a dash of mechanical dreams. * update for new kw args * In the realm of scripts and screens, adding a dash of mechanical dreams. --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Adam Chalmers <[email protected]> Co-authored-by: Jonathan Tran <[email protected]>
- Loading branch information
1 parent
72acfde
commit a2711d8
Showing
12 changed files
with
30,330 additions
and
21,494 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,6 +13,7 @@ on: | |
- requirements.txt | ||
branches: | ||
- main | ||
- next | ||
workflow_dispatch: | ||
|
||
jobs: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
// 3D Boaty Function Library | ||
// The following file describes various functions to build the 3D boaty. The name of this file is a bit of misnomer, the shape of the object is a typical park bench. | ||
|
||
// Set units in millimeters (mm) | ||
@settings(defaultLengthUnit = mm) | ||
|
||
export dividerThickness = 4 | ||
|
||
fn dividerSketch(plane) { | ||
sketch000 = startSketchOn(plane) | ||
|> startProfileAt([-16.82, 21.2], %) | ||
|> line(end = [-0.13, -1.27]) | ||
|> tangentialArcTo([-15.94, profileStartY(%) - 7.73], %) | ||
|> tangentialArcTo([-16.6, profileStartY(%) - 15.52], %) | ||
|> tangentialArcTo([-18.38, profileStartY(%) - 18.63], %) | ||
|> line(end = [-1.25, -2.6]) | ||
|> xLine(6.04, %) | ||
|> line(end = [6.68, 7.87]) | ||
|> tangentialArcTo([10.06, profileStartY(%) - 12.69], %) | ||
|> line(end = [7.28, -8.47]) | ||
|> xLine(5.98, %) | ||
|> line(end = [-1.3, 3.01]) | ||
|> tangentialArcTo([22.45, profileStartY(%) - 2.84], %) | ||
|> tangentialArcTo([25.08, profileStartY(%) + 6.42], %) | ||
|> line(end = [2.35, 16.36]) | ||
|> line(end = [1.78, 1.15]) | ||
|> tangentialArcTo([23.93, profileStartY(%) + 27.29], %) | ||
|> line(end = [-1.92, 0.21]) | ||
|> line(end = [-3.74, -26.54]) | ||
|> tangentialArcTo([15.13, profileStartY(%) - 1.72], %) | ||
|> tangentialArcTo(profileStart(%), %) | ||
|> close() | ||
return sketch000 | ||
} | ||
|
||
export fn divider(plane) { | ||
right = dividerSketch(plane) | ||
|> extrude(length = dividerThickness / 2) | ||
left = dividerSketch(plane) | ||
|> extrude(length = -dividerThickness / 2) | ||
shell(right, thickness = 1.5, faces = ["end"]) | ||
shell(left, thickness = 1.5, faces = ["start"]) | ||
return 0 | ||
} | ||
|
||
fn connectorSketch(plane, start) { | ||
sketch001 = startSketchOn(plane) | ||
|> startProfileAt(start, %) | ||
|> polygon({ | ||
radius = 1.2, | ||
numSides = 6, | ||
center = profileStart(%), | ||
inscribed = false | ||
}, %) | ||
return sketch001 | ||
} | ||
|
||
export fn connector(plane, length) { | ||
connectorSketch(plane, [-12, 8]) | ||
|> extrude(length = length) | ||
connectorSketch(plane, [16, 8]) | ||
|> extrude(length = length) | ||
return 0 | ||
} | ||
|
||
fn seatSlatSketch(plane) { | ||
sketch003 = startSketchOn(plane) | ||
|> startProfileAt([-7, 19], %) | ||
|> line(end = [-10, 0.5]) | ||
|> line(end = [0.2, 2.5]) | ||
|> line(end = [1.5, 1.5]) | ||
|> line(end = [6.9, -0.5]) | ||
|> line(end = [1.5, -1.5]) | ||
|> line(endAbsolute = profileStart(%)) | ||
|> close() | ||
|> patternLinear2d(instances = 3, distance = 11, axis = [1, -0.05]) | ||
return sketch003 | ||
} | ||
|
||
export fn seatSlats(plane, length) { | ||
seatSlatSketch(plane) | ||
|> extrude(length = length) | ||
return 0 | ||
} | ||
|
||
fn backSlatsSketch(plane) { | ||
sketch004 = startSketchOn(plane) | ||
|> startProfileAt([22, 38.5], %) | ||
|> angledLine([173, 2], %) | ||
|> line(end = [-1.74, 2.03]) | ||
|> angledLine([82, 6.6], %) | ||
|> line(end = [2.23, 1.42]) | ||
|> angledLine([-7, 2], %) | ||
|> line(endAbsolute = profileStart(%)) | ||
|> close() | ||
|> patternLinear2d(instances = 2, distance = 11, axis = [-0.137, -1]) | ||
return sketch004 | ||
} | ||
|
||
export fn backSlats(plane, length) { | ||
b = backSlatsSketch(plane) | ||
|> extrude(length = length) | ||
return b | ||
} | ||
|
||
fn armRestPath(plane) { | ||
sketch005 = startSketchOn(plane) | ||
|> startProfileAt([20, 33], %) | ||
|> xLine(-20, %) | ||
|> arc({ | ||
angleStart = 90, | ||
angleEnd = 180, | ||
radius = 10 | ||
}, %) | ||
return sketch005 | ||
} | ||
|
||
fn armRestProfile(plane, offset) { | ||
sketch006 = startSketchOn(plane) | ||
|> startProfileAt([offset, 32.4], %) | ||
|> xLine(1.3, %) | ||
|> line(end = [0.3, 0.6]) | ||
|> line(end = [-0.3, 0.6]) | ||
|> xLine(-2.6, %) | ||
|> line(end = [-0.3, -0.6]) | ||
|> line(end = [0.3, -0.6]) | ||
|> close() | ||
return sketch006 | ||
} | ||
|
||
export fn armRest(plane, offset) { | ||
path = armRestPath( offsetPlane(plane, offset = offset)) | ||
profile = armRestProfile( offsetPlane("-XZ", offset = 20), offset) | ||
sweep(profile, path = path) | ||
return 0 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
// 3D Boaty | ||
// This is a slight remix of Depep1's original 3D Boaty (https://www.printables.com/model/1141963-3d-boaty). This is a tool used for benchmarking 3D FDM printers for bed adhesion, overhangs, bridging and top surface quality. The name of this file is a bit of misnomer, the shape of the object is a typical park bench. | ||
|
||
// Set units in millimeters (mm) | ||
@settings(defaultLengthUnit = mm) | ||
|
||
// Define the bench length | ||
benchLength = 56 | ||
|
||
// Import various constants and functions from our library | ||
import dividerThickness from "boat-parts.kcl" | ||
import divider from "boat-parts.kcl" | ||
import connector from "boat-parts.kcl" | ||
import seatSlats from "boat-parts.kcl" | ||
import backSlats from "boat-parts.kcl" | ||
import armRest from "boat-parts.kcl" | ||
|
||
// Create the dividers, these hold the seat and back slats | ||
divider("YZ") | ||
divider(offsetPlane("-YZ", offset = benchLength / 2)) | ||
divider(offsetPlane("YZ", offset = benchLength / 2)) | ||
|
||
// Create the connectors to join the dividers | ||
connector(offsetPlane("YZ", offset = -benchLength / 2), benchLength) | ||
|
||
// Create the seat slats | ||
seatSlats(offsetPlane("YZ", offset = -benchLength / 2 - dividerThickness / 2), benchLength + dividerThickness) | ||
|
||
// Create the back slats | ||
backSlats(offsetPlane("YZ", offset = -benchLength / 2 - dividerThickness / 2), benchLength + dividerThickness) | ||
|
||
// Create the arm rests | ||
armRest("-YZ", benchLength / 2) | ||
armRest("-YZ", -benchLength / 2) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
pillow==11.1.0 | ||
requests==2.32.3 | ||
zoo-kcl==0.3.0 | ||
zoo-kcl==0.3.37 |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.