diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index a35096a1..00000000 Binary files a/.DS_Store and /dev/null differ diff --git a/80-20-rail/main.kcl b/80-20-rail/main.kcl index fc08311f..22f07e02 100644 --- a/80-20-rail/main.kcl +++ b/80-20-rail/main.kcl @@ -186,7 +186,7 @@ fn rail8020(originStart, railHeight, railLength) { angleEnd = -90, radius = 0.072 / 4 * railHeight }, %) - |> close(%) + |> close() // Sketch center hole of profile |> hole(circle({ @@ -196,7 +196,7 @@ fn rail8020(originStart, railHeight, railLength) { ], radius = .205 * railHeight / 2 }, %), %) - |> extrude(railLength, %) + |> extrude(length = railLength) |> fillet({ radius = 0.06, tags = [ diff --git a/a-parametric-bearing-pillow-block/main.kcl b/a-parametric-bearing-pillow-block/main.kcl index 85a866fd..c8574237 100644 --- a/a-parametric-bearing-pillow-block/main.kcl +++ b/a-parametric-bearing-pillow-block/main.kcl @@ -17,10 +17,10 @@ bearingDia = 3 // (Needs to be updated). Sketch the block and extrude up to where the counterbore diameter starts. block = startSketchOn('XY') |> startProfileAt([-width / 2, -length / 2], %) - |> lineTo([width / 2, -length / 2], %) - |> lineTo([width / 2, length / 2], %) - |> lineTo([-width / 2, length / 2], %) - |> close(%) + |> line(endAbsolute = [width / 2, -length / 2]) + |> line(endAbsolute = [width / 2, length / 2]) + |> line(endAbsolute = [-width / 2, length / 2]) + |> close() |> hole(circle({ center = [ -(width / 2 - (padding / 2)), @@ -53,7 +53,7 @@ block = startSketchOn('XY') center = [0, 0], radius = bearingDia / 2 }, %), %) - |> extrude(height - cbDepth, %) + |> extrude(length = height - cbDepth) // Create a second sketch that creates the counterbore diameters and extrude the rest of the way to get the total height. Note: You cannot use startSketchOn(block, 'end'). The extrude lives outside the bounds, and the engine will not execute. This is a known issue. secondHalf = startSketchOn({ @@ -65,10 +65,10 @@ secondHalf = startSketchOn({ } }) |> startProfileAt([-width / 2, -length / 2], %) - |> lineTo([width / 2, -length / 2], %) - |> lineTo([width / 2, length / 2], %) - |> lineTo([-width / 2, length / 2], %) - |> close(%) + |> line(endAbsolute = [width / 2, -length / 2]) + |> line(endAbsolute = [width / 2, length / 2]) + |> line(endAbsolute = [-width / 2, length / 2]) + |> close() |> hole(circle({ center = [ -(width / 2 - (padding / 2)), @@ -101,4 +101,4 @@ secondHalf = startSketchOn({ center = [0, 0], radius = bearingDia / 2 }, %), %) - |> extrude(cbDepth, %) + |> extrude(length = cbDepth) diff --git a/ball-bearing/main.kcl b/ball-bearing/main.kcl index 2e6e9b67..b04f8efd 100644 --- a/ball-bearing/main.kcl +++ b/ball-bearing/main.kcl @@ -41,7 +41,7 @@ insideWallSketch = startSketchOn(customPlane) }, %), %) // Extrude the inside bearing piece -insideWall = extrude(overallThickness, insideWallSketch) +insideWall = extrude(insideWallSketch, length = overallThickness) // Create the sketch of one of the balls ballsSketch = startSketchOn("XY") @@ -51,7 +51,7 @@ ballsSketch = startSketchOn("XY") angleStart = 180, radius = sphereDia / 2 }, %) - |> close(%) + |> close() // Revolve the ball to make a sphere and pattern around the inside wall balls = revolve({ axis = "X" }, ballsSketch) @@ -74,9 +74,9 @@ chainSketch = startSketchOn("XY") angleStart = 120, radius = sphereDia / 2 }, %) - |> line([0, chainThickness], %) - |> line([-chainWidth, 0], %) - |> close(%) + |> line(end = [0, chainThickness]) + |> line(end = [-chainWidth, 0]) + |> close() // Revolve the chain sketch chainHead = revolve({ axis = "X" }, chainSketch) @@ -119,6 +119,6 @@ outsideWallSketch = startSketchOn(customPlane) radius = shaftDia / 2 + wallThickness + sphereDia }, %), %) -outsideWall = extrude(overallThickness, outsideWallSketch) +outsideWall = extrude(outsideWallSketch, length = overallThickness) // https://www.mcmaster.com/60355K185/ diff --git a/bracket/main.kcl b/bracket/main.kcl index 8eb34d8c..8b1885cd 100644 --- a/bracket/main.kcl +++ b/bracket/main.kcl @@ -26,10 +26,10 @@ thickness = sqrt(moment * factorOfSafety * 6 / (sigmaAllow * width)) // this is // Sketch the bracket body and fillet the inner and outer edges of the bend bracketLeg1Sketch = startSketchOn('XY') |> startProfileAt([0, 0], %) - |> line([shelfMountL - filletRadius, 0], %, $fillet1) - |> line([0, width], %, $fillet2) - |> line([-shelfMountL + filletRadius, 0], %) - |> close(%) + |> line(end = [shelfMountL - filletRadius, 0], tag = $fillet1) + |> line(end = [0, width], tag = $fillet2) + |> line(end = [-shelfMountL + filletRadius, 0]) + |> close() |> hole(circle({ center = [1, 1], radius = mountingHoleDiameter / 2 @@ -48,7 +48,7 @@ bracketLeg1Sketch = startSketchOn('XY') }, %), %) // Extrude the leg 2 bracket sketch -bracketLeg1Extrude = extrude(thickness, bracketLeg1Sketch) +bracketLeg1Extrude = extrude(bracketLeg1Sketch, length = thickness) |> fillet({ radius = extFilletRadius, tags = [ @@ -60,13 +60,13 @@ bracketLeg1Extrude = extrude(thickness, bracketLeg1Sketch) // Sketch the fillet arc filletSketch = startSketchOn('XZ') |> startProfileAt([0, 0], %) - |> line([0, thickness], %) + |> line(end = [0, thickness]) |> arc({ angleEnd = 180, angleStart = 90, radius = filletRadius + thickness }, %) - |> line([thickness, 0], %) + |> line(end = [thickness, 0]) |> arc({ angleEnd = 90, angleStart = 180, @@ -74,7 +74,7 @@ filletSketch = startSketchOn('XZ') }, %) // Sketch the bend -filletExtrude = extrude(-width, filletSketch) +filletExtrude = extrude(filletSketch, length = -width) // Create a custom plane for the leg that sits on the wall customPlane = { @@ -89,10 +89,10 @@ customPlane = { // Create a sketch for the second leg bracketLeg2Sketch = startSketchOn(customPlane) |> startProfileAt([0, -filletRadius], %) - |> line([width, 0], %) - |> line([0, -wallMountL], %, $fillet3) - |> line([-width, 0], %, $fillet4) - |> close(%) + |> line(end = [width, 0]) + |> line(end = [0, -wallMountL], tag = $fillet3) + |> line(end = [-width, 0], tag = $fillet4) + |> close() |> hole(circle({ center = [1, -1.5], radius = mountingHoleDiameter / 2 @@ -103,7 +103,7 @@ bracketLeg2Sketch = startSketchOn(customPlane) }, %), %) // Extrude the second leg -bracketLeg2Extrude = extrude(-thickness, bracketLeg2Sketch) +bracketLeg2Extrude = extrude(bracketLeg2Sketch, length = -thickness) |> fillet({ radius = extFilletRadius, tags = [ diff --git a/car-wheel-assembly/brake-caliper.kcl b/car-wheel-assembly/brake-caliper.kcl index 1c5a2fcb..e673bfb0 100644 --- a/car-wheel-assembly/brake-caliper.kcl +++ b/car-wheel-assembly/brake-caliper.kcl @@ -25,71 +25,71 @@ brakeCaliperSketch = startSketchOn(brakeCaliperPlane) rotorDiameter / 2 + caliperTolerance, 0 ], %) - |> line([ + |> line(end = [ 0, rotorTotalThickness + caliperTolerance - caliperInnerEdgeRadius - ], %) + ]) |> tangentialArc({ offset = 90, radius = caliperInnerEdgeRadius }, %) - |> line([ + |> line(end = [ -caliperPadLength + 2 * caliperInnerEdgeRadius, 0 - ], %) + ]) |> tangentialArc({ offset = -90, radius = caliperInnerEdgeRadius }, %) - |> line([ + |> line(end = [ 0, caliperThickness - (caliperInnerEdgeRadius * 2) - ], %) + ]) |> tangentialArc({ offset = -90, radius = caliperInnerEdgeRadius }, %) - |> line([ + |> line(end = [ caliperPadLength + caliperThickness - caliperOuterEdgeRadius - caliperInnerEdgeRadius, 0 - ], %) + ]) |> tangentialArc({ offset = -90, radius = caliperOuterEdgeRadius }, %) - |> line([ + |> line(end = [ 0, -2 * caliperTolerance - (2 * caliperThickness) - rotorTotalThickness + 2 * caliperOuterEdgeRadius - ], %) + ]) |> tangentialArc({ offset = -90, radius = caliperOuterEdgeRadius }, %) - |> line([ + |> line(end = [ -caliperPadLength - caliperThickness + caliperOuterEdgeRadius + caliperInnerEdgeRadius, 0 - ], %) + ]) |> tangentialArc({ offset = -90, radius = caliperInnerEdgeRadius }, %) - |> line([ + |> line(end = [ 0, caliperThickness - (2 * caliperInnerEdgeRadius) - ], %) + ]) |> tangentialArc({ offset = -90, radius = caliperInnerEdgeRadius }, %) - |> line([ + |> line(end = [ caliperPadLength - (2 * caliperInnerEdgeRadius), 0 - ], %) + ]) |> tangentialArc({ offset = 90, radius = caliperInnerEdgeRadius }, %) - |> close(%) + |> close() // Revolve the brake caliper sketch export brakeCaliper = revolve({ axis = "Y", angle = -70 }, brakeCaliperSketch) diff --git a/car-wheel-assembly/car-rotor.kcl b/car-wheel-assembly/car-rotor.kcl index fa2c07e0..290c9f8c 100644 --- a/car-wheel-assembly/car-rotor.kcl +++ b/car-wheel-assembly/car-rotor.kcl @@ -34,7 +34,7 @@ rotorSketch = startSketchOn(rotorPlane) radius = rotorDiameter / 2 }, %) |> hole(lugPattern(%), %) -rotor = extrude(rotorSinglePlateThickness, rotorSketch) +rotor = extrude(rotorSketch, length = rotorSinglePlateThickness) |> appearance({ color = "#dbcd70", roughness = 90, @@ -46,7 +46,7 @@ rotorBumpSketch = startSketchOn(rotorPlane) radius = rotorInnerDiameter / 2 }, %) |> hole(lugPattern(%), %) -rotorBump = extrude(-rotorInnerDiameterThickness, rotorBumpSketch) +rotorBump = extrude(rotorBumpSketch, length = -rotorInnerDiameterThickness) |> appearance({ color = "#dbcd70", roughness = 90, @@ -70,7 +70,7 @@ secondaryRotorSketch = startSketchOn(rotorSecondaryPlatePlane) radius = rotorDiameter / 2 }, %) |> hole(lugPattern(%), %) -secondRotor = extrude(rotorSinglePlateThickness, secondaryRotorSketch) +secondRotor = extrude(secondaryRotorSketch, length = rotorSinglePlateThickness) spacerSketch = startSketchOn(rotorSecondaryPlatePlane) |> circle({ center = [spacerPatternDiameter / 2, 0], @@ -82,7 +82,7 @@ spacerSketch = startSketchOn(rotorSecondaryPlatePlane) instances = spacerCount, rotateDuplicates = true }, %) -spacers = extrude(-spacerLength, spacerSketch) +spacers = extrude(spacerSketch, length = -spacerLength) |> appearance({ color = "#dbcd70", roughness = 90, @@ -93,32 +93,32 @@ rotorSlottedSketch = startSketchOn(rotor, 'START') |> xLine(0.12, %) |> yLine(2.56, %) |> xLine(-0.12, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() |> patternCircular2d({ center = [0, 0], instances = drillAndSlotCount, arcDegrees = 360, rotateDuplicates = true }, %) -rotorSlotted = extrude(-rotorSinglePlateThickness / 2, rotorSlottedSketch) +rotorSlotted = extrude(rotorSlottedSketch, length = -rotorSinglePlateThickness / 2) secondRotorSlottedSketch = startSketchOn(secondRotor, 'END') |> startProfileAt([-2.17, 2.56], %) |> xLine(-0.12, %) |> yLine(2.56, %) |> xLine(0.12, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() |> patternCircular2d({ center = [0, 0], instances = drillAndSlotCount, arcDegrees = 360, rotateDuplicates = true }, %) -secondRotorSlotted = extrude(-rotorSinglePlateThickness / 2, secondRotorSlottedSketch) +secondRotorSlotted = extrude(secondRotorSlottedSketch, length = -rotorSinglePlateThickness / 2) |> appearance({ color = "#dbcd70", roughness = 90, metalness = 90 - }, %) \ No newline at end of file + }, %) diff --git a/car-wheel-assembly/car-tire.kcl b/car-wheel-assembly/car-tire.kcl index c8759170..1a9c2cba 100644 --- a/car-wheel-assembly/car-tire.kcl +++ b/car-wheel-assembly/car-tire.kcl @@ -10,32 +10,32 @@ import tireInnerDiameter, tireOuterDiameter, tireDepth, bendRadius, tireTreadWid // Create the sketch of the tire tireSketch = startSketchOn("XY") |> startProfileAt([tireInnerDiameter / 2, tireDepth / 2], %) - |> lineTo([ + |> line(endAbsolute = [ tireOuterDiameter / 2 - bendRadius, tireDepth / 2 - ], %, $edge1) + ], tag = $edge1) |> tangentialArc({ offset = -90, radius = bendRadius }, %) - |> lineTo([ + |> line(endAbsolute = [ tireOuterDiameter / 2, tireDepth / 2 - tireTreadOffset - ], %) - |> line([-tireTreadDepth, 0], %) - |> line([0, -tireTreadWidth], %) - |> line([tireTreadDepth, 0], %) - |> lineTo([ + ]) + |> line(end = [-tireTreadDepth, 0]) + |> line(end = [0, -tireTreadWidth]) + |> line(end = [tireTreadDepth, 0]) + |> line(endAbsolute = [ tireOuterDiameter / 2, -tireDepth / 2 + tireTreadOffset + tireTreadWidth - ], %) - |> line([-tireTreadDepth, 0], %) - |> line([0, -tireTreadWidth], %) - |> line([tireTreadDepth, 0], %) - |> lineTo([ + ]) + |> line(end = [-tireTreadDepth, 0]) + |> line(end = [0, -tireTreadWidth]) + |> line(end = [tireTreadDepth, 0]) + |> line(endAbsolute = [ tireOuterDiameter / 2, -tireDepth / 2 + bendRadius - ], %) + ]) |> tangentialArc({ offset = -90, radius = bendRadius }, %) - |> lineTo([tireInnerDiameter / 2, -tireDepth / 2], %, $edge2) - |> close(%) + |> line(endAbsolute = [tireInnerDiameter / 2, -tireDepth / 2], tag = $edge2) + |> close() // Revolve the sketch to create the tire export carTire = revolve({ axis = "Y" }, tireSketch) diff --git a/car-wheel-assembly/car-wheel.kcl b/car-wheel-assembly/car-wheel.kcl index ec21a26b..eb770d5b 100644 --- a/car-wheel-assembly/car-wheel.kcl +++ b/car-wheel-assembly/car-wheel.kcl @@ -19,7 +19,7 @@ lugBase = startSketchOn('XZ') center = [0, 0], radius = (lugSpacing - 1.5) / 2 }, %), %) - |> extrude(wheelWidth / 20, %) + |> extrude(length = wheelWidth / 20) // Extend the wheel center and bore holes to accomidate the lug heads lugExtrusion = startSketchOn(lugBase, 'END') @@ -31,7 +31,7 @@ lugExtrusion = startSketchOn(lugBase, 'END') center = [0, 0], radius = (lugSpacing - 1.5) / 2 }, %), %) - |> extrude(wheelWidth / 10, %) + |> extrude(length = wheelWidth / 10) // Create the circular pattern for the lugs lugClearance = startSketchOn(lugExtrusion, 'END') @@ -45,7 +45,7 @@ lugClearance = startSketchOn(lugExtrusion, 'END') instances = lugCount, rotateDuplicates = true }, %) - |> extrude(-wheelWidth / 10, %) + |> extrude(length = -wheelWidth / 10) // Create the circular pattern for the lug holes lugHoles = startSketchOn(lugBase, 'END') @@ -59,7 +59,7 @@ lugHoles = startSketchOn(lugBase, 'END') instances = lugCount, rotateDuplicates = true }, %) - |> extrude(-wheelWidth / 20, %) + |> extrude(length = -wheelWidth / 20) |> appearance({ color = "#ffffff", metalness = 0, @@ -76,8 +76,8 @@ wheelCenterInner = startSketchOn('XY') control2 = [0, 0.3] }, %) |> yLineTo(0, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() |> revolve({ axis = 'y' }, %) |> appearance({ color = "#ffffff", @@ -94,8 +94,8 @@ wheelCenterOuter = startSketchOn('XY') control2 = [0.2, -0.3] }, %) |> yLineTo(-wheelWidth / 20, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() |> revolve({ axis = 'y' }, %) |> appearance({ color = "#ffffff", @@ -147,11 +147,11 @@ fn spoke(spokeGap, spokeAngle, spokeThickness) { -offset / 1.5 ] }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() // Circular pattern spokes - spokePattern = extrude(spokeThickness, spokeProfile) + spokePattern = extrude(spokeProfile, length = spokeThickness) |> patternCircular3d({ axis = [0, 1, 0], center = [0, -2000, 0], @@ -178,38 +178,38 @@ wheelOuterRevolve = startSketchOn('XY') -wheelWidth + backSpacing + offset ], %) |> yLine(wheelWidth * 0.25, %) - |> line([-wheelWidth * 0.02, wheelWidth * 0.02], %) + |> line(end = [-wheelWidth * 0.02, wheelWidth * 0.02]) |> yLine(wheelWidth * 0.25, %) - |> line([wheelWidth * 0.02, wheelWidth * 0.02], %) + |> line(end = [wheelWidth * 0.02, wheelWidth * 0.02]) |> yLineTo(backSpacing + offset, %) - |> line([wheelWidth * 0.05, wheelWidth * .01], %) + |> line(end = [wheelWidth * 0.05, wheelWidth * .01]) |> yLine(wheelWidth * 0.05, %) |> xLine(-wheelWidth * 0.03, %) |> yLine(-wheelWidth * 0.02, %) - |> line([-wheelWidth * 0.05, -wheelWidth * 0.01], %) + |> line(end = [-wheelWidth * 0.05, -wheelWidth * 0.01]) |> yLine(-backSpacing * 0.7, %) - |> line([ + |> line(end = [ -wheelDiameter * 0.01, -wheelWidth * 0.02 - ], %) + ]) |> yLineTo(offset - 0.2, %) - |> line([ + |> line(end = [ -wheelDiameter * 0.03, -wheelWidth * 0.02 - ], %) + ]) |> yLine(-wheelWidth * 0.02, %) - |> line([ + |> line(end = [ wheelDiameter * 0.03, -wheelWidth * 0.1 - ], %) + ]) |> yLine(-wheelWidth * 0.05, %) - |> line([wheelWidth * 0.02, -wheelWidth * 0.02], %) + |> line(end = [wheelWidth * 0.02, -wheelWidth * 0.02]) |> yLineTo(-wheelWidth + backSpacing + offset - 0.28, %) - |> line([wheelWidth * 0.05, -wheelWidth * 0.01], %) + |> line(end = [wheelWidth * 0.05, -wheelWidth * 0.01]) |> yLine(-wheelWidth * 0.02, %) |> xLine(wheelWidth * 0.03, %) |> yLine(wheelWidth * 0.05, %) - |> close(%) + |> close() |> revolve({ axis = 'y' }, %) |> appearance({ color = "#ffffff", diff --git a/car-wheel-assembly/lug-nut.kcl b/car-wheel-assembly/lug-nut.kcl index e5a2ed40..af0c5464 100644 --- a/car-wheel-assembly/lug-nut.kcl +++ b/car-wheel-assembly/lug-nut.kcl @@ -27,7 +27,7 @@ fn lug(plane, length, diameter) { |> yLineTo(lugThreadDepth, %) |> xLineTo(lugThreadDiameter, %) |> yLineTo(0, %) - |> close(%) + |> close() |> revolve({ axis = "Y" }, %) |> appearance({ color = "#dbcd70", diff --git a/car-wheel-assembly/thumbnail.png b/car-wheel-assembly/thumbnail.png new file mode 100644 index 00000000..eb4a841a Binary files /dev/null and b/car-wheel-assembly/thumbnail.png differ diff --git a/dodecahedron/main.kcl b/dodecahedron/main.kcl index fe8c7457..460fa685 100644 --- a/dodecahedron/main.kcl +++ b/dodecahedron/main.kcl @@ -32,9 +32,9 @@ fn ngon(plane, numSides, radius) { return reduce([1..numSides], sketch001, fn(i, sg) { x = cos(step * i) * radius y = sin(step * i) * radius - return lineTo([x, y], sg) + return line(sg, endAbsolute = [x, y]) }) - |> close(%) + |> close() } // Define a plane for the bottom angled face @@ -52,8 +52,8 @@ planeBottomSide = { } // Extrude the faces in each plane -bottom = extrude(wallThickness, ngon("XY", 5, pentR)) -bottomSide = extrude(wallThickness, ngon(planeBottomSide, 5, pentR)) +bottom = extrude(ngon("XY", 5, pentR), length = wallThickness) +bottomSide = extrude(ngon(planeBottomSide, 5, pentR), length = wallThickness) // Pattern the sides so we have a full dodecahedron bottomBowl = patternCircular3d({ diff --git a/enclosure/main.kcl b/enclosure/main.kcl index cf366656..629632bf 100644 --- a/enclosure/main.kcl +++ b/enclosure/main.kcl @@ -22,9 +22,9 @@ sketch001 = startSketchOn('XY') segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %, $rectangleSegmentC001) - |> lineTo([profileStartX(%), profileStartY(%)], %, $rectangleSegmentD001) - |> close(%) -extrude001 = extrude(height, sketch001) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001) + |> close() +extrude001 = extrude(sketch001, length = height) |> fillet({ radius = wallThickness * 4, tags = [ @@ -63,7 +63,7 @@ fn function001(originStart) { center = [originStart[0], originStart[1]], radius = holeDia }, %), %) - extrude002 = extrude(height - wallThickness, sketch002) + extrude002 = extrude(sketch002, length = height - wallThickness) return extrude002 } @@ -98,8 +98,8 @@ sketch003 = startSketchOn('XY') segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %, $rectangleSegmentC002) - |> lineTo([profileStartX(%), profileStartY(%)], %, $rectangleSegmentD002) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD002) + |> close() |> hole(circle({ center = [ width * 1.2 + wallThickness * 3 + holeDia, @@ -128,7 +128,7 @@ sketch003 = startSketchOn('XY') ], radius = holeDia }, %), %) -extrude003 = extrude(wallThickness, sketch003) +extrude003 = extrude(sketch003, length = wallThickness) |> fillet({ radius = wallThickness * 4, tags = [ @@ -154,8 +154,8 @@ sketch004 = startSketchOn(extrude003, 'END') segAng(rectangleSegmentA003), -segLen(rectangleSegmentA003) ], %, $rectangleSegmentC003) - |> lineTo([profileStartX(%), profileStartY(%)], %, $rectangleSegmentD003) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD003) + |> close() |> hole(circle({ center = [ width * 1.2 + wallThickness * 3 + holeDia, @@ -184,7 +184,7 @@ sketch004 = startSketchOn(extrude003, 'END') ], radius = holeDia + wallThickness }, %), %) -extrude004 = extrude(wallThickness, sketch004) +extrude004 = extrude(sketch004, length = wallThickness) |> fillet({ radius = wallThickness * 3, tags = [ diff --git a/flange-with-patterns/main.kcl b/flange-with-patterns/main.kcl index 7e455a7d..2bc503a5 100644 --- a/flange-with-patterns/main.kcl +++ b/flange-with-patterns/main.kcl @@ -46,7 +46,7 @@ flangeBase = startSketchOn('XY') center = [0, 0], radius = pipeDia / 2 }, %), %) - |> extrude(baseThickness, %) + |> extrude(length = baseThickness) // Plane for top face topFacePlane = { @@ -68,7 +68,7 @@ topExtrusion = startSketchOn(topFacePlane) center = [0, 0], radius = pipeDia / 2 }, %), %) - |> extrude(topTotalThickness, %) + |> extrude(length = topTotalThickness) // Create the extrusion on the bottom of the flange base bottomExtrusion = startSketchOn("XY") @@ -80,4 +80,4 @@ bottomExtrusion = startSketchOn("XY") center = [0, 0], radius = pipeDia / 2 }, %), %) - |> extrude(-bottomThickness, %) + |> extrude(length = -bottomThickness) diff --git a/flange-xy/main.kcl b/flange-xy/main.kcl index a643e094..18217558 100644 --- a/flange-xy/main.kcl +++ b/flange-xy/main.kcl @@ -48,7 +48,7 @@ flangeBase = startSketchOn('XY') center = [0, 0], radius = pipeDia / 2 }, %), %) - |> extrude(baseThickness, %) + |> extrude(length = baseThickness) // Plane for top face topFacePlane = { @@ -70,7 +70,7 @@ topExtrusion = startSketchOn(topFacePlane, 'end') center = [0, 0], radius = pipeDia / 2 }, %), %) - |> extrude(topTotalThickness, %) + |> extrude(length = topTotalThickness) // Create the extrusion on the bottom of the flange base bottomExtrusion = startSketchOn("XY") @@ -82,6 +82,6 @@ bottomExtrusion = startSketchOn("XY") center = [0, 0], radius = pipeDia / 2 }, %), %) - |> extrude(-bottomThickness, %) + |> extrude(length = -bottomThickness) // https://www.mcmaster.com/44685K193/ diff --git a/focusrite-scarlett-mounting-bracket/main.kcl b/focusrite-scarlett-mounting-bracket/main.kcl index f87af617..33f1f923 100644 --- a/focusrite-scarlett-mounting-bracket/main.kcl +++ b/focusrite-scarlett-mounting-bracket/main.kcl @@ -19,10 +19,10 @@ tabThk = 4 fn rectShape(pos, w, l) { rr = startSketchOn('xy') |> startProfileAt([pos[0] - (w / 2), pos[1] - (l / 2)], %) - |> lineTo([pos[0] + w / 2, pos[1] - (l / 2)], %, $edge01) - |> lineTo([pos[0] + w / 2, pos[1] + l / 2], %, $edge02) - |> lineTo([pos[0] - (w / 2), pos[1] + l / 2], %, $edge03) - |> close(%, $edge04) + |> line(endAbsolute = [pos[0] + w / 2, pos[1] - (l / 2)], tag = $edge01) + |> line(endAbsolute = [pos[0] + w / 2, pos[1] + l / 2], tag = $edge02) + |> line(endAbsolute = [pos[0] - (w / 2), pos[1] + l / 2], tag = $edge03) + |> close(tag = $edge04) return rr } @@ -40,21 +40,21 @@ bracketPlane = { fn bracketSketch(w, d, t) { s = startSketchOn(bracketPlane) |> startProfileAt([-w / 2 - t, d + t], %) - |> lineTo([-w / 2 - t, -t], %, $edge1) - |> lineTo([w / 2 + t, -t], %, $edge2) - |> lineTo([w / 2 + t, d + t], %, $edge3) - |> lineTo([w / 2, d + t], %, $edge4) - |> lineTo([w / 2, 0], %, $edge5) - |> lineTo([-w / 2, 0], %, $edge6) - |> lineTo([-w / 2, d + t], %, $edge7) - |> close(%, $edge8) + |> line(endAbsolute = [-w / 2 - t, -t], tag = $edge1) + |> line(endAbsolute = [w / 2 + t, -t], tag = $edge2) + |> line(endAbsolute = [w / 2 + t, d + t], tag = $edge3) + |> line(endAbsolute = [w / 2, d + t], tag = $edge4) + |> line(endAbsolute = [w / 2, 0], tag = $edge5) + |> line(endAbsolute = [-w / 2, 0], tag = $edge6) + |> line(endAbsolute = [-w / 2, d + t], tag = $edge7) + |> close(tag = $edge8) return s } // build the body of the bracket bs = bracketSketch(width, depth, thk) bracketBody = bs - |> extrude(length + 2 * thk, %) + |> extrude(length = length + 2 * thk) |> fillet({ radius = radius, tags = [ @@ -78,10 +78,10 @@ tabPlane = { // build the tabs of the mounting bracket (right side) tabsR = startSketchOn(tabPlane) |> startProfileAt([width / 2 + thk, length / 2 + thk], %) - |> line([tabWidth, -tabLength / 3], %, $edge11) - |> line([0, -tabLength / 3 * 2], %, $edge12) - |> line([-tabWidth, -tabLength / 3], %, $edge13) - |> close(%, $edge14) + |> line(end = [tabWidth, -tabLength / 3], tag = $edge11) + |> line(end = [0, -tabLength / 3 * 2], tag = $edge12) + |> line(end = [-tabWidth, -tabLength / 3], tag = $edge13) + |> close(tag = $edge14) |> hole(circle({ center = [ width / 2 + thk + tabWidth / 2, @@ -89,7 +89,7 @@ tabsR = startSketchOn(tabPlane) ], radius = holeDiam / 2 }, %), %) - |> extrude(-tabThk, %) + |> extrude(length = -tabThk) |> fillet({ radius = holeDiam / 2, tags = [ @@ -106,10 +106,10 @@ tabsR = startSketchOn(tabPlane) // build the tabs of the mounting bracket (left side) tabsL = startSketchOn(tabPlane) |> startProfileAt([-width / 2 - thk, length / 2 + thk], %) - |> line([-tabWidth, -tabLength / 3], %, $edge21) - |> line([0, -tabLength / 3 * 2], %, $edge22) - |> line([tabWidth, -tabLength / 3], %, $edge23) - |> close(%, $edge24) + |> line(end = [-tabWidth, -tabLength / 3], tag = $edge21) + |> line(end = [0, -tabLength / 3 * 2], tag = $edge22) + |> line(end = [tabWidth, -tabLength / 3], tag = $edge23) + |> close(tag = $edge24) |> hole(circle({ center = [ -width / 2 - thk - (tabWidth / 2), @@ -117,7 +117,7 @@ tabsL = startSketchOn(tabPlane) ], radius = holeDiam / 2 }, %), %) - |> extrude(-tabThk, %) + |> extrude(length = -tabThk) |> fillet({ radius = holeDiam / 2, tags = [ @@ -144,16 +144,16 @@ retPlane = { // build the retention bump in the front retFront = startSketchOn(retPlane) |> startProfileAt([-length / 2 - thk, 0], %) - |> line([0, thk], %) - |> line([thk, -thk], %) - |> close(%) - |> extrude(width - 40, %) + |> line(end = [0, thk]) + |> line(end = [thk, -thk]) + |> close() + |> extrude(length = width - 40) // build the retention bump in the back retBack = startSketchOn(retPlane) |> startProfileAt([length / 2 + thk, 0], %) - |> line([0, thk], %) - |> line([-thk, 0], %) - |> line([0, -thk], %) - |> close(%) - |> extrude(width - 40, %) + |> line(end = [0, thk]) + |> line(end = [-thk, 0]) + |> line(end = [0, -thk]) + |> close() + |> extrude(length = width - 40) diff --git a/food-service-spatula/main.kcl b/food-service-spatula/main.kcl index 01957a79..67b489c1 100644 --- a/food-service-spatula/main.kcl +++ b/food-service-spatula/main.kcl @@ -39,7 +39,7 @@ fn slot(sketch1, start, end, width) { |> tangentialArc({ radius = width / 2, offset = 180 }, %, $arc000) |> angledLine({ angle = angle, length = -dist }, %, $line001) |> tangentialArcTo([profileStartX(%), profileStartY(%)], %, $arc001) - |> close(%) + |> close() return slotSketch } @@ -48,15 +48,15 @@ sketch000 = startSketchOn('XY') // create a profile of the flipper flipperProfile = startProfileAt([-flipperLength, -32.0], sketch000) - |> line([flipperLength, 2.0], %) + |> line(end = [flipperLength, 2.0]) |> yLine(60.0, %, $backEdge) - |> line([-flipperLength, 2.0], %) + |> line(end = [-flipperLength, 2.0]) |> arc({ angleEnd = 196.912390, angleStart = 163.087610, radius = 110.0 }, %) - |> close(%) + |> close() // create a profile of the middle slotProfile000 = slot(sketch000, [-25, 0], [-55, 0], flipperSlotWidth) @@ -74,7 +74,7 @@ spatulaProfile = flipperProfile |> hole(slotProfile002, %) // extrude the profile to create the spatula flipper -flipper = extrude(flipperThickness, [spatulaProfile]) +flipper = extrude(spatulaProfile, length = flipperThickness) // fillet the edges of the flipper fillet({ @@ -90,16 +90,16 @@ sketch001 = startSketchOn(offsetPlane("XZ", -handleWidth / 2)) // create a profile of the spatula handle handleProfile = startProfileAt([0.0, flipperThickness], sketch001) - |> 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], %) + |> line(end = [31.819805, 31.819805], tag = $handleBottomEdge) + |> line(end = [140.953893, 51.303021]) + |> line(end = [-1.710101, 4.698463]) + |> line(end = [-141.995517, -51.682142], tag = $handleTopEdge) + |> line(end = [-36.139148, -36.139148]) |> xLine(7.071068, %) - |> close(%) + |> close() // create an extrusion extrude001 -handle = extrude(handleWidth, [handleProfile]) +handle = extrude(handleProfile, length = handleWidth) // fillet the bend of the spatula handle fillet({ @@ -149,10 +149,10 @@ gripProfile = startProfileAt([-26.806746, -10.0], sketch002) angleEnd = 270.0, radius = gripFilletRadius }, %) - |> close(%) + |> close() // extrude the grip profile to create the grip -grip = extrude(-gripLength, [gripProfile]) +grip = extrude(gripProfile, length = -gripLength) // create a sketch on the grip for the hole sketch003 = startSketchOn(grip, gripEdgeTop) @@ -161,4 +161,4 @@ sketch003 = startSketchOn(grip, gripEdgeTop) gripHoleProfile = slot(sketch003, [0, 200], [0, 210], gripSlotWidth) // cut a hole in the grip -extrude(-gripWidth, gripHoleProfile) +extrude(gripHoleProfile, length = -gripWidth) diff --git a/french-press/main.kcl b/french-press/main.kcl index 50e54d2b..2c5f539f 100644 --- a/french-press/main.kcl +++ b/french-press/main.kcl @@ -21,8 +21,8 @@ sketch001 = startSketchOn('XZ') segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %, $rectangleSegmentC001) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() |> revolve({ angle = 360, axis = 'Y' }, %) // Create an angled plane to sketch the supports @@ -83,9 +83,9 @@ sketch002 = startSketchOn(plane001) angleEnd = 180, radius = 0.6 }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) - |> extrude(0.75, %) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> extrude(length = 0.75) |> patternCircular3d({ axis = [0, 0, 1], center = [0, 0, 0], @@ -101,7 +101,7 @@ sketch003 = startSketchOn(offsetPlane('XY', 1)) radius = carafeDiameter / 2 - 0.15 }, %) -extrude001 = extrude(0.050, sketch003) +extrude001 = extrude(sketch003, length = 0.050) sketch004 = startSketchOn(extrude001, 'END') |> startProfileAt([0.3, 0.17], %) @@ -111,8 +111,8 @@ sketch004 = startSketchOn(extrude001, 'END') angleEnd = -30, radius = 1.2 }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() |> patternCircular2d({ center = [0, 0], instances = 3, @@ -120,7 +120,7 @@ sketch004 = startSketchOn(extrude001, 'END') rotateDuplicates = true }, %) -extrude002 = extrude(-0.050, sketch004) +extrude002 = extrude(sketch004, length = -0.050) // Filter screen sketch005 = startSketchOn('XZ') @@ -133,21 +133,21 @@ sketch005 = startSketchOn('XZ') |> angledLine({ angle = -60, length = 0.050 }, %) |> angledLine({ angle = 30, length = -segLen(seg1) }, %) |> xLineTo(0.15, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() |> revolve({ axis = 'y' }, %) // Plunger and stem sketch006 = startSketchOn('XZ') |> startProfileAt([0.1, 1], %) - |> line([0.1, 0], %) + |> line(end = [0.1, 0]) |> angledLineToX({ angle = 10, to = 0.05 }, %) |> yLine(10, %) - |> line([0.6, 0], %) + |> line(end = [0.6, 0]) |> yLine(-.05, %) |> tangentialArc({ radius = 0.6, offset = -90 }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() |> revolve({ axis = 'y' }, %) // Spiral plate @@ -158,7 +158,7 @@ sketch007 = startSketchOn(offsetPlane('XY', 1.12)) }, %) |> hole(circle({ center = [0, 0], radius = .15 }, %), %) -extrude003 = extrude(0.050, sketch007) +extrude003 = extrude(sketch007, length = 0.050) // Pattern holes in the spiral plate sketch008 = startSketchOn(extrude003, 'END') @@ -170,7 +170,7 @@ sketch008 = startSketchOn(extrude003, 'END') rotateDuplicates = true }, %) -extrude004 = extrude(-0.050, sketch008) +extrude004 = extrude(sketch008, length = -0.050) // Pattern holes in the spiral plate sketch009 = startSketchOn(extrude003, 'END') @@ -182,7 +182,7 @@ sketch009 = startSketchOn(extrude003, 'END') rotateDuplicates = true }, %) -extrude005 = extrude(-0.050, sketch009) +extrude005 = extrude(sketch009, length = -0.050) // Extrude a glass carafe body sketch010 = startSketchOn("XY") @@ -192,7 +192,7 @@ sketch010 = startSketchOn("XY") }, %) // Perform a shell operation to hollow the carafe body with the top face removed -extrude006 = extrude(carafeHeight, sketch010) +extrude006 = extrude(sketch010, length = carafeHeight) |> shell({ faces = ["end"], thickness = .07 }, %) // Draw and revolve the lid @@ -202,30 +202,30 @@ sketch011 = startSketchOn('XZ') |> yLine(0.7, %) |> xLine(0.3, %) |> yLine(0.4, %) - |> line([-0.02, 0.02], %) + |> line(end = [-0.02, 0.02]) |> bezierCurve({ to = [-carafeDiameter / 2 - 0.1, 1], control1 = [-0.3, 0], control2 = [carafeDiameter / 10, 1] }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() |> revolve({ axis = 'y' }, %) // Draw and extrude handle sketch012 = startSketchOn(offsetPlane('XZ', handleThickness / 2)) |> startProfileAt([2.3, 6.4], %) - |> line([0.56, 0], %) + |> line(end = [0.56, 0]) |> tangentialArcTo([4.1, 5.26], %) |> tangentialArcTo([4.17, 1.6], %) |> tangentialArcTo([3.13, 0.61], %) - |> line([-1.09, 0], %) - |> line([0, 0.43], %) - |> line([0.99, -0.02], %) + |> line(end = [-1.09, 0]) + |> line(end = [0, 0.43]) + |> line(end = [0.99, -0.02]) |> tangentialArcTo([3.63, 1.6], %) |> tangentialArcTo([3.56, 5.15], %) |> tangentialArcTo([2.72, 5.88], %) - |> line([-0.4, 0], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) -extrude007 = extrude(-handleThickness, sketch012) + |> line(end = [-0.4, 0]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude007 = extrude(sketch012, length = -handleThickness) diff --git a/gear-rack/main.kcl b/gear-rack/main.kcl index 1dc66d77..7e770db6 100644 --- a/gear-rack/main.kcl +++ b/gear-rack/main.kcl @@ -14,25 +14,25 @@ minHeight = 10.875 // Create the body of the rack rackBody = startSketchOn('XY') |> startProfileAt([-length / 2, 0], %) - |> line([length, 0], %) - |> line([0, minHeight], %) - |> line([-length, 0], %) - |> close(%) - |> extrude(width, %) + |> line(end = [length, 0]) + |> line(end = [0, minHeight]) + |> line(end = [-length, 0]) + |> close() + |> extrude(length = width) // Create a function for sketch of a single tooth fn tooth() { toothSketch = startSketchOn('XY') |> startProfileAt([-length / 2 + 0.567672, minHeight], %) |> tangentialArcToRelative([0.157636, 0.110378], %) - |> line([0.329118, 0.904244], %) + |> line(end = [0.329118, 0.904244]) |> tangentialArcToRelative([0.157636, 0.110378], %) - |> line([0.186505, 0], %) + |> line(end = [0.186505, 0]) |> tangentialArcToRelative([0.157636, -0.110378], %) - |> line([0.329118, -0.904244], %) + |> line(end = [0.329118, -0.904244]) |> tangentialArcToRelative([0.157636, -0.110378], %) - |> close(%) - |> extrude(width, %) + |> close() + |> extrude(length = width) return toothSketch } @@ -47,17 +47,17 @@ teeth = tooth() // Sketch and extrude the first end cap. This is a partial tooth endCapTooth = startSketchOn('XY') |> startProfileAt([-length / 2, 11.849525], %) - |> line([0.314524, -0.864147], %) + |> line(end = [0.314524, -0.864147]) |> tangentialArcToRelative([0.157636, -0.110378], %) - |> lineTo([-length / 2, minHeight], %) - |> close(%) - |> extrude(width, %) + |> line(endAbsolute = [-length / 2, minHeight]) + |> close() + |> extrude(length = width) // Sketch and extrude the second end cap. This is a partial tooth endCapTooth2 = startSketchOn('XY') |> startProfileAt([length / 2, 11.849525], %) - |> line([-0.314524, -0.864147], %) + |> line(end = [-0.314524, -0.864147]) |> tangentialArcToRelative([-0.157636, -0.110378], %) - |> lineTo([length / 2, minHeight], %) - |> close(%) - |> extrude(width, %) + |> line(endAbsolute = [length / 2, minHeight]) + |> close() + |> extrude(length = width) diff --git a/gear/main.kcl b/gear/main.kcl index 4963c2da..8b12883e 100644 --- a/gear/main.kcl +++ b/gear/main.kcl @@ -46,20 +46,20 @@ body = startSketchOn('XY') center = [0, 0], radius = baseDiameter / 2 }, %) - |> extrude(gearHeight, %) + |> extrude(length = gearHeight) toothAngle = 360 / nTeeth / 1.5 // Plot the involute curve fn leftInvolute(i, sg) { j = 100 - i // iterate backwards - return lineTo([xs[j], ys[j]], sg) + return line(sg, endAbsolute = [xs[j], ys[j]]) } fn rightInvolute(i, sg) { x = rs[i] * cos(toRadians(-toothAngle + toDegrees(atan(ys[i] / xs[i])))) y = -rs[i] * sin(toRadians(-toothAngle + toDegrees(atan(ys[i] / xs[i])))) - return lineTo([x, y], sg) + return line(sg, endAbsolute = [x, y]) } // Draw gear teeth @@ -72,8 +72,8 @@ teeth = reduce([0..100], start, leftInvolute) radius = baseDiameter / 2 }, %) |> reduce([1..101], %, rightInvolute) - |> close(%) - |> extrude(gearHeight, %) + |> close() + |> extrude(length = gearHeight) |> patternCircular3d({ axis = [0, 0, 1], center = [0, 0, 0], @@ -108,5 +108,5 @@ keyWay = startSketchOn(body, 'END') angleStart = 180, radius = holeRadius }, %) - |> close(%) - |> extrude(-gearHeight, %) + |> close() + |> extrude(length = -gearHeight) diff --git a/gear/thumbnail.png b/gear/thumbnail.png new file mode 100644 index 00000000..5bb240d6 Binary files /dev/null and b/gear/thumbnail.png differ diff --git a/hex-nut/main.kcl b/hex-nut/main.kcl index cc73a2bd..2778c225 100644 --- a/hex-nut/main.kcl +++ b/hex-nut/main.kcl @@ -18,12 +18,12 @@ fn hexNut(start, thk, innerDia) { |> angledLine({ angle = 120, length = innerDia }, %) |> angledLine({ angle = 60, length = innerDia }, %) |> angledLine({ angle = 0, length = innerDia * .90 }, %) - |> close(%) + |> close() |> hole(circle({ center = [start[0], start[1]], radius = innerDia / 2 }, %), %) - |> extrude(thk, %) + |> extrude(length = thk) return hexNutSketch } diff --git a/i-beam/main.kcl b/i-beam/main.kcl index 2bc6cca4..4fa867dd 100644 --- a/i-beam/main.kcl +++ b/i-beam/main.kcl @@ -19,4 +19,4 @@ sketch001 = startSketchOn('-XZ') |> yLineTo(0, %) |> mirror2d({ axis = 'X' }, %) |> mirror2d({ axis = 'Y' }, %) - |> extrude(beamLength, %) + |> extrude(length = beamLength) diff --git a/kitt/main.kcl b/kitt/main.kcl index 03453a3e..7d6d5ab5 100644 --- a/kitt/main.kcl +++ b/kitt/main.kcl @@ -5,12 +5,12 @@ fn pixelBox(kitExtrude, extrudeTag, positionY, positionZ, width, height, depth) { pixelBoxBody = startSketchOn(kitExtrude, extrudeTag) |> startProfileAt([positionY, positionZ], %) - |> line([0, height], %) - |> line([width, 0], %) - |> line([0, -height], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) - |> extrude(depth, %) + |> line(end = [0, height]) + |> line(end = [width, 0]) + |> line(end = [0, -height]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> extrude(length = depth) return pixelBoxBody } @@ -22,12 +22,12 @@ kitBodyDepth = 18 kitBody = startSketchOn('XZ') |> startProfileAt([-kitBodyWidth / 2, kitBodyElevation], %) - |> line([0, kitBodyHeight], %) - |> line([kitBodyWidth, 0], %, $seg01) - |> line([0, -kitBodyHeight], %, $seg02) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) - |> extrude(kitBodyDepth, %) + |> line(end = [0, kitBodyHeight]) + |> line(end = [kitBodyWidth, 0], tag = $seg01) + |> line(end = [0, -kitBodyHeight], tag = $seg02) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> extrude(length = kitBodyDepth) // 2. Kitty Head (Frame of display) kitHeadOffset = 1 @@ -47,20 +47,20 @@ kitFaceDepth = 2 kitFace = startSketchOn(kitHead, 'END') |> startProfileAt([-kitFaceWidth / 2, kitFaceElevation], %) - |> line([0, 1], %) // left lower corner up - |> line([-1, 0], %) // left lower corner left - |> line([0, kitFaceHeight], %) // left side up - |> line([1, 0], %) // left upper corner right - |> line([0, 1], %) // left upper corner up - |> line([kitFaceWidth, 0], %) // upper side right - |> line([0, -1], %) // right upper corner down - |> line([1, 0], %) // right upper corner right - |> line([0, -kitFaceHeight], %) // right side down - |> line([-1, 0], %) // right lower corner left - |> line([0, -1], %) // right lower corner down - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) - |> extrude(-kitFaceDepth, %) + |> line(end = [0, 1]) // left lower corner up + |> line(end = [-1, 0]) // left lower corner left + |> line(end = [0, kitFaceHeight]) // left side up + |> line(end = [1, 0]) // left upper corner right + |> line(end = [0, 1]) // left upper corner up + |> line(end = [kitFaceWidth, 0]) // upper side right + |> line(end = [0, -1]) // right upper corner down + |> line(end = [1, 0]) // right upper corner right + |> line(end = [0, -kitFaceHeight]) // right side down + |> line(end = [-1, 0]) // right lower corner left + |> line(end = [0, -1]) // right lower corner down + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> extrude(length = -kitFaceDepth) // Kitty Face Features: // 3.1 Kitty Eyes @@ -80,20 +80,20 @@ kitRightEye = pixelBox(kitFace, 'START', kitEyeOffset - 3, kitEyeHeihgt - 1, 2, kitNoseElevation = kitEyeHeihgt - 5 kitNose = startSketchOn(kitFace, 'START') |> startProfileAt([-2, kitNoseElevation], %) // H V - |> line([0, 1], %) // lower-left up - |> line([2, 0], %) // lower-left right - |> line([0, 2], %) // mid-left up - |> line([-1, 0], %) // upper-left left - |> line([0, 1], %) // upper-left up - |> line([3, 0], %) // upper-mid right - |> line([0, -1], %) // upper-right down - |> line([-1, 0], %) // upper-right left - |> line([0, -2], %) // mid-left down - |> line([2, 0], %) // lower-right right - |> line([0, -1], %) // lower-right down - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) - |> extrude(kitEyeDepth, %) + |> line(end = [0, 1]) // lower-left up + |> line(end = [2, 0]) // lower-left right + |> line(end = [0, 2]) // mid-left up + |> line(end = [-1, 0]) // upper-left left + |> line(end = [0, 1]) // upper-left up + |> line(end = [3, 0]) // upper-mid right + |> line(end = [0, -1]) // upper-right down + |> line(end = [-1, 0]) // upper-right left + |> line(end = [0, -2]) // mid-left down + |> line(end = [2, 0]) // lower-right right + |> line(end = [0, -1]) // lower-right down + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() + |> extrude(length = kitEyeDepth) // 3.3 Kitty Mouth kitMouthOffset = 4 @@ -161,13 +161,13 @@ fn kitLeg(offsetFront, offsetSide) { kitFootPrint = startSketchOn('XY') |> startProfileAt([offsetSide, kitShoeOffsetFront], %) - |> line([kitShoeWidth, 0], %) - |> line([0, -kitShoeLength], %) - |> line([-kitShoeWidth, 0], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(end = [kitShoeWidth, 0]) + |> line(end = [0, -kitShoeLength]) + |> line(end = [-kitShoeWidth, 0]) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() - kitShoe = extrude(kitShoeHeight, kitFootPrint) + kitShoe = extrude(kitFootPrint, length = kitShoeHeight) kitPantsOffsetSide = offsetSide + 1 kitPantsOffsetFront = 2 * kitShoeOffsetFront - 2 diff --git a/lego/main.kcl b/lego/main.kcl index 24c15865..8c6f99bd 100644 --- a/lego/main.kcl +++ b/lego/main.kcl @@ -48,11 +48,11 @@ tubeFace = { // Make the base s = startSketchOn('XY') |> startProfileAt([-totalWidth / 2, -totalLength / 2], %) - |> line([totalWidth, 0], %) - |> line([0, totalLength], %) - |> line([-totalWidth, 0], %) - |> close(%) - |> extrude(height, %) + |> line(end = [totalWidth, 0]) + |> line(end = [0, totalLength]) + |> line(end = [-totalWidth, 0]) + |> close() + |> extrude(length = height) // Sketch and extrude a rectangular shape to create the shell underneath the lego. This is a hack until we have a shell function. shellExtrude = startSketchOn(s, "start") @@ -60,11 +60,11 @@ shellExtrude = startSketchOn(s, "start") -(totalWidth / 2 - t), -(totalLength / 2 - t) ], %) - |> line([totalWidth - (2 * t), 0], %) - |> line([0, totalLength - (2 * t)], %) - |> line([-(totalWidth - (2 * t)), 0], %) - |> close(%) - |> extrude(-(height - t), %) + |> line(end = [totalWidth - (2 * t), 0]) + |> line(end = [0, totalLength - (2 * t)]) + |> line(end = [-(totalWidth - (2 * t)), 0]) + |> close() + |> extrude(length = -(height - t)) // Create the pegs on the top of the base peg = startSketchOn(s, 'end') @@ -85,7 +85,7 @@ peg = startSketchOn(s, 'end') instances = lbumps, distance = pitch }, %) - |> extrude(bumpHeight, %) + |> extrude(length = bumpHeight) // Create the pegs on the bottom of the base tubePattern = startSketchOn(tubeFace) @@ -106,4 +106,4 @@ tubePattern = startSketchOn(tubeFace) instances = lbumps - 1, distance = pitch }, %) - |> extrude(-bumpHeight, %) + |> extrude(length = -bumpHeight) diff --git a/mounting-plate/main.kcl b/mounting-plate/main.kcl index 767bb77d..eb217a2c 100644 --- a/mounting-plate/main.kcl +++ b/mounting-plate/main.kcl @@ -15,10 +15,10 @@ centerHoleDiameter = 2 fn rectShape(pos, w, l) { rr = startSketchOn('XY') |> startProfileAt([pos[0] - (w / 2), pos[1] - (l / 2)], %) - |> lineTo([pos[0] + w / 2, pos[1] - (l / 2)], %, $edge1) - |> lineTo([pos[0] + w / 2, pos[1] + l / 2], %, $edge2) - |> lineTo([pos[0] - (w / 2), pos[1] + l / 2], %, $edge3) - |> close(%, $edge4) + |> line(endAbsolute = [pos[0] + w / 2, pos[1] - (l / 2)], tag = $edge1) + |> line(endAbsolute = [pos[0] + w / 2, pos[1] + l / 2], tag = $edge2) + |> line(endAbsolute = [pos[0] - (w / 2), pos[1] + l / 2], tag = $edge3) + |> close(tag = $edge4) return rr } @@ -61,7 +61,7 @@ part = rs center = [0, 0], radius = centerHoleDiameter }, %), %) - |> extrude(plateThickness, %) + |> extrude(length = plateThickness) |> fillet({ radius = filletRadius, tags = [ diff --git a/multi-axis-robot/robot-arm-base.kcl b/multi-axis-robot/robot-arm-base.kcl index 8f94ef42..e781af45 100644 --- a/multi-axis-robot/robot-arm-base.kcl +++ b/multi-axis-robot/robot-arm-base.kcl @@ -20,9 +20,9 @@ sketch001 = startSketchOn('XY') segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %, $rectangleSegmentC001) - |> lineTo([profileStartX(%), profileStartY(%)], %, $rectangleSegmentD001) - |> close(%) -extrude001 = extrude(basePlateThickness, sketch001) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001) + |> close() +extrude001 = extrude(sketch001, length = basePlateThickness) |> chamfer({ length = baseChamfer, tags = [ @@ -36,14 +36,14 @@ extrude001 = extrude(basePlateThickness, sketch001) // Base Motor for actuating first joint sketch002 = startSketchOn(extrude001, 'END') |> circle({ center = [0, 0], radius = 4 }, %, $referenceEdge) -extrude002 = extrude(baseHeight - basePlateThickness - 1.5, sketch002) +extrude002 = extrude(sketch002, length = baseHeight - basePlateThickness - 1.5) |> fillet({ radius = 0.1, tags = [getOppositeEdge(referenceEdge)] }, %) sketch003 = startSketchOn(extrude002, 'END') |> circle({ center = [0, 0], radius = 0.5 }, %) -extrude003 = extrude(1, sketch003) +extrude003 = extrude(sketch003, length = 1) // Pattern M8 mounting bolts in base sketch4A = startSketchOn(extrude001, 'END') @@ -61,7 +61,7 @@ sketch4A = startSketchOn(extrude001, 'END') rotateDuplicates = true }, %) -extrude4A = extrude(-basePlateThickness, sketch4A) +extrude4A = extrude(sketch4A, length = -basePlateThickness) sketch4B = startSketchOn(extrude001, 'END') |> circle({ @@ -78,7 +78,7 @@ sketch4B = startSketchOn(extrude001, 'END') rotateDuplicates = true }, %) -export robotArmBase = extrude(-basePlateThickness, sketch4B) +export robotArmBase = extrude(sketch4B, length = -basePlateThickness) |> appearance({ color = "#754110", roughness = 90, diff --git a/multi-axis-robot/robot-arm-j2.kcl b/multi-axis-robot/robot-arm-j2.kcl index b45615c7..230506d5 100644 --- a/multi-axis-robot/robot-arm-j2.kcl +++ b/multi-axis-robot/robot-arm-j2.kcl @@ -25,14 +25,14 @@ sketch011 = startSketchOn(plane003) angleEnd = 90 + axisJ2, radius = axisJ2ArmWidth / 2 }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) -extrude011 = extrude(-axisJ2ArmThickness, sketch011) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude011 = extrude(sketch011, length = -axisJ2ArmThickness) sketch012 = startSketchOn(extrude011, 'START') |> circle({ center = [-1.75, 8], radius = 1.9 }, %, $referenceEdge4) -extrude012 = extrude(0.15, sketch012) +extrude012 = extrude(sketch012, length = 0.15) |> fillet({ radius = 0.1, tags = [getOppositeEdge(referenceEdge4)] @@ -46,7 +46,7 @@ sketch013 = startSketchOn(extrude011, 'START') radius = 1.9 }, %, $referenceEdge5) -extrude013 = extrude(1, sketch013) +extrude013 = extrude(sketch013, length = 1) |> fillet({ radius = 0.1, tags = [getOppositeEdge(referenceEdge5)] @@ -62,7 +62,7 @@ sketch014 = startSketchOn(extrude012, 'END') rotateDuplicates = true }, %) -extrude014 = extrude(0.15, sketch014) +extrude014 = extrude(sketch014, length = 0.15) sketch015 = startSketchOn(extrude013, 'END') |> circle({ @@ -82,7 +82,7 @@ sketch015 = startSketchOn(extrude013, 'END') rotateDuplicates = true }, %) -extrude015 = extrude(0.15, sketch015) +extrude015 = extrude(sketch015, length = 0.15) sketch016 = startSketchOn(extrude011, 'END') |> circle({ @@ -93,7 +93,7 @@ sketch016 = startSketchOn(extrude011, 'END') radius = 0.3 }, %) -export j2RobotArm = extrude(1, sketch016) +export j2RobotArm = extrude(sketch016, length = 1) |> appearance({ color = "#454545", metalness = 90, diff --git a/multi-axis-robot/robot-arm-j3.kcl b/multi-axis-robot/robot-arm-j3.kcl index 1c21700f..646a703a 100644 --- a/multi-axis-robot/robot-arm-j3.kcl +++ b/multi-axis-robot/robot-arm-j3.kcl @@ -25,9 +25,9 @@ sketch017 = startSketchOn(plane002) angleEnd = 90 + axisJ3C, radius = axisJ3CArmWidth / 2 }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %, $seg01) - |> close(%) -extrude017 = extrude(axisJ3CArmThickness, sketch017) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg01) + |> close() +extrude017 = extrude(sketch017, length = axisJ3CArmThickness) sketch018 = startSketchOn(extrude017, 'END') |> circle({ @@ -38,7 +38,7 @@ sketch018 = startSketchOn(extrude017, 'END') radius = 3.7 / 2 }, %, $referenceEdge6) -extrude018 = extrude(0.15, sketch018) +extrude018 = extrude(sketch018, length = 0.15) |> fillet({ radius = 0.1, tags = [getOppositeEdge(referenceEdge6)] @@ -63,7 +63,7 @@ sketch019 = startSketchOn(extrude018, 'END') rotateDuplicates = true }, %) -extrude019 = extrude(0.15, sketch019) +extrude019 = extrude(sketch019, length = 0.15) // On the J3 Robot Arm Body, Create Mounting Clevis for Grabber Claw sketch020 = startSketchOn(extrude017, 'START') @@ -74,7 +74,7 @@ sketch020 = startSketchOn(extrude017, 'START') ], radius = axisJ3CArmWidth / 2 }, %) -extrude020 = extrude(-0.5, sketch020) +extrude020 = extrude(sketch020, length = -0.5) sketch021 = startSketchOn(extrude017, 'END') |> circle({ @@ -85,7 +85,7 @@ sketch021 = startSketchOn(extrude017, 'END') radius = axisJ3CArmWidth / 2.01 }, %) -extrude021 = extrude(-0.5, sketch021) +extrude021 = extrude(sketch021, length = -0.5) // Define Grabber Claw Constants grabberLength = 7 @@ -93,7 +93,7 @@ grabberLength = 7 sketch022 = startSketchOn(extrude021, 'START') |> circle({ center = [0, 0], radius = 0.10 }, %) -extrude022 = extrude(-0.01, sketch022) +extrude022 = extrude(sketch022, length = -0.01) // Build Upper Claw Finger sketch023 = startSketchOn(extrude022, 'START') @@ -126,10 +126,10 @@ sketch023 = startSketchOn(extrude022, 'START') angle = axisJ3C + axisJ4 / 2 + 200, length = grabberLength / 3 }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() -extrude023 = extrude(-1.5, sketch023) +extrude023 = extrude(sketch023, length = -1.5) // Build Lower Claw Finger sketch024 = startSketchOn(extrude022, 'START') @@ -162,10 +162,10 @@ sketch024 = startSketchOn(extrude022, 'START') angle = axisJ3C - (axisJ4 / 2) - 200, length = grabberLength / 3 }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() -export j3RobotArm = extrude(-1.5, sketch024) +export j3RobotArm = extrude(sketch024, length = -1.5) |> appearance({ color = "#6572b3", metalness = 90, diff --git a/multi-axis-robot/robot-rotating-base.kcl b/multi-axis-robot/robot-rotating-base.kcl index 8ad24c68..a7a821b0 100644 --- a/multi-axis-robot/robot-rotating-base.kcl +++ b/multi-axis-robot/robot-rotating-base.kcl @@ -8,7 +8,7 @@ import axisJ1, baseHeight, plane001, plane002 from 'globals.kcl' // Create Rotating Base sketch005 = startSketchOn(plane001) |> circle({ center = [0, 0], radius = 3.9 }, %, $referenceEdge1) -extrude005 = extrude(1.5 - 0.1, sketch005) +extrude005 = extrude(sketch005, length = 1.5 - 0.1) |> fillet({ radius = 0.1, tags = [getOppositeEdge(referenceEdge1)] @@ -28,10 +28,10 @@ sketch006 = startSketchOn(plane002) radius = 3 }, %) |> angledLineToY({ angle = 60, to = baseHeight }, %) -|> lineTo([profileStartX(%), profileStartY(%)], %) -|> close(%) +|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) +|> close() -extrude006 = extrude(1, sketch006) +extrude006 = extrude(sketch006, length = 1) sketch007 = startSketchOn(extrude006, 'END') |> circle({ @@ -41,7 +41,7 @@ sketch007 = startSketchOn(extrude006, 'END') ], radius = 2.75 }, %, $referenceEdge2) -extrude007 = extrude(1.5, sketch007) +extrude007 = extrude(sketch007, length = 1.5) |> fillet({ radius = 0.1, tags = [getOppositeEdge(referenceEdge2)] @@ -65,7 +65,7 @@ sketch008 = startSketchOn(extrude007, 'END') arcDegrees = 360, rotateDuplicates = true }, %) -extrude008 = extrude(0.2, sketch008) +extrude008 = extrude(sketch008, length = 0.2) sketch009 = startSketchOn(extrude007, 'END') |> circle({ @@ -75,7 +75,7 @@ sketch009 = startSketchOn(extrude007, 'END') ], radius = 0.5 }, %, $referenceEdge3) -extrude009 = extrude(0.15, sketch009) +extrude009 = extrude(sketch009, length = 0.15) |> fillet({ radius = 0.1, tags = [getOppositeEdge(referenceEdge3)] @@ -89,4 +89,4 @@ extrude009 = extrude(0.15, sketch009) sketch010 = startSketchOn(plane002) |> circle({ center = [1.75, 8], radius = 0.3 }, %) -export rotatingBase = extrude(-1, sketch010) \ No newline at end of file +export rotatingBase = extrude(sketch010, length = -1) \ No newline at end of file diff --git a/multi-axis-robot/thumbnail.png b/multi-axis-robot/thumbnail.png new file mode 100644 index 00000000..b36fff95 Binary files /dev/null and b/multi-axis-robot/thumbnail.png differ diff --git a/pipe-flange-assembly/main.kcl b/pipe-flange-assembly/main.kcl index d3c1294b..63ec2945 100644 --- a/pipe-flange-assembly/main.kcl +++ b/pipe-flange-assembly/main.kcl @@ -59,7 +59,7 @@ fn capScrew(start, length, dia) { }, %) // Extrude the screw head sketch - screwHead = extrude(dia, screwHeadSketch) + screwHead = extrude(screwHeadSketch, length = dia) // Define the sketch of the hex pattern on the screw head hexPatternSketch = startSketchOn(screwHead, 'end') @@ -88,8 +88,8 @@ fn capScrew(start, length, dia) { angle = hexStartingAngle - (4 * hexChangeAngle), length = hexWallLength }, %) - |> close(%) - hexPattern = extrude(-headLength * 0.75, hexPatternSketch) + |> close() + hexPattern = extrude(hexPatternSketch, length = -headLength * 0.75) return hexPattern } @@ -114,7 +114,7 @@ fn washer(plane, start, thk, innerDia, outerDia) { center = [start[0], start[1]], radius = innerDia / 2 }, %), %) - |> extrude(thk, %) + |> extrude(length = thk) return washerSketch } @@ -150,12 +150,12 @@ fn hexNut(start, thk, innerDia) { length = innerDia * hexNutScale }, %) |> angledLine({ angle = 0, length = innerDia * .90 }, %) - |> close(%) + |> close() |> hole(circle({ center = [0, 0], radius = innerDia / 2 }, %), %) - |> extrude(-thk, %) + |> extrude(length = -thk) return hexNutSketch } @@ -175,19 +175,19 @@ mountingHolePattern = startSketchOn('XZ') // Sketch and revolve the pipe pipe = startSketchOn('XY') |> startProfileAt([flangePipeDia / 2 - tol, 0], %) - |> line([0, -2], %) + |> line(end = [0, -2]) |> angledLine({ angle = -60, length = .5 }, %) - |> line([0, -1], %) - |> line([-flangeThickness, 0], %) - |> line([0, 1], %) + |> line(end = [0, -1]) + |> line(end = [-flangeThickness, 0]) + |> line(end = [0, 1]) |> angledLine({ angle = -240, length = .5 }, %) - |> line([0, 5], %) + |> line(end = [0, 5]) |> angledLine({ angle = 60, length = .5 }, %) - |> line([0, 1], %) - |> line([flangeThickness, 0], %) - |> line([0, -1], %) + |> line(end = [0, 1]) + |> line(end = [flangeThickness, 0]) + |> line(end = [0, -1]) |> angledLine({ angle = 240, length = .5 }, %) - |> close(%) + |> close() |> revolve({ axis = 'y' }, %) |> appearance({ color = "#7b79d7", @@ -196,16 +196,16 @@ pipe = startSketchOn('XY') // Sketch and extrude the wall wall = startSketchOn('XZ') |> startProfileAt([-4, -4], %) - |> line([0, 8], %) - |> line([8, 0], %) - |> line([0, -8], %) - |> close(%) + |> line(end = [0, 8]) + |> line(end = [8, 0]) + |> line(end = [0, -8]) + |> close() |> hole(mountingHolePattern, %) |> hole(circle({ center = [0, 0], radius = flangePipeDia / 2 }, %), %) - |> extrude(wallThickness, %) + |> extrude(length = wallThickness) |> appearance({ color = "#c7aa8f", }, %) @@ -221,7 +221,7 @@ flangeBase = startSketchOn('XZ') center = [0, 0], radius = flangePipeDia / 2 }, %), %) - |> extrude(-flangeThickness, %) + |> extrude(length = -flangeThickness) |> appearance({ color = "#9b9797", }, %) @@ -261,7 +261,7 @@ screwBodySketch = startSketchOn(screwPlane) center = [0, 0], radius = screwDia / 2 }, %) -screwBody = extrude(-screwLength, screwBodySketch) +screwBody = extrude(screwBodySketch, length = -screwLength) |> patternCircular3d({ axis = [0, 1, 0], center = [0, 0, 0], diff --git a/pipe-flange-assembly/thumbnail.png b/pipe-flange-assembly/thumbnail.png new file mode 100644 index 00000000..f49aea63 Binary files /dev/null and b/pipe-flange-assembly/thumbnail.png differ diff --git a/pipe-with-bend/thumbnail.png b/pipe-with-bend/thumbnail.png new file mode 100644 index 00000000..efc70e50 Binary files /dev/null and b/pipe-with-bend/thumbnail.png differ diff --git a/pipe/main.kcl b/pipe/main.kcl index 8b2ef3fb..8005b94f 100644 --- a/pipe/main.kcl +++ b/pipe/main.kcl @@ -17,20 +17,20 @@ pipeSmallDiaLength = pipeTotalLength - pipeTransitionLength - pipeLargeDiaLength // Create the sketch to be revolved around the y-axis. Use the small diameter, large diameter, length, and thickness to define the sketch. pipeSketch = startSketchOn('XY') |> startProfileAt([pipeSmallDia - (thickness / 2), 38], %) - |> line([thickness, 0], %) - |> line([0, -pipeSmallDiaLength], %) + |> line(end = [thickness, 0]) + |> line(end = [0, -pipeSmallDiaLength]) |> angledLineOfYLength({ angle = -60, length = pipeTransitionLength }, %) - |> line([0, -pipeLargeDiaLength], %) + |> line(end = [0, -pipeLargeDiaLength]) |> xLine(-thickness, %) - |> line([0, pipeLargeDiaLength], %) + |> line(end = [0, pipeLargeDiaLength]) |> angledLineToX({ angle = -pipeTransitionAngle + 180, to = pipeSmallDia - (thickness / 2) }, %) - |> close(%) + |> close() // Revolve the sketch to create the pipe pipe = revolve({ axis = 'y' }, pipeSketch) diff --git a/pipe/thumbnail.png b/pipe/thumbnail.png new file mode 100644 index 00000000..4159a418 Binary files /dev/null and b/pipe/thumbnail.png differ diff --git a/poopy-shoe/main.kcl b/poopy-shoe/main.kcl index 8502ceea..a91de152 100644 --- a/poopy-shoe/main.kcl +++ b/poopy-shoe/main.kcl @@ -29,7 +29,7 @@ sketch001 = startSketchOn("-YZ") |> xLineTo(0, %) |> yLineTo(segEndY(seg01), %) |> angledLineToY({ angle = 180 - 60, to = 0 }, %) - |> close(%) + |> close() part001 = revolve({ angle = 90, axis = { @@ -57,8 +57,8 @@ sketch002 = startSketchOn('-YZ') |> xLineTo(0, %) |> yLineTo(segEndY(seg02), %) |> angledLineToY({ angle = 180 - 60, to = 0 }, %) - |> close(%) - |> extrude(backLength - height, %) + |> close() + |> extrude(length = backLength - height) customPlane = { plane = { @@ -76,8 +76,8 @@ sketch003 = startSketchOn(customPlane) |> startProfileAt([0, 0], %) |> tangentialArc({ offset = 60, radius = height }, %) |> angledLineToY({ angle = 60, to = 0 }, %) - |> close(%) - |> extrude(wallThickness, %) + |> close() + |> extrude(length = wallThickness) sketch004 = startSketchOn(sketch002, 'END') |> startProfileAt([0, 0], %) @@ -98,8 +98,8 @@ sketch004 = startSketchOn(sketch002, 'END') ], %) |> tangentialArcTo([frontLength, exitHeight], %) |> yLineTo(0, %) - |> close(%, $seg04) - |> extrude(wallThickness, %) + |> close(tag = $seg04) + |> extrude(length = wallThickness) customPlane2 = { plane = { @@ -123,24 +123,24 @@ sketch005 = startSketchOn(customPlane2) ], %) |> tangentialArcTo([frontLength, exitHeight], %) |> yLineTo(0, %, $seg03) - |> close(%) - |> extrude(wallThickness, %) + |> close() + |> extrude(length = wallThickness) sketch006 = startSketchOn(sketch005, seg03) |> startProfileAt([0, -1 * (backLength - height)], %) |> xLineTo(-exitHeight, %) |> yLine(-wallsWidth, %) |> xLineTo(0, %) - |> close(%) - |> extrude(wallThickness, %) + |> close() + |> extrude(length = wallThickness) sketch007 = startSketchOn(sketch004, 'END') |> startProfileAt([0, 0], %) |> xLineTo(wallThickness, %) |> yLineTo(height, %) |> xLineTo(0, %) - |> close(%) - |> extrude(wallsWidth - (2 * wallThickness), %) + |> close() + |> extrude(length = wallsWidth - (2 * wallThickness)) customPlane3 = { plane = { @@ -160,5 +160,5 @@ sketch008 = startSketchOn(customPlane3) |> xLineTo(frontLength, %) |> yLine(wallsWidth - (2 * wallThickness), %) |> xLineTo(wallThickness, %) - |> close(%) - |> extrude(-wallThickness, %) + |> close() + |> extrude(length = -wallThickness) diff --git a/poopy-shoe/project.toml b/poopy-shoe/project.toml new file mode 100644 index 00000000..1de6ca58 --- /dev/null +++ b/poopy-shoe/project.toml @@ -0,0 +1,2 @@ +[settings.app] +themeColor = "255" diff --git a/poopy-shoe/thumbnail.png b/poopy-shoe/thumbnail.png new file mode 100644 index 00000000..470b31bd Binary files /dev/null and b/poopy-shoe/thumbnail.png differ diff --git a/requirements.txt b/requirements.txt index b8ca0f6b..e9b9c4d2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ pillow==11.1.0 requests==2.32.3 -zoo-kcl==0.2.4 \ No newline at end of file +zoo-kcl==0.2.5 \ No newline at end of file diff --git a/router-template-cross-bar/main.kcl b/router-template-cross-bar/main.kcl index ea2bcea2..75e3caf6 100644 --- a/router-template-cross-bar/main.kcl +++ b/router-template-cross-bar/main.kcl @@ -42,9 +42,9 @@ sketch001 = startSketchOn('XZ') angleStart = 180, radius = 10 + templateGap }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) -extrude001 = extrude(5, sketch001) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude001 = extrude(sketch001, length = 5) sketch003 = startSketchOn(extrude001, 'START') |> startProfileAt([distanceToInsideEdge, 0], %) @@ -57,9 +57,9 @@ sketch003 = startSketchOn(extrude001, 'START') segAng(rectangleSegmentA002), -segLen(rectangleSegmentA002) ], %, $rectangleSegmentC002) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) -extrude003 = extrude(13, sketch003) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude003 = extrude(sketch003, length = 13) sketch002 = startSketchOn(extrude001, 'START') |> startProfileAt([-distanceToInsideEdge, 0], %) @@ -72,10 +72,10 @@ sketch002 = startSketchOn(extrude001, 'START') segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %, $rectangleSegmentC001) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() -extrude002 = extrude(13, sketch002) +extrude002 = extrude(sketch002, length = 13) sketch004 = startSketchOn(extrude002, 'END') |> startProfileAt([-distanceToInsideEdge, 0], %) @@ -88,6 +88,6 @@ sketch004 = startSketchOn(extrude002, 'END') segAng(rectangleSegmentA003), -segLen(rectangleSegmentA003) ], %, $rectangleSegmentC003) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) -extrude004 = extrude(4, sketch004) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude004 = extrude(sketch004, length = 4) diff --git a/router-template-cross-bar/thumbnail.png b/router-template-cross-bar/thumbnail.png new file mode 100644 index 00000000..e635fa20 Binary files /dev/null and b/router-template-cross-bar/thumbnail.png differ diff --git a/router-template-slate/main.kcl b/router-template-slate/main.kcl index a9efc1c9..7c18c7ab 100644 --- a/router-template-slate/main.kcl +++ b/router-template-slate/main.kcl @@ -29,7 +29,7 @@ sketch001 = startSketchOn('XZ') |> xLineTo(slateWidthHalf + templateThickness, %, $seg04) |> yLine(-length002, %, $seg03) |> xLineTo(ZERO, %, $seg02) - // |> line([7.78, 11.16], %) + // |> line(end = [7.78, 11.16]) |> xLine(-segLen(seg02), %) |> yLine(segLen(seg03), %) |> xLine(segLen(seg04), %) @@ -39,11 +39,11 @@ sketch001 = startSketchOn('XZ') angleStart = 180, radius = radius - templateGap }, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() // Extrude the first sketch -extrude001 = extrude(5, sketch001) +extrude001 = extrude(sketch001, length = 5) // Create the second sketch sketch002 = startSketchOn(extrude001, 'START') @@ -60,11 +60,11 @@ sketch002 = startSketchOn(extrude001, 'START') segAng(rectangleSegmentA001), -segLen(rectangleSegmentA001) ], %, $rectangleSegmentC001) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() // Extrude the second sketch -extrude002 = extrude(7.5, sketch002) +extrude002 = extrude(sketch002, length = 7.5) // Create the third sketch sketch003 = startSketchOn(extrude001, 'START') @@ -81,8 +81,8 @@ sketch003 = startSketchOn(extrude001, 'START') segAng(rectangleSegmentA002), -segLen(rectangleSegmentA002) ], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() // Extrude the third Sketch -extrude003 = extrude(7.5, sketch003) +extrude003 = extrude(sketch003, length = 7.5) diff --git a/router-template-slate/thumbnail.png b/router-template-slate/thumbnail.png new file mode 100644 index 00000000..b5c41d6c Binary files /dev/null and b/router-template-slate/thumbnail.png differ diff --git a/screenshots/thumbnail.png b/screenshots/thumbnail.png new file mode 100644 index 00000000..e69de29b diff --git a/sheet-metal-bracket/main.kcl b/sheet-metal-bracket/main.kcl index 31f51183..d1dbd726 100644 --- a/sheet-metal-bracket/main.kcl +++ b/sheet-metal-bracket/main.kcl @@ -17,19 +17,19 @@ flangeWidth = 1.5 // Sketch and extrude the base shape and fillet the inside and outside edges. baseExtrusion = startSketchOn('-XZ') |> startProfileAt([0, 0], %) - |> line([0, thickness], %, $e1) - |> line([flangeLength, 0], %, $e2) - |> line([0, hatHeight], %, $e3) - |> line([hatWidth, 0], %, $e4) - |> line([0, -hatHeight], %, $e5) - |> line([flangeLength, 0], %, $e6) - |> line([0, -thickness], %, $e7) - |> line([-flangeLength - thickness, 0], %, $e8) - |> line([0, hatHeight], %, $e9) - |> line([-hatWidth + 2 * thickness, 0], %, $e10) - |> line([0, -hatHeight], %, $e11) - |> close(%, $e12) - |> extrude(hatWidth, %) + |> 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)] @@ -66,10 +66,10 @@ baseExtrusion = startSketchOn('-XZ') // Define the flanges and place the bolt holes flange1 = startSketchOn('XY') |> startProfileAt([0, 0], %) - |> line([0, hatWidth], %) - |> line([flangeWidth, 0], %, $e13) - |> line([0, -hatWidth], %, $e14) - |> close(%) + |> 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 @@ -78,7 +78,7 @@ flange1 = startSketchOn('XY') center = [0.75, 4], radius = boltSize }, %), %) - |> extrude(thickness, %) + |> extrude(length = thickness) |> fillet({ radius = 0.5, tags = [ @@ -89,10 +89,10 @@ flange1 = startSketchOn('XY') flange2 = startSketchOn('XY') |> startProfileAt([-6, 0], %) - |> line([0, hatWidth], %) - |> line([-flangeWidth, 0], %, $e15) - |> line([0, -hatWidth], %, $e16) - |> close(%) + |> 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 @@ -101,7 +101,7 @@ flange2 = startSketchOn('XY') center = [-6.75, 4], radius = boltSize }, %), %) - |> extrude(thickness, %) + |> extrude(length = thickness) |> fillet({ radius = 0.25, tags = [ diff --git a/sheet-metal-bracket/thumbnail.png b/sheet-metal-bracket/thumbnail.png new file mode 100644 index 00000000..b54a9bc9 Binary files /dev/null and b/sheet-metal-bracket/thumbnail.png differ diff --git a/socket-head-cap-screw/main.kcl b/socket-head-cap-screw/main.kcl index 75126301..42d6f92f 100644 --- a/socket-head-cap-screw/main.kcl +++ b/socket-head-cap-screw/main.kcl @@ -27,7 +27,7 @@ fn capScrew(start, length, dia, capHeadLength) { }, %) // Extrude the screw head sketch - screwHead = extrude(capHeadLength, screwHeadSketch) + screwHead = extrude(screwHeadSketch, length = capHeadLength) // Define the sketch of the hex pattern on the screw head hexPatternSketch = startSketchOn(screwHead, 'end') @@ -53,15 +53,15 @@ fn capScrew(start, length, dia, capHeadLength) { angle = hexStartingAngle - (4 * hexChangeAngle), length = hexWallLength }, %) - |> close(%) - hexPattern = extrude(-headLength * 0.75, hexPatternSketch) + |> close() + hexPattern = extrude(hexPatternSketch, length = -headLength * 0.75) screwBodySketch = startSketchOn(screwHead, "start") |> circle({ center = [start[0], start[1]], radius = dia / 2 }, %) - screwBody = extrude(length, screwBodySketch) + screwBody = extrude(screwBodySketch, length = length) return screwBody } diff --git a/socket-head-cap-screw/thumbnail.png b/socket-head-cap-screw/thumbnail.png new file mode 100644 index 00000000..a44fe3ad Binary files /dev/null and b/socket-head-cap-screw/thumbnail.png differ diff --git a/step/80-20-rail.step b/step/80-20-rail.step index 93f479d8..d90b37c8 100644 --- a/step/80-20-rail.step +++ b/step/80-20-rail.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:13.586605563+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:02.214139267+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; diff --git a/step/a-parametric-bearing-pillow-block.step b/step/a-parametric-bearing-pillow-block.step index e0734867..e787f67c 100644 --- a/step/a-parametric-bearing-pillow-block.step +++ b/step/a-parametric-bearing-pillow-block.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:08.664750528+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:17:57.484366346+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; diff --git a/step/ball-bearing.step b/step/ball-bearing.step index 862d30ab..a12aad52 100644 --- a/step/ball-bearing.step +++ b/step/ball-bearing.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:08.978181593+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:17:57.839079446+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; diff --git a/step/bracket.step b/step/bracket.step index ecd5bc2b..6511a4e1 100644 --- a/step/bracket.step +++ b/step/bracket.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:08.987367221+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:17:57.879025585+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; diff --git a/step/car-wheel-assembly.step b/step/car-wheel-assembly.step index 7248aca3..ecd5398a 100644 --- a/step/car-wheel-assembly.step +++ b/step/car-wheel-assembly.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:16.554285897+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:05.503016661+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; diff --git a/step/dodecahedron.step b/step/dodecahedron.step index fb01ddfb..565466b6 100644 --- a/step/dodecahedron.step +++ b/step/dodecahedron.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:11.637881092+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:01.020199248+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; diff --git a/step/enclosure.step b/step/enclosure.step index 6c1cf16a..026b0fd7 100644 --- a/step/enclosure.step +++ b/step/enclosure.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:14.665880279+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:03.528218491+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; diff --git a/step/flange-with-patterns.step b/step/flange-with-patterns.step index ac787925..826d62af 100644 --- a/step/flange-with-patterns.step +++ b/step/flange-with-patterns.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:12.889584031+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:01.633568622+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; diff --git a/step/flange-xy.step b/step/flange-xy.step index b7fe94f0..7b7bee6c 100644 --- a/step/flange-xy.step +++ b/step/flange-xy.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:14.878787057+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:04.562650597+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; diff --git a/step/focusrite-scarlett-mounting-bracket.step b/step/focusrite-scarlett-mounting-bracket.step index 4156e300..b4f72d53 100644 --- a/step/focusrite-scarlett-mounting-bracket.step +++ b/step/focusrite-scarlett-mounting-bracket.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:16.739415699+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:05.895937793+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; diff --git a/step/food-service-spatula.step b/step/food-service-spatula.step index 718e6a17..5866ec79 100644 --- a/step/food-service-spatula.step +++ b/step/food-service-spatula.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:18.579986756+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:08.032265156+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; diff --git a/step/french-press.step b/step/french-press.step index 475beb16..97fcb8e4 100644 --- a/step/french-press.step +++ b/step/french-press.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:23.597549483+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:12.034546882+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; diff --git a/step/gear-rack.step b/step/gear-rack.step index 0d40696f..cc1bd476 100644 --- a/step/gear-rack.step +++ b/step/gear-rack.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:22.511519160+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:12.814238859+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; diff --git a/step/gear.step b/step/gear.step index 07b8219c..38599e4a 100644 --- a/step/gear.step +++ b/step/gear.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:20.600917286+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:09.071464992+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; diff --git a/step/hex-nut.step b/step/hex-nut.step index b5a38298..b5d132ff 100644 --- a/step/hex-nut.step +++ b/step/hex-nut.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:21.697331190+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:11.363949993+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; diff --git a/step/i-beam.step b/step/i-beam.step index 59d03cdb..70bdbd80 100644 --- a/step/i-beam.step +++ b/step/i-beam.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:23.862526638+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:12.502110482+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; diff --git a/step/kitt.step b/step/kitt.step index 2ef5be5a..186114a6 100644 --- a/step/kitt.step +++ b/step/kitt.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:27.107295653+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:17.115088847+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; diff --git a/step/lego.step b/step/lego.step index 5d4f4eda..a2d08f37 100644 --- a/step/lego.step +++ b/step/lego.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:30.219871985+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:19.910419224+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; diff --git a/step/mounting-plate.step b/step/mounting-plate.step index ca61bd6a..8d180bbf 100644 --- a/step/mounting-plate.step +++ b/step/mounting-plate.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:26.902773249+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:16.836168614+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; diff --git a/step/multi-axis-robot.step b/step/multi-axis-robot.step index a2edf8dd..87a6f70c 100644 --- a/step/multi-axis-robot.step +++ b/step/multi-axis-robot.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:41.631205670+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:29.810496023+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; diff --git a/step/pipe-flange-assembly.step b/step/pipe-flange-assembly.step index e100ace9..4dcfb5df 100644 --- a/step/pipe-flange-assembly.step +++ b/step/pipe-flange-assembly.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:33.670522340+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:22.404970118+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; diff --git a/step/pipe-with-bend.step b/step/pipe-with-bend.step index bad8d81c..5ae9aa0f 100644 --- a/step/pipe-with-bend.step +++ b/step/pipe-with-bend.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:32.302757870+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:21.380796270+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; diff --git a/step/pipe.step b/step/pipe.step index e4f2669b..839c599b 100644 --- a/step/pipe.step +++ b/step/pipe.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:29.885916835+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:18.819842678+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; diff --git a/step/poopy-shoe.step b/step/poopy-shoe.step index bd9f3f22..7902d223 100644 --- a/step/poopy-shoe.step +++ b/step/poopy-shoe.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:33.340422672+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:23.561375112+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; diff --git a/step/router-template-cross-bar.step b/step/router-template-cross-bar.step index 626045e5..2f0fee5f 100644 --- a/step/router-template-cross-bar.step +++ b/step/router-template-cross-bar.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:35.163458071+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:24.238747170+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; diff --git a/step/router-template-slate.step b/step/router-template-slate.step index dc6fb801..2d1923f6 100644 --- a/step/router-template-slate.step +++ b/step/router-template-slate.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:36.652599823+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:27.046537176+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; diff --git a/step/sheet-metal-bracket.step b/step/sheet-metal-bracket.step index 29788c6e..5045b4c1 100644 --- a/step/sheet-metal-bracket.step +++ b/step/sheet-metal-bracket.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:38.715348952+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:28.015849815+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; diff --git a/step/socket-head-cap-screw.step b/step/socket-head-cap-screw.step index af76ee46..6f768ad1 100644 --- a/step/socket-head-cap-screw.step +++ b/step/socket-head-cap-screw.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:37.935358405+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:26.971759844+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; diff --git a/step/thumbnail.png b/step/thumbnail.png new file mode 100644 index 00000000..1dc09b13 Binary files /dev/null and b/step/thumbnail.png differ diff --git a/step/walkie-talkie.step b/step/walkie-talkie.step index 9cc4cc1a..ca355af1 100644 --- a/step/walkie-talkie.step +++ b/step/walkie-talkie.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:41.702606020+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:30.984378226+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; diff --git a/step/washer.step b/step/washer.step index 5abbd96d..3d7716e5 100644 --- a/step/washer.step +++ b/step/washer.step @@ -1,7 +1,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION((('zoo.dev export')), '2;1'); -FILE_NAME('dump.step', '2025-01-31T21:50:39.412908875+00:00', ('Author unknown'), ('Organization unknown'), 'zoo.dev beta', 'zoo.dev', 'Authorization unknown'); +FILE_NAME('dump.step', '2025-02-05T18:18:29.742340759+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; diff --git a/walkie-talkie/antenna.kcl b/walkie-talkie/antenna.kcl index 6267d76b..3269d1aa 100644 --- a/walkie-talkie/antenna.kcl +++ b/walkie-talkie/antenna.kcl @@ -30,10 +30,10 @@ antennaPlane = { // Create the antenna base sketch sketch001 = startSketchOn(antennaPlane) |> startProfileAt([origin[0], origin[1]], %) - |> line([antennaBaseWidth, 0], %) - |> line([0, -antennaBaseHeight], %) - |> line([-antennaBaseWidth, 0], %) - |> close(%) + |> line(end = [antennaBaseWidth, 0]) + |> line(end = [0, -antennaBaseHeight]) + |> line(end = [-antennaBaseWidth, 0]) + |> close() // Create the antenna top sketch loftPlane = offsetPlane('XY', height/2 + 3) @@ -43,7 +43,7 @@ sketch002 = startSketchOn(loftPlane) |> xLine(antennaTopWidth, %) |> yLine(-antennaTopHeight, %) |> xLine(-antennaTopWidth, %) - |> close(%) + |> close() // Create the antenna using a loft export antenna = loft([sketch001, sketch002]) \ No newline at end of file diff --git a/walkie-talkie/body.kcl b/walkie-talkie/body.kcl index d232ef57..b4df64b2 100644 --- a/walkie-talkie/body.kcl +++ b/walkie-talkie/body.kcl @@ -11,8 +11,8 @@ bodySketch = startSketchOn('XZ') |> xLine(width, %, $chamfer1) |> yLine(-height, %, $chamfer2) |> xLine(-width, %, $chamfer3) - |> close(%, $chamfer4) -bodyExtrude = extrude(thickness, bodySketch) + |> close(tag = $chamfer4) +bodyExtrude = extrude(bodySketch, length = thickness) |> chamfer({ length = chamferLength, tags = [ @@ -35,29 +35,29 @@ sketch002 = startSketchOn(bodyExtrude, 'END') height / 2 - (chamferLength + offset / 2 * cos(toRadians(45))) ], %) |> angledLineToY({ angle = 45, to = height / 2 - offset }, %) - |> lineTo([ + |> line(endAbsolute = [ width / 2 - (chamferLength + offset / 2 * cos(toRadians(45))), height / 2 - offset - ], %) + ]) |> angledLineToX({ angle = -45, to = width / 2 - offset }, %) - |> lineTo([ + |> line(endAbsolute = [ width / 2 - offset, -(height / 2 - (chamferLength + offset / 2 * cos(toRadians(45)))) - ], %) + ]) |> angledLineToY({ angle = -135, to = -height / 2 + offset }, %) - |> lineTo([ + |> line(endAbsolute = [ -(width / 2 - (chamferLength + offset / 2 * cos(toRadians(45)))), -height / 2 + offset - ], %) + ]) |> angledLineToX({ angle = -225, to = -width / 2 + offset }, %) - |> close(%) -extrude002 = extrude(-0.0625, sketch002) + |> close() +extrude002 = extrude(sketch002, length = -0.0625) // |> appearance({ // color = '#707980', // metalness = 90, @@ -71,9 +71,9 @@ sketch003 = startSketchOn(extrude002, 'start') |> xLine(screenWidth, %, $seg01) |> yLine(-screenHeight, %) |> xLine(-segLen(seg01), %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) -extrude003 = extrude(screenDepth, sketch003) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() +extrude003 = extrude(sketch003, length = screenDepth) // |> appearance({ // color = '#707980', // metalness = 90, @@ -87,6 +87,6 @@ sketch004 = startSketchOn(extrude002, 'start') |> xLine(speakerBoxWidth, %) |> yLine(-speakerBoxHeight, %) |> xLine(-speakerBoxWidth, %) - |> close(%) + |> close() -export body = extrude(-.5, sketch004) \ No newline at end of file +export body = extrude(sketch004, length = -.5) \ No newline at end of file diff --git a/walkie-talkie/button.kcl b/walkie-talkie/button.kcl index 551607c9..1d75d4df 100644 --- a/walkie-talkie/button.kcl +++ b/walkie-talkie/button.kcl @@ -23,8 +23,8 @@ export fn button(origin, rotation, plane) { angle = 0 + rotation, length = buttonWidth }, %) - |> close(%) - buttonExtrude = extrude(buttonThickness, buttonSketch) + |> close() + buttonExtrude = extrude(buttonSketch, length = buttonThickness) |> chamfer({ length = .050, tags = [ diff --git a/walkie-talkie/case.kcl b/walkie-talkie/case.kcl index f5c01384..34eb4eda 100644 --- a/walkie-talkie/case.kcl +++ b/walkie-talkie/case.kcl @@ -15,8 +15,8 @@ fn screenHole(sketchStart) { |> xLine(screenWidth, %) |> yLine(-screenHeight, %) |> xLine(-screenWidth, %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() return sketch006 } @@ -29,10 +29,10 @@ fn squareHolePattern(plane, x, y) { } squareHolePatternSketch = startSketchOn(plane) |> startProfileAt([-x, -y], %) - |> line([squareHoleSideLength / 2, 0], %) - |> line([0, -squareHoleSideLength / 2], %) - |> line([-squareHoleSideLength / 2, 0], %) - |> close(%) + |> line(end = [squareHoleSideLength / 2, 0]) + |> line(end = [0, -squareHoleSideLength / 2]) + |> line(end = [-squareHoleSideLength / 2, 0]) + |> close() |> patternTransform2d(13, transformX, %) |> patternTransform2d(11, transformY, %) return squareHolePatternSketch @@ -46,31 +46,31 @@ sketch005 = startSketchOn(offsetPlane("XZ", 1)) angle = 45, to = height / 2 - (offset + caseTolerance) }, %) - |> lineTo([ + |> line(endAbsolute = [ width / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(toRadians(45))), height / 2 - (offset + caseTolerance) - ], %) + ]) |> angledLineToX({ angle = -45, to = width / 2 - (offset + caseTolerance) }, %) - |> lineTo([ + |> line(endAbsolute = [ width / 2 - (offset + caseTolerance), -(height / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(toRadians(45)))) - ], %) + ]) |> angledLineToY({ angle = -135, to = -height / 2 + offset + caseTolerance }, %) - |> lineTo([ + |> line(endAbsolute = [ -(width / 2 - (chamferLength + (offset + caseTolerance) / 2 * cos(toRadians(45)))), -height / 2 + offset + caseTolerance - ], %) + ]) |> angledLineToX({ angle = -225, to = -width / 2 + offset + caseTolerance }, %) - |> close(%) + |> close() |> hole(screenHole(plane), %) |> hole(squareHolePattern(plane, .75, .125), %) |> hole(zLogo(plane, [-.30, -1.825], .20), %) @@ -79,7 +79,7 @@ sketch005 = startSketchOn(offsetPlane("XZ", 1)) |> hole(oLogo(plane, [.175, -1.825], .20), %) |> hole(oLogo2(plane, [.175, -1.825], .20), %) -export case = extrude(-0.0625, sketch005) +export case = extrude(sketch005, length = -0.0625) |> appearance({ color = '#D0FF01', metalness = 0, diff --git a/walkie-talkie/knob.kcl b/walkie-talkie/knob.kcl index c2f233c9..d6240c34 100644 --- a/walkie-talkie/knob.kcl +++ b/walkie-talkie/knob.kcl @@ -31,7 +31,7 @@ export knob = startSketchOn(knobPlane) radius = .05 }, %) |> xLineTo(0.0001, %) - |> close(%) + |> close() |> revolve({ axis = "Y", }, %) diff --git a/walkie-talkie/talk-button.kcl b/walkie-talkie/talk-button.kcl index 7f0e51b1..83bf6830 100644 --- a/walkie-talkie/talk-button.kcl +++ b/walkie-talkie/talk-button.kcl @@ -28,11 +28,11 @@ talkButtonSketch = startSketchOn(talkButtonPlane) |> xLine(talkButtonSideLength, %, $tag1) |> yLine(-talkButtonSideLength, %, $tag2) |> xLine(-talkButtonSideLength, %, $tag3) - |> close(%, $tag4) + |> close(tag = $tag4) // Create the talk button and apply fillets -export talkButton = extrude(talkButtonHeight, talkButtonSketch) +export talkButton = extrude(talkButtonSketch, length = talkButtonHeight) |> fillet({ radius = 0.050, tags = [ diff --git a/walkie-talkie/thumbnail.png b/walkie-talkie/thumbnail.png new file mode 100644 index 00000000..3b2d596d Binary files /dev/null and b/walkie-talkie/thumbnail.png differ diff --git a/walkie-talkie/zoo-logo.kcl b/walkie-talkie/zoo-logo.kcl index fa101d3c..03e71643 100644 --- a/walkie-talkie/zoo-logo.kcl +++ b/walkie-talkie/zoo-logo.kcl @@ -35,7 +35,7 @@ export fn zLogo(surface, origin, scale) { intersectTag = seg2, offset = 0 }, %) - |> close(%) + |> close() return zSketch } @@ -57,7 +57,7 @@ export fn oLogo(surface, origin, scale) { angleEnd = 47.15 + 11, radius = .288 * scale }, %) - |> close(%) + |> close() return oSketch001 } @@ -78,6 +78,6 @@ export fn oLogo2(surface, origin, scale) { angleEnd = 47.15 + 11 - 180, radius = .288 * scale }, %) - |> close(%) + |> close() return oSketch002 } \ No newline at end of file diff --git a/washer/main.kcl b/washer/main.kcl index 33f8ec6c..8dece81b 100644 --- a/washer/main.kcl +++ b/washer/main.kcl @@ -23,7 +23,7 @@ fn washer(plane, innerDia, outerDia, thk) { radius = innerDia / 2 }, %), %) - washer = extrude(thk, washerSketch) + washer = extrude(washerSketch, length = thk) return washer } diff --git a/washer/thumbnail.png b/washer/thumbnail.png new file mode 100644 index 00000000..754ee226 Binary files /dev/null and b/washer/thumbnail.png differ