Skip to content

Commit

Permalink
updated spatula example (#109)
Browse files Browse the repository at this point in the history
* updated spatula example

* 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 25, 2024
1 parent 2b3ff40 commit fabbafb
Show file tree
Hide file tree
Showing 34 changed files with 451 additions and 466 deletions.
133 changes: 59 additions & 74 deletions food-service-spatula/food-service-spatula.kcl
Original file line number Diff line number Diff line change
Expand Up @@ -7,72 +7,62 @@ flipperLength = 70.0
handleWidth = 15.0
gripLength = 150.0
flipperFilletRadius = 5.0
flipperSlotWidth = 10.0
gripWidth = 10.0
gripHeight = 20.0
gripFilletRadius = 3.0
gripSlotWidth = 8.0

// function for drawing slots on a sketch given the start and end points as well as a width
fn slot = (sketch1, start, end, width) => {
angle = if start[0] == end[0] {
if end[1] > start[1] {
90
} else {
270
}
} else {
if end[0] < start[0] {
toDegrees(atan((end[1] - start[1]) / (end[0] - start[0]))) + 180
} else {
toDegrees(atan((end[1] - start[1]) / (end[0] - start[0])))
}
}
dist = sqrt(pow(end[1] - start[1], 2) + pow(end[0] - start[0], 2))
xstart = width / 2 * cos(toRadians(angle - 90)) + start[0]
ystart = width / 2 * sin(toRadians(angle - 90)) + start[1]
slotSketch = startProfileAt([xstart, ystart], sketch1)
|> angledLine({ angle: angle, length: dist }, %, $line000)
|> tangentialArc({ radius: width / 2, offset: 180 }, %, $arc000)
|> angledLine({ angle: angle, length: -dist }, %, $line001)
|> tangentialArcTo([profileStartX(%), profileStartY(%)], %, $arc001)
|> close(%)
return slotSketch
}

// 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)
|> line([flipperLength, 2.000000], %)
|> yLine(60.000000, %, $backEdge)
|> line([-flipperLength, 2.000000], %)
|> 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 middle
slotProfile000 = slot(sketch000, [-25, 0], [-55, 0], flipperSlotWidth)

// 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 top slot
slotProfile001 = slot(sketch000, [-25, 18], [-55, 19], flipperSlotWidth)

// 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 of the bottom slot
slotProfile002 = slot(sketch000, [-25, -18], [-55, -19], flipperSlotWidth)

// create a profile with slots for the spatula
spatulaProfile = flipperProfile
Expand All @@ -87,8 +77,8 @@ flipper = extrude(flipperThickness, [spatulaProfile])
fillet({
radius: flipperFilletRadius,
tags: [
getNextAdjacentEdge(line002),
getPreviousAdjacentEdge(line002)
getNextAdjacentEdge(backEdge),
getPreviousAdjacentEdge(backEdge)
]
}, flipper)

Expand All @@ -97,12 +87,12 @@ 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)
|> line([31.819805, 31.819805], %, $handleBottomEdge)
|> line([140.953893, 51.303021], %)
|> line([-1.710101, 4.698463], %)
|> line([-141.995517, -51.682142], %, $handleTopEdge)
|> line([-36.139148, -36.139148], %)
|> xLine(7.071068, %)
|> close(%)

// create an extrusion extrude001
Expand All @@ -112,8 +102,8 @@ handle = extrude(handleWidth, [handleProfile])
fillet({
radius: 4,
tags: [
getNextAdjacentEdge(line015),
getNextAdjacentEdge(line018)
getNextAdjacentEdge(handleBottomEdge),
getNextAdjacentEdge(handleTopEdge)
]
}, handle)

Expand All @@ -132,45 +122,40 @@ sketch002 = startSketchOn(handlePlane)

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

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

// cut a hole in the grip
extrude(-gripWidth, gripHoleProfile)
Binary file modified 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.
2 changes: 1 addition & 1 deletion step/80-20-rail.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:18.422551298+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:53.895794525+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/a-parametric-bearing-pillow-block.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:06.607132915+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:41.830640473+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/ball-bearing.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:06.766413901+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:41.820982797+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/bracket.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:06.753582055+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:41.939679242+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/brake-caliper.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:06.289155062+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:41.517356363+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/car-wheel-assembly.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:13.997769576+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:47.923341960+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/car-wheel.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:12.022425415+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:46.460498877+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/dodecahedron.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:09.827198738+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:44.860327779+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/enclosure.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:11.465177662+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:46.150364496+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/flange-with-patterns.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:12.611913161+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:47.718194250+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/flange-xy.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:15.548755465+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:50.368225382+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
2 changes: 1 addition & 1 deletion step/focusrite-scarlett-mounting-bracket.step
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((('zoo.dev export')), '2;1');
FILE_NAME('dump.step', '2024-10-25T17:22:16.130269363+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_NAME('dump.step', '2024-10-25T21:00:51.444108886+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown');
FILE_SCHEMA(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF'));
ENDSEC;
DATA;
Expand Down
Loading

0 comments on commit fabbafb

Please sign in to comment.