More units of measure work
Signed-off-by: Nick Cameron <nrc@ncameron.org>
This commit is contained in:
		| @ -24,8 +24,8 @@ atan2( | ||||
|  | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `y` | [`number`](/docs/kcl/types/number) |  | Yes | | ||||
| | `x` | [`number`](/docs/kcl/types/number) |  | Yes | | ||||
| | `y` | [`number`](/docs/kcl/types/number) | Y | Yes | | ||||
| | `x` | [`number`](/docs/kcl/types/number) | X | Yes | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| @ -37,7 +37,7 @@ atan2( | ||||
| ```js | ||||
| sketch001 = startSketchOn(XZ) | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> angledLine(angle = toDegrees(atan2(1.25, 2)), length = 20) | ||||
|   |> angledLine(angle = toDegrees(atan2(y = 1.25, x = 2)), length = 20) | ||||
|   |> yLine(endAbsolute = 0) | ||||
|   |> close() | ||||
|  | ||||
|  | ||||
| @ -80,7 +80,7 @@ part001 = cube([0, 0], 20) | ||||
|   // We tag the chamfer to reference it later. | ||||
|   |> chamfer(length = 10, tags = [getOppositeEdge(line1)], tag = $chamfer1) | ||||
|  | ||||
| sketch001 = startSketchOn(part001, chamfer1) | ||||
| sketch001 = startSketchOn(part001, face = chamfer1) | ||||
|   |> startProfileAt([10, 10], %) | ||||
|   |> line(end = [2, 0]) | ||||
|   |> line(end = [0, 2]) | ||||
|  | ||||
| @ -69,11 +69,11 @@ case = startSketchOn(-XZ) | ||||
|   |> close() | ||||
|   |> extrude(length = 65) | ||||
|  | ||||
| thing1 = startSketchOn(case, 'end') | ||||
| thing1 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [-size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
| thing2 = startSketchOn(case, 'end') | ||||
| thing2 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
|  | ||||
| @ -20,7 +20,7 @@ offsetPlane( | ||||
|  | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `plane` | [`PlaneData`](/docs/kcl/types/PlaneData) | The plane (e.g. 'XY') which this new plane is created from. | Yes | | ||||
| | `plane` | [`PlaneData`](/docs/kcl/types/PlaneData) | The plane (e.g. XY) which this new plane is created from. | Yes | | ||||
| | `offset` | [`number`](/docs/kcl/types/number) | Distance from the standard plane this new plane will be created at. | Yes | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| @ -61,11 +61,11 @@ case = startSketchOn(XY) | ||||
|   |> close(%) | ||||
|   |> extrude(length = 65) | ||||
|  | ||||
| thing1 = startSketchOn(case, 'end') | ||||
| thing1 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [-size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
| thing2 = startSketchOn(case, 'end') | ||||
| thing2 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
| @ -92,7 +92,7 @@ case = startSketchOn(XY) | ||||
|   |> close(%) | ||||
|   |> extrude(length = 65) | ||||
|  | ||||
| thing1 = startSketchOn(case, 'end') | ||||
| thing1 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [-size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
|  | ||||
| @ -107,11 +107,11 @@ case = startSketchOn(-XZ) | ||||
|   |> close() | ||||
|   |> extrude(length = 65) | ||||
|  | ||||
| thing1 = startSketchOn(case, 'end') | ||||
| thing1 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [-size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
| thing2 = startSketchOn(case, 'end') | ||||
| thing2 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
| @ -132,11 +132,11 @@ case = startSketchOn(XY) | ||||
|   |> close() | ||||
|   |> extrude(length = 65) | ||||
|  | ||||
| thing1 = startSketchOn(case, 'end') | ||||
| thing1 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [-size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
| thing2 = startSketchOn(case, 'end') | ||||
| thing2 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
| @ -160,11 +160,11 @@ case = startSketchOn(XY) | ||||
|   |> close() | ||||
|   |> extrude(length = 65) | ||||
|  | ||||
| thing1 = startSketchOn(case, 'end') | ||||
| thing1 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [-size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
| thing2 = startSketchOn(case, 'end') | ||||
| thing2 = startSketchOn(case, face = 'end') | ||||
|   |> circle(center = [size / 2, -size / 2], radius = 25) | ||||
|   |> extrude(length = 50) | ||||
|  | ||||
|  | ||||
| @ -18,8 +18,8 @@ The point is if you want to export the result of a sketch on a face, you only ne | ||||
|  | ||||
| ```js | ||||
| startSketchOn( | ||||
|   data: SketchData, | ||||
|   tag?: FaceTag, | ||||
|   planeOrSolid: SketchData, | ||||
|   face?: FaceTag, | ||||
| ): SketchSurface | ||||
| ``` | ||||
|  | ||||
| @ -28,8 +28,8 @@ startSketchOn( | ||||
|  | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `data` | [`SketchData`](/docs/kcl/types/SketchData) | Data for start sketch on. You can start a sketch on a plane or an solid. | Yes | | ||||
| | [`tag`](/docs/kcl/types/tag) | [`FaceTag`](/docs/kcl/types/FaceTag) | A tag for a face. | No | | ||||
| | `planeOrSolid` | [`SketchData`](/docs/kcl/types/SketchData) | The plane or solid to sketch on | Yes | | ||||
| | `face` | [`FaceTag`](/docs/kcl/types/FaceTag) | Identify a face of a solid if a solid is specified as the input argument (`plane_or_solid`) | No | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| @ -48,7 +48,7 @@ exampleSketch = startSketchOn(XY) | ||||
|  | ||||
| example = extrude(exampleSketch, length = 5) | ||||
|  | ||||
| exampleSketch002 = startSketchOn(example, 'end') | ||||
| exampleSketch002 = startSketchOn(example, face = 'end') | ||||
|   |> startProfileAt([1, 1], %) | ||||
|   |> line(end = [8, 0]) | ||||
|   |> line(end = [0, 8]) | ||||
| @ -57,7 +57,7 @@ exampleSketch002 = startSketchOn(example, 'end') | ||||
|  | ||||
| example002 = extrude(exampleSketch002, length = 5) | ||||
|  | ||||
| exampleSketch003 = startSketchOn(example002, 'end') | ||||
| exampleSketch003 = startSketchOn(example002, face = 'end') | ||||
|   |> startProfileAt([2, 2], %) | ||||
|   |> line(end = [6, 0]) | ||||
|   |> line(end = [0, 6]) | ||||
| @ -82,7 +82,7 @@ exampleSketch = startSketchOn(XY) | ||||
|  | ||||
| example = extrude(exampleSketch, length = 5, tagEnd = $end01) | ||||
|  | ||||
| exampleSketch002 = startSketchOn(example, end01) | ||||
| exampleSketch002 = startSketchOn(example, face = end01) | ||||
|   |> startProfileAt([1, 1], %) | ||||
|   |> line(end = [8, 0]) | ||||
|   |> line(end = [0, 8]) | ||||
| @ -91,7 +91,7 @@ exampleSketch002 = startSketchOn(example, end01) | ||||
|  | ||||
| example002 = extrude(exampleSketch002, length = 5, tagEnd = $end02) | ||||
|  | ||||
| exampleSketch003 = startSketchOn(example002, end02) | ||||
| exampleSketch003 = startSketchOn(example002, face = end02) | ||||
|   |> startProfileAt([2, 2], %) | ||||
|   |> line(end = [6, 0]) | ||||
|   |> line(end = [0, 6]) | ||||
| @ -113,7 +113,7 @@ exampleSketch = startSketchOn(XY) | ||||
|  | ||||
| example = extrude(exampleSketch, length = 10) | ||||
|  | ||||
| exampleSketch002 = startSketchOn(example, sketchingFace) | ||||
| exampleSketch002 = startSketchOn(example, face = sketchingFace) | ||||
|   |> startProfileAt([1, 1], %) | ||||
|   |> line(end = [8, 0]) | ||||
|   |> line(end = [0, 8]) | ||||
| @ -122,7 +122,7 @@ exampleSketch002 = startSketchOn(example, sketchingFace) | ||||
|  | ||||
| example002 = extrude(exampleSketch002, length = 10) | ||||
|  | ||||
| exampleSketch003 = startSketchOn(example002, sketchingFace002) | ||||
| exampleSketch003 = startSketchOn(example002, face = sketchingFace002) | ||||
|   |> startProfileAt([-8, 12], %) | ||||
|   |> line(end = [0, 6]) | ||||
|   |> line(end = [6, 0]) | ||||
| @ -148,7 +148,7 @@ exampleSketch = startSketchOn(XY) | ||||
|  | ||||
| example = revolve(exampleSketch, axis = Y, angle = 180) | ||||
|  | ||||
| exampleSketch002 = startSketchOn(example, 'end') | ||||
| exampleSketch002 = startSketchOn(example, face = 'end') | ||||
|   |> startProfileAt([4.5, -5], %) | ||||
|   |> line(end = [0, 5]) | ||||
|   |> line(end = [5, 0]) | ||||
| @ -182,7 +182,7 @@ example = revolve( | ||||
|   tagEnd = $end01, | ||||
| ) | ||||
|  | ||||
| exampleSketch002 = startSketchOn(example, end01) | ||||
| exampleSketch002 = startSketchOn(example, face = end01) | ||||
|   |> startProfileAt([4.5, -5], %) | ||||
|   |> line(end = [0, 5]) | ||||
|   |> line(end = [5, 0]) | ||||
| @ -196,12 +196,10 @@ example002 = extrude(exampleSketch002, length = 5) | ||||
|  | ||||
| ```js | ||||
| a1 = startSketchOn({ | ||||
|        plane = { | ||||
|          origin = { x = 0, y = 0, z = 0 }, | ||||
|          xAxis = { x = 1, y = 0, z = 0 }, | ||||
|          yAxis = { x = 0, y = 1, z = 0 }, | ||||
|          zAxis = { x = 0, y = 0, z = 1 } | ||||
|        } | ||||
|        origin = { x = 0, y = 0, z = 0 }, | ||||
|        xAxis = { x = 1, y = 0, z = 0 }, | ||||
|        yAxis = { x = 0, y = 1, z = 0 }, | ||||
|        zAxis = { x = 0, y = 0, z = 1 } | ||||
|      }) | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> line(end = [100.0, 0]) | ||||
|  | ||||
| @ -11,11 +11,11 @@ Create a helix. | ||||
| ```js | ||||
| helix( | ||||
|   revolutions: number(_), | ||||
|   angleStart: number(deg), | ||||
|   angleStart: number(Angle), | ||||
|   ccw?: bool, | ||||
|   radius?: number(mm), | ||||
|   radius?: number(Length), | ||||
|   axis?: Axis3d | Edge, | ||||
|   length?: number(mm), | ||||
|   length?: number(Length), | ||||
|   cylinder?: Solid, | ||||
| ): Helix | ||||
| ``` | ||||
| @ -26,11 +26,11 @@ helix( | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `revolutions` | `number(_)` | Number of revolutions. | Yes | | ||||
| | `angleStart` | `number(deg)` | Start angle (in degrees). | Yes | | ||||
| | `angleStart` | `number(Angle)` | Start angle (in degrees). | Yes | | ||||
| | `ccw` | [`bool`](/docs/kcl/types/bool) | Is the helix rotation counter clockwise? The default is `false`. | No | | ||||
| | `radius` | `number(mm)` | Radius of the helix. | No | | ||||
| | `radius` | `number(Length)` | Radius of the helix. | No | | ||||
| | `axis` | `Axis3d | Edge` | Axis to use for the helix. | No | | ||||
| | `length` | `number(mm)` | Length of the helix. This is not necessary if the helix is created around an edge. If not given the length of the edge is used. | No | | ||||
| | `length` | `number(Length)` | Length of the helix. This is not necessary if the helix is created around an edge. If not given the length of the edge is used. | No | | ||||
| | `cylinder` | [`Solid`](/docs/kcl/types/Solid) | Cylinder to create the helix on. | No | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| @ -9,7 +9,7 @@ Compute the cosine of a number (in radians). | ||||
|  | ||||
|  | ||||
| ```js | ||||
| cos(@num: number(rad)): number(_) | ||||
| cos(@num: number(Angle)): number(_) | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -17,7 +17,7 @@ cos(@num: number(rad)): number(_) | ||||
|  | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `num` | `number(rad)` |  | Yes | | ||||
| | `num` | `number(Angle)` |  | Yes | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
|  | ||||
| @ -11,9 +11,9 @@ cartesian (x/y/z grid) coordinates. | ||||
|  | ||||
| ```js | ||||
| polar( | ||||
|   angle: number(deg), | ||||
|   length: number(mm), | ||||
| ): [number(mm); 2] | ||||
|   angle: number(Angle), | ||||
|   length: number(Length), | ||||
| ): Point2d | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -21,12 +21,12 @@ polar( | ||||
|  | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `angle` | `number(deg)` |  | Yes | | ||||
| | `length` | `number(mm)` |  | Yes | | ||||
| | `angle` | `number(Angle)` |  | Yes | | ||||
| | `length` | `number(Length)` |  | Yes | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| `[number(mm); 2]` | ||||
| [`Point2d`](/docs/kcl/types/Point2d) | ||||
|  | ||||
|  | ||||
| ### Examples | ||||
|  | ||||
| @ -9,7 +9,7 @@ Compute the sine of a number (in radians). | ||||
|  | ||||
|  | ||||
| ```js | ||||
| sin(@num: number(rad)): number(_) | ||||
| sin(@num: number(Angle)): number(_) | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -17,7 +17,7 @@ sin(@num: number(rad)): number(_) | ||||
|  | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `num` | `number(rad)` |  | Yes | | ||||
| | `num` | `number(Angle)` |  | Yes | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
|  | ||||
| @ -9,7 +9,7 @@ Compute the tangent of a number (in radians). | ||||
|  | ||||
|  | ||||
| ```js | ||||
| tan(@num: number(rad)): number(_) | ||||
| tan(@num: number(Angle)): number(_) | ||||
| ``` | ||||
|  | ||||
|  | ||||
| @ -17,7 +17,7 @@ tan(@num: number(rad)): number(_) | ||||
|  | ||||
| | Name | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `num` | `number(rad)` |  | Yes | | ||||
| | `num` | `number(Angle)` |  | Yes | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
|  | ||||
| @ -21,10 +21,10 @@ revolved around the same axis. | ||||
| revolve( | ||||
|   @sketches: [Sketch; 1+], | ||||
|   axis: Axis2d | Edge, | ||||
|   angle?: number(deg), | ||||
|   tolerance?: number(mm), | ||||
|   angle?: number(Angle), | ||||
|   tolerance?: number(Length), | ||||
|   symmetric?: bool, | ||||
|   bidirectionalAngle?: number(deg), | ||||
|   bidirectionalAngle?: number(Angle), | ||||
|   tagStart?: tag, | ||||
|   tagEnd?: tag, | ||||
| ): Solid | ||||
| @ -37,10 +37,10 @@ revolve( | ||||
| |----------|------|-------------|----------| | ||||
| | `sketches` | `[Sketch; 1+]` | The sketch or set of sketches that should be revolved | Yes | | ||||
| | `axis` | `Axis2d | Edge` | Axis of revolution. | Yes | | ||||
| | `angle` | `number(deg)` | Angle to revolve (in degrees). Default is 360. | No | | ||||
| | `tolerance` | `number(mm)` | Tolerance for the revolve operation. | No | | ||||
| | `angle` | `number(Angle)` | Angle to revolve (in degrees). Default is 360. | No | | ||||
| | `tolerance` | `number(Length)` | Tolerance for the revolve operation. | No | | ||||
| | `symmetric` | [`bool`](/docs/kcl/types/bool) | If true, the extrusion will happen symmetrically around the sketch. Otherwise, the extrusion will happen on only one side of the sketch. | No | | ||||
| | `bidirectionalAngle` | `number(deg)` | If specified, will also revolve in the opposite direction to 'angle' to the specified angle. If 'symmetric' is true, this value is ignored. | No | | ||||
| | `bidirectionalAngle` | `number(Angle)` | If specified, will also revolve in the opposite direction to 'angle' to the specified angle. If 'symmetric' is true, this value is ignored. | No | | ||||
| | `tagStart` | [`tag`](/docs/kcl/types/tag) | A named tag for the face at the start of the revolve, i.e. the original sketch. | No | | ||||
| | `tagEnd` | [`tag`](/docs/kcl/types/tag) | A named tag for the face at the end of the revolve. | No | | ||||
| 
 | ||||
| @ -108,7 +108,7 @@ part001 = startSketchOn(XY) | ||||
|     |> close() | ||||
|     |> revolve(axis = Y, angle = 180) | ||||
| 
 | ||||
| part002 = startSketchOn(part001, 'end') | ||||
| part002 = startSketchOn(part001, face = 'end') | ||||
|     |> startProfileAt([4.5, -5], %) | ||||
|     |> line(end = [0, 5]) | ||||
|     |> line(end = [5, 0]) | ||||
| @ -128,7 +128,7 @@ box = startSketchOn(XY) | ||||
|     |> close() | ||||
|     |> extrude(length = 20) | ||||
| 
 | ||||
| sketch001 = startSketchOn(box, "END") | ||||
| sketch001 = startSketchOn(box, face = "END") | ||||
|     |> circle( center = [10,10], radius = 4 ) | ||||
|     |> revolve( | ||||
|         angle = -90, | ||||
| @ -147,7 +147,7 @@ box = startSketchOn(XY) | ||||
|     |> close() | ||||
|     |> extrude(length = 20) | ||||
| 
 | ||||
| sketch001 = startSketchOn(box, "END") | ||||
| sketch001 = startSketchOn(box, face = "END") | ||||
|     |> circle( center = [10,10], radius = 4 ) | ||||
|     |> revolve( | ||||
|         angle = 90, | ||||
| @ -166,7 +166,7 @@ box = startSketchOn(XY) | ||||
|     |> close() | ||||
|     |> extrude(length = 20) | ||||
| 
 | ||||
| sketch001 = startSketchOn(box, "END") | ||||
| sketch001 = startSketchOn(box, face = "END") | ||||
|     |> circle( center = [10,10], radius = 4 ) | ||||
|     |> revolve( | ||||
|         angle = 90, | ||||
|  | ||||
| @ -13,7 +13,7 @@ the provided (x, y) origin point. | ||||
| circle( | ||||
|   @sketch_or_surface: Sketch | Plane | Face, | ||||
|   center: Point2d, | ||||
|   radius: number, | ||||
|   radius: number(Length), | ||||
|   tag?: tag, | ||||
| ): Sketch | ||||
| ``` | ||||
| @ -25,7 +25,7 @@ circle( | ||||
| |----------|------|-------------|----------| | ||||
| | `sketch_or_surface` | [`Sketch`](/docs/kcl/types/Sketch) OR [`Plane`](/docs/kcl/types/Plane) OR [`Face`](/docs/kcl/types/Face) | Sketch to extend, or plane or surface to sketch on. | Yes | | ||||
| | `center` | [`Point2d`](/docs/kcl/types/Point2d) | The center of the circle. | Yes | | ||||
| | `radius` | [`number`](/docs/kcl/types/number) | The radius of the circle. | Yes | | ||||
| | `radius` | `number(Length)` | The radius of the circle. | Yes | | ||||
| | [`tag`](/docs/kcl/types/tag) | [`tag`](/docs/kcl/types/tag) | Create a new tag which refers to this circle. | No | | ||||
|  | ||||
| ### Returns | ||||
|  | ||||
| @ -110,7 +110,7 @@ sketch0011 = startSketchOn(XY) | ||||
|      |> mirror2d( axis = X ) | ||||
|      |> extrude(length = 10) | ||||
|  | ||||
| sketch002 = startSketchOn(sketch0011, 'END') | ||||
| sketch002 = startSketchOn(sketch0011, face = 'END') | ||||
|     |> circle( center = [-0.01, 1.58], radius = 1.2 ) | ||||
|     |> extrude(length = 1.2) | ||||
|  | ||||
|  | ||||
							
								
								
									
										6780
									
								
								docs/kcl/std.json
									
									
									
									
									
								
							
							
						
						
									
										6780
									
								
								docs/kcl/std.json
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,46 +0,0 @@ | ||||
| --- | ||||
| title: "AngledLineData" | ||||
| excerpt: "Data to draw an angled line." | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
| Data to draw an angled line. | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| **This schema accepts any of the following:** | ||||
|  | ||||
| An angle and length with explicitly named parameters | ||||
|  | ||||
| **Type:** `object` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Properties | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `angle` |[`number`](/docs/kcl/types/number)| The angle of the line (in degrees). | No | | ||||
| | `length` |[`number`](/docs/kcl/types/number)| The length of the line. | No | | ||||
|  | ||||
|  | ||||
| ---- | ||||
| An angle and length given as a pair | ||||
|  | ||||
| **Type:** `array` | ||||
|  | ||||
| `[number, number]` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ---- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -16,8 +16,8 @@ Data for drawing an angled line that intersects with a given line. | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `angle` |[`number`](/docs/kcl/types/number)| The angle of the line. | No | | ||||
| | `angle` |`TyF64`| The angle of the line. | No | | ||||
| | `intersectTag` |[`TagIdentifier`](/docs/kcl/types#tag-identifier)| The tag of the line to intersect with. | No | | ||||
| | `offset` |[`number`](/docs/kcl/types/number)| The offset from the intersecting line. | No | | ||||
| | `offset` |`TyF64`| The offset from the intersecting line. | No | | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -1,22 +0,0 @@ | ||||
| --- | ||||
| title: "AngledLineToData" | ||||
| excerpt: "Data to draw an angled line to a point." | ||||
| layout: manual | ||||
| --- | ||||
|  | ||||
| Data to draw an angled line to a point. | ||||
|  | ||||
| **Type:** `object` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Properties | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `angle` |[`number`](/docs/kcl/types/number)| The angle of the line. | No | | ||||
| | `to` |[`number`](/docs/kcl/types/number)| The point to draw to. | No | | ||||
|  | ||||
|  | ||||
| @ -23,9 +23,9 @@ Angles and radius with an optional tag. | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `angleStart` |[`number`](/docs/kcl/types/number) (**maximum:** 360.0) (**minimum:** -360.0)| The start angle. | No | | ||||
| | `angleEnd` |[`number`](/docs/kcl/types/number) (**maximum:** 360.0) (**minimum:** -360.0)| The end angle. | No | | ||||
| | `radius` |[`number`](/docs/kcl/types/number)| The radius. | No | | ||||
| | `angleStart` |`TyF64`| The start angle. | No | | ||||
| | `angleEnd` |`TyF64`| The end angle. | No | | ||||
| | `radius` |`TyF64`| The radius. | No | | ||||
|  | ||||
|  | ||||
| ---- | ||||
| @ -41,9 +41,9 @@ Center, to and radius with an optional tag. | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `center` |`[number, number]`| The center. | No | | ||||
| | `to` |`[number, number]`| The to point. | No | | ||||
| | `radius` |[`number`](/docs/kcl/types/number)| The radius. | No | | ||||
| | `center` |`[, `TyF64`, `TyF64`]`| The center. | No | | ||||
| | `to` |`[, `TyF64`, `TyF64`]`| The to point. | No | | ||||
| | `radius` |`TyF64`| The radius. | No | | ||||
|  | ||||
|  | ||||
| ---- | ||||
|  | ||||
| @ -16,7 +16,7 @@ Data to draw a three point arc (arcTo). | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `end` |`[number, number]`| End point of the arc. A point in 3D space | No | | ||||
| | `interior` |`[number, number]`| Interior point of the arc. A point in 3D space | No | | ||||
| | `end` |`[, `TyF64`, `TyF64`]`| End point of the arc. A point in 3D space | No | | ||||
| | `interior` |`[, `TyF64`, `TyF64`]`| Interior point of the arc. A point in 3D space | No | | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -16,8 +16,8 @@ Data to draw a bezier curve. | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `to` |`[number, number]`| The to point. | No | | ||||
| | `control1` |`[number, number]`| The first control point. | No | | ||||
| | `control2` |`[number, number]`| The second control point. | No | | ||||
| | `to` |`[, `TyF64`, `TyF64`]`| The to point. | No | | ||||
| | `control1` |`[, `TyF64`, `TyF64`]`| The first control point. | No | | ||||
| | `control2` |`[, `TyF64`, `TyF64`]`| The second control point. | No | | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -26,7 +26,7 @@ A fillet. | ||||
| |----------|------|-------------|----------| | ||||
| | `type` |enum: `fillet`|  | No | | ||||
| | `id` |[`string`](/docs/kcl/types/string)| The id of the engine command that called this fillet. | No | | ||||
| | `radius` |[`number`](/docs/kcl/types/number)|  | No | | ||||
| | `radius` |`TyF64`|  | No | | ||||
| | `edgeId` |[`string`](/docs/kcl/types/string)| The engine id of the edge to fillet. | No | | ||||
| | [`tag`](/docs/kcl/types/tag) |[`TagDeclarator`](/docs/kcl/types#tag-declaration)|  | No | | ||||
|  | ||||
| @ -46,7 +46,7 @@ A chamfer. | ||||
| |----------|------|-------------|----------| | ||||
| | `type` |enum: `chamfer`|  | No | | ||||
| | `id` |[`string`](/docs/kcl/types/string)| The id of the engine command that called this chamfer. | No | | ||||
| | `length` |[`number`](/docs/kcl/types/number)|  | No | | ||||
| | `length` |`TyF64`|  | No | | ||||
| | `edgeId` |[`string`](/docs/kcl/types/string)| The engine id of the edge to chamfer. | No | | ||||
| | [`tag`](/docs/kcl/types/tag) |[`TagDeclarator`](/docs/kcl/types#tag-declaration)|  | No | | ||||
|  | ||||
|  | ||||
| @ -130,6 +130,21 @@ A unit of length. | ||||
| | `type` |enum: `Yards`|  | No | | ||||
|  | ||||
|  | ||||
| ---- | ||||
|  | ||||
| **Type:** `object` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Properties | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `type` |enum: `Unknown`|  | No | | ||||
|  | ||||
|  | ||||
| ---- | ||||
|  | ||||
|  | ||||
| @ -178,6 +193,21 @@ A unit of angle. | ||||
| | `type` |enum: `Radians`|  | No | | ||||
|  | ||||
|  | ||||
| ---- | ||||
|  | ||||
| **Type:** `object` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Properties | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `type` |enum: `Unknown`|  | No | | ||||
|  | ||||
|  | ||||
| ---- | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -7,7 +7,7 @@ layout: manual | ||||
| A point in two dimensional space. | ||||
|  | ||||
| ```kcl | ||||
| type Point2d = [number; 2] | ||||
| type Point2d = [number(Length); 2] | ||||
| ``` | ||||
|  | ||||
| [`Point2d`](/docs/kcl/types/Point2d) is an alias for a two-element array of [number](/docs/kcl/types/number)s. To write a value | ||||
|  | ||||
| @ -7,7 +7,7 @@ layout: manual | ||||
| A point in three dimensional space. | ||||
|  | ||||
| ```kcl | ||||
| type Point3d = [number; 3] | ||||
| type Point3d = [number(Length); 3] | ||||
| ``` | ||||
|  | ||||
| [`Point3d`](/docs/kcl/types/Point3d) is an alias for a three-element array of [number](/docs/kcl/types/number)s. To write a value | ||||
|  | ||||
| @ -16,9 +16,9 @@ Data for drawing a polygon | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `radius` |[`number`](/docs/kcl/types/number)| The radius of the polygon | No | | ||||
| | `radius` |`TyF64`| The radius of the polygon | No | | ||||
| | `numSides` |`integer`| The number of sides in the polygon | No | | ||||
| | `center` |`[number, number]`| The center point of the polygon | No | | ||||
| | `center` |`[, `TyF64`, `TyF64`]`| The center point of the polygon | No | | ||||
| | `inscribed` |`boolean`| Whether the polygon is inscribed (true) or circumscribed (false) about a circle with the specified radius | No | | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -16,7 +16,7 @@ Data to draw a tangential arc. | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `radius` |[`number`](/docs/kcl/types/number)| Radius of the arc. Not to be confused with Raiders of the Lost Ark. | No | | ||||
| | `offset` |[`number`](/docs/kcl/types/number)| Offset of the arc, in degrees. | No | | ||||
| | `radius` |`TyF64`| Radius of the arc. Not to be confused with Raiders of the Lost Ark. | No | | ||||
| | `offset` |`TyF64`| Offset of the arc, in degrees. | No | | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -43,6 +43,21 @@ A unit of angle. | ||||
|  | ||||
| ---- | ||||
|  | ||||
| **Type:** `object` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Properties | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `type` |enum: `Unknown`|  | No | | ||||
|  | ||||
|  | ||||
| ---- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -103,6 +103,21 @@ A unit of length. | ||||
|  | ||||
| ---- | ||||
|  | ||||
| **Type:** `object` | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Properties | ||||
|  | ||||
| | Property | Type | Description | Required | | ||||
| |----------|------|-------------|----------| | ||||
| | `type` |enum: `Unknown`|  | No | | ||||
|  | ||||
|  | ||||
| ---- | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -731,7 +731,7 @@ sketch_001 = startSketchOn(XY) | ||||
|     |> close() | ||||
|     |> extrude(length = 10) | ||||
|  | ||||
|     sketch001 = startSketchOn(box, revolveAxis) | ||||
|     sketch001 = startSketchOn(box, face = revolveAxis) | ||||
|     |> startProfileAt([5, 10], %) | ||||
|     |> line(end = [0, -10]) | ||||
|     |> line(end = [2, 0]) | ||||
|  | ||||
| @ -44,7 +44,7 @@ const FEATURE_TREE_SKETCH_CODE = `sketch001 = startSketchOn(XZ) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close(%) | ||||
| extrude001 = extrude(sketch001, length = 10) | ||||
| sketch002 = startSketchOn(extrude001, rectangleSegmentB001) | ||||
| sketch002 = startSketchOn(extrude001, face = rectangleSegmentB001) | ||||
|   |> circle( | ||||
|        center = [-1, 2], | ||||
|        radius = .5 | ||||
| @ -194,7 +194,7 @@ test.describe('Feature Tree pane', () => { | ||||
|           highlightedCode: '', | ||||
|           diagnostics: [], | ||||
|           activeLines: [ | ||||
|             'sketch002=startSketchOn(extrude001,rectangleSegmentB001)', | ||||
|             'sketch002=startSketchOn(extrude001,face=rectangleSegmentB001)', | ||||
|           ], | ||||
|         }) | ||||
|         await toolbar.exitSketchBtn.click() | ||||
|  | ||||
| @ -44,8 +44,8 @@ profile001 = startProfileAt([-134.53, -56.17], sketch001) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02) | ||||
|   |> close() | ||||
| extrude001 = extrude(profile001, length = 100) | ||||
| sketch003 = startSketchOn(extrude001, seg02) | ||||
| sketch002 = startSketchOn(extrude001, seg01)` | ||||
| sketch003 = startSketchOn(extrude001, face = seg02) | ||||
| sketch002 = startSketchOn(extrude001, face = seg01)` | ||||
|       ) | ||||
|     }) | ||||
|  | ||||
|  | ||||
| @ -220,7 +220,7 @@ test.describe('Point-and-click tests', () => { | ||||
|     )`, | ||||
|  | ||||
|         afterChamferSelectSnippet: | ||||
|           'sketch002 = startSketchOn(extrude001, seg03)', | ||||
|           'sketch002 = startSketchOn(extrude001, face = seg03)', | ||||
|         afterRectangle1stClickSnippet: | ||||
|           'startProfileAt([205.96, 254.59], sketch002)', | ||||
|         afterRectangle2ndClickSnippet: `angledLine(angle=0,length=11.39,tag=$rectangleSegmentA002) | ||||
| @ -244,7 +244,7 @@ test.describe('Point-and-click tests', () => { | ||||
|        )`, | ||||
|  | ||||
|         afterChamferSelectSnippet: | ||||
|           'sketch003 = startSketchOn(extrude001, seg04)', | ||||
|           'sketch003 = startSketchOn(extrude001, face = seg04)', | ||||
|         afterRectangle1stClickSnippet: | ||||
|           'startProfileAt([-209.64, 255.28], sketch003)', | ||||
|         afterRectangle2ndClickSnippet: `angledLine(angle=0,length=11.56,tag=$rectangleSegmentA003) | ||||
| @ -266,7 +266,7 @@ test.describe('Point-and-click tests', () => { | ||||
|          ] | ||||
|        )`, | ||||
|         afterChamferSelectSnippet: | ||||
|           'sketch004 = startSketchOn(extrude001, seg05)', | ||||
|           'sketch004 = startSketchOn(extrude001, face = seg05)', | ||||
|         afterRectangle1stClickSnippet: | ||||
|           'startProfileAt([82.57, 322.96], sketch004)', | ||||
|         afterRectangle2ndClickSnippet: `angledLine(angle=0,length=11.16,tag=$rectangleSegmentA004) | ||||
| @ -284,7 +284,7 @@ test.describe('Point-and-click tests', () => { | ||||
|         beforeChamferSnippetEnd: | ||||
|           '|> chamfer(length = 30, tags = [getNextAdjacentEdge(yo)])', | ||||
|         afterChamferSelectSnippet: | ||||
|           'sketch005 = startSketchOn(extrude001, seg06)', | ||||
|           'sketch005 = startSketchOn(extrude001, face = seg06)', | ||||
|         afterRectangle1stClickSnippet: | ||||
|           'startProfileAt([-23.43, 19.69], sketch005)', | ||||
|         afterRectangle2ndClickSnippet: `angledLine(angle=0,length=9.1,tag=$rectangleSegmentA005) | ||||
| @ -309,28 +309,28 @@ extrude001 = extrude(sketch001, length = 100) | ||||
|   |> chamfer(length = 30, tags = [seg01], tag = $seg04) | ||||
|   |> chamfer(length = 30, tags = [getNextAdjacentEdge(seg02)], tag = $seg05) | ||||
|   |> chamfer(length = 30, tags = [getNextAdjacentEdge(yo)], tag = $seg06) | ||||
| sketch005 = startSketchOn(extrude001, seg06) | ||||
| sketch005 = startSketchOn(extrude001, face = seg06) | ||||
| profile004=startProfileAt([-23.43,19.69], sketch005) | ||||
|   |> angledLine(angle = 0, length = 9.1, tag = $rectangleSegmentA005) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA005) - 90, length = 84.07) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA005), length = -segLen(rectangleSegmentA005)) | ||||
|   |> line(endAbsolute=[profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| sketch004 = startSketchOn(extrude001, seg05) | ||||
| sketch004 = startSketchOn(extrude001, face = seg05) | ||||
| profile003 = startProfileAt([82.57, 322.96], sketch004) | ||||
|   |> angledLine(angle = 0, length = 11.16, tag = $rectangleSegmentA004) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA004) - 90, length = 103.07) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA004), length = -segLen(rectangleSegmentA004)) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| sketch003 = startSketchOn(extrude001, seg04) | ||||
| sketch003 = startSketchOn(extrude001, face = seg04) | ||||
| profile002 = startProfileAt([-209.64, 255.28], sketch003) | ||||
|   |> angledLine(angle = 0, length = 11.56, tag = $rectangleSegmentA003) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA003) - 90, length = 106.84) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA003), length = -segLen(rectangleSegmentA003)) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| sketch002 = startSketchOn(extrude001, seg03) | ||||
| sketch002 = startSketchOn(extrude001, face = seg03) | ||||
| profile001 = startProfileAt([205.96, 254.59], sketch002) | ||||
|   |> angledLine(angle = 0, length = 11.39, tag = $rectangleSegmentA002) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA002) - 90, length = 105.26) | ||||
| @ -383,7 +383,7 @@ profile001 = startProfileAt([205.96, 254.59], sketch002) | ||||
|     ])`, | ||||
|         beforeChamferSnippetEnd: ')', | ||||
|         afterChamferSelectSnippet: | ||||
|           'sketch002 = startSketchOn(extrude001, seg03)', | ||||
|           'sketch002 = startSketchOn(extrude001, face = seg03)', | ||||
|         afterRectangle1stClickSnippet: | ||||
|           'startProfileAt([205.96, 254.59], sketch002)', | ||||
|         afterRectangle2ndClickSnippet: `angledLine(angle=0,length=11.39,tag=$rectangleSegmentA002) | ||||
| @ -416,7 +416,7 @@ chamf = chamfer( | ||||
|          getNextAdjacentEdge(seg02) | ||||
|        ], | ||||
|      ) | ||||
| sketch002 = startSketchOn(extrude001, seg03) | ||||
| sketch002 = startSketchOn(extrude001, face = seg03) | ||||
| profile001 = startProfileAt([205.96, 254.59], sketch002) | ||||
|   |> angledLine(angle = 0, length = 11.39, tag = $rectangleSegmentA002) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA002) - 90, length = 105.26) | ||||
| @ -3188,7 +3188,7 @@ sketch001 = startSketchOn(XZ) | ||||
|   |> circle(center = [0, 0], radius = 100) | ||||
|   |> extrude(length = 100) | ||||
|  | ||||
| sketch002 = startSketchOn(sketch001, 'END') | ||||
| sketch002 = startSketchOn(sketch001, face = 'END') | ||||
|   |> circle(center = [0, 0], radius = 50) | ||||
|   |> extrude(length = 50) | ||||
|   `, | ||||
| @ -3197,7 +3197,7 @@ sketch001 = startSketchOn(XZ) | ||||
|   |> circle(center = [0, 0], radius = 100) | ||||
| extrude001 = extrude(sketch001, length = 100) | ||||
|  | ||||
| sketch002 = startSketchOn(extrude001, 'END') | ||||
| sketch002 = startSketchOn(extrude001, face = 'END') | ||||
|   |> circle(center = [0, 0], radius = 50) | ||||
| extrude002 = extrude(sketch002, length = 50) | ||||
|   `, | ||||
| @ -3447,7 +3447,7 @@ tag=$rectangleSegmentC001, | ||||
| |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
| |> close() | ||||
| extrude001 = extrude(sketch001, length = 200) | ||||
| sketch002 = startSketchOn(extrude001, rectangleSegmentA001) | ||||
| sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001) | ||||
| |> startProfileAt([-66.77, 84.81], %) | ||||
| |> angledLine(angle = 180, length = 27.08, tag = $rectangleSegmentA002) | ||||
| |> angledLine( | ||||
| @ -3535,7 +3535,7 @@ tag=$rectangleSegmentC002, | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| extrude001 = extrude(sketch001, length = 50) | ||||
| sketch002 = startSketchOn(extrude001, rectangleSegmentA001) | ||||
| sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001) | ||||
|   |> circle(center = [-11.34, 10.0], radius = 8.69) | ||||
|  | ||||
| ` | ||||
| @ -3623,7 +3623,7 @@ sketch002 = startSketchOn(extrude001, rectangleSegmentA001) | ||||
|       |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|       |> close() | ||||
|     extrude001 = extrude(sketch001, length = 5) | ||||
|     sketch003 = startSketchOn(extrude001, 'START') | ||||
|     sketch003 = startSketchOn(extrude001, face = 'START') | ||||
|       |> circle( | ||||
|         center = [-0.69, 0.56], | ||||
|         radius = 0.28 | ||||
|  | ||||
| @ -1099,7 +1099,7 @@ profile001 = startProfileAt([${roundOff(scale * 69.6)}, ${roundOff( | ||||
|     |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|     |> close() | ||||
|   extrude001 = extrude(sketch001, length = 5) | ||||
|   sketch002 = startSketchOn(extrude001, 'END') | ||||
|   sketch002 = startSketchOn(extrude001, face = 'END') | ||||
|     |> | ||||
|   `.replace(/\s/g, '') | ||||
|     ) | ||||
| @ -2634,7 +2634,7 @@ profile001 = startProfileAt([6.71, -3.66], sketch001) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| extrude001 = extrude(profile001, length = 20) | ||||
| sketch002 = startSketchOn(extrude001, seg01) | ||||
| sketch002 = startSketchOn(extrude001, face = seg01) | ||||
| profile002 = startProfileAt([0.75, 13.46], sketch002) | ||||
|   |> line(end = [4.52, 3.79]) | ||||
|   |> line(end = [5.98, -2.81]) | ||||
|  | ||||
| @ -824,7 +824,7 @@ test( | ||||
|   |> line(end = [11.91, -10.42]) | ||||
|   |> close() | ||||
|   |> extrude(length = ${KCL_DEFAULT_LENGTH}) | ||||
| part002 = startSketchOn(part001, seg01) | ||||
| part002 = startSketchOn(part001, face = seg01) | ||||
|   |> startProfileAt([8, 8], %) | ||||
|   |> line(end = [4.68, 3.05]) | ||||
|   |> line(end = [0, -7.79]) | ||||
|  | ||||
| @ -140,7 +140,7 @@ box = startSketchOn(XY) | ||||
|   |> close() | ||||
|   |> extrude(length = 10) | ||||
|  | ||||
| sketch001 = startSketchOn(box, revolveAxis) | ||||
| sketch001 = startSketchOn(box, face = revolveAxis) | ||||
|   |> startProfileAt([5, 10], %) | ||||
|   |> line(end = [0, -10]) | ||||
|   |> line(end = [2, 0]) | ||||
|  | ||||
| @ -272,27 +272,27 @@ sketch001 = startSketchOn(XZ) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| extrude001 = extrude(sketch001, length = 50) | ||||
| sketch005 = startSketchOn(extrude001, 'END') | ||||
| sketch005 = startSketchOn(extrude001, face = 'END') | ||||
|   |> startProfileAt([23.24, 136.52], %) | ||||
|   |> line(end = [-8.44, 36.61]) | ||||
|   |> line(end = [49.4, 2.05]) | ||||
|   |> line(end = [29.69, -46.95]) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| sketch003 = startSketchOn(extrude001, seg01) | ||||
| sketch003 = startSketchOn(extrude001, face = seg01) | ||||
|   |> startProfileAt([21.23, 17.81], %) | ||||
|   |> line(end = [51.97, 21.32]) | ||||
|   |> line(end = [4.07, -22.75]) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| sketch002 = startSketchOn(extrude001, seg02) | ||||
| sketch002 = startSketchOn(extrude001, face = seg02) | ||||
|   |> startProfileAt([-100.54, 16.99], %) | ||||
|   |> line(end = [0, 20.03]) | ||||
|   |> line(end = [62.61, 0], tag = $seg03) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| extrude002 = extrude(sketch002, length = 50) | ||||
| sketch004 = startSketchOn(extrude002, seg03) | ||||
| sketch004 = startSketchOn(extrude002, face = seg03) | ||||
|   |> startProfileAt([57.07, 134.77], %) | ||||
|   |> line(end = [-4.72, 22.84]) | ||||
|   |> line(end = [28.8, 6.71]) | ||||
| @ -391,28 +391,22 @@ profile003 = startProfileAt([40.16, -120.48], sketch006) | ||||
|     //     `extrude001 = extrude(sketch001, length = 50)` | ||||
|     //   ) | ||||
|     //   await expect(u.codeLocator).toContainText(`sketch005 = startSketchOn({ | ||||
|     //    plane = { | ||||
|     //      origin = { x = 0, y = -50, z = 0 }, | ||||
|     //      xAxis = { x = 1, y = 0, z = 0 }, | ||||
|     //      yAxis = { x = 0, y = 0, z = 1 }, | ||||
|     //      zAxis = { x = 0, y = -1, z = 0 } | ||||
|     //    } | ||||
|     //  })`) | ||||
|     //   await expect(u.codeLocator).toContainText(`sketch003 = startSketchOn({ | ||||
|     //    plane = { | ||||
|     //      origin = { x = 116.53, y = 0, z = 163.25 }, | ||||
|     //      xAxis = { x = -0.81, y = 0, z = 0.58 }, | ||||
|     //      yAxis = { x = 0, y = -1, z = 0 }, | ||||
|     //      zAxis = { x = 0.58, y = 0, z = 0.81 } | ||||
|     //    } | ||||
|     //  })`) | ||||
|     //   await expect(u.codeLocator).toContainText(`sketch002 = startSketchOn({ | ||||
|     //    plane = { | ||||
|     //      origin = { x = -91.74, y = 0, z = 80.89 }, | ||||
|     //      xAxis = { x = -0.66, y = 0, z = -0.75 }, | ||||
|     //      yAxis = { x = 0, y = -1, z = 0 }, | ||||
|     //      zAxis = { x = -0.75, y = 0, z = 0.66 } | ||||
|     //    } | ||||
|     //  })`) | ||||
|  | ||||
|     // DELETE SOLID 2D | ||||
| @ -463,8 +457,8 @@ yo = startProfileAt([4.83, 12.56], part001) | ||||
|   |> line(end = [-13.02, 10.03]) | ||||
|   |> close() | ||||
| yoo = extrude(yo, length = 4) | ||||
| sketch002 = startSketchOn(yoo, seg02) | ||||
| sketch001 = startSketchOn(yoo, 'END') | ||||
| sketch002 = startSketchOn(yoo, face = seg02) | ||||
| sketch001 = startSketchOn(yoo, face = 'END') | ||||
| profile002 = startProfileAt([-11.08, 2.39], sketch002) | ||||
|   |> line(end = [4.89, 0.9]) | ||||
|   |> line(end = [-0.61, -2.41]) | ||||
| @ -893,7 +887,7 @@ part001 = startSketchOn(XZ) | ||||
|     await expect(page.locator('.cm-activeLine')).toHaveText('') | ||||
|  | ||||
|     const codeToAdd = `${await u.codeLocator.allInnerTexts()} | ||||
|   sketch002 = startSketchOn(extrude001, $seg01) | ||||
|   sketch002 = startSketchOn(extrude001, face = $seg01) | ||||
|     |> startProfileAt([-12.94, 6.6], %) | ||||
|     |> line(end = [2.45, -0.2]) | ||||
|     |> line(end = [-2, -1.25]) | ||||
|  | ||||
| @ -546,7 +546,7 @@ extrude001 = extrude(sketch001, length = 5 + 7)` | ||||
|   previousCodeContent = await page.locator('.cm-content').innerText() | ||||
|  | ||||
|   await expect.poll(u.normalisedEditorCode).toContain( | ||||
|     u.normalisedCode(`sketch002 = startSketchOn(extrude001, seg01) | ||||
|     u.normalisedCode(`sketch002 = startSketchOn(extrude001, face = seg01) | ||||
| profile001 = startProfileAt([-12.34, 12.34], sketch002) | ||||
|   |> line(end = [12.34, -12.34]) | ||||
|   |> line(end = [-12.34, -12.34]) | ||||
| @ -583,7 +583,7 @@ profile001 = startProfileAt([-12.34, 12.34], sketch002) | ||||
|   await expect(page.locator('.cm-content')).not.toHaveText(previousCodeContent) | ||||
|   previousCodeContent = await page.locator('.cm-content').innerText() | ||||
|  | ||||
|   const result = makeTemplate`sketch002 = startSketchOn(extrude001, seg01) | ||||
|   const result = makeTemplate`sketch002 = startSketchOn(extrude001, face = seg01) | ||||
| |> startProfileAt([-12.83, 6.7], %) | ||||
| |> line(end = [${[2.28, 2.35]}, -${0.07}]) | ||||
| |> line(end = [-3.05, -1.47]) | ||||
|  | ||||
| @ -35,13 +35,13 @@ sketch001 = startSketchOn(XZ) | ||||
|   |> fillet(radius = filletRadius, tags = [seg02, getOppositeEdge(seg02)]) | ||||
|   |> fillet(radius = filletRadius, tags = [seg05, getOppositeEdge(seg05)]) | ||||
|  | ||||
| sketch002 = startSketchOn(sketch001, seg03) | ||||
| sketch002 = startSketchOn(sketch001, face = seg03) | ||||
|   |> circle(center = [-1.25, 1], radius = mountingHoleDiameter / 2) | ||||
|   |> patternLinear2d(instances = 2, distance = 2.5, axis = [-1, 0]) | ||||
|   |> patternLinear2d(instances = 2, distance = 4, axis = [0, 1]) | ||||
|   |> extrude(%, length = -thickness - .01) | ||||
|  | ||||
| sketch003 = startSketchOn(sketch001, seg04) | ||||
| sketch003 = startSketchOn(sketch001, face = seg04) | ||||
|   |> circle(center = [1, -1], radius = mountingHoleDiameter / 2) | ||||
|   |> patternLinear2d(instances = 2, distance = 4, axis = [1, 0]) | ||||
|   |> extrude(%, length = -thickness - 0.1) | ||||
|  | ||||
| @ -12,11 +12,11 @@ rotorSketch = startSketchOn(XZ) | ||||
| rotor = extrude(rotorSketch, length = rotorSinglePlateThickness) | ||||
|   |> appearance(color = "#dbcd70", roughness = 90, metalness = 90) | ||||
|  | ||||
| rotorBumpSketch = startSketchOn(rotor, 'end') | ||||
| rotorBumpSketch = startSketchOn(rotor, face = 'end') | ||||
|   |> circle(center = [0, 0], radius = rotorInnerDiameter / 2) | ||||
| rotorBump = extrude(rotorBumpSketch, length = rotorInnerDiameterThickness) | ||||
|  | ||||
| lugHoles = startSketchOn(rotorBump, 'end') | ||||
| lugHoles = startSketchOn(rotorBump, face = 'end') | ||||
|   |> circle(center = [-lugSpacing / 2, 0], radius = 0.315) | ||||
|   |> patternCircular2d( | ||||
|        arcDegrees = 360, | ||||
| @ -28,15 +28,15 @@ lugHoles = startSketchOn(rotorBump, 'end') | ||||
|   |> appearance(color = "#dbcd70", roughness = 90, metalness = 90) | ||||
|  | ||||
| // (update when boolean is available) | ||||
| centerSpacer = startSketchOn(rotor, 'start') | ||||
| centerSpacer = startSketchOn(rotor, face = 'start') | ||||
|   |> circle(%, center = [0, 0], radius = .25) | ||||
|   |> extrude(%, length = spacerLength) | ||||
|  | ||||
| secondaryRotorSketch = startSketchOn(centerSpacer, 'end') | ||||
| secondaryRotorSketch = startSketchOn(centerSpacer, face = 'end') | ||||
|   |> circle(center = [0, 0], radius = rotorDiameter / 2) | ||||
| secondRotor = extrude(secondaryRotorSketch, length = rotorSinglePlateThickness) | ||||
|  | ||||
| lugHoles2 = startSketchOn(secondRotor, 'end') | ||||
| lugHoles2 = startSketchOn(secondRotor, face = 'end') | ||||
|   |> circle(center = [-lugSpacing / 2, 0], radius = 0.315) | ||||
|   |> patternCircular2d( | ||||
|        arcDegrees = 360, | ||||
| @ -46,7 +46,7 @@ lugHoles2 = startSketchOn(secondRotor, 'end') | ||||
|      ) | ||||
|   |> extrude(length = -rotorSinglePlateThickness) | ||||
|  | ||||
| spacerSketch = startSketchOn(rotor, 'start') | ||||
| spacerSketch = startSketchOn(rotor, face = 'start') | ||||
|   |> circle(center = [spacerPatternDiameter / 2, 0], radius = spacerDiameter) | ||||
|   |> patternCircular2d( | ||||
|        arcDegrees = 360, | ||||
| @ -56,7 +56,7 @@ spacerSketch = startSketchOn(rotor, 'start') | ||||
|      ) | ||||
| spacers = extrude(spacerSketch, length = spacerLength) | ||||
|  | ||||
| rotorSlottedSketch = startSketchOn(rotor, 'START') | ||||
| rotorSlottedSketch = startSketchOn(rotor, face = 'START') | ||||
|   |> startProfileAt([2.17, 2.56], %) | ||||
|   |> xLine(length = 0.12) | ||||
|   |> yLine(length = 2.56) | ||||
| @ -71,7 +71,7 @@ rotorSlottedSketch = startSketchOn(rotor, 'START') | ||||
|      ) | ||||
| rotorSlotted = extrude(rotorSlottedSketch, length = -rotorSinglePlateThickness / 2) | ||||
|  | ||||
| secondRotorSlottedSketch = startSketchOn(secondRotor, 'END') | ||||
| secondRotorSlottedSketch = startSketchOn(secondRotor, face = 'END') | ||||
|   |> startProfileAt([-2.17, 2.56], %) | ||||
|   |> xLine(length = -0.12) | ||||
|   |> yLine(length = 2.56) | ||||
|  | ||||
| @ -14,13 +14,13 @@ lugBase = startSketchOn(XZ) | ||||
|   |> extrude(length = wheelWidth / 20) | ||||
|  | ||||
| // Extend the wheel center and bore holes to accomidate the lug heads | ||||
| lugExtrusion = startSketchOn(lugBase, 'END') | ||||
| lugExtrusion = startSketchOn(lugBase, face = 'END') | ||||
|   |> circle(center = [0, 0], radius = (lugSpacing + 1.5) / 2) | ||||
|   |> hole(circle(center = [0, 0], radius = (lugSpacing - 1.5) / 2), %) | ||||
|   |> extrude(length = wheelWidth / 10) | ||||
|  | ||||
| // Create the circular pattern for the lugs | ||||
| lugClearance = startSketchOn(lugExtrusion, 'END') | ||||
| lugClearance = startSketchOn(lugExtrusion, face = 'END') | ||||
|   |> circle(center = [lugSpacing / 2, 0], radius = 1.2 / 2) | ||||
|   |> patternCircular2d( | ||||
|        arcDegrees = 360, | ||||
| @ -31,7 +31,7 @@ lugClearance = startSketchOn(lugExtrusion, 'END') | ||||
|   |> extrude(length = -wheelWidth / 10) | ||||
|  | ||||
| // Create the circular pattern for the lug holes | ||||
| lugHoles = startSketchOn(lugBase, 'END') | ||||
| lugHoles = startSketchOn(lugBase, face = 'END') | ||||
|   |> circle(center = [lugSpacing / 2, 0], radius = fromMm(16) / 2) | ||||
|   |> patternCircular2d( | ||||
|        arcDegrees = 360, | ||||
| @ -75,12 +75,10 @@ wheelCenterOuter = startSketchOn(XY) | ||||
| fn spoke(spokeGap, spokeAngle, spokeThickness) { | ||||
|   // Seperating the spoke base planes | ||||
|   plane001 = { | ||||
|     plane = { | ||||
|       origin = [0.0, 0.0, spokeGap / 2], | ||||
|       xAxis = [1.0, 0.0, spokeAngle], | ||||
|       yAxis = [0.0, 1.0, 0.0], | ||||
|       zAxis = [0.0, 0.0, 1.0] | ||||
|     } | ||||
|     origin = [0.0, 0.0, spokeGap / 2], | ||||
|     xAxis = [1.0, 0.0, spokeAngle], | ||||
|     yAxis = [0.0, 1.0, 0.0], | ||||
|     zAxis = [0.0, 0.0, 1.0] | ||||
|   } | ||||
|  | ||||
|   // Spoke cross sections | ||||
|  | ||||
| @ -8,16 +8,14 @@ | ||||
| import lugDiameter, lugHeadLength, lugThreadDiameter, lugLength, lugThreadDepth, lugSpacing from "parameters.kcl" | ||||
|  | ||||
| customPlane = { | ||||
|   plane = { | ||||
|     origin = { | ||||
|       x = lugSpacing / 2, | ||||
|       y = fromMm(-30), | ||||
|       z = 0 | ||||
|     }, | ||||
|     xAxis = { x = 1, y = 0, z = 0 }, | ||||
|     yAxis = { x = 0, y = -1, z = 0 }, | ||||
|     zAxis = { x = 0, y = 0, z = 1 } | ||||
|   } | ||||
|   origin = { | ||||
|     x = lugSpacing / 2, | ||||
|     y = fromMm(-30), | ||||
|     z = 0 | ||||
|   }, | ||||
|   xAxis = { x = 1, y = 0, z = 0 }, | ||||
|   yAxis = { x = 0, y = -1, z = 0 }, | ||||
|   zAxis = { x = 0, y = 0, z = 1 } | ||||
| } | ||||
|  | ||||
| fn lug(plane, length, diameter) { | ||||
|  | ||||
| @ -26,16 +26,14 @@ pentR = edgeL / 2 / sin(toRadians(36)) | ||||
|  | ||||
| // Define a plane for the bottom angled face | ||||
| plane = { | ||||
|   plane = { | ||||
|     origin = [ | ||||
|       -inscR * cos(toRadians(toDegrees(dihedral) - 90)), | ||||
|       0, | ||||
|       inscR - (inscR * sin(toRadians(toDegrees(dihedral) - 90))) | ||||
|     ], | ||||
|     xAxis = [cos(dihedral), 0.0, sin(dihedral)], | ||||
|     yAxis = [0, 1, 0], | ||||
|     zAxis = [sin(dihedral), 0, -cos(dihedral)] | ||||
|   } | ||||
|   origin = [ | ||||
|     -inscR * cos(toRadians(toDegrees(dihedral) - 90)), | ||||
|     0, | ||||
|     inscR - (inscR * sin(toRadians(toDegrees(dihedral) - 90))) | ||||
|   ], | ||||
|   xAxis = [cos(dihedral), 0.0, sin(dihedral)], | ||||
|   yAxis = [0, 1, 0], | ||||
|   zAxis = [sin(dihedral), 0, -cos(dihedral)] | ||||
| } | ||||
|  | ||||
| // Create a regular pentagon inscribed in a circle of radius pentR | ||||
|  | ||||
| @ -117,7 +117,7 @@ sinkOffsetFront = 40 | ||||
| sinkOffsetLeft = 350 | ||||
| sinkSpacing = tableWidth - sinkWidth - (sinkOffsetLeft * 2) | ||||
|  | ||||
| sinkPlaneOutside = startSketchOn(tableTopBody, 'START') | ||||
| sinkPlaneOutside = startSketchOn(tableTopBody, face = 'START') | ||||
| sinkBodyOutside = startProfileAt([-sinkOffsetLeft, sinkOffsetFront], sinkPlaneOutside) | ||||
|   |> yLine(length = sinkLength) | ||||
|   |> xLine(length = -sinkWidth) | ||||
| @ -127,7 +127,7 @@ sinkBodyOutside = startProfileAt([-sinkOffsetLeft, sinkOffsetFront], sinkPlaneOu | ||||
|   |> patternLinear2d(axis = [-1, 0], instances = sinkCount, distance = sinkSpacing) | ||||
|   |> extrude(length = sinkDepth) | ||||
|  | ||||
| sinkPlaneInside = startSketchOn(tableTopBody, 'END') | ||||
| sinkPlaneInside = startSketchOn(tableTopBody, face = 'END') | ||||
| sinkBodyInside = startProfileAt([ | ||||
|        sinkOffsetLeft + metalThickness, | ||||
|        sinkOffsetFront + metalThickness | ||||
|  | ||||
| @ -37,12 +37,10 @@ extrude001 = extrude(sketch001, length = height) | ||||
| fn function001(originStart) { | ||||
|   // Create a plane to sketch on shell interior | ||||
|   plane001 = { | ||||
|     plane = { | ||||
|       origin = [0.0, 0.0, wallThickness], | ||||
|       xAxis = [1.0, 0.0, 0.0], | ||||
|       yAxis = [0.0, 1.0, 0.0], | ||||
|       zAxis = [0.0, 0.0, 1.0] | ||||
|     } | ||||
|     origin = [0.0, 0.0, wallThickness], | ||||
|     xAxis = [1.0, 0.0, 0.0], | ||||
|     yAxis = [0.0, 1.0, 0.0], | ||||
|     zAxis = [0.0, 0.0, 1.0] | ||||
|   } | ||||
|  | ||||
|   // Create a pillar with a fasterner hole at the center | ||||
| @ -120,7 +118,7 @@ extrude003 = extrude(sketch003, length = wallThickness) | ||||
|      ) | ||||
|  | ||||
| // Define lid inner and sealing surfaces | ||||
| sketch004 = startSketchOn(extrude003, 'END') | ||||
| sketch004 = startSketchOn(extrude003, face = 'END') | ||||
|   |> startProfileAt([ | ||||
|        width * 1.2 + wallThickness, | ||||
|        wallThickness | ||||
|  | ||||
| @ -17,16 +17,14 @@ fn primaryTube(n, angle001, length001, length002, length003) { | ||||
|  | ||||
|   // Define a plane for each sweep path defined by an angle | ||||
|   sweepPlane = { | ||||
|     plane = { | ||||
|       origin = [pos001, 0.0, 0], | ||||
|       xAxis = [ | ||||
|         sin(toRadians(-angle001)), | ||||
|         cos(toRadians(-angle001)), | ||||
|         0.0 | ||||
|       ], | ||||
|       yAxis = [0.0, 0.0, 1.0], | ||||
|       zAxis = [1.0, 0.0, 0.0] | ||||
|     } | ||||
|     origin = [pos001, 0.0, 0], | ||||
|     xAxis = [ | ||||
|       sin(toRadians(-angle001)), | ||||
|       cos(toRadians(-angle001)), | ||||
|       0.0 | ||||
|     ], | ||||
|     yAxis = [0.0, 0.0, 1.0], | ||||
|     zAxis = [1.0, 0.0, 0.0] | ||||
|   } | ||||
|  | ||||
|   // Draw a path for each sweep | ||||
|  | ||||
| @ -37,16 +37,16 @@ flangeBase = startSketchOn(XY) | ||||
|   |> extrude(length = baseThickness) | ||||
|  | ||||
| // Create the extrusion on the top of the flange base | ||||
| topExtrusion = startSketchOn(flangeBase, 'end') | ||||
| topExtrusion = startSketchOn(flangeBase, face = 'end') | ||||
|   |> circle(center = [0, 0], radius = topTotalDiameter / 2) | ||||
|   |> extrude(length = topTotalThickness) | ||||
|  | ||||
| // Create the extrusion on the bottom of the flange base | ||||
| bottomExtrusion = startSketchOn(flangeBase, 'start') | ||||
| bottomExtrusion = startSketchOn(flangeBase, face = 'start') | ||||
|   |> circle(center = [0, 0], radius = bottomTotalDiameter / 2) | ||||
|   |> extrude(length = bottomThickness) | ||||
|  | ||||
| // Cut a hole through the entire body | ||||
| pipeHole = startSketchOn(topExtrusion, 'end') | ||||
| pipeHole = startSketchOn(topExtrusion, face = 'end') | ||||
|   |> circle(center = [0, 0], radius = pipeDia / 2) | ||||
|   |> extrude(%, length = -(topTotalThickness + baseThickness + bottomThickness)) | ||||
|  | ||||
| @ -28,12 +28,10 @@ fn rectShape(pos, w, l) { | ||||
|  | ||||
| // Define the bracket plane | ||||
| bracketPlane = { | ||||
|   plane = { | ||||
|     origin = { x = 0, y = length / 2 + thk, z = 0 }, | ||||
|     xAxis = { x = 1, y = 0, z = 0 }, | ||||
|     yAxis = { x = 0, y = 0, z = 1 }, | ||||
|     zAxis = { x = 0, y = -1, z = 0 } | ||||
|   } | ||||
|   origin = { x = 0, y = length / 2 + thk, z = 0 }, | ||||
|   xAxis = { x = 1, y = 0, z = 0 }, | ||||
|   yAxis = { x = 0, y = 0, z = 1 }, | ||||
|   zAxis = { x = 0, y = -1, z = 0 } | ||||
| } | ||||
|  | ||||
| // Build the bracket sketch around the body | ||||
| @ -67,12 +65,10 @@ bracketBody = bs | ||||
|  | ||||
| // Define the tab plane | ||||
| tabPlane = { | ||||
|   plane = { | ||||
|     origin = { x = 0, y = 0, z = depth + thk }, | ||||
|     xAxis = { x = 1, y = 0, z = 0 }, | ||||
|     yAxis = { x = 0, y = 1, z = 0 }, | ||||
|     zAxis = { x = 0, y = 0, z = 1 } | ||||
|   } | ||||
|   origin = { x = 0, y = 0, z = depth + thk }, | ||||
|   xAxis = { x = 1, y = 0, z = 0 }, | ||||
|   yAxis = { x = 0, y = 1, z = 0 }, | ||||
|   zAxis = { x = 0, y = 0, z = 1 } | ||||
| } | ||||
|  | ||||
| // Build the tabs of the mounting bracket (right side) | ||||
| @ -125,12 +121,10 @@ tabsL = startSketchOn(tabPlane) | ||||
|  | ||||
| // Define a plane for retention bumps | ||||
| retPlane = { | ||||
|   plane = { | ||||
|     origin = { x = -width / 2 + 20, y = 0, z = 0 }, | ||||
|     xAxis = { x = 0, y = 1, z = 0 }, | ||||
|     yAxis = { x = 0, y = 0, z = 1 }, | ||||
|     zAxis = { x = 1, y = 0, z = 0 } | ||||
|   } | ||||
|   origin = { x = -width / 2 + 20, y = 0, z = 0 }, | ||||
|   xAxis = { x = 0, y = 1, z = 0 }, | ||||
|   yAxis = { x = 0, y = 0, z = 1 }, | ||||
|   zAxis = { x = 1, y = 0, z = 0 } | ||||
| } | ||||
|  | ||||
| // Build the retention bump in the front | ||||
|  | ||||
| @ -114,12 +114,10 @@ fillet( | ||||
|  | ||||
| // Define a plane which is at the end of the handle | ||||
| handlePlane = { | ||||
|   plane = { | ||||
|     origin = [208.593833, 0.0, 75.921946], | ||||
|     xAxis = [0.342020, -0.0, -0.939693], | ||||
|     yAxis = [0.0, 1.0, 0.0], | ||||
|     zAxis = [0.939693, -0.0, 0.342020] | ||||
|   } | ||||
|   origin = [208.593833, 0.0, 75.921946], | ||||
|   xAxis = [0.342020, -0.0, -0.939693], | ||||
|   yAxis = [0.0, 1.0, 0.0], | ||||
|   zAxis = [0.939693, -0.0, 0.342020] | ||||
| } | ||||
|  | ||||
| // Create a sketch on the handle plane | ||||
| @ -157,7 +155,7 @@ gripProfile = startProfileAt([-26.806746, -10.0], gripSketch) | ||||
| grip = extrude(gripProfile, length = -gripLength) | ||||
|  | ||||
| // Create a sketch on the grip for the hole | ||||
| holeSketch = startSketchOn(grip, gripEdgeTop) | ||||
| holeSketch = startSketchOn(grip, face = gripEdgeTop) | ||||
|  | ||||
| // Create a profile for the grip hole | ||||
| gripHoleProfile = slot(holeSketch, [0, 200], [0, 210], gripSlotWidth) | ||||
|  | ||||
| @ -21,12 +21,10 @@ sketch001 = startSketchOn(XZ) | ||||
|  | ||||
| // Create an angled plane to sketch the supports | ||||
| plane001 = { | ||||
|   plane = { | ||||
|     origin = [-0.26, 0.26, 0.0], | ||||
|     xAxis = [1, 1, 0.0], | ||||
|     yAxis = [0.0, 0.0, 1.0], | ||||
|     zAxis = [1.0, 0.0, 0.0] | ||||
|   } | ||||
|   origin = [-0.26, 0.26, 0.0], | ||||
|   xAxis = [1, 1, 0.0], | ||||
|   yAxis = [0.0, 0.0, 1.0], | ||||
|   zAxis = [1.0, 0.0, 0.0] | ||||
| } | ||||
|  | ||||
| // Cross section of the metal supports | ||||
| @ -88,7 +86,7 @@ sketch003 = startSketchOn(offsetPlane(XY, offset = 1)) | ||||
|  | ||||
| extrude001 = extrude(sketch003, length = 0.050) | ||||
|  | ||||
| sketch004 = startSketchOn(extrude001, 'END') | ||||
| sketch004 = startSketchOn(extrude001, face = 'END') | ||||
|   |> startProfileAt([0.3, 0.17], %) | ||||
|   |> yLine(length = 1.2) | ||||
|   |> arc({ | ||||
| @ -140,7 +138,7 @@ sketch007 = startSketchOn(offsetPlane(XY, offset = 1.12)) | ||||
| extrude003 = extrude(sketch007, length = 0.050) | ||||
|  | ||||
| // Pattern holes in the spiral plate | ||||
| sketch008 = startSketchOn(extrude003, 'END') | ||||
| sketch008 = startSketchOn(extrude003, face = 'END') | ||||
|   |> circle(center = [1.4, 0], radius = .3) | ||||
|   |> patternCircular2d( | ||||
|        center = [0, 0], | ||||
| @ -152,7 +150,7 @@ sketch008 = startSketchOn(extrude003, 'END') | ||||
| extrude004 = extrude(sketch008, length = -0.050) | ||||
|  | ||||
| // Pattern holes in the spiral plate | ||||
| sketch009 = startSketchOn(extrude003, 'END') | ||||
| sketch009 = startSketchOn(extrude003, face = 'END') | ||||
|   |> circle(center = [0.6, 0], radius = .2) | ||||
|   |> patternCircular2d( | ||||
|        center = [0, 0], | ||||
|  | ||||
| @ -87,7 +87,7 @@ holeRadius = 1 | ||||
| startAngle = asin(keywayWidth / 2 / holeRadius) | ||||
|  | ||||
| // Sketch the keyway and center hole and extrude | ||||
| keyWay = startSketchOn(body, 'END') | ||||
| keyWay = startSketchOn(body, face = 'END') | ||||
|   |> startProfileAt([ | ||||
|        holeRadius * cos(startAngle), | ||||
|        holeRadius * sin(startAngle) | ||||
|  | ||||
| @ -109,7 +109,7 @@ singleBinFill = startSketchOn(XY) | ||||
|        ], | ||||
|      ) | ||||
|  | ||||
| magCutout000 = startSketchOn(singleBinFill, "start") | ||||
| magCutout000 = startSketchOn(singleBinFill, face = "start") | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -magOffset - binBaseLength - binTol, | ||||
| @ -195,42 +195,36 @@ fn lipFace(plane) { | ||||
| } | ||||
|  | ||||
| plane000 = { | ||||
|   plane = { | ||||
|     origin = [ | ||||
|       cornerRadius, | ||||
|       0.0, | ||||
|       height + binHeight * countBinHeight | ||||
|     ], | ||||
|     xAxis = [0.0, 1.0, 0.0], | ||||
|     yAxis = [0.0, 0.0, 1.0], | ||||
|     zAxis = [1.0, 0.0, 0.0] | ||||
|   } | ||||
|   origin = [ | ||||
|     cornerRadius, | ||||
|     0.0, | ||||
|     height + binHeight * countBinHeight | ||||
|   ], | ||||
|   xAxis = [0.0, 1.0, 0.0], | ||||
|   yAxis = [0.0, 0.0, 1.0], | ||||
|   zAxis = [1.0, 0.0, 0.0] | ||||
| } | ||||
|  | ||||
| plane001 = { | ||||
|   plane = { | ||||
|     origin = [ | ||||
|       0.0, | ||||
|       cornerRadius, | ||||
|       height + binHeight * countBinHeight | ||||
|     ], | ||||
|     xAxis = [1.0, 0.0, 0.0], | ||||
|     yAxis = [0.0, 0.0, 1.0], | ||||
|     zAxis = [0.0, 1.0, 0.0] | ||||
|   } | ||||
|   origin = [ | ||||
|     0.0, | ||||
|     cornerRadius, | ||||
|     height + binHeight * countBinHeight | ||||
|   ], | ||||
|   xAxis = [1.0, 0.0, 0.0], | ||||
|   yAxis = [0.0, 0.0, 1.0], | ||||
|   zAxis = [0.0, 1.0, 0.0] | ||||
| } | ||||
|  | ||||
| plane002 = { | ||||
|   plane = { | ||||
|     origin = [ | ||||
|       countBinWidth * (binLength + 2 * binTol) - cornerRadius, | ||||
|       0.0, | ||||
|       height + binHeight * countBinHeight | ||||
|     ], | ||||
|     xAxis = [0.0, 1.0, 0.0], | ||||
|     yAxis = [0.0, 0.0, 1.0], | ||||
|     zAxis = [1.0, 0.0, 0.0] | ||||
|   } | ||||
|   origin = [ | ||||
|     countBinWidth * (binLength + 2 * binTol) - cornerRadius, | ||||
|     0.0, | ||||
|     height + binHeight * countBinHeight | ||||
|   ], | ||||
|   xAxis = [0.0, 1.0, 0.0], | ||||
|   yAxis = [0.0, 0.0, 1.0], | ||||
|   zAxis = [1.0, 0.0, 0.0] | ||||
| } | ||||
|  | ||||
| // Extrude a single side of the lip of the bin | ||||
|  | ||||
| @ -102,7 +102,7 @@ singleBinFill = startSketchOn(XY) | ||||
|        ], | ||||
|      ) | ||||
|  | ||||
| magCutout000 = startSketchOn(singleBinFill, "start") | ||||
| magCutout000 = startSketchOn(singleBinFill, face = "start") | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -magOffset - binBaseLength - binTol, | ||||
|  | ||||
| @ -39,7 +39,7 @@ sketch001 = startSketchOn(YZ) | ||||
|      ) | ||||
|  | ||||
| // Create a short cylindrical foot at each corner of the keyboard | ||||
| sketch003 = startSketchOn(sketch001, seg04) | ||||
| sketch003 = startSketchOn(sketch001, face = seg04) | ||||
| profile001 = circle(sketch003, center = [0.75, 0.75], radius = 0.4) | ||||
| profile003 = circle(sketch003, center = [4.4, 0.75], radius = 0.4) | ||||
| profile004 = circle(sketch003, center = [0.73, 13.6 - .75], radius = 0.4) | ||||
| @ -56,12 +56,10 @@ extrude( | ||||
|  | ||||
| // Define the plane to sketch keyboard keys on | ||||
| plane001 = { | ||||
|   plane = { | ||||
|     origin = [0.0, 0.0, 0.7], | ||||
|     xAxis = [1.0, 0.0, 0.0], | ||||
|     yAxis = [0.0, 1.0, sin(toRadians(7))], | ||||
|     zAxis = [0.0, 0.0, 1.0] | ||||
|   } | ||||
|   origin = [0.0, 0.0, 0.7], | ||||
|   xAxis = [1.0, 0.0, 0.0], | ||||
|   yAxis = [0.0, 1.0, sin(toRadians(7))], | ||||
|   zAxis = [0.0, 0.0, 1.0] | ||||
| } | ||||
|  | ||||
| // Create a function to build a key. Parameterize for position, width, height, number of instances, and appearance color. | ||||
| @ -128,12 +126,10 @@ keyFn([spacing * 3 + 12, row6], 1, keyHeight * .6, 0, highlightColor2) | ||||
|  | ||||
| // Create a plane to sketch ZOO brand letters on | ||||
| plane002 = { | ||||
|   plane = { | ||||
|     origin = [0.0, 0.0, .81], | ||||
|     xAxis = [1.0, 0.0, 0.0], | ||||
|     yAxis = [0.0, 1.0, sin(toRadians(7))], | ||||
|     zAxis = [0.0, 0.0, 1.0] | ||||
|   } | ||||
|   origin = [0.0, 0.0, .81], | ||||
|   xAxis = [1.0, 0.0, 0.0], | ||||
|   yAxis = [0.0, 1.0, sin(toRadians(7))], | ||||
|   zAxis = [0.0, 0.0, 1.0] | ||||
| } | ||||
|  | ||||
| // Define a function to draw the ZOO 'Z' | ||||
|  | ||||
| @ -3,7 +3,7 @@ | ||||
|  | ||||
| // Pixel box function | ||||
| fn pixelBox(kitExtrude, extrudeTag, positionY, positionZ, width, height, depth) { | ||||
|   pixelBoxBody = startSketchOn(kitExtrude, extrudeTag) | ||||
|   pixelBoxBody = startSketchOn(kitExtrude, face = extrudeTag) | ||||
|     |> startProfileAt([positionY, positionZ], %) | ||||
|     |> line(end = [0, height]) | ||||
|     |> line(end = [width, 0]) | ||||
| @ -45,7 +45,7 @@ kitFaceWidth = kitHeadWidth - 4 | ||||
| kitFaceHeight = kitHeadElevation + kitHeadHeight - kitFaceElevation - 3 | ||||
| kitFaceDepth = 2 | ||||
|  | ||||
| kitFace = startSketchOn(kitHead, 'END') | ||||
| kitFace = startSketchOn(kitHead, face = 'END') | ||||
|   |> startProfileAt([-kitFaceWidth / 2, kitFaceElevation], %) | ||||
|   |> line(end = [0, 1]) // left lower corner up | ||||
|   |> line(end = [-1, 0]) // left lower corner left | ||||
| @ -78,7 +78,7 @@ kitLeftEye2 = pixelBox(kitFace, 'START', -kitEyeOffset + 1, kitEyeHeihgt + 1, 3, | ||||
| kitLeftEye3 = pixelBox(kitFace, 'START', -kitEyeOffset + 4, kitEyeHeihgt, 1, 1, kitEyeDepth) | ||||
| kitRightEye = pixelBox(kitFace, 'START', kitEyeOffset - 3, kitEyeHeihgt - 1, 2, 4, kitEyeDepth) | ||||
| kitNoseElevation = kitEyeHeihgt - 5 | ||||
| kitNose = startSketchOn(kitFace, 'START') | ||||
| kitNose = startSketchOn(kitFace, face = 'START') | ||||
|   |> startProfileAt([-2, kitNoseElevation], %) // H V | ||||
|   |> line(end = [0, 1]) // lower-left up | ||||
|   |> line(end = [2, 0]) // lower-left right | ||||
|  | ||||
| @ -35,7 +35,7 @@ base = startSketchOn(XY) | ||||
|   |> extrude(length = height) | ||||
|  | ||||
| // Sketch and extrude a rectangular shape to create the shell underneath the lego. Will replace with shell function when able to call a face created from shell. | ||||
| shellExtrude = startSketchOn(base, "start") | ||||
| shellExtrude = startSketchOn(base, face = "start") | ||||
|   |> startProfileAt([ | ||||
|        -(totalWidth / 2 - t), | ||||
|        -(totalLength / 2 - t) | ||||
| @ -47,7 +47,7 @@ shellExtrude = startSketchOn(base, "start") | ||||
|   |> extrude(length = -(height - t)) | ||||
|  | ||||
| // Create the pegs on the top of the base | ||||
| peg = startSketchOn(base, 'end') | ||||
| peg = startSketchOn(base, face = 'end') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -(pitch * (wbumps - 1) / 2), | ||||
| @ -60,7 +60,7 @@ peg = startSketchOn(base, 'end') | ||||
|   |> extrude(length = bumpHeight) | ||||
|  | ||||
| // Create the pegs on the bottom of the base | ||||
| tubePattern = startSketchOn(shellExtrude, 'start') | ||||
| tubePattern = startSketchOn(shellExtrude, face = 'start') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -(pitch * (wbumps - 1) / 2 - (pitch / 2)), | ||||
|  | ||||
| @ -28,37 +28,31 @@ export axisJ3CArmThickness = 2.5 | ||||
|  | ||||
| // Planes | ||||
| export plane001 = { | ||||
|   plane = { | ||||
|     origin = [0.0, 0.0, baseHeight - 1.5 + 0.1], | ||||
|     xAxis = [1.0, 0.0, 0.0], | ||||
|     yAxis = [0.0, 1.0, 0.0], | ||||
|     zAxis = [0.0, 0.0, 1.0] | ||||
|   } | ||||
|   origin = [0.0, 0.0, baseHeight - 1.5 + 0.1], | ||||
|   xAxis = [1.0, 0.0, 0.0], | ||||
|   yAxis = [0.0, 1.0, 0.0], | ||||
|   zAxis = [0.0, 0.0, 1.0] | ||||
| } | ||||
|  | ||||
| export plane002 = { | ||||
|   plane = { | ||||
|     origin = [0.0, 0.0, 0.0], | ||||
|     xAxis = [ | ||||
|       sin(toRadians(axisJ1)), | ||||
|       cos(toRadians(axisJ1)), | ||||
|       0.0 | ||||
|     ], | ||||
|     yAxis = [0.0, 0.0, 1.0], | ||||
|     zAxis = [1.0, 0.0, 0.0] | ||||
|   } | ||||
|   origin = [0.0, 0.0, 0.0], | ||||
|   xAxis = [ | ||||
|     sin(toRadians(axisJ1)), | ||||
|     cos(toRadians(axisJ1)), | ||||
|     0.0 | ||||
|   ], | ||||
|   yAxis = [0.0, 0.0, 1.0], | ||||
|   zAxis = [1.0, 0.0, 0.0] | ||||
| } | ||||
|  | ||||
| // Define Plane to Move J2 Axis Robot Arm | ||||
| export plane003 = { | ||||
|   plane = { | ||||
|     origin = [-0.1, 0.0, 0.0], | ||||
|     xAxis = [ | ||||
|       sin(toRadians(axisJ1)), | ||||
|       cos(toRadians(axisJ1)), | ||||
|       0.0 | ||||
|     ], | ||||
|     yAxis = [0.0, 0.0, 1.0], | ||||
|     zAxis = [1.0, 0.0, 0.0] | ||||
|   } | ||||
|   origin = [-0.1, 0.0, 0.0], | ||||
|   xAxis = [ | ||||
|     sin(toRadians(axisJ1)), | ||||
|     cos(toRadians(axisJ1)), | ||||
|     0.0 | ||||
|   ], | ||||
|   yAxis = [0.0, 0.0, 1.0], | ||||
|   zAxis = [1.0, 0.0, 0.0] | ||||
| } | ||||
|  | ||||
| @ -26,16 +26,16 @@ extrude001 = extrude(sketch001, length = basePlateThickness) | ||||
|      ) | ||||
|  | ||||
| // Base Motor for actuating first joint | ||||
| sketch002 = startSketchOn(extrude001, 'END') | ||||
| sketch002 = startSketchOn(extrude001, face = 'END') | ||||
|   |> circle(center = [0, 0], radius = 4, tag = $referenceEdge) | ||||
| extrude002 = extrude(sketch002, length = baseHeight - basePlateThickness - 1.5) | ||||
|   |> fillet(radius = 0.1, tags = [getOppositeEdge(referenceEdge)]) | ||||
| sketch003 = startSketchOn(extrude002, 'END') | ||||
| sketch003 = startSketchOn(extrude002, face = 'END') | ||||
|   |> circle(center = [0, 0], radius = 0.5) | ||||
| extrude003 = extrude(sketch003, length = 1) | ||||
|  | ||||
| // Pattern M8 mounting bolts in base | ||||
| sketch4A = startSketchOn(extrude001, 'END') | ||||
| sketch4A = startSketchOn(extrude001, face = 'END') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -basePlateRadius + 1, | ||||
| @ -52,7 +52,7 @@ sketch4A = startSketchOn(extrude001, 'END') | ||||
|  | ||||
| extrude4A = extrude(sketch4A, length = -basePlateThickness) | ||||
|  | ||||
| sketch4B = startSketchOn(extrude001, 'END') | ||||
| sketch4B = startSketchOn(extrude001, face = 'END') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -basePlateRadius + 0.5 + baseChamfer, | ||||
|  | ||||
| @ -26,12 +26,12 @@ sketch011 = startSketchOn(plane003) | ||||
|   |> close() | ||||
| extrude011 = extrude(sketch011, length = -axisJ2ArmThickness) | ||||
|  | ||||
| sketch012 = startSketchOn(extrude011, 'START') | ||||
| sketch012 = startSketchOn(extrude011, face = 'START') | ||||
|   |> circle(center = [-1.75, 8], radius = 1.9, tag = $referenceEdge4) | ||||
|  | ||||
| extrude012 = extrude(sketch012, length = 0.15) | ||||
|   |> fillet(radius = 0.1, tags = [getOppositeEdge(referenceEdge4)]) | ||||
| sketch013 = startSketchOn(extrude011, 'START') | ||||
| sketch013 = startSketchOn(extrude011, face = 'START') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -1.75 - (axisJ2ArmLength * cos(toRadians(axisJ2))), | ||||
| @ -45,7 +45,7 @@ extrude013 = extrude(sketch013, length = 1) | ||||
|   |> fillet(radius = 0.1, tags = [getOppositeEdge(referenceEdge5)]) | ||||
|  | ||||
| // Draw Bolt Patterns on J2 Robot Arm | ||||
| sketch014 = startSketchOn(extrude012, 'END') | ||||
| sketch014 = startSketchOn(extrude012, face = 'END') | ||||
|   |> circle(center = [-1.75, 6.75], radius = 0.2) | ||||
|   |> patternCircular2d( | ||||
|        center = [-1.75, 8], | ||||
| @ -56,7 +56,7 @@ sketch014 = startSketchOn(extrude012, 'END') | ||||
|  | ||||
| extrude014 = extrude(sketch014, length = 0.15) | ||||
|  | ||||
| sketch015 = startSketchOn(extrude013, 'END') | ||||
| sketch015 = startSketchOn(extrude013, face = 'END') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -1.75 - ((axisJ2ArmLength - 1) * cos(toRadians(axisJ2))), | ||||
| @ -76,7 +76,7 @@ sketch015 = startSketchOn(extrude013, 'END') | ||||
|  | ||||
| extrude015 = extrude(sketch015, length = 0.15) | ||||
|  | ||||
| sketch016 = startSketchOn(extrude011, 'END') | ||||
| sketch016 = startSketchOn(extrude011, face = 'END') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          1.75 + axisJ2ArmLength * cos(toRadians(axisJ2)), | ||||
|  | ||||
| @ -26,7 +26,7 @@ sketch017 = startSketchOn(plane002) | ||||
|   |> close() | ||||
| extrude017 = extrude(sketch017, length = axisJ3CArmThickness) | ||||
|  | ||||
| sketch018 = startSketchOn(extrude017, 'END') | ||||
| sketch018 = startSketchOn(extrude017, face = 'END') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          1.75 + axisJ2ArmLength * cos(toRadians(axisJ2)), | ||||
| @ -40,7 +40,7 @@ extrude018 = extrude(sketch018, length = 0.15) | ||||
|   |> fillet(radius = 0.1, tags = [getOppositeEdge(referenceEdge6)]) | ||||
|  | ||||
| // Draw Bolt Pattern on J3 Robot Arm | ||||
| sketch019 = startSketchOn(extrude018, 'END') | ||||
| sketch019 = startSketchOn(extrude018, face = 'END') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          1.75 + (axisJ2ArmLength - 1) * cos(toRadians(axisJ2)), | ||||
| @ -61,7 +61,7 @@ sketch019 = startSketchOn(extrude018, 'END') | ||||
| extrude019 = extrude(sketch019, length = 0.15) | ||||
|  | ||||
| // On the J3 Robot Arm Body, Create Mounting Clevis for Grabber Claw | ||||
| sketch020 = startSketchOn(extrude017, 'START') | ||||
| sketch020 = startSketchOn(extrude017, face = 'START') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -1.75 - (axisJ2ArmLength * cos(toRadians(axisJ2))) - (axisJ3CArmLength * cos(toRadians(axisJ3C))), | ||||
| @ -71,7 +71,7 @@ sketch020 = startSketchOn(extrude017, 'START') | ||||
|      ) | ||||
| extrude020 = extrude(sketch020, length = -0.5) | ||||
|  | ||||
| sketch021 = startSketchOn(extrude017, 'END') | ||||
| sketch021 = startSketchOn(extrude017, face = 'END') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          1.75 + axisJ2ArmLength * cos(toRadians(axisJ2)) + axisJ3CArmLength * cos(toRadians(axisJ3C)), | ||||
| @ -85,13 +85,13 @@ extrude021 = extrude(sketch021, length = -0.5) | ||||
| // Define Grabber Claw Constants | ||||
| grabberLength = 7 | ||||
|  | ||||
| sketch022 = startSketchOn(extrude021, 'START') | ||||
| sketch022 = startSketchOn(extrude021, face = 'START') | ||||
|   |> circle(center = [0, 0], radius = 0.10) | ||||
|  | ||||
| extrude022 = extrude(sketch022, length = -0.01) | ||||
|  | ||||
| // Build Upper Claw Finger | ||||
| sketch023 = startSketchOn(extrude022, 'START') | ||||
| sketch023 = startSketchOn(extrude022, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        1.75 + axisJ2ArmLength * cos(toRadians(axisJ2)) + axisJ3CArmLength * cos(toRadians(axisJ3C)), | ||||
|        8 + axisJ2ArmLength * sin(toRadians(axisJ2)) + axisJ3CArmLength * sin(toRadians(axisJ3C)) | ||||
| @ -112,7 +112,7 @@ sketch023 = startSketchOn(extrude022, 'START') | ||||
| extrude023 = extrude(sketch023, length = -1.5) | ||||
|  | ||||
| // Build Lower Claw Finger | ||||
| sketch024 = startSketchOn(extrude022, 'START') | ||||
| sketch024 = startSketchOn(extrude022, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        1.75 + axisJ2ArmLength * cos(toRadians(axisJ2)) + axisJ3CArmLength * cos(toRadians(axisJ3C)), | ||||
|        8 + axisJ2ArmLength * sin(toRadians(axisJ2)) + axisJ3CArmLength * sin(toRadians(axisJ3C)) | ||||
|  | ||||
| @ -26,7 +26,7 @@ sketch006 = startSketchOn(plane002) | ||||
|  | ||||
| extrude006 = extrude(sketch006, length = 1) | ||||
|  | ||||
| sketch007 = startSketchOn(extrude006, 'END') | ||||
| sketch007 = startSketchOn(extrude006, face = 'END') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          1.75 * cos(toRadians(axisJ1)) / abs(cos(toRadians(axisJ1))), | ||||
| @ -39,7 +39,7 @@ extrude007 = extrude(sketch007, length = 1.5) | ||||
|   |> fillet(radius = 0.1, tags = [getOppositeEdge(referenceEdge2)]) | ||||
|  | ||||
| // Draw Bolt Pattern on Rotating Base | ||||
| sketch008 = startSketchOn(extrude007, 'END') | ||||
| sketch008 = startSketchOn(extrude007, face = 'END') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          1.75 * cos(toRadians(axisJ1)) / abs(cos(toRadians(axisJ1))), | ||||
| @ -58,7 +58,7 @@ sketch008 = startSketchOn(extrude007, 'END') | ||||
|      ) | ||||
| extrude008 = extrude(sketch008, length = 0.2) | ||||
|  | ||||
| sketch009 = startSketchOn(extrude007, 'END') | ||||
| sketch009 = startSketchOn(extrude007, face = 'END') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          1.75 * cos(toRadians(axisJ1)) / abs(cos(toRadians(axisJ1))), | ||||
|  | ||||
| @ -22,7 +22,7 @@ body = startSketchOn(XY) | ||||
|   |> line(endAbsolute = [-width / 2, length / 2]) | ||||
|   |> close() | ||||
|   |> extrude(length = height) | ||||
| counterBoreHoles = startSketchOn(body, 'end') | ||||
| counterBoreHoles = startSketchOn(body, face = 'end') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -(width / 2 - (padding / 2)), | ||||
| @ -34,7 +34,7 @@ counterBoreHoles = startSketchOn(body, 'end') | ||||
|   |> patternLinear2d(instances = 2, distance = width - padding, axis = [1, 0]) | ||||
|   |> extrude(%, length = -cbDepth) | ||||
|  | ||||
| boltHoles = startSketchOn(body, 'start') | ||||
| boltHoles = startSketchOn(body, face = 'start') | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -(width / 2 - (padding / 2)), | ||||
| @ -46,6 +46,6 @@ boltHoles = startSketchOn(body, 'start') | ||||
|   |> patternLinear2d(instances = 2, distance = width - padding, axis = [1, 0]) | ||||
|   |> extrude(length = -height + cbDepth) | ||||
|  | ||||
| centerHole = startSketchOn(body, 'end') | ||||
| centerHole = startSketchOn(body, face = 'end') | ||||
|   |> circle(center = [0, 0], radius = bearingDia / 2) | ||||
|   |> extrude(length = -height) | ||||
|  | ||||
| @ -15,7 +15,7 @@ export fn pipe() { | ||||
|     |> extrude(%, length = pipeLength) | ||||
|  | ||||
|   // Extrude a hole through the length of the pipe | ||||
|   pipe = startSketchOn(pipeBase, 'end') | ||||
|   pipe = startSketchOn(pipeBase, face = 'end') | ||||
|     |> circle(center = [0, 0], radius = pipeInnerDiameter / 2) | ||||
|     |> extrude(%, length = -pipeLength) | ||||
|     |> appearance(color = "#a24ed0") | ||||
|  | ||||
| @ -27,15 +27,15 @@ export fn flange() { | ||||
|     |> extrude(%, length = flangeBaseThickness) | ||||
|  | ||||
|   // Create both the raised portions on the front and back of the flange base | ||||
|   flangeBack = startSketchOn(flangeBase, 'start') | ||||
|   flangeBack = startSketchOn(flangeBase, face = 'start') | ||||
|     |> circle(%, center = [0, 0], radius = flangeBackDiameter / 2) | ||||
|     |> extrude(%, length = flangeBackHeight) | ||||
|   flangeFront = startSketchOn(flangeBase, 'end') | ||||
|   flangeFront = startSketchOn(flangeBase, face = 'end') | ||||
|     |> circle(%, center = [0, 0], radius = flangeFrontDiameter / 2) | ||||
|     |> extrude(%, length = flangeFrontHeight) | ||||
|  | ||||
|   // Create the circular cut in the center for the pipe | ||||
|   pipeCut = startSketchOn(flangeFront, 'end') | ||||
|   pipeCut = startSketchOn(flangeFront, face = 'end') | ||||
|     |> circle(%, center = [0, 0], radius = pipeDiameter / 2) | ||||
|     |> extrude(%, length = -flangeTotalThickness) | ||||
|     |> appearance(%, color = "#bab0b0") | ||||
|  | ||||
| @ -16,7 +16,7 @@ export fn bolt() { | ||||
|     |> fillet(radius = 0.020, tags = [topEdge, getOppositeEdge(topEdge)]) | ||||
|  | ||||
|   // Define the sketch of the hex pattern on the screw head and extrude into the head | ||||
|   hexPatternSketch = startSketchOn(boltHead, 'start') | ||||
|   hexPatternSketch = startSketchOn(boltHead, face = 'start') | ||||
|     |> startProfileAt([ | ||||
|          boltHexDrive / 2, | ||||
|          boltHexFlatLength / 2 | ||||
| @ -30,7 +30,7 @@ export fn bolt() { | ||||
|     |> extrude(length = -boltHeadLength * 0.75) | ||||
|  | ||||
|   // create the body of the bolt | ||||
|   boltBody = startSketchOn(boltHead, 'end') | ||||
|   boltBody = startSketchOn(boltHead, face = 'end') | ||||
|     |> circle(center = [0, 0], radius = boltDiameter / 2, tag = $filletEdge) | ||||
|     |> extrude(length = boltLength) | ||||
|     |> appearance(color = "#4dd043", metalness = 90, roughness = 90) | ||||
|  | ||||
| @ -13,7 +13,7 @@ gasketBase = startSketchOn(XY) | ||||
|   |> extrude(%, length = gasketThickness) | ||||
|  | ||||
| // Extrude a circular hole through the gasket base | ||||
| startSketchOn(gasketBase, 'end') | ||||
| startSketchOn(gasketBase, face = 'end') | ||||
|   |> circle(%, center = [0, 0], radius = gasketInnerDiameter / 2) | ||||
|   |> extrude(%, length = -gasketThickness) | ||||
|   |> appearance(%, color = "#d0cb3e") | ||||
|  | ||||
| @ -24,7 +24,7 @@ export fn hexNut() { | ||||
|     |> extrude(length = hexNutThickness) | ||||
|  | ||||
|   // Create the hole in the center of the hex nut | ||||
|   hexNut = startSketchOn(hexNutBase, 'end') | ||||
|   hexNut = startSketchOn(hexNutBase, face = 'end') | ||||
|     |> circle(center = [0, 0], radius = hexNutDiameter / 2) | ||||
|     |> extrude(%, length = -hexNutThickness) | ||||
|     |> appearance(%, color = "#4edfd5") | ||||
|  | ||||
| @ -15,7 +15,7 @@ export fn washer() { | ||||
|     |> extrude(length = washerThickness) | ||||
|  | ||||
|   // Extrude a hole through the washer | ||||
|   washer = startSketchOn(washerBase, 'end') | ||||
|   washer = startSketchOn(washerBase, face = 'end') | ||||
|     |> circle(center = [0, 0], radius = washerInnerDia / 2) | ||||
|     |> extrude(%, length = -washerThickness) | ||||
|     |> appearance(%, color = "#ee4f4f") | ||||
|  | ||||
| @ -15,7 +15,7 @@ pipeBase = startSketchOn(XZ) | ||||
|   |> extrude(%, length = pipeLength) | ||||
|  | ||||
| // Extrude a hole through the length of the pipe | ||||
| pipe = startSketchOn(pipeBase, 'end') | ||||
| pipe = startSketchOn(pipeBase, face = 'end') | ||||
|   |> circle(center = [0, 0], radius = pipeInnerDiameter / 2) | ||||
|   |> extrude(%, length = -pipeLength) | ||||
|   |> appearance(color = "#a24ed0") | ||||
|  | ||||
| @ -56,16 +56,14 @@ sketch002 = startSketchOn(-YZ) | ||||
|   |> extrude(length = backLength - height) | ||||
|  | ||||
| customPlane = { | ||||
|   plane = { | ||||
|     origin = { | ||||
|       x = 0, | ||||
|       y = -(wallsWidth / 2 - (wallThickness / 2)), | ||||
|       z = 0 | ||||
|     }, | ||||
|     xAxis = { x = 1, y = 0, z = 0 }, | ||||
|     yAxis = { x = 0, y = 0, z = 1 }, | ||||
|     zAxis = { x = 0, y = -1, z = 0 } | ||||
|   } | ||||
|   origin = { | ||||
|     x = 0, | ||||
|     y = -(wallsWidth / 2 - (wallThickness / 2)), | ||||
|     z = 0 | ||||
|   }, | ||||
|   xAxis = { x = 1, y = 0, z = 0 }, | ||||
|   yAxis = { x = 0, y = 0, z = 1 }, | ||||
|   zAxis = { x = 0, y = -1, z = 0 } | ||||
| } | ||||
| sketch003 = startSketchOn(customPlane) | ||||
|   |> startProfileAt([0, 0], %) | ||||
| @ -75,7 +73,7 @@ sketch003 = startSketchOn(customPlane) | ||||
|   |> extrude(length = wallThickness) | ||||
|  | ||||
| // Create the right side wall of the tub | ||||
| sketch004 = startSketchOn(sketch002, 'END') | ||||
| sketch004 = startSketchOn(sketch002, face = 'END') | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> yLine(endAbsolute = height) | ||||
|   |> xLine(endAbsolute = wallThickness) | ||||
| @ -95,16 +93,14 @@ sketch004 = startSketchOn(sketch002, 'END') | ||||
|   |> extrude(length = wallThickness) | ||||
|  | ||||
| customPlane2 = { | ||||
|   plane = { | ||||
|     origin = { | ||||
|       x = -1 * (backLength - height + wallsWidth), | ||||
|       y = 0, | ||||
|       z = 0 | ||||
|     }, | ||||
|     xAxis = { x = 0, y = -1, z = 0 }, | ||||
|     yAxis = { x = 0, y = 0, z = 1 }, | ||||
|     zAxis = { x = 1, y = 0, z = 0 } | ||||
|   } | ||||
|   origin = { | ||||
|     x = -1 * (backLength - height + wallsWidth), | ||||
|     y = 0, | ||||
|     z = 0 | ||||
|   }, | ||||
|   xAxis = { x = 0, y = -1, z = 0 }, | ||||
|   yAxis = { x = 0, y = 0, z = 1 }, | ||||
|   zAxis = { x = 1, y = 0, z = 0 } | ||||
| } | ||||
| sketch005 = startSketchOn(customPlane2) | ||||
|   |> startProfileAt([0, 0], %) | ||||
| @ -119,7 +115,7 @@ sketch005 = startSketchOn(customPlane2) | ||||
|   |> close() | ||||
|   |> extrude(length = wallThickness) | ||||
|  | ||||
| sketch006 = startSketchOn(sketch005, seg03) | ||||
| sketch006 = startSketchOn(sketch005, face = seg03) | ||||
|   |> startProfileAt([0, -1 * (backLength - height)], %) | ||||
|   |> xLine(endAbsolute = -exitHeight) | ||||
|   |> yLine(length = -wallsWidth) | ||||
| @ -127,7 +123,7 @@ sketch006 = startSketchOn(sketch005, seg03) | ||||
|   |> close() | ||||
|   |> extrude(length = wallThickness) | ||||
|  | ||||
| sketch007 = startSketchOn(sketch004, 'END') | ||||
| sketch007 = startSketchOn(sketch004, face = 'END') | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> xLine(endAbsolute = wallThickness) | ||||
|   |> yLine(endAbsolute = height) | ||||
| @ -136,16 +132,14 @@ sketch007 = startSketchOn(sketch004, 'END') | ||||
|   |> extrude(length = wallsWidth - (2 * wallThickness)) | ||||
|  | ||||
| customPlane3 = { | ||||
|   plane = { | ||||
|     origin = { | ||||
|       x = -1 * (backLength - height + wallsWidth), | ||||
|       y = 0, | ||||
|       z = wallThickness | ||||
|     }, | ||||
|     xAxis = { x = 0, y = -1, z = 0 }, | ||||
|     yAxis = { x = 1, y = 0, z = 0 }, | ||||
|     zAxis = { x = 0, y = 0, z = 1 } | ||||
|   } | ||||
|   origin = { | ||||
|     x = -1 * (backLength - height + wallsWidth), | ||||
|     y = 0, | ||||
|     z = wallThickness | ||||
|   }, | ||||
|   xAxis = { x = 0, y = -1, z = 0 }, | ||||
|   yAxis = { x = 1, y = 0, z = 0 }, | ||||
|   zAxis = { x = 0, y = 0, z = 1 } | ||||
| } | ||||
|  | ||||
| sketch008 = startSketchOn(customPlane3) | ||||
|  | ||||
| @ -54,7 +54,7 @@ sketch001 = startSketchOn(XZ) | ||||
| extrude001 = extrude(sketch001, length = 5) | ||||
|  | ||||
| // Create the second sketch | ||||
| sketch002 = startSketchOn(extrude001, 'START') | ||||
| sketch002 = startSketchOn(extrude001, face = 'START') | ||||
|   |> startProfileAt([distanceToInsideEdge, 0], %) | ||||
|   |> angledLine(angle = 180, length = templateThickness, tag = $rectangleSegmentA002) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA002) + 90, length = templateThickness, tag = $rectangleSegmentB002) | ||||
| @ -66,7 +66,7 @@ sketch002 = startSketchOn(extrude001, 'START') | ||||
| extrude002 = extrude(sketch002, length = 13) | ||||
|  | ||||
| // Create the third sketch | ||||
| sketch003 = startSketchOn(extrude001, 'START') | ||||
| sketch003 = startSketchOn(extrude001, face = 'START') | ||||
|   |> startProfileAt([-distanceToInsideEdge, 0], %) | ||||
|   |> angledLine(angle = 0, length = templateThickness, tag = $rectangleSegmentA001) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = templateThickness, tag = $rectangleSegmentB001) | ||||
| @ -78,7 +78,7 @@ sketch003 = startSketchOn(extrude001, 'START') | ||||
| extrude003 = extrude(sketch003, length = 13) | ||||
|  | ||||
| // Create the fourth sketch | ||||
| sketch004 = startSketchOn(extrude002, 'END') | ||||
| sketch004 = startSketchOn(extrude002, face = 'END') | ||||
|   |> startProfileAt([-distanceToInsideEdge, 0], %) | ||||
|   |> angledLine(angle = 0, length = distanceToInsideEdge * 2, tag = $rectangleSegmentA003) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA003) - 90, length = templateThickness, tag = $rectangleSegmentB003) | ||||
|  | ||||
| @ -48,7 +48,7 @@ sketch001 = startSketchOn(XZ) | ||||
| extrude001 = extrude(sketch001, length = 5) | ||||
|  | ||||
| // Create the second sketch | ||||
| sketch002 = startSketchOn(extrude001, 'START') | ||||
| sketch002 = startSketchOn(extrude001, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -slateWidthHalf, | ||||
|        -templateGap * 2 - (templateDiameter / 2) | ||||
| @ -63,7 +63,7 @@ sketch002 = startSketchOn(extrude001, 'START') | ||||
| extrude002 = extrude(sketch002, length = 7.5) | ||||
|  | ||||
| // Create the third sketch | ||||
| sketch003 = startSketchOn(extrude001, 'START') | ||||
| sketch003 = startSketchOn(extrude001, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        slateWidthHalf, | ||||
|        -templateGap * 2 - (templateDiameter / 2) | ||||
|  | ||||
| @ -95,7 +95,7 @@ bracketProfile = startSketchOn(XZ) | ||||
|      ) | ||||
|  | ||||
| // Cut the bolt pattern in the left base flange | ||||
| leftFlangeBoltPattern = startSketchOn(bracketProfile, seg04) | ||||
| leftFlangeBoltPattern = startSketchOn(bracketProfile, face = seg04) | ||||
|   |> circle(center = [-mountingBoltPatternX / 2, overhang], radius = mountingBoltDiameter / 2) | ||||
|   |> patternLinear2d( | ||||
|        %, | ||||
| @ -106,7 +106,7 @@ leftFlangeBoltPattern = startSketchOn(bracketProfile, seg04) | ||||
|   |> extrude(length = -thickness) | ||||
|  | ||||
| // Cut the bolt pattern in the right base flange | ||||
| rightFlangeBoltPattern = startSketchOn(bracketProfile, seg06) | ||||
| rightFlangeBoltPattern = startSketchOn(bracketProfile, face = seg06) | ||||
|   |> circle(center = [mountingBoltPatternX / 2, overhang], radius = mountingBoltDiameter / 2) | ||||
|   |> patternLinear2d( | ||||
|        %, | ||||
| @ -117,7 +117,7 @@ rightFlangeBoltPattern = startSketchOn(bracketProfile, seg06) | ||||
|   |> extrude(length = -thickness) | ||||
|  | ||||
| // Provision the top flange with holes to mount an object | ||||
| topFlangeBoltPattern = startSketchOn(bracketProfile, seg05) | ||||
| topFlangeBoltPattern = startSketchOn(bracketProfile, face = seg05) | ||||
|   |> circle( | ||||
|        center = [ | ||||
|          -componentBoltPatternX / 2, | ||||
| @ -140,6 +140,6 @@ topFlangeBoltPattern = startSketchOn(bracketProfile, seg05) | ||||
|   |> extrude(length = -thickness) | ||||
|  | ||||
| // Place a hole at the center of the component bolt pattern to reduce mass | ||||
| centeredHole = startSketchOn(bracketProfile, seg05) | ||||
| centeredHole = startSketchOn(bracketProfile, face = seg05) | ||||
|   |> circle(center = [0, flangeExtrusion / 2], radius = 0.75) | ||||
|   |> extrude(length = -thickness) | ||||
|  | ||||
| @ -19,7 +19,7 @@ boltHead = startSketchOn(XZ) | ||||
|   |> fillet(radius = 0.020, tags = [topEdge, getOppositeEdge(topEdge)]) | ||||
|  | ||||
| // Define the sketch of the hex pattern on the screw head | ||||
| hexPatternSketch = startSketchOn(boltHead, 'start') | ||||
| hexPatternSketch = startSketchOn(boltHead, face = 'start') | ||||
|   |> startProfileAt([ | ||||
|        boltHexDrive / 2, | ||||
|        boltHexFlatLength / 2 | ||||
| @ -31,7 +31,7 @@ hexPatternSketch = startSketchOn(boltHead, 'start') | ||||
|   |> angledLine(angle = 30, length = boltHexFlatLength) | ||||
|   |> close() | ||||
|   |> extrude(length = -boltHeadLength * 0.75) | ||||
| boltBody = startSketchOn(boltHead, 'end') | ||||
| boltBody = startSketchOn(boltHead, face = 'end') | ||||
|   |> circle(center = [0, 0], radius = boltDiameter / 2, tag = $filletEdge) | ||||
|   |> extrude(length = boltLength) | ||||
|   |> fillet(radius = .020, tags = [getOppositeEdge(filletEdge)]) | ||||
|  | ||||
| @ -26,7 +26,7 @@ body = startSketchOn(XZ) | ||||
|      ) | ||||
|  | ||||
| // Cut out the indentation for the case | ||||
| caseIndentSketch = startSketchOn(body, 'END') | ||||
| caseIndentSketch = startSketchOn(body, face = 'END') | ||||
|   |> startProfileAt([ | ||||
|        -width / 2 + offset, | ||||
|        height / 2 - (chamferLength + offset / 2 * cos(toRadians(45))) | ||||
| @ -51,7 +51,7 @@ caseIndentSketch = startSketchOn(body, 'END') | ||||
| extrude002 = extrude(caseIndentSketch, length = -0.0625) | ||||
|  | ||||
| // Create the pocket for the screen | ||||
| screenCutout = startSketchOn(extrude002, 'start') | ||||
| screenCutout = startSketchOn(extrude002, face = 'start') | ||||
|   |> startProfileAt([-screenWidth / 2, screenYPosition], %) | ||||
|   |> xLine(length = screenWidth, tag = $seg01) | ||||
|   |> yLine(length = -screenHeight) | ||||
| @ -61,7 +61,7 @@ screenCutout = startSketchOn(extrude002, 'start') | ||||
| extrude003 = extrude(screenCutout, length = screenDepth) | ||||
|  | ||||
| // Create the speaker box | ||||
| speakerBox = startSketchOn(extrude002, 'start') | ||||
| speakerBox = startSketchOn(extrude002, face = 'start') | ||||
|   |> startProfileAt([-1.25 / 2, -.125], %) | ||||
|   |> xLine(length = speakerBoxWidth) | ||||
|   |> yLine(length = -speakerBoxHeight) | ||||
|  | ||||
| @ -18,7 +18,7 @@ extrude002 = extrude(profile002, length = 150) | ||||
|        tag = $seg02, | ||||
|      ) | ||||
|  | ||||
| sketch003 = startSketchOn(extrude002, mySeg) | ||||
| sketch003 = startSketchOn(extrude002, face = mySeg) | ||||
| profile003 = startProfileAt([207.36, 126.19], sketch003) | ||||
|   |> angledLine(angle = 0, length = 33.57, tag = $rectangleSegmentA002) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA002) - 90, length = 99.11) | ||||
| @ -26,7 +26,7 @@ profile003 = startProfileAt([207.36, 126.19], sketch003) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| extrude003 = extrude(profile003, length = -20) | ||||
| sketch004 = startSketchOn(extrude003, seg01) | ||||
| sketch004 = startSketchOn(extrude003, face = seg01) | ||||
| profile004 = startProfileAt([-235.38, 66.16], sketch004) | ||||
|   |> angledLine(angle = 0, length = 24.21, tag = $rectangleSegmentA003) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA003) - 90, length = 3.72) | ||||
| @ -35,7 +35,7 @@ profile004 = startProfileAt([-235.38, 66.16], sketch004) | ||||
|   |> close() | ||||
| extrude004 = extrude(profile004, length = 30) | ||||
|  | ||||
| sketch005 = startSketchOn(extrude002, seg02) | ||||
| sketch005 = startSketchOn(extrude002, face = seg02) | ||||
| profile005 = startProfileAt([-129.93, -59.19], sketch005) | ||||
|   |> xLine(length = 48.79) | ||||
|   |> line(end = [1.33, 11.03]) | ||||
| @ -43,7 +43,7 @@ profile005 = startProfileAt([-129.93, -59.19], sketch005) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| extrude005 = extrude(profile005, length = -10) | ||||
| sketch006 = startSketchOn(extrude005, seg03) | ||||
| sketch006 = startSketchOn(extrude005, face = seg03) | ||||
| profile006 = startProfileAt([-95.86, 38.73], sketch006) | ||||
|   |> angledLine(angle = 0, length = 3.48, tag = $rectangleSegmentA004) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA004) - 90, length = 3.36) | ||||
|  | ||||
| @ -10,12 +10,10 @@ const extrude000 = extrude(sketch000, length = 1.0) | ||||
|  | ||||
| // define a plane with name plane005 | ||||
| const plane005 = { | ||||
|   plane: { | ||||
|     origin: [0.0, 0.0, 1.0], | ||||
|     xAxis: [0.707107, 0.707107, 0.0], | ||||
|     yAxis: [-0.0, 0.0, 1.0], | ||||
|     zAxis: [0.707107, -0.707107, 0.0] | ||||
|   } | ||||
|   origin: [0.0, 0.0, 1.0], | ||||
|   xAxis: [0.707107, 0.707107, 0.0], | ||||
|   yAxis: [-0.0, 0.0, 1.0], | ||||
|   zAxis: [0.707107, -0.707107, 0.0] | ||||
| } | ||||
|  | ||||
| // create a sketch with name sketch001 | ||||
|  | ||||
| @ -15,7 +15,7 @@ const tabThk = 4 | ||||
|  | ||||
| // define a rectangular shape func | ||||
| fn rectShape = (pos, w, l) => { | ||||
|   const rr = startSketchOn('xy') | ||||
|   const rr = startSketchOn(XY) | ||||
|     |> startProfileAt([pos[0] - (w / 2), pos[1] - (l / 2)], %) | ||||
|     |> line(endAbsolute = [pos[0] + w / 2, pos[1] - (l / 2)], tag = $edge01) | ||||
|     |> line(endAbsolute = [pos[0] + w / 2, pos[1] + l / 2], tag = $edge02) | ||||
| @ -26,12 +26,10 @@ fn rectShape = (pos, w, l) => { | ||||
|  | ||||
| // define the bracket plane | ||||
| const bracketPlane = { | ||||
|   plane: { | ||||
|     origin: { x: 0, y: length / 2 + thk, z: 0 }, | ||||
|     xAxis: { x: 1, y: 0, z: 0 }, | ||||
|     yAxis: { x: 0, y: 0, z: 1 }, | ||||
|     zAxis: { x: 0, y: -1, z: 0 } | ||||
|   } | ||||
|   origin: { x: 0, y: length / 2 + thk, z: 0 }, | ||||
|   xAxis: { x: 1, y: 0, z: 0 }, | ||||
|   yAxis: { x: 0, y: 0, z: 1 }, | ||||
|   zAxis: { x: 0, y: -1, z: 0 } | ||||
| } | ||||
|  | ||||
| // build the bracket sketch around the body | ||||
| @ -65,7 +63,7 @@ const bracketBody = bs | ||||
|  | ||||
|  | ||||
| // sketch on the face | ||||
| const retBack = startSketchOn(bs, bs.sketch.tags.edge4) | ||||
| const retBack = startSketchOn(bs, face = bs.sketch.tags.edge4) | ||||
|   |> startProfileAt([length / 2 + thk, 0], %) | ||||
|   |> line(end = [0, thk]) | ||||
|   |> line(end = [-thk, 0]) | ||||
|  | ||||
| @ -26,12 +26,10 @@ fn rectShape = (pos, w, l) => { | ||||
|  | ||||
| // define the bracket plane | ||||
| const bracketPlane = { | ||||
|   plane: { | ||||
|     origin: { x: 0, y: length / 2 + thk, z: 0 }, | ||||
|     xAxis: { x: 1, y: 0, z: 0 }, | ||||
|     yAxis: { x: 0, y: 0, z: 1 }, | ||||
|     zAxis: { x: 0, y: -1, z: 0 } | ||||
|   } | ||||
|   origin: { x: 0, y: length / 2 + thk, z: 0 }, | ||||
|   xAxis: { x: 1, y: 0, z: 0 }, | ||||
|   yAxis: { x: 0, y: 0, z: 1 }, | ||||
|   zAxis: { x: 0, y: -1, z: 0 } | ||||
| } | ||||
|  | ||||
| // build the bracket sketch around the body | ||||
| @ -65,12 +63,10 @@ const bracketBody = bs | ||||
|  | ||||
| // define the tab plane | ||||
| const tabPlane = { | ||||
|   plane: { | ||||
|     origin: { x: 0, y: 0, z: depth + thk }, | ||||
|     xAxis: { x: 1, y: 0, z: 0 }, | ||||
|     yAxis: { x: 0, y: 1, z: 0 }, | ||||
|     zAxis: { x: 0, y: 0, z: 1 } | ||||
|   } | ||||
|   origin: { x: 0, y: 0, z: depth + thk }, | ||||
|   xAxis: { x: 1, y: 0, z: 0 }, | ||||
|   yAxis: { x: 0, y: 1, z: 0 }, | ||||
|   zAxis: { x: 0, y: 0, z: 1 } | ||||
| } | ||||
|  | ||||
| // build the tabs of the mounting bracket (right side) | ||||
| @ -131,12 +127,10 @@ const tabsL = startSketchOn(tabPlane) | ||||
|  | ||||
| // define a plane for retention bumps | ||||
| const retPlane = { | ||||
|   plane: { | ||||
|     origin: { x: -width / 2 + 20, y: 0, z: 0 }, | ||||
|     xAxis: { x: 0, y: 1, z: 0 }, | ||||
|     yAxis: { x: 0, y: 0, z: 1 }, | ||||
|     zAxis: { x: 1, y: 0, z: 0 } | ||||
|   } | ||||
|   origin: { x: -width / 2 + 20, y: 0, z: 0 }, | ||||
|   xAxis: { x: 0, y: 1, z: 0 }, | ||||
|   yAxis: { x: 0, y: 0, z: 1 }, | ||||
|   zAxis: { x: 1, y: 0, z: 0 } | ||||
| } | ||||
|  | ||||
| // build the retention bump in the front | ||||
|  | ||||
| @ -26,12 +26,10 @@ fn rectShape = (pos, w, l) => { | ||||
|  | ||||
| // define the bracket plane | ||||
| const bracketPlane = { | ||||
|   plane: { | ||||
|     origin: { x: 0, y: length / 2 + thk, z: 0 }, | ||||
|     xAxis: { x: 1, y: 0, z: 0 }, | ||||
|     yAxis: { x: 0, y: 0, z: 1 }, | ||||
|     zAxis: { x: 0, y: -1, z: 0 } | ||||
|   } | ||||
|   origin: { x: 0, y: length / 2 + thk, z: 0 }, | ||||
|   xAxis: { x: 1, y: 0, z: 0 }, | ||||
|   yAxis: { x: 0, y: 0, z: 1 }, | ||||
|   zAxis: { x: 0, y: -1, z: 0 } | ||||
| } | ||||
|  | ||||
| // build the bracket sketch around the body | ||||
| @ -65,12 +63,10 @@ const bracketBody = bs | ||||
|  | ||||
| // define the tab plane | ||||
| const tabPlane = { | ||||
|   plane: { | ||||
|     origin: { x: 0, y: 0, z: depth + thk }, | ||||
|     xAxis: { x: 1, y: 0, z: 0 }, | ||||
|     yAxis: { x: 0, y: 1, z: 0 }, | ||||
|     zAxis: { x: 0, y: 0, z: 1 } | ||||
|   } | ||||
|   origin: { x: 0, y: 0, z: depth + thk }, | ||||
|   xAxis: { x: 1, y: 0, z: 0 }, | ||||
|   yAxis: { x: 0, y: 1, z: 0 }, | ||||
|   zAxis: { x: 0, y: 0, z: 1 } | ||||
| } | ||||
|  | ||||
| // build the tabs of the mounting bracket (right side) | ||||
| @ -131,12 +127,10 @@ const tabsL = startSketchOn(tabPlane) | ||||
|  | ||||
| // define a plane for retention bumps | ||||
| const retPlane = { | ||||
|   plane: { | ||||
|     origin: { x: -width / 2 + 20, y: 0, z: 0 }, | ||||
|     xAxis: { x: 0, y: 1, z: 0 }, | ||||
|     yAxis: { x: 0, y: 0, z: 1 }, | ||||
|     zAxis: { x: 1, y: 0, z: 0 } | ||||
|   } | ||||
|   origin: { x: -width / 2 + 20, y: 0, z: 0 }, | ||||
|   xAxis: { x: 0, y: 1, z: 0 }, | ||||
|   yAxis: { x: 0, y: 0, z: 1 }, | ||||
|   zAxis: { x: 1, y: 0, z: 0 } | ||||
| } | ||||
|  | ||||
| // build the retention bump in the front | ||||
|  | ||||
| @ -27,7 +27,7 @@ const s = startSketchOn(XY) | ||||
|   |> close() | ||||
|   |> extrude(length = height) | ||||
|  | ||||
| const shellExtrude = startSketchOn(s, "start") | ||||
| const shellExtrude = startSketchOn(s, face = "start") | ||||
|   |> startProfileAt([ | ||||
|        -(total_width / 2 - t), | ||||
|        -(total_length / 2 - t) | ||||
| @ -38,7 +38,7 @@ const shellExtrude = startSketchOn(s, "start") | ||||
|   |> close() | ||||
|   |> extrude(length = -(height - t)) | ||||
|  | ||||
| const peg = startSketchOn(s, "end") | ||||
| const peg = startSketchOn(s, face = "end") | ||||
|   |> circle( center= [ | ||||
|        -(total_width / 2 - wSegments), | ||||
|        -(total_length / 2 - lSegments) | ||||
|  | ||||
| @ -1,19 +1,17 @@ | ||||
| // define a plane with UID 94894440791888 | ||||
| const plane94894440791888 = { | ||||
|   plane: { | ||||
|     origin: [0.005000000000000001, 0.01, -0.005], | ||||
|     xAxis: [ | ||||
|       0.9285064634886234, | ||||
|       0.37131623619207604, | ||||
|       0.0 | ||||
|     ], | ||||
|     yAxis: [-0.0, 0.0, 1.0], | ||||
|     zAxis: [ | ||||
|       0.37131623619207604, | ||||
|       -0.9285064634886234, | ||||
|       0.0 | ||||
|     ] | ||||
|   } | ||||
|   origin: [0.005000000000000001, 0.01, -0.005], | ||||
|   xAxis: [ | ||||
|     0.9285064634886234, | ||||
|     0.37131623619207604, | ||||
|     0.0 | ||||
|   ], | ||||
|   yAxis: [-0.0, 0.0, 1.0], | ||||
|   zAxis: [ | ||||
|     0.37131623619207604, | ||||
|     -0.9285064634886234, | ||||
|     0.0 | ||||
|   ] | ||||
| } | ||||
|  | ||||
| // create a sketch with UID 94894440902176 | ||||
|  | ||||
| @ -1,19 +1,17 @@ | ||||
| // define a plane with UID 94894440791888 | ||||
| const plane94894440791888 = { | ||||
|   plane: { | ||||
|     origin: [0.005000000000000001, 0.01, -0.005], | ||||
|     xAxis: [ | ||||
|       0.9285064634886234, | ||||
|       0.37131623619207604, | ||||
|       0.0 | ||||
|     ], | ||||
|     yAxis: [-0.0, 0.0, 1.0], | ||||
|     zAxis: [ | ||||
|       0.37131623619207604, | ||||
|       -0.9285064634886234, | ||||
|       0.0 | ||||
|     ] | ||||
|   } | ||||
|   origin: [0.005000000000000001, 0.01, -0.005], | ||||
|   xAxis: [ | ||||
|     0.9285064634886234, | ||||
|     0.37131623619207604, | ||||
|     0.0 | ||||
|   ], | ||||
|   yAxis: [-0.0, 0.0, 1.0], | ||||
|   zAxis: [ | ||||
|     0.37131623619207604, | ||||
|     -0.9285064634886234, | ||||
|     0.0 | ||||
|   ] | ||||
| } | ||||
|  | ||||
| // create a sketch with UID 94894440902176 | ||||
|  | ||||
| @ -12,7 +12,7 @@ const p = startSketchOn(XY) | ||||
|   |> extrude(length = triangleHeight) | ||||
|  | ||||
| fn circl = (x, face) => { | ||||
| return startSketchOn(p, face) | ||||
| return startSketchOn(p, face = face) | ||||
|   |> startProfileAt([x + radius, triangleHeight/2], %) | ||||
|   |> arc(circ, %,  $arc_tag) | ||||
|   |> close() | ||||
|  | ||||
| @ -33,7 +33,7 @@ const sketch001 = startSketchOn(XZ) | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| const extrude001 = extrude(sketch001, length = 5) | ||||
| const sketch002 = startSketchOn(extrude001, 'START') | ||||
| const sketch002 = startSketchOn(extrude001, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -slateWidthHalf, | ||||
|        -templateGap * 2 - (templateDiameter / 2) | ||||
| @ -44,7 +44,7 @@ const sketch002 = startSketchOn(extrude001, 'START') | ||||
|   |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|   |> close() | ||||
| const extrude002 = extrude(sketch002, length = 7.5) | ||||
| const sketch003 = startSketchOn(extrude001, 'START') | ||||
| const sketch003 = startSketchOn(extrude001, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        slateWidthHalf, | ||||
|        -templateGap * 2 - (templateDiameter / 2) | ||||
|  | ||||
| @ -11,7 +11,6 @@ const width = 21.53 | ||||
| // simple caster model at each corner | ||||
| fn caster = (originStart) => { | ||||
|   const plane001c = { | ||||
|     plane: { | ||||
|       origin: [ | ||||
|         -(3.543 - 2.756) / 2 + originStart[0], | ||||
|         -(3.543 - 2.756) / 2 + originStart[1], | ||||
| @ -20,7 +19,6 @@ fn caster = (originStart) => { | ||||
|       x_axis: [1.0, 0.0, 0.0], | ||||
|       y_axis: [0.0, 1.0, 0.0], | ||||
|       z_axis: [0.0, 0.0, 1.0] | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   const sketch001c = startSketchOn(plane001c) | ||||
| @ -48,7 +46,7 @@ fn caster = (originStart) => { | ||||
|        ], radius = 8.8 / 2 / 25.4 ), %) | ||||
|     |> extrude(length = -.25) | ||||
|  | ||||
|   const sketch002c = startSketchOn(sketch001c, 'START') | ||||
|   const sketch002c = startSketchOn(sketch001c, face = 'START') | ||||
|     |> startProfileAt([-originStart[0], 2.2 + originStart[1]], %) | ||||
|     |> arc({ | ||||
|          angle_start: 30, | ||||
| @ -59,7 +57,6 @@ fn caster = (originStart) => { | ||||
|     |> extrude(length = 3.1) | ||||
|  | ||||
|   const plane002c = { | ||||
|     plane: { | ||||
|       origin: [ | ||||
|         0 + originStart[0], | ||||
|         0.8 + originStart[1], | ||||
| @ -68,7 +65,6 @@ fn caster = (originStart) => { | ||||
|       x_axis: [1, 0, 0], | ||||
|       y_axis: [0, 0, 1], | ||||
|       z_axis: [1, 0, 0] | ||||
|     } | ||||
|   } | ||||
|   const sketch003c = startSketchOn(plane002c) | ||||
|     |> circle(center = [0, 1.2], radius = 2.48 / 2) | ||||
| @ -96,7 +92,6 @@ caster([ | ||||
|  | ||||
| // left wall | ||||
| const plane001 = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[0] - 4, | ||||
|       originStart[1] + 2, | ||||
| @ -105,7 +100,6 @@ const plane001 = { | ||||
|     x_axis: [0, 1, 0], | ||||
|     y_axis: [0, 0, 1], | ||||
|     z_axis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const sketch001l = startSketchOn(plane001) | ||||
| @ -187,7 +181,6 @@ const extrude007l = extrude(sketch007l, length = 1) | ||||
|  | ||||
| // right wall | ||||
| const plane002 = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[0] - 4 + width - 1, | ||||
|       originStart[1] - 1, | ||||
| @ -196,7 +189,6 @@ const plane002 = { | ||||
|     x_axis: [0, 1, 0], | ||||
|     y_axis: [0, 0, 1], | ||||
|     z_axis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const sketch001w = startSketchOn(plane002) | ||||
| @ -488,12 +480,10 @@ const extrude025w = extrude(sketch025w, length = 1) | ||||
|  | ||||
| // Base plane of rack | ||||
| const plane003 = { | ||||
|   plane: { | ||||
|     origin: [0, 0, 4.114], | ||||
|     x_axis: [1, 0, 0], | ||||
|     y_axis: [0, 1, 0], | ||||
|     z_axis: [0, 0, 1] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const sketch005 = startSketchOn(plane003) | ||||
| @ -541,12 +531,10 @@ const extrude008 = extrude(sketch008, length = 1) | ||||
|  | ||||
| // Top Plane | ||||
| const plane004 = { | ||||
|   plane: { | ||||
|     origin: [0, 0, 4.114 + railHeight * 1.75 + 2], | ||||
|     x_axis: [1, 0, 0], | ||||
|     y_axis: [0, 1, 0], | ||||
|     z_axis: [0, 0, 1] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const sketch005t = startSketchOn(plane004) | ||||
| @ -594,30 +582,24 @@ const extrude009t = extrude(sketch009t, length = -1) | ||||
| // front left vertical rail | ||||
| // Define planes so the rail can be moved | ||||
| const planeXYfl = { | ||||
|   plane: { | ||||
|     origin: [0, 0, originStart[2]], | ||||
|     xAxis: [1.0, 0.0, 0.0], | ||||
|     yAxis: [0.0, 1.0, 0.0], | ||||
|     zAxis: [0.0, 0.0, 1.0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeXZfl = { | ||||
|   plane: { | ||||
|     origin: [originStart[1], originStart[0], originStart[2]], | ||||
|     xAxis: [0, 1, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeYZfl = { | ||||
|   plane: { | ||||
|     origin: [originStart[1], originStart[0], originStart[2]], | ||||
|     xAxis: [-1, 0, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| // Base flange | ||||
| @ -661,7 +643,7 @@ const sketch003fl = startSketchOn(planeXYfl) | ||||
| const extrude003fl = extrude(sketch003fl, length = railHeight * 1.75) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch004fl = startSketchOn(extrude002fl, 'START') | ||||
| const sketch004fl = startSketchOn(extrude002fl, face = 'START') | ||||
|   |> startProfileAt([0.72 + originStart[1], originStart[2] + 0.15], %) | ||||
|   |> angledLine(angle = 0, length = -0.375, tag = $rectangleSegmentA003fl) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA003fl) - 90, length = 0.375, tag = $rectangleSegmentB003fl) | ||||
| @ -676,7 +658,7 @@ const sketch004fl = startSketchOn(extrude002fl, 'START') | ||||
| const extrude004fl = extrude(sketch004fl, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch005fl = startSketchOn(extrude002fl, 'START') | ||||
| const sketch005fl = startSketchOn(extrude002fl, face = 'START') | ||||
|   |> startProfileAt([0.72 + originStart[1],originStart[2] +  0.15 + .62], %) | ||||
|   |> angledLine(angle = 0, length = -0.375, tag = $rectangleSegmentA004fl) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA004fl) - 90, length = 0.375, tag = $rectangleSegmentB004fl) | ||||
| @ -691,7 +673,7 @@ const sketch005fl = startSketchOn(extrude002fl, 'START') | ||||
| const extrude005fl = extrude(sketch005fl, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch006fl = startSketchOn(extrude002fl, 'START') | ||||
| const sketch006fl = startSketchOn(extrude002fl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        0.72 + originStart[1], | ||||
|       originStart[2] + 0.15 + 0.62 + 0.50 | ||||
| @ -709,7 +691,7 @@ const sketch006fl = startSketchOn(extrude002fl, 'START') | ||||
| const extrude006fl = extrude(sketch006fl, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch007fl = startSketchOn(extrude001fl, 'START') | ||||
| const sketch007fl = startSketchOn(extrude001fl, face = 'START') | ||||
|   |> startProfileAt([-1.45 - originStart[0], originStart[2] + 0.15], %) | ||||
|   |> angledLine(angle = 0, length = -0.375, tag = $rectangleSegmentA006fl) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA006fl) - 90, length = 0.375, tag = $rectangleSegmentB006fl) | ||||
| @ -724,7 +706,7 @@ const sketch007fl = startSketchOn(extrude001fl, 'START') | ||||
| const extrude007fl = extrude(sketch007fl, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch008fl = startSketchOn(extrude001fl, 'START') | ||||
| const sketch008fl = startSketchOn(extrude001fl, face = 'START') | ||||
|   |> startProfileAt([-1.45 - originStart[0],originStart[2] + 0.15 + 0.62], %) | ||||
|   |> angledLine(angle = 0, length = -0.375, tag = $rectangleSegmentA007fl) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA007fl) - 90, length = 0.375, tag = $rectangleSegmentB007fl) | ||||
| @ -739,7 +721,7 @@ const sketch008fl = startSketchOn(extrude001fl, 'START') | ||||
| const extrude008fl = extrude(sketch008fl, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch009fl = startSketchOn(extrude001fl, 'START') | ||||
| const sketch009fl = startSketchOn(extrude001fl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.45 - originStart[0], | ||||
|        originStart[2] + 0.15 + 0.62 + 0.5 | ||||
| @ -757,7 +739,7 @@ const sketch009fl = startSketchOn(extrude001fl, 'START') | ||||
| const extrude009fl = extrude(sketch009fl, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch010fl = startSketchOn(extrude001fl, 'START') | ||||
| const sketch010fl = startSketchOn(extrude001fl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|        originStart[2] + .81 - (.438 / 2) | ||||
| @ -775,7 +757,7 @@ const sketch010fl = startSketchOn(extrude001fl, 'START') | ||||
| const extrude010fl = extrude(sketch010fl, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch011fl = startSketchOn(extrude001fl, 'START') | ||||
| const sketch011fl = startSketchOn(extrude001fl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|       originStart[2] + railHeight * 1.75 / 2 + .438 / 2 | ||||
| @ -792,7 +774,7 @@ const sketch011fl = startSketchOn(extrude001fl, 'START') | ||||
| const extrude011fl = extrude(sketch011fl, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch012fl = startSketchOn(extrude001fl, 'START') | ||||
| const sketch012fl = startSketchOn(extrude001fl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], originStart[2] + | ||||
|        railHeight * 1.75 - .81 + .438 / 2 | ||||
| @ -815,16 +797,13 @@ const extrude012fl = extrude(sketch012fl, length = -thickness) | ||||
| // FRONT RIGHT VERTICAL RAIL | ||||
| // Define planes so the rail can be moved | ||||
| const planeXYfr = { | ||||
|   plane: { | ||||
|     origin: [0, 0, originStart[2]], | ||||
|     xAxis: [1.0, 0.0, 0.0], | ||||
|     yAxis: [0.0, 1.0, 0.0], | ||||
|     zAxis: [0.0, 0.0, 1.0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeXZfr = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1] + width - thickness - 2, | ||||
|       originStart[0], | ||||
| @ -833,11 +812,9 @@ const planeXZfr = { | ||||
|     xAxis: [0, 1, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeYZfr = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1] + width - 2, | ||||
|       originStart[0], | ||||
| @ -846,7 +823,6 @@ const planeYZfr = { | ||||
|     xAxis: [-1, 0, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| // Base flange | ||||
| @ -892,7 +868,7 @@ const sketch003fr = startSketchOn(planeXYfr) | ||||
| const extrude003fr = extrude(sketch003fr, length = railHeight * 1.75) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch004fr = startSketchOn(extrude002fr, 'START') | ||||
| const sketch004fr = startSketchOn(extrude002fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -0.35 + originStart[1] + width - 2, | ||||
|        originStart[2] + 0.15 | ||||
| @ -910,7 +886,7 @@ const sketch004fr = startSketchOn(extrude002fr, 'START') | ||||
| const extrude004fr = extrude(sketch004fr, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch005fr = startSketchOn(extrude002fr, 'START') | ||||
| const sketch005fr = startSketchOn(extrude002fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -0.35 + originStart[1] + width - 2, | ||||
|        originStart[2] + 0.15 + .62 | ||||
| @ -928,7 +904,7 @@ const sketch005fr = startSketchOn(extrude002fr, 'START') | ||||
| const extrude005fr = extrude(sketch005fr, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch006fr = startSketchOn(extrude002fr, 'START') | ||||
| const sketch006fr = startSketchOn(extrude002fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -0.35 + originStart[1] + width - 2, | ||||
|        originStart[2] + 0.15 + 0.62 + 0.50 | ||||
| @ -946,7 +922,7 @@ const sketch006fr = startSketchOn(extrude002fr, 'START') | ||||
| const extrude006fr = extrude(sketch006fr, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch007fr = startSketchOn(extrude001fr, 'START') | ||||
| const sketch007fr = startSketchOn(extrude001fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.45 - originStart[0], | ||||
|        originStart[2] + 0.15 | ||||
| @ -964,7 +940,7 @@ const sketch007fr = startSketchOn(extrude001fr, 'START') | ||||
| const extrude007fr = extrude(sketch007fr, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch008fr = startSketchOn(extrude001fr, 'START') | ||||
| const sketch008fr = startSketchOn(extrude001fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.45 - originStart[0], | ||||
|        originStart[2] + 0.15 + 0.62 | ||||
| @ -982,7 +958,7 @@ const sketch008fr = startSketchOn(extrude001fr, 'START') | ||||
| const extrude008fr = extrude(sketch008fr, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch009fr = startSketchOn(extrude001fr, 'START') | ||||
| const sketch009fr = startSketchOn(extrude001fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.45 - originStart[0], | ||||
|        originStart[2] + 0.15 + 0.62 + 0.5 | ||||
| @ -1000,7 +976,7 @@ const sketch009fr = startSketchOn(extrude001fr, 'START') | ||||
| const extrude009fr = extrude(sketch009fr, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch010fr = startSketchOn(extrude001fr, 'START') | ||||
| const sketch010fr = startSketchOn(extrude001fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|        originStart[2] + .81 - (.438 / 2) | ||||
| @ -1021,7 +997,7 @@ const sketch010fr = startSketchOn(extrude001fr, 'START') | ||||
| const extrude010fr = extrude(sketch010fr, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch011fr = startSketchOn(extrude001fr, 'START') | ||||
| const sketch011fr = startSketchOn(extrude001fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|        originStart[2] + railHeight * 1.75 / 2 + .438 / 2 | ||||
| @ -1038,7 +1014,7 @@ const sketch011fr = startSketchOn(extrude001fr, 'START') | ||||
| const extrude011fr = extrude(sketch011fr, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch012fr = startSketchOn(extrude001fr, 'START') | ||||
| const sketch012fr = startSketchOn(extrude001fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|        originStart[2] + railHeight * 1.75 - .81 + .438 / 2 | ||||
| @ -1061,16 +1037,13 @@ const extrude012fr = extrude(sketch012fr, length = -thickness) | ||||
| // RIGHT REAR VERTICAL RAIL | ||||
| // Define planes so the rail can be moved | ||||
| const planeXYrr = { | ||||
|   plane: { | ||||
|     origin: [0, serverDepth, originStart[2]], | ||||
|     xAxis: [1.0, 0.0, 0.0], | ||||
|     yAxis: [0.0, 1.0, 0.0], | ||||
|     zAxis: [0.0, 0.0, 1.0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeXZrr = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1] + width - thickness - 2, | ||||
|       originStart[0]+serverDepth-2-bendRad, | ||||
| @ -1079,11 +1052,9 @@ const planeXZrr = { | ||||
|     xAxis: [0, 1, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeYZrr = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1] + width - 2, | ||||
|       originStart[0]+serverDepth, | ||||
| @ -1092,7 +1063,6 @@ const planeYZrr = { | ||||
|     xAxis: [-1, 0, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| // Base flange | ||||
| @ -1138,7 +1108,7 @@ const sketch003rr = startSketchOn(planeXYrr) | ||||
| const extrude003rr = extrude(sketch003rr, length = railHeight * 1.75) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch004rr = startSketchOn(extrude002rr, 'START') | ||||
| const sketch004rr = startSketchOn(extrude002rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -0.35 + originStart[1] + width - 2, | ||||
|        originStart[2] + 0.15 | ||||
| @ -1156,7 +1126,7 @@ const sketch004rr = startSketchOn(extrude002rr, 'START') | ||||
| const extrude004rr = extrude(sketch004rr, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch005rr = startSketchOn(extrude002rr, 'START') | ||||
| const sketch005rr = startSketchOn(extrude002rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -0.35 + originStart[1] + width - 2, | ||||
|        originStart[2] + 0.15 + .62 | ||||
| @ -1174,7 +1144,7 @@ const sketch005rr = startSketchOn(extrude002rr, 'START') | ||||
| const extrude005rr = extrude(sketch005rr, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch006rr = startSketchOn(extrude002rr, 'START') | ||||
| const sketch006rr = startSketchOn(extrude002rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -0.35 + originStart[1] + width - 2, | ||||
|        originStart[2] + 0.15 + 0.62 + 0.50 | ||||
| @ -1192,7 +1162,7 @@ const sketch006rr = startSketchOn(extrude002rr, 'START') | ||||
| const extrude006rr = extrude(sketch006rr, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch007rr = startSketchOn(extrude001rr, 'START') | ||||
| const sketch007rr = startSketchOn(extrude001rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -originStart[0]-serverDepth+1.7, | ||||
|        originStart[2] + 0.15 | ||||
| @ -1210,7 +1180,7 @@ const sketch007rr = startSketchOn(extrude001rr, 'START') | ||||
| const extrude007rr = extrude(sketch007rr, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch008rr = startSketchOn(extrude001rr, 'START') | ||||
| const sketch008rr = startSketchOn(extrude001rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -originStart[0]-serverDepth+1.7, | ||||
|        originStart[2] + 0.15 + 0.62 | ||||
| @ -1228,7 +1198,7 @@ const sketch008rr = startSketchOn(extrude001rr, 'START') | ||||
| const extrude008rr = extrude(sketch008rr, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch009rr = startSketchOn(extrude001rr, 'START') | ||||
| const sketch009rr = startSketchOn(extrude001rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -originStart[0]-serverDepth+1.7, | ||||
|        originStart[2] + 0.15 + 0.62 + 0.5 | ||||
| @ -1246,7 +1216,7 @@ const sketch009rr = startSketchOn(extrude001rr, 'START') | ||||
| const extrude009rr = extrude(sketch009rr, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch010rr = startSketchOn(extrude001rr, 'START') | ||||
| const sketch010rr = startSketchOn(extrude001rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0]+1.5-serverDepth, | ||||
|        originStart[2] + .81 - (.438 / 2) | ||||
| @ -1267,7 +1237,7 @@ const sketch010rr = startSketchOn(extrude001rr, 'START') | ||||
| const extrude010rr = extrude(sketch010rr, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch011rr = startSketchOn(extrude001rr, 'START') | ||||
| const sketch011rr = startSketchOn(extrude001rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0]+1.5-serverDepth, | ||||
|        originStart[2] + railHeight * 1.75 / 2 + .438 / 2 | ||||
| @ -1284,7 +1254,7 @@ const sketch011rr = startSketchOn(extrude001rr, 'START') | ||||
| const extrude011rr = extrude(sketch011rr, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch012rr = startSketchOn(extrude001rr, 'START') | ||||
| const sketch012rr = startSketchOn(extrude001rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0]+1.5-serverDepth, | ||||
|        originStart[2] + railHeight * 1.75 - .81 + .438 / 2 | ||||
| @ -1307,16 +1277,13 @@ const extrude012rr = extrude(sketch012rr, length = -thickness) | ||||
| // REAR LEFT VETCIAL RAIL | ||||
| // Define planes so the rail can be moved | ||||
| const planeXYrl = { | ||||
|   plane: { | ||||
|     origin: [0, serverDepth, originStart[2]], | ||||
|     xAxis: [1.0, 0.0, 0.0], | ||||
|     yAxis: [0.0, 1.0, 0.0], | ||||
|     zAxis: [0.0, 0.0, 1.0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeXZrl = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1], | ||||
|       originStart[0] + serverDepth - 2 - bendRad, | ||||
| @ -1325,11 +1292,9 @@ const planeXZrl = { | ||||
|     xAxis: [0, 1, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeYZrl = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1], | ||||
|       originStart[0] + serverDepth, | ||||
| @ -1338,7 +1303,6 @@ const planeYZrl = { | ||||
|     xAxis: [-1, 0, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
| // Base flange | ||||
| const sketch001rl = startSketchOn(planeXZrl) | ||||
| @ -1383,7 +1347,7 @@ const sketch003rl = startSketchOn(planeXYrl) | ||||
| const extrude003rl = extrude(sketch003rl, length = railHeight * 1.75) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch004rl = startSketchOn(extrude002rl, 'START') | ||||
| const sketch004rl = startSketchOn(extrude002rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.38 + 2 + thickness + originStart[1], | ||||
|        originStart[2] + 0.15 | ||||
| @ -1401,7 +1365,7 @@ const sketch004rl = startSketchOn(extrude002rl, 'START') | ||||
| const extrude004rl = extrude(sketch004rl, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch005rl = startSketchOn(extrude002rl, 'START') | ||||
| const sketch005rl = startSketchOn(extrude002rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.38 + 2 + thickness + originStart[1], | ||||
|        originStart[2] + 0.15 + .62 | ||||
| @ -1419,7 +1383,7 @@ const sketch005rl = startSketchOn(extrude002rl, 'START') | ||||
| const extrude005rl = extrude(sketch005rl, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch006rl = startSketchOn(extrude002rl, 'START') | ||||
| const sketch006rl = startSketchOn(extrude002rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.38 + 2 + thickness + originStart[1], | ||||
|        originStart[2] + 0.15 + 0.62 + 0.50 | ||||
| @ -1437,7 +1401,7 @@ const sketch006rl = startSketchOn(extrude002rl, 'START') | ||||
| const extrude006rl = extrude(sketch006rl, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch007rl = startSketchOn(extrude001rl, 'START') | ||||
| const sketch007rl = startSketchOn(extrude001rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        1.75 - originStart[0] - serverDepth, | ||||
|        originStart[2] + 0.15 | ||||
| @ -1455,7 +1419,7 @@ const sketch007rl = startSketchOn(extrude001rl, 'START') | ||||
| const extrude007rl = extrude(sketch007rl, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch008rl = startSketchOn(extrude001rl, 'START') | ||||
| const sketch008rl = startSketchOn(extrude001rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        1.75 - originStart[0] - serverDepth, | ||||
|        originStart[2] + 0.15 + 0.62 | ||||
| @ -1473,7 +1437,7 @@ const sketch008rl = startSketchOn(extrude001rl, 'START') | ||||
| const extrude008rl = extrude(sketch008rl, length = -thickness) | ||||
|  | ||||
| // EIA-310-D standard hole pattern | ||||
| const sketch009rl = startSketchOn(extrude001rl, 'START') | ||||
| const sketch009rl = startSketchOn(extrude001rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        1.75 - originStart[0] - serverDepth, | ||||
|        originStart[2] + 0.15 + 0.62 + 0.5 | ||||
| @ -1491,7 +1455,7 @@ const sketch009rl = startSketchOn(extrude001rl, 'START') | ||||
| const extrude009rl = extrude(sketch009rl, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch010rl = startSketchOn(extrude001rl, 'START') | ||||
| const sketch010rl = startSketchOn(extrude001rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0] - serverDepth + 1.5, | ||||
|        originStart[2] + .81 - (.438 / 2) | ||||
| @ -1512,7 +1476,7 @@ const sketch010rl = startSketchOn(extrude001rl, 'START') | ||||
| const extrude010rl = extrude(sketch010rl, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch011rl = startSketchOn(extrude001rl, 'START') | ||||
| const sketch011rl = startSketchOn(extrude001rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0] - serverDepth + 1.5, | ||||
|        originStart[2] + railHeight * 1.75 / 2 + .438 / 2 | ||||
| @ -1529,7 +1493,7 @@ const sketch011rl = startSketchOn(extrude001rl, 'START') | ||||
| const extrude011rl = extrude(sketch011rl, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch012rl = startSketchOn(extrude001rl, 'START') | ||||
| const sketch012rl = startSketchOn(extrude001rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0] - serverDepth + 1.5, | ||||
|        originStart[2] + railHeight * 1.75 - .81 + .438 / 2 | ||||
| @ -1553,29 +1517,23 @@ const extrude012rl = extrude(sketch012rl, length = -thickness) | ||||
| // Define planes so the server can be moved | ||||
| fn streamServer = (serverPos) => { | ||||
|   const planeXYs = { | ||||
|     plane: { | ||||
|       origin: [0, 0 + 2, 4.114 + 1 + serverPos * 1.75], | ||||
|       xAxis: [1.0, 0.0, 0.0], | ||||
|       yAxis: [0.0, 1.0, 0.0], | ||||
|       zAxis: [0.0, 0.0, 1.0] | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   const planeXZs = { | ||||
|     plane: { | ||||
|       origin: [0 + 1.2 + .1, 0 + 2, 0], | ||||
|       xAxis: [0, -1, 0], | ||||
|       yAxis: [0, 0, 1], | ||||
|       zAxis: [1, 0, 0] | ||||
|     } | ||||
|   } | ||||
|   const planeXZs2 = { | ||||
|     plane: { | ||||
|       origin: [18 + 1.4, 0 + 2, 0], | ||||
|       xAxis: [0, -1, 0], | ||||
|       yAxis: [0, 0, 1], | ||||
|       zAxis: [1, 0, 0] | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   const sketch001s = startSketchOn(planeXYs) | ||||
|  | ||||
| @ -9,7 +9,6 @@ const width = 21.53 | ||||
| // simple caster model at each corner | ||||
| fn caster = (originStart) => { | ||||
|   const plane001c = { | ||||
|     plane: { | ||||
|       origin: [ | ||||
|         -(3.543 - 2.756) / 2 + originStart[0], | ||||
|         -(3.543 - 2.756) / 2 + originStart[1], | ||||
| @ -18,7 +17,6 @@ fn caster = (originStart) => { | ||||
|       x_axis: [1.0, 0.0, 0.0], | ||||
|       y_axis: [0.0, 1.0, 0.0], | ||||
|       z_axis: [0.0, 0.0, 1.0] | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   const sketch001c = startSketchOn(plane001c) | ||||
| @ -46,7 +44,7 @@ fn caster = (originStart) => { | ||||
|        ], radius= 8.8 / 2 / 25.4), %) | ||||
|     |> extrude(length = -.25) | ||||
|  | ||||
|   const sketch002c = startSketchOn(sketch001c, 'START') | ||||
|   const sketch002c = startSketchOn(sketch001c, face = 'START') | ||||
|     |> startProfileAt([-originStart[0], 2.2 + originStart[1]], %) | ||||
|     |> arc({ | ||||
|          angle_start: 30, | ||||
| @ -57,7 +55,6 @@ fn caster = (originStart) => { | ||||
|     |> extrude(length = 3.1) | ||||
|  | ||||
|   const plane002c = { | ||||
|     plane: { | ||||
|       origin: [ | ||||
|         0 + originStart[0], | ||||
|         0.8 + originStart[1], | ||||
| @ -66,7 +63,6 @@ fn caster = (originStart) => { | ||||
|       x_axis: [1, 0, 0], | ||||
|       y_axis: [0, 0, 1], | ||||
|       z_axis: [1, 0, 0] | ||||
|     } | ||||
|   } | ||||
|   const sketch003c = startSketchOn(plane002c) | ||||
|     |> circle(center = [0, 1.2], radius = 2.48 / 2) | ||||
| @ -94,7 +90,6 @@ caster([ | ||||
|  | ||||
| // left wall | ||||
| const plane001 = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[0] - 4, | ||||
|       originStart[1] + 2, | ||||
| @ -103,7 +98,6 @@ const plane001 = { | ||||
|     x_axis: [0, 1, 0], | ||||
|     y_axis: [0, 0, 1], | ||||
|     z_axis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const sketch001l = startSketchOn(plane001) | ||||
| @ -185,7 +179,6 @@ const extrude007l = extrude(sketch007l, length = 1) | ||||
|  | ||||
| // right wall | ||||
| const plane002 = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[0] - 4 + width - 1, | ||||
|       originStart[1] - 1, | ||||
| @ -194,7 +187,6 @@ const plane002 = { | ||||
|     x_axis: [0, 1, 0], | ||||
|     y_axis: [0, 0, 1], | ||||
|     z_axis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const sketch001w = startSketchOn(plane002) | ||||
| @ -486,12 +478,10 @@ const extrude025w = extrude(sketch025w, length = 1) | ||||
|  | ||||
| // Base plane of rack | ||||
| const plane003 = { | ||||
|   plane: { | ||||
|     origin: [0, 0, 4.114], | ||||
|     x_axis: [1, 0, 0], | ||||
|     y_axis: [0, 1, 0], | ||||
|     z_axis: [0, 0, 1] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const sketch005 = startSketchOn(plane003) | ||||
| @ -539,12 +529,10 @@ const extrude008 = extrude(sketch008, length = 1) | ||||
|  | ||||
| // Top Plane | ||||
| const plane004 = { | ||||
|   plane: { | ||||
|     origin: [0, 0, 4.114 + railHeight * 1.75 + 2], | ||||
|     x_axis: [1, 0, 0], | ||||
|     y_axis: [0, 1, 0], | ||||
|     z_axis: [0, 0, 1] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const sketch005t = startSketchOn(plane004) | ||||
| @ -592,16 +580,13 @@ const extrude009t = extrude(sketch009t, length = -1) | ||||
| // front left vertical rail | ||||
| // Define planes so the rail can be moved | ||||
| const planeXYfl = { | ||||
|   plane: { | ||||
|     origin: [0, 0, originStart[2]], | ||||
|     xAxis: [1.0, 0.0, 0.0], | ||||
|     yAxis: [0.0, 1.0, 0.0], | ||||
|     zAxis: [0.0, 0.0, 1.0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeXZfl = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1], | ||||
|       originStart[0], | ||||
| @ -610,11 +595,9 @@ const planeXZfl = { | ||||
|     xAxis: [0, 1, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeYZfl = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1], | ||||
|       originStart[0], | ||||
| @ -623,7 +606,6 @@ const planeYZfl = { | ||||
|     xAxis: [-1, 0, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| // Base flange | ||||
| @ -670,7 +652,7 @@ const sketch003fl = startSketchOn(planeXYfl) | ||||
| const extrude003fl = extrude(sketch003fl, length = railHeight * 1.75) | ||||
|  | ||||
| // define slots | ||||
| const sketch010fl = startSketchOn(extrude001fl, 'START') | ||||
| const sketch010fl = startSketchOn(extrude001fl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|        originStart[2] + .81 - (.438 / 2) | ||||
| @ -691,7 +673,7 @@ const sketch010fl = startSketchOn(extrude001fl, 'START') | ||||
| const extrude010fl = extrude(sketch010fl, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch011fl = startSketchOn(extrude001fl, 'START') | ||||
| const sketch011fl = startSketchOn(extrude001fl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|        originStart[2] + railHeight * 1.75 / 2 + .438 / 2 | ||||
| @ -708,7 +690,7 @@ const sketch011fl = startSketchOn(extrude001fl, 'START') | ||||
| const extrude011fl = extrude(sketch011fl, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch012fl = startSketchOn(extrude001fl, 'START') | ||||
| const sketch012fl = startSketchOn(extrude001fl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|        originStart[2] + railHeight * 1.75 - .81 + .438 / 2 | ||||
| @ -731,16 +713,13 @@ const extrude012fl = extrude(sketch012fl, length = -thickness) | ||||
| // FRONT RIGHT VERTICAL RAIL | ||||
| // Define planes so the rail can be moved | ||||
| const planeXYfr = { | ||||
|   plane: { | ||||
|     origin: [0, 0, originStart[2]], | ||||
|     xAxis: [1.0, 0.0, 0.0], | ||||
|     yAxis: [0.0, 1.0, 0.0], | ||||
|     zAxis: [0.0, 0.0, 1.0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeXZfr = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1] + width - thickness - 2, | ||||
|       originStart[0], | ||||
| @ -749,11 +728,9 @@ const planeXZfr = { | ||||
|     xAxis: [0, 1, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeYZfr = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1] + width - 2, | ||||
|       originStart[0], | ||||
| @ -762,7 +739,6 @@ const planeYZfr = { | ||||
|     xAxis: [-1, 0, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| // Base flange | ||||
| @ -808,7 +784,7 @@ const sketch003fr = startSketchOn(planeXYfr) | ||||
| const extrude003fr = extrude(sketch003fr, length = railHeight * 1.75) | ||||
|  | ||||
| // define slots | ||||
| const sketch010fr = startSketchOn(extrude001fr, 'START') | ||||
| const sketch010fr = startSketchOn(extrude001fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|        originStart[2] + .81 - (.438 / 2) | ||||
| @ -829,7 +805,7 @@ const sketch010fr = startSketchOn(extrude001fr, 'START') | ||||
| const extrude010fr = extrude(sketch010fr, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch011fr = startSketchOn(extrude001fr, 'START') | ||||
| const sketch011fr = startSketchOn(extrude001fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|        originStart[2] + railHeight * 1.75 / 2 + .438 / 2 | ||||
| @ -846,7 +822,7 @@ const sketch011fr = startSketchOn(extrude001fr, 'START') | ||||
| const extrude011fr = extrude(sketch011fr, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch012fr = startSketchOn(extrude001fr, 'START') | ||||
| const sketch012fr = startSketchOn(extrude001fr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0], | ||||
|        originStart[2] + railHeight * 1.75 - .81 + .438 / 2 | ||||
| @ -869,16 +845,13 @@ const extrude012fr = extrude(sketch012fr, length = -thickness) | ||||
| // RIGHT REAR VERTICAL RAIL | ||||
| // Define planes so the rail can be moved | ||||
| const planeXYrr = { | ||||
|   plane: { | ||||
|     origin: [0, serverDepth, originStart[2]], | ||||
|     xAxis: [1.0, 0.0, 0.0], | ||||
|     yAxis: [0.0, 1.0, 0.0], | ||||
|     zAxis: [0.0, 0.0, 1.0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeXZrr = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1] + width - thickness - 2, | ||||
|       originStart[0] + serverDepth - 2 - bendRad, | ||||
| @ -887,11 +860,9 @@ const planeXZrr = { | ||||
|     xAxis: [0, 1, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeYZrr = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1] + width - 2, | ||||
|       originStart[0] + serverDepth, | ||||
| @ -900,7 +871,6 @@ const planeYZrr = { | ||||
|     xAxis: [-1, 0, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| // Base flange | ||||
| @ -946,7 +916,7 @@ const sketch003rr = startSketchOn(planeXYrr) | ||||
| const extrude003rr = extrude(sketch003rr, length = railHeight * 1.75) | ||||
|  | ||||
| // define slots | ||||
| const sketch010rr = startSketchOn(extrude001rr, 'START') | ||||
| const sketch010rr = startSketchOn(extrude001rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0] + 1.5 - serverDepth, | ||||
|        originStart[2] + .81 - (.438 / 2) | ||||
| @ -967,7 +937,7 @@ const sketch010rr = startSketchOn(extrude001rr, 'START') | ||||
| const extrude010rr = extrude(sketch010rr, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch011rr = startSketchOn(extrude001rr, 'START') | ||||
| const sketch011rr = startSketchOn(extrude001rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0] + 1.5 - serverDepth, | ||||
|        originStart[2] + railHeight * 1.75 / 2 + .438 / 2 | ||||
| @ -984,7 +954,7 @@ const sketch011rr = startSketchOn(extrude001rr, 'START') | ||||
| const extrude011rr = extrude(sketch011rr, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch012rr = startSketchOn(extrude001rr, 'START') | ||||
| const sketch012rr = startSketchOn(extrude001rr, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0] + 1.5 - serverDepth, | ||||
|        originStart[2] + railHeight * 1.75 - .81 + .438 / 2 | ||||
| @ -1007,16 +977,13 @@ const extrude012rr = extrude(sketch012rr, length = -thickness) | ||||
| // REAR LEFT VETCIAL RAIL | ||||
| // Define planes so the rail can be moved | ||||
| const planeXYrl = { | ||||
|   plane: { | ||||
|     origin: [0, serverDepth, originStart[2]], | ||||
|     xAxis: [1.0, 0.0, 0.0], | ||||
|     yAxis: [0.0, 1.0, 0.0], | ||||
|     zAxis: [0.0, 0.0, 1.0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeXZrl = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1], | ||||
|       originStart[0] + serverDepth - 2 - bendRad, | ||||
| @ -1025,11 +992,9 @@ const planeXZrl = { | ||||
|     xAxis: [0, 1, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
|  | ||||
| const planeYZrl = { | ||||
|   plane: { | ||||
|     origin: [ | ||||
|       originStart[1], | ||||
|       originStart[0] + serverDepth, | ||||
| @ -1038,7 +1003,6 @@ const planeYZrl = { | ||||
|     xAxis: [-1, 0, 0], | ||||
|     yAxis: [0, 0, 1], | ||||
|     zAxis: [1, 0, 0] | ||||
|   } | ||||
| } | ||||
| // Base flange | ||||
| const sketch001rl = startSketchOn(planeXZrl) | ||||
| @ -1083,7 +1047,7 @@ const sketch003rl = startSketchOn(planeXYrl) | ||||
| const extrude003rl = extrude(sketch003rl, length = railHeight * 1.75) | ||||
|  | ||||
| // define slots | ||||
| const sketch010rl = startSketchOn(extrude001rl, 'START') | ||||
| const sketch010rl = startSketchOn(extrude001rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0] - serverDepth + 1.5, | ||||
|        originStart[2] + .81 - (.438 / 2) | ||||
| @ -1104,7 +1068,7 @@ const sketch010rl = startSketchOn(extrude001rl, 'START') | ||||
| const extrude010rl = extrude(sketch010rl, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch011rl = startSketchOn(extrude001rl, 'START') | ||||
| const sketch011rl = startSketchOn(extrude001rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0] - serverDepth + 1.5, | ||||
|        originStart[2] + railHeight * 1.75 / 2 + .438 / 2 | ||||
| @ -1121,7 +1085,7 @@ const sketch011rl = startSketchOn(extrude001rl, 'START') | ||||
| const extrude011rl = extrude(sketch011rl, length = -thickness) | ||||
|  | ||||
| // define slots | ||||
| const sketch012rl = startSketchOn(extrude001rl, 'START') | ||||
| const sketch012rl = startSketchOn(extrude001rl, face = 'START') | ||||
|   |> startProfileAt([ | ||||
|        -1.12 + (.75 - .438) / 2 - originStart[0] - serverDepth + 1.5, | ||||
|        originStart[2] + railHeight * 1.75 - .81 + .438 / 2 | ||||
| @ -1144,29 +1108,23 @@ const extrude012rl = extrude(sketch012rl, length = -thickness) | ||||
| // Define planes so the server can be moved | ||||
| fn streamServer = (serverPos) => { | ||||
|   const planeXYs = { | ||||
|     plane: { | ||||
|       origin: [0, 0 + 2, 4.114 + 1 + serverPos * 1.75], | ||||
|       xAxis: [1.0, 0.0, 0.0], | ||||
|       yAxis: [0.0, 1.0, 0.0], | ||||
|       zAxis: [0.0, 0.0, 1.0] | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   const planeXZs = { | ||||
|     plane: { | ||||
|       origin: [0 + 1.2 + .1, 0 + 2, 0], | ||||
|       xAxis: [0, -1, 0], | ||||
|       yAxis: [0, 0, 1], | ||||
|       zAxis: [1, 0, 0] | ||||
|     } | ||||
|   } | ||||
|   const planeXZs2 = { | ||||
|     plane: { | ||||
|       origin: [18 + 1.4, 0 + 2, 0], | ||||
|       xAxis: [0, -1, 0], | ||||
|       yAxis: [0, 0, 1], | ||||
|       zAxis: [1, 0, 0] | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   const sketch001s = startSketchOn(planeXYs) | ||||
|  | ||||
| @ -14,14 +14,14 @@ const extrude001 = extrude(sketch001, length = 100) | ||||
|      ) | ||||
|   |> chamfer(length = 50, tags = [seg02], tag = $seg04) | ||||
|  | ||||
| const sketch003 = startSketchOn(extrude001, seg04) | ||||
| const sketch003 = startSketchOn(extrude001, face = seg04) | ||||
|    |> startProfileAt([-69.1, 277.34], %) | ||||
|    |> angledLine(angle = 0, length = 41.48, tag = $rectangleSegmentA003) | ||||
|    |> angledLine(angle = segAng(rectangleSegmentA003) - 90, length = 104.8, tag = $rectangleSegmentB002) | ||||
|    |> angledLine(angle = segAng(rectangleSegmentA003), length = -segLen(rectangleSegmentA003), tag = $rectangleSegmentC002) | ||||
|    |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|    |> close() | ||||
| const sketch002 = startSketchOn(extrude001, seg03) | ||||
| const sketch002 = startSketchOn(extrude001, face = seg03) | ||||
|   |> startProfileAt([159.25, 278.35], %) | ||||
|   |> angledLine(angle = 0, length = 40.82, tag = $rectangleSegmentA002) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA002) - 90, length = 132.27, tag = $rectangleSegmentB001) | ||||
|  | ||||
| @ -14,14 +14,14 @@ const extrude001 = extrude(sketch001, length = 100) | ||||
|        tag = $seg03 | ||||
|      ) | ||||
|  | ||||
| const sketch003 = startSketchOn(extrude001, seg04) | ||||
| const sketch003 = startSketchOn(extrude001, face = seg04) | ||||
|    |> startProfileAt([-69.1, 277.34], %) | ||||
|    |> angledLine(angle = 0, length = 41.48, tag = $rectangleSegmentA003) | ||||
|    |> angledLine(angle = segAng(rectangleSegmentA003) - 90, length = 104.8, tag = $rectangleSegmentB002) | ||||
|    |> angledLine(angle = segAng(rectangleSegmentA003), length = -segLen(rectangleSegmentA003), tag = $rectangleSegmentC002) | ||||
|    |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) | ||||
|    |> close() | ||||
| const sketch002 = startSketchOn(extrude001, seg03) | ||||
| const sketch002 = startSketchOn(extrude001, face = seg03) | ||||
|   |> startProfileAt([159.25, 278.35], %) | ||||
|   |> angledLine(angle = 0, length = 40.82, tag = $rectangleSegmentA002) | ||||
|   |> angledLine(angle = segAng(rectangleSegmentA002) - 90, length = 132.27, tag = $rectangleSegmentB001) | ||||
|  | ||||
| @ -6,7 +6,7 @@ part001 = startSketchOn(XY) | ||||
|   |> close() | ||||
|   |> extrude(length = 5) | ||||
|  | ||||
| part002 = startSketchOn(part001, here) | ||||
| part002 = startSketchOn(part001, face = here) | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> line(end = [0, 10]) | ||||
|   |> line(end = [10, 0]) | ||||
|  | ||||
| @ -45,7 +45,7 @@ bracket = startSketchOn(XY) | ||||
|        ] | ||||
|      ) | ||||
|  | ||||
| sketch001 = startSketchOn(bracket, seg01) | ||||
| sketch001 = startSketchOn(bracket, face = seg01) | ||||
|   |> startProfileAt([4.28, 3.83], %) | ||||
|   |> line(end = [2.17, -0.03]) | ||||
|   |> line(end = [-0.07, -1.8]) | ||||
|  | ||||
| @ -11,6 +11,6 @@ const part001 = cube([0,0], 20) | ||||
|     |> close() | ||||
|     |> extrude(length = 20) | ||||
|  | ||||
| const part002 = startSketchOn(part001, "end") | ||||
| const part002 = startSketchOn(part001, face = "end") | ||||
|   |> circle(center: [0, 0], radius: 5, tag =$myCircle) | ||||
|   |> extrude(length = 5) | ||||
|  | ||||
| @ -11,7 +11,7 @@ const part001 = cube([0,0], 20) | ||||
|     |> close() | ||||
|     |> extrude(length = 20) | ||||
|  | ||||
| const part002 = startSketchOn(part001, "END") | ||||
| const part002 = startSketchOn(part001, face = "END") | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> line(end = [0, 10]) | ||||
|   |> line(end = [10, 0]) | ||||
|  | ||||
| @ -11,7 +11,7 @@ const part001 = cube([0,0], 20) | ||||
|     |> close() | ||||
|     |> extrude(length = 20) | ||||
|  | ||||
| const part002 = startSketchOn(part001, "END") | ||||
| const part002 = startSketchOn(part001, face = "END") | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> line(end = [0, 10]) | ||||
|   |> line(end = [10, 0]) | ||||
|  | ||||
| @ -11,7 +11,7 @@ const part001 = cube([0,0], 20) | ||||
|     |> close() | ||||
|     |> extrude(length = 20) | ||||
|  | ||||
| const part002 = startSketchOn(part001, "start") | ||||
| const part002 = startSketchOn(part001, face = "start") | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> line(end = [0, 10]) | ||||
|   |> line(end = [10, 0]) | ||||
|  | ||||
| @ -13,21 +13,17 @@ const totalLength = lbumps * pitch - (2.0 * clearance) | ||||
| const totalWidth = wbumps * pitch - (2.0 * clearance) | ||||
| // Create the plane for the pegs. This is a hack so that the pegs can be patterned along the face of the lego base. | ||||
| const pegFace = { | ||||
|   plane: { | ||||
|     origin: { x: 0, y: 0, z: height }, | ||||
|     xAxis: { x: 1, y: 0, z: 0 }, | ||||
|     yAxis: { x: 0, y: 1, z: 0 }, | ||||
|     zAxis: { x: 0, y: 0, z: 1 } | ||||
|   } | ||||
|   origin: { x: 0, y: 0, z: height }, | ||||
|   xAxis: { x: 1, y: 0, z: 0 }, | ||||
|   yAxis: { x: 0, y: 1, z: 0 }, | ||||
|   zAxis: { x: 0, y: 0, z: 1 } | ||||
| } | ||||
| // Create the plane for the tubes underneath the lego. This is a hack so that the tubes can be patterned underneath the lego. | ||||
| const tubeFace = { | ||||
|     plane: { | ||||
|     origin: { x: 0, y: 0, z: height - t }, | ||||
|     xAxis: { x: 1, y: 0, z: 0 }, | ||||
|     yAxis: { x: 0, y: 1, z: 0 }, | ||||
|     zAxis: { x: 0, y: 0, z: 1 } | ||||
|   } | ||||
|   origin: { x: 0, y: 0, z: height - t }, | ||||
|   xAxis: { x: 1, y: 0, z: 0 }, | ||||
|   yAxis: { x: 0, y: 1, z: 0 }, | ||||
|   zAxis: { x: 0, y: 0, z: 1 } | ||||
| } | ||||
| // Make the base | ||||
| const s = startSketchOn('XY') | ||||
|  | ||||
| @ -715,7 +715,7 @@ part001 = cube([0, 0], 20) | ||||
|   |> close() | ||||
|   |> extrude(length = 20) | ||||
|  | ||||
| part002 = startSketchOn(part001, part001.sketch.tags.here) | ||||
| part002 = startSketchOn(part001, face = part001.sketch.tags.here) | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> line(end = [5, 0]) | ||||
|   |> line(end = [5, 5]) | ||||
| @ -751,7 +751,7 @@ part001 = cube([0,0], 20) | ||||
|     |> close() | ||||
|     |> extrude(length = 20) | ||||
|  | ||||
| part002 = startSketchOn(part001, "end") | ||||
| part002 = startSketchOn(part001, face = "end") | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> line(end = [0, 10]) | ||||
|   |> line(end = [10, 0]) | ||||
| @ -759,7 +759,7 @@ part002 = startSketchOn(part001, "end") | ||||
|   |> close() | ||||
|   |> extrude(length = 5) | ||||
|  | ||||
| part003 = startSketchOn(part002, "end") | ||||
| part003 = startSketchOn(part002, face = "end") | ||||
|   |> startProfileAt([0, 0], %) | ||||
|   |> line(end = [0, 5]) | ||||
|   |> line(end = [5, 0]) | ||||
| @ -811,7 +811,7 @@ part001 = cube([0,0], 20) | ||||
|     |> close() | ||||
|     |> extrude(length = 20) | ||||
|  | ||||
| part002 = startSketchOn(part001, "end") | ||||
| part002 = startSketchOn(part001, face = "end") | ||||
|   |> circle(center = [0, 0], radius= 5)  | ||||
|   |> extrude(length = 5) | ||||
| "#; | ||||
| @ -865,7 +865,7 @@ part = rectShape([0, 0], 20, 20) | ||||
|     }; | ||||
|     assert_eq!( | ||||
|         err.error.message(), | ||||
|         "The input argument of `std::sketch::circle` requires a value with type `Sketch | Plane | Face`, but found string (text)" | ||||
|         "This function expected the input argument to be of type SketchOrSurface but it's actually of type string (text)" | ||||
|     ); | ||||
| } | ||||
|  | ||||
| @ -1031,7 +1031,7 @@ async fn kcl_test_revolve_on_edge() { | ||||
|   |> close() | ||||
|   |> extrude(length = 10) | ||||
|  | ||||
| sketch001 = startSketchOn(box, "end") | ||||
| sketch001 = startSketchOn(box, face = "end") | ||||
|   |> startProfileAt([5, 10], %) | ||||
|   |> line(end = [0, -10]) | ||||
|   |> line(end = [2, 0]) | ||||
| @ -1055,7 +1055,7 @@ async fn kcl_test_revolve_on_edge_get_edge() { | ||||
|   |> close() | ||||
|   |> extrude(length = 10) | ||||
|  | ||||
| sketch001 = startSketchOn(box, revolveAxis) | ||||
| sketch001 = startSketchOn(box, face = revolveAxis) | ||||
|   |> startProfileAt([5, 10], %) | ||||
|   |> line(end = [0, -10]) | ||||
|   |> line(end = [2, 0]) | ||||
| @ -1085,7 +1085,7 @@ async fn kcl_test_revolve_on_face_circle_edge() { | ||||
|   |> close() | ||||
|   |> extrude(length = 20) | ||||
|  | ||||
| sketch001 = startSketchOn(box, "END") | ||||
| sketch001 = startSketchOn(box, face = "END") | ||||
|   |> circle(center = [10,10], radius= 4) | ||||
|   |> revolve( | ||||
|     angle = 90, | ||||
| @ -1107,7 +1107,7 @@ async fn kcl_test_revolve_on_face_circle() { | ||||
|   |> close() | ||||
|   |> extrude(length = 20) | ||||
|  | ||||
| sketch001 = startSketchOn(box, "END") | ||||
| sketch001 = startSketchOn(box, face = "END") | ||||
|   |> circle(center = [10,10], radius= 4 ) | ||||
|   |> revolve( | ||||
|     angle = -90,  | ||||
| @ -1129,7 +1129,7 @@ async fn kcl_test_revolve_on_face() { | ||||
|   |> close(tag = $revolveAxis) | ||||
|   |> extrude(length = 10) | ||||
|  | ||||
| sketch001 = startSketchOn(box, "end") | ||||
| sketch001 = startSketchOn(box, face = "end") | ||||
|   |> startProfileAt([5, 10], %) | ||||
|   |> line(end = [0, -10]) | ||||
|   |> line(end = [2, 0]) | ||||
| @ -1173,7 +1173,7 @@ async fn kcl_test_simple_revolve_sketch_on_edge() { | ||||
|      |> close() | ||||
|      |> revolve(axis = Y, angle = 180) | ||||
|  | ||||
| part002 = startSketchOn(part001, 'end') | ||||
| part002 = startSketchOn(part001, face = 'end') | ||||
|     |> startProfileAt([4.5, -5], %) | ||||
|     |> line(end = [0, 5]) | ||||
|     |> line(end = [5, 0]) | ||||
| @ -1189,7 +1189,7 @@ part002 = startSketchOn(part001, 'end') | ||||
| #[tokio::test(flavor = "multi_thread")] | ||||
| async fn kcl_test_plumbus_fillets() { | ||||
|     let code = r#"fn make_circle = (ext, face, pos, radius) => { | ||||
|   sg = startSketchOn(ext, face) | ||||
|   sg = startSketchOn(ext, face = face) | ||||
|   |> startProfileAt([pos[0] + radius, pos[1]], %) | ||||
|   |> arc({ | ||||
|        angleEnd = 360, | ||||
| @ -1264,20 +1264,18 @@ async fn kcl_test_empty_file_is_ok() { | ||||
| async fn kcl_test_member_expression_in_params() { | ||||
|     let code = r#"fn capScrew = (originStart, length, dia, capDia, capHeadLength) => { | ||||
|   screwHead = startSketchOn({ | ||||
|        plane: { | ||||
|          origin: { | ||||
|           x: originStart[0], | ||||
|           y: originStart[1], | ||||
|           z: originStart[2], | ||||
|          }, | ||||
|          xAxis: { x: 0, y: 0, z: -1 }, | ||||
|          yAxis: { x: 1, y: 0, z: 0 }, | ||||
|          zAxis: { x: 0, y: 1, z: 0 } | ||||
|       } | ||||
|       origin: { | ||||
|       x: originStart[0], | ||||
|       y: originStart[1], | ||||
|       z: originStart[2], | ||||
|       }, | ||||
|       xAxis: { x: 0, y: 0, z: -1 }, | ||||
|       yAxis: { x: 1, y: 0, z: 0 }, | ||||
|       zAxis: { x: 0, y: 1, z: 0 } | ||||
|   }) | ||||
|     |> circle(center = [0, 0], radius= capDia / 2) | ||||
|     |> extrude(length = capHeadLength) | ||||
|   screw = startSketchOn(screwHead, "start") | ||||
|   screw = startSketchOn(screwHead, face = "start") | ||||
|     |> circle(center = [0, 0], radius= dia / 2) | ||||
|     |> extrude(length = length) | ||||
|   return screw | ||||
| @ -1346,7 +1344,7 @@ async fn kcl_test_error_empty_start_sketch_on_string() { | ||||
|   |> close() | ||||
|   |> extrude(length = 100) | ||||
|  | ||||
| secondSketch = startSketchOn(part001, '') | ||||
| secondSketch = startSketchOn(part001, face = '') | ||||
|   |> circle(center = [-20, 50], radius= 40) | ||||
|   |> extrude(length = 20) | ||||
| "#; | ||||
| @ -1355,7 +1353,7 @@ secondSketch = startSketchOn(part001, '') | ||||
|     assert!(result.is_err()); | ||||
|     assert_eq!( | ||||
|         result.err().unwrap().to_string(), | ||||
|         r#"semantic: KclErrorDetails { source_ranges: [SourceRange([297, 299, 0])], message: "Argument at index 1 was supposed to be type Option<FaceTag> but found string (text)" }"# | ||||
|         r#"type: KclErrorDetails { source_ranges: [SourceRange([274, 307, 0])], message: "The arg face was given, but it was the wrong type. It should be type FaceTag but it was string (text)" }"# | ||||
|     ); | ||||
| } | ||||
|  | ||||
| @ -1991,7 +1989,7 @@ someFunction('INVALID') | ||||
|     assert!(result.is_err()); | ||||
|     assert_eq!( | ||||
|         result.err().unwrap().to_string(), | ||||
|         r#"semantic: KclErrorDetails { source_ranges: [SourceRange([51, 60, 0]), SourceRange([65, 88, 0])], message: "Argument at index 0 was supposed to be type SketchData but found string (text)" }"# | ||||
|         r#"semantic: KclErrorDetails { source_ranges: [SourceRange([51, 60, 0]), SourceRange([65, 88, 0])], message: "This function expected the input argument to be Solid or Plane but it's actually of type string (text)" }"# | ||||
|     ); | ||||
| } | ||||
|  | ||||
| @ -2012,7 +2010,7 @@ someFunction('INVALID') | ||||
|     assert!(result.is_err()); | ||||
|     assert_eq!( | ||||
|         result.err().unwrap().to_string(), | ||||
|         r#"semantic: KclErrorDetails { source_ranges: [SourceRange([103, 113, 0]), SourceRange([126, 155, 0]), SourceRange([159, 182, 0])], message: "Argument at index 0 was supposed to be type SketchData but found string (text)" }"# | ||||
|         r#"semantic: KclErrorDetails { source_ranges: [SourceRange([103, 113, 0]), SourceRange([126, 155, 0]), SourceRange([159, 182, 0])], message: "This function expected the input argument to be Solid or Plane but it's actually of type string (text)" }"# | ||||
|     ); | ||||
| } | ||||
|  | ||||
|  | ||||
| @ -37,7 +37,7 @@ use uuid::Uuid; | ||||
|  | ||||
| use crate::{ | ||||
|     errors::{KclError, KclErrorDetails}, | ||||
|     execution::{ArtifactCommand, DefaultPlanes, IdGenerator, Point3d}, | ||||
|     execution::{types::UnitLen, ArtifactCommand, DefaultPlanes, IdGenerator, Point3d}, | ||||
|     SourceRange, | ||||
| }; | ||||
|  | ||||
| @ -517,7 +517,13 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { | ||||
|     ) -> Result<uuid::Uuid, KclError> { | ||||
|         // Create new default planes. | ||||
|         let default_size = 100.0; | ||||
|         let default_origin = Point3d { x: 0.0, y: 0.0, z: 0.0 }.into(); | ||||
|         let default_origin = Point3d { | ||||
|             x: 0.0, | ||||
|             y: 0.0, | ||||
|             z: 0.0, | ||||
|             units: UnitLen::Mm, | ||||
|         } | ||||
|         .into(); | ||||
|  | ||||
|         self.batch_modeling_cmd( | ||||
|             plane_id, | ||||
| @ -555,8 +561,18 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { | ||||
|             ( | ||||
|                 PlaneName::Xy, | ||||
|                 id_generator.next_uuid(), | ||||
|                 Point3d { x: 1.0, y: 0.0, z: 0.0 }, | ||||
|                 Point3d { x: 0.0, y: 1.0, z: 0.0 }, | ||||
|                 Point3d { | ||||
|                     x: 1.0, | ||||
|                     y: 0.0, | ||||
|                     z: 0.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Point3d { | ||||
|                     x: 0.0, | ||||
|                     y: 1.0, | ||||
|                     z: 0.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Some(Color { | ||||
|                     r: 0.7, | ||||
|                     g: 0.28, | ||||
| @ -567,8 +583,18 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { | ||||
|             ( | ||||
|                 PlaneName::Yz, | ||||
|                 id_generator.next_uuid(), | ||||
|                 Point3d { x: 0.0, y: 1.0, z: 0.0 }, | ||||
|                 Point3d { x: 0.0, y: 0.0, z: 1.0 }, | ||||
|                 Point3d { | ||||
|                     x: 0.0, | ||||
|                     y: 1.0, | ||||
|                     z: 0., | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Point3d { | ||||
|                     x: 0.0, | ||||
|                     y: 0.0, | ||||
|                     z: 1.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Some(Color { | ||||
|                     r: 0.28, | ||||
|                     g: 0.7, | ||||
| @ -579,8 +605,18 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { | ||||
|             ( | ||||
|                 PlaneName::Xz, | ||||
|                 id_generator.next_uuid(), | ||||
|                 Point3d { x: 1.0, y: 0.0, z: 0.0 }, | ||||
|                 Point3d { x: 0.0, y: 0.0, z: 1.0 }, | ||||
|                 Point3d { | ||||
|                     x: 1.0, | ||||
|                     y: 0.0, | ||||
|                     z: 0.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Point3d { | ||||
|                     x: 0.0, | ||||
|                     y: 0.0, | ||||
|                     z: 1.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Some(Color { | ||||
|                     r: 0.28, | ||||
|                     g: 0.28, | ||||
| @ -595,8 +631,14 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { | ||||
|                     x: -1.0, | ||||
|                     y: 0.0, | ||||
|                     z: 0.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Point3d { | ||||
|                     x: 0.0, | ||||
|                     y: 1.0, | ||||
|                     z: 0.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Point3d { x: 0.0, y: 1.0, z: 0.0 }, | ||||
|                 None, | ||||
|             ), | ||||
|             ( | ||||
| @ -606,8 +648,14 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { | ||||
|                     x: 0.0, | ||||
|                     y: -1.0, | ||||
|                     z: 0.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Point3d { | ||||
|                     x: 0.0, | ||||
|                     y: 0.0, | ||||
|                     z: 1.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Point3d { x: 0.0, y: 0.0, z: 1.0 }, | ||||
|                 None, | ||||
|             ), | ||||
|             ( | ||||
| @ -617,8 +665,14 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { | ||||
|                     x: -1.0, | ||||
|                     y: 0.0, | ||||
|                     z: 0.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Point3d { | ||||
|                     x: 0.0, | ||||
|                     y: 0.0, | ||||
|                     z: 1.0, | ||||
|                     units: UnitLen::Mm, | ||||
|                 }, | ||||
|                 Point3d { x: 0.0, y: 0.0, z: 1.0 }, | ||||
|                 None, | ||||
|             ), | ||||
|         ]; | ||||
|  | ||||
| @ -725,12 +725,7 @@ fn apply_ascription( | ||||
|     let ty = RuntimeType::from_parsed(ty.inner.clone(), exec_state, value.into()) | ||||
|         .map_err(|e| KclError::Semantic(e.into()))?; | ||||
|  | ||||
|     if let KclValue::Number { | ||||
|         ty: NumericType::Unknown, | ||||
|         value, | ||||
|         meta, | ||||
|     } = value | ||||
|     { | ||||
|     if let KclValue::Number { value, meta, .. } = value { | ||||
|         // If the number has unknown units but the user is explicitly specifying them, treat the value as having had it's units erased, | ||||
|         // rather than forcing the user to explicitly erase them. | ||||
|         KclValue::Number { | ||||
|  | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user