View Issue Details

IDProjectCategoryView StatusLast Update
0004762OpenSCADBugpublic2021-12-29 02:54
Reporterozzee Assigned Tochennes  
PrioritynormalSeveritymajorReproducibilityalways
Status confirmedResolutionopen 
Product Version0.20 
Summary0004762: CSG file from OpenScad does not render correctly
DescriptionAttached CSG model file from OpenScad (see attached .scad file) appears to have a number of errors when rendering in FreeCAD.

1. The difference operations do not seem to be respected.
2. The multmatrix transformations do not seem to produce the same transforms in OpenSCAD (note many objects in the wrong places).
Steps To ReproduceImport the attached CSG file.
Additional Information00:15:28 This function will be deprecated. Please use 'make_layer'.
00:15:28 ----------------
00:15:28 Layer
00:15:28 name: 0
00:15:28 line_color: (0.0, 0.0, 0.0)
00:15:28 line_width: 2.0
00:15:28 draw_style: Solid
00:15:28 transparency: 0
00:15:28 drawing 272 lines...
00:15:28 skipping texts...
00:15:28 skipping dimensions...
00:15:28 skipping points...
00:15:28 skipping leaders...
00:15:28 skipping hatches...
00:15:28 skipping *blocks...
00:15:28 successfully imported C:\Users\gianni\AppData\Local\Temp\fc-12712-528727-000001.dxf
00:15:28 End processing CSG file
00:15:28 Traceback (most recent call last):
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 406, in execute
    self.createGeometry(fp)
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 448, in createGeometry
    pipe_shell.build()
<class 'Part.OCCError'>: Approx_CurvlinFunc::GetUParameter
00:15:31 <Exception> Input shape is null
00:15:31 <Exception> Input shape is null
00:15:46 Traceback (most recent call last):
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 406, in execute
    self.createGeometry(fp)
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 448, in createGeometry
    pipe_shell.build()
<class 'Part.OCCError'>: Approx_CurvlinFunc::GetUParameter
00:15:46 <Exception> Input shape is null
00:15:46 <Exception> Input shape is null
00:16:50 Traceback (most recent call last):
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 406, in execute
    self.createGeometry(fp)
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 448, in createGeometry
    pipe_shell.build()
<class 'Part.OCCError'>: Approx_CurvlinFunc::GetUParameter
00:16:50 <Exception> Input shape is null
00:16:50 <Exception> Input shape is null
00:16:53 Traceback (most recent call last):
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 406, in execute
    self.createGeometry(fp)
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 448, in createGeometry
    pipe_shell.build()
<class 'Part.OCCError'>: Approx_CurvlinFunc::GetUParameter
00:16:53 <Exception> Input shape is null
00:16:53 <Exception> Input shape is null
00:16:56 Traceback (most recent call last):
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 406, in execute
    self.createGeometry(fp)
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 448, in createGeometry
    pipe_shell.build()
<class 'Part.OCCError'>: Approx_CurvlinFunc::GetUParameter
00:16:56 <Exception> Input shape is null
00:16:56 <Exception> Input shape is null
00:24:41 Traceback (most recent call last):
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 406, in execute
    self.createGeometry(fp)
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 448, in createGeometry
    pipe_shell.build()
<class 'Part.OCCError'>: Approx_CurvlinFunc::GetUParameter
00:24:41 <Exception> Input shape is null
00:24:41 <Exception> Input shape is null
00:24:43 Traceback (most recent call last):
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 406, in execute
    self.createGeometry(fp)
  File "C:\Users\gianni\Downloads\FreeCAD_0.20.25645_Win-LPv12.5.4_vc17.x-x86-64\Mod\OpenSCAD\OpenSCADFeatures.py", line 448, in createGeometry
    pipe_shell.build()
<class 'Part.OCCError'>: Approx_CurvlinFunc::GetUParameter
00:24:43 <Exception> Input shape is null
00:24:43 <Exception> Input shape is null
Tags#post-to-forum

Activities

ozzee

2021-10-09 13:31

reporter  

