2025-03-06 18:01:24 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								// Socket Head Cap Screw
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// This is for a #10-24 screw that is 1.00 inches long. A socket head cap screw is a type of fastener that is widely used in a variety of applications requiring a high strength fastening solution. It is characterized by its cylindrical head and internal hexagonal drive, which allows for tightening with an Allen wrench or hex key.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-04 11:03:13 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Set units
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								@settings(defaultLengthUnit = in)
							 
						 
					
						
							
								
									
										
										
										
											2025-03-06 18:01:24 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-04 11:03:13 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Define parameters
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								boltDiameter = 0.190
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								boltLength = 1.0
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								boltHeadLength = boltDiameter
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								boltHeadDiameter = 0.313
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								boltHexDrive = 5 / 32
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								boltHexFlatLength = boltHexDrive / (2 * cos(toRadians(30)))
							 
						 
					
						
							
								
									
										
										
										
											2025-03-06 18:01:24 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-04 11:03:13 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Create the head of the cap screw
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								boltHead = startSketchOn(XZ)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  |> circle(center = [0, 0], radius = boltHeadDiameter / 2, tag = $topEdge)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  |> extrude(length = -boltHeadLength)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  |> fillet(radius = 0.020, tags = [topEdge, getOppositeEdge(topEdge)])
							 
						 
					
						
							
								
									
										
										
										
											2025-03-26 08:53:34 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-04 11:03:13 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Define the sketch of the hex pattern on the screw head
							 
						 
					
						
							
								
									
										
										
										
											2025-04-14 05:58:19 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								hexPatternSketch = startSketchOn(boltHead, face = START)
							 
						 
					
						
							
								
									
										
										
										
											2025-04-25 16:01:35 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  |> startProfile(at = [
							 
						 
					
						
							
								
									
										
										
										
											2025-04-04 11:03:13 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								       boltHexDrive / 2,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								       boltHexFlatLength / 2
							 
						 
					
						
							
								
									
										
										
										
											2025-04-25 16:01:35 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     ])
							 
						 
					
						
							
								
									
										
										
											
												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-04-04 11:03:13 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  |> close()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  |> extrude(length = -boltHeadLength * 0.75)
							 
						 
					
						
							
								
									
										
										
										
											2025-04-14 05:58:19 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								boltBody = startSketchOn(boltHead, face = END)
							 
						 
					
						
							
								
									
										
										
										
											2025-04-04 11:03:13 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  |> 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)