2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								---
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								source: kcl-lib/src/simulation_tests.rs
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								description: Result of unparsing i_shape.kcl
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								---
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								d_wrist_circumference = [22.8, 10.7, 16.4, 18.5]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								width = d_wrist_circumference[0] + d_wrist_circumference[1] + d_wrist_circumference[2] + d_wrist_circumference[3]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								length = 120.0
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								hand_thickness = 24.0
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								corner_radius = 5.0
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								// At first I thought this was going to be symmetric,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								// but I measured intentionally to not be symmetric,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								// because your wrist isn't a perfect cylindrical surface
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								brace_base = startSketchOn(XY)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> startProfileAt([corner_radius, 0], %)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> line(end = [width - corner_radius, 0.0])
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [corner_radius, corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> yLine(length = 25.0 - corner_radius)
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [-corner_radius, corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> xLine(length = -(d_wrist_circumference[0] - (corner_radius * 2)))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [-corner_radius, corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> yLine(length = length - 25.0 - 23.0 - (corner_radius * 2))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [corner_radius, corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> xLine(length = 15.0 - (corner_radius * 2))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [corner_radius, corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> yLine(length = 23.0 - corner_radius)
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [-corner_radius, corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> xLine(length = -(hand_thickness + 15.0 + 15.0 - (corner_radius * 2)))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [-corner_radius, -corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> yLine(length = -(23.0 - corner_radius))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [corner_radius, -corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> xLine(length = 15.0 - (corner_radius * 2))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [corner_radius, -corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> yLine(length = -(length - 25.0 - 23.0 - (corner_radius * 2)))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [-corner_radius, -corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> xLine(length = -(d_wrist_circumference[1] + d_wrist_circumference[2] + d_wrist_circumference[3] - hand_thickness - corner_radius))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [-corner_radius, -corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> yLine(length = -(25.0 - corner_radius))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [corner_radius, -corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> close(%)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								inner = startSketchOn(XY)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> startProfileAt([0, 0], %)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> xLine(length = 1.0)
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [corner_radius, corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> yLine(length = 25.0 - (corner_radius * 2))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [-corner_radius, corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> xLine(length = -1.0)
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [-corner_radius, -corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> yLine(length = -(25.0 - (corner_radius * 2)))
							 | 
						
					
						
							
								
									
										
										
										
											2025-04-11 14:17:20 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  |> tangentialArc(end = [corner_radius, -corner_radius])
							 | 
						
					
						
							
								
									
										
										
										
											2025-03-20 11:06:27 +13:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> close(%)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								final = brace_base
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> hole(inner, %)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  |> extrude(length = 3.0)
							 |