anchorcad_RaspberryPi4Case_bottom_example.csg (70,293 bytes)   
difference() {
	multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 13.75], [0, 0, 0, 1]]) {
		difference() {
			union() {
				multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -13.75], [0, 0, 0, 1]]) {
					difference() {
						multmatrix([[1, 0, 0, -46], [0, 1, 0, -31], [0, 0, 1, -13.75], [0, 0, 0, 1]]) {
							linear_extrude(height = 27.5, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[5.25, 0], [86.75, 0], [86.979, 0.00499684], [87.2076, 0.0199778], [87.4353, 0.0449145], [87.6617, 0.0797593], [87.8863, 0.124446], [88.1088, 0.178889], [88.3287, 0.242986], [88.5456, 0.316614], [88.7591, 0.399632], [88.9687, 0.491884], [89.1742, 0.593193], [89.375, 0.703367], [89.5708, 0.822195], [89.7613, 0.949452], [89.946, 1.08489], [90.1246, 1.22827], [90.2968, 1.37929], [90.4623, 1.53769], [90.6207, 1.70315], [90.7717, 1.87537], [90.9151, 2.054], [91.0505, 2.23872], [91.1778, 2.42918], [91.2966, 2.625], [91.4068, 2.82582], [91.5081, 3.03125], [91.6004, 3.24091], [91.6834, 3.45439], [91.757, 3.67129], [91.8211, 3.8912], [91.8756, 4.11369], [91.9202, 4.33835], [91.9551, 4.56474], [91.98, 4.79243], [91.995, 5.021], [92, 5.25], [92, 56.75], [91.995, 56.979], [91.98, 57.2076], [91.9551, 57.4353], [91.9202, 57.6617], [91.8756, 57.8863], [91.8211, 58.1088], [91.757, 58.3287], [91.6834, 58.5456], [91.6004, 58.7591], [91.5081, 58.9687], [91.4068, 59.1742], [91.2966, 59.375], [91.1778, 59.5708], [91.0505, 59.7613], [90.9151, 59.946], [90.7717, 60.1246], [90.6207, 60.2968], [90.4623, 60.4623], [90.2968, 60.6207], [90.1246, 60.7717], [89.946, 60.9151], [89.7613, 61.0505], [89.5708, 61.1778], [89.375, 61.2966], [89.1742, 61.4068], [88.9687, 61.5081], [88.7591, 61.6004], [88.5456, 61.6834], [88.3287, 61.757], [88.1088, 61.8211], [87.8863, 61.8756], [87.6617, 61.9202], [87.4353, 61.9551], [87.2076, 61.98], [86.979, 61.995], [86.75, 62], [5.25, 62], [5.021, 61.995], [4.79243, 61.98], [4.56474, 61.9551], [4.33835, 61.9202], [4.11369, 61.8756], [3.8912, 61.8211], [3.67129, 61.757], [3.45439, 61.6834], [3.24091, 61.6004], [3.03125, 61.5081], [2.82582, 61.4068], [2.625, 61.2966], [2.42918, 61.1778], [2.23872, 61.0505], [2.054, 60.9151], [1.87537, 60.7717], [1.70315, 60.6207], [1.53769, 60.4623], [1.37929, 60.2968], [1.22827, 60.1246], [1.08489, 59.946], [0.949452, 59.7613], [0.822195, 59.5708], [0.703367, 59.375], [0.593193, 59.1742], [0.491884, 58.9687], [0.399632, 58.7591], [0.316614, 58.5456], [0.242986, 58.3287], [0.178889, 58.1088], [0.124446, 57.8863], [0.0797593, 57.6617], [0.0449145, 57.4353], [0.0199778, 57.2076], [0.00499684, 56.979], [8.88178e-16, 56.75], [0, 5.25], [0.00499684, 5.021], [0.0199778, 4.79243], [0.0449145, 4.56474], [0.0797593, 4.33835], [0.124446, 4.11369], [0.178889, 3.8912], [0.242986, 3.67129], [0.316614, 3.45439], [0.399632, 3.24091], [0.491884, 3.03125], [0.593193, 2.82582], [0.703367, 2.625], [0.822195, 2.42918], [0.949452, 2.23872], [1.08489, 2.054], [1.22827, 1.87537], [1.37929, 1.70315], [1.53769, 1.53769], [1.70315, 1.37929], [1.87537, 1.22827], [2.054, 1.08489], [2.23872, 0.949452], [2.42918, 0.822195], [2.625, 0.703367], [2.82582, 0.593193], [3.03125, 0.491884], [3.24091, 0.399632], [3.45439, 0.316614], [3.67129, 0.242986], [3.8912, 0.178889], [4.11369, 0.124446], [4.33835, 0.0797593], [4.56474, 0.0449145], [4.79243, 0.0199778], [5.021, 0.00499684], [5.25, 0]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[1, 0, 0, -44], [0, 1, 0, -29], [0, 0, 1, -11.75], [0, 0, 0, 1]]) {
							linear_extrude(height = 23.5, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[3.25, 0], [84.75, 0], [84.8918, 0.00309328], [85.0333, 0.0123672], [85.1742, 0.0278042], [85.3144, 0.0493748], [85.4534, 0.077038], [85.5912, 0.110741], [85.7273, 0.15042], [85.8616, 0.195999], [85.9937, 0.247392], [86.1235, 0.3045], [86.2507, 0.367215], [86.375, 0.435417], [86.4962, 0.508978], [86.6141, 0.587756], [86.7285, 0.671602], [86.8391, 0.760356], [86.9457, 0.853849], [87.0481, 0.951903], [87.1462, 1.05433], [87.2396, 1.16094], [87.3284, 1.27153], [87.4122, 1.38588], [87.491, 1.50378], [87.5646, 1.625], [87.6328, 1.74932], [87.6955, 1.87649], [87.7526, 2.00628], [87.804, 2.13843], [87.8496, 2.27271], [87.8893, 2.40884], [87.923, 2.54657], [87.9506, 2.68564], [87.9722, 2.82579], [87.9876, 2.96674], [87.9969, 3.10824], [88, 3.25], [88, 54.75], [87.9969, 54.8918], [87.9876, 55.0333], [87.9722, 55.1742], [87.9506, 55.3144], [87.923, 55.4534], [87.8893, 55.5912], [87.8496, 55.7273], [87.804, 55.8616], [87.7526, 55.9937], [87.6955, 56.1235], [87.6328, 56.2507], [87.5646, 56.375], [87.491, 56.4962], [87.4122, 56.6141], [87.3284, 56.7285], [87.2396, 56.8391], [87.1462, 56.9457], [87.0481, 57.0481], [86.9457, 57.1462], [86.8391, 57.2396], [86.7285, 57.3284], [86.6141, 57.4122], [86.4962, 57.491], [86.375, 57.5646], [86.2507, 57.6328], [86.1235, 57.6955], [85.9937, 57.7526], [85.8616, 57.804], [85.7273, 57.8496], [85.5912, 57.8893], [85.4534, 57.923], [85.3144, 57.9506], [85.1742, 57.9722], [85.0333, 57.9876], [84.8918, 57.9969], [84.75, 58], [3.25, 58], [3.10824, 57.9969], [2.96674, 57.9876], [2.82579, 57.9722], [2.68564, 57.9506], [2.54657, 57.923], [2.40884, 57.8893], [2.27271, 57.8496], [2.13843, 57.804], [2.00628, 57.7526], [1.87649, 57.6955], [1.74932, 57.6328], [1.625, 57.5646], [1.50378, 57.491], [1.38588, 57.4122], [1.27153, 57.3284], [1.16094, 57.2396], [1.05433, 57.1462], [0.951903, 57.0481], [0.853849, 56.9457], [0.760356, 56.8391], [0.671602, 56.7285], [0.587756, 56.6141], [0.508978, 56.4962], [0.435417, 56.375], [0.367215, 56.2507], [0.3045, 56.1235], [0.247392, 55.9937], [0.195999, 55.8616], [0.15042, 55.7273], [0.110741, 55.5912], [0.077038, 55.4534], [0.0493748, 55.3144], [0.0278042, 55.1742], [0.0123672, 55.0333], [0.00309328, 54.8918], [-6.66134e-15, 54.75], [0, 3.25], [0.00309328, 3.10824], [0.0123672, 2.96674], [0.0278042, 2.82579], [0.0493748, 2.68564], [0.077038, 2.54657], [0.110741, 2.40884], [0.15042, 2.27271], [0.195999, 2.13843], [0.247392, 2.00628], [0.3045, 1.87649], [0.367215, 1.74932], [0.435417, 1.625], [0.508978, 1.50378], [0.587756, 1.38588], [0.671602, 1.27153], [0.760356, 1.16094], [0.853849, 1.05433], [0.951903, 0.951903], [1.05433, 0.853849], [1.16094, 0.760356], [1.27153, 0.671602], [1.38588, 0.587756], [1.50378, 0.508978], [1.625, 0.435417], [1.74932, 0.367215], [1.87649, 0.3045], [2.00628, 0.247392], [2.13843, 0.195999], [2.27271, 0.15042], [2.40884, 0.110741], [2.54657, 0.077038], [2.68564, 0.0493748], [2.82579, 0.0278042], [2.96674, 0.0123672], [3.10824, 0.00309328], [3.25, 0]], paths = undef, convexity = 1);
							}
						}
					}
				}
				multmatrix([[-1, 0, 0, 35.49], [0, 0, -1, -10], [0, -1, 0, -11], [0, 0, 0, 1]]) {
					multmatrix([[0, 1, 0, -10], [1, 0, 0, -9], [0, 0, -1, 1.4], [0, 0, 0, 1]]) {
						linear_extrude(height = 2.8, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
							polygon(points = [[0, 0], [0, 20], [18, 0], [0, 0]], paths = undef, convexity = 1);
						}
					}
				}
				multmatrix([[-1, 0, 0, 35.49], [0, 0, -1, 8.1], [0, -1, 0, -11], [0, 0, 0, 1]]) {
					multmatrix([[0, 1, 0, -10], [1, 0, 0, -9], [0, 0, -1, 1.5], [0, 0, 0, 1]]) {
						linear_extrude(height = 3, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
							polygon(points = [[0, 0], [0, 20], [18, 0], [0, 0]], paths = undef, convexity = 1);
						}
					}
				}
				multmatrix([[1, 0, 0, -7], [0, 1, 0, 2.5], [0, 0, 1, -2.005], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, -11.975], [0, 1, 0, -11.975], [0, 0, 1, -0.4], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.9], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.8, r1 = 2.35, r2 = 2.35, center = false);
						}
					}
					multmatrix([[0, -1, 0, 11.975], [1, 0, 0, -11.975], [0, 0, 1, -0.4], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.9], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.8, r1 = 2.35, r2 = 2.35, center = false);
						}
					}
					multmatrix([[-1, 0, 0, 11.975], [0, -1, 0, 11.975], [0, 0, 1, -0.4], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.9], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.8, r1 = 2.35, r2 = 2.35, center = false);
						}
					}
					multmatrix([[0, 1, 0, -11.975], [-1, 0, 0, 11.975], [0, 0, 1, -0.4], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.9], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.8, r1 = 2.35, r2 = 2.35, center = false);
						}
					}
				}
				multmatrix([[1, 0, 0, -39], [0, 1, 0, -24.5], [0, 0, 1, -22.52], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -0.5], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.51], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.02, r1 = 2.75, r2 = 2.75, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -2.87], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.9], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.8, r1 = 2.75, r2 = 2.75, center = false);
						}
					}
				}
				multmatrix([[1, 0, 0, -39], [0, 1, 0, 24.5], [0, 0, 1, -22.52], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -0.5], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.51], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.02, r1 = 2.75, r2 = 2.75, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -2.87], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.9], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.8, r1 = 2.75, r2 = 2.75, center = false);
						}
					}
				}
				multmatrix([[1, 0, 0, 19], [0, 1, 0, -24.5], [0, 0, 1, -22.52], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -0.5], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.51], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.02, r1 = 2.75, r2 = 2.75, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -2.87], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.9], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.8, r1 = 2.75, r2 = 2.75, center = false);
						}
					}
				}
				multmatrix([[1, 0, 0, 19], [0, 1, 0, 24.5], [0, 0, 1, -22.52], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -0.5], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.51], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.02, r1 = 2.75, r2 = 2.75, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -2.87], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.9], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.8, r1 = 2.75, r2 = 2.75, center = false);
						}
					}
				}
				multmatrix([[1, 0, 0, 24.39], [0, 0, -1, 31], [0, 1, 0, -27.5], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 3.21], [0, 0, 1, 0], [0, -1, 0, 0], [0, 0, 0, 1]]) {
						linear_extrude(height = 8, center = false, convexity = 1, scale = [1, 1], $fn = 36, $fa = 12, $fs = 2) {
							polygon(points = [[0, 0], [-3.47, 0], [-3.47, 2.95], [-3.4568, 3.25243], [-3.41728, 3.55256], [-3.35176, 3.8481], [-3.26073, 4.13681], [-3.14489, 4.41649], [-3.00511, 4.685], [-2.84246, 4.94031], [-2.65817, 5.18047], [-2.45366, 5.40366], [-2.23047, 5.60817], [-1.99031, 5.79246], [-1.735, 5.95511], [-1.46649, 6.09489], [-1.18681, 6.21073], [-0.898102, 6.30176], [-0.602559, 6.36728], [-0.30243, 6.4068], [2.12476e-16, 6.42], [0.30243, 6.4068], [0.602559, 6.36728], [0.898102, 6.30176], [1.18681, 6.21073], [1.46649, 6.09489], [1.735, 5.95511], [1.99031, 5.79246], [2.23047, 5.60817], [2.45366, 5.40366], [2.65817, 5.18047], [2.84246, 4.94031], [3.00511, 4.685], [3.14489, 4.41649], [3.26073, 4.13681], [3.35176, 3.8481], [3.41728, 3.55256], [3.4568, 3.25243], [3.47, 2.95], [3.47, 0], [0, 0]], paths = undef, convexity = 1);
						}
					}
					multmatrix([[1, 1.22465e-16, 0, 3.21], [0, 0, 1, 8], [1.22465e-16, -1, 0, -2.95], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -4], [0, 0, 0, 1]]) {
							multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 4.01], [0, 0, 0, 1]]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 8.02, r1 = 2.95, r2 = 2.95, center = false);
							}
						}
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -7.98], [0, 0, 0, 1]]) {
							multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.01], [0, 0, 0, 1]]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 0.02, r1 = 2.95, r2 = 2.95, center = false);
							}
						}
						union();
					}
				}
				multmatrix([[-1, 0, 0, 30.81], [0, 0, 1, -31], [0, 1, 0, -27.5], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 3.21], [0, 0, 1, 0], [0, -1, 0, 0], [0, 0, 0, 1]]) {
						linear_extrude(height = 8, center = false, convexity = 1, scale = [1, 1], $fn = 36, $fa = 12, $fs = 2) {
							polygon(points = [[0, 0], [-3.47, 0], [-3.47, 2.95], [-3.4568, 3.25243], [-3.41728, 3.55256], [-3.35176, 3.8481], [-3.26073, 4.13681], [-3.14489, 4.41649], [-3.00511, 4.685], [-2.84246, 4.94031], [-2.65817, 5.18047], [-2.45366, 5.40366], [-2.23047, 5.60817], [-1.99031, 5.79246], [-1.735, 5.95511], [-1.46649, 6.09489], [-1.18681, 6.21073], [-0.898102, 6.30176], [-0.602559, 6.36728], [-0.30243, 6.4068], [2.12476e-16, 6.42], [0.30243, 6.4068], [0.602559, 6.36728], [0.898102, 6.30176], [1.18681, 6.21073], [1.46649, 6.09489], [1.735, 5.95511], [1.99031, 5.79246], [2.23047, 5.60817], [2.45366, 5.40366], [2.65817, 5.18047], [2.84246, 4.94031], [3.00511, 4.685], [3.14489, 4.41649], [3.26073, 4.13681], [3.35176, 3.8481], [3.41728, 3.55256], [3.4568, 3.25243], [3.47, 2.95], [3.47, 0], [0, 0]], paths = undef, convexity = 1);
						}
					}
					multmatrix([[1, 1.22465e-16, 0, 3.21], [0, 0, 1, 8], [1.22465e-16, -1, 0, -2.95], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -4], [0, 0, 0, 1]]) {
							multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 4.01], [0, 0, 0, 1]]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 8.02, r1 = 2.95, r2 = 2.95, center = false);
							}
						}
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -7.98], [0, 0, 0, 1]]) {
							multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.01], [0, 0, 0, 1]]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 0.02, r1 = 2.95, r2 = 2.95, center = false);
							}
						}
						union();
					}
				}
				multmatrix([[0, 0, 1, -46], [1, 0, 0, -21.81], [0, 1, 0, -27.5], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 3.21], [0, 0, 1, 0], [0, -1, 0, 0], [0, 0, 0, 1]]) {
						linear_extrude(height = 8, center = false, convexity = 1, scale = [1, 1], $fn = 36, $fa = 12, $fs = 2) {
							polygon(points = [[0, 0], [-3.47, 0], [-3.47, 2.95], [-3.4568, 3.25243], [-3.41728, 3.55256], [-3.35176, 3.8481], [-3.26073, 4.13681], [-3.14489, 4.41649], [-3.00511, 4.685], [-2.84246, 4.94031], [-2.65817, 5.18047], [-2.45366, 5.40366], [-2.23047, 5.60817], [-1.99031, 5.79246], [-1.735, 5.95511], [-1.46649, 6.09489], [-1.18681, 6.21073], [-0.898102, 6.30176], [-0.602559, 6.36728], [-0.30243, 6.4068], [2.12476e-16, 6.42], [0.30243, 6.4068], [0.602559, 6.36728], [0.898102, 6.30176], [1.18681, 6.21073], [1.46649, 6.09489], [1.735, 5.95511], [1.99031, 5.79246], [2.23047, 5.60817], [2.45366, 5.40366], [2.65817, 5.18047], [2.84246, 4.94031], [3.00511, 4.685], [3.14489, 4.41649], [3.26073, 4.13681], [3.35176, 3.8481], [3.41728, 3.55256], [3.4568, 3.25243], [3.47, 2.95], [3.47, 0], [0, 0]], paths = undef, convexity = 1);
						}
					}
					multmatrix([[1, 1.22465e-16, 0, 3.21], [0, 0, 1, 8], [1.22465e-16, -1, 0, -2.95], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -4], [0, 0, 0, 1]]) {
							multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 4.01], [0, 0, 0, 1]]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 8.02, r1 = 2.95, r2 = 2.95, center = false);
							}
						}
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -7.98], [0, 0, 0, 1]]) {
							multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.01], [0, 0, 0, 1]]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 0.02, r1 = 2.95, r2 = 2.95, center = false);
							}
						}
						union();
					}
				}
				multmatrix([[0, 0, 1, -46], [1, 0, 0, 15.39], [0, 1, 0, -27.5], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 3.21], [0, 0, 1, 0], [0, -1, 0, 0], [0, 0, 0, 1]]) {
						linear_extrude(height = 8, center = false, convexity = 1, scale = [1, 1], $fn = 36, $fa = 12, $fs = 2) {
							polygon(points = [[0, 0], [-3.47, 0], [-3.47, 2.95], [-3.4568, 3.25243], [-3.41728, 3.55256], [-3.35176, 3.8481], [-3.26073, 4.13681], [-3.14489, 4.41649], [-3.00511, 4.685], [-2.84246, 4.94031], [-2.65817, 5.18047], [-2.45366, 5.40366], [-2.23047, 5.60817], [-1.99031, 5.79246], [-1.735, 5.95511], [-1.46649, 6.09489], [-1.18681, 6.21073], [-0.898102, 6.30176], [-0.602559, 6.36728], [-0.30243, 6.4068], [2.12476e-16, 6.42], [0.30243, 6.4068], [0.602559, 6.36728], [0.898102, 6.30176], [1.18681, 6.21073], [1.46649, 6.09489], [1.735, 5.95511], [1.99031, 5.79246], [2.23047, 5.60817], [2.45366, 5.40366], [2.65817, 5.18047], [2.84246, 4.94031], [3.00511, 4.685], [3.14489, 4.41649], [3.26073, 4.13681], [3.35176, 3.8481], [3.41728, 3.55256], [3.4568, 3.25243], [3.47, 2.95], [3.47, 0], [0, 0]], paths = undef, convexity = 1);
						}
					}
					multmatrix([[1, 1.22465e-16, 0, 3.21], [0, 0, 1, 8], [1.22465e-16, -1, 0, -2.95], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -4], [0, 0, 0, 1]]) {
							multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 4.01], [0, 0, 0, 1]]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 8.02, r1 = 2.95, r2 = 2.95, center = false);
							}
						}
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -7.98], [0, 0, 0, 1]]) {
							multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.01], [0, 0, 0, 1]]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 0.02, r1 = 2.95, r2 = 2.95, center = false);
							}
						}
						union();
					}
				}
			}
			multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -21], [0, 0, 0, 1]]) {
				difference() {
					union() {
						multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -0.75], [0, 0, 0, 1]]) {
							multmatrix([[1, 0, 0, -42.5], [0, 1, 0, -28], [0, 0, 1, -0.75], [0, 0, 0, 1]]) {
								linear_extrude(height = 1.5, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
									polygon(points = [[3, 0], [82, 0], [82.1309, 0.00285534], [82.2615, 0.0114159], [82.3916, 0.0256654], [82.5209, 0.0455767], [82.6493, 0.071112], [82.7765, 0.102223], [82.9021, 0.138849], [83.0261, 0.180922], [83.1481, 0.228361], [83.2679, 0.281077], [83.3852, 0.338968], [83.5, 0.401924], [83.6119, 0.469826], [83.7207, 0.542544], [83.8263, 0.61994], [83.9284, 0.701867], [84.0268, 0.788168], [84.1213, 0.87868], [84.2118, 0.973229], [84.2981, 1.07164], [84.3801, 1.17372], [84.4575, 1.27927], [84.5302, 1.3881], [84.5981, 1.5], [84.661, 1.61475], [84.7189, 1.73215], [84.7716, 1.85195], [84.8191, 1.97394], [84.8612, 2.09788], [84.8978, 2.22354], [84.9289, 2.35068], [84.9544, 2.47906], [84.9743, 2.60842], [84.9886, 2.73853], [84.9971, 2.86914], [85, 3], [85, 53], [84.9971, 53.1309], [84.9886, 53.2615], [84.9743, 53.3916], [84.9544, 53.5209], [84.9289, 53.6493], [84.8978, 53.7765], [84.8612, 53.9021], [84.8191, 54.0261], [84.7716, 54.1481], [84.7189, 54.2679], [84.661, 54.3852], [84.5981, 54.5], [84.5302, 54.6119], [84.4575, 54.7207], [84.3801, 54.8263], [84.2981, 54.9284], [84.2118, 55.0268], [84.1213, 55.1213], [84.0268, 55.2118], [83.9284, 55.2981], [83.8263, 55.3801], [83.7207, 55.4575], [83.6119, 55.5302], [83.5, 55.5981], [83.3852, 55.661], [83.2679, 55.7189], [83.1481, 55.7716], [83.0261, 55.8191], [82.9021, 55.8612], [82.7765, 55.8978], [82.6493, 55.9289], [82.5209, 55.9544], [82.3916, 55.9743], [82.2615, 55.9886], [82.1309, 55.9971], [82, 56], [3, 56], [2.86914, 55.9971], [2.73853, 55.9886], [2.60842, 55.9743], [2.47906, 55.9544], [2.35068, 55.9289], [2.22354, 55.8978], [2.09788, 55.8612], [1.97394, 55.8191], [1.85195, 55.7716], [1.73215, 55.7189], [1.61475, 55.661], [1.5, 55.5981], [1.3881, 55.5302], [1.27927, 55.4575], [1.17372, 55.3801], [1.07164, 55.2981], [0.973229, 55.2118], [0.87868, 55.1213], [0.788168, 55.0268], [0.701867, 54.9284], [0.61994, 54.8263], [0.542544, 54.7207], [0.469826, 54.6119], [0.401924, 54.5], [0.338968, 54.3852], [0.281077, 54.2679], [0.228361, 54.1481], [0.180922, 54.0261], [0.138849, 53.9021], [0.102223, 53.7765], [0.071112, 53.6493], [0.0455767, 53.5209], [0.0256654, 53.3916], [0.0114159, 53.2615], [0.00285534, 53.1309], [-1.42109e-14, 53], [0, 3], [0.00285534, 2.86914], [0.0114159, 2.73853], [0.0256654, 2.60842], [0.0455767, 2.47906], [0.071112, 2.35068], [0.102223, 2.22354], [0.138849, 2.09788], [0.180922, 1.97394], [0.228361, 1.85195], [0.281077, 1.73215], [0.338968, 1.61475], [0.401924, 1.5], [0.469826, 1.3881], [0.542544, 1.27927], [0.61994, 1.17372], [0.701867, 1.07164], [0.788168, 0.973229], [0.87868, 0.87868], [0.973229, 0.788168], [1.07164, 0.701867], [1.17372, 0.61994], [1.27927, 0.542544], [1.3881, 0.469826], [1.5, 0.401924], [1.61475, 0.338968], [1.73215, 0.281077], [1.85195, 0.228361], [1.97394, 0.180922], [2.09788, 0.138849], [2.22354, 0.102223], [2.35068, 0.071112], [2.47906, 0.0455767], [2.60842, 0.0256654], [2.73853, 0.0114159], [2.86914, 0.00285534], [3, 0]], paths = undef, convexity = 1);
								}
							}
						}
						multmatrix([[-1, 0, 0, -26.8], [0, -1, 0, -22.3], [0, 0, 1, 0], [0, 0, 0, 1]]) {
							color([0, 1, 0.5, 1]) {
								cube(size = [9, 7.5, 3.3], center = false);
							}
						}
						multmatrix([[-1, 0, 0, -24.3], [0, 1, 0, -37.29], [0, 0, -1, 5.3], [0, 0, 0, 1]]) {
							cube(size = [14, 7.5, 7.3], center = false);
						}
						multmatrix([[-1, 0, 0, -12.95], [0, -1, 0, -21.8], [0, 0, 1, -0.5], [0, 0, 0, 1]]) {
							color([0, 1, 0.5, 1]) {
								cube(size = [7.1, 8, 3.6], center = false);
							}
						}
						multmatrix([[-1, 0, 0, -10.45], [0, 1, 0, -37.79], [0, 0, -1, 5.35], [0, 0, 0, 1]]) {
							cube(size = [12.1, 8, 8.1], center = false);
						}
						multmatrix([[-1, 0, 0, 0.55], [0, -1, 0, -21.8], [0, 0, 1, -0.5], [0, 0, 0, 1]]) {
							color([0, 1, 0.5, 1]) {
								cube(size = [7.1, 8, 3.6], center = false);
							}
						}
						multmatrix([[-1, 0, 0, 3.05], [0, 1, 0, -37.79], [0, 0, -1, 5.35], [0, 0, 0, 1]]) {
							cube(size = [12.1, 8, 8.1], center = false);
						}
						multmatrix([[-1, 0, 0, 11.5], [0, 0, 1, -30.7], [0, 1, 0, 3], [0, 0, 0, 1]]) {
							color([0, 1, 0.5, 1]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 15, r1 = 3, r2 = 3, center = false);
							}
						}
						multmatrix([[-1, 0, 0, 11.5], [0, 0, -1, -30.69], [0, -1, 0, 3], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 15, r1 = 5, r2 = 5, center = false);
						}
						multmatrix([[-1, 0, 0, -5.5], [0, -1, 0, 12], [0, 0, 1, 0], [0, 0, 0, 1]]) {
							color([0, 1, 0.5, 1]) {
								cube(size = [15, 15, 2.4], center = false);
							}
						}
						multmatrix([[0, 1, 0, 28], [-1, 0, 0, -11.55], [0, 0, 1, 0], [0, 0, 0, 1]]) {
							color([0, 1, 0.5, 1]) {
								cube(size = [14.9, 17.5, 16.4], center = false);
							}
						}
						multmatrix([[0, -1, 0, 63.29], [-1, 0, 0, -11.4], [0, 0, -1, 16.55], [0, 0, 0, 1]]) {
							cube(size = [15.2, 17.8, 16.7], center = false);
						}
						multmatrix([[0, 1, 0, 28], [-1, 0, 0, 6.45], [0, 0, 1, 0], [0, 0, 0, 1]]) {
							color([0, 1, 0.5, 1]) {
								cube(size = [14.9, 17.5, 16.4], center = false);
							}
						}
						multmatrix([[0, -1, 0, 63.29], [-1, 0, 0, 6.6], [0, 0, -1, 16.55], [0, 0, 0, 1]]) {
							cube(size = [15.2, 17.8, 16.7], center = false);
						}
						multmatrix([[0, 1, 0, 24.25], [-1, 0, 0, 25.75], [0, 0, 1, 0], [0, 0, 0, 1]]) {
							color([0, 1, 0.5, 1]) {
								cube(size = [16, 21.25, 13.7], center = false);
							}
						}
						multmatrix([[0, -1, 0, 67.04], [-1, 0, 0, 25.9], [0, 0, -1, 13.85], [0, 0, 0, 1]]) {
							cube(size = [16.3, 21.55, 14], center = false);
						}
						multmatrix([[0, -1, 0, -28.15], [-1, 0, 0, 6.15], [0, 0, -1, -1.5], [0, 0, 0, 1]]) {
							color([0, 1, 0.5, 1]) {
								cube(size = [12, 11.35, 1.4], center = false);
							}
						}
						multmatrix([[0, 1, 0, -51.84], [-1, 0, 0, 6.65], [0, 0, 1, -8.9], [0, 0, 0, 1]]) {
							cube(size = [13, 12.35, 7.4], center = false);
						}
						multmatrix([[1, 0, 0, -35.5], [0, 1, 0, 21.15], [0, 0, 1, 0], [0, 0, 0, 1]]) {
							color([0, 1, 0.5, 1]) {
								cube(size = [51, 5.1, 8.7], center = false);
							}
						}
					}
					multmatrix([[1, 0, 0, -39], [0, -1, 0, -24.5], [0, 0, -1, 0.02], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.54, r1 = 1.35, r2 = 1.35, center = false);
					}
					multmatrix([[1, 0, 0, -39], [0, -1, 0, 24.5], [0, 0, -1, 0.02], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.54, r1 = 1.35, r2 = 1.35, center = false);
					}
					multmatrix([[1, 0, 0, 19], [0, -1, 0, -24.5], [0, 0, -1, 0.02], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.54, r1 = 1.35, r2 = 1.35, center = false);
					}
					multmatrix([[1, 0, 0, 19], [0, -1, 0, 24.5], [0, 0, -1, 0.02], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.54, r1 = 1.35, r2 = 1.35, center = false);
					}
				}
			}
			multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 15.75], [0, 0, 0, 1]]) {
				multmatrix([[1, 0, 0, -66], [0, 1, 0, -51], [0, 0, 1, -33.75], [0, 0, 0, 1]]) {
					cube(size = [132, 102, 67.5], center = false);
				}
			}
			multmatrix([[1, 0, 0, -10], [0, -1, 0, 30], [0, 0, -1, -8.3], [0, 0, 0, 1]]) {
				multmatrix([[0, 1, 0, -23.4373], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -20.3123], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -17.1873], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -14.0623], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -10.9373], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -7.81234], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -4.68734], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -1.56234], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 1.56266], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 4.68766], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 7.81266], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 10.9377], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 14.0627], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 17.1877], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 20.3127], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 23.4377], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
			}
			multmatrix([[1, 0, 0, -10], [0, -1, 0, -30], [0, 0, -1, -8.3], [0, 0, 0, 1]]) {
				multmatrix([[0, 1, 0, -23.4373], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -20.3123], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -17.1873], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -14.0623], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -10.9373], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -7.81234], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -4.68734], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, -1.56234], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 1.56266], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 4.68766], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 7.81266], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 10.9377], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 14.0627], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 17.1877], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 20.3127], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
				multmatrix([[0, 1, 0, 23.4377], [-1, 0, 0, 0], [0, 0, 1, -4.5], [0, 0, 0, 1]]) {
					linear_extrude(height = 9, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
						polygon(points = [[0, 0], [-1.005, 0], [-1.005, 1.28383], [-0.5025, 0.781331], [0, 0.781331], [0.5025, 0.781331], [1.005, 1.28383], [1.005, 0], [1.005, -1.28383], [0.5025, -0.781331], [0, -0.781331], [-0.5025, -0.781331], [-1.005, -1.28383], [-1.005, 0]], paths = undef, convexity = 1);
					}
				}
			}
			multmatrix([[1, 0, 0, -7], [0, 1, 0, 2.5], [0, 0, 1, -2.005], [0, 0, 0, 1]]) {
				multmatrix([[1, 0, 0, -11.975], [0, 1, 0, -11.975], [0, 0, 1, -0.4], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.905], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.81, r1 = 1.26825, r2 = 1.26825, center = false);
					}
				}
				multmatrix([[0, -1, 0, 11.975], [1, 0, 0, -11.975], [0, 0, 1, -0.4], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.905], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.81, r1 = 1.26825, r2 = 1.26825, center = false);
					}
				}
				multmatrix([[-1, 0, 0, 11.975], [0, -1, 0, 11.975], [0, 0, 1, -0.4], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.905], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.81, r1 = 1.26825, r2 = 1.26825, center = false);
					}
				}
				multmatrix([[0, 1, 0, -11.975], [-1, 0, 0, 11.975], [0, 0, 1, -0.4], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.905], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.81, r1 = 1.26825, r2 = 1.26825, center = false);
					}
				}
				multmatrix([[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 1.005], [0, 0, 0, 1]]) {
					difference() {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.005], [0, 0, 0, 1]]) {
							cylinder($fn = 64, $fa = 12, $fs = 2, h = 2.01, r1 = 14.5, r2 = 14.5, center = false);
						}
						multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[0.92388, 0.382683, 0, 0], [-0.382683, 0.92388, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[0.707107, 0.707107, 0, 0], [-0.707107, 0.707107, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[0.382683, 0.92388, 0, 0], [-0.92388, 0.382683, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[-0.382683, 0.92388, 0, 0], [-0.92388, -0.382683, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[-0.707107, 0.707107, 0, 0], [-0.707107, -0.707107, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[-0.92388, 0.382683, 0, 0], [-0.382683, -0.92388, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[-0.92388, -0.382683, 0, 0], [0.382683, -0.92388, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[-0.707107, -0.707107, 0, 0], [0.707107, -0.707107, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[-0.382683, -0.92388, 0, 0], [0.92388, -0.382683, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[0.382683, -0.92388, 0, 0], [0.92388, 0.382683, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[0.707107, -0.707107, 0, 0], [0.707107, 0.707107, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[0.92388, -0.382683, 0, 0], [0.382683, 0.92388, 0, 0], [0, 0, 1, -1.01], [0, 0, 0, 1]]) {
							linear_extrude(height = 2.02, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[0, 5.99], [-1.77989, 10.0943], [0, 14.51], [1.42223, 14.4401], [-0.781911, 10.2201], [2.83076, 14.2312], [4.21203, 13.8852], [0.223603, 10.2476], [1.16859, 5.8749], [0, 5.99]], paths = undef, convexity = 1);
							}
						}
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.01], [0, 0, 0, 1]]) {
							cylinder($fn = 64, $fa = 12, $fs = 2, h = 2.02, r1 = 6, r2 = 6, center = false);
						}
					}
				}
			}
			multmatrix([[1, 0, 0, -39], [0, 1, 0, -24.5], [0, 0, 1, -22.52], [0, 0, 0, 1]]) {
				multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -0.5], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.515], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.03, r1 = 1.4, r2 = 1.4, center = false);
					}
				}
				multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -2.87], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.905], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.81, r1 = 1.335, r2 = 1.335, center = false);
					}
				}
			}
			multmatrix([[1, 0, 0, -39], [0, 1, 0, 24.5], [0, 0, 1, -22.52], [0, 0, 0, 1]]) {
				multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -0.5], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.515], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.03, r1 = 1.4, r2 = 1.4, center = false);
					}
				}
				multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -2.87], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.905], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.81, r1 = 1.335, r2 = 1.335, center = false);
					}
				}
			}
			multmatrix([[1, 0, 0, 19], [0, 1, 0, -24.5], [0, 0, 1, -22.52], [0, 0, 0, 1]]) {
				multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -0.5], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.515], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.03, r1 = 1.4, r2 = 1.4, center = false);
					}
				}
				multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -2.87], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.905], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.81, r1 = 1.335, r2 = 1.335, center = false);
					}
				}
			}
			multmatrix([[1, 0, 0, 19], [0, 1, 0, 24.5], [0, 0, 1, -22.52], [0, 0, 0, 1]]) {
				multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -0.5], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.515], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.03, r1 = 1.4, r2 = 1.4, center = false);
					}
				}
				multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -2.87], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 1.905], [0, 0, 0, 1]]) {
						cylinder($fn = 36, $fa = 12, $fs = 2, h = 3.81, r1 = 1.335, r2 = 1.335, center = false);
					}
				}
			}
			multmatrix([[1, 0, 0, 24.39], [0, 0, -1, 31], [0, 1, 0, -27.5], [0, 0, 0, 1]]) {
				multmatrix([[1, 1.22465e-16, 0, 3.21], [0, 0, 1, 8], [1.22465e-16, -1, 0, -2.95], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -4], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 4.015], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 8.03, r1 = 1.4, r2 = 1.4, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -7.98], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.015], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 0.03, r1 = 1.335, r2 = 1.335, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 1], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -1.5], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.5, r1 = 2.955, r2 = 2.955, center = false);
						}
						multmatrix([[1, 0, 0, -4.44089e-16], [0, 1, 0, 0], [0, 0, 1, -4.445], [0, 0, 0, 1]]) {
							color([1, 0, 0, 1]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 2.955, r1 = 0, r2 = 2.955, center = false);
							}
						}
					}
				}
			}
			multmatrix([[-1, 0, 0, 30.81], [0, 0, 1, -31], [0, 1, 0, -27.5], [0, 0, 0, 1]]) {
				multmatrix([[1, 1.22465e-16, 0, 3.21], [0, 0, 1, 8], [1.22465e-16, -1, 0, -2.95], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -4], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 4.015], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 8.03, r1 = 1.4, r2 = 1.4, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -7.98], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.015], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 0.03, r1 = 1.335, r2 = 1.335, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 1], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -1.5], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.5, r1 = 2.955, r2 = 2.955, center = false);
						}
						multmatrix([[1, 0, 0, -4.44089e-16], [0, 1, 0, 0], [0, 0, 1, -4.445], [0, 0, 0, 1]]) {
							color([1, 0, 0, 1]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 2.955, r1 = 0, r2 = 2.955, center = false);
							}
						}
					}
				}
			}
			multmatrix([[0, 0, 1, -46], [1, 0, 0, -21.81], [0, 1, 0, -27.5], [0, 0, 0, 1]]) {
				multmatrix([[1, 1.22465e-16, 0, 3.21], [0, 0, 1, 8], [1.22465e-16, -1, 0, -2.95], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -4], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 4.015], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 8.03, r1 = 1.4, r2 = 1.4, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -7.98], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.015], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 0.03, r1 = 1.335, r2 = 1.335, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 1], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -1.5], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.5, r1 = 2.955, r2 = 2.955, center = false);
						}
						multmatrix([[1, 0, 0, -4.44089e-16], [0, 1, 0, 0], [0, 0, 1, -4.445], [0, 0, 0, 1]]) {
							color([1, 0, 0, 1]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 2.955, r1 = 0, r2 = 2.955, center = false);
							}
						}
					}
				}
			}
			multmatrix([[0, 0, 1, -46], [1, 0, 0, 15.39], [0, 1, 0, -27.5], [0, 0, 0, 1]]) {
				multmatrix([[1, 1.22465e-16, 0, 3.21], [0, 0, 1, 8], [1.22465e-16, -1, 0, -2.95], [0, 0, 0, 1]]) {
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -4], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 4.015], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 8.03, r1 = 1.4, r2 = 1.4, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, -7.98], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0.015], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 0.03, r1 = 1.335, r2 = 1.335, center = false);
						}
					}
					multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 1], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -1.5], [0, 0, 0, 1]]) {
							cylinder($fn = 36, $fa = 12, $fs = 2, h = 1.5, r1 = 2.955, r2 = 2.955, center = false);
						}
						multmatrix([[1, 0, 0, -4.44089e-16], [0, 1, 0, 0], [0, 0, 1, -4.445], [0, 0, 0, 1]]) {
							color([1, 0, 0, 1]) {
								cylinder($fn = 36, $fa = 12, $fs = 2, h = 2.955, r1 = 0, r2 = 2.955, center = false);
							}
						}
					}
				}
			}
		}
	}
	multmatrix([[1, 0, 0, 34.2], [0, 0, -1, 29.7], [0, -1, 0, -2.635], [0, 0, 0, 1]]) {
		difference() {
			multmatrix([[0, 0, 1, -7.5], [0, -1, 0, 4.75], [1, 0, 0, 0], [0, 0, 0, 1]]) {
				linear_extrude(height = 15, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
					polygon(points = [[1, 0], [-0.55, 1.3], [-0.55, 1.56], [0, 1.95], [0, 9.5], [1.5, 9.5], [3, 8], [1, 0]], paths = undef, convexity = 1);
				}
			}
			multmatrix([[1, 0, 0, -0.005], [0, 1, 0, 0.01], [0, 0, 1, 0.76], [0, 0, 0, 1]]) {
				difference() {
					multmatrix([[1, 0, 0, -7.515], [0, 1, 0, 0.76], [0, 0, 1, -2.26], [0, 0, 0, 1]]) {
						cube(size = [15.025, 4, 4.525], center = false);
					}
					multmatrix([[1, 0, 0, -0.005], [0, 1, 0, -0.005], [0, 0, 1, 0.005], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, -7.515], [0, 1, 0, -4.765], [0, 0, 1, -2.265], [0, 0, 0, 1]]) {
							linear_extrude(height = 4.53, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[4, 0], [11.03, 0], [11.4221, 0.0192611], [11.8104, 0.0768589], [12.1911, 0.172239], [12.5607, 0.304482], [12.9156, 0.472315], [13.2523, 0.674122], [13.5676, 0.907958], [13.8584, 1.17157], [14.122, 1.46243], [14.3559, 1.77772], [14.5577, 2.11441], [14.7255, 2.46927], [14.8578, 2.83886], [14.9531, 3.21964], [15.0107, 3.60793], [15.03, 4], [15.03, 5.53], [15.0107, 5.92207], [14.9531, 6.31036], [14.8578, 6.69114], [14.7255, 7.06073], [14.5577, 7.41559], [14.3559, 7.75228], [14.122, 8.06757], [13.8584, 8.35843], [13.5676, 8.62204], [13.2523, 8.85588], [12.9156, 9.05769], [12.5607, 9.22552], [12.1911, 9.35776], [11.8104, 9.45314], [11.4221, 9.51074], [11.03, 9.53], [4, 9.53], [3.60793, 9.51074], [3.21964, 9.45314], [2.83886, 9.35776], [2.46927, 9.22552], [2.11441, 9.05769], [1.77772, 8.85588], [1.46243, 8.62204], [1.17157, 8.35843], [0.907958, 8.06757], [0.674122, 7.75228], [0.472315, 7.41559], [0.304482, 7.06073], [0.172239, 6.69114], [0.0768589, 6.31036], [0.0192611, 5.92207], [1.77636e-15, 5.53], [0, 4], [0.0192611, 3.60793], [0.0768589, 3.21964], [0.172239, 2.83886], [0.304482, 2.46927], [0.472315, 2.11441], [0.674122, 1.77772], [0.907958, 1.46243], [1.17157, 1.17157], [1.46243, 0.907958], [1.77772, 0.674122], [2.11441, 0.472315], [2.46927, 0.304482], [2.83886, 0.172239], [3.21964, 0.0768589], [3.60793, 0.0192611], [4, 0]], paths = undef, convexity = 1);
							}
						}
					}
				}
			}
		}
	}
	multmatrix([[-1, 0, 0, 34.2], [0, 0, 1, -29.7], [0, -1, 0, -2.635], [0, 0, 0, 1]]) {
		difference() {
			multmatrix([[0, 0, 1, -7.5], [0, -1, 0, 4.75], [1, 0, 0, 0], [0, 0, 0, 1]]) {
				linear_extrude(height = 15, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
					polygon(points = [[1, 0], [-0.55, 1.3], [-0.55, 1.56], [0, 1.95], [0, 9.5], [1.5, 9.5], [3, 8], [1, 0]], paths = undef, convexity = 1);
				}
			}
			multmatrix([[1, 0, 0, -0.005], [0, 1, 0, 0.01], [0, 0, 1, 0.76], [0, 0, 0, 1]]) {
				difference() {
					multmatrix([[1, 0, 0, -7.515], [0, 1, 0, 0.76], [0, 0, 1, -2.26], [0, 0, 0, 1]]) {
						cube(size = [15.025, 4, 4.525], center = false);
					}
					multmatrix([[1, 0, 0, -0.005], [0, 1, 0, -0.005], [0, 0, 1, 0.005], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, -7.515], [0, 1, 0, -4.765], [0, 0, 1, -2.265], [0, 0, 0, 1]]) {
							linear_extrude(height = 4.53, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[4, 0], [11.03, 0], [11.4221, 0.0192611], [11.8104, 0.0768589], [12.1911, 0.172239], [12.5607, 0.304482], [12.9156, 0.472315], [13.2523, 0.674122], [13.5676, 0.907958], [13.8584, 1.17157], [14.122, 1.46243], [14.3559, 1.77772], [14.5577, 2.11441], [14.7255, 2.46927], [14.8578, 2.83886], [14.9531, 3.21964], [15.0107, 3.60793], [15.03, 4], [15.03, 5.53], [15.0107, 5.92207], [14.9531, 6.31036], [14.8578, 6.69114], [14.7255, 7.06073], [14.5577, 7.41559], [14.3559, 7.75228], [14.122, 8.06757], [13.8584, 8.35843], [13.5676, 8.62204], [13.2523, 8.85588], [12.9156, 9.05769], [12.5607, 9.22552], [12.1911, 9.35776], [11.8104, 9.45314], [11.4221, 9.51074], [11.03, 9.53], [4, 9.53], [3.60793, 9.51074], [3.21964, 9.45314], [2.83886, 9.35776], [2.46927, 9.22552], [2.11441, 9.05769], [1.77772, 8.85588], [1.46243, 8.62204], [1.17157, 8.35843], [0.907958, 8.06757], [0.674122, 7.75228], [0.472315, 7.41559], [0.304482, 7.06073], [0.172239, 6.69114], [0.0768589, 6.31036], [0.0192611, 5.92207], [1.77636e-15, 5.53], [0, 4], [0.0192611, 3.60793], [0.0768589, 3.21964], [0.172239, 2.83886], [0.304482, 2.46927], [0.472315, 2.11441], [0.674122, 1.77772], [0.907958, 1.46243], [1.17157, 1.17157], [1.46243, 0.907958], [1.77772, 0.674122], [2.11441, 0.472315], [2.46927, 0.304482], [2.83886, 0.172239], [3.21964, 0.0768589], [3.60793, 0.0192611], [4, 0]], paths = undef, convexity = 1);
							}
						}
					}
				}
			}
		}
	}
	multmatrix([[0, 0, 1, -44.7], [1, 0, 0, 18.6], [0, -1, 0, -2.635], [0, 0, 0, 1]]) {
		difference() {
			multmatrix([[0, 0, 1, -7.5], [0, -1, 0, 4.75], [1, 0, 0, 0], [0, 0, 0, 1]]) {
				linear_extrude(height = 15, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
					polygon(points = [[1, 0], [-0.55, 1.3], [-0.55, 1.56], [0, 1.95], [0, 9.5], [2, 9.5], [3.5, 8], [1, 0]], paths = undef, convexity = 1);
				}
			}
			multmatrix([[1, 0, 0, -0.005], [0, 1, 0, 0.01], [0, 0, 1, 0.76], [0, 0, 0, 1]]) {
				difference() {
					multmatrix([[1, 0, 0, -7.515], [0, 1, 0, 0.76], [0, 0, 1, -2.76], [0, 0, 0, 1]]) {
						cube(size = [15.025, 4, 5.525], center = false);
					}
					multmatrix([[1, 0, 0, -0.005], [0, 1, 0, -0.005], [0, 0, 1, 0.005], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, -7.515], [0, 1, 0, -4.765], [0, 0, 1, -2.765], [0, 0, 0, 1]]) {
							linear_extrude(height = 5.53, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[4, 0], [11.03, 0], [11.4221, 0.0192611], [11.8104, 0.0768589], [12.1911, 0.172239], [12.5607, 0.304482], [12.9156, 0.472315], [13.2523, 0.674122], [13.5676, 0.907958], [13.8584, 1.17157], [14.122, 1.46243], [14.3559, 1.77772], [14.5577, 2.11441], [14.7255, 2.46927], [14.8578, 2.83886], [14.9531, 3.21964], [15.0107, 3.60793], [15.03, 4], [15.03, 5.53], [15.0107, 5.92207], [14.9531, 6.31036], [14.8578, 6.69114], [14.7255, 7.06073], [14.5577, 7.41559], [14.3559, 7.75228], [14.122, 8.06757], [13.8584, 8.35843], [13.5676, 8.62204], [13.2523, 8.85588], [12.9156, 9.05769], [12.5607, 9.22552], [12.1911, 9.35776], [11.8104, 9.45314], [11.4221, 9.51074], [11.03, 9.53], [4, 9.53], [3.60793, 9.51074], [3.21964, 9.45314], [2.83886, 9.35776], [2.46927, 9.22552], [2.11441, 9.05769], [1.77772, 8.85588], [1.46243, 8.62204], [1.17157, 8.35843], [0.907958, 8.06757], [0.674122, 7.75228], [0.472315, 7.41559], [0.304482, 7.06073], [0.172239, 6.69114], [0.0768589, 6.31036], [0.0192611, 5.92207], [1.77636e-15, 5.53], [0, 4], [0.0192611, 3.60793], [0.0768589, 3.21964], [0.172239, 2.83886], [0.304482, 2.46927], [0.472315, 2.11441], [0.674122, 1.77772], [0.907958, 1.46243], [1.17157, 1.17157], [1.46243, 0.907958], [1.77772, 0.674122], [2.11441, 0.472315], [2.46927, 0.304482], [2.83886, 0.172239], [3.21964, 0.0768589], [3.60793, 0.0192611], [4, 0]], paths = undef, convexity = 1);
							}
						}
					}
				}
			}
		}
	}
	multmatrix([[0, 0, 1, -44.7], [1, 0, 0, -18.6], [0, -1, 0, -2.635], [0, 0, 0, 1]]) {
		difference() {
			multmatrix([[0, 0, 1, -7.5], [0, -1, 0, 4.75], [1, 0, 0, 0], [0, 0, 0, 1]]) {
				linear_extrude(height = 15, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
					polygon(points = [[1, 0], [-0.55, 1.3], [-0.55, 1.56], [0, 1.95], [0, 9.5], [2, 9.5], [3.5, 8], [1, 0]], paths = undef, convexity = 1);
				}
			}
			multmatrix([[1, 0, 0, -0.005], [0, 1, 0, 0.01], [0, 0, 1, 0.76], [0, 0, 0, 1]]) {
				difference() {
					multmatrix([[1, 0, 0, -7.515], [0, 1, 0, 0.76], [0, 0, 1, -2.76], [0, 0, 0, 1]]) {
						cube(size = [15.025, 4, 5.525], center = false);
					}
					multmatrix([[1, 0, 0, -0.005], [0, 1, 0, -0.005], [0, 0, 1, 0.005], [0, 0, 0, 1]]) {
						multmatrix([[1, 0, 0, -7.515], [0, 1, 0, -4.765], [0, 0, 1, -2.765], [0, 0, 0, 1]]) {
							linear_extrude(height = 5.53, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
								polygon(points = [[4, 0], [11.03, 0], [11.4221, 0.0192611], [11.8104, 0.0768589], [12.1911, 0.172239], [12.5607, 0.304482], [12.9156, 0.472315], [13.2523, 0.674122], [13.5676, 0.907958], [13.8584, 1.17157], [14.122, 1.46243], [14.3559, 1.77772], [14.5577, 2.11441], [14.7255, 2.46927], [14.8578, 2.83886], [14.9531, 3.21964], [15.0107, 3.60793], [15.03, 4], [15.03, 5.53], [15.0107, 5.92207], [14.9531, 6.31036], [14.8578, 6.69114], [14.7255, 7.06073], [14.5577, 7.41559], [14.3559, 7.75228], [14.122, 8.06757], [13.8584, 8.35843], [13.5676, 8.62204], [13.2523, 8.85588], [12.9156, 9.05769], [12.5607, 9.22552], [12.1911, 9.35776], [11.8104, 9.45314], [11.4221, 9.51074], [11.03, 9.53], [4, 9.53], [3.60793, 9.51074], [3.21964, 9.45314], [2.83886, 9.35776], [2.46927, 9.22552], [2.11441, 9.05769], [1.77772, 8.85588], [1.46243, 8.62204], [1.17157, 8.35843], [0.907958, 8.06757], [0.674122, 7.75228], [0.472315, 7.41559], [0.304482, 7.06073], [0.172239, 6.69114], [0.0768589, 6.31036], [0.0192611, 5.92207], [1.77636e-15, 5.53], [0, 4], [0.0192611, 3.60793], [0.0768589, 3.21964], [0.172239, 2.83886], [0.304482, 2.46927], [0.472315, 2.11441], [0.674122, 1.77772], [0.907958, 1.46243], [1.17157, 1.17157], [1.46243, 0.907958], [1.77772, 0.674122], [2.11441, 0.472315], [2.46927, 0.304482], [2.83886, 0.172239], [3.21964, 0.0768589], [3.60793, 0.0192611], [4, 0]], paths = undef, convexity = 1);
							}
						}
					}
				}
			}
		}
	}
	multmatrix([[1, 0, 0, 13.4], [0, -1, 0, 31.01], [0, 0, 1, -5.1], [0, 0, 0, 1]]) {
		cube(size = [10, 1.5, 1.7], center = false);
	}
	multmatrix([[0, 1, 0, -46.01], [1, 0, 0, -5], [0, 0, 1, -5.1], [0, 0, 0, 1]]) {
		cube(size = [10, 1.5, 1.7], center = false);
	}
	multmatrix([[0, -1, 0, 44], [-1, 0, 0, 21.7], [0, 0, -1, -13.64], [0, 0, 0, 1]]) {
		multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0.3, 0], [0, 0, 0, 1]]) {
			multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, -0.5], [0, 0, 0, 1]]) {
				linear_extrude(height = 1, center = false, convexity = 1, scale = [1, 1], $fn = 0, $fa = 12, $fs = 2) {
					text(text = "-648BD", size = 5, spacing = 1, font = "", direction = "ltr", language = "en", script = "Latn", halign = "left", valign = "bottom", $fn = 0, $fa = 12, $fs = 2);
				}
			}
		}
	}
}

