Teaching t2c how to counterbore, countersink, and counterdrill (#6833)
* Teaching t2c how to counterbore, countersink, and counterdrill * Delete public/kcl-samples/parametric-bearing-pillow-block directory * Update mounting-wire.kcl * new artifiacts Signed-off-by: Jess Frazelle <github@jessfraz.com> * Update kcl-samples simulation test output * Update kcl-samples simulation test output * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: Jess Frazelle <jessfraz@users.noreply.github.com> Co-authored-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
@ -39,6 +39,12 @@ When you submit a PR to add or modify KCL samples, images will be generated and
|
|||||||
[](car-wheel-assembly/main.kcl)
|
[](car-wheel-assembly/main.kcl)
|
||||||
#### [color-cube](color-cube/main.kcl) ([screenshot](screenshots/color-cube.png))
|
#### [color-cube](color-cube/main.kcl) ([screenshot](screenshots/color-cube.png))
|
||||||
[](color-cube/main.kcl)
|
[](color-cube/main.kcl)
|
||||||
|
#### [counterdrilled-weldment](counterdrilled-weldment/main.kcl) ([screenshot](screenshots/counterdrilled-weldment.png))
|
||||||
|
[](counterdrilled-weldment/main.kcl)
|
||||||
|
#### [countersunk-plate](countersunk-plate/main.kcl) ([screenshot](screenshots/countersunk-plate.png))
|
||||||
|
[](countersunk-plate/main.kcl)
|
||||||
|
#### [cpu-cooler](cpu-cooler/main.kcl) ([screenshot](screenshots/cpu-cooler.png))
|
||||||
|
[](cpu-cooler/main.kcl)
|
||||||
#### [cycloidal-gear](cycloidal-gear/main.kcl) ([screenshot](screenshots/cycloidal-gear.png))
|
#### [cycloidal-gear](cycloidal-gear/main.kcl) ([screenshot](screenshots/cycloidal-gear.png))
|
||||||
[](cycloidal-gear/main.kcl)
|
[](cycloidal-gear/main.kcl)
|
||||||
#### [dodecahedron](dodecahedron/main.kcl) ([screenshot](screenshots/dodecahedron.png))
|
#### [dodecahedron](dodecahedron/main.kcl) ([screenshot](screenshots/dodecahedron.png))
|
||||||
@ -89,8 +95,8 @@ When you submit a PR to add or modify KCL samples, images will be generated and
|
|||||||
[](mounting-plate/main.kcl)
|
[](mounting-plate/main.kcl)
|
||||||
#### [multi-axis-robot](multi-axis-robot/main.kcl) ([screenshot](screenshots/multi-axis-robot.png))
|
#### [multi-axis-robot](multi-axis-robot/main.kcl) ([screenshot](screenshots/multi-axis-robot.png))
|
||||||
[](multi-axis-robot/main.kcl)
|
[](multi-axis-robot/main.kcl)
|
||||||
#### [parametric-bearing-pillow-block](parametric-bearing-pillow-block/main.kcl) ([screenshot](screenshots/parametric-bearing-pillow-block.png))
|
#### [pillow-block-bearing](pillow-block-bearing/main.kcl) ([screenshot](screenshots/pillow-block-bearing.png))
|
||||||
[](parametric-bearing-pillow-block/main.kcl)
|
[](pillow-block-bearing/main.kcl)
|
||||||
#### [pipe](pipe/main.kcl) ([screenshot](screenshots/pipe.png))
|
#### [pipe](pipe/main.kcl) ([screenshot](screenshots/pipe.png))
|
||||||
[](pipe/main.kcl)
|
[](pipe/main.kcl)
|
||||||
#### [pipe-flange-assembly](pipe-flange-assembly/main.kcl) ([screenshot](screenshots/pipe-flange-assembly.png))
|
#### [pipe-flange-assembly](pipe-flange-assembly/main.kcl) ([screenshot](screenshots/pipe-flange-assembly.png))
|
||||||
|
|||||||
120
public/kcl-samples/counterdrilled-weldment/main.kcl
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
// Counterdrilled Weldment
|
||||||
|
// A metal weldment consisting of a counterdrilled plate, a centrally mounted housing tube, and four structural support fins.
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// Define parameters
|
||||||
|
boltSpacingX = 5
|
||||||
|
boltSpacingY = 3
|
||||||
|
boltDiameter = 1 / 4
|
||||||
|
counterdrillDiameter = 7 / 16
|
||||||
|
counterdrillDepth = 3 / 16
|
||||||
|
tubeInnerDiameter = 1 + 1 / 4
|
||||||
|
tubeThickness = 0.115
|
||||||
|
tubeHeight = 2
|
||||||
|
stockThickness = .5
|
||||||
|
|
||||||
|
// Calculate the dimensions of the block using the specified bolt spacing. The size of the block can be defined by adding a multiple of the counterdrill diameter to the bolt spacing
|
||||||
|
blockLength = boltSpacingX + boltDiameter * 6
|
||||||
|
blockWidth = boltSpacingY + boltDiameter * 6
|
||||||
|
|
||||||
|
// Draw the base plate
|
||||||
|
plateSketch = startSketchOn(XY)
|
||||||
|
|> startProfile(at = [-blockLength / 2, -blockWidth / 2])
|
||||||
|
|> angledLine(angle = 0, length = blockLength, tag = $rectangleSegmentA001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = blockWidth, tag = $rectangleSegmentB001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001)
|
||||||
|
|> close()
|
||||||
|
|> subtract2d(tool = circle(center = [0, 0], radius = tubeInnerDiameter / 2))
|
||||||
|
plateBody = extrude(plateSketch, length = stockThickness)
|
||||||
|
|> chamfer(
|
||||||
|
length = boltDiameter * 2,
|
||||||
|
tags = [
|
||||||
|
getNextAdjacentEdge(rectangleSegmentB001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentA001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentC001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentD001)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
// Define hole positions
|
||||||
|
holePositions = [
|
||||||
|
[-boltSpacingX / 2, -boltSpacingY / 2],
|
||||||
|
[-boltSpacingX / 2, boltSpacingY / 2],
|
||||||
|
[boltSpacingX / 2, -boltSpacingY / 2],
|
||||||
|
[boltSpacingX / 2, boltSpacingY / 2]
|
||||||
|
]
|
||||||
|
|
||||||
|
// Function to create a counterdrilled hole
|
||||||
|
fn counterdrill(@holePosition) {
|
||||||
|
cbdrill = startSketchOn(plateBody, face = END)
|
||||||
|
|> circle(center = holePosition, radius = counterdrillDiameter / 2)
|
||||||
|
|> extrude(length = -counterdrillDepth)
|
||||||
|
cbBolt = startSketchOn(cbdrill, face = START)
|
||||||
|
|> circle(center = holePosition, radius = boltDiameter / 2, tag = $hole01)
|
||||||
|
|> extrude(length = -stockThickness + counterdrillDepth)
|
||||||
|
// Use a chamfer to create a 90-degree counterdrill edge
|
||||||
|
|> chamfer(length = (counterdrillDiameter - boltDiameter) / 2 * sqrt(2), tags = [hole01])
|
||||||
|
return { }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Place a counterdrilled hole at each bolt hole position
|
||||||
|
map(holePositions, f = counterdrill)
|
||||||
|
|
||||||
|
// Drill a small pin hole in the side of the tube
|
||||||
|
pinhole = startSketchOn(YZ)
|
||||||
|
|> circle(center = [0, 2.2], radius = 0.125)
|
||||||
|
|> extrude(length = -10)
|
||||||
|
|
||||||
|
// Model the central tube and subtract the pin hole
|
||||||
|
centralTube = startSketchOn(offsetPlane(XY, offset = stockThickness))
|
||||||
|
|> circle(center = [0, 0], radius = tubeInnerDiameter / 2 + tubeThickness)
|
||||||
|
|> subtract2d(tool = circle(center = [0, 0], radius = tubeInnerDiameter / 2))
|
||||||
|
|> extrude(length = tubeHeight)
|
||||||
|
|> subtract(tools = [pinhole])
|
||||||
|
|
||||||
|
// Create a function to create a fin which spans from the central tube to the bolt hole
|
||||||
|
fn fin(@i) {
|
||||||
|
diagPlane = {
|
||||||
|
origin = [0.0, 0.0, 0.0],
|
||||||
|
xAxis = [
|
||||||
|
boltSpacingX / 2 * i,
|
||||||
|
boltSpacingY / 2,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
yAxis = [0.0, 0.0, 1.0]
|
||||||
|
}
|
||||||
|
|
||||||
|
finSketch = startSketchOn(diagPlane)
|
||||||
|
|> startProfile(at = [
|
||||||
|
tubeInnerDiameter / 2 + tubeThickness,
|
||||||
|
stockThickness
|
||||||
|
])
|
||||||
|
|> xLine(endAbsolute = sqrt((boltSpacingX / 2) ^ 2 + (boltSpacingY / 2) ^ 2) - counterdrillDiameter)
|
||||||
|
|> yLine(length = 0.15)
|
||||||
|
|> line(endAbsolute = [
|
||||||
|
profileStartX(%) + 0.15,
|
||||||
|
stockThickness + tubeHeight * .8
|
||||||
|
])
|
||||||
|
|> xLine(length = -0.15)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = tubeThickness, symmetric = true)
|
||||||
|
|
||||||
|
// Use a circular pattern to create an identical fin on the opposite side
|
||||||
|
otherFin = patternCircular3d(
|
||||||
|
finSketch,
|
||||||
|
instances = 2,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
center = [0, 0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
return { }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Place a pair of support fins along each diagonal axis of the bolt pattern
|
||||||
|
fin(1)
|
||||||
|
fin(-1)
|
||||||
50
public/kcl-samples/countersunk-plate/main.kcl
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
// Plate with countersunk holes
|
||||||
|
// A small mounting plate with a countersunk hole at each end
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// Define parameters
|
||||||
|
boltSpacing = 5
|
||||||
|
boltDiameter = 1 / 4
|
||||||
|
centerHoleDiameter = 1 + 3 / 4
|
||||||
|
plateThickness = 0.375
|
||||||
|
|
||||||
|
// Check that the plate is thick enough to countersink a hole
|
||||||
|
// assertGreaterThan(plateThickness, boltDiameter, "This plate is not thick enough for the necessary countersink dimensions")
|
||||||
|
|
||||||
|
// A bit of math to calculate the tangent line between the two diameters
|
||||||
|
r1 = centerHoleDiameter / 2 * 1.5 + .35
|
||||||
|
r2 = boltDiameter * 2 + .25
|
||||||
|
d = boltSpacing / 2
|
||||||
|
tangentAngle = asin((r1 - r2) / d)
|
||||||
|
tangentLength = (r1 - r2) / tan(tangentAngle)
|
||||||
|
|
||||||
|
plateBody = startSketchOn(XY)
|
||||||
|
// Use polar coordinates to start the sketch at the tangent point of the larger radius
|
||||||
|
|> startProfile(at = polar(angle = 90 - tangentAngle, length = r1))
|
||||||
|
|> angledLine(angle = -tangentAngle, length = tangentLength)
|
||||||
|
|> tangentialArc(radius = r2, angle = (tangentAngle - 90) * 2)
|
||||||
|
|> angledLine(angle = tangentAngle, length = -tangentLength)
|
||||||
|
|> tangentialArc(radius = r1, angle = -tangentAngle * 2)
|
||||||
|
|> angledLine(angle = -tangentAngle, length = -tangentLength)
|
||||||
|
|> tangentialArc(radius = r2, angle = (tangentAngle - 90) * 2)
|
||||||
|
|> angledLine(angle = tangentAngle, length = tangentLength)
|
||||||
|
|> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
|> subtract2d(tool = circle(center = [0, 0], radius = centerHoleDiameter / 2 * 1.5))
|
||||||
|
|> extrude(%, length = plateThickness)
|
||||||
|
|
||||||
|
// Function to create a countersunk hole
|
||||||
|
fn countersink(@holePosition) {
|
||||||
|
startSketchOn(plateBody, face = END)
|
||||||
|
|> circle(center = [holePosition, 0], radius = boltDiameter / 2, tag = $hole01)
|
||||||
|
|> extrude(length = -plateThickness)
|
||||||
|
// Use a chamfer to create a 90-degree countersink
|
||||||
|
|> chamfer(length = boltDiameter, tags = [hole01])
|
||||||
|
return { }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Place a countersunk hole at each bolt hole position
|
||||||
|
countersink(-boltSpacing / 2)
|
||||||
|
countersink(boltSpacing / 2)
|
||||||
153
public/kcl-samples/cpu-cooler/fan-housing.kcl
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
// Fan Housing
|
||||||
|
// The plastic housing that contains the fan and the motor
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
// Import parameters
|
||||||
|
import * from "parameters.kcl"
|
||||||
|
|
||||||
|
// Model the housing which holds the motor, the fan, and the mounting provisions
|
||||||
|
// Bottom mounting face
|
||||||
|
bottomFaceSketch = startSketchOn(YZ)
|
||||||
|
|> startProfile(at = [-fanSize / 2, -fanSize / 2])
|
||||||
|
|> angledLine(angle = 0, length = fanSize, tag = $rectangleSegmentA001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = fanSize, tag = $rectangleSegmentB001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001)
|
||||||
|
|> close()
|
||||||
|
|> subtract2d(tool = circle(center = [0, 0], radius = 4))
|
||||||
|
|> subtract2d(tool = circle(
|
||||||
|
center = [
|
||||||
|
mountingHoleSpacing / 2,
|
||||||
|
mountingHoleSpacing / 2
|
||||||
|
],
|
||||||
|
radius = mountingHoleSize / 2,
|
||||||
|
))
|
||||||
|
|> subtract2d(tool = circle(
|
||||||
|
center = [
|
||||||
|
-mountingHoleSpacing / 2,
|
||||||
|
mountingHoleSpacing / 2
|
||||||
|
],
|
||||||
|
radius = mountingHoleSize / 2,
|
||||||
|
))
|
||||||
|
|> subtract2d(tool = circle(
|
||||||
|
center = [
|
||||||
|
mountingHoleSpacing / 2,
|
||||||
|
-mountingHoleSpacing / 2
|
||||||
|
],
|
||||||
|
radius = mountingHoleSize / 2,
|
||||||
|
))
|
||||||
|
|> subtract2d(tool = circle(
|
||||||
|
center = [
|
||||||
|
-mountingHoleSpacing / 2,
|
||||||
|
-mountingHoleSpacing / 2
|
||||||
|
],
|
||||||
|
radius = mountingHoleSize / 2,
|
||||||
|
))
|
||||||
|
|> extrude(length = 4)
|
||||||
|
|
||||||
|
// Add large openings to the bottom face to allow airflow through the fan
|
||||||
|
airflowPattern = startSketchOn(bottomFaceSketch, face = END)
|
||||||
|
|> startProfile(at = [fanSize * 7 / 25, -fanSize * 9 / 25])
|
||||||
|
|> angledLine(angle = 140, length = fanSize * 12 / 25, tag = $seg01)
|
||||||
|
|> tangentialArc(radius = fanSize * 1 / 50, angle = 90)
|
||||||
|
|> angledLine(angle = -130, length = fanSize * 8 / 25)
|
||||||
|
|> tangentialArc(radius = fanSize * 1 / 50, angle = 90)
|
||||||
|
|> angledLine(angle = segAng(seg01) + 180, length = fanSize * 2 / 25)
|
||||||
|
|> tangentialArc(radius = fanSize * 8 / 25, angle = 40)
|
||||||
|
|> xLine(length = fanSize * 3 / 25)
|
||||||
|
|> tangentialArc(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
|> patternCircular2d(
|
||||||
|
instances = 4,
|
||||||
|
center = [0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
|> extrude(length = -4)
|
||||||
|
|
||||||
|
// Create the middle segment of the fan housing body
|
||||||
|
housingMiddleLength = fanSize / 3
|
||||||
|
housingMiddleRadius = fanSize / 3 - 1
|
||||||
|
bodyMiddle = startSketchOn(bottomFaceSketch, face = END)
|
||||||
|
|> startProfile(at = [
|
||||||
|
housingMiddleLength / 2,
|
||||||
|
-housingMiddleLength / 2 - housingMiddleRadius
|
||||||
|
])
|
||||||
|
|> tangentialArc(radius = housingMiddleRadius, angle = 90)
|
||||||
|
|> yLine(length = housingMiddleLength)
|
||||||
|
|> tangentialArc(radius = housingMiddleRadius, angle = 90)
|
||||||
|
|> xLine(length = -housingMiddleLength)
|
||||||
|
|> tangentialArc(radius = housingMiddleRadius, angle = 90)
|
||||||
|
|> yLine(length = -housingMiddleLength)
|
||||||
|
|> tangentialArc(radius = housingMiddleRadius, angle = 90)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> extrude(length = fanHeight - 4 - 4)
|
||||||
|
|
||||||
|
// Cut a hole in the body to accommodate the fan
|
||||||
|
bodyFanHole = startSketchOn(bodyMiddle, face = END)
|
||||||
|
|> circle(center = [0, 0], radius = fanSize * 23 / 50)
|
||||||
|
|> extrude(length = -(fanHeight - 4 - 4))
|
||||||
|
|
||||||
|
// Top mounting face. Cut a hole in the face to accommodate the fan
|
||||||
|
topFaceSketch = startSketchOn(bodyMiddle, face = END)
|
||||||
|
topHoles = startProfile(topFaceSketch, at = [-fanSize / 2, -fanSize / 2])
|
||||||
|
|> angledLine(angle = 0, length = fanSize, tag = $rectangleSegmentA002)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA002) + 90, length = fanSize, tag = $rectangleSegmentB002)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA002), length = -segLen(rectangleSegmentA002), tag = $rectangleSegmentC002)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD002)
|
||||||
|
|> close()
|
||||||
|
|> subtract2d(tool = circle(center = [0, 0], radius = fanSize * 23 / 50))
|
||||||
|
|> subtract2d(tool = circle(
|
||||||
|
center = [
|
||||||
|
mountingHoleSpacing / 2,
|
||||||
|
mountingHoleSpacing / 2
|
||||||
|
],
|
||||||
|
radius = mountingHoleSize / 2,
|
||||||
|
))
|
||||||
|
|> subtract2d(tool = circle(
|
||||||
|
center = [
|
||||||
|
-mountingHoleSpacing / 2,
|
||||||
|
mountingHoleSpacing / 2
|
||||||
|
],
|
||||||
|
radius = mountingHoleSize / 2,
|
||||||
|
))
|
||||||
|
|> subtract2d(tool = circle(
|
||||||
|
center = [
|
||||||
|
mountingHoleSpacing / 2,
|
||||||
|
-mountingHoleSpacing / 2
|
||||||
|
],
|
||||||
|
radius = mountingHoleSize / 2,
|
||||||
|
))
|
||||||
|
|> subtract2d(tool = circle(
|
||||||
|
center = [
|
||||||
|
-mountingHoleSpacing / 2,
|
||||||
|
-mountingHoleSpacing / 2
|
||||||
|
],
|
||||||
|
radius = mountingHoleSize / 2,
|
||||||
|
))
|
||||||
|
|> extrude(length = 4)
|
||||||
|
|
||||||
|
// Create a housing for the electric motor to sit
|
||||||
|
motorHousing = startSketchOn(bottomFaceSketch, face = END)
|
||||||
|
|> circle(center = [0, 0], radius = 11.2)
|
||||||
|
|> extrude(length = 16)
|
||||||
|
|
||||||
|
startSketchOn(motorHousing, face = END)
|
||||||
|
|> circle(center = [0, 0], radius = 10)
|
||||||
|
|> extrude(length = -16)
|
||||||
|
|> appearance(color = "#a55e2c")
|
||||||
|
|> fillet(
|
||||||
|
radius = abs(fanSize - mountingHoleSpacing) / 2,
|
||||||
|
tags = [
|
||||||
|
getNextAdjacentEdge(rectangleSegmentA001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentB001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentC001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentD001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentA002),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentB002),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentC002),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentD002)
|
||||||
|
],
|
||||||
|
)
|
||||||
89
public/kcl-samples/cpu-cooler/fan.kcl
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
// Fan
|
||||||
|
// Spinning axial fan that moves airflow
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
// Import parameters
|
||||||
|
import * from "parameters.kcl"
|
||||||
|
|
||||||
|
// Model the center of the fan
|
||||||
|
fanCenter = startSketchOn(XY)
|
||||||
|
|> startProfile(at = [fanHeight, 0])
|
||||||
|
|> yLine(endAbsolute = -15 + 1.5)
|
||||||
|
|> tangentialArc(radius = 1.5, angle = -90)
|
||||||
|
|> xLine(endAbsolute = 4.5)
|
||||||
|
|> yLine(endAbsolute = -13)
|
||||||
|
|> xLine(endAbsolute = profileStartX(%) - 5)
|
||||||
|
|> tangentialArc(radius = 1, angle = 90)
|
||||||
|
|> yLine(endAbsolute = -1)
|
||||||
|
|> xLine(length = 2)
|
||||||
|
|> yLine(length = -0.15)
|
||||||
|
|> line(endAbsolute = [
|
||||||
|
profileStartX(%) - 1.4,
|
||||||
|
profileStartY(%) - 1
|
||||||
|
])
|
||||||
|
|> yLine(endAbsolute = profileStartY(%))
|
||||||
|
|> xLine(endAbsolute = profileStartX(%))
|
||||||
|
|> close()
|
||||||
|
|> revolve(axis = {
|
||||||
|
direction = [1.0, 0.0],
|
||||||
|
origin = [0.0, 0.0]
|
||||||
|
})
|
||||||
|
|
||||||
|
// Create a function for a lofted fan blade cross section that rotates about the center hub of the fan
|
||||||
|
fn fanBlade(offsetHeight, startAngle) {
|
||||||
|
fanBlade = startSketchOn(offsetPlane(YZ, offset = offsetHeight))
|
||||||
|
|> startProfile(at = [
|
||||||
|
15 * cos(startAngle),
|
||||||
|
15 * sin(startAngle)
|
||||||
|
])
|
||||||
|
|> arc(angleStart = startAngle, angleEnd = startAngle + 14, radius = 15)
|
||||||
|
|> arc(
|
||||||
|
endAbsolute = [
|
||||||
|
fanSize * 22 / 50 * cos(startAngle - 20),
|
||||||
|
fanSize * 22 / 50 * sin(startAngle - 20)
|
||||||
|
],
|
||||||
|
interiorAbsolute = [
|
||||||
|
fanSize * 11 / 50 * cos(startAngle + 3),
|
||||||
|
fanSize * 11 / 50 * sin(startAngle + 3)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|> arc(
|
||||||
|
endAbsolute = [
|
||||||
|
fanSize * 22 / 50 * cos(startAngle - 24),
|
||||||
|
fanSize * 22 / 50 * sin(startAngle - 24)
|
||||||
|
],
|
||||||
|
interiorAbsolute = [
|
||||||
|
fanSize * 22 / 50 * cos(startAngle - 22),
|
||||||
|
fanSize * 22 / 50 * sin(startAngle - 22)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|> arc(
|
||||||
|
endAbsolute = [profileStartX(%), profileStartY(%)],
|
||||||
|
interiorAbsolute = [
|
||||||
|
fanSize * 11 / 50 * cos(startAngle - 5),
|
||||||
|
fanSize * 11 / 50 * sin(startAngle - 5)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|> close()
|
||||||
|
return fanBlade
|
||||||
|
}
|
||||||
|
|
||||||
|
// Loft the fan blade cross sections into a single blade, then pattern them about the fan center
|
||||||
|
crossSections = [
|
||||||
|
fanBlade(offsetHeight = 4.5, startAngle = 50),
|
||||||
|
fanBlade(offsetHeight = (fanHeight - 2 - 4) / 2, startAngle = 30),
|
||||||
|
fanBlade(offsetHeight = fanHeight - 2, startAngle = 0)
|
||||||
|
]
|
||||||
|
bladeLoft = loft(crossSections)
|
||||||
|
|> patternCircular3d(
|
||||||
|
instances = 9,
|
||||||
|
axis = [1, 0, 0],
|
||||||
|
center = [0, 0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
|
||||||
|
[fanCenter, bladeLoft]
|
||||||
|
|> appearance(color = "#110803")
|
||||||
171
public/kcl-samples/cpu-cooler/heat-sink.kcl
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
// Heat Sink
|
||||||
|
// Conductive metal device made from brazed tubes and fins
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
// Import parameters
|
||||||
|
import * from "parameters.kcl"
|
||||||
|
|
||||||
|
// Draw the sweep path for the outermost tubes
|
||||||
|
endTubePath = startSketchOn(offsetPlane(YZ, offset = -20))
|
||||||
|
|> startProfile(at = [fanSize / 4, fanSize + 38])
|
||||||
|
|> yLine(endAbsolute = bendRadius + 10, tag = $seg01)
|
||||||
|
|> tangentialArc(radius = bendRadius, angle = -90)
|
||||||
|
|> xLine(endAbsolute = 0, tag = $seg02)
|
||||||
|
|> xLine(length = -segLen(seg02))
|
||||||
|
|> tangentialArc(radius = bendRadius, angle = -90)
|
||||||
|
|> yLine(length = segLen(seg01))
|
||||||
|
|
||||||
|
// Sweep and translate the outermost tube on each end
|
||||||
|
endTube = startSketchOn(offsetPlane(XY, offset = fanSize + 38))
|
||||||
|
|> circle(center = [-20, fanSize / 4], radius = 3)
|
||||||
|
|> subtract2d(tool = circle(center = [-20, fanSize / 4], radius = 2.5))
|
||||||
|
|> sweep(path = endTubePath)
|
||||||
|
|> patternCircular3d(
|
||||||
|
%,
|
||||||
|
instances = 2,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
center = [0, 0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = false,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Draw the sweep path for the 4 interior tubes
|
||||||
|
centerTubePath = startSketchOn(offsetPlane(YZ, offset = -4))
|
||||||
|
|> startProfile(at = [fanSize / 2.67, fanSize + 38])
|
||||||
|
|> yLine(endAbsolute = bendRadius + 15 + 10)
|
||||||
|
|> tangentialArc(radius = bendRadius, angle = -45)
|
||||||
|
|> angledLine(angle = -135, lengthY = 15)
|
||||||
|
|> tangentialArc(radius = bendRadius, angle = -45)
|
||||||
|
|> xLine(endAbsolute = 0, tag = $seg03)
|
||||||
|
|> xLine(length = -segLen(seg03))
|
||||||
|
|> tangentialArc(radius = bendRadius, angle = -155)
|
||||||
|
|> tangentialArc(radius = bendRadius, angle = 65)
|
||||||
|
|> yLine(endAbsolute = fanSize + 38)
|
||||||
|
|
||||||
|
// Draw the profile and sweep the 4 interior tubes
|
||||||
|
centerTube = startSketchOn(offsetPlane(XY, offset = fanSize + 38))
|
||||||
|
|> circle(center = [-4, fanSize / 2.67], radius = 3)
|
||||||
|
|> subtract2d(tool = circle(center = [-4, fanSize / 2.67], radius = 2.5))
|
||||||
|
|> sweep(path = centerTubePath)
|
||||||
|
|> patternCircular3d(
|
||||||
|
%,
|
||||||
|
instances = 2,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
center = [-4 * 2, 0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
|> patternLinear3d(
|
||||||
|
%,
|
||||||
|
instances = 2,
|
||||||
|
distance = 4 * 4,
|
||||||
|
axis = [1, 0, 0],
|
||||||
|
)
|
||||||
|
|
||||||
|
// Draw a heat fin with built-in clips to secure the mounting wire. Pattern the fin upwards by the height of the fan
|
||||||
|
heatFins = startSketchOn(offsetPlane(XY, offset = 45))
|
||||||
|
|> startProfile(at = [0, -fanSize / 2])
|
||||||
|
|> xLine(length = 9)
|
||||||
|
|> angledLine(angle = -60, length = 2.5, tag = $seg04)
|
||||||
|
|> xLine(length = 0.75)
|
||||||
|
|> arc(interiorAbsolute = [lastSegX(%) + 1, lastSegY(%) + 1.2], endAbsolute = [lastSegX(%) + 2, lastSegY(%)])
|
||||||
|
|> xLine(length = 0.75)
|
||||||
|
|> angledLine(angle = 60, length = segLen(seg04))
|
||||||
|
|> xLine(endAbsolute = heatSinkDepth / 2 - 3)
|
||||||
|
|> tangentialArc(angle = 90, radius = 3)
|
||||||
|
|> yLine(endAbsolute = 0)
|
||||||
|
|> mirror2d(axis = X)
|
||||||
|
|> mirror2d(axis = Y)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = 1)
|
||||||
|
|> patternLinear3d(
|
||||||
|
%,
|
||||||
|
instances = 31,
|
||||||
|
distance = (fanSize - 10) / 30,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
)
|
||||||
|
|
||||||
|
// Create the mounting base for the CPU cooler. The base should consist of two pieces that secure around each of the tubes at the bottom
|
||||||
|
coolerBase = startSketchOn(-XZ)
|
||||||
|
baseLower = startProfile(coolerBase, at = [0, 10])
|
||||||
|
|> xLine(length = -0.9)
|
||||||
|
|> arc(angleStart = 0, angleEnd = -180, radius = 3.1)
|
||||||
|
|> xLine(length = -1.8)
|
||||||
|
|> arc(angleStart = 0, angleEnd = -180, radius = 3)
|
||||||
|
|> xLine(length = -1.8)
|
||||||
|
|> arc(angleStart = 0, angleEnd = -180, radius = 3)
|
||||||
|
|> xLine(length = -1.8)
|
||||||
|
|> xLine(length = -2)
|
||||||
|
|> yLine(length = -10)
|
||||||
|
|> xLine(endAbsolute = 0)
|
||||||
|
|> mirror2d(axis = Y)
|
||||||
|
|> extrude(length = 2 * segLen(seg02), symmetric = true)
|
||||||
|
|
||||||
|
baseUpper = startProfile(coolerBase, at = [0, 10])
|
||||||
|
|> xLine(length = -0.9)
|
||||||
|
|> arc(angleStart = 0, angleEnd = 180, radius = 3.1)
|
||||||
|
|> xLine(length = -1.8)
|
||||||
|
|> arc(angleStart = 0, angleEnd = 180, radius = 3)
|
||||||
|
|> xLine(length = -1.8)
|
||||||
|
|> arc(angleStart = 0, angleEnd = 180, radius = 3)
|
||||||
|
|> xLine(length = -1.8)
|
||||||
|
|> xLine(length = -1)
|
||||||
|
|> yLine(length = 4)
|
||||||
|
|> tangentialArc(angle = -90, radius = 2)
|
||||||
|
|> xLine(endAbsolute = 0)
|
||||||
|
|> mirror2d(axis = Y)
|
||||||
|
|> extrude(length = 2 * segLen(seg02) * 3 / 4, symmetric = true)
|
||||||
|
|
||||||
|
// Create a flexible mounting bracket to secure the heat sink to the motherboard once adhered
|
||||||
|
mountingBracket = startSketchOn(XZ)
|
||||||
|
|> startProfile(at = [-10, 16])
|
||||||
|
|> xLine(length = -20)
|
||||||
|
|> tangentialArc(angle = 20, radius = bendRadius)
|
||||||
|
|> angledLine(angle = -160, length = 14, tag = $seg09)
|
||||||
|
|> tangentialArc(angle = -30, radius = bendRadius + sheetThickness)
|
||||||
|
|> angledLine(angle = 170, length = 21.5, tag = $seg04Q)
|
||||||
|
|> angledLine(angle = 170 - 90, length = sheetThickness, tag = $seg08)
|
||||||
|
|> angledLine(angle = segAng(seg04Q) + 180, length = segLen(seg04Q), tag = $seg05E)
|
||||||
|
|> tangentialArc(angle = 30, radius = bendRadius)
|
||||||
|
|> angledLine(angle = segAng(seg09) + 180, length = segLen(seg09))
|
||||||
|
|> tangentialArc(angle = -20, radius = bendRadius + sheetThickness)
|
||||||
|
|> xLine(endAbsolute = profileStartX(%))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg07)
|
||||||
|
|> close()
|
||||||
|
|> extrude(
|
||||||
|
length = 16,
|
||||||
|
symmetric = true,
|
||||||
|
tagEnd = $capEnd001,
|
||||||
|
tagStart = $capStart001,
|
||||||
|
)
|
||||||
|
|> fillet(
|
||||||
|
radius = 2,
|
||||||
|
tags = [
|
||||||
|
getCommonEdge(faces = [seg07, capEnd001]),
|
||||||
|
getCommonEdge(faces = [seg08, capEnd001]),
|
||||||
|
getCommonEdge(faces = [seg08, capStart001]),
|
||||||
|
getCommonEdge(faces = [seg07, capStart001])
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
// Create a clearance hole in the bracket for an M3 screw and countersink the hole
|
||||||
|
thruHole = startSketchOn(mountingBracket, face = seg05E)
|
||||||
|
|> circle(center = [70, 0], radius = 3.4 / 2, tag = $seg06E)
|
||||||
|
|> extrude(length = -sheetThickness)
|
||||||
|
|> chamfer(
|
||||||
|
length = sheetThickness * 0.75,
|
||||||
|
tags = [
|
||||||
|
getCommonEdge(faces = [seg05E, seg06E])
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
// Duplicate the bracket to the other side of the heat sink base
|
||||||
|
|> patternCircular3d(
|
||||||
|
instances = 2,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
center = [0, 0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
51
public/kcl-samples/cpu-cooler/main.kcl
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
// CPU Cooler
|
||||||
|
// A CPU cooler is a device designed to dissipate heat generated by the CPU of a computer. They consist of a brazed heat sink made from aluminum or copper alloys, and one or two axial fans to move airflow across the heat sink.
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
// Import all parts and parameters into assembly file
|
||||||
|
import * from "parameters.kcl"
|
||||||
|
import "fan-housing.kcl" as fanHousing
|
||||||
|
import "motor.kcl" as motor
|
||||||
|
import "fan.kcl" as fan
|
||||||
|
import "heat-sink.kcl" as heatSink
|
||||||
|
import "mounting-wire.kcl" as mountingWire
|
||||||
|
import "removable-sticker.kcl" as removableSticker
|
||||||
|
|
||||||
|
// Produce the model for each imported part
|
||||||
|
heatSink
|
||||||
|
|
||||||
|
fn translatePart(part) {
|
||||||
|
part
|
||||||
|
|> translate(x = heatSinkDepth / 2, z = 40 + fanSize / 2)
|
||||||
|
|> patternLinear3d(
|
||||||
|
%,
|
||||||
|
instances = 2,
|
||||||
|
distance = heatSinkDepth + fanHeight,
|
||||||
|
axis = [-1, 0, 0],
|
||||||
|
)
|
||||||
|
return { }
|
||||||
|
}
|
||||||
|
translatePart(part = fanHousing)
|
||||||
|
translatePart(part = motor)
|
||||||
|
translatePart(part = fan)
|
||||||
|
|
||||||
|
mountingWire
|
||||||
|
|> patternCircular3d(
|
||||||
|
%,
|
||||||
|
instances = 2,
|
||||||
|
axis = [0, 1, 0],
|
||||||
|
center = [0, 0, 40 + fanSize / 2],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
|> patternCircular3d(
|
||||||
|
%,
|
||||||
|
instances = 2,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
center = [0, 0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
removableSticker
|
||||||
21
public/kcl-samples/cpu-cooler/motor.kcl
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Motor
|
||||||
|
// A small electric motor to power the fan
|
||||||
|
|
||||||
|
// Set Units
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
// Import Parameters
|
||||||
|
import * from "parameters.kcl"
|
||||||
|
|
||||||
|
// Model the motor body and stem
|
||||||
|
startPlane = offsetPlane(YZ, offset = 4)
|
||||||
|
motorBody = startSketchOn(startPlane)
|
||||||
|
|> circle(center = [0, 0], radius = 10, tag = $seg04)
|
||||||
|
|> extrude(length = 17)
|
||||||
|
|> fillet(radius = 2, tags = [getOppositeEdge(seg04), seg04])
|
||||||
|
|> appearance(color = "#021b55")
|
||||||
|
motorStem = startSketchOn(offsetPlane(YZ, offset = 21))
|
||||||
|
|> circle(center = [0, 0], radius = 1)
|
||||||
|
|> extrude(length = 3.8)
|
||||||
|
|> appearance(color = "#cbcccd")
|
||||||
|
[motorBody, motorStem]
|
||||||
79
public/kcl-samples/cpu-cooler/mounting-wire.kcl
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
// Mounting Wire
|
||||||
|
// The flexible metal wire used to clip the fans onto the heat sink
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
// Import parameters
|
||||||
|
import * from "parameters.kcl"
|
||||||
|
|
||||||
|
// Draw the XZ component of the mounting wire path
|
||||||
|
upperArm = startSketchOn(offsetPlane(XZ, offset = fanSize / 2 + 2))
|
||||||
|
|> startProfile(at = [-12, 40 + fanSize / 2])
|
||||||
|
|> yLine(length = 7)
|
||||||
|
|> tangentialArc(radius = 2, angle = 90)
|
||||||
|
|> xLine(length = -9)
|
||||||
|
|> tangentialArc(radius = 2, angle = -90)
|
||||||
|
|> yLine(length = 14)
|
||||||
|
|> tangentialArc(radius = 2, angle = 90)
|
||||||
|
|> xLine(length = -9)
|
||||||
|
|> tangentialArc(radius = 2, angle = -80)
|
||||||
|
|> angledLine(angle = 100, endAbsoluteY = 40 + fanSize / 2 + mountingHoleSpacing / 2 - 1.5)
|
||||||
|
|> tangentialArc(radius = 2, angle = 80, tag = $seg07)
|
||||||
|
|
||||||
|
// Draw the XZ component of the mounting wire path
|
||||||
|
lowerArm = startSketchOn(offsetPlane(XZ, offset = fanSize / 2 + 2))
|
||||||
|
|> startProfile(at = [-12, 40 + fanSize / 2])
|
||||||
|
|> yLine(length = -7)
|
||||||
|
|> tangentialArc(radius = 2, angle = -90)
|
||||||
|
|> xLine(length = -9)
|
||||||
|
|> tangentialArc(radius = 2, angle = 90)
|
||||||
|
|> yLine(length = -14)
|
||||||
|
|> tangentialArc(radius = 2, angle = -90)
|
||||||
|
|> xLine(length = -9)
|
||||||
|
|> tangentialArc(radius = 2, angle = 80)
|
||||||
|
|> angledLine(angle = -100, endAbsoluteY = 40 + fanSize / 2 - (mountingHoleSpacing / 2) + 1.5)
|
||||||
|
|> tangentialArc(radius = 2, angle = -80, tag = $seg08)
|
||||||
|
|
||||||
|
// Create the profile of the mounting wire and sweep along the XZ path
|
||||||
|
wireProfile = startSketchOn(offsetPlane(XY, offset = 40 + fanSize / 2))
|
||||||
|
sweepUpperArm = circle(wireProfile, center = [-12, -fanSize / 2 - 2], radius = 1)
|
||||||
|
|> sweep(%, path = upperArm)
|
||||||
|
|
||||||
|
sweepLowerArm = circle(wireProfile, center = [-12, -fanSize / 2 - 2], radius = 1)
|
||||||
|
|> sweep(%, path = lowerArm)
|
||||||
|
|
||||||
|
// Draw the XY components of the mounting wire path
|
||||||
|
upperHook = startSketchOn(offsetPlane(XY, offset = segEndY(seg07)))
|
||||||
|
|> startProfile(at = [segEndX(seg07), -fanSize / 2 - 2])
|
||||||
|
|> xLine(endAbsolute = -heatSinkDepth / 2 - fanHeight)
|
||||||
|
|> tangentialArc(radius = 2, angle = -90)
|
||||||
|
|> yLine(endAbsolute = -mountingHoleSpacing / 2 - 2)
|
||||||
|
|> tangentialArc(radius = 2, angle = -90)
|
||||||
|
|> xLine(length = fanHeight / 3)
|
||||||
|
|
||||||
|
// Draw the XY components of the mounting wire path
|
||||||
|
lowerHook = startSketchOn(offsetPlane(XY, offset = segEndY(seg08)))
|
||||||
|
|> startProfile(at = [segEndX(seg07), -fanSize / 2 - 2])
|
||||||
|
|> xLine(endAbsolute = -heatSinkDepth / 2 - fanHeight)
|
||||||
|
|> tangentialArc(radius = 2, angle = -90)
|
||||||
|
|> yLine(endAbsolute = -mountingHoleSpacing / 2 - 2)
|
||||||
|
|> tangentialArc(radius = 2, angle = -90)
|
||||||
|
|> xLine(length = fanHeight / 3)
|
||||||
|
|
||||||
|
// Sweep the wire profile around the hook-shaped segments of the mounting wire
|
||||||
|
hookProfile = startSketchOn(offsetPlane(YZ, offset = segEndX(seg07)))
|
||||||
|
sweepUpperHook = circle(hookProfile, center = [-fanSize / 2 - 2, segEndY(seg07)], radius = 1)
|
||||||
|
|> sweep(%, path = upperHook)
|
||||||
|
|
||||||
|
sweepLowerHook = circle(hookProfile, center = [-fanSize / 2 - 2, segEndY(seg08)], radius = 1)
|
||||||
|
|> sweep(%, path = lowerHook)
|
||||||
|
|
||||||
|
// Union each piece of the wire into a single continuous sweep
|
||||||
|
[
|
||||||
|
sweepLowerArm,
|
||||||
|
sweepLowerHook,
|
||||||
|
sweepUpperArm,
|
||||||
|
sweepUpperHook
|
||||||
|
]
|
||||||
|
|> appearance(color = "#0d0d0d")
|
||||||
13
public/kcl-samples/cpu-cooler/parameters.kcl
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// Global parameters for the CPU cooler
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
// Define Parameters
|
||||||
|
export fanSize = 120
|
||||||
|
export fanHeight = 25
|
||||||
|
export mountingHoleSpacing = 105
|
||||||
|
export mountingHoleSize = 4.5
|
||||||
|
export bendRadius = 15
|
||||||
|
export sheetThickness = 2.125
|
||||||
|
export heatSinkDepth = 55
|
||||||
28
public/kcl-samples/cpu-cooler/removable-sticker.kcl
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
// Removable Sticker
|
||||||
|
// Protective sticker to be removed before adhering the heat sink to the CPU
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
// Import parameters
|
||||||
|
import * from "parameters.kcl"
|
||||||
|
|
||||||
|
// Create a simple body to represent the removable warning sticker. Brightly color the sticker so that the user will not forget to remove it before installing the device
|
||||||
|
removableSticker = startSketchOn(-XY)
|
||||||
|
|> startProfile(at = [-12, -12])
|
||||||
|
|> angledLine(angle = 0, length = 24, tag = $rectangleSegmentA001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = 24, tag = $rectangleSegmentB001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = .3)
|
||||||
|
|> appearance(color = "#021b55")
|
||||||
|
|> chamfer(
|
||||||
|
length = 3,
|
||||||
|
tags = [
|
||||||
|
getNextAdjacentEdge(rectangleSegmentA001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentB001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentC001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentD001)
|
||||||
|
],
|
||||||
|
)
|
||||||
@ -90,6 +90,43 @@
|
|||||||
"main.kcl"
|
"main.kcl"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"file": "main.kcl",
|
||||||
|
"pathFromProjectDirectoryToFirstFile": "counterdrilled-weldment/main.kcl",
|
||||||
|
"multipleFiles": false,
|
||||||
|
"title": "Counterdrilled Weldment",
|
||||||
|
"description": "A metal weldment consisting of a counterdrilled plate, a centrally mounted housing tube, and four structural support fins.",
|
||||||
|
"files": [
|
||||||
|
"main.kcl"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "main.kcl",
|
||||||
|
"pathFromProjectDirectoryToFirstFile": "countersunk-plate/main.kcl",
|
||||||
|
"multipleFiles": false,
|
||||||
|
"title": "Plate with countersunk holes",
|
||||||
|
"description": "A small mounting plate with a countersunk hole at each end",
|
||||||
|
"files": [
|
||||||
|
"main.kcl"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "main.kcl",
|
||||||
|
"pathFromProjectDirectoryToFirstFile": "cpu-cooler/main.kcl",
|
||||||
|
"multipleFiles": true,
|
||||||
|
"title": "CPU Cooler",
|
||||||
|
"description": "A CPU cooler is a device designed to dissipate heat generated by the CPU of a computer. They consist of a brazed heat sink made from aluminum or copper alloys, and one or two axial fans to move airflow across the heat sink.",
|
||||||
|
"files": [
|
||||||
|
"fan-housing.kcl",
|
||||||
|
"fan.kcl",
|
||||||
|
"heat-sink.kcl",
|
||||||
|
"main.kcl",
|
||||||
|
"motor.kcl",
|
||||||
|
"mounting-wire.kcl",
|
||||||
|
"parameters.kcl",
|
||||||
|
"removable-sticker.kcl"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"file": "main.kcl",
|
"file": "main.kcl",
|
||||||
"pathFromProjectDirectoryToFirstFile": "cycloidal-gear/main.kcl",
|
"pathFromProjectDirectoryToFirstFile": "cycloidal-gear/main.kcl",
|
||||||
@ -347,12 +384,15 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file": "main.kcl",
|
"file": "main.kcl",
|
||||||
"pathFromProjectDirectoryToFirstFile": "parametric-bearing-pillow-block/main.kcl",
|
"pathFromProjectDirectoryToFirstFile": "pillow-block-bearing/main.kcl",
|
||||||
"multipleFiles": false,
|
"multipleFiles": true,
|
||||||
"title": "Parametric Bearing Pillow Block",
|
"title": "Pillow Block Bearing",
|
||||||
"description": "A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads.",
|
"description": "A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads.",
|
||||||
"files": [
|
"files": [
|
||||||
"main.kcl"
|
"ball-bearing.kcl",
|
||||||
|
"block.kcl",
|
||||||
|
"main.kcl",
|
||||||
|
"parameters.kcl"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,51 +0,0 @@
|
|||||||
// Parametric Bearing Pillow Block
|
|
||||||
// A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads.
|
|
||||||
|
|
||||||
// Set units
|
|
||||||
@settings(defaultLengthUnit = in, kclVersion = 1.0)
|
|
||||||
|
|
||||||
// Define parameters
|
|
||||||
length = 6
|
|
||||||
width = 4
|
|
||||||
height = 1
|
|
||||||
cbDepth = .25
|
|
||||||
cbDia = .7
|
|
||||||
holeDia = .375
|
|
||||||
padding = 1.5
|
|
||||||
bearingDia = 3
|
|
||||||
|
|
||||||
// Sketch the block body
|
|
||||||
body = startSketchOn(XY)
|
|
||||||
|> startProfile(at = [-width / 2, -length / 2])
|
|
||||||
|> line(endAbsolute = [width / 2, -length / 2])
|
|
||||||
|> line(endAbsolute = [width / 2, length / 2])
|
|
||||||
|> line(endAbsolute = [-width / 2, length / 2])
|
|
||||||
|> close()
|
|
||||||
|> extrude(length = height)
|
|
||||||
counterBoreHoles = startSketchOn(body, face = END)
|
|
||||||
|> circle(
|
|
||||||
center = [
|
|
||||||
-(width / 2 - (padding / 2)),
|
|
||||||
-(length / 2 - (padding / 2))
|
|
||||||
],
|
|
||||||
radius = cbDia / 2,
|
|
||||||
)
|
|
||||||
|> patternLinear2d(instances = 2, distance = length - padding, axis = [0, 1])
|
|
||||||
|> patternLinear2d(instances = 2, distance = width - padding, axis = [1, 0])
|
|
||||||
|> extrude(%, length = -cbDepth)
|
|
||||||
|
|
||||||
boltHoles = startSketchOn(body, face = START)
|
|
||||||
|> circle(
|
|
||||||
center = [
|
|
||||||
-(width / 2 - (padding / 2)),
|
|
||||||
-(length / 2 - (padding / 2))
|
|
||||||
],
|
|
||||||
radius = holeDia / 2,
|
|
||||||
)
|
|
||||||
|> patternLinear2d(instances = 2, distance = length - padding, axis = [0, 1])
|
|
||||||
|> patternLinear2d(instances = 2, distance = width - padding, axis = [1, 0])
|
|
||||||
|> extrude(length = -height + cbDepth)
|
|
||||||
|
|
||||||
centerHole = startSketchOn(body, face = END)
|
|
||||||
|> circle(center = [0, 0], radius = bearingDia / 2)
|
|
||||||
|> extrude(length = -height)
|
|
||||||
101
public/kcl-samples/pillow-block-bearing/ball-bearing.kcl
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
// Pillow Block Bearing
|
||||||
|
// The ball bearing for the pillow block bearing assembly
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// Import Parameters
|
||||||
|
import * from "parameters.kcl"
|
||||||
|
|
||||||
|
// Create the sketch of one of the balls. The ball diameter is sized as a fraction of the difference between inner and outer radius of the bearing
|
||||||
|
ballsSketch = startSketchOn(offsetPlane(XY, offset = stockThickness / 2))
|
||||||
|
|> startProfile(at = [bearingBoreDiameter / 2 + 0.1, 0.001])
|
||||||
|
|> arc(angleEnd = 0, angleStart = 180, radius = sphereDia / 2)
|
||||||
|
|> close()
|
||||||
|
|
||||||
|
// Revolve the ball to make a sphere and pattern around the inside wall
|
||||||
|
balls = revolve(ballsSketch, axis = X)
|
||||||
|
|> patternCircular3d(
|
||||||
|
arcDegrees = 360,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
center = [0, 0, 0],
|
||||||
|
instances = 16,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Create the sketch for the chain around the balls
|
||||||
|
chainSketch = startSketchOn(offsetPlane(XY, offset = stockThickness / 2))
|
||||||
|
|> startProfile(at = [
|
||||||
|
bearingBoreDiameter / 2 + 0.1 + sphereDia / 2 - (chainWidth / 2),
|
||||||
|
0.125 * sin(60deg)
|
||||||
|
])
|
||||||
|
|> arc(angleEnd = 60, angleStart = 120, radius = sphereDia / 2)
|
||||||
|
|> line(end = [0, chainThickness])
|
||||||
|
|> line(end = [-chainWidth, 0])
|
||||||
|
|> close()
|
||||||
|
|
||||||
|
// Revolve the chain sketch
|
||||||
|
chainHead = revolve(chainSketch, axis = X)
|
||||||
|
|> patternCircular3d(
|
||||||
|
arcDegrees = 360,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
center = [0, 0, 0],
|
||||||
|
instances = 16,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Create the sketch for the links in between the chains
|
||||||
|
linkSketch = startSketchOn(XZ)
|
||||||
|
|> circle(
|
||||||
|
center = [
|
||||||
|
bearingBoreDiameter / 2 + 0.1 + sphereDia / 2,
|
||||||
|
stockThickness / 2
|
||||||
|
],
|
||||||
|
radius = linkDiameter / 2,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Create the walls of the bearing
|
||||||
|
bearingBody = startSketchOn(XZ)
|
||||||
|
bearingUpper = startProfile(
|
||||||
|
bearingBody,
|
||||||
|
at = [
|
||||||
|
bearingOuterDiameter / 2 - .07,
|
||||||
|
stockThickness
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|> angledLine(angle = -91, length = 0.05)
|
||||||
|
|> xLine(length = -(bearingOuterDiameter / 2 - (bearingBoreDiameter / 2)) + .145)
|
||||||
|
|> yLine(endAbsolute = 0.105)
|
||||||
|
|> xLine(length = -0.025)
|
||||||
|
|> angledLine(angle = 91, endAbsoluteY = profileStartY(%))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
|> revolve(angle = 360, axis = Y)
|
||||||
|
|> appearance(%, color = "#121212")
|
||||||
|
|
||||||
|
bearingLower = startProfile(bearingBody, at = [bearingBoreDiameter / 2, 0.025])
|
||||||
|
|> xLine(length = 0.05)
|
||||||
|
|> angledLine(angle = 75, length = 0.04, tag = $seg01)
|
||||||
|
|> xLine(length = 0.05)
|
||||||
|
|> angledLine(angle = -75, length = segLen(seg01))
|
||||||
|
|> xLine(endAbsolute = bearingOuterDiameter / 2)
|
||||||
|
|> yLine(length = stockThickness)
|
||||||
|
|> xLine(length = -0.07)
|
||||||
|
|> angledLine(angle = -91, endAbsoluteY = profileStartY(%) + .075)
|
||||||
|
|> xLine(endAbsolute = profileStartX(%) + .05)
|
||||||
|
|> angledLine(angle = 91, endAbsoluteY = stockThickness * 1.25)
|
||||||
|
|> xLine(endAbsolute = profileStartX(%))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
|> revolve(angle = 360, axis = Y)
|
||||||
|
|> appearance(%, color = "#f0f0f0")
|
||||||
|
|
||||||
|
// Revolve the link sketch
|
||||||
|
revolve(linkSketch, axis = Y, angle = 360 / 16)
|
||||||
|
|> patternCircular3d(
|
||||||
|
arcDegrees = 360,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
center = [0, 0, 0],
|
||||||
|
instances = 16,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
56
public/kcl-samples/pillow-block-bearing/block.kcl
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
// Pillow Block Bearing
|
||||||
|
// The machined block for the pillow block bearing assembly. The block is dimensioned using the bolt pattern spacing, and each bolt hole includes a counterbore
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// Import Parameters
|
||||||
|
import * from "parameters.kcl"
|
||||||
|
|
||||||
|
// Calculate the dimensions of the block using the specified bolt spacing. The size of the block can be defined by adding a multiple of the counterbore diameter to the bolt spacing
|
||||||
|
blockLength = boltSpacingX + counterboreDiameter + boltDiameter
|
||||||
|
blockWidth = boltSpacingY + counterboreDiameter + boltDiameter
|
||||||
|
|
||||||
|
// Draw the base plate
|
||||||
|
plateSketch = startSketchOn(XY)
|
||||||
|
|> startProfile(at = [-blockLength / 2, -blockWidth / 2])
|
||||||
|
|> angledLine(angle = 0, length = blockLength, tag = $rectangleSegmentA001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = blockWidth, tag = $rectangleSegmentB001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001)
|
||||||
|
|> close()
|
||||||
|
|> subtract2d(tool = circle(center = [0, 0], radius = bearingOuterDiameter / 2))
|
||||||
|
plateBody = extrude(plateSketch, length = stockThickness)
|
||||||
|
|> appearance(%, color = "#1e62eb")
|
||||||
|
|> fillet(
|
||||||
|
radius = boltDiameter * 1 / 3,
|
||||||
|
tags = [
|
||||||
|
getNextAdjacentEdge(rectangleSegmentB001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentA001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentC001),
|
||||||
|
getNextAdjacentEdge(rectangleSegmentD001)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
// Define hole positions
|
||||||
|
holePositions = [
|
||||||
|
[-boltSpacingX / 2, -boltSpacingY / 2],
|
||||||
|
[-boltSpacingX / 2, boltSpacingY / 2],
|
||||||
|
[boltSpacingX / 2, -boltSpacingY / 2],
|
||||||
|
[boltSpacingX / 2, boltSpacingY / 2]
|
||||||
|
]
|
||||||
|
|
||||||
|
// Function to create a counterbored hole
|
||||||
|
fn counterbore(@holePosition) {
|
||||||
|
cbBore = startSketchOn(plateBody, face = END)
|
||||||
|
|> circle(center = holePosition, radius = counterboreDiameter / 2)
|
||||||
|
|> extrude(length = -counterboreDepth)
|
||||||
|
cbBolt = startSketchOn(cbBore, face = START)
|
||||||
|
|> circle(center = holePosition, radius = boltDiameter / 2, tag = $hole01)
|
||||||
|
|> extrude(length = -stockThickness + counterboreDepth)
|
||||||
|
|
||||||
|
return { }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Place a counterbored hole at each bolt hole position
|
||||||
|
map(holePositions, f = counterbore)
|
||||||
14
public/kcl-samples/pillow-block-bearing/main.kcl
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// Pillow Block Bearing
|
||||||
|
// A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads.
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// Import parts and parameters
|
||||||
|
import * from "parameters.kcl"
|
||||||
|
import "ball-bearing.kcl" as ballBearing
|
||||||
|
import "block.kcl" as block
|
||||||
|
|
||||||
|
// Render each part
|
||||||
|
ballBearing
|
||||||
|
block
|
||||||
18
public/kcl-samples/pillow-block-bearing/parameters.kcl
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Global parameters for the pillow block bearing
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
// Export parameters
|
||||||
|
export boltSpacingX = 5
|
||||||
|
export boltSpacingY = 3
|
||||||
|
export boltDiameter = 3 / 8
|
||||||
|
export counterboreDiameter = 3 / 4
|
||||||
|
export counterboreDepth = 3 / 16
|
||||||
|
export stockThickness = .5
|
||||||
|
export bearingBoreDiameter = 1 + 3 / 4
|
||||||
|
export bearingOuterDiameter = bearingBoreDiameter * 1.5
|
||||||
|
export sphereDia = (bearingOuterDiameter - bearingBoreDiameter) / 4
|
||||||
|
export chainWidth = sphereDia / 2
|
||||||
|
export chainThickness = sphereDia / 8
|
||||||
|
export linkDiameter = sphereDia / 4
|
||||||
BIN
public/kcl-samples/screenshots/counterdrilled-weldment.png
Normal file
|
After Width: | Height: | Size: 94 KiB |
BIN
public/kcl-samples/screenshots/countersunk-plate.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
public/kcl-samples/screenshots/cpu-cooler.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
BIN
public/kcl-samples/screenshots/pillow-block-bearing.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 67 KiB |
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
source: kcl-lib/src/simulation_tests.rs
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
description: Artifact graph flowchart parametric-bearing-pillow-block.kcl
|
description: Artifact graph flowchart counterdrilled-weldment.kcl
|
||||||
extension: md
|
extension: md
|
||||||
snapshot_kind: binary
|
snapshot_kind: binary
|
||||||
---
|
---
|
||||||
@ -0,0 +1,565 @@
|
|||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph path15 [Path]
|
||||||
|
15["Path<br>[757, 811, 0]"]
|
||||||
|
30["Segment<br>[817, 889, 0]"]
|
||||||
|
31["Segment<br>[895, 998, 0]"]
|
||||||
|
32["Segment<br>[1004, 1121, 0]"]
|
||||||
|
33["Segment<br>[1127, 1212, 0]"]
|
||||||
|
34["Segment<br>[1218, 1225, 0]"]
|
||||||
|
64[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path16 [Path]
|
||||||
|
16["Path<br>[1249, 1304, 0]"]
|
||||||
|
35["Segment<br>[1249, 1304, 0]"]
|
||||||
|
73[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path17 [Path]
|
||||||
|
17["Path<br>[1995, 2059, 0]"]
|
||||||
|
37["Segment<br>[1995, 2059, 0]"]
|
||||||
|
61[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path18 [Path]
|
||||||
|
18["Path<br>[1995, 2059, 0]"]
|
||||||
|
38["Segment<br>[1995, 2059, 0]"]
|
||||||
|
62[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path19 [Path]
|
||||||
|
19["Path<br>[1995, 2059, 0]"]
|
||||||
|
36["Segment<br>[1995, 2059, 0]"]
|
||||||
|
67[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path20 [Path]
|
||||||
|
20["Path<br>[1995, 2059, 0]"]
|
||||||
|
39["Segment<br>[1995, 2059, 0]"]
|
||||||
|
72[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path21 [Path]
|
||||||
|
21["Path<br>[2159, 2230, 0]"]
|
||||||
|
43["Segment<br>[2159, 2230, 0]"]
|
||||||
|
60[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path22 [Path]
|
||||||
|
22["Path<br>[2159, 2230, 0]"]
|
||||||
|
42["Segment<br>[2159, 2230, 0]"]
|
||||||
|
63[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path23 [Path]
|
||||||
|
23["Path<br>[2159, 2230, 0]"]
|
||||||
|
41["Segment<br>[2159, 2230, 0]"]
|
||||||
|
65[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path24 [Path]
|
||||||
|
24["Path<br>[2159, 2230, 0]"]
|
||||||
|
40["Segment<br>[2159, 2230, 0]"]
|
||||||
|
68[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path25 [Path]
|
||||||
|
25["Path<br>[2643, 2684, 0]"]
|
||||||
|
44["Segment<br>[2643, 2684, 0]"]
|
||||||
|
70[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path26 [Path]
|
||||||
|
26["Path<br>[2840, 2911, 0]"]
|
||||||
|
45["Segment<br>[2840, 2911, 0]"]
|
||||||
|
71[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path27 [Path]
|
||||||
|
27["Path<br>[2935, 2990, 0]"]
|
||||||
|
46["Segment<br>[2935, 2990, 0]"]
|
||||||
|
69[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path28 [Path]
|
||||||
|
28["Path<br>[3369, 3470, 0]"]
|
||||||
|
47["Segment<br>[3478, 3575, 0]"]
|
||||||
|
49["Segment<br>[3583, 3603, 0]"]
|
||||||
|
52["Segment<br>[3611, 3717, 0]"]
|
||||||
|
54["Segment<br>[3725, 3746, 0]"]
|
||||||
|
56["Segment<br>[3754, 3810, 0]"]
|
||||||
|
57["Segment<br>[3818, 3825, 0]"]
|
||||||
|
59[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path29 [Path]
|
||||||
|
29["Path<br>[3369, 3470, 0]"]
|
||||||
|
48["Segment<br>[3478, 3575, 0]"]
|
||||||
|
50["Segment<br>[3583, 3603, 0]"]
|
||||||
|
51["Segment<br>[3611, 3717, 0]"]
|
||||||
|
53["Segment<br>[3725, 3746, 0]"]
|
||||||
|
55["Segment<br>[3754, 3810, 0]"]
|
||||||
|
58["Segment<br>[3818, 3825, 0]"]
|
||||||
|
66[Solid2d]
|
||||||
|
end
|
||||||
|
1["Plane<br>[734, 751, 0]"]
|
||||||
|
2["Plane<br>[2620, 2637, 0]"]
|
||||||
|
3["Plane<br>[2793, 2833, 0]"]
|
||||||
|
4["Plane<br>[3337, 3361, 0]"]
|
||||||
|
5["Plane<br>[3337, 3361, 0]"]
|
||||||
|
6["StartSketchOnPlane<br>[2779, 2834, 0]"]
|
||||||
|
7["StartSketchOnFace<br>[2115, 2151, 0]"]
|
||||||
|
8["StartSketchOnFace<br>[1951, 1987, 0]"]
|
||||||
|
9["StartSketchOnFace<br>[2115, 2151, 0]"]
|
||||||
|
10["StartSketchOnFace<br>[2115, 2151, 0]"]
|
||||||
|
11["StartSketchOnFace<br>[2115, 2151, 0]"]
|
||||||
|
12["StartSketchOnFace<br>[1951, 1987, 0]"]
|
||||||
|
13["StartSketchOnFace<br>[1951, 1987, 0]"]
|
||||||
|
14["StartSketchOnFace<br>[1951, 1987, 0]"]
|
||||||
|
74["Sweep Extrusion<br>[1318, 1363, 0]"]
|
||||||
|
75["Sweep Extrusion<br>[2067, 2103, 0]"]
|
||||||
|
76["Sweep Extrusion<br>[2067, 2103, 0]"]
|
||||||
|
77["Sweep Extrusion<br>[2067, 2103, 0]"]
|
||||||
|
78["Sweep Extrusion<br>[2067, 2103, 0]"]
|
||||||
|
79["Sweep Extrusion<br>[2238, 2291, 0]"]
|
||||||
|
80["Sweep Extrusion<br>[2238, 2291, 0]"]
|
||||||
|
81["Sweep Extrusion<br>[2238, 2291, 0]"]
|
||||||
|
82["Sweep Extrusion<br>[2238, 2291, 0]"]
|
||||||
|
83["Sweep Extrusion<br>[2690, 2711, 0]"]
|
||||||
|
84["Sweep Extrusion<br>[2997, 3025, 0]"]
|
||||||
|
85["Sweep Extrusion<br>[3833, 3882, 0]"]
|
||||||
|
86["Sweep Extrusion<br>[3833, 3882, 0]"]
|
||||||
|
87["CompositeSolid Subtract<br>[3031, 3058, 0]"]
|
||||||
|
88[Wall]
|
||||||
|
89[Wall]
|
||||||
|
90[Wall]
|
||||||
|
91[Wall]
|
||||||
|
92[Wall]
|
||||||
|
93[Wall]
|
||||||
|
94[Wall]
|
||||||
|
95[Wall]
|
||||||
|
96[Wall]
|
||||||
|
97[Wall]
|
||||||
|
98[Wall]
|
||||||
|
99[Wall]
|
||||||
|
100[Wall]
|
||||||
|
101[Wall]
|
||||||
|
102[Wall]
|
||||||
|
103[Wall]
|
||||||
|
104[Wall]
|
||||||
|
105[Wall]
|
||||||
|
106[Wall]
|
||||||
|
107[Wall]
|
||||||
|
108[Wall]
|
||||||
|
109[Wall]
|
||||||
|
110[Wall]
|
||||||
|
111[Wall]
|
||||||
|
112["Cap Start"]
|
||||||
|
113["Cap Start"]
|
||||||
|
114["Cap Start"]
|
||||||
|
115["Cap Start"]
|
||||||
|
116["Cap Start"]
|
||||||
|
117["Cap Start"]
|
||||||
|
118["Cap Start"]
|
||||||
|
119["Cap Start"]
|
||||||
|
120["Cap Start"]
|
||||||
|
121["Cap End"]
|
||||||
|
122["Cap End"]
|
||||||
|
123["Cap End"]
|
||||||
|
124["Cap End"]
|
||||||
|
125["Cap End"]
|
||||||
|
126["SweepEdge Opposite"]
|
||||||
|
127["SweepEdge Opposite"]
|
||||||
|
128["SweepEdge Opposite"]
|
||||||
|
129["SweepEdge Opposite"]
|
||||||
|
130["SweepEdge Opposite"]
|
||||||
|
131["SweepEdge Opposite"]
|
||||||
|
132["SweepEdge Opposite"]
|
||||||
|
133["SweepEdge Opposite"]
|
||||||
|
134["SweepEdge Opposite"]
|
||||||
|
135["SweepEdge Opposite"]
|
||||||
|
136["SweepEdge Opposite"]
|
||||||
|
137["SweepEdge Opposite"]
|
||||||
|
138["SweepEdge Opposite"]
|
||||||
|
139["SweepEdge Opposite"]
|
||||||
|
140["SweepEdge Opposite"]
|
||||||
|
141["SweepEdge Opposite"]
|
||||||
|
142["SweepEdge Opposite"]
|
||||||
|
143["SweepEdge Opposite"]
|
||||||
|
144["SweepEdge Opposite"]
|
||||||
|
145["SweepEdge Opposite"]
|
||||||
|
146["SweepEdge Opposite"]
|
||||||
|
147["SweepEdge Opposite"]
|
||||||
|
148["SweepEdge Opposite"]
|
||||||
|
149["SweepEdge Opposite"]
|
||||||
|
150["SweepEdge Adjacent"]
|
||||||
|
151["SweepEdge Adjacent"]
|
||||||
|
152["SweepEdge Adjacent"]
|
||||||
|
153["SweepEdge Adjacent"]
|
||||||
|
154["SweepEdge Adjacent"]
|
||||||
|
155["SweepEdge Adjacent"]
|
||||||
|
156["SweepEdge Adjacent"]
|
||||||
|
157["SweepEdge Adjacent"]
|
||||||
|
158["SweepEdge Adjacent"]
|
||||||
|
159["SweepEdge Adjacent"]
|
||||||
|
160["SweepEdge Adjacent"]
|
||||||
|
161["SweepEdge Adjacent"]
|
||||||
|
162["SweepEdge Adjacent"]
|
||||||
|
163["SweepEdge Adjacent"]
|
||||||
|
164["SweepEdge Adjacent"]
|
||||||
|
165["SweepEdge Adjacent"]
|
||||||
|
166["SweepEdge Adjacent"]
|
||||||
|
167["SweepEdge Adjacent"]
|
||||||
|
168["SweepEdge Adjacent"]
|
||||||
|
169["SweepEdge Adjacent"]
|
||||||
|
170["SweepEdge Adjacent"]
|
||||||
|
171["SweepEdge Adjacent"]
|
||||||
|
172["SweepEdge Adjacent"]
|
||||||
|
173["SweepEdge Adjacent"]
|
||||||
|
174["EdgeCut Chamfer<br>[1369, 1651, 0]"]
|
||||||
|
175["EdgeCut Chamfer<br>[1369, 1651, 0]"]
|
||||||
|
176["EdgeCut Chamfer<br>[1369, 1651, 0]"]
|
||||||
|
177["EdgeCut Chamfer<br>[1369, 1651, 0]"]
|
||||||
|
178["EdgeCut Chamfer<br>[2360, 2446, 0]"]
|
||||||
|
179["EdgeCut Chamfer<br>[2360, 2446, 0]"]
|
||||||
|
180["EdgeCut Chamfer<br>[2360, 2446, 0]"]
|
||||||
|
181["EdgeCut Chamfer<br>[2360, 2446, 0]"]
|
||||||
|
1 --- 15
|
||||||
|
1 --- 16
|
||||||
|
2 --- 25
|
||||||
|
3 <--x 6
|
||||||
|
3 --- 26
|
||||||
|
3 --- 27
|
||||||
|
4 --- 29
|
||||||
|
5 --- 28
|
||||||
|
113 x--> 7
|
||||||
|
123 x--> 8
|
||||||
|
120 x--> 9
|
||||||
|
116 x--> 10
|
||||||
|
119 x--> 11
|
||||||
|
123 x--> 12
|
||||||
|
123 x--> 13
|
||||||
|
123 x--> 14
|
||||||
|
15 --- 30
|
||||||
|
15 --- 31
|
||||||
|
15 --- 32
|
||||||
|
15 --- 33
|
||||||
|
15 --- 34
|
||||||
|
15 --- 64
|
||||||
|
15 ---- 74
|
||||||
|
16 --- 35
|
||||||
|
16 --- 73
|
||||||
|
17 --- 37
|
||||||
|
17 --- 61
|
||||||
|
17 ---- 78
|
||||||
|
123 --- 17
|
||||||
|
18 --- 38
|
||||||
|
18 --- 62
|
||||||
|
18 ---- 76
|
||||||
|
123 --- 18
|
||||||
|
19 --- 36
|
||||||
|
19 --- 67
|
||||||
|
19 ---- 77
|
||||||
|
123 --- 19
|
||||||
|
20 --- 39
|
||||||
|
20 --- 72
|
||||||
|
20 ---- 75
|
||||||
|
123 --- 20
|
||||||
|
21 --- 43
|
||||||
|
21 --- 60
|
||||||
|
21 ---- 79
|
||||||
|
119 --- 21
|
||||||
|
22 --- 42
|
||||||
|
22 --- 63
|
||||||
|
22 ---- 82
|
||||||
|
120 --- 22
|
||||||
|
23 --- 41
|
||||||
|
23 --- 65
|
||||||
|
23 ---- 80
|
||||||
|
113 --- 23
|
||||||
|
24 --- 40
|
||||||
|
24 --- 68
|
||||||
|
24 ---- 81
|
||||||
|
116 --- 24
|
||||||
|
25 --- 44
|
||||||
|
25 --- 70
|
||||||
|
25 ---- 83
|
||||||
|
25 --- 87
|
||||||
|
26 --- 45
|
||||||
|
26 --- 71
|
||||||
|
26 ---- 84
|
||||||
|
26 --- 87
|
||||||
|
27 --- 46
|
||||||
|
27 --- 69
|
||||||
|
28 --- 47
|
||||||
|
28 --- 49
|
||||||
|
28 --- 52
|
||||||
|
28 --- 54
|
||||||
|
28 --- 56
|
||||||
|
28 --- 57
|
||||||
|
28 --- 59
|
||||||
|
28 ---- 85
|
||||||
|
29 --- 48
|
||||||
|
29 --- 50
|
||||||
|
29 --- 51
|
||||||
|
29 --- 53
|
||||||
|
29 --- 55
|
||||||
|
29 --- 58
|
||||||
|
29 --- 66
|
||||||
|
29 ---- 86
|
||||||
|
30 --- 110
|
||||||
|
30 x--> 115
|
||||||
|
30 --- 148
|
||||||
|
30 --- 170
|
||||||
|
31 --- 108
|
||||||
|
31 x--> 115
|
||||||
|
31 --- 145
|
||||||
|
31 --- 171
|
||||||
|
32 --- 107
|
||||||
|
32 x--> 115
|
||||||
|
32 --- 147
|
||||||
|
32 --- 169
|
||||||
|
33 --- 109
|
||||||
|
33 x--> 115
|
||||||
|
33 --- 146
|
||||||
|
33 --- 172
|
||||||
|
36 --- 99
|
||||||
|
36 x--> 123
|
||||||
|
36 --- 137
|
||||||
|
36 --- 161
|
||||||
|
37 --- 106
|
||||||
|
37 x--> 123
|
||||||
|
37 --- 144
|
||||||
|
37 --- 168
|
||||||
|
38 --- 98
|
||||||
|
38 x--> 123
|
||||||
|
38 --- 136
|
||||||
|
38 --- 160
|
||||||
|
39 --- 97
|
||||||
|
39 x--> 123
|
||||||
|
39 --- 135
|
||||||
|
39 --- 159
|
||||||
|
40 --- 105
|
||||||
|
40 x--> 116
|
||||||
|
40 --- 143
|
||||||
|
40 --- 167
|
||||||
|
40 --- 180
|
||||||
|
41 --- 89
|
||||||
|
41 x--> 113
|
||||||
|
41 --- 127
|
||||||
|
41 --- 151
|
||||||
|
41 --- 181
|
||||||
|
42 --- 111
|
||||||
|
42 x--> 120
|
||||||
|
42 --- 149
|
||||||
|
42 --- 173
|
||||||
|
42 --- 178
|
||||||
|
43 --- 88
|
||||||
|
43 x--> 119
|
||||||
|
43 --- 126
|
||||||
|
43 --- 150
|
||||||
|
43 --- 179
|
||||||
|
44 --- 90
|
||||||
|
44 x--> 122
|
||||||
|
44 --- 128
|
||||||
|
44 --- 152
|
||||||
|
45 --- 91
|
||||||
|
45 x--> 112
|
||||||
|
45 --- 129
|
||||||
|
45 --- 153
|
||||||
|
47 --- 92
|
||||||
|
47 x--> 118
|
||||||
|
47 --- 131
|
||||||
|
47 --- 158
|
||||||
|
48 --- 104
|
||||||
|
48 x--> 117
|
||||||
|
48 --- 139
|
||||||
|
48 --- 164
|
||||||
|
49 --- 93
|
||||||
|
49 x--> 118
|
||||||
|
49 --- 133
|
||||||
|
49 --- 157
|
||||||
|
50 --- 103
|
||||||
|
50 x--> 117
|
||||||
|
50 --- 141
|
||||||
|
50 --- 162
|
||||||
|
51 --- 100
|
||||||
|
51 x--> 117
|
||||||
|
51 --- 142
|
||||||
|
51 --- 163
|
||||||
|
52 --- 94
|
||||||
|
52 x--> 118
|
||||||
|
52 --- 134
|
||||||
|
52 --- 156
|
||||||
|
53 --- 102
|
||||||
|
53 x--> 117
|
||||||
|
53 --- 138
|
||||||
|
53 --- 166
|
||||||
|
54 --- 95
|
||||||
|
54 x--> 118
|
||||||
|
54 --- 132
|
||||||
|
54 --- 154
|
||||||
|
55 --- 101
|
||||||
|
55 x--> 117
|
||||||
|
55 --- 140
|
||||||
|
55 --- 165
|
||||||
|
56 --- 96
|
||||||
|
56 x--> 118
|
||||||
|
56 --- 130
|
||||||
|
56 --- 155
|
||||||
|
74 --- 107
|
||||||
|
74 --- 108
|
||||||
|
74 --- 109
|
||||||
|
74 --- 110
|
||||||
|
74 --- 115
|
||||||
|
74 --- 123
|
||||||
|
74 --- 145
|
||||||
|
74 --- 146
|
||||||
|
74 --- 147
|
||||||
|
74 --- 148
|
||||||
|
74 --- 169
|
||||||
|
74 --- 170
|
||||||
|
74 --- 171
|
||||||
|
74 --- 172
|
||||||
|
75 --- 97
|
||||||
|
75 --- 120
|
||||||
|
75 --- 135
|
||||||
|
75 --- 159
|
||||||
|
76 --- 98
|
||||||
|
76 --- 119
|
||||||
|
76 --- 136
|
||||||
|
76 --- 160
|
||||||
|
77 --- 99
|
||||||
|
77 --- 116
|
||||||
|
77 --- 137
|
||||||
|
77 --- 161
|
||||||
|
78 --- 106
|
||||||
|
78 --- 113
|
||||||
|
78 --- 144
|
||||||
|
78 --- 168
|
||||||
|
79 --- 88
|
||||||
|
79 --- 126
|
||||||
|
79 --- 150
|
||||||
|
80 --- 89
|
||||||
|
80 --- 127
|
||||||
|
80 --- 151
|
||||||
|
81 --- 105
|
||||||
|
81 --- 143
|
||||||
|
81 --- 167
|
||||||
|
82 --- 111
|
||||||
|
82 --- 149
|
||||||
|
82 --- 173
|
||||||
|
83 --- 90
|
||||||
|
83 --- 114
|
||||||
|
83 --- 122
|
||||||
|
83 --- 128
|
||||||
|
83 --- 152
|
||||||
|
84 --- 91
|
||||||
|
84 --- 112
|
||||||
|
84 --- 121
|
||||||
|
84 --- 129
|
||||||
|
84 --- 153
|
||||||
|
85 --- 92
|
||||||
|
85 --- 93
|
||||||
|
85 --- 94
|
||||||
|
85 --- 95
|
||||||
|
85 --- 96
|
||||||
|
85 --- 118
|
||||||
|
85 --- 125
|
||||||
|
85 --- 130
|
||||||
|
85 --- 131
|
||||||
|
85 --- 132
|
||||||
|
85 --- 133
|
||||||
|
85 --- 134
|
||||||
|
85 --- 154
|
||||||
|
85 --- 155
|
||||||
|
85 --- 156
|
||||||
|
85 --- 157
|
||||||
|
85 --- 158
|
||||||
|
86 --- 100
|
||||||
|
86 --- 101
|
||||||
|
86 --- 102
|
||||||
|
86 --- 103
|
||||||
|
86 --- 104
|
||||||
|
86 --- 117
|
||||||
|
86 --- 124
|
||||||
|
86 --- 138
|
||||||
|
86 --- 139
|
||||||
|
86 --- 140
|
||||||
|
86 --- 141
|
||||||
|
86 --- 142
|
||||||
|
86 --- 162
|
||||||
|
86 --- 163
|
||||||
|
86 --- 164
|
||||||
|
86 --- 165
|
||||||
|
86 --- 166
|
||||||
|
126 <--x 88
|
||||||
|
150 <--x 88
|
||||||
|
127 <--x 89
|
||||||
|
151 <--x 89
|
||||||
|
128 <--x 90
|
||||||
|
152 <--x 90
|
||||||
|
129 <--x 91
|
||||||
|
153 <--x 91
|
||||||
|
131 <--x 92
|
||||||
|
155 <--x 92
|
||||||
|
158 <--x 92
|
||||||
|
133 <--x 93
|
||||||
|
157 <--x 93
|
||||||
|
158 <--x 93
|
||||||
|
134 <--x 94
|
||||||
|
156 <--x 94
|
||||||
|
157 <--x 94
|
||||||
|
132 <--x 95
|
||||||
|
154 <--x 95
|
||||||
|
156 <--x 95
|
||||||
|
130 <--x 96
|
||||||
|
154 <--x 96
|
||||||
|
155 <--x 96
|
||||||
|
135 <--x 97
|
||||||
|
159 <--x 97
|
||||||
|
136 <--x 98
|
||||||
|
160 <--x 98
|
||||||
|
137 <--x 99
|
||||||
|
161 <--x 99
|
||||||
|
142 <--x 100
|
||||||
|
162 <--x 100
|
||||||
|
163 <--x 100
|
||||||
|
140 <--x 101
|
||||||
|
165 <--x 101
|
||||||
|
166 <--x 101
|
||||||
|
138 <--x 102
|
||||||
|
163 <--x 102
|
||||||
|
166 <--x 102
|
||||||
|
141 <--x 103
|
||||||
|
162 <--x 103
|
||||||
|
164 <--x 103
|
||||||
|
139 <--x 104
|
||||||
|
164 <--x 104
|
||||||
|
165 <--x 104
|
||||||
|
143 <--x 105
|
||||||
|
167 <--x 105
|
||||||
|
144 <--x 106
|
||||||
|
168 <--x 106
|
||||||
|
147 <--x 107
|
||||||
|
145 <--x 108
|
||||||
|
146 <--x 109
|
||||||
|
148 <--x 110
|
||||||
|
149 <--x 111
|
||||||
|
173 <--x 111
|
||||||
|
144 <--x 113
|
||||||
|
128 <--x 114
|
||||||
|
126 <--x 115
|
||||||
|
127 <--x 115
|
||||||
|
143 <--x 115
|
||||||
|
149 <--x 115
|
||||||
|
137 <--x 116
|
||||||
|
136 <--x 119
|
||||||
|
135 <--x 120
|
||||||
|
129 <--x 121
|
||||||
|
145 <--x 123
|
||||||
|
146 <--x 123
|
||||||
|
147 <--x 123
|
||||||
|
148 <--x 123
|
||||||
|
138 <--x 124
|
||||||
|
139 <--x 124
|
||||||
|
140 <--x 124
|
||||||
|
141 <--x 124
|
||||||
|
142 <--x 124
|
||||||
|
130 <--x 125
|
||||||
|
131 <--x 125
|
||||||
|
132 <--x 125
|
||||||
|
133 <--x 125
|
||||||
|
134 <--x 125
|
||||||
|
169 <--x 175
|
||||||
|
170 <--x 174
|
||||||
|
171 <--x 177
|
||||||
|
172 <--x 176
|
||||||
|
```
|
||||||
5454
rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ast.snap
Normal file
1841
rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ops.snap
Normal file
|
After Width: | Height: | Size: 94 KiB |
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Artifact graph flowchart countersunk-plate.kcl
|
||||||
|
extension: md
|
||||||
|
snapshot_kind: binary
|
||||||
|
---
|
||||||
@ -0,0 +1,208 @@
|
|||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph path4 [Path]
|
||||||
|
4["Path<br>[812, 876, 0]"]
|
||||||
|
8["Segment<br>[882, 939, 0]"]
|
||||||
|
9["Segment<br>[945, 1004, 0]"]
|
||||||
|
10["Segment<br>[1010, 1067, 0]"]
|
||||||
|
11["Segment<br>[1073, 1126, 0]"]
|
||||||
|
12["Segment<br>[1132, 1190, 0]"]
|
||||||
|
13["Segment<br>[1196, 1255, 0]"]
|
||||||
|
14["Segment<br>[1261, 1317, 0]"]
|
||||||
|
15["Segment<br>[1323, 1388, 0]"]
|
||||||
|
16["Segment<br>[1394, 1401, 0]"]
|
||||||
|
23[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path5 [Path]
|
||||||
|
5["Path<br>[1425, 1487, 0]"]
|
||||||
|
17["Segment<br>[1425, 1487, 0]"]
|
||||||
|
20[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path6 [Path]
|
||||||
|
6["Path<br>[1650, 1726, 0]"]
|
||||||
|
18["Segment<br>[1650, 1726, 0]"]
|
||||||
|
21[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path7 [Path]
|
||||||
|
7["Path<br>[1650, 1726, 0]"]
|
||||||
|
19["Segment<br>[1650, 1726, 0]"]
|
||||||
|
22[Solid2d]
|
||||||
|
end
|
||||||
|
1["Plane<br>[700, 717, 0]"]
|
||||||
|
2["StartSketchOnFace<br>[1606, 1642, 0]"]
|
||||||
|
3["StartSketchOnFace<br>[1606, 1642, 0]"]
|
||||||
|
24["Sweep Extrusion<br>[1494, 1529, 0]"]
|
||||||
|
25["Sweep Extrusion<br>[1734, 1767, 0]"]
|
||||||
|
26["Sweep Extrusion<br>[1734, 1767, 0]"]
|
||||||
|
27[Wall]
|
||||||
|
28[Wall]
|
||||||
|
29[Wall]
|
||||||
|
30[Wall]
|
||||||
|
31[Wall]
|
||||||
|
32[Wall]
|
||||||
|
33[Wall]
|
||||||
|
34[Wall]
|
||||||
|
35[Wall]
|
||||||
|
36[Wall]
|
||||||
|
37["Cap Start"]
|
||||||
|
38["Cap End"]
|
||||||
|
39["SweepEdge Opposite"]
|
||||||
|
40["SweepEdge Opposite"]
|
||||||
|
41["SweepEdge Opposite"]
|
||||||
|
42["SweepEdge Opposite"]
|
||||||
|
43["SweepEdge Opposite"]
|
||||||
|
44["SweepEdge Opposite"]
|
||||||
|
45["SweepEdge Opposite"]
|
||||||
|
46["SweepEdge Opposite"]
|
||||||
|
47["SweepEdge Opposite"]
|
||||||
|
48["SweepEdge Opposite"]
|
||||||
|
49["SweepEdge Adjacent"]
|
||||||
|
50["SweepEdge Adjacent"]
|
||||||
|
51["SweepEdge Adjacent"]
|
||||||
|
52["SweepEdge Adjacent"]
|
||||||
|
53["SweepEdge Adjacent"]
|
||||||
|
54["SweepEdge Adjacent"]
|
||||||
|
55["SweepEdge Adjacent"]
|
||||||
|
56["SweepEdge Adjacent"]
|
||||||
|
57["SweepEdge Adjacent"]
|
||||||
|
58["SweepEdge Adjacent"]
|
||||||
|
59["EdgeCut Chamfer<br>[1830, 1877, 0]"]
|
||||||
|
60["EdgeCut Chamfer<br>[1830, 1877, 0]"]
|
||||||
|
1 --- 4
|
||||||
|
1 --- 5
|
||||||
|
38 x--> 2
|
||||||
|
38 x--> 3
|
||||||
|
4 --- 8
|
||||||
|
4 --- 9
|
||||||
|
4 --- 10
|
||||||
|
4 --- 11
|
||||||
|
4 --- 12
|
||||||
|
4 --- 13
|
||||||
|
4 --- 14
|
||||||
|
4 --- 15
|
||||||
|
4 --- 16
|
||||||
|
4 --- 23
|
||||||
|
4 ---- 24
|
||||||
|
5 --- 17
|
||||||
|
5 --- 20
|
||||||
|
6 --- 18
|
||||||
|
6 --- 21
|
||||||
|
6 ---- 25
|
||||||
|
38 --- 6
|
||||||
|
7 --- 19
|
||||||
|
7 --- 22
|
||||||
|
7 ---- 26
|
||||||
|
38 --- 7
|
||||||
|
8 --- 33
|
||||||
|
8 x--> 37
|
||||||
|
8 --- 41
|
||||||
|
8 --- 53
|
||||||
|
9 --- 30
|
||||||
|
9 x--> 37
|
||||||
|
9 --- 43
|
||||||
|
9 --- 54
|
||||||
|
10 --- 29
|
||||||
|
10 x--> 37
|
||||||
|
10 --- 46
|
||||||
|
10 --- 49
|
||||||
|
11 --- 31
|
||||||
|
11 x--> 37
|
||||||
|
11 --- 40
|
||||||
|
11 --- 55
|
||||||
|
12 --- 28
|
||||||
|
12 x--> 37
|
||||||
|
12 --- 45
|
||||||
|
12 --- 50
|
||||||
|
13 --- 27
|
||||||
|
13 x--> 37
|
||||||
|
13 --- 42
|
||||||
|
13 --- 52
|
||||||
|
14 --- 32
|
||||||
|
14 x--> 37
|
||||||
|
14 --- 39
|
||||||
|
14 --- 56
|
||||||
|
15 --- 34
|
||||||
|
15 x--> 37
|
||||||
|
15 --- 44
|
||||||
|
15 --- 51
|
||||||
|
18 --- 35
|
||||||
|
18 x--> 38
|
||||||
|
18 --- 47
|
||||||
|
18 --- 57
|
||||||
|
18 --- 59
|
||||||
|
19 --- 36
|
||||||
|
19 x--> 38
|
||||||
|
19 --- 48
|
||||||
|
19 --- 58
|
||||||
|
19 --- 60
|
||||||
|
24 --- 27
|
||||||
|
24 --- 28
|
||||||
|
24 --- 29
|
||||||
|
24 --- 30
|
||||||
|
24 --- 31
|
||||||
|
24 --- 32
|
||||||
|
24 --- 33
|
||||||
|
24 --- 34
|
||||||
|
24 --- 37
|
||||||
|
24 --- 38
|
||||||
|
24 --- 39
|
||||||
|
24 --- 40
|
||||||
|
24 --- 41
|
||||||
|
24 --- 42
|
||||||
|
24 --- 43
|
||||||
|
24 --- 44
|
||||||
|
24 --- 45
|
||||||
|
24 --- 46
|
||||||
|
24 --- 49
|
||||||
|
24 --- 50
|
||||||
|
24 --- 51
|
||||||
|
24 --- 52
|
||||||
|
24 --- 53
|
||||||
|
24 --- 54
|
||||||
|
24 --- 55
|
||||||
|
24 --- 56
|
||||||
|
25 --- 35
|
||||||
|
25 --- 47
|
||||||
|
25 --- 57
|
||||||
|
26 --- 36
|
||||||
|
26 --- 48
|
||||||
|
26 --- 58
|
||||||
|
42 <--x 27
|
||||||
|
50 <--x 27
|
||||||
|
52 <--x 27
|
||||||
|
45 <--x 28
|
||||||
|
50 <--x 28
|
||||||
|
55 <--x 28
|
||||||
|
46 <--x 29
|
||||||
|
49 <--x 29
|
||||||
|
54 <--x 29
|
||||||
|
43 <--x 30
|
||||||
|
53 <--x 30
|
||||||
|
54 <--x 30
|
||||||
|
40 <--x 31
|
||||||
|
49 <--x 31
|
||||||
|
55 <--x 31
|
||||||
|
39 <--x 32
|
||||||
|
52 <--x 32
|
||||||
|
56 <--x 32
|
||||||
|
41 <--x 33
|
||||||
|
51 <--x 33
|
||||||
|
53 <--x 33
|
||||||
|
44 <--x 34
|
||||||
|
51 <--x 34
|
||||||
|
56 <--x 34
|
||||||
|
47 <--x 35
|
||||||
|
57 <--x 35
|
||||||
|
48 <--x 36
|
||||||
|
58 <--x 36
|
||||||
|
47 <--x 37
|
||||||
|
48 <--x 37
|
||||||
|
39 <--x 38
|
||||||
|
40 <--x 38
|
||||||
|
41 <--x 38
|
||||||
|
42 <--x 38
|
||||||
|
43 <--x 38
|
||||||
|
44 <--x 38
|
||||||
|
45 <--x 38
|
||||||
|
46 <--x 38
|
||||||
|
```
|
||||||
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
source: kcl-lib/src/simulation_tests.rs
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
description: Operations executed parametric-bearing-pillow-block.kcl
|
description: Operations executed countersunk-plate.kcl
|
||||||
---
|
---
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -16,12 +16,77 @@ description: Operations executed parametric-bearing-pillow-block.kcl
|
|||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "FunctionCall",
|
||||||
|
"name": "polar",
|
||||||
|
"functionSourceRange": [],
|
||||||
|
"unlabeledArg": null,
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.1971635237196154,
|
||||||
|
"ty": {
|
||||||
|
"type": "Known",
|
||||||
|
"type": "Angle",
|
||||||
|
"type": "Radians"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"length": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.6625,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"tool": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "subtract2d",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"length": {
|
"length": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Number",
|
"type": "Number",
|
||||||
"value": 1.0,
|
"value": 0.375,
|
||||||
"ty": {
|
"ty": {
|
||||||
"type": "Default",
|
"type": "Default",
|
||||||
"len": {
|
"len": {
|
||||||
@ -71,139 +136,6 @@ description: Operations executed parametric-bearing-pillow-block.kcl
|
|||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"labeledArgs": {
|
|
||||||
"length": {
|
|
||||||
"value": {
|
|
||||||
"type": "Number",
|
|
||||||
"value": -0.25,
|
|
||||||
"ty": {
|
|
||||||
"type": "Default",
|
|
||||||
"len": {
|
|
||||||
"type": "Inches"
|
|
||||||
},
|
|
||||||
"angle": {
|
|
||||||
"type": "Degrees"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sourceRange": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"name": "extrude",
|
|
||||||
"sourceRange": [],
|
|
||||||
"type": "StdLibCall",
|
|
||||||
"unlabeledArg": {
|
|
||||||
"value": {
|
|
||||||
"type": "Array",
|
|
||||||
"value": [
|
|
||||||
{
|
|
||||||
"type": "Sketch",
|
|
||||||
"value": {
|
|
||||||
"artifactId": "[uuid]"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Sketch",
|
|
||||||
"value": {
|
|
||||||
"artifactId": "[uuid]"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Sketch",
|
|
||||||
"value": {
|
|
||||||
"artifactId": "[uuid]"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Sketch",
|
|
||||||
"value": {
|
|
||||||
"artifactId": "[uuid]"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sourceRange": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"labeledArgs": {
|
|
||||||
"face": {
|
|
||||||
"value": {
|
|
||||||
"type": "String",
|
|
||||||
"value": "start"
|
|
||||||
},
|
|
||||||
"sourceRange": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"name": "startSketchOn",
|
|
||||||
"sourceRange": [],
|
|
||||||
"type": "StdLibCall",
|
|
||||||
"unlabeledArg": {
|
|
||||||
"value": {
|
|
||||||
"type": "Solid",
|
|
||||||
"value": {
|
|
||||||
"artifactId": "[uuid]"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sourceRange": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"labeledArgs": {
|
|
||||||
"length": {
|
|
||||||
"value": {
|
|
||||||
"type": "Number",
|
|
||||||
"value": -0.75,
|
|
||||||
"ty": {
|
|
||||||
"type": "Default",
|
|
||||||
"len": {
|
|
||||||
"type": "Inches"
|
|
||||||
},
|
|
||||||
"angle": {
|
|
||||||
"type": "Degrees"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sourceRange": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"name": "extrude",
|
|
||||||
"sourceRange": [],
|
|
||||||
"type": "StdLibCall",
|
|
||||||
"unlabeledArg": {
|
|
||||||
"value": {
|
|
||||||
"type": "Array",
|
|
||||||
"value": [
|
|
||||||
{
|
|
||||||
"type": "Sketch",
|
|
||||||
"value": {
|
|
||||||
"artifactId": "[uuid]"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Sketch",
|
|
||||||
"value": {
|
|
||||||
"artifactId": "[uuid]"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Sketch",
|
|
||||||
"value": {
|
|
||||||
"artifactId": "[uuid]"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Sketch",
|
|
||||||
"value": {
|
|
||||||
"artifactId": "[uuid]"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sourceRange": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"labeledArgs": {
|
"labeledArgs": {
|
||||||
"face": {
|
"face": {
|
||||||
@ -232,7 +164,7 @@ description: Operations executed parametric-bearing-pillow-block.kcl
|
|||||||
"length": {
|
"length": {
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Number",
|
"type": "Number",
|
||||||
"value": -1.0,
|
"value": -0.375,
|
||||||
"ty": {
|
"ty": {
|
||||||
"type": "Default",
|
"type": "Default",
|
||||||
"len": {
|
"len": {
|
||||||
@ -258,5 +190,188 @@ description: Operations executed parametric-bearing-pillow-block.kcl
|
|||||||
},
|
},
|
||||||
"sourceRange": []
|
"sourceRange": []
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"length": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": -0.375,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "extrude",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "chamfer",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"length": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.25,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "TagIdentifier",
|
||||||
|
"value": "hole01",
|
||||||
|
"artifact_id": "[uuid]"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "chamfer",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"length": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.25,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "TagIdentifier",
|
||||||
|
"value": "hole01",
|
||||||
|
"artifact_id": "[uuid]"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "FunctionCall",
|
||||||
|
"name": "countersink",
|
||||||
|
"functionSourceRange": [],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": -2.5,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "FunctionCall",
|
||||||
|
"name": "countersink",
|
||||||
|
"functionSourceRange": [],
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 2.5,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -0,0 +1,446 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Variables in memory after executing countersunk-plate.kcl
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"boltDiameter": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.25,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"boltSpacing": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 5.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"centerHoleDiameter": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.75,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"countersink": {
|
||||||
|
"type": "Function",
|
||||||
|
"value": null
|
||||||
|
},
|
||||||
|
"d": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 2.5,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plateBody": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudeArc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudeArc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudeArc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudeArc"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sketch": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.6068,
|
||||||
|
1.5478
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
2.7738,
|
||||||
|
0.6983
|
||||||
|
],
|
||||||
|
"type": "ToPoint",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": false,
|
||||||
|
"center": [
|
||||||
|
2.5,
|
||||||
|
-0.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
2.7738,
|
||||||
|
0.6983
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
2.7737,
|
||||||
|
-0.6983
|
||||||
|
],
|
||||||
|
"type": "TangentialArc",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
2.7737,
|
||||||
|
-0.6983
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.6068,
|
||||||
|
-1.5478
|
||||||
|
],
|
||||||
|
"type": "ToPoint",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": false,
|
||||||
|
"center": [
|
||||||
|
-0.0,
|
||||||
|
-0.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
0.6068,
|
||||||
|
-1.5478
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-0.6068,
|
||||||
|
-1.5478
|
||||||
|
],
|
||||||
|
"type": "TangentialArc",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
-0.6068,
|
||||||
|
-1.5478
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-2.7738,
|
||||||
|
-0.6983
|
||||||
|
],
|
||||||
|
"type": "ToPoint",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": false,
|
||||||
|
"center": [
|
||||||
|
-2.5,
|
||||||
|
-0.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
-2.7738,
|
||||||
|
-0.6983
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-2.7738,
|
||||||
|
0.6983
|
||||||
|
],
|
||||||
|
"type": "TangentialArc",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
-2.7738,
|
||||||
|
0.6983
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-0.6068,
|
||||||
|
1.5478
|
||||||
|
],
|
||||||
|
"type": "ToPoint",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": false,
|
||||||
|
"center": [
|
||||||
|
-0.0,
|
||||||
|
-0.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
-0.6068,
|
||||||
|
1.5478
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.6068,
|
||||||
|
1.5478
|
||||||
|
],
|
||||||
|
"type": "TangentialArcTo",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.6068,
|
||||||
|
1.5478
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.6068,
|
||||||
|
1.5478
|
||||||
|
],
|
||||||
|
"type": "ToPoint",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "plane",
|
||||||
|
"value": "XY",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
0.6068,
|
||||||
|
1.5478
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0.6068,
|
||||||
|
1.5478
|
||||||
|
],
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"originalId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"height": 0.375,
|
||||||
|
"startCapId": "[uuid]",
|
||||||
|
"endCapId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"sectional": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plateThickness": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.375,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"r1": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.6625,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"r2": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.75,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tangentAngle": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.3736,
|
||||||
|
"ty": {
|
||||||
|
"type": "Known",
|
||||||
|
"type": "Angle",
|
||||||
|
"type": "Radians"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tangentLength": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 2.3275,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 57 KiB |
18029
rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_commands.snap
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Artifact graph flowchart cpu-cooler.kcl
|
||||||
|
extension: md
|
||||||
|
snapshot_kind: binary
|
||||||
|
---
|
||||||
1355
rust/kcl-lib/tests/kcl_samples/cpu-cooler/ast.snap
Normal file
955
rust/kcl-lib/tests/kcl_samples/cpu-cooler/ops.snap
Normal file
@ -0,0 +1,955 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Operations executed cpu-cooler.kcl
|
||||||
|
---
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "ModuleInstance",
|
||||||
|
"name": "parameters.kcl",
|
||||||
|
"moduleId": 0
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "ModuleInstance",
|
||||||
|
"name": "fan-housing.kcl",
|
||||||
|
"moduleId": 0
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "ModuleInstance",
|
||||||
|
"name": "motor.kcl",
|
||||||
|
"moduleId": 0
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "ModuleInstance",
|
||||||
|
"name": "fan.kcl",
|
||||||
|
"moduleId": 0
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "ModuleInstance",
|
||||||
|
"name": "heat-sink.kcl",
|
||||||
|
"moduleId": 0
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "ModuleInstance",
|
||||||
|
"name": "mounting-wire.kcl",
|
||||||
|
"moduleId": 0
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "ModuleInstance",
|
||||||
|
"name": "removable-sticker.kcl",
|
||||||
|
"moduleId": 0
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": -1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"distance": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 80.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"instances": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 2.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "patternLinear3d",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": -1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"distance": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 80.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"instances": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 2.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "patternLinear3d",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": -1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"distance": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 80.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"instances": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 2.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "patternLinear3d",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "FunctionCall",
|
||||||
|
"name": "translatePart",
|
||||||
|
"functionSourceRange": [],
|
||||||
|
"unlabeledArg": null,
|
||||||
|
"labeledArgs": {
|
||||||
|
"part": {
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "FunctionCall",
|
||||||
|
"name": "translatePart",
|
||||||
|
"functionSourceRange": [],
|
||||||
|
"unlabeledArg": null,
|
||||||
|
"labeledArgs": {
|
||||||
|
"part": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "FunctionCall",
|
||||||
|
"name": "translatePart",
|
||||||
|
"functionSourceRange": [],
|
||||||
|
"unlabeledArg": null,
|
||||||
|
"labeledArgs": {
|
||||||
|
"part": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"arcDegrees": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 360.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"center": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 100.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"instances": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 2.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"rotateDuplicates": {
|
||||||
|
"value": {
|
||||||
|
"type": "Bool",
|
||||||
|
"value": true
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "patternCircular3d",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"arcDegrees": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 360.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"center": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"instances": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 2.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"rotateDuplicates": {
|
||||||
|
"value": {
|
||||||
|
"type": "Bool",
|
||||||
|
"value": true
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "patternCircular3d",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
}
|
||||||
|
]
|
||||||
125
rust/kcl-lib/tests/kcl_samples/cpu-cooler/program_memory.snap
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Variables in memory after executing cpu-cooler.kcl
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"bendRadius": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 15.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fan": {
|
||||||
|
"type": "Module",
|
||||||
|
"value": 4
|
||||||
|
},
|
||||||
|
"fanHeight": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 25.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fanHousing": {
|
||||||
|
"type": "Module",
|
||||||
|
"value": 2
|
||||||
|
},
|
||||||
|
"fanSize": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 120.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"heatSink": {
|
||||||
|
"type": "Module",
|
||||||
|
"value": 5
|
||||||
|
},
|
||||||
|
"heatSinkDepth": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 55.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"motor": {
|
||||||
|
"type": "Module",
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
"mountingHoleSize": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 4.5,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mountingHoleSpacing": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 105.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mountingWire": {
|
||||||
|
"type": "Module",
|
||||||
|
"value": 6
|
||||||
|
},
|
||||||
|
"removableSticker": {
|
||||||
|
"type": "Module",
|
||||||
|
"value": 7
|
||||||
|
},
|
||||||
|
"sheetThickness": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 2.125,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"translatePart": {
|
||||||
|
"type": "Function",
|
||||||
|
"value": null
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
rust/kcl-lib/tests/kcl_samples/cpu-cooler/rendered_model.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
@ -1,162 +0,0 @@
|
|||||||
```mermaid
|
|
||||||
flowchart LR
|
|
||||||
subgraph path5 [Path]
|
|
||||||
5["Path<br>[791, 835, 0]"]
|
|
||||||
9["Segment<br>[841, 885, 0]"]
|
|
||||||
10["Segment<br>[891, 934, 0]"]
|
|
||||||
11["Segment<br>[940, 984, 0]"]
|
|
||||||
12["Segment<br>[990, 997, 0]"]
|
|
||||||
19[Solid2d]
|
|
||||||
end
|
|
||||||
subgraph path6 [Path]
|
|
||||||
6["Path<br>[1084, 1231, 0]"]
|
|
||||||
13["Segment<br>[1084, 1231, 0]"]
|
|
||||||
18[Solid2d]
|
|
||||||
end
|
|
||||||
subgraph path7 [Path]
|
|
||||||
7["Path<br>[1478, 1627, 0]"]
|
|
||||||
14["Segment<br>[1478, 1627, 0]"]
|
|
||||||
17[Solid2d]
|
|
||||||
end
|
|
||||||
subgraph path8 [Path]
|
|
||||||
8["Path<br>[1879, 1927, 0]"]
|
|
||||||
15["Segment<br>[1879, 1927, 0]"]
|
|
||||||
16[Solid2d]
|
|
||||||
end
|
|
||||||
1["Plane<br>[768, 785, 0]"]
|
|
||||||
2["StartSketchOnFace<br>[1842, 1873, 0]"]
|
|
||||||
3["StartSketchOnFace<br>[1439, 1472, 0]"]
|
|
||||||
4["StartSketchOnFace<br>[1047, 1078, 0]"]
|
|
||||||
20["Sweep Extrusion<br>[1003, 1027, 0]"]
|
|
||||||
21["Sweep Extrusion<br>[1396, 1425, 0]"]
|
|
||||||
22["Sweep Extrusion<br>[1396, 1425, 0]"]
|
|
||||||
23["Sweep Extrusion<br>[1396, 1425, 0]"]
|
|
||||||
24["Sweep Extrusion<br>[1396, 1425, 0]"]
|
|
||||||
25["Sweep Extrusion<br>[1792, 1827, 0]"]
|
|
||||||
26["Sweep Extrusion<br>[1792, 1827, 0]"]
|
|
||||||
27["Sweep Extrusion<br>[1792, 1827, 0]"]
|
|
||||||
28["Sweep Extrusion<br>[1792, 1827, 0]"]
|
|
||||||
29["Sweep Extrusion<br>[1933, 1958, 0]"]
|
|
||||||
30[Wall]
|
|
||||||
31[Wall]
|
|
||||||
32[Wall]
|
|
||||||
33[Wall]
|
|
||||||
34[Wall]
|
|
||||||
35[Wall]
|
|
||||||
36[Wall]
|
|
||||||
37["Cap Start"]
|
|
||||||
38["Cap Start"]
|
|
||||||
39["Cap End"]
|
|
||||||
40["SweepEdge Opposite"]
|
|
||||||
41["SweepEdge Opposite"]
|
|
||||||
42["SweepEdge Opposite"]
|
|
||||||
43["SweepEdge Opposite"]
|
|
||||||
44["SweepEdge Opposite"]
|
|
||||||
45["SweepEdge Opposite"]
|
|
||||||
46["SweepEdge Opposite"]
|
|
||||||
47["SweepEdge Adjacent"]
|
|
||||||
48["SweepEdge Adjacent"]
|
|
||||||
49["SweepEdge Adjacent"]
|
|
||||||
50["SweepEdge Adjacent"]
|
|
||||||
51["SweepEdge Adjacent"]
|
|
||||||
52["SweepEdge Adjacent"]
|
|
||||||
53["SweepEdge Adjacent"]
|
|
||||||
1 --- 5
|
|
||||||
39 x--> 2
|
|
||||||
38 x--> 3
|
|
||||||
39 x--> 4
|
|
||||||
5 --- 9
|
|
||||||
5 --- 10
|
|
||||||
5 --- 11
|
|
||||||
5 --- 12
|
|
||||||
5 --- 19
|
|
||||||
5 ---- 20
|
|
||||||
6 --- 13
|
|
||||||
6 --- 18
|
|
||||||
6 ---- 23
|
|
||||||
39 --- 6
|
|
||||||
7 --- 14
|
|
||||||
7 --- 17
|
|
||||||
7 ---- 26
|
|
||||||
38 --- 7
|
|
||||||
8 --- 15
|
|
||||||
8 --- 16
|
|
||||||
8 ---- 29
|
|
||||||
39 --- 8
|
|
||||||
9 --- 34
|
|
||||||
9 x--> 38
|
|
||||||
9 --- 42
|
|
||||||
9 --- 48
|
|
||||||
10 --- 32
|
|
||||||
10 x--> 38
|
|
||||||
10 --- 41
|
|
||||||
10 --- 51
|
|
||||||
11 --- 31
|
|
||||||
11 x--> 38
|
|
||||||
11 --- 44
|
|
||||||
11 --- 50
|
|
||||||
12 --- 33
|
|
||||||
12 x--> 38
|
|
||||||
12 --- 43
|
|
||||||
12 --- 49
|
|
||||||
13 --- 35
|
|
||||||
13 x--> 39
|
|
||||||
13 --- 45
|
|
||||||
13 --- 52
|
|
||||||
14 --- 30
|
|
||||||
14 x--> 38
|
|
||||||
14 --- 40
|
|
||||||
14 --- 47
|
|
||||||
15 --- 36
|
|
||||||
15 x--> 39
|
|
||||||
15 --- 46
|
|
||||||
15 --- 53
|
|
||||||
20 --- 31
|
|
||||||
20 --- 32
|
|
||||||
20 --- 33
|
|
||||||
20 --- 34
|
|
||||||
20 --- 38
|
|
||||||
20 --- 39
|
|
||||||
20 --- 41
|
|
||||||
20 --- 42
|
|
||||||
20 --- 43
|
|
||||||
20 --- 44
|
|
||||||
20 --- 48
|
|
||||||
20 --- 49
|
|
||||||
20 --- 50
|
|
||||||
20 --- 51
|
|
||||||
23 --- 35
|
|
||||||
23 --- 37
|
|
||||||
23 --- 45
|
|
||||||
23 --- 52
|
|
||||||
26 --- 30
|
|
||||||
26 --- 40
|
|
||||||
26 --- 47
|
|
||||||
29 --- 36
|
|
||||||
29 --- 46
|
|
||||||
29 --- 53
|
|
||||||
40 <--x 30
|
|
||||||
47 <--x 30
|
|
||||||
44 <--x 31
|
|
||||||
50 <--x 31
|
|
||||||
51 <--x 31
|
|
||||||
41 <--x 32
|
|
||||||
48 <--x 32
|
|
||||||
51 <--x 32
|
|
||||||
43 <--x 33
|
|
||||||
49 <--x 33
|
|
||||||
50 <--x 33
|
|
||||||
42 <--x 34
|
|
||||||
48 <--x 34
|
|
||||||
49 <--x 34
|
|
||||||
45 <--x 35
|
|
||||||
52 <--x 35
|
|
||||||
46 <--x 36
|
|
||||||
53 <--x 36
|
|
||||||
45 <--x 37
|
|
||||||
46 <--x 38
|
|
||||||
41 <--x 39
|
|
||||||
42 <--x 39
|
|
||||||
43 <--x 39
|
|
||||||
44 <--x 39
|
|
||||||
```
|
|
||||||
|
Before Width: | Height: | Size: 69 KiB |
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Artifact graph flowchart pillow-block-bearing.kcl
|
||||||
|
extension: md
|
||||||
|
snapshot_kind: binary
|
||||||
|
---
|
||||||
@ -0,0 +1,613 @@
|
|||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph path6 [Path]
|
||||||
|
6["Path<br>[410, 467, 2]"]
|
||||||
|
21["Segment<br>[473, 532, 2]"]
|
||||||
|
22["Segment<br>[538, 545, 2]"]
|
||||||
|
64[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path7 [Path]
|
||||||
|
7["Path<br>[953, 1079, 2]"]
|
||||||
|
23["Segment<br>[1085, 1145, 2]"]
|
||||||
|
24["Segment<br>[1151, 1182, 2]"]
|
||||||
|
25["Segment<br>[1188, 1216, 2]"]
|
||||||
|
26["Segment<br>[1222, 1229, 2]"]
|
||||||
|
69[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path8 [Path]
|
||||||
|
8["Path<br>[1559, 1719, 2]"]
|
||||||
|
27["Segment<br>[1559, 1719, 2]"]
|
||||||
|
72[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path9 [Path]
|
||||||
|
9["Path<br>[1803, 1932, 2]"]
|
||||||
|
28["Segment<br>[1938, 1976, 2]"]
|
||||||
|
29["Segment<br>[1982, 2060, 2]"]
|
||||||
|
30["Segment<br>[2066, 2092, 2]"]
|
||||||
|
31["Segment<br>[2098, 2120, 2]"]
|
||||||
|
32["Segment<br>[2126, 2181, 2]"]
|
||||||
|
33["Segment<br>[2187, 2243, 2]"]
|
||||||
|
34["Segment<br>[2249, 2256, 2]"]
|
||||||
|
71[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path10 [Path]
|
||||||
|
10["Path<br>[2347, 2411, 2]"]
|
||||||
|
35["Segment<br>[2417, 2437, 2]"]
|
||||||
|
36["Segment<br>[2443, 2494, 2]"]
|
||||||
|
37["Segment<br>[2500, 2520, 2]"]
|
||||||
|
38["Segment<br>[2526, 2573, 2]"]
|
||||||
|
39["Segment<br>[2579, 2624, 2]"]
|
||||||
|
40["Segment<br>[2630, 2660, 2]"]
|
||||||
|
41["Segment<br>[2666, 2687, 2]"]
|
||||||
|
42["Segment<br>[2693, 2756, 2]"]
|
||||||
|
43["Segment<br>[2762, 2805, 2]"]
|
||||||
|
44["Segment<br>[2811, 2871, 2]"]
|
||||||
|
45["Segment<br>[2877, 2914, 2]"]
|
||||||
|
46["Segment<br>[2920, 2976, 2]"]
|
||||||
|
47["Segment<br>[2982, 2989, 2]"]
|
||||||
|
70[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path11 [Path]
|
||||||
|
11["Path<br>[655, 709, 3]"]
|
||||||
|
48["Segment<br>[715, 787, 3]"]
|
||||||
|
49["Segment<br>[793, 896, 3]"]
|
||||||
|
50["Segment<br>[902, 1019, 3]"]
|
||||||
|
51["Segment<br>[1025, 1110, 3]"]
|
||||||
|
52["Segment<br>[1116, 1123, 3]"]
|
||||||
|
67[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path12 [Path]
|
||||||
|
12["Path<br>[1147, 1205, 3]"]
|
||||||
|
53["Segment<br>[1147, 1205, 3]"]
|
||||||
|
74[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path13 [Path]
|
||||||
|
13["Path<br>[1933, 1996, 3]"]
|
||||||
|
54["Segment<br>[1933, 1996, 3]"]
|
||||||
|
62[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path14 [Path]
|
||||||
|
14["Path<br>[1933, 1996, 3]"]
|
||||||
|
57["Segment<br>[1933, 1996, 3]"]
|
||||||
|
65[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path15 [Path]
|
||||||
|
15["Path<br>[1933, 1996, 3]"]
|
||||||
|
55["Segment<br>[1933, 1996, 3]"]
|
||||||
|
68[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path16 [Path]
|
||||||
|
16["Path<br>[1933, 1996, 3]"]
|
||||||
|
56["Segment<br>[1933, 1996, 3]"]
|
||||||
|
75[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path17 [Path]
|
||||||
|
17["Path<br>[2094, 2165, 3]"]
|
||||||
|
60["Segment<br>[2094, 2165, 3]"]
|
||||||
|
63[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path18 [Path]
|
||||||
|
18["Path<br>[2094, 2165, 3]"]
|
||||||
|
58["Segment<br>[2094, 2165, 3]"]
|
||||||
|
66[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path19 [Path]
|
||||||
|
19["Path<br>[2094, 2165, 3]"]
|
||||||
|
59["Segment<br>[2094, 2165, 3]"]
|
||||||
|
73[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path20 [Path]
|
||||||
|
20["Path<br>[2094, 2165, 3]"]
|
||||||
|
61["Segment<br>[2094, 2165, 3]"]
|
||||||
|
76[Solid2d]
|
||||||
|
end
|
||||||
|
1["Plane<br>[359, 403, 2]"]
|
||||||
|
2["Plane<br>[902, 946, 2]"]
|
||||||
|
3["Plane<br>[1536, 1553, 2]"]
|
||||||
|
4["Plane<br>[1770, 1787, 2]"]
|
||||||
|
5["Plane<br>[632, 649, 3]"]
|
||||||
|
77["Sweep Revolve<br>[627, 657, 2]"]
|
||||||
|
78["Sweep Revolve<br>[1271, 1301, 2]"]
|
||||||
|
79["Sweep Revolve<br>[2262, 2292, 2]"]
|
||||||
|
80["Sweep Revolve<br>[2995, 3025, 2]"]
|
||||||
|
81["Sweep Revolve<br>[3092, 3139, 2]"]
|
||||||
|
82["Sweep Extrusion<br>[1219, 1264, 3]"]
|
||||||
|
83["Sweep Extrusion<br>[2004, 2039, 3]"]
|
||||||
|
84["Sweep Extrusion<br>[2004, 2039, 3]"]
|
||||||
|
85["Sweep Extrusion<br>[2004, 2039, 3]"]
|
||||||
|
86["Sweep Extrusion<br>[2004, 2039, 3]"]
|
||||||
|
87["Sweep Extrusion<br>[2173, 2225, 3]"]
|
||||||
|
88["Sweep Extrusion<br>[2173, 2225, 3]"]
|
||||||
|
89["Sweep Extrusion<br>[2173, 2225, 3]"]
|
||||||
|
90["Sweep Extrusion<br>[2173, 2225, 3]"]
|
||||||
|
91[Wall]
|
||||||
|
92[Wall]
|
||||||
|
93[Wall]
|
||||||
|
94[Wall]
|
||||||
|
95[Wall]
|
||||||
|
96[Wall]
|
||||||
|
97[Wall]
|
||||||
|
98[Wall]
|
||||||
|
99[Wall]
|
||||||
|
100[Wall]
|
||||||
|
101[Wall]
|
||||||
|
102[Wall]
|
||||||
|
103[Wall]
|
||||||
|
104[Wall]
|
||||||
|
105[Wall]
|
||||||
|
106[Wall]
|
||||||
|
107[Wall]
|
||||||
|
108[Wall]
|
||||||
|
109[Wall]
|
||||||
|
110[Wall]
|
||||||
|
111[Wall]
|
||||||
|
112[Wall]
|
||||||
|
113[Wall]
|
||||||
|
114[Wall]
|
||||||
|
115[Wall]
|
||||||
|
116[Wall]
|
||||||
|
117[Wall]
|
||||||
|
118[Wall]
|
||||||
|
119[Wall]
|
||||||
|
120[Wall]
|
||||||
|
121[Wall]
|
||||||
|
122[Wall]
|
||||||
|
123[Wall]
|
||||||
|
124[Wall]
|
||||||
|
125[Wall]
|
||||||
|
126[Wall]
|
||||||
|
127[Wall]
|
||||||
|
128["Cap Start"]
|
||||||
|
129["Cap Start"]
|
||||||
|
130["Cap Start"]
|
||||||
|
131["Cap Start"]
|
||||||
|
132["Cap Start"]
|
||||||
|
133["Cap Start"]
|
||||||
|
134["Cap End"]
|
||||||
|
135["Cap End"]
|
||||||
|
136["SweepEdge Opposite"]
|
||||||
|
137["SweepEdge Opposite"]
|
||||||
|
138["SweepEdge Opposite"]
|
||||||
|
139["SweepEdge Opposite"]
|
||||||
|
140["SweepEdge Opposite"]
|
||||||
|
141["SweepEdge Opposite"]
|
||||||
|
142["SweepEdge Opposite"]
|
||||||
|
143["SweepEdge Opposite"]
|
||||||
|
144["SweepEdge Opposite"]
|
||||||
|
145["SweepEdge Opposite"]
|
||||||
|
146["SweepEdge Opposite"]
|
||||||
|
147["SweepEdge Opposite"]
|
||||||
|
148["SweepEdge Opposite"]
|
||||||
|
149["SweepEdge Adjacent"]
|
||||||
|
150["SweepEdge Adjacent"]
|
||||||
|
151["SweepEdge Adjacent"]
|
||||||
|
152["SweepEdge Adjacent"]
|
||||||
|
153["SweepEdge Adjacent"]
|
||||||
|
154["SweepEdge Adjacent"]
|
||||||
|
155["SweepEdge Adjacent"]
|
||||||
|
156["SweepEdge Adjacent"]
|
||||||
|
157["SweepEdge Adjacent"]
|
||||||
|
158["SweepEdge Adjacent"]
|
||||||
|
159["SweepEdge Adjacent"]
|
||||||
|
160["SweepEdge Adjacent"]
|
||||||
|
161["SweepEdge Adjacent"]
|
||||||
|
162["SweepEdge Adjacent"]
|
||||||
|
163["SweepEdge Adjacent"]
|
||||||
|
164["SweepEdge Adjacent"]
|
||||||
|
165["SweepEdge Adjacent"]
|
||||||
|
166["SweepEdge Adjacent"]
|
||||||
|
167["SweepEdge Adjacent"]
|
||||||
|
168["SweepEdge Adjacent"]
|
||||||
|
169["SweepEdge Adjacent"]
|
||||||
|
170["SweepEdge Adjacent"]
|
||||||
|
171["SweepEdge Adjacent"]
|
||||||
|
172["SweepEdge Adjacent"]
|
||||||
|
173["SweepEdge Adjacent"]
|
||||||
|
174["SweepEdge Adjacent"]
|
||||||
|
175["SweepEdge Adjacent"]
|
||||||
|
176["SweepEdge Adjacent"]
|
||||||
|
177["SweepEdge Adjacent"]
|
||||||
|
178["SweepEdge Adjacent"]
|
||||||
|
179["SweepEdge Adjacent"]
|
||||||
|
180["SweepEdge Adjacent"]
|
||||||
|
181["SweepEdge Adjacent"]
|
||||||
|
182["SweepEdge Adjacent"]
|
||||||
|
183["SweepEdge Adjacent"]
|
||||||
|
184["SweepEdge Adjacent"]
|
||||||
|
185["SweepEdge Adjacent"]
|
||||||
|
186["EdgeCut Fillet<br>[1308, 1593, 3]"]
|
||||||
|
187["EdgeCut Fillet<br>[1308, 1593, 3]"]
|
||||||
|
188["EdgeCut Fillet<br>[1308, 1593, 3]"]
|
||||||
|
189["EdgeCut Fillet<br>[1308, 1593, 3]"]
|
||||||
|
1 --- 6
|
||||||
|
2 --- 7
|
||||||
|
3 --- 8
|
||||||
|
4 --- 9
|
||||||
|
4 --- 10
|
||||||
|
5 --- 11
|
||||||
|
5 --- 12
|
||||||
|
6 --- 21
|
||||||
|
6 --- 22
|
||||||
|
6 --- 64
|
||||||
|
6 ---- 77
|
||||||
|
7 --- 23
|
||||||
|
7 --- 24
|
||||||
|
7 --- 25
|
||||||
|
7 --- 26
|
||||||
|
7 --- 69
|
||||||
|
7 ---- 78
|
||||||
|
8 --- 27
|
||||||
|
8 --- 72
|
||||||
|
8 ---- 81
|
||||||
|
9 --- 28
|
||||||
|
9 --- 29
|
||||||
|
9 --- 30
|
||||||
|
9 --- 31
|
||||||
|
9 --- 32
|
||||||
|
9 --- 33
|
||||||
|
9 --- 34
|
||||||
|
9 --- 71
|
||||||
|
9 ---- 79
|
||||||
|
10 --- 35
|
||||||
|
10 --- 36
|
||||||
|
10 --- 37
|
||||||
|
10 --- 38
|
||||||
|
10 --- 39
|
||||||
|
10 --- 40
|
||||||
|
10 --- 41
|
||||||
|
10 --- 42
|
||||||
|
10 --- 43
|
||||||
|
10 --- 44
|
||||||
|
10 --- 45
|
||||||
|
10 --- 46
|
||||||
|
10 --- 47
|
||||||
|
10 --- 70
|
||||||
|
10 ---- 80
|
||||||
|
11 --- 48
|
||||||
|
11 --- 49
|
||||||
|
11 --- 50
|
||||||
|
11 --- 51
|
||||||
|
11 --- 52
|
||||||
|
11 --- 67
|
||||||
|
11 ---- 82
|
||||||
|
12 --- 53
|
||||||
|
12 --- 74
|
||||||
|
13 --- 54
|
||||||
|
13 --- 62
|
||||||
|
13 ---- 86
|
||||||
|
134 --- 13
|
||||||
|
14 --- 57
|
||||||
|
14 --- 65
|
||||||
|
14 ---- 83
|
||||||
|
134 --- 14
|
||||||
|
15 --- 55
|
||||||
|
15 --- 68
|
||||||
|
15 ---- 85
|
||||||
|
134 --- 15
|
||||||
|
16 --- 56
|
||||||
|
16 --- 75
|
||||||
|
16 ---- 84
|
||||||
|
134 --- 16
|
||||||
|
17 --- 60
|
||||||
|
17 --- 63
|
||||||
|
17 ---- 87
|
||||||
|
132 --- 17
|
||||||
|
18 --- 58
|
||||||
|
18 --- 66
|
||||||
|
18 ---- 90
|
||||||
|
129 --- 18
|
||||||
|
19 --- 59
|
||||||
|
19 --- 73
|
||||||
|
19 ---- 89
|
||||||
|
130 --- 19
|
||||||
|
20 --- 61
|
||||||
|
20 --- 76
|
||||||
|
20 ---- 88
|
||||||
|
131 --- 20
|
||||||
|
77 <--x 21
|
||||||
|
21 --- 92
|
||||||
|
21 --- 150
|
||||||
|
77 <--x 22
|
||||||
|
22 --- 93
|
||||||
|
22 --- 151
|
||||||
|
78 <--x 23
|
||||||
|
23 --- 125
|
||||||
|
23 --- 182
|
||||||
|
78 <--x 24
|
||||||
|
24 --- 122
|
||||||
|
24 --- 180
|
||||||
|
78 <--x 25
|
||||||
|
25 --- 123
|
||||||
|
25 --- 181
|
||||||
|
78 <--x 26
|
||||||
|
26 --- 124
|
||||||
|
26 --- 183
|
||||||
|
27 --- 94
|
||||||
|
27 x--> 135
|
||||||
|
27 --- 137
|
||||||
|
27 --- 152
|
||||||
|
79 <--x 28
|
||||||
|
28 --- 120
|
||||||
|
28 --- 174
|
||||||
|
79 <--x 29
|
||||||
|
29 --- 115
|
||||||
|
29 --- 177
|
||||||
|
79 <--x 30
|
||||||
|
30 --- 119
|
||||||
|
30 --- 173
|
||||||
|
79 <--x 31
|
||||||
|
31 --- 117
|
||||||
|
31 --- 178
|
||||||
|
79 <--x 32
|
||||||
|
32 --- 116
|
||||||
|
32 --- 175
|
||||||
|
79 <--x 33
|
||||||
|
33 --- 118
|
||||||
|
33 --- 176
|
||||||
|
80 <--x 35
|
||||||
|
35 --- 106
|
||||||
|
35 --- 165
|
||||||
|
80 <--x 36
|
||||||
|
36 --- 96
|
||||||
|
36 --- 156
|
||||||
|
80 <--x 37
|
||||||
|
37 --- 98
|
||||||
|
37 --- 164
|
||||||
|
80 <--x 38
|
||||||
|
38 --- 101
|
||||||
|
38 --- 159
|
||||||
|
80 <--x 39
|
||||||
|
39 --- 100
|
||||||
|
39 --- 162
|
||||||
|
80 <--x 40
|
||||||
|
40 --- 105
|
||||||
|
40 --- 160
|
||||||
|
80 <--x 41
|
||||||
|
41 --- 104
|
||||||
|
41 --- 158
|
||||||
|
80 <--x 42
|
||||||
|
42 --- 107
|
||||||
|
42 --- 154
|
||||||
|
80 <--x 43
|
||||||
|
43 --- 97
|
||||||
|
43 --- 155
|
||||||
|
80 <--x 44
|
||||||
|
44 --- 102
|
||||||
|
44 --- 157
|
||||||
|
80 <--x 45
|
||||||
|
45 --- 103
|
||||||
|
45 --- 163
|
||||||
|
80 <--x 46
|
||||||
|
46 --- 99
|
||||||
|
46 --- 161
|
||||||
|
48 --- 112
|
||||||
|
48 x--> 128
|
||||||
|
48 --- 143
|
||||||
|
48 --- 172
|
||||||
|
49 --- 113
|
||||||
|
49 x--> 128
|
||||||
|
49 --- 145
|
||||||
|
49 --- 169
|
||||||
|
50 --- 114
|
||||||
|
50 x--> 128
|
||||||
|
50 --- 142
|
||||||
|
50 --- 171
|
||||||
|
51 --- 111
|
||||||
|
51 x--> 128
|
||||||
|
51 --- 144
|
||||||
|
51 --- 170
|
||||||
|
54 --- 126
|
||||||
|
54 x--> 134
|
||||||
|
54 --- 147
|
||||||
|
54 --- 184
|
||||||
|
55 --- 121
|
||||||
|
55 x--> 134
|
||||||
|
55 --- 146
|
||||||
|
55 --- 179
|
||||||
|
56 --- 110
|
||||||
|
56 x--> 134
|
||||||
|
56 --- 141
|
||||||
|
56 --- 168
|
||||||
|
57 --- 108
|
||||||
|
57 x--> 134
|
||||||
|
57 --- 139
|
||||||
|
57 --- 166
|
||||||
|
58 --- 127
|
||||||
|
58 x--> 129
|
||||||
|
58 --- 148
|
||||||
|
58 --- 185
|
||||||
|
59 --- 109
|
||||||
|
59 x--> 130
|
||||||
|
59 --- 140
|
||||||
|
59 --- 167
|
||||||
|
60 --- 91
|
||||||
|
60 x--> 132
|
||||||
|
60 --- 136
|
||||||
|
60 --- 149
|
||||||
|
61 --- 95
|
||||||
|
61 x--> 131
|
||||||
|
61 --- 138
|
||||||
|
61 --- 153
|
||||||
|
77 --- 92
|
||||||
|
77 --- 93
|
||||||
|
77 --- 150
|
||||||
|
77 --- 151
|
||||||
|
78 --- 122
|
||||||
|
78 --- 123
|
||||||
|
78 --- 124
|
||||||
|
78 --- 125
|
||||||
|
78 --- 180
|
||||||
|
78 --- 181
|
||||||
|
78 --- 182
|
||||||
|
78 --- 183
|
||||||
|
79 --- 115
|
||||||
|
79 --- 116
|
||||||
|
79 --- 117
|
||||||
|
79 --- 118
|
||||||
|
79 --- 119
|
||||||
|
79 --- 120
|
||||||
|
79 --- 173
|
||||||
|
79 --- 174
|
||||||
|
79 --- 175
|
||||||
|
79 --- 176
|
||||||
|
79 --- 177
|
||||||
|
79 --- 178
|
||||||
|
80 --- 96
|
||||||
|
80 --- 97
|
||||||
|
80 --- 98
|
||||||
|
80 --- 99
|
||||||
|
80 --- 100
|
||||||
|
80 --- 101
|
||||||
|
80 --- 102
|
||||||
|
80 --- 103
|
||||||
|
80 --- 104
|
||||||
|
80 --- 105
|
||||||
|
80 --- 106
|
||||||
|
80 --- 107
|
||||||
|
80 --- 154
|
||||||
|
80 --- 155
|
||||||
|
80 --- 156
|
||||||
|
80 --- 157
|
||||||
|
80 --- 158
|
||||||
|
80 --- 159
|
||||||
|
80 --- 160
|
||||||
|
80 --- 161
|
||||||
|
80 --- 162
|
||||||
|
80 --- 163
|
||||||
|
80 --- 164
|
||||||
|
80 --- 165
|
||||||
|
81 --- 94
|
||||||
|
81 --- 133
|
||||||
|
81 --- 135
|
||||||
|
81 --- 137
|
||||||
|
81 --- 152
|
||||||
|
82 --- 111
|
||||||
|
82 --- 112
|
||||||
|
82 --- 113
|
||||||
|
82 --- 114
|
||||||
|
82 --- 128
|
||||||
|
82 --- 134
|
||||||
|
82 --- 142
|
||||||
|
82 --- 143
|
||||||
|
82 --- 144
|
||||||
|
82 --- 145
|
||||||
|
82 --- 169
|
||||||
|
82 --- 170
|
||||||
|
82 --- 171
|
||||||
|
82 --- 172
|
||||||
|
83 --- 108
|
||||||
|
83 --- 131
|
||||||
|
83 --- 139
|
||||||
|
83 --- 166
|
||||||
|
84 --- 110
|
||||||
|
84 --- 132
|
||||||
|
84 --- 141
|
||||||
|
84 --- 168
|
||||||
|
85 --- 121
|
||||||
|
85 --- 130
|
||||||
|
85 --- 146
|
||||||
|
85 --- 179
|
||||||
|
86 --- 126
|
||||||
|
86 --- 129
|
||||||
|
86 --- 147
|
||||||
|
86 --- 184
|
||||||
|
87 --- 91
|
||||||
|
87 --- 136
|
||||||
|
87 --- 149
|
||||||
|
88 --- 95
|
||||||
|
88 --- 138
|
||||||
|
88 --- 153
|
||||||
|
89 --- 109
|
||||||
|
89 --- 140
|
||||||
|
89 --- 167
|
||||||
|
90 --- 127
|
||||||
|
90 --- 148
|
||||||
|
90 --- 185
|
||||||
|
136 <--x 91
|
||||||
|
149 <--x 91
|
||||||
|
150 <--x 92
|
||||||
|
151 <--x 92
|
||||||
|
150 <--x 93
|
||||||
|
151 <--x 93
|
||||||
|
137 <--x 94
|
||||||
|
152 <--x 94
|
||||||
|
138 <--x 95
|
||||||
|
153 <--x 95
|
||||||
|
156 <--x 96
|
||||||
|
165 <--x 96
|
||||||
|
154 <--x 97
|
||||||
|
155 <--x 97
|
||||||
|
156 <--x 98
|
||||||
|
164 <--x 98
|
||||||
|
161 <--x 99
|
||||||
|
163 <--x 99
|
||||||
|
159 <--x 100
|
||||||
|
162 <--x 100
|
||||||
|
159 <--x 101
|
||||||
|
164 <--x 101
|
||||||
|
155 <--x 102
|
||||||
|
157 <--x 102
|
||||||
|
157 <--x 103
|
||||||
|
163 <--x 103
|
||||||
|
158 <--x 104
|
||||||
|
160 <--x 104
|
||||||
|
160 <--x 105
|
||||||
|
162 <--x 105
|
||||||
|
161 <--x 106
|
||||||
|
165 <--x 106
|
||||||
|
154 <--x 107
|
||||||
|
158 <--x 107
|
||||||
|
139 <--x 108
|
||||||
|
166 <--x 108
|
||||||
|
140 <--x 109
|
||||||
|
167 <--x 109
|
||||||
|
141 <--x 110
|
||||||
|
168 <--x 110
|
||||||
|
144 <--x 111
|
||||||
|
143 <--x 112
|
||||||
|
145 <--x 113
|
||||||
|
142 <--x 114
|
||||||
|
174 <--x 115
|
||||||
|
177 <--x 115
|
||||||
|
175 <--x 116
|
||||||
|
178 <--x 116
|
||||||
|
173 <--x 117
|
||||||
|
178 <--x 117
|
||||||
|
175 <--x 118
|
||||||
|
176 <--x 118
|
||||||
|
173 <--x 119
|
||||||
|
177 <--x 119
|
||||||
|
174 <--x 120
|
||||||
|
176 <--x 120
|
||||||
|
146 <--x 121
|
||||||
|
179 <--x 121
|
||||||
|
180 <--x 122
|
||||||
|
182 <--x 122
|
||||||
|
180 <--x 123
|
||||||
|
181 <--x 123
|
||||||
|
181 <--x 124
|
||||||
|
183 <--x 124
|
||||||
|
182 <--x 125
|
||||||
|
183 <--x 125
|
||||||
|
147 <--x 126
|
||||||
|
184 <--x 126
|
||||||
|
148 <--x 127
|
||||||
|
185 <--x 127
|
||||||
|
136 <--x 128
|
||||||
|
138 <--x 128
|
||||||
|
140 <--x 128
|
||||||
|
148 <--x 128
|
||||||
|
147 <--x 129
|
||||||
|
146 <--x 130
|
||||||
|
139 <--x 131
|
||||||
|
141 <--x 132
|
||||||
|
137 <--x 133
|
||||||
|
142 <--x 134
|
||||||
|
143 <--x 134
|
||||||
|
144 <--x 134
|
||||||
|
145 <--x 134
|
||||||
|
169 <--x 188
|
||||||
|
170 <--x 186
|
||||||
|
171 <--x 187
|
||||||
|
172 <--x 189
|
||||||
|
```
|
||||||
193
rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ast.snap
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Result of parsing pillow-block-bearing.kcl
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"Ok": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"path": {
|
||||||
|
"type": "Kcl",
|
||||||
|
"filename": "parameters.kcl"
|
||||||
|
},
|
||||||
|
"preComments": [
|
||||||
|
"// Import parts and parameters"
|
||||||
|
],
|
||||||
|
"selector": {
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"start": 0,
|
||||||
|
"type": "Glob"
|
||||||
|
},
|
||||||
|
"start": 0,
|
||||||
|
"type": "ImportStatement",
|
||||||
|
"type": "ImportStatement"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"path": {
|
||||||
|
"type": "Kcl",
|
||||||
|
"filename": "ball-bearing.kcl"
|
||||||
|
},
|
||||||
|
"selector": {
|
||||||
|
"type": "None",
|
||||||
|
"alias": {
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": "ballBearing",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": 0,
|
||||||
|
"type": "ImportStatement",
|
||||||
|
"type": "ImportStatement"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"path": {
|
||||||
|
"type": "Kcl",
|
||||||
|
"filename": "block.kcl"
|
||||||
|
},
|
||||||
|
"selector": {
|
||||||
|
"type": "None",
|
||||||
|
"alias": {
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": "block",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": 0,
|
||||||
|
"type": "ImportStatement",
|
||||||
|
"type": "ImportStatement"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"expression": {
|
||||||
|
"abs_path": false,
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": {
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": "ballBearing",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"path": [],
|
||||||
|
"start": 0,
|
||||||
|
"type": "Name",
|
||||||
|
"type": "Name"
|
||||||
|
},
|
||||||
|
"preComments": [
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"// Render each part"
|
||||||
|
],
|
||||||
|
"start": 0,
|
||||||
|
"type": "ExpressionStatement",
|
||||||
|
"type": "ExpressionStatement"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"expression": {
|
||||||
|
"abs_path": false,
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": {
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": "block",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"path": [],
|
||||||
|
"start": 0,
|
||||||
|
"type": "Name",
|
||||||
|
"type": "Name"
|
||||||
|
},
|
||||||
|
"start": 0,
|
||||||
|
"type": "ExpressionStatement",
|
||||||
|
"type": "ExpressionStatement"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"innerAttrs": [
|
||||||
|
{
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": {
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": "settings",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"preComments": [
|
||||||
|
"// Pillow Block Bearing",
|
||||||
|
"// A bearing pillow block, also known as a plummer block or pillow block bearing, is a pedestal used to provide support for a rotating shaft with the help of compatible bearings and various accessories. Housing a bearing, the pillow block provides a secure and stable foundation that allows the shaft to rotate smoothly within its machinery setup. These components are essential in a wide range of mechanical systems and machinery, playing a key role in reducing friction and supporting radial and axial loads.",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"// Set units"
|
||||||
|
],
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"key": {
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": "defaultLengthUnit",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 0,
|
||||||
|
"type": "ObjectProperty",
|
||||||
|
"value": {
|
||||||
|
"abs_path": false,
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": {
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"name": "in",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"path": [],
|
||||||
|
"start": 0,
|
||||||
|
"type": "Name",
|
||||||
|
"type": "Name"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start": 0,
|
||||||
|
"type": "Annotation"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {},
|
||||||
|
"startNodes": [
|
||||||
|
{
|
||||||
|
"commentStart": 0,
|
||||||
|
"end": 0,
|
||||||
|
"start": 0,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"start": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
42
rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ops.snap
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Operations executed pillow-block-bearing.kcl
|
||||||
|
---
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "ModuleInstance",
|
||||||
|
"name": "parameters.kcl",
|
||||||
|
"moduleId": 0
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "ModuleInstance",
|
||||||
|
"name": "ball-bearing.kcl",
|
||||||
|
"moduleId": 0
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupBegin",
|
||||||
|
"group": {
|
||||||
|
"type": "ModuleInstance",
|
||||||
|
"name": "block.kcl",
|
||||||
|
"moduleId": 0
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "GroupEnd"
|
||||||
|
}
|
||||||
|
]
|
||||||
@ -0,0 +1,170 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Variables in memory after executing pillow-block-bearing.kcl
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"ballBearing": {
|
||||||
|
"type": "Module",
|
||||||
|
"value": 2
|
||||||
|
},
|
||||||
|
"bearingBoreDiameter": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.75,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bearingOuterDiameter": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 2.625,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"type": "Module",
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
"boltDiameter": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.375,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"boltSpacingX": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 5.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"boltSpacingY": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 3.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chainThickness": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0273,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chainWidth": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.1094,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"counterboreDepth": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.1875,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"counterboreDiameter": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.75,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"linkDiameter": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0547,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sphereDia": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.2188,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stockThickness": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.5,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 77 KiB |
@ -678,7 +678,7 @@ flowchart LR
|
|||||||
99 --- 245
|
99 --- 245
|
||||||
99 --- 293
|
99 --- 293
|
||||||
106 --- 193
|
106 --- 193
|
||||||
106 x--> 206
|
106 x--> 207
|
||||||
106 --- 272
|
106 --- 272
|
||||||
106 --- 321
|
106 --- 321
|
||||||
126 --- 194
|
126 --- 194
|
||||||
@ -1012,7 +1012,7 @@ flowchart LR
|
|||||||
233 <--x 205
|
233 <--x 205
|
||||||
234 <--x 205
|
234 <--x 205
|
||||||
235 <--x 205
|
235 <--x 205
|
||||||
272 <--x 207
|
272 <--x 206
|
||||||
254 <--x 213
|
254 <--x 213
|
||||||
255 <--x 213
|
255 <--x 213
|
||||||
256 <--x 213
|
256 <--x 213
|
||||||
|
|||||||