| 
									
										
										
										
											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 | 
					
						
							|  |  |  |        ], %) | 
					
						
							|  |  |  |     |> 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 | 
					
						
							|  |  |  |        }, %) | 
					
						
							|  |  |  |     |> 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/ |