anchorcad_RaspberryPi4Case_bottom_example.scad (112,257 bytes)   
// '_combine_solids_and_holes'
difference() {
  // 'bottom'
  multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 13.75], [0.0, 0.0, 0.0, 1.0]]) {
    // '_combine_solids_and_holes'
    difference() {
      // '_combine_solids_and_holes'
      union() {
        // 'main'
        multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -13.75], [0.0, 0.0, 0.0, 1.0]]) {
          // '_combine_solids_and_holes'
          difference() {
            // 'shell'
            multmatrix(m=[[1.0, 0.0, 0.0, -46.0], [0.0, 1.0, 0.0, -31.0], [0.0, 0.0, 1.0, -13.75], [0.0, 0.0, 0.0, 1.0]]) {
              // 'hull'
              linear_extrude(height=27.5, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[5.25, 0.0], [86.75, 0.0], [86.97900178366801, 0.004996836695247531], [87.2075676494252, 0.019977835018337053], [87.43526250915527, 0.04491447778749702], [87.66165293275138, 0.07975929668590975], [87.88630797317504, 0.1244459626203529], [88.10879998678823, 0.17888941198239472], [88.32870544739743, 0.24298600857181274], [88.54560575245975, 0.31661374087398464], [88.75908801991672, 0.399632454315749], [88.96874587413866, 0.4918841180575919], [89.17418021948392, 0.5931931258143406], [89.37499999999999, 0.7033666301317023], [89.57082294382081, 0.8221949094823549], [89.76127629084299, 0.9494517674827989], [89.94599750229577, 1.0848949634710214], [90.12463495085431, 1.2282666736253702], [90.2968485899822, 1.3792939817468546], [90.46231060122936, 1.537689398770631], [90.62070601825314, 1.7031514100177891], [90.77173332637462, 1.8753650491456741], [90.91510503652897, 2.0540024977042224], [91.05054823251719, 2.238723709157014], [91.17780509051764, 2.42917705617918], [91.29663336986829, 2.625000000000005], [91.40680687418565, 2.8258197805160763], [91.50811588194239, 3.031254125861332], [91.60036754568424, 3.2409119800832826], [91.683386259126, 3.4543942475402423], [91.75701399142817, 3.6712945526025704], [91.82111058801759, 3.8912000132117694], [91.87555403737963, 4.113692026824963], [91.92024070331408, 4.338347067248617], [91.95508552221249, 4.56473749084473], [91.98002216498165, 4.792432350574796], [91.99500316330473, 5.020998216331987], [91.99999999999997, 5.25], [92.0, 56.75], [91.99500316330476, 56.97900178366801], [91.98002216498166, 57.20756764942521], [91.9550855222125, 57.43526250915527], [91.9202407033141, 57.66165293275139], [91.87555403737966, 57.88630797317504], [91.8211105880176, 58.108799986788235], [91.7570139914282, 58.32870544739743], [91.68338625912602, 58.545605752459764], [91.60036754568425, 58.759088019916724], [91.50811588194242, 58.968745874138676], [91.40680687418566, 59.17418021948393], [91.2966333698683, 59.375], [91.17780509051765, 59.57082294382083], [91.0505482325172, 59.76127629084299], [90.91510503652898, 59.94599750229579], [90.77173332637463, 60.124634950854336], [90.62070601825316, 60.29684858998222], [90.46231060122938, 60.462310601229376], [90.29684858998222, 60.62070601825316], [90.12463495085433, 60.771733326374644], [89.94599750229578, 60.91510503652899], [89.761276290843, 61.050548232517215], [89.57082294382083, 61.17780509051766], [89.375, 61.29663336986831], [89.17418021948393, 61.40680687418567], [88.96874587413868, 61.50811588194242], [88.75908801991672, 61.600367545684264], [88.54560575245976, 61.68338625912603], [88.32870544739744, 61.7570139914282], [88.10879998678824, 61.82111058801762], [87.88630797317504, 61.87555403737966], [87.66165293275138, 61.92024070331411], [87.43526250915527, 61.955085522212514], [87.2075676494252, 61.980022164981676], [86.97900178366801, 61.995003163304766], [86.75, 62.000000000000014], [5.25, 62.0], [5.020998216331987, 61.99500316330475], [4.792432350574795, 61.98002216498166], [4.5647374908447285, 61.95508552221251], [4.338347067248615, 61.92024070331409], [4.11369202682496, 61.87555403737965], [3.8912000132117663, 61.82111058801761], [3.671294552602567, 61.757013991428195], [3.45439424754024, 61.68338625912602], [3.240911980083279, 61.60036754568426], [3.0312541258613273, 61.50811588194241], [2.8258197805160714, 61.40680687418566], [2.6249999999999996, 61.2966333698683], [2.429177056179175, 61.17780509051765], [2.2387237091570085, 61.05054823251721], [2.0540024977042175, 60.915105036528985], [1.8753650491456693, 60.77173332637464], [1.7031514100177847, 60.62070601825315], [1.5376893987706266, 60.462310601229376], [1.3792939817468501, 60.29684858998222], [1.2282666736253667, 60.12463495085433], [1.084894963471016, 59.94599750229578], [0.9494517674827936, 59.76127629084299], [0.8221949094823522, 59.57082294382083], [0.7033666301316988, 59.375], [0.593193125814337, 59.17418021948393], [0.49188411805758836, 58.96874587413867], [0.39963245431574546, 58.759088019916724], [0.316613740873982, 58.54560575245976], [0.2429860085718092, 58.32870544739743], [0.17888941198239205, 58.108799986788235], [0.12444596262035112, 57.886307973175036], [0.07975929668590886, 57.66165293275139], [0.04491447778749613, 57.43526250915527], [0.019977835018337053, 57.20756764942521], [0.004996836695247531, 56.97900178366802], [8.881784197001252e-16, 56.75], [0.0, 5.25], [0.0049968366952466425, 5.020998216331987], [0.019977835018336165, 4.792432350574796], [0.044914477787495244, 4.56473749084473], [0.07975929668590798, 4.338347067248617], [0.12444596262035024, 4.113692026824961], [0.17888941198239117, 3.8912000132117677], [0.2429860085718092, 3.6712945526025655], [0.3166137408739811, 3.4543942475402387], [0.39963245431574457, 3.2409119800832786], [0.49188411805758747, 3.031254125861328], [0.5931931258143361, 2.8258197805160723], [0.703366630131697, 2.625000000000001], [0.8221949094823504, 2.4291770561791757], [0.9494517674827945, 2.2387237091570067], [1.084894963471016, 2.0540024977042157], [1.2282666736253658, 1.875365049145668], [1.3792939817468493, 1.7031514100177834], [1.5376893987706262, 1.5376893987706257], [1.7031514100177838, 1.3792939817468488], [1.8753650491456688, 1.2282666736253658], [2.054002497704217, 1.0848949634710152], [2.238723709157008, 0.9494517674827936], [2.4291770561791743, 0.8221949094823504], [2.624999999999999, 0.7033666301316979], [2.825819780516071, 0.593193125814337], [3.031254125861327, 0.49188411805758836], [3.2409119800832786, 0.39963245431574457], [3.4543942475402396, 0.3166137408739811], [3.671294552602567, 0.2429860085718083], [3.8912000132117663, 0.17888941198239117], [4.11369202682496, 0.12444596262035024], [4.338347067248615, 0.07975929668590798], [4.5647374908447285, 0.044914477787495244], [4.792432350574794, 0.019977835018336165], [5.020998216331987, 0.0049968366952466425], [5.25, 0.0]]);
              }
            }
            // 'shell'
            multmatrix(m=[[1.0, 0.0, 0.0, -44.0], [0.0, 1.0, 0.0, -29.0], [0.0, 0.0, 1.0, -11.75], [0.0, 0.0, 0.0, 1.0]]) {
              // 'hull'
              linear_extrude(height=23.5, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[3.25, 0.0], [84.75, 0.0], [84.89176300893735, 0.0030932798589611288], [85.03325616392989, 0.012367231201824591], [85.17421012471517, 0.027804200535112678], [85.31435657741753, 0.049374802710319354], [85.45342874529884, 0.07703797686021119], [85.5911618965832, 0.1107410645605218], [85.7272938483889, 0.15041991006825572], [85.86156546580843, 0.19599898244579084], [85.99372115518655, 0.24739151933831005], [86.12350935065729, 0.30449969213087913], [86.25068299301387, 0.3672147921707709], [86.37500000000001, 0.4354174377005653], [86.49622372712719, 0.5089778011081125], [86.6141234181409, 0.5877558560607676], [86.72847464427835, 0.6716016440534767], [86.83905973148126, 0.7603555598633123], [86.9456681747509, 0.8538486553670879], [87.04809703885628, 0.9519029611437118], [87.14615134463291, 1.0543318252490956], [87.23964444013669, 1.1609402685187389], [87.32839835594653, 1.2715253557216502], [87.41224414393923, 1.3858765818590928], [87.4910221988919, 1.5037762728728152], [87.56458256229944, 1.6249999999999931], [87.63278520782923, 1.7493170069861337], [87.69550030786912, 1.8764906493427214], [87.75260848066169, 2.006278844813453], [87.80400101755421, 2.138434534191572], [87.84958008993175, 2.2727061516111084], [87.88925893543949, 2.4088381034168047], [87.92296202313979, 2.5465712547011634], [87.95062519728968, 2.685643422582474], [87.9721957994649, 2.8257898752848303], [87.98763276879818, 2.96674383607011], [87.99690672014104, 3.108236991062658], [88.00000000000001, 3.25], [88.0, 54.75], [87.99690672014104, 54.891763008937346], [87.98763276879818, 55.03325616392989], [87.97219579946488, 55.17421012471517], [87.95062519728968, 55.31435657741753], [87.92296202313979, 55.45342874529884], [87.88925893543949, 55.591161896583195], [87.84958008993175, 55.72729384838889], [87.80400101755421, 55.86156546580843], [87.75260848066169, 55.99372115518655], [87.69550030786912, 56.12350935065728], [87.63278520782923, 56.25068299301387], [87.56458256229944, 56.37500000000001], [87.49102219889188, 56.49622372712719], [87.41224414393923, 56.61412341814091], [87.32839835594652, 56.72847464427835], [87.23964444013669, 56.839059731481264], [87.14615134463291, 56.94566817475091], [87.04809703885628, 57.04809703885629], [86.9456681747509, 57.14615134463292], [86.83905973148126, 57.23964444013669], [86.72847464427835, 57.328398355946526], [86.6141234181409, 57.41224414393924], [86.49622372712719, 57.49102219889189], [86.37500000000001, 57.56458256229944], [86.25068299301387, 57.63278520782924], [86.12350935065729, 57.695500307869125], [85.99372115518655, 57.7526084806617], [85.86156546580843, 57.804001017554214], [85.7272938483889, 57.84958008993175], [85.5911618965832, 57.889258935439486], [85.45342874529884, 57.922962023139796], [85.31435657741753, 57.95062519728969], [85.17421012471517, 57.97219579946489], [85.03325616392989, 57.987632768798186], [84.89176300893735, 57.99690672014105], [84.75, 58.00000000000001], [3.25, 58.0], [3.108236991062658, 57.99690672014104], [2.9667438360701106, 57.98763276879817], [2.8257898752848316, 57.972195799464885], [2.6856434225824755, 57.950625197289675], [2.5465712547011647, 57.92296202313978], [2.4088381034168074, 57.88925893543947], [2.272706151611112, 57.849580089931735], [2.138434534191576, 57.8040010175542], [2.0062788448134574, 57.752608480661685], [1.8764906493427258, 57.69550030786911], [1.7493170069861388, 57.63278520782922], [1.624999999999999, 57.56458256229943], [1.5037762728728212, 57.491022198891876], [1.3858765818590986, 57.412244143939226], [1.2715253557216561, 57.32839835594651], [1.160940268518745, 57.23964444013668], [1.0543318252491019, 57.146151344632905], [0.9519029611437184, 57.04809703885628], [0.8538486553670945, 56.94566817475089], [0.7603555598633185, 56.83905973148126], [0.6716016440534829, 56.72847464427834], [0.5877558560607734, 56.6141234181409], [0.5089778011081179, 56.49622372712718], [0.4354174377005706, 56.375], [0.3672147921707758, 56.25068299301386], [0.30449969213088357, 56.12350935065727], [0.2473915193383136, 55.99372115518654], [0.19599898244579306, 55.861565465808425], [0.1504199100682575, 55.72729384838889], [0.11074106456052313, 55.591161896583195], [0.07703797686021119, 55.45342874529884], [0.049374802710318466, 55.31435657741753], [0.027804200535110457, 55.17421012471517], [0.012367231201821038, 55.03325616392989], [0.0030932798589557997, 54.891763008937346], [-6.661338147750939e-15, 54.75], [0.0, 3.25], [0.003093279858962017, 3.1082369910626584], [0.012367231201826812, 2.966743836070111], [0.02780420053511623, 2.825789875284833], [0.049374802710323795, 2.6856434225824772], [0.07703797686021652, 2.5465712547011665], [0.11074106456052801, 2.4088381034168087], [0.15041991006826283, 2.272706151611112], [0.19599898244579794, 2.1384345341915765], [0.24739151933831804, 2.0062788448134583], [0.30449969213088757, 1.876490649342727], [0.36721479217077935, 1.7493170069861401], [0.4354174377005742, 1.6250000000000004], [0.5089778011081214, 1.503776272872823], [0.5877558560607774, 1.3858765818590995], [0.671601644053486, 1.2715253557216573], [0.760355559863322, 1.1609402685187469], [0.8538486553670972, 1.054331825249104], [0.9519029611437211, 0.9519029611437206], [1.0543318252491045, 0.8538486553670968], [1.1609402685187473, 0.7603555598633216], [1.2715253557216581, 0.671601644053486], [1.3858765818591001, 0.587755856060777], [1.5037762728728221, 0.5089778011081219], [1.6249999999999996, 0.4354174377005746], [1.7493170069861392, 0.3672147921707798], [1.8764906493427262, 0.304499692130888], [2.0062788448134583, 0.24739151933831804], [2.138434534191577, 0.1959989824457975], [2.2727061516111124, 0.15041991006826239], [2.408838103416808, 0.11074106456052801], [2.5465712547011656, 0.07703797686021652], [2.6856434225824763, 0.049374802710323795], [2.825789875284832, 0.02780420053511623], [2.9667438360701106, 0.012367231201826812], [3.108236991062658, 0.003093279858962017], [3.25, 0.0]]);
              }
            }
          }
        }
        // 'main'
        multmatrix(m=[[-1.0, 0.0, 0.0, 35.49000000000001], [0.0, 0.0, -1.0, -10.0], [0.0, -1.0, 0.0, -11.0], [0.0, 0.0, 0.0, 1.0]]) {
          // 'usb_usb_flange'
          multmatrix(m=[[0.0, 1.0, 0.0, -10.0], [1.0, 0.0, 0.0, -9.0], [0.0, 0.0, -1.0, 1.3999999999999986], [0.0, 0.0, 0.0, 1.0]]) {
            // 'prism'
            linear_extrude(height=2.799999999999997, twist=0.0, scale=[1.0, 1.0]) {
              polygon(points=[[0.0, 0.0], [0.0, 20.0], [18.0, 0.0], [0.0, 0.0]]);
            }
          }
        }
        // 'main'
        multmatrix(m=[[-1.0, 0.0, 0.0, 35.49000000000001], [0.0, 0.0, -1.0, 8.1], [0.0, -1.0, 0.0, -11.0], [0.0, 0.0, 0.0, 1.0]]) {
          // 'usb_rj45_flange'
          multmatrix(m=[[0.0, 1.0, 0.0, -10.0], [1.0, 0.0, 0.0, -9.0], [0.0, 0.0, -1.0, 1.4999999999999987], [0.0, 0.0, 0.0, 1.0]]) {
            // 'prism'
            linear_extrude(height=2.9999999999999973, twist=0.0, scale=[1.0, 1.0]) {
              polygon(points=[[0.0, 0.0], [0.0, 20.0], [18.0, 0.0], [0.0, 0.0]]);
            }
          }
        }
        // 'main'
        multmatrix(m=[[1.0, 0.0, 0.0, -7.0], [0.0, 1.0, 0.0, 2.5], [0.0, 0.0, 1.0, -2.005], [0.0, 0.0, 0.0, 1.0]]) {
          // 'fan'
          multmatrix(m=[[1.0, 0.0, 0.0, -11.975000000000001], [0.0, 1.0, 0.0, -11.975000000000001], [0.0, 0.0, 1.0, -0.3999999999999999], [0.0, 0.0, 0.0, 1.0]]) {
            // ('mount', 0)
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 1.9], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=3.8, r1=2.35, r2=2.35, center=false, $fn=36);
            }
          }
          // 'fan'
          multmatrix(m=[[0.0, -1.0, 0.0, 11.975000000000001], [1.0, 0.0, 0.0, -11.975000000000001], [0.0, 0.0, 1.0, -0.3999999999999999], [0.0, 0.0, 0.0, 1.0]]) {
            // ('mount', 1)
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 1.9], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=3.8, r1=2.35, r2=2.35, center=false, $fn=36);
            }
          }
          // 'fan'
          multmatrix(m=[[-1.0, 0.0, 0.0, 11.975000000000001], [0.0, -1.0, 0.0, 11.975000000000001], [0.0, 0.0, 1.0, -0.3999999999999999], [0.0, 0.0, 0.0, 1.0]]) {
            // ('mount', 2)
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 1.9], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=3.8, r1=2.35, r2=2.35, center=false, $fn=36);
            }
          }
          // 'fan'
          multmatrix(m=[[0.0, 1.0, 0.0, -11.975000000000001], [-1.0, 0.0, 0.0, 11.975000000000001], [0.0, 0.0, 1.0, -0.3999999999999999], [0.0, 0.0, 0.0, 1.0]]) {
            // ('mount', 3)
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 1.9], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=3.8, r1=2.35, r2=2.35, center=false, $fn=36);
            }
          }
        }
        // 'main'
        multmatrix(m=[[1.0, 0.0, 0.0, -39.0], [0.0, 1.0, 0.0, -24.5], [0.0, 0.0, 1.0, -22.52], [0.0, 0.0, 0.0, 1.0]]) {
          // ('support', 0)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -0.5], [0.0, 0.0, 0.0, 1.0]]) {
            // 'thru'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 0.51], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=1.02, r1=2.75, r2=2.75, center=false, $fn=36);
            }
          }
          // ('support', 0)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -2.87], [0.0, 0.0, 0.0, 1.0]]) {
            // 'tap'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 1.9000000000000001], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=3.8000000000000003, r1=2.75, r2=2.75, center=false, $fn=36);
            }
          }
        }
        // 'main'
        multmatrix(m=[[1.0, 0.0, 0.0, -39.0], [0.0, 1.0, 0.0, 24.5], [0.0, 0.0, 1.0, -22.52], [0.0, 0.0, 0.0, 1.0]]) {
          // ('support', 1)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -0.5], [0.0, 0.0, 0.0, 1.0]]) {
            // 'thru'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 0.51], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=1.02, r1=2.75, r2=2.75, center=false, $fn=36);
            }
          }
          // ('support', 1)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -2.87], [0.0, 0.0, 0.0, 1.0]]) {
            // 'tap'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 1.9000000000000001], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=3.8000000000000003, r1=2.75, r2=2.75, center=false, $fn=36);
            }
          }
        }
        // 'main'
        multmatrix(m=[[1.0, 0.0, 0.0, 19.0], [0.0, 1.0, 0.0, -24.5], [0.0, 0.0, 1.0, -22.52], [0.0, 0.0, 0.0, 1.0]]) {
          // ('support', 2)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -0.5], [0.0, 0.0, 0.0, 1.0]]) {
            // 'thru'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 0.51], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=1.02, r1=2.75, r2=2.75, center=false, $fn=36);
            }
          }
          // ('support', 2)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -2.87], [0.0, 0.0, 0.0, 1.0]]) {
            // 'tap'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 1.9000000000000001], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=3.8000000000000003, r1=2.75, r2=2.75, center=false, $fn=36);
            }
          }
        }
        // 'main'
        multmatrix(m=[[1.0, 0.0, 0.0, 19.0], [0.0, 1.0, 0.0, 24.5], [0.0, 0.0, 1.0, -22.52], [0.0, 0.0, 0.0, 1.0]]) {
          // ('support', 3)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -0.5], [0.0, 0.0, 0.0, 1.0]]) {
            // 'thru'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 0.51], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=1.02, r1=2.75, r2=2.75, center=false, $fn=36);
            }
          }
          // ('support', 3)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -2.87], [0.0, 0.0, 0.0, 1.0]]) {
            // 'tap'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 1.9000000000000001], [0.0, 0.0, 0.0, 1.0]]) {
              // 'outer'
              cylinder(h=3.8000000000000003, r1=2.75, r2=2.75, center=false, $fn=36);
            }
          }
        }
        // 'main'
        multmatrix(m=[[1.0, 0.0, 0.0, 24.390000000000008], [0.0, 0.0, -1.0, 31.0], [0.0, 1.0, 0.0, -27.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('tab', 0)
          multmatrix(m=[[1.0, 0.0, 0.0, 3.21], [0.0, 0.0, 1.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'box_cylinder'
            linear_extrude(height=8.0, twist=0.0, scale=[1.0, 1.0], $fn=36) {
              polygon(points=[[0.0, 0.0], [-3.4699999999999998, 0.0], [-3.4699999999999998, 2.95], [-3.4567956023783566, 3.2524304273343736], [-3.4172829029523615, 3.5525591765042477], [-3.3517626172230663, 3.8481020865057474], [-3.2607333941271017, 4.13680989734007], [-3.144888021017175, 4.416485368240227], [-3.005108151132002, 4.685], [-2.8424575936828007, 4.94031023413813], [-2.6581742176228533, 5.180473005612292], [-2.4536605307173196, 5.403660530717319], [-2.2304730056122914, 5.608174217622853], [-1.99031023413813, 5.792457593682801], [-1.7350000000000005, 5.955108151132002], [-1.4664853682402266, 6.094888021017175], [-1.1868098973400703, 6.210733394127102], [-0.8981020865057465, 6.3017626172230665], [-0.6025591765042481, 6.367282902952361], [-0.30243042733437403, 6.406795602378356], [2.1247621965206577e-16, 6.42], [0.3024304273343745, 6.406795602378356], [0.6025591765042485, 6.367282902952361], [0.8981020865057476, 6.301762617223066], [1.1868098973400707, 6.210733394127102], [1.466485368240227, 6.094888021017175], [1.7349999999999994, 5.955108151132002], [1.9903102341381294, 5.792457593682801], [2.230473005612292, 5.608174217622853], [2.45366053071732, 5.403660530717319], [2.6581742176228533, 5.180473005612291], [2.8424575936828016, 4.940310234138129], [3.005108151132002, 4.684999999999999], [3.144888021017175, 4.4164853682402265], [3.2607333941271017, 4.13680989734007], [3.3517626172230663, 3.8481020865057474], [3.4172829029523615, 3.552559176504249], [3.4567956023783566, 3.252430427334373], [3.4699999999999998, 2.9499999999999997], [3.4699999999999998, 0.0], [0.0, 0.0]]);
            }
          }
          // ('tab', 0)
          multmatrix(m=[[1.0, 1.2246467991473532e-16, 0.0, 3.21], [0.0, 0.0, 1.0, 8.0], [1.2246467991473532e-16, -1.0, 0.0, -2.9500000000000006], [0.0, 0.0, 0.0, 1.0]]) {
            // 'screw'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -4.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'thru'
              multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 4.01], [0.0, 0.0, 0.0, 1.0]]) {
                // 'outer'
                cylinder(h=8.02, r1=2.95, r2=2.95, center=false, $fn=36);
              }
            }
            // 'screw'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -7.98], [0.0, 0.0, 0.0, 1.0]]) {
              // 'tap'
              multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 0.01], [0.0, 0.0, 0.0, 1.0]]) {
                // 'outer'
                cylinder(h=0.02, r1=2.95, r2=2.95, center=false, $fn=36);
              }
            }
            // 'screw'
            union();
          }
        }
        // 'main'
        multmatrix(m=[[-1.0, 0.0, 0.0, 30.81000000000001], [0.0, 0.0, 1.0, -31.0], [0.0, 1.0, 0.0, -27.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('tab', 1)
          multmatrix(m=[[1.0, 0.0, 0.0, 3.21], [0.0, 0.0, 1.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'box_cylinder'
            linear_extrude(height=8.0, twist=0.0, scale=[1.0, 1.0], $fn=36) {
              polygon(points=[[0.0, 0.0], [-3.4699999999999998, 0.0], [-3.4699999999999998, 2.95], [-3.4567956023783566, 3.2524304273343736], [-3.4172829029523615, 3.5525591765042477], [-3.3517626172230663, 3.8481020865057474], [-3.2607333941271017, 4.13680989734007], [-3.144888021017175, 4.416485368240227], [-3.005108151132002, 4.685], [-2.8424575936828007, 4.94031023413813], [-2.6581742176228533, 5.180473005612292], [-2.4536605307173196, 5.403660530717319], [-2.2304730056122914, 5.608174217622853], [-1.99031023413813, 5.792457593682801], [-1.7350000000000005, 5.955108151132002], [-1.4664853682402266, 6.094888021017175], [-1.1868098973400703, 6.210733394127102], [-0.8981020865057465, 6.3017626172230665], [-0.6025591765042481, 6.367282902952361], [-0.30243042733437403, 6.406795602378356], [2.1247621965206577e-16, 6.42], [0.3024304273343745, 6.406795602378356], [0.6025591765042485, 6.367282902952361], [0.8981020865057476, 6.301762617223066], [1.1868098973400707, 6.210733394127102], [1.466485368240227, 6.094888021017175], [1.7349999999999994, 5.955108151132002], [1.9903102341381294, 5.792457593682801], [2.230473005612292, 5.608174217622853], [2.45366053071732, 5.403660530717319], [2.6581742176228533, 5.180473005612291], [2.8424575936828016, 4.940310234138129], [3.005108151132002, 4.684999999999999], [3.144888021017175, 4.4164853682402265], [3.2607333941271017, 4.13680989734007], [3.3517626172230663, 3.8481020865057474], [3.4172829029523615, 3.552559176504249], [3.4567956023783566, 3.252430427334373], [3.4699999999999998, 2.9499999999999997], [3.4699999999999998, 0.0], [0.0, 0.0]]);
            }
          }
          // ('tab', 1)
          multmatrix(m=[[1.0, 1.2246467991473532e-16, 0.0, 3.21], [0.0, 0.0, 1.0, 8.0], [1.2246467991473532e-16, -1.0, 0.0, -2.9500000000000006], [0.0, 0.0, 0.0, 1.0]]) {
            // 'screw'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -4.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'thru'
              multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 4.01], [0.0, 0.0, 0.0, 1.0]]) {
                // 'outer'
                cylinder(h=8.02, r1=2.95, r2=2.95, center=false, $fn=36);
              }
            }
            // 'screw'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -7.98], [0.0, 0.0, 0.0, 1.0]]) {
              // 'tap'
              multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 0.01], [0.0, 0.0, 0.0, 1.0]]) {
                // 'outer'
                cylinder(h=0.02, r1=2.95, r2=2.95, center=false, $fn=36);
              }
            }
            // 'screw'
            union();
          }
        }
        // 'main'
        multmatrix(m=[[0.0, 0.0, 1.0, -46.0], [1.0, 0.0, 0.0, -21.810000000000002], [0.0, 1.0, 0.0, -27.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('tab', 2)
          multmatrix(m=[[1.0, 0.0, 0.0, 3.21], [0.0, 0.0, 1.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'box_cylinder'
            linear_extrude(height=8.0, twist=0.0, scale=[1.0, 1.0], $fn=36) {
              polygon(points=[[0.0, 0.0], [-3.4699999999999998, 0.0], [-3.4699999999999998, 2.95], [-3.4567956023783566, 3.2524304273343736], [-3.4172829029523615, 3.5525591765042477], [-3.3517626172230663, 3.8481020865057474], [-3.2607333941271017, 4.13680989734007], [-3.144888021017175, 4.416485368240227], [-3.005108151132002, 4.685], [-2.8424575936828007, 4.94031023413813], [-2.6581742176228533, 5.180473005612292], [-2.4536605307173196, 5.403660530717319], [-2.2304730056122914, 5.608174217622853], [-1.99031023413813, 5.792457593682801], [-1.7350000000000005, 5.955108151132002], [-1.4664853682402266, 6.094888021017175], [-1.1868098973400703, 6.210733394127102], [-0.8981020865057465, 6.3017626172230665], [-0.6025591765042481, 6.367282902952361], [-0.30243042733437403, 6.406795602378356], [2.1247621965206577e-16, 6.42], [0.3024304273343745, 6.406795602378356], [0.6025591765042485, 6.367282902952361], [0.8981020865057476, 6.301762617223066], [1.1868098973400707, 6.210733394127102], [1.466485368240227, 6.094888021017175], [1.7349999999999994, 5.955108151132002], [1.9903102341381294, 5.792457593682801], [2.230473005612292, 5.608174217622853], [2.45366053071732, 5.403660530717319], [2.6581742176228533, 5.180473005612291], [2.8424575936828016, 4.940310234138129], [3.005108151132002, 4.684999999999999], [3.144888021017175, 4.4164853682402265], [3.2607333941271017, 4.13680989734007], [3.3517626172230663, 3.8481020865057474], [3.4172829029523615, 3.552559176504249], [3.4567956023783566, 3.252430427334373], [3.4699999999999998, 2.9499999999999997], [3.4699999999999998, 0.0], [0.0, 0.0]]);
            }
          }
          // ('tab', 2)
          multmatrix(m=[[1.0, 1.2246467991473532e-16, 0.0, 3.21], [0.0, 0.0, 1.0, 8.0], [1.2246467991473532e-16, -1.0, 0.0, -2.9500000000000006], [0.0, 0.0, 0.0, 1.0]]) {
            // 'screw'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -4.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'thru'
              multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 4.01], [0.0, 0.0, 0.0, 1.0]]) {
                // 'outer'
                cylinder(h=8.02, r1=2.95, r2=2.95, center=false, $fn=36);
              }
            }
            // 'screw'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -7.98], [0.0, 0.0, 0.0, 1.0]]) {
              // 'tap'
              multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 0.01], [0.0, 0.0, 0.0, 1.0]]) {
                // 'outer'
                cylinder(h=0.02, r1=2.95, r2=2.95, center=false, $fn=36);
              }
            }
            // 'screw'
            union();
          }
        }
        // 'main'
        multmatrix(m=[[0.0, 0.0, 1.0, -46.0], [1.0, 0.0, 0.0, 15.39], [0.0, 1.0, 0.0, -27.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('tab', 3)
          multmatrix(m=[[1.0, 0.0, 0.0, 3.21], [0.0, 0.0, 1.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'box_cylinder'
            linear_extrude(height=8.0, twist=0.0, scale=[1.0, 1.0], $fn=36) {
              polygon(points=[[0.0, 0.0], [-3.4699999999999998, 0.0], [-3.4699999999999998, 2.95], [-3.4567956023783566, 3.2524304273343736], [-3.4172829029523615, 3.5525591765042477], [-3.3517626172230663, 3.8481020865057474], [-3.2607333941271017, 4.13680989734007], [-3.144888021017175, 4.416485368240227], [-3.005108151132002, 4.685], [-2.8424575936828007, 4.94031023413813], [-2.6581742176228533, 5.180473005612292], [-2.4536605307173196, 5.403660530717319], [-2.2304730056122914, 5.608174217622853], [-1.99031023413813, 5.792457593682801], [-1.7350000000000005, 5.955108151132002], [-1.4664853682402266, 6.094888021017175], [-1.1868098973400703, 6.210733394127102], [-0.8981020865057465, 6.3017626172230665], [-0.6025591765042481, 6.367282902952361], [-0.30243042733437403, 6.406795602378356], [2.1247621965206577e-16, 6.42], [0.3024304273343745, 6.406795602378356], [0.6025591765042485, 6.367282902952361], [0.8981020865057476, 6.301762617223066], [1.1868098973400707, 6.210733394127102], [1.466485368240227, 6.094888021017175], [1.7349999999999994, 5.955108151132002], [1.9903102341381294, 5.792457593682801], [2.230473005612292, 5.608174217622853], [2.45366053071732, 5.403660530717319], [2.6581742176228533, 5.180473005612291], [2.8424575936828016, 4.940310234138129], [3.005108151132002, 4.684999999999999], [3.144888021017175, 4.4164853682402265], [3.2607333941271017, 4.13680989734007], [3.3517626172230663, 3.8481020865057474], [3.4172829029523615, 3.552559176504249], [3.4567956023783566, 3.252430427334373], [3.4699999999999998, 2.9499999999999997], [3.4699999999999998, 0.0], [0.0, 0.0]]);
            }
          }
          // ('tab', 3)
          multmatrix(m=[[1.0, 1.2246467991473532e-16, 0.0, 3.21], [0.0, 0.0, 1.0, 8.0], [1.2246467991473532e-16, -1.0, 0.0, -2.9500000000000006], [0.0, 0.0, 0.0, 1.0]]) {
            // 'screw'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -4.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'thru'
              multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 4.01], [0.0, 0.0, 0.0, 1.0]]) {
                // 'outer'
                cylinder(h=8.02, r1=2.95, r2=2.95, center=false, $fn=36);
              }
            }
            // 'screw'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -7.98], [0.0, 0.0, 0.0, 1.0]]) {
              // 'tap'
              multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [-0.0, -1.0, -0.0, -0.0], [-0.0, -0.0, -1.0, 0.01], [0.0, 0.0, 0.0, 1.0]]) {
                // 'outer'
                cylinder(h=0.02, r1=2.95, r2=2.95, center=false, $fn=36);
              }
            }
            // 'screw'
            union();
          }
        }
      }
      // 'main'
      multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -21.0], [0.0, 0.0, 0.0, 1.0]]) {
        // '_combine_solids_and_holes'
        difference() {
          // '_combine_solids_and_holes'
          union() {
            // 'outline'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -0.75], [0.0, 0.0, 0.0, 1.0]]) {
              // 'board'
              multmatrix(m=[[1.0, 0.0, 0.0, -42.5], [0.0, 1.0, 0.0, -28.0], [0.0, 0.0, 1.0, -0.75], [0.0, 0.0, 0.0, 1.0]]) {
                // 'hull'
                linear_extrude(height=1.5, twist=0.0, scale=[1.0, 1.0]) {
                  polygon(points=[[3.0, 0.0], [82.0, 0.0], [82.130858162096, 0.002855335254425828], [82.26146722824298, 0.011415905724762254], [82.39157857666015, 0.025665415878567188], [82.52094453300079, 0.04557674096337383], [82.6493188418143, 0.07111197864019703], [82.77645713530757, 0.10222252113279229], [82.90211739851281, 0.13884914775531598], [83.02606042997701, 0.18092213764227116], [83.14805029709527, 0.228361402466136], [83.2678547852221, 0.28107663889004586], [83.3852458397051, 0.3389675004653303], [83.5, 0.40192378864668], [83.61189882504047, 0.4698256625613384], [83.72072930905314, 0.5425438671330203], [83.82628428702617, 0.6199399791262898], [83.92836282905962, 0.7018666706430614], [84.02677062284698, 0.7881679895696236], [84.12132034355965, 0.8786796564403532], [84.21183201043037, 0.9732293771530154], [84.29813332935694, 1.071637170940378], [84.38006002087371, 1.1737157129738343], [84.45745613286698, 1.2792706909468583], [84.53017433743867, 1.3881011749595251], [84.59807621135332, 1.4999999999999967], [84.66103249953467, 1.6147541602948954], [84.71892336110996, 1.7321452147778988], [84.77163859753387, 1.8519497029047285], [84.81907786235773, 1.9739395700229916], [84.86115085224468, 2.097882601487179], [84.89777747886721, 2.223542864692436], [84.9288880213598, 2.35068115818569], [84.95442325903663, 2.479055466999208], [84.97433458412144, 2.608421423339844], [84.98858409427524, 2.7385327717570247], [84.99714466474558, 2.8691418379039915], [85.0, 2.9999999999999996], [85.0, 53.0], [84.99714466474558, 53.13085816209601], [84.98858409427524, 53.26146722824297], [84.97433458412144, 53.39157857666015], [84.95442325903663, 53.52094453300079], [84.9288880213598, 53.649318841814306], [84.8977774788672, 53.77645713530756], [84.86115085224468, 53.902117398512814], [84.81907786235773, 54.026060429977], [84.77163859753387, 54.14805029709527], [84.71892336110994, 54.2678547852221], [84.66103249953467, 54.3852458397051], [84.59807621135332, 54.5], [84.53017433743865, 54.61189882504047], [84.45745613286698, 54.720729309053134], [84.3800600208737, 54.826284287026155], [84.29813332935693, 54.928362829059616], [84.21183201043037, 55.026770622846975], [84.12132034355965, 55.12132034355964], [84.02677062284698, 55.21183201043036], [83.92836282905962, 55.29813332935693], [83.82628428702616, 55.3800600208737], [83.72072930905314, 55.457456132866966], [83.61189882504047, 55.53017433743865], [83.5, 55.59807621135331], [83.3852458397051, 55.661032499534656], [83.2678547852221, 55.718923361109944], [83.14805029709527, 55.77163859753385], [83.02606042997701, 55.819077862357716], [82.90211739851281, 55.86115085224467], [82.77645713530757, 55.8977774788672], [82.6493188418143, 55.92888802135979], [82.52094453300079, 55.95442325903661], [82.39157857666015, 55.97433458412142], [82.26146722824298, 55.988584094275225], [82.130858162096, 55.99714466474556], [82.0, 55.999999999999986], [3.0, 56.0], [2.869141837903992, 55.997144664745576], [2.7385327717570256, 55.98858409427524], [2.608421423339845, 55.97433458412143], [2.479055466999208, 55.95442325903662], [2.3506811581856906, 55.9288880213598], [2.2235428646924364, 55.897777478867205], [2.097882601487179, 55.861150852244684], [1.9739395700229923, 55.81907786235772], [1.8519497029047285, 55.77163859753386], [1.7321452147778997, 55.71892336110995], [1.6147541602948956, 55.66103249953466], [1.499999999999997, 55.598076211353316], [1.3881011749595251, 55.53017433743866], [1.2792706909468576, 55.45745613286697], [1.1737157129738334, 55.38006002087371], [1.071637170940378, 55.298133329356936], [0.9732293771530145, 55.21183201043037], [0.8786796564403523, 55.121320343559645], [0.7881679895696223, 55.02677062284698], [0.7018666706430596, 54.928362829059616], [0.6199399791262876, 54.82628428702616], [0.542543867133018, 54.72072930905314], [0.46982566256133573, 54.61189882504047], [0.40192378864667644, 54.5], [0.33896750046532675, 54.3852458397051], [0.2810766388900414, 54.2678547852221], [0.22836140246613024, 54.14805029709527], [0.1809221376422645, 54.02606042997701], [0.13884914775530843, 53.90211739851282], [0.1022225211327843, 53.77645713530756], [0.07111197864018859, 53.649318841814306], [0.04557674096336406, 53.520944533000794], [0.02566541587855653, 53.39157857666016], [0.011415905724750708, 53.26146722824298], [0.0028553352544129496, 53.13085816209601], [-1.4210854715202004e-14, 53.0], [0.0, 3.0], [0.0028553352544267163, 2.8691418379039924], [0.011415905724763142, 2.738532771757026], [0.02566541587856852, 2.608421423339846], [0.045576740963375606, 2.4790554669992098], [0.07111197864020014, 2.350681158185691], [0.10222252113279495, 2.223542864692438], [0.1388491477553191, 2.0978826014871808], [0.18092213764227472, 1.973939570022994], [0.22836140246613956, 1.851949702904731], [0.28107663889004986, 1.7321452147779022], [0.3389675004653343, 1.614754160294899], [0.40192378864668354, 1.5000000000000009], [0.4698256625613433, 1.3881011749595284], [0.5425438671330247, 1.2792706909468614], [0.6199399791262943, 1.173715712973838], [0.7018666706430658, 1.0716371709403822], [0.7881679895696276, 0.9732293771530198], [0.8786796564403572, 0.8786796564403576], [0.9732293771530189, 0.7881679895696285], [1.0716371709403816, 0.7018666706430663], [1.1737157129738374, 0.6199399791262952], [1.279270690946861, 0.5425438671330252], [1.3881011749595273, 0.4698256625613437], [1.4999999999999987, 0.40192378864668443], [1.614754160294897, 0.33896750046533564], [1.7321452147779026, 0.2810766388900494], [1.851949702904729, 0.22836140246614045], [1.9739395700229942, 0.18092213764227472], [2.097882601487181, 0.1388491477553191], [2.2235428646924382, 0.10222252113279495], [2.3506811581856915, 0.07111197864020014], [2.479055466999209, 0.04557674096337605], [2.6084214233398453, 0.025665415878568965], [2.738532771757025, 0.011415905724763142], [2.8691418379039915, 0.0028553352544267163], [2.9999999999999996, 0.0]]);
                }
              }
            }
            // 'outline'
            multmatrix(m=[[-1.0, 0.0, 0.0, -26.8], [0.0, -1.0, 0.0, -22.3], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'usbC'
              color(c=[0.0, 1.0, 0.5]) {
                // 'usbC'
                cube(size=[9.0, 7.5, 3.3]);
              }
            }
            // 'outline'
            multmatrix(m=[[-1.0, 0.0, 0.0, -24.3], [0.0, 1.0, 0.0, -37.29], [0.0, 0.0, -1.0, 5.3], [0.0, 0.0, 0.0, 1.0]]) {
              // ('usbC', 'outer')
              cube(size=[14.0, 7.5, 7.3]);
            }
            // 'outline'
            multmatrix(m=[[-1.0, 0.0, 0.0, -12.95], [0.0, -1.0, 0.0, -21.8], [0.0, 0.0, 1.0, -0.5], [0.0, 0.0, 0.0, 1.0]]) {
              // 'hdmi1'
              color(c=[0.0, 1.0, 0.5]) {
                // 'hdmi1'
                cube(size=[7.1, 8.0, 3.6]);
              }
            }
            // 'outline'
            multmatrix(m=[[-1.0, 0.0, 0.0, -10.45], [0.0, 1.0, 0.0, -37.79], [0.0, 0.0, -1.0, 5.35], [0.0, 0.0, 0.0, 1.0]]) {
              // ('hdmi1', 'outer')
              cube(size=[12.1, 8.0, 8.1]);
            }
            // 'outline'
            multmatrix(m=[[-1.0, 0.0, 0.0, 0.5499999999999998], [0.0, -1.0, 0.0, -21.8], [0.0, 0.0, 1.0, -0.5], [0.0, 0.0, 0.0, 1.0]]) {
              // 'hdmi2'
              color(c=[0.0, 1.0, 0.5]) {
                // 'hdmi2'
                cube(size=[7.1, 8.0, 3.6]);
              }
            }
            // 'outline'
            multmatrix(m=[[-1.0, 0.0, 0.0, 3.05], [0.0, 1.0, 0.0, -37.79], [0.0, 0.0, -1.0, 5.35], [0.0, 0.0, 0.0, 1.0]]) {
              // ('hdmi2', 'outer')
              cube(size=[12.1, 8.0, 8.1]);
            }
            // 'outline'
            multmatrix(m=[[-1.0, 0.0, 0.0, 11.5], [0.0, 0.0, 1.0, -30.7], [0.0, 1.0, 0.0, 3.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'audio'
              color(c=[0.0, 1.0, 0.5]) {
                // 'audio'
                cylinder(h=15.0, r1=3.0, r2=3.0, center=false, $fn=36);
              }
            }
            // 'outline'
            multmatrix(m=[[-1.0, 0.0, 0.0, 11.5], [0.0, 0.0, -1.0, -30.689999999999998], [0.0, -1.0, 0.0, 3.0], [0.0, 0.0, 0.0, 1.0]]) {
              // ('audio', 'outer')
              cylinder(h=15.0, r1=5.0, r2=5.0, center=false, $fn=36);
            }
            // 'outline'
            multmatrix(m=[[-1.0, 0.0, 0.0, -5.5], [0.0, -1.0, 0.0, 12.0], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'cpu'
              color(c=[0.0, 1.0, 0.5]) {
                // 'cpu'
                cube(size=[15.0, 15.0, 2.4]);
              }
            }
            // 'outline'
            multmatrix(m=[[0.0, 1.0, 0.0, 28.0], [-1.0, 0.0, 0.0, -11.55], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'usbA2'
              color(c=[0.0, 1.0, 0.5]) {
                // 'usbA2'
                cube(size=[14.9, 17.5, 16.4]);
              }
            }
            // 'outline'
            multmatrix(m=[[0.0, -1.0, 0.0, 63.290000000000006], [-1.0, 0.0, 0.0, -11.399999999999999], [0.0, 0.0, -1.0, 16.549999999999997], [0.0, 0.0, 0.0, 1.0]]) {
              // ('usbA2', 'outer')
              cube(size=[15.200000000000001, 17.8, 16.7]);
            }
            // 'outline'
            multmatrix(m=[[0.0, 1.0, 0.0, 28.0], [-1.0, 0.0, 0.0, 6.45], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'usbA3'
              color(c=[0.0, 1.0, 0.5]) {
                // 'usbA3'
                cube(size=[14.9, 17.5, 16.4]);
              }
            }
            // 'outline'
            multmatrix(m=[[0.0, -1.0, 0.0, 63.290000000000006], [-1.0, 0.0, 0.0, 6.6000000000000005], [0.0, 0.0, -1.0, 16.549999999999997], [0.0, 0.0, 0.0, 1.0]]) {
              // ('usbA3', 'outer')
              cube(size=[15.200000000000001, 17.8, 16.7]);
            }
            // 'outline'
            multmatrix(m=[[0.0, 1.0, 0.0, 24.25], [-1.0, 0.0, 0.0, 25.75], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'rj45'
              color(c=[0.0, 1.0, 0.5]) {
                // 'rj45'
                cube(size=[16.0, 21.25, 13.7]);
              }
            }
            // 'outline'
            multmatrix(m=[[0.0, -1.0, 0.0, 67.04], [-1.0, 0.0, 0.0, 25.9], [0.0, 0.0, -1.0, 13.85], [0.0, 0.0, 0.0, 1.0]]) {
              // ('rj45', 'outer')
              cube(size=[16.3, 21.55, 14.0]);
            }
            // 'outline'
            multmatrix(m=[[0.0, -1.0, 0.0, -28.15], [-1.0, 0.0, 0.0, 6.149999999999999], [0.0, 0.0, -1.0, -1.5], [0.0, 0.0, 0.0, 1.0]]) {
              // 'micro_sd'
              color(c=[0.0, 1.0, 0.5]) {
                // 'micro_sd'
                cube(size=[12.0, 11.35, 1.4]);
              }
            }
            // 'outline'
            multmatrix(m=[[0.0, 1.0, 0.0, -51.84], [-1.0, 0.0, 0.0, 6.649999999999999], [0.0, 0.0, 1.0, -8.9], [0.0, 0.0, 0.0, 1.0]]) {
              // ('micro_sd', 'outer')
              cube(size=[13.0, 12.35, 7.4]);
            }
            // 'outline'
            multmatrix(m=[[1.0, 0.0, 0.0, -35.5], [0.0, 1.0, 0.0, 21.15], [0.0, 0.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
              // 'header100'
              color(c=[0.0, 1.0, 0.5]) {
                // 'header100'
                cube(size=[51.0, 5.1, 8.7]);
              }
            }
          }
          // 'outline'
          multmatrix(m=[[1.0, 0.0, 0.0, -39.0], [0.0, -1.0, 0.0, -24.5], [0.0, 0.0, -1.0, 0.02], [0.0, 0.0, 0.0, 1.0]]) {
            // ('mount_hole', 0)
            cylinder(h=1.54, r1=1.35, r2=1.35, center=false, $fn=36);
          }
          // 'outline'
          multmatrix(m=[[1.0, 0.0, 0.0, -39.0], [0.0, -1.0, 0.0, 24.5], [0.0, 0.0, -1.0, 0.02], [0.0, 0.0, 0.0, 1.0]]) {
            // ('mount_hole', 1)
            cylinder(h=1.54, r1=1.35, r2=1.35, center=false, $fn=36);
          }
          // 'outline'
          multmatrix(m=[[1.0, 0.0, 0.0, 19.0], [0.0, -1.0, 0.0, -24.5], [0.0, 0.0, -1.0, 0.02], [0.0, 0.0, 0.0, 1.0]]) {
            // ('mount_hole', 2)
            cylinder(h=1.54, r1=1.35, r2=1.35, center=false, $fn=36);
          }
          // 'outline'
          multmatrix(m=[[1.0, 0.0, 0.0, 19.0], [0.0, -1.0, 0.0, 24.5], [0.0, 0.0, -1.0, 0.02], [0.0, 0.0, 0.0, 1.0]]) {
            // ('mount_hole', 3)
            cylinder(h=1.54, r1=1.35, r2=1.35, center=false, $fn=36);
          }
        }
      }
      // 'main'
      multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 15.75], [0.0, 0.0, 0.0, 1.0]]) {
        // 'split_box'
        multmatrix(m=[[1.0, 0.0, 0.0, -66.0], [0.0, 1.0, 0.0, -51.0], [0.0, 0.0, 1.0, -33.75], [0.0, 0.0, 0.0, 1.0]]) {
          // 'split_box'
          cube(size=[132.0, 102.0, 67.5]);
        }
      }
      // 'main'
      multmatrix(m=[[1.0, 0.0, 0.0, -10.0], [0.0, -1.0, 0.0, 30.0], [0.0, 0.0, -1.0, -8.3], [0.0, 0.0, 0.0, 1.0]]) {
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -23.437337222627356], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 0)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -20.312337222627356], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 1)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -17.187337222627356], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 2)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -14.062337222627358], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 3)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -10.937337222627358], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 4)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -7.812337222627357], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 5)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -4.687337222627357], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 6)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -1.562337222627357], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 7)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 1.562662777372643], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 8)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 4.687662777372643], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 9)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 7.812662777372643], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 10)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 10.937662777372642], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 11)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 14.062662777372642], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 12)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 17.187662777372644], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 13)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 20.312662777372644], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 14)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'rhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 23.437662777372644], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 15)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
      }
      // 'main'
      multmatrix(m=[[1.0, 0.0, 0.0, -10.0], [0.0, -1.0, 0.0, -30.0], [0.0, 0.0, -1.0, -8.3], [0.0, 0.0, 0.0, 1.0]]) {
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -23.437337222627356], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 0)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -20.312337222627356], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 1)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -17.187337222627356], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 2)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -14.062337222627358], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 3)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -10.937337222627358], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 4)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -7.812337222627357], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 5)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -4.687337222627357], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 6)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, -1.562337222627357], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 7)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 1.562662777372643], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 8)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 4.687662777372643], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 9)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 7.812662777372643], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 10)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 10.937662777372642], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 11)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 14.062662777372642], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 12)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 17.187662777372644], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 13)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 20.312662777372644], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 14)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
        // 'lhs_grille'
        multmatrix(m=[[0.0, 1.0, 0.0, 23.437662777372644], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.5], [0.0, 0.0, 0.0, 1.0]]) {
          // ('vane', 15)
          linear_extrude(height=9.0, twist=0.0, scale=[1.0, 1.0]) {
            polygon(points=[[0.0, 0.0], [-1.005, 0.0], [-1.005, 1.2838313886863215], [-0.5025, 0.7813313886863215], [0.0, 0.7813313886863215], [0.5025, 0.7813313886863215], [1.005, 1.2838313886863215], [1.005, 0.0], [1.005, -1.2838313886863215], [0.5025, -0.7813313886863215], [0.0, -0.7813313886863215], [-0.5025, -0.7813313886863215], [-1.005, -1.2838313886863215], [-1.005, 0.0]]);
          }
        }
      }
      // 'main'
      multmatrix(m=[[1.0, 0.0, 0.0, -7.0], [0.0, 1.0, 0.0, 2.5], [0.0, 0.0, 1.0, -2.005], [0.0, 0.0, 0.0, 1.0]]) {
        // 'fan'
        multmatrix(m=[[1.0, 0.0, 0.0, -11.975000000000001], [0.0, 1.0, 0.0, -11.975000000000001], [0.0, 0.0, 1.0, -0.3999999999999999], [0.0, 0.0, 0.0, 1.0]]) {
          // ('mount', 0)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.9049999999999998], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=3.8099999999999996, r1=1.2682499999999999, r2=1.2682499999999999, center=false, $fn=36);
          }
        }
        // 'fan'
        multmatrix(m=[[0.0, -1.0, 0.0, 11.975000000000001], [1.0, 0.0, 0.0, -11.975000000000001], [0.0, 0.0, 1.0, -0.3999999999999999], [0.0, 0.0, 0.0, 1.0]]) {
          // ('mount', 1)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.9049999999999998], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=3.8099999999999996, r1=1.2682499999999999, r2=1.2682499999999999, center=false, $fn=36);
          }
        }
        // 'fan'
        multmatrix(m=[[-1.0, 0.0, 0.0, 11.975000000000001], [0.0, -1.0, 0.0, 11.975000000000001], [0.0, 0.0, 1.0, -0.3999999999999999], [0.0, 0.0, 0.0, 1.0]]) {
          // ('mount', 2)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.9049999999999998], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=3.8099999999999996, r1=1.2682499999999999, r2=1.2682499999999999, center=false, $fn=36);
          }
        }
        // 'fan'
        multmatrix(m=[[0.0, 1.0, 0.0, -11.975000000000001], [-1.0, 0.0, 0.0, 11.975000000000001], [0.0, 0.0, 1.0, -0.3999999999999999], [0.0, 0.0, 0.0, 1.0]]) {
          // ('mount', 3)
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.9049999999999998], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=3.8099999999999996, r1=1.2682499999999999, r2=1.2682499999999999, center=false, $fn=36);
          }
        }
        // 'fan'
        multmatrix(m=[[-1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.005], [0.0, 0.0, 0.0, 1.0]]) {
          // '_combine_solids_and_holes'
          difference() {
            // 'grille'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.005], [0.0, 0.0, 0.0, 1.0]]) {
              // 'core'
              cylinder(h=2.01, r1=14.5, r2=14.5, center=false, $fn=64);
            }
            // 'grille'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 0)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[0.9238795325112867, 0.38268343236508984, 0.0, 0.0], [-0.3826834323650898, 0.9238795325112867, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 1)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[0.7071067811865475, 0.7071067811865475, 0.0, 0.0], [-0.7071067811865475, 0.7071067811865475, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 2)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[0.3826834323650899, 0.9238795325112867, 0.0, 0.0], [-0.9238795325112867, 0.38268343236508984, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 3)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[0.0, 1.0, 0.0, 0.0], [-1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 4)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[-0.3826834323650898, 0.9238795325112867, 0.0, 0.0], [-0.9238795325112868, -0.3826834323650898, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 5)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[-0.7071067811865475, 0.7071067811865476, 0.0, 0.0], [-0.7071067811865476, -0.7071067811865475, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 6)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[-0.9238795325112867, 0.3826834323650899, 0.0, 0.0], [-0.3826834323650899, -0.9238795325112867, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 7)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[-1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 8)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[-0.9238795325112867, -0.3826834323650896, 0.0, 0.0], [0.3826834323650896, -0.9238795325112867, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 9)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[-0.7071067811865477, -0.7071067811865474, 0.0, 0.0], [0.7071067811865474, -0.7071067811865476, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 10)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[-0.38268343236509034, -0.9238795325112865, 0.0, 0.0], [0.9238795325112865, -0.38268343236509034, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 11)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[0.0, -1.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 12)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[0.38268343236509, -0.9238795325112866, 0.0, 0.0], [0.9238795325112867, 0.38268343236509, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 13)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[0.7071067811865474, -0.7071067811865477, 0.0, 0.0], [0.7071067811865477, 0.7071067811865474, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 14)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[0.9238795325112865, -0.3826834323650904, 0.0, 0.0], [0.3826834323650904, 0.9238795325112865, 0.0, 0.0], [0.0, 0.0, 1.0, -1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // ('spoke', 15)
              linear_extrude(height=2.0199999999999996, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[0.0, 5.99], [-1.779893821086036, 10.094279468375133], [0.0, 14.51], [1.4222287061819243, 14.440130384013576], [-0.7819107386655111, 10.220132856120783], [2.830760572454021, 14.231194418650873], [4.2120306669622485, 13.88520427147435], [0.22360257160425148, 10.247560777569069], [1.1685910288766082, 5.87490382961535], [0.0, 5.99]]);
              }
            }
            // 'grille'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.0099999999999998], [0.0, 0.0, 0.0, 1.0]]) {
              // 'inner_core'
              cylinder(h=2.0199999999999996, r1=6.0, r2=6.0, center=false, $fn=64);
            }
          }
        }
      }
      // 'main'
      multmatrix(m=[[1.0, 0.0, 0.0, -39.0], [0.0, 1.0, 0.0, -24.5], [0.0, 0.0, 1.0, -22.52], [0.0, 0.0, 0.0, 1.0]]) {
        // ('support', 0)
        multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -0.5], [0.0, 0.0, 0.0, 1.0]]) {
          // 'thru'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 0.515], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=1.03, r1=1.4, r2=1.4, center=false, $fn=36);
          }
        }
        // ('support', 0)
        multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -2.87], [0.0, 0.0, 0.0, 1.0]]) {
          // 'tap'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.905], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=3.81, r1=1.335, r2=1.335, center=false, $fn=36);
          }
        }
      }
      // 'main'
      multmatrix(m=[[1.0, 0.0, 0.0, -39.0], [0.0, 1.0, 0.0, 24.5], [0.0, 0.0, 1.0, -22.52], [0.0, 0.0, 0.0, 1.0]]) {
        // ('support', 1)
        multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -0.5], [0.0, 0.0, 0.0, 1.0]]) {
          // 'thru'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 0.515], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=1.03, r1=1.4, r2=1.4, center=false, $fn=36);
          }
        }
        // ('support', 1)
        multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -2.87], [0.0, 0.0, 0.0, 1.0]]) {
          // 'tap'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.905], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=3.81, r1=1.335, r2=1.335, center=false, $fn=36);
          }
        }
      }
      // 'main'
      multmatrix(m=[[1.0, 0.0, 0.0, 19.0], [0.0, 1.0, 0.0, -24.5], [0.0, 0.0, 1.0, -22.52], [0.0, 0.0, 0.0, 1.0]]) {
        // ('support', 2)
        multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -0.5], [0.0, 0.0, 0.0, 1.0]]) {
          // 'thru'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 0.515], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=1.03, r1=1.4, r2=1.4, center=false, $fn=36);
          }
        }
        // ('support', 2)
        multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -2.87], [0.0, 0.0, 0.0, 1.0]]) {
          // 'tap'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.905], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=3.81, r1=1.335, r2=1.335, center=false, $fn=36);
          }
        }
      }
      // 'main'
      multmatrix(m=[[1.0, 0.0, 0.0, 19.0], [0.0, 1.0, 0.0, 24.5], [0.0, 0.0, 1.0, -22.52], [0.0, 0.0, 0.0, 1.0]]) {
        // ('support', 3)
        multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -0.5], [0.0, 0.0, 0.0, 1.0]]) {
          // 'thru'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 0.515], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=1.03, r1=1.4, r2=1.4, center=false, $fn=36);
          }
        }
        // ('support', 3)
        multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -2.87], [0.0, 0.0, 0.0, 1.0]]) {
          // 'tap'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 1.905], [0.0, 0.0, 0.0, 1.0]]) {
            // 'inner'
            cylinder(h=3.81, r1=1.335, r2=1.335, center=false, $fn=36);
          }
        }
      }
      // 'main'
      multmatrix(m=[[1.0, 0.0, 0.0, 24.390000000000008], [0.0, 0.0, -1.0, 31.0], [0.0, 1.0, 0.0, -27.5], [0.0, 0.0, 0.0, 1.0]]) {
        // ('tab', 0)
        multmatrix(m=[[1.0, 1.2246467991473532e-16, 0.0, 3.21], [0.0, 0.0, 1.0, 8.0], [1.2246467991473532e-16, -1.0, 0.0, -2.9500000000000006], [0.0, 0.0, 0.0, 1.0]]) {
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -4.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'thru'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 4.015], [0.0, 0.0, 0.0, 1.0]]) {
              // 'inner'
              cylinder(h=8.03, r1=1.4, r2=1.4, center=false, $fn=36);
            }
          }
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -7.98], [0.0, 0.0, 0.0, 1.0]]) {
            // 'tap'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 0.015], [0.0, 0.0, 0.0, 1.0]]) {
              // 'inner'
              cylinder(h=0.03, r1=1.335, r2=1.335, center=false, $fn=36);
            }
          }
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'access_hole'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -1.5], [0.0, 0.0, 0.0, 1.0]]) {
              // 'access_hole'
              cylinder(h=1.5, r1=2.955, r2=2.955, center=false, $fn=36);
            }
            // 'access_hole'
            multmatrix(m=[[1.0, 0.0, 0.0, -4.440892098500626e-16], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.445], [0.0, 0.0, 0.0, 1.0]]) {
              // 'couter_sink_hole'
              color(c=[1.0, 0.0, 0.0]) {
                // 'couter_sink_hole'
                cylinder(h=2.955, r1=0.0, r2=2.955, center=false, $fn=36);
              }
            }
          }
        }
      }
      // 'main'
      multmatrix(m=[[-1.0, 0.0, 0.0, 30.81000000000001], [0.0, 0.0, 1.0, -31.0], [0.0, 1.0, 0.0, -27.5], [0.0, 0.0, 0.0, 1.0]]) {
        // ('tab', 1)
        multmatrix(m=[[1.0, 1.2246467991473532e-16, 0.0, 3.21], [0.0, 0.0, 1.0, 8.0], [1.2246467991473532e-16, -1.0, 0.0, -2.9500000000000006], [0.0, 0.0, 0.0, 1.0]]) {
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -4.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'thru'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 4.015], [0.0, 0.0, 0.0, 1.0]]) {
              // 'inner'
              cylinder(h=8.03, r1=1.4, r2=1.4, center=false, $fn=36);
            }
          }
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -7.98], [0.0, 0.0, 0.0, 1.0]]) {
            // 'tap'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 0.015], [0.0, 0.0, 0.0, 1.0]]) {
              // 'inner'
              cylinder(h=0.03, r1=1.335, r2=1.335, center=false, $fn=36);
            }
          }
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'access_hole'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -1.5], [0.0, 0.0, 0.0, 1.0]]) {
              // 'access_hole'
              cylinder(h=1.5, r1=2.955, r2=2.955, center=false, $fn=36);
            }
            // 'access_hole'
            multmatrix(m=[[1.0, 0.0, 0.0, -4.440892098500626e-16], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.445], [0.0, 0.0, 0.0, 1.0]]) {
              // 'couter_sink_hole'
              color(c=[1.0, 0.0, 0.0]) {
                // 'couter_sink_hole'
                cylinder(h=2.955, r1=0.0, r2=2.955, center=false, $fn=36);
              }
            }
          }
        }
      }
      // 'main'
      multmatrix(m=[[0.0, 0.0, 1.0, -46.0], [1.0, 0.0, 0.0, -21.810000000000002], [0.0, 1.0, 0.0, -27.5], [0.0, 0.0, 0.0, 1.0]]) {
        // ('tab', 2)
        multmatrix(m=[[1.0, 1.2246467991473532e-16, 0.0, 3.21], [0.0, 0.0, 1.0, 8.0], [1.2246467991473532e-16, -1.0, 0.0, -2.9500000000000006], [0.0, 0.0, 0.0, 1.0]]) {
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -4.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'thru'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 4.015], [0.0, 0.0, 0.0, 1.0]]) {
              // 'inner'
              cylinder(h=8.03, r1=1.4, r2=1.4, center=false, $fn=36);
            }
          }
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -7.98], [0.0, 0.0, 0.0, 1.0]]) {
            // 'tap'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 0.015], [0.0, 0.0, 0.0, 1.0]]) {
              // 'inner'
              cylinder(h=0.03, r1=1.335, r2=1.335, center=false, $fn=36);
            }
          }
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'access_hole'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -1.5], [0.0, 0.0, 0.0, 1.0]]) {
              // 'access_hole'
              cylinder(h=1.5, r1=2.955, r2=2.955, center=false, $fn=36);
            }
            // 'access_hole'
            multmatrix(m=[[1.0, 0.0, 0.0, -4.440892098500626e-16], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.445], [0.0, 0.0, 0.0, 1.0]]) {
              // 'couter_sink_hole'
              color(c=[1.0, 0.0, 0.0]) {
                // 'couter_sink_hole'
                cylinder(h=2.955, r1=0.0, r2=2.955, center=false, $fn=36);
              }
            }
          }
        }
      }
      // 'main'
      multmatrix(m=[[0.0, 0.0, 1.0, -46.0], [1.0, 0.0, 0.0, 15.39], [0.0, 1.0, 0.0, -27.5], [0.0, 0.0, 0.0, 1.0]]) {
        // ('tab', 3)
        multmatrix(m=[[1.0, 1.2246467991473532e-16, 0.0, 3.21], [0.0, 0.0, 1.0, 8.0], [1.2246467991473532e-16, -1.0, 0.0, -2.9500000000000006], [0.0, 0.0, 0.0, 1.0]]) {
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -4.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'thru'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 4.015], [0.0, 0.0, 0.0, 1.0]]) {
              // 'inner'
              cylinder(h=8.03, r1=1.4, r2=1.4, center=false, $fn=36);
            }
          }
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, -7.98], [0.0, 0.0, 0.0, 1.0]]) {
            // 'tap'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 0.0], [0.0, 0.0, -1.0, 0.015], [0.0, 0.0, 0.0, 1.0]]) {
              // 'inner'
              cylinder(h=0.03, r1=1.335, r2=1.335, center=false, $fn=36);
            }
          }
          // 'screw'
          multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, 1.0], [0.0, 0.0, 0.0, 1.0]]) {
            // 'access_hole'
            multmatrix(m=[[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -1.5], [0.0, 0.0, 0.0, 1.0]]) {
              // 'access_hole'
              cylinder(h=1.5, r1=2.955, r2=2.955, center=false, $fn=36);
            }
            // 'access_hole'
            multmatrix(m=[[1.0, 0.0, 0.0, -4.440892098500626e-16], [0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 1.0, -4.445], [0.0, 0.0, 0.0, 1.0]]) {
              // 'couter_sink_hole'
              color(c=[1.0, 0.0, 0.0]) {
                // 'couter_sink_hole'
                cylinder(h=2.955, r1=0.0, r2=2.955, center=false, $fn=36);
              }
            }
          }
        }
      }
    }
  }
  // 'bottom'
  multmatrix(m=[[1.0, 0.0, 0.0, 34.2], [0.0, 0.0, -1.0, 29.7], [0.0, -1.0, 0.0, -2.635], [0.0, 0.0, 0.0, 1.0]]) {
    // '_combine_solids_and_holes'
    difference() {
      // ('clip', 0)
      multmatrix(m=[[0.0, 0.0, 1.0, -7.5], [0.0, -1.0, 0.0, 4.75], [1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
        // 'tooth'
        linear_extrude(height=15.0, twist=0.0, scale=[1.0, 1.0]) {
          polygon(points=[[1.0, 0.0], [-0.55, 1.3], [-0.55, 1.56], [0.0, 1.9500000000000002], [0.0, 9.5], [1.5, 9.5], [3.0, 8.0], [1.0, 0.0]]);
        }
      }
      // ('clip', 0)
      multmatrix(m=[[1.0, 0.0, 0.0, -0.005], [0.0, 1.0, 0.0, 0.01], [0.0, 0.0, 1.0, 0.7599999999999998], [0.0, 0.0, 0.0, 1.0]]) {
        // '_combine_solids_and_holes'
        difference() {
          // 'clip'
          multmatrix(m=[[1.0, 0.0, 0.0, -7.515000000000001], [0.0, 1.0, 0.0, 0.7599999999999998], [0.0, 0.0, 1.0, -2.26], [0.0, 0.0, 0.0, 1.0]]) {
            // 'clip'
            cube(size=[15.025, 4.0, 4.5249999999999995]);
          }
          // 'clip'
          multmatrix(m=[[1.0, 0.0, 0.0, -0.004999999999999893], [0.0, 1.0, 0.0, -0.004999999999999893], [0.0, 0.0, 1.0, 0.004999999999999893], [0.0, 0.0, 0.0, 1.0]]) {
            // 'keep'
            multmatrix(m=[[1.0, 0.0, 0.0, -7.515], [0.0, 1.0, 0.0, -4.765], [0.0, 0.0, 1.0, -2.2649999999999997], [0.0, 0.0, 0.0, 1.0]]) {
              // 'hull'
              linear_extrude(height=4.529999999999999, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[4.0, 0.0], [11.03, 0.0], [11.422068561318243, 0.01926109331121273], [11.810361288064513, 0.07685887838707828], [12.19113870901785, 0.17223865707116426], [12.560733729460358, 0.30448186995485305], [12.915586947303991, 0.47231494260658025], [13.252280932078408, 0.6741215507898191], [13.56757313665458, 0.9079581865490525], [13.85842712474619, 1.1715728752538097], [14.122041813450947, 1.462426863345418], [14.35587844921018, 1.7777190679215913], [14.55768505739342, 2.1144130526960088], [14.725518130045145, 2.4692662705396407], [14.857761342928836, 2.838861290982151], [14.953141121612921, 3.219638711935487], [15.010738906688786, 3.607931438681757], [15.03, 3.9999999999999996], [15.03, 5.529999999999999], [15.010738906688786, 5.922068561318242], [14.953141121612921, 6.310361288064513], [14.857761342928836, 6.691138709017849], [14.725518130045147, 7.060733729460359], [14.557685057393421, 7.41558694730399], [14.35587844921018, 7.752280932078409], [14.122041813450949, 8.067573136654582], [13.85842712474619, 8.358427124746191], [13.567573136654582, 8.622041813450949], [13.25228093207841, 8.85587844921018], [12.915586947303991, 9.057685057393421], [12.56073372946036, 9.225518130045149], [12.19113870901785, 9.357761342928836], [11.810361288064513, 9.453141121612923], [11.422068561318243, 9.510738906688788], [11.03, 9.530000000000001], [4.0, 9.53], [3.6079314386817574, 9.510738906688786], [3.2196387119354877, 9.453141121612921], [2.838861290982152, 9.357761342928836], [2.4692662705396415, 9.225518130045145], [2.11441305269601, 9.05768505739342], [1.777719067921593, 8.85587844921018], [1.4624268633454198, 8.622041813450949], [1.1715728752538115, 8.35842712474619], [0.9079581865490534, 8.067573136654582], [0.67412155078982, 7.752280932078409], [0.472314942606582, 7.415586947303991], [0.3044818699548548, 7.06073372946036], [0.17223865707116648, 6.69113870901785], [0.07685887838708005, 6.310361288064515], [0.019261093311214506, 5.922068561318245], [1.7763568394002505e-15, 5.530000000000002], [0.0, 4.0], [0.019261093311212285, 3.607931438681758], [0.07685887838707828, 3.2196387119354863], [0.17223865707116426, 2.838861290982152], [0.3044818699548526, 2.4692662705396415], [0.4723149426065798, 2.114413052696009], [0.6741215507898182, 1.7777190679215922], [0.9079581865490516, 1.462426863345419], [1.1715728752538093, 1.1715728752538102], [1.4624268633454163, 0.9079581865490534], [1.7777190679215913, 0.6741215507898191], [2.1144130526960083, 0.47231494260658025], [2.469266270539639, 0.30448186995485393], [2.83886129098215, 0.1722386570711647], [3.2196387119354855, 0.07685887838707872], [3.6079314386817583, 0.019261093311212285], [3.999999999999999, 0.0]]);
              }
            }
          }
        }
      }
    }
  }
  // 'bottom'
  multmatrix(m=[[-1.0, 0.0, 0.0, 34.2], [0.0, 0.0, 1.0, -29.7], [0.0, -1.0, 0.0, -2.635], [0.0, 0.0, 0.0, 1.0]]) {
    // '_combine_solids_and_holes'
    difference() {
      // ('clip', 1)
      multmatrix(m=[[0.0, 0.0, 1.0, -7.5], [0.0, -1.0, 0.0, 4.75], [1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
        // 'tooth'
        linear_extrude(height=15.0, twist=0.0, scale=[1.0, 1.0]) {
          polygon(points=[[1.0, 0.0], [-0.55, 1.3], [-0.55, 1.56], [0.0, 1.9500000000000002], [0.0, 9.5], [1.5, 9.5], [3.0, 8.0], [1.0, 0.0]]);
        }
      }
      // ('clip', 1)
      multmatrix(m=[[1.0, 0.0, 0.0, -0.005], [0.0, 1.0, 0.0, 0.01], [0.0, 0.0, 1.0, 0.7599999999999998], [0.0, 0.0, 0.0, 1.0]]) {
        // '_combine_solids_and_holes'
        difference() {
          // 'clip'
          multmatrix(m=[[1.0, 0.0, 0.0, -7.515000000000001], [0.0, 1.0, 0.0, 0.7599999999999998], [0.0, 0.0, 1.0, -2.26], [0.0, 0.0, 0.0, 1.0]]) {
            // 'clip'
            cube(size=[15.025, 4.0, 4.5249999999999995]);
          }
          // 'clip'
          multmatrix(m=[[1.0, 0.0, 0.0, -0.004999999999999893], [0.0, 1.0, 0.0, -0.004999999999999893], [0.0, 0.0, 1.0, 0.004999999999999893], [0.0, 0.0, 0.0, 1.0]]) {
            // 'keep'
            multmatrix(m=[[1.0, 0.0, 0.0, -7.515], [0.0, 1.0, 0.0, -4.765], [0.0, 0.0, 1.0, -2.2649999999999997], [0.0, 0.0, 0.0, 1.0]]) {
              // 'hull'
              linear_extrude(height=4.529999999999999, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[4.0, 0.0], [11.03, 0.0], [11.422068561318243, 0.01926109331121273], [11.810361288064513, 0.07685887838707828], [12.19113870901785, 0.17223865707116426], [12.560733729460358, 0.30448186995485305], [12.915586947303991, 0.47231494260658025], [13.252280932078408, 0.6741215507898191], [13.56757313665458, 0.9079581865490525], [13.85842712474619, 1.1715728752538097], [14.122041813450947, 1.462426863345418], [14.35587844921018, 1.7777190679215913], [14.55768505739342, 2.1144130526960088], [14.725518130045145, 2.4692662705396407], [14.857761342928836, 2.838861290982151], [14.953141121612921, 3.219638711935487], [15.010738906688786, 3.607931438681757], [15.03, 3.9999999999999996], [15.03, 5.529999999999999], [15.010738906688786, 5.922068561318242], [14.953141121612921, 6.310361288064513], [14.857761342928836, 6.691138709017849], [14.725518130045147, 7.060733729460359], [14.557685057393421, 7.41558694730399], [14.35587844921018, 7.752280932078409], [14.122041813450949, 8.067573136654582], [13.85842712474619, 8.358427124746191], [13.567573136654582, 8.622041813450949], [13.25228093207841, 8.85587844921018], [12.915586947303991, 9.057685057393421], [12.56073372946036, 9.225518130045149], [12.19113870901785, 9.357761342928836], [11.810361288064513, 9.453141121612923], [11.422068561318243, 9.510738906688788], [11.03, 9.530000000000001], [4.0, 9.53], [3.6079314386817574, 9.510738906688786], [3.2196387119354877, 9.453141121612921], [2.838861290982152, 9.357761342928836], [2.4692662705396415, 9.225518130045145], [2.11441305269601, 9.05768505739342], [1.777719067921593, 8.85587844921018], [1.4624268633454198, 8.622041813450949], [1.1715728752538115, 8.35842712474619], [0.9079581865490534, 8.067573136654582], [0.67412155078982, 7.752280932078409], [0.472314942606582, 7.415586947303991], [0.3044818699548548, 7.06073372946036], [0.17223865707116648, 6.69113870901785], [0.07685887838708005, 6.310361288064515], [0.019261093311214506, 5.922068561318245], [1.7763568394002505e-15, 5.530000000000002], [0.0, 4.0], [0.019261093311212285, 3.607931438681758], [0.07685887838707828, 3.2196387119354863], [0.17223865707116426, 2.838861290982152], [0.3044818699548526, 2.4692662705396415], [0.4723149426065798, 2.114413052696009], [0.6741215507898182, 1.7777190679215922], [0.9079581865490516, 1.462426863345419], [1.1715728752538093, 1.1715728752538102], [1.4624268633454163, 0.9079581865490534], [1.7777190679215913, 0.6741215507898191], [2.1144130526960083, 0.47231494260658025], [2.469266270539639, 0.30448186995485393], [2.83886129098215, 0.1722386570711647], [3.2196387119354855, 0.07685887838707872], [3.6079314386817583, 0.019261093311212285], [3.999999999999999, 0.0]]);
              }
            }
          }
        }
      }
    }
  }
  // 'bottom'
  multmatrix(m=[[0.0, 0.0, 1.0, -44.7], [1.0, 0.0, 0.0, 18.6], [0.0, -1.0, 0.0, -2.635], [0.0, 0.0, 0.0, 1.0]]) {
    // '_combine_solids_and_holes'
    difference() {
      // ('clip', 2)
      multmatrix(m=[[0.0, 0.0, 1.0, -7.5], [0.0, -1.0, 0.0, 4.75], [1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
        // 'tooth'
        linear_extrude(height=15.0, twist=0.0, scale=[1.0, 1.0]) {
          polygon(points=[[1.0, 0.0], [-0.55, 1.3], [-0.55, 1.56], [0.0, 1.9500000000000002], [0.0, 9.5], [2.0, 9.5], [3.5, 8.0], [1.0, 0.0]]);
        }
      }
      // ('clip', 2)
      multmatrix(m=[[1.0, 0.0, 0.0, -0.005], [0.0, 1.0, 0.0, 0.01], [0.0, 0.0, 1.0, 0.7599999999999998], [0.0, 0.0, 0.0, 1.0]]) {
        // '_combine_solids_and_holes'
        difference() {
          // 'clip'
          multmatrix(m=[[1.0, 0.0, 0.0, -7.515000000000001], [0.0, 1.0, 0.0, 0.7599999999999998], [0.0, 0.0, 1.0, -2.76], [0.0, 0.0, 0.0, 1.0]]) {
            // 'clip'
            cube(size=[15.025, 4.0, 5.5249999999999995]);
          }
          // 'clip'
          multmatrix(m=[[1.0, 0.0, 0.0, -0.004999999999999893], [0.0, 1.0, 0.0, -0.004999999999999893], [0.0, 0.0, 1.0, 0.004999999999999893], [0.0, 0.0, 0.0, 1.0]]) {
            // 'keep'
            multmatrix(m=[[1.0, 0.0, 0.0, -7.515], [0.0, 1.0, 0.0, -4.765], [0.0, 0.0, 1.0, -2.7649999999999997], [0.0, 0.0, 0.0, 1.0]]) {
              // 'hull'
              linear_extrude(height=5.529999999999999, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[4.0, 0.0], [11.03, 0.0], [11.422068561318243, 0.01926109331121273], [11.810361288064513, 0.07685887838707828], [12.19113870901785, 0.17223865707116426], [12.560733729460358, 0.30448186995485305], [12.915586947303991, 0.47231494260658025], [13.252280932078408, 0.6741215507898191], [13.56757313665458, 0.9079581865490525], [13.85842712474619, 1.1715728752538097], [14.122041813450947, 1.462426863345418], [14.35587844921018, 1.7777190679215913], [14.55768505739342, 2.1144130526960088], [14.725518130045145, 2.4692662705396407], [14.857761342928836, 2.838861290982151], [14.953141121612921, 3.219638711935487], [15.010738906688786, 3.607931438681757], [15.03, 3.9999999999999996], [15.03, 5.529999999999999], [15.010738906688786, 5.922068561318242], [14.953141121612921, 6.310361288064513], [14.857761342928836, 6.691138709017849], [14.725518130045147, 7.060733729460359], [14.557685057393421, 7.41558694730399], [14.35587844921018, 7.752280932078409], [14.122041813450949, 8.067573136654582], [13.85842712474619, 8.358427124746191], [13.567573136654582, 8.622041813450949], [13.25228093207841, 8.85587844921018], [12.915586947303991, 9.057685057393421], [12.56073372946036, 9.225518130045149], [12.19113870901785, 9.357761342928836], [11.810361288064513, 9.453141121612923], [11.422068561318243, 9.510738906688788], [11.03, 9.530000000000001], [4.0, 9.53], [3.6079314386817574, 9.510738906688786], [3.2196387119354877, 9.453141121612921], [2.838861290982152, 9.357761342928836], [2.4692662705396415, 9.225518130045145], [2.11441305269601, 9.05768505739342], [1.777719067921593, 8.85587844921018], [1.4624268633454198, 8.622041813450949], [1.1715728752538115, 8.35842712474619], [0.9079581865490534, 8.067573136654582], [0.67412155078982, 7.752280932078409], [0.472314942606582, 7.415586947303991], [0.3044818699548548, 7.06073372946036], [0.17223865707116648, 6.69113870901785], [0.07685887838708005, 6.310361288064515], [0.019261093311214506, 5.922068561318245], [1.7763568394002505e-15, 5.530000000000002], [0.0, 4.0], [0.019261093311212285, 3.607931438681758], [0.07685887838707828, 3.2196387119354863], [0.17223865707116426, 2.838861290982152], [0.3044818699548526, 2.4692662705396415], [0.4723149426065798, 2.114413052696009], [0.6741215507898182, 1.7777190679215922], [0.9079581865490516, 1.462426863345419], [1.1715728752538093, 1.1715728752538102], [1.4624268633454163, 0.9079581865490534], [1.7777190679215913, 0.6741215507898191], [2.1144130526960083, 0.47231494260658025], [2.469266270539639, 0.30448186995485393], [2.83886129098215, 0.1722386570711647], [3.2196387119354855, 0.07685887838707872], [3.6079314386817583, 0.019261093311212285], [3.999999999999999, 0.0]]);
              }
            }
          }
        }
      }
    }
  }
  // 'bottom'
  multmatrix(m=[[0.0, 0.0, 1.0, -44.7], [1.0, 0.0, 0.0, -18.6], [0.0, -1.0, 0.0, -2.635], [0.0, 0.0, 0.0, 1.0]]) {
    // '_combine_solids_and_holes'
    difference() {
      // ('clip', 3)
      multmatrix(m=[[0.0, 0.0, 1.0, -7.5], [0.0, -1.0, 0.0, 4.75], [1.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) {
        // 'tooth'
        linear_extrude(height=15.0, twist=0.0, scale=[1.0, 1.0]) {
          polygon(points=[[1.0, 0.0], [-0.55, 1.3], [-0.55, 1.56], [0.0, 1.9500000000000002], [0.0, 9.5], [2.0, 9.5], [3.5, 8.0], [1.0, 0.0]]);
        }
      }
      // ('clip', 3)
      multmatrix(m=[[1.0, 0.0, 0.0, -0.005], [0.0, 1.0, 0.0, 0.01], [0.0, 0.0, 1.0, 0.7599999999999998], [0.0, 0.0, 0.0, 1.0]]) {
        // '_combine_solids_and_holes'
        difference() {
          // 'clip'
          multmatrix(m=[[1.0, 0.0, 0.0, -7.515000000000001], [0.0, 1.0, 0.0, 0.7599999999999998], [0.0, 0.0, 1.0, -2.76], [0.0, 0.0, 0.0, 1.0]]) {
            // 'clip'
            cube(size=[15.025, 4.0, 5.5249999999999995]);
          }
          // 'clip'
          multmatrix(m=[[1.0, 0.0, 0.0, -0.004999999999999893], [0.0, 1.0, 0.0, -0.004999999999999893], [0.0, 0.0, 1.0, 0.004999999999999893], [0.0, 0.0, 0.0, 1.0]]) {
            // 'keep'
            multmatrix(m=[[1.0, 0.0, 0.0, -7.515], [0.0, 1.0, 0.0, -4.765], [0.0, 0.0, 1.0, -2.7649999999999997], [0.0, 0.0, 0.0, 1.0]]) {
              // 'hull'
              linear_extrude(height=5.529999999999999, twist=0.0, scale=[1.0, 1.0]) {
                polygon(points=[[4.0, 0.0], [11.03, 0.0], [11.422068561318243, 0.01926109331121273], [11.810361288064513, 0.07685887838707828], [12.19113870901785, 0.17223865707116426], [12.560733729460358, 0.30448186995485305], [12.915586947303991, 0.47231494260658025], [13.252280932078408, 0.6741215507898191], [13.56757313665458, 0.9079581865490525], [13.85842712474619, 1.1715728752538097], [14.122041813450947, 1.462426863345418], [14.35587844921018, 1.7777190679215913], [14.55768505739342, 2.1144130526960088], [14.725518130045145, 2.4692662705396407], [14.857761342928836, 2.838861290982151], [14.953141121612921, 3.219638711935487], [15.010738906688786, 3.607931438681757], [15.03, 3.9999999999999996], [15.03, 5.529999999999999], [15.010738906688786, 5.922068561318242], [14.953141121612921, 6.310361288064513], [14.857761342928836, 6.691138709017849], [14.725518130045147, 7.060733729460359], [14.557685057393421, 7.41558694730399], [14.35587844921018, 7.752280932078409], [14.122041813450949, 8.067573136654582], [13.85842712474619, 8.358427124746191], [13.567573136654582, 8.622041813450949], [13.25228093207841, 8.85587844921018], [12.915586947303991, 9.057685057393421], [12.56073372946036, 9.225518130045149], [12.19113870901785, 9.357761342928836], [11.810361288064513, 9.453141121612923], [11.422068561318243, 9.510738906688788], [11.03, 9.530000000000001], [4.0, 9.53], [3.6079314386817574, 9.510738906688786], [3.2196387119354877, 9.453141121612921], [2.838861290982152, 9.357761342928836], [2.4692662705396415, 9.225518130045145], [2.11441305269601, 9.05768505739342], [1.777719067921593, 8.85587844921018], [1.4624268633454198, 8.622041813450949], [1.1715728752538115, 8.35842712474619], [0.9079581865490534, 8.067573136654582], [0.67412155078982, 7.752280932078409], [0.472314942606582, 7.415586947303991], [0.3044818699548548, 7.06073372946036], [0.17223865707116648, 6.69113870901785], [0.07685887838708005, 6.310361288064515], [0.019261093311214506, 5.922068561318245], [1.7763568394002505e-15, 5.530000000000002], [0.0, 4.0], [0.019261093311212285, 3.607931438681758], [0.07685887838707828, 3.2196387119354863], [0.17223865707116426, 2.838861290982152], [0.3044818699548526, 2.4692662705396415], [0.4723149426065798, 2.114413052696009], [0.6741215507898182, 1.7777190679215922], [0.9079581865490516, 1.462426863345419], [1.1715728752538093, 1.1715728752538102], [1.4624268633454163, 0.9079581865490534], [1.7777190679215913, 0.6741215507898191], [2.1144130526960083, 0.47231494260658025], [2.469266270539639, 0.30448186995485393], [2.83886129098215, 0.1722386570711647], [3.2196387119354855, 0.07685887838707872], [3.6079314386817583, 0.019261093311212285], [3.999999999999999, 0.0]]);
              }
            }
          }
        }
      }
    }
  }
  // 'bottom'
  multmatrix(m=[[1.0, 0.0, 0.0, 13.399999999999991], [0.0, -1.0, 0.0, 31.01], [0.0, 0.0, 1.0, -5.1], [0.0, 0.0, 0.0, 1.0]]) {
    // ('pry', 0)
    cube(size=[10.0, 1.5, 1.7]);
  }
  // 'bottom'
  multmatrix(m=[[0.0, 1.0, 0.0, -46.01], [1.0, 0.0, 0.0, -5.0], [0.0, 0.0, 1.0, -5.1], [0.0, 0.0, 0.0, 1.0]]) {
    // ('pry', 1)
    cube(size=[10.0, 1.5, 1.7]);
  }
  // 'bottom'
  multmatrix(m=[[0.0, -1.0, 0.0, 44.0], [-1.0, 0.0, 0.0, 21.699999999999996], [0.0, 0.0, -1.0, -13.64], [0.0, 0.0, 0.0, 1.0]]) {
    // (('version', 'lower'), 1)
    scale(v=[1.0, 1.0, 0.3]) {
      translate(v=[0.0, 0.0, -0.5]) {
        linear_extrude(height=1.0) {
          text(text="-648BD", size=5.0, halign="left", valign="bottom", spacing=1.0, direction="ltr");
        }
      }
    }
  }
}

openBrain

2021-10-13 14:17

developer   ~0015973

@ozzee : could you please open a new thread in our forum (per our reporting guidelines) and add link here ? Thx

chennes

2021-12-29 02:51

administrator   ~0016133

In both the SCAD and CSG files there are many empty unions -- it's not clear what their intended purpose is, but FreeCAD is not currently treating them the same way that OpenSCAD does, which leads to a divergence between the two results. I will try to figure out what OpenSCAD does with those elements.

yorik

2022-03-03 13:55

administrator   ~0017102

This ticket has been migrated to GitHub as issue 6271.

Issue History

Date Modified Username Field Change
2021-10-09 13:31 ozzee New Issue
2021-10-09 13:31 ozzee File Added: anchorcad_RaspberryPi4Case_bottom_example.csg
2021-10-09 13:31 ozzee File Added: anchorcad_RaspberryPi4Case_bottom_example.scad
2021-10-13 14:17 openBrain Status new => feedback
2021-10-13 14:17 openBrain Note Added: 0015973
2021-10-13 14:17 openBrain Tag Attached: #post-to-forum
2021-11-24 15:33 chennes Project FreeCAD => OpenSCAD
2021-12-29 02:28 chennes Assigned To => chennes
2021-12-29 02:28 chennes Status feedback => assigned
2021-12-29 02:51 chennes Note Added: 0016133
2021-12-29 02:54 chennes Status assigned => confirmed