* Change to unzip * Download kcl-samples as zip to public dir * Fix fetch:samples, e2e electron still not working * Change error message to be clearer * Refactor so that input and output directories of sim tests can be different * Add kcl samples test implementation * Update output since adding kcl_samples tests * Update kcl-samples branch * Fix git-ignore pattern to only apply to the root * Fix yarn install and yarn fetch:samples to work the first time * Remove unneeded exists check * Change to use kcl-samples in public directory * Add kcl-samples * Update output since updating kcl-samples * Update output files * Change to not fetch samples during yarn install * Update output after merge * Ignore kcl-samples in codespell * WIP: Don't run e2e if only kcl-samples changed * Conditionally run cargo tests * Fix to round floating point values in program memory arrays * Update output since merge and rounding numbers in memory * Fix memory redaction for floating point to find more values * Fix float redaction pattern * Update output since rounding floating point numbers * Add center to floating point pattern * Fix trigger to use picomatch syntax * Update output since rounding center * Remove kcl-samples github workflows * Enable Rust backtrace * Update output after re-running * Update output after changing order of post-extrude commands * Fix to have deterministic order of commands * Update output after reverting ordering changes * Update kcl-samples * Update output after updating samples * Fix error messages to show the names of all samples that failed * Change cargo test command to match current one * Update kcl-samples * Update output since updating kcl-samples * Add generate manifest workflow and yarn script * Fix error check to actually work * Change util function to be what we actually need * Move new files after merge * Fix paths since directory move * Add dependabot updates for kcl-samples * Add GitHub workflow to make PR to kcl-samples repo * Add GitHub workflow to check kcl-samples header comments * Fix worfklow to change to the right directory * Add auto-commit simulation test output changes * Add permissions to workflows * Fix to run git commit step * Install just if needed * Fix directory of justfile * Add installation of cargo-insta * Fix to use underscore * Fix to allow just command failure * Change to always install CLI tools and cache them * Trying to fix overwrite failing * Combine commands * Change reviewer * Change to PR targeting the next branch * Change git commands to not do unnecessary fetch * Comment out trigger for creating a PR * Update kcl-samples from next branch * Update outputs after kcl-samples change * Fix to use bash pipefail * Add rust backtrace * Print full env from sim tests * Change command to use long option name * Fix to use ci profile even when calling through just * Add INSTA_UPDATE=always * Fix git push by using an app token on checkout * Add comments * Fix to use bash options * Change to echo when no changes are found * Fix so that kcl-samples updates don't trigger full run * Fix paths to reflect new crate location * Fix path detection * Fix e2e job to ignore kcl_samples simulation test output * Fix the fetch logic for the KCL samples after vendoring (#5661) Fixes the last 2 E2E tests for #5460. --------- Co-authored-by: Pierre Jacquier <pierre@zoo.dev> Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com> Co-authored-by: Frank Noirot <frank@zoo.dev>
112 lines
3.1 KiB
Plaintext
112 lines
3.1 KiB
Plaintext
// Sheet Metal Bracket
|
|
// A component typically made from flat sheet metal through various manufacturing processes such as bending, punching, cutting, and forming. These brackets are used to support, attach, or mount other hardware components, often providing a structural or functional base for assembly.
|
|
|
|
// Set Units
|
|
@settings(defaultLengthUnit = in)
|
|
|
|
// Define constants such as sheet metal thickness, bend radius, flange length, bolt diameter size, etc.
|
|
thickness = 0.090
|
|
bendRad = 0.08
|
|
outsideBendRad = bendRad + thickness
|
|
flangeLength = 0.5
|
|
hatHeight = 3
|
|
hatWidth = 5
|
|
boltSize = 0.25
|
|
flangeWidth = 1.5
|
|
|
|
// Sketch and extrude the base shape and fillet the inside and outside edges.
|
|
baseExtrusion = startSketchOn('-XZ')
|
|
|> startProfileAt([0, 0], %)
|
|
|> line(end = [0, thickness], tag = $e1)
|
|
|> line(end = [flangeLength, 0], tag = $e2)
|
|
|> line(end = [0, hatHeight], tag = $e3)
|
|
|> line(end = [hatWidth, 0], tag = $e4)
|
|
|> line(end = [0, -hatHeight], tag = $e5)
|
|
|> line(end = [flangeLength, 0], tag = $e6)
|
|
|> line(end = [0, -thickness], tag = $e7)
|
|
|> line(end = [-flangeLength - thickness, 0], tag = $e8)
|
|
|> line(end = [0, hatHeight], tag = $e9)
|
|
|> line(end = [-hatWidth + 2 * thickness, 0], tag = $e10)
|
|
|> line(end = [0, -hatHeight], tag = $e11)
|
|
|> close(tag = $e12)
|
|
|> extrude(length = hatWidth)
|
|
|> fillet(
|
|
radius = bendRad,
|
|
tags = [getNextAdjacentEdge(e2)]
|
|
)
|
|
|> fillet(
|
|
radius = outsideBendRad,
|
|
tags = [getNextAdjacentEdge(e3)]
|
|
)
|
|
|> fillet(
|
|
radius = outsideBendRad,
|
|
tags = [getNextAdjacentEdge(e4)]
|
|
)
|
|
|> fillet(
|
|
radius = bendRad,
|
|
tags = [getNextAdjacentEdge(e5)]
|
|
)
|
|
|> fillet(
|
|
radius = outsideBendRad,
|
|
tags = [getNextAdjacentEdge(e8)]
|
|
)
|
|
|> fillet(
|
|
radius = bendRad,
|
|
tags = [getNextAdjacentEdge(e9)]
|
|
)
|
|
|> fillet(
|
|
radius = bendRad,
|
|
tags = [getNextAdjacentEdge(e10)]
|
|
)
|
|
|> fillet(
|
|
radius = outsideBendRad,
|
|
tags = [getNextAdjacentEdge(e11)]
|
|
)
|
|
|
|
// Define the flanges and place the bolt holes
|
|
flange1 = startSketchOn('XY')
|
|
|> startProfileAt([0, 0], %)
|
|
|> line(end = [0, hatWidth])
|
|
|> line(end = [flangeWidth, 0], tag = $e13)
|
|
|> line(end = [0, -hatWidth], tag = $e14)
|
|
|> close()
|
|
|> hole(circle(
|
|
center = [0.75, 1],
|
|
radius = boltSize
|
|
), %)
|
|
|> hole(circle(
|
|
center = [0.75, 4],
|
|
radius = boltSize
|
|
), %)
|
|
|> extrude(length = thickness)
|
|
|> fillet(
|
|
radius = 0.5,
|
|
tags = [
|
|
getNextAdjacentEdge(e13),
|
|
getNextAdjacentEdge(e14)
|
|
]
|
|
)
|
|
|
|
flange2 = startSketchOn('XY')
|
|
|> startProfileAt([-6, 0], %)
|
|
|> line(end = [0, hatWidth])
|
|
|> line(end = [-flangeWidth, 0], tag = $e15)
|
|
|> line(end = [0, -hatWidth], tag = $e16)
|
|
|> close()
|
|
|> hole(circle(
|
|
center = [-6.75, 1],
|
|
radius = boltSize
|
|
), %)
|
|
|> hole(circle(
|
|
center = [-6.75, 4],
|
|
radius = boltSize
|
|
), %)
|
|
|> extrude(length = thickness)
|
|
|> fillet(
|
|
radius = 0.25,
|
|
tags = [
|
|
getNextAdjacentEdge(e15),
|
|
getNextAdjacentEdge(e16)
|
|
]
|
|
)
|