| 
									
										
										
										
											2025-03-19 16:43:10 -07:00
										 |  |  | --- | 
					
						
							|  |  |  | source: kcl-lib/src/simulation_tests.rs | 
					
						
							|  |  |  | description: Result of unparsing rotate_after_fillet.kcl | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | export boltDiameter = 0.625 | 
					
						
							|  |  |  | export boltLength = 2.500 | 
					
						
							|  |  |  | export boltHeadLength = boltDiameter | 
					
						
							|  |  |  | export boltHeadDiameter = 0.938 | 
					
						
							|  |  |  | export boltHexDrive = 1 / 2 | 
					
						
							|  |  |  | export boltHexFlatLength = boltHexDrive / (2 * cos(toRadians(30))) | 
					
						
							|  |  |  | export boltThreadLength = 1.75 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export fn bolt() { | 
					
						
							|  |  |  |   // Create the head of the cap screw | 
					
						
							| 
									
										
										
										
											2025-03-21 22:39:12 +13:00
										 |  |  |   boltHead = startSketchOn(XZ) | 
					
						
							| 
									
										
										
										
											2025-03-19 16:43:10 -07:00
										 |  |  |     |> circle(center = [0, 0], radius = boltHeadDiameter / 2, tag = $topEdge) | 
					
						
							|  |  |  |     |> extrude(length = -boltHeadLength) | 
					
						
							|  |  |  |     |> fillet(radius = 0.020, tags = [topEdge, getOppositeEdge(topEdge)]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // Define the sketch of the hex pattern on the screw head | 
					
						
							|  |  |  |   hexPatternSketch = startSketchOn(boltHead, 'start') | 
					
						
							|  |  |  |     |> startProfileAt([ | 
					
						
							|  |  |  |          boltHexDrive / 2, | 
					
						
							|  |  |  |          boltHexFlatLength / 2 | 
					
						
							|  |  |  |        ], %) | 
					
						
							| 
									
										
										
											
												KCL: Angled line should use keyword args (#5803)
We continue migrating KCL stdlib functions to use keyword arguments. Next up is the `angledLine` family of functions (except `angledLineThatIntersects, which will be a quick follow-up).
Before vs. after:
`angledLine({angle = 90, length = 3}, %, $edge)`
  => `angledLine(angle = 90, length = 3, tag = $edge)`
`angledLineOfXLength({angle = 90, length = 3}, %, $edge)`
  => `angledLine(angle = 90, lengthX = 3, tag = $edge)`
`angledLineOfYLength({angle = 90, length = 3}, %, $edge)`
  => `angledLine(angle = 90, lengthY = 3, tag = $edge)`
`angledLineToX({angle = 90, length = 3}, %, $edge)`
  => `angledLine(angle = 90, endAbsoluteX = 3, tag = $edge)`
`angledLineToY({angle = 90, length = 3}, %, $edge)`
  => `angledLine(angle = 90, endAbsoluteY = 3, tag = $edge)`
											
										 
											2025-04-09 14:55:15 -05:00
										 |  |  |     |> angledLine(angle = 270, length = boltHexFlatLength) | 
					
						
							|  |  |  |     |> angledLine(angle = 210, length = boltHexFlatLength) | 
					
						
							|  |  |  |     |> angledLine(angle = 150, length = boltHexFlatLength) | 
					
						
							|  |  |  |     |> angledLine(angle = 90, length = boltHexFlatLength) | 
					
						
							|  |  |  |     |> angledLine(angle = 30, length = boltHexFlatLength) | 
					
						
							| 
									
										
										
										
											2025-03-19 16:43:10 -07:00
										 |  |  |     |> close() | 
					
						
							|  |  |  |     |> extrude(length = -boltHeadLength * 0.75) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   boltBody = startSketchOn(boltHead, 'end') | 
					
						
							|  |  |  |     |> circle(center = [0, 0], radius = boltDiameter / 2, tag = $filletEdge) | 
					
						
							|  |  |  |     |> extrude(length = boltLength) | 
					
						
							|  |  |  |     |> fillet(radius = .020, tags = [getOppositeEdge(filletEdge)]) | 
					
						
							|  |  |  |     |> appearance(color = "#4dd043", metalness = 90, roughness = 90) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return boltBody | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bolt() | 
					
						
							|  |  |  |   |> rotate(roll = 3.14, pitch = 3.14, yaw = 3.14) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // https://www.mcmaster.com/91251a404/ |