Skip to content

Commit

Permalink
spatula model (#101)
Browse files Browse the repository at this point in the history
* spatula model

* updated with parameters

* 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>
  • Loading branch information
r-barton and github-actions[bot] authored Oct 17, 2024
1 parent 34e67d2 commit f650045
Show file tree
Hide file tree
Showing 34 changed files with 1,627 additions and 0 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ When you submit a PR to add or modify KCL samples, images and STEP files will be
[![flange-xy](screenshots/flange-xy.png)](./flange-xy/flange-xy.kcl)
#### [focusrite-scarlett-mounting-bracket](./focusrite-scarlett-mounting-bracket/focusrite-scarlett-mounting-bracket.kcl) ([step](step/focusrite-scarlett-mounting-bracket.step)) ([screenshot](screenshots/focusrite-scarlett-mounting-bracket.png))
[![focusrite-scarlett-mounting-bracket](screenshots/focusrite-scarlett-mounting-bracket.png)](./focusrite-scarlett-mounting-bracket/focusrite-scarlett-mounting-bracket.kcl)
#### [food-service-spatula](./food-service-spatula/food-service-spatula.kcl) ([step](step/food-service-spatula.step)) ([screenshot](screenshots/food-service-spatula.png))
[![food-service-spatula](screenshots/food-service-spatula.png)](./food-service-spatula/food-service-spatula.kcl)
#### [french-press](./french-press/french-press.kcl) ([step](step/french-press.step)) ([screenshot](screenshots/french-press.png))
[![french-press](screenshots/french-press.png)](./french-press/french-press.kcl)
#### [gear-rack](./gear-rack/gear-rack.kcl) ([step](step/gear-rack.step)) ([screenshot](screenshots/gear-rack.png))
Expand Down
176 changes: 176 additions & 0 deletions food-service-spatula/food-service-spatula.kcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
// Food Service Spatula
// Use these spatulas for mixing, flipping, and scraping.

// Define constants in millimeters (mm)
flipperThickness = 3.5
flipperLength = 70.0
handleWidth = 15.0
gripLength = 150.0
flipperFilletRadius = 5.0
gripWidth = 10.0
gripHeight = 20.0
gripFilletRadius = 3.0

// create a sketch on the "XY" plane
sketch000 = startSketchOn('XY')

// create a profile of the flipper
flipperProfile = startProfileAt([-flipperLength, -32.000000], sketch000)
|> line([flipperLength, 2.000000], %, $line001)
|> yLine(60.000000, %, $line002)
|> line([-flipperLength, 2.000000], %, $line000)
|> arc({
angleEnd: 196.912390,
angleStart: 163.087610,
radius: 110.000000
}, %, $arc000)
|> close(%)

// create a profile of the first slot
slotProfile000 = startProfileAt([-22.761204, -5.000000], sketch000)
|> line([-30.000000, 0.000000], %, $line003)
|> arc({
angleStart: -90.000000,
angleEnd: -270.000000,
radius: 5.000000
}, %, $arc002)
|> line([30.000000, -0.000000], %, $line004)
|> arc({
angleStart: 90.000000,
angleEnd: -90.000000,
radius: 5.000000
}, %, $arc001)
|> close(%)

// create a profile of the second slot
slotProfile001 = startProfileAt([-52.761204, 23.000000], sketch000)
|> line([30.000000, 0.000000], %, $line005)
|> arc({
angleStart: 90.000000,
angleEnd: -90.000000,
radius: 5.000000
}, %, $arc004)
|> line([-30.000000, -0.000000], %, $line006)
|> arc({
angleStart: -90.000000,
angleEnd: -270.000000,
radius: 5.000000
}, %, $arc003)
|> close(%)

// create a profile of the third slot
slotProfile002 = startProfileAt([-52.761204, -13.000000], sketch000)
|> xLine(30.000000, %, $line007)
|> arc({
angleStart: 90.000000,
angleEnd: -90.000000,
radius: 5.000000
}, %, $arc006)
|> line([-30.000000, -0.000000], %, $line008)
|> arc({
angleStart: -90.000000,
angleEnd: -270.000000,
radius: 5.000000
}, %, $arc005)
|> close(%)

// create a profile with slots for the spatula
spatulaProfile = flipperProfile
|> hole(slotProfile000, %)
|> hole(slotProfile001, %)
|> hole(slotProfile002, %)

// extrude the profile to create the spatula flipper
flipper = extrude(flipperThickness, [spatulaProfile])

// fillet the edges of the flipper
fillet({
radius: flipperFilletRadius,
tags: [
getNextAdjacentEdge(line002),
getPreviousAdjacentEdge(line002)
]
}, flipper)

// create a sketch on the "XZ" plane offset by half the thickness
sketch001 = startSketchOn(offsetPlane("XZ", -handleWidth / 2))

// create a profile of the spatula handle
handleProfile = startProfileAt([0.000000, flipperThickness], sketch001)
|> line([31.819805, 31.819805], %, $line015)
|> line([140.953893, 51.303021], %, $line016)
|> line([-1.710101, 4.698463], %, $line020)
|> line([-141.995517, -51.682142], %, $line018)
|> line([-36.139148, -36.139148], %, $line017)
|> xLine(7.071068, %, $line019)
|> close(%)

// create an extrusion extrude001
handle = extrude(handleWidth, [handleProfile])

// fillet the bend of the spatula handle
fillet({
radius: 4,
tags: [
getNextAdjacentEdge(line015),
getNextAdjacentEdge(line018)
]
}, handle)

// define a plane which is at the end of the handle
handlePlane = {
plane: {
origin: [208.593833, 0.000000, 75.921946],
xAxis: [0.342020, -0.000000, -0.939693],
yAxis: [0.000000, 1.000000, 0.000000],
zAxis: [0.939693, -0.000000, 0.342020]
}
}

// create a sketch on the handle plane
sketch002 = startSketchOn(handlePlane)

// create a profile of the grip
gripProfile = startProfileAt([-26.806746, -10.000000], sketch002)
|> xLine(gripWidth - 2 * gripFilletRadius, %, $line027)
|> arc({
angleStart: -90.000000,
angleEnd: 0.000000,
radius: gripFilletRadius
}, %, $arc007)
|> yLine(gripHeight - 2 * gripFilletRadius, %, $line028)
|> arc({
angleStart: 0.000000,
angleEnd: 90.000000,
radius: gripFilletRadius
}, %, $arc008)
|> xLine(-(gripWidth - 2 * gripFilletRadius), %, $line029)
|> arc({
angleStart: 90.000000,
angleEnd: 180.000000,
radius: gripFilletRadius
}, %, $arc009)
|> yLine(-(gripHeight - 2 * gripFilletRadius), %, $line030)
|> arc({
angleStart: 180.000000,
angleEnd: 270.000000,
radius: gripFilletRadius
}, %, $arc010)
|> close(%)

// extrude the grip profile to create the grip
grip = extrude(-gripLength, [gripProfile])

// create a sketch on the grip for the hole
sketch003 = startSketchOn(grip, line030)

// create a profile for the grip hole
gripHoleProfile = startProfileAt([-4, 200], sketch003)
|> yLine(14, %)
|> tangentialArcTo([4, 214], %)
|> yLine(-14, %)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %)
|> close(%)

// cut a hole in the grip
extrude(-gripWidth, gripHoleProfile)
8 changes: 8 additions & 0 deletions food-service-spatula/project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[settings.app]

[settings.modeling]
base_unit = "mm"

[settings.text_editor]

[settings.command_bar]
Binary file modified screenshots/80-20-rail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/a-parametric-bearing-pillow-block.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/ball-bearing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/bracket.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/brake-caliper.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/car-wheel-assembly.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/car-wheel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/enclosure.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/flange-with-patterns.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/flange-xy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/focusrite-scarlett-mounting-bracket.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/food-service-spatula.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/french-press.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/gear-rack.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/gear.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/hex-nut.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/kitt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/lego.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/lug-nut.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/mounting-plate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/multi-axis-robot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/pipe-flange-assembly.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/pipe.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/poopy-shoe.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/router-template-slate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified screenshots/sheet-metal-bracket.png
Binary file modified screenshots/socket-head-cap-screw.png
Binary file modified screenshots/tire.png
Binary file modified screenshots/washer.png
Binary file modified screenshots/wheel-rotor.png
Loading

0 comments on commit f650045

Please sign in to comment.