diff --git a/README.md b/README.md
index 3a22c79..a07c965 100644
--- a/README.md
+++ b/README.md
@@ -33,4 +33,9 @@ There has been no methodical V&V on this converter; use at your own risk!
There are several known and many unknown limitations of this tool. It is in a
preliminary state and subject to considerable redesign, including the addition
-of a backend for other CAD engines.
\ No newline at end of file
+of a backend for other CAD engines.
+
+Specific Limitations:
+
+ - general Cones are not handled
+ - Torii are required to have a single minor radius, OpenMC allows for different minor radii orthogonal to the toroidal axis
\ No newline at end of file
diff --git a/src/openmc_cad_adapter/cubit_util.py b/src/openmc_cad_adapter/cubit_util.py
new file mode 100644
index 0000000..81be7a0
--- /dev/null
+++ b/src/openmc_cad_adapter/cubit_util.py
@@ -0,0 +1,28 @@
+_CUBIT_ID = 1
+
+
+def reset_cubit_ids():
+ global _CUBIT_ID
+ _CUBIT_ID = 1
+
+
+def lastid():
+ global _CUBIT_ID
+ id_out = _CUBIT_ID
+ _CUBIT_ID += 1
+ return id_out
+
+
+def new_variable():
+ idn = lastid()
+ return f"id{idn}"
+
+
+def emit_get_last_id(type="body", cmds=None):
+ idn = lastid()
+ ids = f"id{idn}"
+ if cmds is not None:
+ cmds.append(f'#{{ {ids} = Id("{type}") }}')
+ else:
+ print('Warning: cmds is None')
+ return ids
diff --git a/src/openmc_cad_adapter/geom_util.py b/src/openmc_cad_adapter/geom_util.py
new file mode 100644
index 0000000..d54785a
--- /dev/null
+++ b/src/openmc_cad_adapter/geom_util.py
@@ -0,0 +1,42 @@
+import math
+import numpy as np
+
+def vector_to_euler_xyz(v):
+ v = np.asarray(v)
+ v /= np.linalg.norm(v)
+
+ x, y, z = v
+
+ xy_norm = math.sqrt(x**2 + y**2)
+
+ theta = np.arctan2(z, xy_norm)
+ # if z component is zero, vector is in the xy plane
+ if z == 0:
+ theta = np.pi / 2
+ phi = np.arctan2(y, x)
+
+ # Ensure angles are within [0, 2*pi] range
+ phi %= (2 * math.pi)
+ theta %= (2 * math.pi)
+
+ oe = 180 / math.pi
+ return phi * oe, theta * oe, 0.0
+
+
+def rotate(id, x, y, z, cmds):
+ if nonzero(x, y, z):
+ phi, theta, psi = vector_to_euler_xyz((x, y, z))
+ cmds.append(f"body {{ {id} }} rotate {theta} about Y")
+ cmds.append(f"body {{ {id} }} rotate {phi} about Z")
+ # cmds.append(f"body {{ {id} }} rotate {phi} about Z")
+ # cmds.append(f"body {{ {id} }} rotate {theta} about Y")
+ # cmds.append(f"body {{ {id} }} rotate {psi} about X")
+
+
+def nonzero(*args):
+ return any(arg != 0 for arg in args)
+
+
+def move( id, x, y, z, cmds):
+ if nonzero( x, y, z ):
+ cmds.append(f"body {{ {id} }} move {x} {y} {z}")
\ No newline at end of file
diff --git a/src/openmc_cad_adapter/gqs.py b/src/openmc_cad_adapter/gqs.py
new file mode 100644
index 0000000..585489c
--- /dev/null
+++ b/src/openmc_cad_adapter/gqs.py
@@ -0,0 +1,136 @@
+import numpy as np
+
+
+ELLIPSOID = 1
+ONE_SHEET_HYPERBOLOID = 2
+TWO_SHEET_HYPERBOLOID = 3
+ELLIPTIC_CONE = 4
+ELLIPTIC_PARABOLOID = 5
+HYPERBOLIC_PARABOLOID = 6
+ELLIPTIC_CYLINDER = 7
+HYPERBOLIC_CYLINDER = 8
+PARABOLIC_CYLINDER = 9
+
+
+def characterize_general_quadratic( surface ): #s surface
+ gq_tol = 1e-6
+ equivalence_tol = 1e-8
+ a = surface.coefficients['a']
+ b = surface.coefficients['b']
+ c = surface.coefficients['c']
+ d = surface.coefficients['d']
+ e = surface.coefficients['e']
+ f = surface.coefficients['f']
+ g = surface.coefficients['g']
+ h = surface.coefficients['h']
+ j = surface.coefficients['j']
+ k = surface.coefficients['k']
+ #coefficient matrix
+ Aa = np.matrix([
+ [a, d/2, f/2],
+ [d/2, b, e/2],
+ [f/2, e/2, c]])
+ #hessian matrix
+ Ac = np.matrix([
+ [a, d/2, f/2, g/2],
+ [d/2, b, e/2, h/2],
+ [f/2, e/2, c, j/2],
+ [g/2, h/2, j/2, k]])
+ rank_Aa = matrix_rank( Aa )
+ rank_Ac = matrix_rank( Ac )
+
+ det_Ac = np.linalg.det(Ac)
+ if np.abs( det_Ac ) < gq_tol:
+ delta = 0
+ else:
+ delta = -1 if det_Ac < 0 else -1
+ eigen_results = np.linalg.eig(Aa);
+ signs = np.array([ 0, 0, 0 ])
+ for i in range( 0, 3 ):
+ if eigen_results.eigenvalues[ i ] > -1 * gq_tol:
+ signs[i] = 1
+ else:
+ signs[i] = -1
+
+ S = 1 if np.abs( signs.sum() ) == 3 else -1
+
+ B = np.array([[ -g/2], [-h/2], [-j/2 ]])
+
+ Aai = np.linalg.pinv( Aa )
+
+ C = Aai * B
+
+ dx = C[0]
+ dy = C[1]
+ dz = C[2]
+
+ #Update the constant using the resulting translation
+ K_ = k + g/2*dx + h/2*dy + j/2*dz
+
+ if rank_Aa == 2 and rank_Ac == 3 and S == 1:
+ delta = -1 if K_ * signs[0] else 1
+
+ D = -1 if K_ * signs[0] else 1
+
+
+ def find_type( rAa, rAc, delta, S, D ):
+ if 3 == rAa and 4 == rAc and -1 == delta and 1 == S:
+ return ELLIPSOID
+ elif 3 == rAa and 4 == rAc and 1 == delta and -1 == S:
+ return ONE_SHEET_HYPERBOLOID
+ elif 3 == rAa and 4 == rAc and -1 == delta and -1 == S:
+ return TWO_SHEET_HYPERBOLOID
+ elif 3 == rAa and 3 == rAc and 0 == delta and -1 == S:
+ return ELLIPTIC_CONE
+ elif 2 == rAa and 4 == rAc and -1 == delta and 1 == S:
+ return ELLIPTIC_PARABOLOID
+ elif 2 == rAa and 4 == rAc and 1 == delta and -1 == S:
+ return HYPERBOLIC_PARABOLOID
+ elif 2 == rAa and 3 == rAc and -1 == delta and 1 == S:
+ return ELLIPTIC_CYLINDER
+ elif 2 == rAa and 3 == rAc and 0 == delta and -1 == S:
+ return HYPERBOLIC_CYLINDER
+ elif 2 == rAa and 3 == rAc and 0 == delta and 1 == S:
+ return PARABOLIC_CYLINDER
+ elif 2 == rAa and 3 == rAc and 1 == S and D != 0 :
+ return find_type( rAa, rAc, D, S, 0 )
+ else:
+ raise "UNKNOWN QUADRATIC"
+
+ gq_type = find_type( rank_Aa, rank_Ac, delta, S, D )
+
+ #set the translation
+ translation = C
+
+ rotation_matrix = eigen_results.eigenvectors
+ eigenvalues = eigen_results.eigenvalues
+
+ for i in range( 0, 3 ):
+ if abs(eigenvalues[i]) < gq_tol:
+ eigenvalues[i] = 0
+
+ A_ = eigenvalues[0]
+ B_ = eigenvalues[1]
+ C_ = eigenvalues[2];
+ D_ = 0; E_ = 0; F_ = 0;
+ G_ = 0; H_ = 0; J_ = 0;
+ if gq_type == ONE_SHEET_HYPERBOLOID:
+ if abs( K_) < equivalence_tol:
+ K_ = 0
+ return ELLIPTIC_CONE
+ if gq_type == TWO_SHEET_HYPERBOLOID:
+ if abs( K_) < equivalence_tol:
+ K_ = 0
+ return ELLIPTIC_CONE
+ if gq_type == ELLIPSOID:
+ if abs( A_) < equivalence_tol:
+ A_ = 0
+ return ELLIPTIC_CYLINDER
+ elif abs( B_) < equivalence_tol:
+ B_ = 0
+ return ELLIPTIC_CYLINDER
+ elif abs( C_) < equivalence_tol:
+ C_ = 0
+ return ELLIPTIC_CYLINDER
+ else:
+ return (gq_type, A_, B_, C_, K_, translation, rotation_matrix)
\ No newline at end of file
diff --git a/src/openmc_cad_adapter/surfaces.py b/src/openmc_cad_adapter/surfaces.py
new file mode 100644
index 0000000..71c3d27
--- /dev/null
+++ b/src/openmc_cad_adapter/surfaces.py
@@ -0,0 +1,436 @@
+from abc import ABC, abstractmethod
+import sys
+import math
+import warnings
+
+import numpy as np
+import openmc
+
+from .cubit_util import emit_get_last_id, lastid
+from .geom_util import move, rotate
+
+def indent(indent_size):
+ return ' ' * (2*indent_size)
+
+
+class CADSurface(ABC):
+
+ def to_cubit_surface(self, ent_type, node, extents, inner_world=None, hex=False):
+ ids, cmds = self.to_cubit_surface_inner(ent_type, node, extents, inner_world, hex)
+ # TODO: Add boundary condition to the correct surface(s)
+ # cmds += self.boundary_condition(ids)
+ return ids, cmds
+
+ @abstractmethod
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ raise NotImplementedError
+
+ def boundary_condition(self, cad_surface_ids):
+ if self.boundary_type == 'transmission':
+ return []
+ cmds = []
+ cmds.append(f'group \"boundary:{self.boundary_type}\" add surface {cad_surface_ids[2:]}')
+ return cmds
+
+ @classmethod
+ def from_openmc_surface(cls, surface):
+ with warnings.catch_warnings() as w:
+ warnings.simplefilter("ignore")
+ return cls.from_openmc_surface_inner(surface)
+
+ @classmethod
+ @abstractmethod
+ def from_openmc_surface_inner(cls, surface):
+ raise NotImplementedError
+
+
+class CADPlane(CADSurface, openmc.Plane):
+
+ @staticmethod
+ def lreverse(node):
+ return "" if node.side == '-' else "reverse"
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cmds = []
+
+ n = np.array([self.coefficients[k] for k in ('a', 'b', 'c')])
+ cd = self.coefficients['d']
+ maxv = sys.float_info.min
+ for i, v in enumerate(n):
+ if abs(v) > maxv:
+ maxv = v
+
+ ns = cd * n
+
+ cmds.append( f"create surface rectangle width { 2*extents[0] } zplane")
+ sur, cmd = emit_get_last_id( "surface" )
+ cmds.append(cmd)
+ surf, cmd = emit_get_last_id( "body" )
+
+ n = n/np.linalg.norm(n)
+ ns = cd * n
+ zn = np.array([ 0, 0, 1 ])
+ n3 = np.cross(n, zn)
+ dot = np.dot(n, zn)
+ cmds.append(f"# n3 {n3[0]} {n3[1]} {n3[2]}")
+ degs = math.degrees(math.acos(np.dot(n, zn)))
+ y = np.linalg.norm(n3)
+ x = dot
+ angle = - math.degrees(math.atan2( y, x ))
+ if n3[0] != 0 or n3[1] != 0 or n3[2] != 0:
+ cmds.append(f"Rotate body {{ {surf} }} about 0 0 0 direction {n3[0]} {n3[1]} {n3[2]} Angle {angle}")
+ cmds.append(f"body {{ { surf } }} move {ns[0]} {ns[1]} {ns[2]}")
+ cmds.append(f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
+ ids = emit_get_last_id( ent_type )
+ cmds.append(f"section body {{ {ids} }} with surface {{ {sur} }} {self.lreverse(node)}")
+ cmds.append(f"del surface {{ {sur} }}")
+
+ cmds += self.boundary_condition(ids)
+ return ids, cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, plane):
+ return cls(plane.a, plane.b, plane.c, plane.d, plane.boundary_type, plane.albedo, plane.name, plane.id)
+
+
+class CADXPlane(CADSurface, openmc.XPlane):
+
+ @staticmethod
+ def reverse(node):
+ return "reverse" if node.side == '-' else ""
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cad_cmds = []
+ cad_cmds.append(f"brick x {extents[0]} y {extents[1]} z {extents[2]}")
+ ids = emit_get_last_id( ent_type, cad_cmds)
+ cad_cmds.append(f"section body {{ {ids} }} with xplane offset {self.coefficients['x0']} {self.reverse(node)}")
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, plane):
+ return cls(x0=plane.x0, boundary_type=plane.boundary_type, albedo=plane.albedo, name=plane.name, surface_id=plane.id)
+
+
+class CADYPlane(CADSurface, openmc.YPlane):
+
+ @staticmethod
+ def reverse(node):
+ return "reverse" if node.side == '-' else ""
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cad_cmds = []
+ cad_cmds.append(f"brick x {extents[0]} y {extents[1]} z {extents[2]}")
+ ids = emit_get_last_id( ent_type, cad_cmds)
+ cad_cmds.append(f"section body {{ {ids} }} with yplane offset {self.coefficients['y0']} {self.reverse(node)}")
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, plane):
+ return cls(y0=plane.y0, boundary_type=plane.boundary_type, albedo=plane.albedo, name=plane.name, surface_id=plane.id)
+
+
+class CADZPlane(CADSurface, openmc.ZPlane):
+
+ @staticmethod
+ def reverse(node):
+ return "reverse" if node.side == '-' else ""
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cad_cmds = []
+ cad_cmds.append(f"brick x {extents[0]} y {extents[1]} z {extents[2]}")
+ ids = emit_get_last_id( ent_type, cad_cmds)
+ cad_cmds.append(f"section body {{ {ids} }} with zplane offset {self.coefficients['z0']} {self.reverse(node)}")
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, plane):
+ return cls(z0=plane.z0, boundary_type=plane.boundary_type, albedo=plane.albedo, name=plane.name, surface_id=plane.id)
+
+class CADCylinder(CADSurface, openmc.Cylinder):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ print('XCADCylinder to cubit surface')
+ cad_cmds = []
+ h = inner_world[2] if inner_world else extents[2]
+ cad_cmds.append(f"cylinder height {h} radius {self.r}")
+ ids = emit_get_last_id(cmds=cad_cmds)
+ if node.side != '-':
+ wid = 0
+ if inner_world:
+ if hex:
+ cad_cmds.append(f"create prism height {inner_world[2]} sides 6 radius { ( inner_world[0] / 2 ) }")
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append(f"rotate body {{ {wid} }} about z angle 30")
+ else:
+ cad_cmds.append(f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}")
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ else:
+ cad_cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append( f"subtract body {{ { ids } }} from body {{ { wid } }}" )
+ rotate( wid, self.dx, self.dy, self.dz, cad_cmds)
+ move( wid, self.x0, self.y0, self.z0, cad_cmds)
+ return wid, cad_cmds
+ rotate( ids, self.dx, self.dy, self.dz, cad_cmds)
+ move( ids, self.x0, self.y0, self.z0, cad_cmds)
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, cyl):
+ return cls(r=cyl.r, x0=cyl.x0, y0=cyl.y0, z0=cyl.z0, dx=cyl.dx, dy=cyl.dy, dz=cyl.dz,
+ boundary_type=cyl.boundary_type, albedo=cyl.albedo, name=cyl.name, surface_id=cyl.id)
+
+class CADXCylinder(CADSurface, openmc.XCylinder):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cad_cmds = []
+ h = inner_world[0] if inner_world else extents[0]
+ cad_cmds.append( f"cylinder height {h} radius {self.r}")
+ ids = emit_get_last_id( ent_type , cad_cmds)
+ cad_cmds.append(f"rotate body {{ {ids} }} about y angle 90")
+ if node.side != '-':
+ wid = 0
+ if inner_world:
+ if hex:
+ cad_cmds.append(f"create prism height {inner_world[2]} sides 6 radius { ( inner_world[0] / 2 ) }")
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append(f"rotate body {{ {wid} }} about z angle 30")
+ cad_cmds.append(f"rotate body {{ {wid} }} about y angle 90")
+ else:
+ cad_cmds.append(f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}")
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ else:
+ cad_cmds.append( f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
+ wid = emit_get_last_id( ent_type , cad_cmds)
+ cad_cmds.append(f"subtract body {{ { ids } }} from body {{ { wid } }}")
+ move(wid, 0, self.y0, self.z0, cad_cmds)
+ return wid, cad_cmds
+ move(ids, 0, self.y0, self.z0, cad_cmds)
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, cyl):
+ return cls(r=cyl.r, y0=cyl.y0, z0=cyl.z0, boundary_type=cyl.boundary_type, albedo=cyl.albedo, name=cyl.name, surface_id=cyl.id)
+
+
+class CADYCylinder(CADSurface, openmc.YCylinder):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cad_cmds = []
+ h = inner_world[1] if inner_world else extents[1]
+ cad_cmds.append( f"cylinder height {h} radius {self.r}")
+ ids = emit_get_last_id( ent_type , cad_cmds)
+ cad_cmds.append(f"rotate body {{ {ids} }} about x angle 90")
+ if node.side != '-':
+ wid = 0
+ if inner_world:
+ if hex:
+ cad_cmds.append(f"create prism height {inner_world[2]} sides 6 radius { ( inner_world[0] / 2 ) }")
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append(f"rotate body {{ {wid} }} about z angle 30")
+ cad_cmds.append(f"rotate body {{ {wid} }} about x angle 90")
+ else:
+ cad_cmds.append(f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}")
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ else:
+ cad_cmds.append( f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
+ wid = emit_get_last_id( ent_type , cad_cmds)
+ cad_cmds.append(f"subtract body {{ { ids } }} from body {{ { wid } }}")
+ move(wid, self.x0, 0, self.z0, cad_cmds)
+ return wid, cad_cmds
+ move(ids, self.x0, 0, self.z0, cad_cmds)
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, cyl):
+ return cls(r=cyl.r, x0=cyl.x0, z0=cyl.z0, boundary_type=cyl.boundary_type, albedo=cyl.albedo, name=cyl.name, surface_id=cyl.id)
+
+
+class CADZCylinder(CADSurface, openmc.ZCylinder):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cad_cmds = []
+ h = inner_world[2] if inner_world else extents[2]
+ cad_cmds.append( f"cylinder height {h} radius {self.r}")
+ ids = emit_get_last_id( ent_type , cad_cmds)
+ if node.side != '-':
+ wid = 0
+ if inner_world:
+ if hex:
+ cad_cmds.append(f"create prism height {inner_world[2]} sides 6 radius { ( inner_world[0] / 2 ) }")
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append(f"rotate body {{ {wid} }} about z angle 30")
+ else:
+ cad_cmds.append(f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}")
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ else:
+ cad_cmds.append( f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
+ wid = emit_get_last_id( ent_type , cad_cmds)
+ cad_cmds.append(f"subtract body {{ { ids } }} from body {{ { wid } }}")
+ move(wid, self.x0, self.y0, 0, cad_cmds)
+ return wid, cad_cmds
+ move(ids, self.x0, self.y0, 0, cad_cmds)
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, cyl):
+ return cls(r=cyl.r, x0=cyl.x0, y0=cyl.y0, boundary_type=cyl.boundary_type, albedo=cyl.albedo, name=cyl.name, surface_id=cyl.id)
+
+
+class CADSphere(CADSurface, openmc.Sphere):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cad_cmds = []
+ cad_cmds.append( f"sphere redius {self.r}")
+ ids = emit_get_last_id(ent_type, cad_cmds)
+ move(ids, self.x0, self.y0, self.z0, cad_cmds)
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, sphere):
+ return cls(r=sphere.r, x0=sphere.x0, y0=sphere.y0, z0=sphere.z0, boundary_type=sphere.boundary_type, albedo=sphere.albedo, name=sphere.name, surface_id=sphere.id)
+
+class CADCone(CADSurface):
+
+ def to_cubit_surface(self, ent_type, node, extents, inner_world=None, hex=False):
+ raise NotImplementedError('General Cones are not yet supported')
+
+ @classmethod
+ def from_openmc_surface(cls, surface):
+ raise NotImplementedError('General Cones are not yet supported')
+
+class CADXCone(CADSurface, openmc.XCone):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cad_cmds = []
+ cad_cmds.append( f"create frustum height {extents[0]} radius {math.sqrt(self.coefficients['r2']*extents[0])} top 0")
+ ids = emit_get_last_id( ent_type , cad_cmds)
+ cad_cmds.append( f"rotate body {{ {ids} }} about y angle 90")
+ if node.side != '-':
+ cad_cmds.append( f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
+ wid = emit_get_last_id( ent_type , cad_cmds)
+ cad_cmds.append(f"subtract body {{ {ids} }} from body {{ {wid} }}")
+ move(wid, self.coefficients['x0'], self.coefficients['y0'], self.coefficients['z0'], cad_cmds)
+ ids = wid
+ else:
+ move(ids, self.coefficients['x0'], self.coefficients['y0'], self.coefficients['z0'], cad_cmds)
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, surface):
+ return cls(x0=surface.x0, y0=surface.y0, z0=surface.z0, r2=surface.r2, boundary_type=surface.boundary_type, albedo=surface.albedo, name=surface.name, surface_id=surface.id)
+
+
+class CADYCone(CADSurface, openmc.YCone):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cad_cmds = []
+ cad_cmds.append( f"create frustum height {extents[1]} radius {math.sqrt(self.coefficients['r2']*extents[1])} top 0")
+ ids = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append( f"rotate body {{ {ids} }} about x angle 90")
+ if node.side != '-':
+ cad_cmds.append( f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append(f"subtract body {{ {ids} }} from body {{ {wid} }}")
+ move(wid, self.coefficients['x0'], self.coefficients['y0'], self.coefficients['z0'], cad_cmds)
+ ids = wid
+ else:
+ move(ids, self.coefficients['x0'], self.coefficients['y0'], self.coefficients['z0'], cad_cmds)
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, surface):
+ return cls(x0=surface.x0, y0=surface.y0, z0=surface.z0, r2=surface.r2, boundary_type=surface.boundary_type, albedo=surface.albedo, name=surface.name, surface_id=surface.id)
+
+
+class CADZCone(CADSurface, openmc.ZCone):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ cad_cmds = []
+ cad_cmds.append( f"create frustum height {extents[2]} radius {math.sqrt(self.coefficients['r2']*extents[2])} top 0")
+ ids = emit_get_last_id(ent_type, cad_cmds)
+ if node.side != '-':
+ cad_cmds.append( f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
+ wid = emit_get_last_id(ent_type , cad_cmds)
+ cad_cmds.append(f"subtract body {{ {ids} }} from body {{ {wid} }}")
+ move(wid, self.coefficients['x0'], self.coefficients['y0'], self.coefficients['z0'], cad_cmds)
+ ids = wid
+ else:
+ move(ids, self.coefficients['x0'], self.coefficients['y0'], self.coefficients['z0'], cad_cmds)
+ return ids, cad_cmds
+
+ @classmethod
+ def from_openmc_surface_inner(cls, surface):
+ return cls(x0=surface.x0, y0=surface.y0, z0=surface.z0, r2=surface.r2, boundary_type=surface.boundary_type, albedo=surface.albedo, name=surface.name, surface_id=surface.id)
+
+
+class CADTorus(CADSurface):
+
+ def check_coeffs(self):
+ if self.b != self.c:
+ raise ValueError("Only torri with constant minor radii are supported")
+
+ @classmethod
+ def from_openmc_surface_inner(cls, surface):
+ return cls(x0=surface.x0, y0=surface.y0, z0=surface.z0, a=surface.a, b=surface.b, c=surface.c, boundary_type=surface.boundary_type, albedo=surface.albedo, name=surface.name, surface_id=surface.id)
+
+class CADXTorus(CADTorus, openmc.XTorus):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ self.check_coeffs()
+ cad_cmds = []
+ cad_cmds.append( f"torus major radius {self.a} minor radius {self.b}" )
+ ids = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append( f"rotate body {{ {ids} }} about y angle 90")
+ if node.side != '-':
+ cad_cmds.append( f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append(f"subtract body {{ {ids} }} from body {{ {wid} }}")
+ move(wid, self.x0, self.y0, self.z0, cad_cmds)
+ ids = wid
+ else:
+ move(ids, self.x0, self.y0, self.z0, cad_cmds)
+ return ids, cad_cmds
+
+
+
+class CADYTorus(CADTorus, openmc.YTorus):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ self.check_coeffs()
+ cad_cmds = []
+ cad_cmds.append( f"torus major radius {self.a} minor radius {self.b}" )
+ ids = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append( f"rotate body {{ {ids} }} about x angle 90")
+ if node.side != '-':
+ cad_cmds.append( f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append(f"subtract body {{ {ids} }} from body {{ {wid} }}")
+ move(wid, self.x0, self.y0, self.z0, cad_cmds)
+ ids = wid
+ else:
+ move(ids, self.x0, self.y0, self.z0, cad_cmds)
+ return ids, cad_cmds
+
+
+class CADZTorus(CADTorus, openmc.ZTorus):
+
+ def to_cubit_surface_inner(self, ent_type, node, extents, inner_world=None, hex=False):
+ self.check_coeffs()
+ cad_cmds = []
+ cad_cmds.append( f"torus major radius {self.a} minor radius {self.b}" )
+ ids = emit_get_last_id(ent_type, cad_cmds)
+ if node.side != '-':
+ cad_cmds.append( f"brick x {extents[0]} y {extents[1]} z {extents[2]}" )
+ wid = emit_get_last_id(ent_type, cad_cmds)
+ cad_cmds.append(f"subtract body {{ {ids} }} from body {{ {wid} }}")
+ move(wid, self.x0, self.y0, self.z0, cad_cmds)
+ ids = wid
+ else:
+ move(ids, self.x0, self.y0, self.z0, cad_cmds)
+ return ids, cad_cmds
+
+
+_CAD_SURFACES = [CADPlane, CADXPlane, CADYPlane, CADZPlane, CADCylinder, CADXCylinder, CADYCylinder, CADZCylinder, CADSphere, CADXCone, CADYCone, CADZCone, CADXTorus, CADYTorus, CADZTorus]
+
+_CAD_SURFACE_DICTIONARY = {s._type: s for s in _CAD_SURFACES}
\ No newline at end of file
diff --git a/src/openmc_cad_adapter/to_cubit_journal.py b/src/openmc_cad_adapter/to_cubit_journal.py
index cf92ae6..83cec4e 100644
--- a/src/openmc_cad_adapter/to_cubit_journal.py
+++ b/src/openmc_cad_adapter/to_cubit_journal.py
@@ -4,6 +4,7 @@
from numbers import Real
from pathlib import Path
import sys
+import warnings
from numpy.linalg import matrix_rank
import numpy as np
@@ -17,140 +18,11 @@
from openmc.surface import Halfspace, Quadric
from openmc.lattice import Lattice, HexLattice
+from .gqs import characterize_general_quadratic
+from .cubit_util import emit_get_last_id, reset_cubit_ids, new_variable
+from .geom_util import rotate, move
-ELLIPSOID = 1
-ONE_SHEET_HYPERBOLOID = 2
-TWO_SHEET_HYPERBOLOID = 3
-ELLIPTIC_CONE = 4
-ELLIPTIC_PARABOLOID = 5
-HYPERBOLIC_PARABOLOID = 6
-ELLIPTIC_CYLINDER = 7
-HYPERBOLIC_CYLINDER = 8
-PARABOLIC_CYLINDER = 9
-
-def characterize_general_quadratic( surface ): #s surface
- gq_tol = 1e-6
- equivalence_tol = 1e-8
- a = surface.coefficients['a']
- b = surface.coefficients['b']
- c = surface.coefficients['c']
- d = surface.coefficients['d']
- e = surface.coefficients['e']
- f = surface.coefficients['f']
- g = surface.coefficients['g']
- h = surface.coefficients['h']
- j = surface.coefficients['j']
- k = surface.coefficients['k']
- #coefficient matrix
- Aa = np.matrix([
- [a, d/2, f/2],
- [d/2, b, e/2],
- [f/2, e/2, c]])
- #hessian matrix
- Ac = np.matrix([
- [a, d/2, f/2, g/2],
- [d/2, b, e/2, h/2],
- [f/2, e/2, c, j/2],
- [g/2, h/2, j/2, k]])
- rank_Aa = matrix_rank( Aa )
- rank_Ac = matrix_rank( Ac )
-
- det_Ac = np.linalg.det(Ac)
- if np.abs( det_Ac ) < gq_tol:
- delta = 0
- else:
- delta = -1 if det_Ac < 0 else -1
- eigen_results = np.linalg.eig(Aa);
- signs = np.array([ 0, 0, 0 ])
- for i in range( 0, 3 ):
- if eigen_results.eigenvalues[ i ] > -1 * gq_tol:
- signs[i] = 1
- else:
- signs[i] = -1
-
- S = 1 if np.abs( signs.sum() ) == 3 else -1
-
- B = np.array([[ -g/2], [-h/2], [-j/2 ]])
-
- Aai = np.linalg.pinv( Aa )
-
- C = Aai * B
-
- dx = C[0]
- dy = C[1]
- dz = C[2]
-
- #Update the constant using the resulting translation
- K_ = k + g/2*dx + h/2*dy + j/2*dz
-
- if rank_Aa == 2 and rank_Ac == 3 and S == 1:
- delta = -1 if K_ * signs[0] else 1
-
- D = -1 if K_ * signs[0] else 1
-
-
- def find_type( rAa, rAc, delta, S, D ):
- if 3 == rAa and 4 == rAc and -1 == delta and 1 == S:
- return ELLIPSOID
- elif 3 == rAa and 4 == rAc and 1 == delta and -1 == S:
- return ONE_SHEET_HYPERBOLOID
- elif 3 == rAa and 4 == rAc and -1 == delta and -1 == S:
- return TWO_SHEET_HYPERBOLOID
- elif 3 == rAa and 3 == rAc and 0 == delta and -1 == S:
- return ELLIPTIC_CONE
- elif 2 == rAa and 4 == rAc and -1 == delta and 1 == S:
- return ELLIPTIC_PARABOLOID
- elif 2 == rAa and 4 == rAc and 1 == delta and -1 == S:
- return HYPERBOLIC_PARABOLOID
- elif 2 == rAa and 3 == rAc and -1 == delta and 1 == S:
- return ELLIPTIC_CYLINDER
- elif 2 == rAa and 3 == rAc and 0 == delta and -1 == S:
- return HYPERBOLIC_CYLINDER
- elif 2 == rAa and 3 == rAc and 0 == delta and 1 == S:
- return PARABOLIC_CYLINDER
- elif 2 == rAa and 3 == rAc and 1 == S and D != 0 :
- return find_type( rAa, rAc, D, S, 0 )
- else:
- raise "UNKNOWN QUADRATIC"
-
- gq_type = find_type( rank_Aa, rank_Ac, delta, S, D )
-
- #set the translation
- translation = C
-
- rotation_matrix = eigen_results.eigenvectors
- eigenvalues = eigen_results.eigenvalues
-
- for i in range( 0, 3 ):
- if abs(eigenvalues[i]) < gq_tol:
- eigenvalues[i] = 0
-
- A_ = eigenvalues[0]
- B_ = eigenvalues[1]
- C_ = eigenvalues[2];
- D_ = 0; E_ = 0; F_ = 0;
- G_ = 0; H_ = 0; J_ = 0;
- if gq_type == ONE_SHEET_HYPERBOLOID:
- if abs( K_) < equivalence_tol:
- K_ = 0
- return ELLIPTIC_CONE
- if gq_type == TWO_SHEET_HYPERBOLOID:
- if abs( K_) < equivalence_tol:
- K_ = 0
- return ELLIPTIC_CONE
- if gq_type == ELLIPSOID:
- if abs( A_) < equivalence_tol:
- A_ = 0
- return ELLIPTIC_CYLINDER
- elif abs( B_) < equivalence_tol:
- B_ = 0
- return ELLIPTIC_CYLINDER
- elif abs( C_) < equivalence_tol:
- C_ = 0
- return ELLIPTIC_CYLINDER
- else:
- return ( gq_type, A_, B_, C_, K_, translation, rotation_matrix )
-
+from .surfaces import _CAD_SURFACE_DICTIONARY
def flatten(S):
if S == []:
@@ -160,21 +32,6 @@ def flatten(S):
return S[:1] + flatten(S[1:])
-def vector_to_euler_xyz(v):
- x, y, z = v
- phi = math.atan2(z, x)
- theta = math.acos(x / math.sqrt(x**2 + y**2))
- psi = math.atan2(y * math.cos(theta), x)
-
- # Ensure angles are within [0, 2*pi] range
- phi %= (2 * math.pi)
- theta %= (2 * math.pi)
- psi %= (2 * math.pi)
-
- oe = 180 / math.pi
- return phi * oe, theta * oe, psi * oe
-
-
def to_cubit_journal(geometry : openmc.Geometry, world : Iterable[Real] = None,
cells: Iterable[int, openmc.Cell] = None,
filename: str = "openmc.jou",
@@ -200,6 +57,7 @@ def to_cubit_journal(geometry : openmc.Geometry, world : Iterable[Real] = None,
Internal parameter.
"""
+ reset_cubit_ids()
if not filename.endswith('.jou'):
filename += '.jou'
@@ -222,7 +80,7 @@ def to_cubit_journal(geometry : openmc.Geometry, world : Iterable[Real] = None,
bbox = geometry.bounding_box
if not all(np.isfinite(bbox[0])) or not all(np.isfinite(bbox[1])):
raise RuntimeError('Model bounds were not provided and the bounding box determined by OpenMC is not finite.'
- 'Please provide a world size argument to proceed')
+ ' Please provide a world size argument to proceed')
# to ensure that the box
box_max = np.max(np.abs(bbox[0], bbox[1]).T)
world_size = (2 * box_max, 2 * box_max, 2 * box_max)
@@ -231,12 +89,7 @@ def to_cubit_journal(geometry : openmc.Geometry, world : Iterable[Real] = None,
raise RuntimeError("Model extents could not be determined automatically and must be provided manually")
w = world
- cid = 1
- def lastid():
- nonlocal cid
- id = cid
- cid = cid + 1
- return id
+
cmds = []
cmds.extend( [
"set graphics off",
@@ -246,301 +99,26 @@ def lastid():
#"set info off",
#"set warning off",
])
- def python_cmd(s):
- cmds.append(s)
def cubit_cmd(s):
cmds.append(s)
- def new_variable():
- idn = lastid()
- return f"id{idn}"
-
- def emit_get_last_id(type="body"):
- idn = lastid()
- ids = f"id{idn}"
- python_cmd(f'#{{ {ids} = Id("{type}") }}')
- return ids
-
- def rotate(id, x, y, z):
- if nonzero(x, y, z):
- phi, theta, psi = vector_to_euler_xyz((x, y, z))
- cubit_cmd(f"body {{ {id} }} rotate {phi} about Z")
- cubit_cmd(f"body {{ {id} }} rotate {theta} about Y")
- cubit_cmd(f"body {{ {id} }} rotate {psi} about X")
- def nonzero(*args):
- return any(arg!= 0 for arg in args)
-
- def move( id, x, y, z ):
- if nonzero( x, y, z ):
- cubit_cmd( f"body {{ {id} }} move {x} {y} {z}" )
-
- def make_world_brick():
- pass
-
- def surface_to_cubit_journal(node, w, indent = 0, inner_world = None, hex = False, ent_type = "body" ):
+ def surface_to_cubit_journal(node, w, indent = 0, inner_world = None, hex = False, ent_type = "body", materials='group'):
def ind():
return ' ' * (2*indent)
if isinstance(node, Halfspace):
seen.add( node.surface )
surface = node.surface
+ nonlocal cmds
+
def reverse():
return "reverse" if node.side == '-' else ""
- if surface._type == "plane":
- ca = surface.coefficients['a']
- cb = surface.coefficients['b']
- cc = surface.coefficients['c']
- cd = surface.coefficients['d']
- n = np.array([ca, cb, cc ])
- maxi = 0
- maxv = sys.float_info.min
- for i in range( 0, 3 ):
- if n[i] > maxv:
- maxi = i
- maxv = n[i]
-
- ns = cd * n
-
- if False:
- n2 = np.copy( n )
- n2[ maxi ] = - n2[maxi]
- n3 = np.cross(n, n2)
- n4 = np.cross(n, n3)
- print( n2, n3, n4 )
- n3 = n3/np.linalg.norm(n3)
- n4 = n4/np.linalg.norm(n4)
- n3 = np.add(ns, n3)
- n4 = np.add(ns, n4)
- cmds.append( f"create vertex {ns[0]} {ns[1]} {ns[2]}")
- v1 = emit_get_last_id( "vertex" )
- cmds.append( f"create vertex {n3[0]} {n3[1]} {n3[2]}")
- v2 = emit_get_last_id( "vertex" )
- cmds.append( f"create vertex {n4[0]} {n4[1]} {n4[2]}")
- v3 = emit_get_last_id( "vertex" )
- cmds.append( f"create planar surface with plane vertex {{ {v1} }} vertex {{ {v2} }} vertex {{ {v3} }} Extended Absolute {w[0]}")
- surf = emit_get_last_id( "surface" )
- cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- ids = emit_get_last_id( ent_type )
- cmds.append( f"section body {{ {ids} }} with surface {{ {surf} }} {reverse()}")
- cmds.append( f"del surface {{ {surf} }}")
- cmds.append( f"del vertex {{ {v1} }} {{ {v2} }} {{ {v3} }}")
- else:
- #for some reason cubit sectioning with a surface is backwards from cubit sectioning with an axis aligned plane
- def lreverse():
- if node.side == '-':
- return ""
- else:
- return "reverse"
- cmds.append( f"create surface rectangle width { 2*w[0] } zplane")
- sur = emit_get_last_id( "surface" )
- surf = emit_get_last_id( "body" )
- cmds.append( f"# dir {node.side}" )
- cmds.append( f"# c_ {ca} {cb} {cc} {cd}" )
- n = n/np.linalg.norm(n)
- ns = cd * n
- zn = np.array([ 0, 0, 1 ])
- n3 = np.cross(n, zn)
- dot = np.dot(n, zn)
- cmds.append(f"# n3 {n3[0]} {n3[1]} {n3[2]}")
- degs = math.degrees(math.acos(np.dot(n, zn)))
- y = np.linalg.norm(n3)
- x = dot
- angle = - math.degrees(math.atan2( y, x ))
- if n3[0] != 0 or n3[1] != 0 or n3[2] != 0:
- cmds.append(f"Rotate body {{ {surf} }} about 0 0 0 direction {n3[0]} {n3[1]} {n3[2]} Angle {angle}")
- cmds.append(f"body {{ { surf } }} move {ns[0]} {ns[1]} {ns[2]}")
- cmds.append(f"brick x {w[0]} y {w[1]} z {w[2]}" )
- ids = emit_get_last_id( ent_type )
- cmds.append(f"section body {{ {ids} }} with surface {{ {sur} }} {lreverse()}")
- cmds.append(f"del surface {{ {sur} }}")
- return ids
- elif surface._type == "x-plane":
- cmds.append(f"brick x {w[0]} y {w[1]} z {w[2]}")
- ids = emit_get_last_id( ent_type)
- cmds.append(f"section body {{ {ids} }} with xplane offset {surface.coefficients['x0']} {reverse()}")
- return ids
- elif surface._type == "y-plane":
- cmds.append(f"brick x {w[0]} y {w[1]} z {w[2]}")
- ids = emit_get_last_id(ent_type)
- cmds.append(f"section body {{ {ids} }} with yplane offset {surface.coefficients['y0']} {reverse()}")
- return ids
- elif surface._type == "z-plane":
- cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}")
- ids = emit_get_last_id( ent_type )
- cmds.append( f"section body {{ {ids} }} with zplane offset {surface.coefficients['z0']} {reverse()}")
- return ids
- elif surface._type == "cylinder":
- h = inner_world[2] if inner_world else w[2]
- cmds.append(f"cylinder height {h} radius {surface.coefficients['r']}")
- ids = emit_get_last_id()
- if node.side != '-':
- wid = 0
- if inner_world:
- if hex:
- cmds.append(f"create prism height {inner_world[2]} sides 6 radius { ( inner_world[0] / 2 ) }")
- wid = emit_get_last_id(ent_type)
- cmds.append(f"rotate body {{ {wid} }} about z angle 30")
- else:
- cmds.append(f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}")
- wid = emit_get_last_id(ent_type)
- else:
- cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id(ent_type)
- cmds.append( f"subtract body {{ { ids } }} from body {{ { wid } }}" )
- rotate( wid, surface.coefficients['dx'], surface.coefficients['dy'], surface.coefficients['dz'] )
- move( wid, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'] )
- return wid
- rotate( ids, surface.coefficients['dx'], surface.coefficients['dy'], surface.coefficients['dz'] )
- move( ids, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'] )
- return ids
- elif surface._type == "x-cylinder":
- h = inner_world[0] if inner_world else w[0]
- cmds.append(f"cylinder height {h} radius {surface.coefficients['r']}")
- ids = emit_get_last_id( ent_type )
- cmds.append( f"rotate body {{ { ids } }} about y angle 90")
- if node.side != '-':
- wid = 0
- if inner_world:
- if hex:
- cmds.append(f"create prism height {inner_world[2]} sides 6 radius { inner_world[0] / 2 } ")
- wid = emit_get_last_id( ent_type )
- cmds.append(f"rotate body {{ {wid} }} about z angle 30")
- cmds.append(f"rotate body {{ {wid} }} about y angle 90")
- else:
- cmds.append(f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}")
- wid = emit_get_last_id(ent_type)
- else:
- cmds.append(f"brick x {w[0]} y {w[1]} z {w[2]}")
- wid = emit_get_last_id(ent_type)
- cmds.append(f"subtract body {{ { ids } }} from body {{ { wid } }}")
- move(wid, 0, surface.coefficients['y0'], surface.coefficients['z0'])
- return wid
- move(ids, 0, surface.coefficients['y0'], surface.coefficients['z0'])
- return ids
- elif surface._type == "y-cylinder":
- h = inner_world[1] if inner_world else w[1]
- cmds.append(f"cylinder height {h} radius {surface.coefficients['r']}")
- ids = emit_get_last_id( ent_type )
- cmds.append(f"rotate body {{ {ids} }} about x angle 90")
- if node.side != '-':
- wid = 0
- if inner_world:
- if hex:
- cmds.append(f"create prism height {inner_world[2]} sides 6 radius { ( inner_world[0] / 2) }")
- wid = emit_get_last_id( ent_type )
- cmds.append(f"rotate body {{ {wid} }} about z angle 30")
- cmds.append(f"rotate body {{ {wid} }} about x angle 90")
- else:
- cmds.append(f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}")
- wid = emit_get_last_id(ent_type)
- else:
- cmds.append(f"brick x {w[0]} y {w[1]} z {w[2]}")
- wid = emit_get_last_id(ent_type)
- cmds.append(f"subtract body {{ {ids} }} from body {{ {wid} }}")
- move(wid, surface.coefficients['x0'], 0, surface.coefficients['z0'])
- return wid
- move(ids, surface.coefficients['x0'], 0, surface.coefficients['z0'])
- return ids
- elif surface._type == "z-cylinder":
- h = inner_world[2] if inner_world else w[2]
- cmds.append( f"cylinder height {h} radius {surface.coefficients['r']}")
- ids = emit_get_last_id( ent_type )
- if node.side != '-':
- wid = 0
- if inner_world:
- if hex:
- cmds.append(f"create prism height {inner_world[2]} sides 6 radius { ( inner_world[0] / 2 ) }")
- wid = emit_get_last_id(ent_type)
- cmds.append(f"rotate body {{ {wid} }} about z angle 30")
- else:
- cmds.append(f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}")
- wid = emit_get_last_id(ent_type)
- else:
- cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id( ent_type )
- cmds.append(f"subtract body {{ { ids } }} from body {{ { wid } }}")
- move(wid, surface.coefficients['x0'], surface.coefficients['y0'], 0)
- return wid
- move(ids, surface.coefficients['x0'], surface.coefficients['y0'], 0)
- return ids
- elif surface._type == "sphere":
- cmds.append( f"sphere redius {surface.coefficients['r']}")
- ids = emit_get_last_id(ent_type)
- move(ids, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'])
- pass
- elif surface._type == "cone":
- raise NotImplementedError("cone not implemented")
- pass
- elif surface._type == "x-cone":
- cmds.append( f"create frustum height {w[0]} radius {math.sqrt(surface.coefficients['r2']*w[0])} top 0")
- ids = emit_get_last_id( ent_type )
- cmds.append( f"rotate body {{ {ids} }} about y angle 90")
- if node.side != '-':
- cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id( ent_type )
- cmds.append(f"subtract body {{ {ids} }} from body {{ {wid} }}")
- move(wid, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'])
- return wid
- move(ids, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'])
- return ids
- elif surface._type == "y-cone":
- cmds.append( f"create frustum height {w[1]} radius {math.sqrt(surface.coefficients['r2']*w[1])} top 0")
- ids = emit_get_last_id( ent_type )
- cmds.append( f"rotate body {{ {ids} }} about x angle 90")
- if node.side != '-':
- cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id( ent_type )
- cmds.append( f"subtract body {{ {ids} }} from body {{ {wid} }}" )
- move( wid, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'] )
- return wid
- move( ids, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'] )
- return ids
- elif surface._type == "z-cone":
- cmds.append( f"create frustum height {w[2]} radius {math.sqrt(surface.coefficients['r2']*w[2])} top 0")
- ids = emit_get_last_id( ent_type )
- if node.side != '-':
- cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id( ent_type )
- cmds.append( f"subtract body {{ {ids} }} from body {{ {wid} }}" )
- move( wid, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'] )
- return wid
- move( ids, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'] )
- return ids
- elif surface._type == "x-torus":
- cmds.append( f"torus major radius {surface.coefficients['a']} minor radius {surface.coefficients['b']}")
- ids = emit_get_last_id( ent_type )
- cmds.append( f"rotate body {{ {ids} }} about y angle 90")
- if node.side != '-':
- cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id( ent_type )
- cmds.append( f"subtract body {{ {ids} }} from body {{ {wid} }}" )
- move( wid, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'] )
- return wid
- move( ids, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'] )
- return ids
- elif surface._type == "y-torus":
- cmds.append( f"torus major radius {surface.coefficients['a']} minor radius {surface.coefficients['b']}")
- ids = emit_get_last_id( ent_type )
- cmds.append( f"rotate body {{ {ids} }} about x angle 90")
- if node.side != '-':
- cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id( ent_type )
- cmds.append( f"subtract body {{ {id} }} from body {{ {wid} }}" )
- move( wid, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'] )
- return wid
- return ids
- elif surface._type == "z-torus":
- cmds.append( f"torus major radius {surface.coefficients['a']} minor radius {surface.coefficients['b']}")
- ids = emit_get_last_id( ent_type )
- if node.side != '-':
- cmds.append(f"brick x {w[0]} y {w[1]} z {w[2]}")
- wid = emit_get_last_id(ent_type)
- cmds.append(f"subtract body {{ {ids} }} from body {{ {wid} }}")
- move(wid, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'])
- return wid
- move(ids, surface.coefficients['x0'], surface.coefficients['y0'], surface.coefficients['z0'])
+ if cad_surface := _CAD_SURFACE_DICTIONARY.get(surface._type):
+ cad_surface = cad_surface.from_openmc_surface(surface)
+ ids, cad_cmds = cad_surface.to_cubit_surface(ent_type, node, w, inner_world, hex)
+ cmds += cad_cmds
return ids
elif surface._type == "quadric":
(gq_type, A_, B_, C_, K_, translation, rotation_matrix) = characterize_general_quadratic(surface)
@@ -581,9 +159,9 @@ def rotation_to_axis_angle( mat ):
r2 = math.sqrt( abs( -K_/B_ ) )
r3 = math.sqrt( abs( -K_/C_ ) )
cmds.append( f"sphere redius 1")
- ids = emit_get_last_id( ent_type )
+ ids = emit_get_last_id( ent_type , cmds)
cmds.append( f"body {{ { ids } }} scale x { r1 } y { r2 } z { r3 }")
- move( ids, translation[0,0], translation[1,0], translation[2,0] )
+ move( ids, translation[0,0], translation[1,0], translation[2,0], cmds)
elif gq_type == ELLIPTIC_CYLINDER : #7
if A_ == 0:
print( "X", gq_type, A_, B_, C_, K_, r_axis, r_degs )
@@ -591,28 +169,28 @@ def rotation_to_axis_angle( mat ):
r1 = math.sqrt( abs( K_/C_ ) )
r2 = math.sqrt( abs( K_/B_ ) )
cmds.append( f"cylinder height {h} Major Radius {r1} Minor Radius {r2}")
- ids = emit_get_last_id( ent_type )
+ ids = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ { ids } }} about y angle 90")
if node.side != '-':
wid = 0
if inner_world:
if hex:
cmds.append( f"create prism height {inner_world[2]} sides 6 radius { inner_world[0] / 2 } " )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ {wid} }} about z angle 30" )
cmds.append( f"rotate body {{ {wid} }} about y angle 90")
else:
cmds.append( f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}" )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
else:
cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
cmds.append( f"subtract body {{ { ids } }} from body {{ { wid } }}" )
cmds.append( f"Rotate body {{ {wid } }} about 0 0 0 direction {r_axis[0]} {r_axis[1]} {r_axis[2]} Angle {r_degs}")
- move( wid, translation[0,0], translation[1,0], translation[2,0] )
+ move( wid, translation[0,0], translation[1,0], translation[2,0], cmds)
return wid
cmds.append( f"Rotate body {{ {ids} }} about 0 0 0 direction {r_axis[0]} {r_axis[1]} {r_axis[2]} Angle {r_degs}")
- move( ids, translation[0,0], translation[1,0], translation[2,0] )
+ move( ids, translation[0,0], translation[1,0], translation[2,0], cmds)
return ids
if B_ == 0:
print( "Y", gq_type, A_, B_, C_, K_ )
@@ -620,28 +198,28 @@ def rotation_to_axis_angle( mat ):
r1 = math.sqrt( abs( K_/A_ ) )
r2 = math.sqrt( abs( K_/C_ ) )
cmds.append( f"cylinder height {h} Major Radius {r1} Minor Radius {r2}")
- ids = emit_get_last_id( ent_type )
+ ids = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ { ids } }} about x angle 90")
if node.side != '-':
wid = 0
if inner_world:
if hex:
cmds.append( f"create prism height {inner_world[2]} sides 6 radius { inner_world[0] / 2 } " )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ {wid} }} about z angle 30" )
cmds.append( f"rotate body {{ {wid} }} about y angle 90")
else:
cmds.append( f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}" )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
else:
cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
cmds.append( f"subtract body {{ { ids } }} from body {{ { wid } }}" )
cmds.append( f"Rotate body {{ {wid } }} about 0 0 0 direction {r_axis[0]} {r_axis[1]} {r_axis[2]} Angle {r_degs}")
- move( wid, translation[0,0], translation[1,0], translation[2,0] )
+ move( wid, translation[0,0], translation[1,0], translation[2,0], cmds)
return wid
cmds.append( f"Rotate body {{ {ids} }} about 0 0 0 direction {r_axis[0]} {r_axis[1]} {r_axis[2]} Angle {r_degs}")
- move( ids, translation[0,0], translation[1,0], translation[2,0] )
+ move( ids, translation[0,0], translation[1,0], translation[2,0], cmds)
return ids
if C_ == 0:
print( "Z", gq_type, A_, B_, C_, K_ )
@@ -649,27 +227,27 @@ def rotation_to_axis_angle( mat ):
r1 = math.sqrt( abs( K_/A_ ) )
r2 = math.sqrt( abs( K_/B_ ) )
cmds.append( f"cylinder height {h} Major Radius {r1} Minor Radius {r2}")
- ids = emit_get_last_id( ent_type )
+ ids = emit_get_last_id( ent_type , cmds)
if node.side != '-':
wid = 0
if inner_world:
if hex:
cmds.append( f"create prism height {inner_world[2]} sides 6 radius { inner_world[0] / 2 } " )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ {wid} }} about z angle 30" )
cmds.append( f"rotate body {{ {wid} }} about y angle 90")
else:
cmds.append( f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}" )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
else:
cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
cmds.append( f"subtract body {{ { ids } }} from body {{ { wid } }}" )
cmds.append( f"Rotate body {{ {wid } }} about 0 0 0 direction {r_axis[0]} {r_axis[1]} {r_axis[2]} Angle {r_degs}")
- move( wid, translation[0,0], translation[1,0], translation[2,0] )
+ move( wid, translation[0,0], translation[1,0], translation[2,0], cmds)
return wid
cmds.append( f"Rotate body {{ {ids} }} about 0 0 0 direction {r_axis[0]} {r_axis[1]} {r_axis[2]} Angle {r_degs}")
- move( ids, translation[0,0], translation[1,0], translation[2,0] )
+ move( ids, translation[0,0], translation[1,0], translation[2,0], cmds)
return ids
elif gq_type == ELLIPTIC_CONE : #3
if A_ == 0:
@@ -679,14 +257,14 @@ def rotation_to_axis_angle( mat ):
rot_angle = - 90
rot_axis = 1
cmds.append( f"create frustum height {h} Major Radius {major} Minor Radius {minor} top 0")
- ids = emit_get_last_id( ent_type )
+ ids = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ { ids } }} about y angle -90")
cmds.append( f"copy body {{ { ids } }}")
- mirror = emit_get_last_id( ent_type )
+ mirror = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ { mirror } }} about 0 0 0 angle 180")
cmds.append( f"unit body {{ { ids } }} {{ { mirror } }}")
cmds.append( f"Rotate body {{ {ids} }} about 0 0 0 direction {r_axis[0]} {r_axis[1]} {r_axis[2]} Angle {r_degs}")
- move( ids, translation[0,0], translation[1,0], translation[2,0] )
+ move( ids, translation[0,0], translation[1,0], translation[2,0], cmds)
return ids
if B_ == 0:
h = inner_world[1] if inner_world else w[1]
@@ -695,14 +273,14 @@ def rotation_to_axis_angle( mat ):
rot_angle = 90
rot_axis = 0
cmds.append( f"create frustum height {h} Major Radius {major} Minor Radius {minor} top 0")
- ids = emit_get_last_id( ent_type )
+ ids = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ { ids } }} about x angle 90")
cmds.append( f"copy body {{ { ids } }}")
- mirror = emit_get_last_id( ent_type )
+ mirror = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ { mirror } }} about 0 0 0 angle 180")
cmds.append( f"unit body {{ { ids } }} {{ { mirror } }}")
cmds.append( f"Rotate body {{ {ids} }} about 0 0 0 direction {r_axis[0]} {r_axis[1]} {r_axis[2]} Angle {r_degs}")
- move( ids, translation[0,0], translation[1,0], translation[2,0] )
+ move( ids, translation[0,0], translation[1,0], translation[2,0], cmds)
return ids
if C_ == 0:
h = inner_world[2] if inner_world else w[2]
@@ -711,13 +289,13 @@ def rotation_to_axis_angle( mat ):
rot_angle = 180
rot_axis = 0
cmds.append( f"create frustum height {h} Major Radius {major} Minor Radius {minor} top 0")
- ids = emit_get_last_id( ent_type )
+ ids = emit_get_last_id( ent_type , cmds)
cmds.append( f"copy body {{ { ids } }}")
- mirror = emit_get_last_id( ent_type )
+ mirror = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ { mirror } }} about 0 0 0 angle 180")
cmds.append( f"unit body {{ { ids } }} {{ { mirror } }}")
cmds.append( f"Rotate body {{ {ids} }} about 0 0 0 direction {r_axis[0]} {r_axis[1]} {r_axis[2]} Angle {r_degs}")
- move( ids, translation[0,0], translation[1,0], translation[2,0] )
+ move( ids, translation[0,0], translation[1,0], translation[2,0], cmds)
return ids
else:
raise NotImplementedError(f"{surface.type} not implemented")
@@ -727,25 +305,25 @@ def rotation_to_axis_angle( mat ):
print( "Complement:" )
id = surface_to_cubit_journal(node.node, w, indent + 1, inner_world, ent_type = ent_type )
cmds.append( f"brick x {w[0]} y {w[1]} z {w[2]}" )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
cmds.append( f"subtract body {{ {id} }} from body {{ {wid} }}" )
- return emit_get_last_id( ent_type )
+ return emit_get_last_id( ent_type , cmds)
elif isinstance(node, Intersection):
last = 0
if len( node ) > 0:
last = surface_to_cubit_journal( node[0], w, indent + 1, inner_world, ent_type = ent_type ,)
for subnode in node[1:]:
s = surface_to_cubit_journal( subnode, w, indent + 1, inner_world, ent_type = ent_type ,)
- before = emit_get_last_id()
+ before = emit_get_last_id(cmds=cmds)
cmds.append( f"intersect {ent_type} {{ {last} }} {{ {s} }}" )
- after = emit_get_last_id()
- last = new_variable();
+ after = emit_get_last_id(cmds=cmds)
+ last = new_variable()
cmds.append( f"#{{{last} = ( {before} == {after} ) ? {s} : {after}}}" )
if inner_world:
cmds.append( f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}" )
- iwid = emit_get_last_id( ent_type )
+ iwid = emit_get_last_id( ent_type , cmds)
cmds.append( f"intersect {ent_type} {{ {last} }} {{ {iwid} }}" )
- return emit_get_last_id( ent_type )
+ return emit_get_last_id( ent_type , cmds)
return last
elif isinstance(node, Union):
if len( node ) > 0:
@@ -756,7 +334,7 @@ def rotation_to_axis_angle( mat ):
cmds.append( f"unite {local_ent_type} {{ {first} }} {{ {s} }}" )
if inner_world:
cmds.append( f"brick x {inner_world[0]} y {inner_world[1]} z {inner_world[2]}" )
- iwid = emit_get_last_id( local_ent_type )
+ iwid = emit_get_last_id( local_ent_type , cmds)
cmds.append( f"intersect {ent_type} {{ {last} }} {{ {iwid} }}" )
return first
return first
@@ -776,7 +354,7 @@ def ind():
results.append( id )
elif hex:
cmds.append( f"create prism height {inner_world[2]} sides 6 radius { ( inner_world[0] / 2) }" )
- wid = emit_get_last_id( ent_type )
+ wid = emit_get_last_id( ent_type , cmds)
cmds.append( f"rotate body {{ {wid} }} about z angle 30" )
results.append( wid )
@@ -942,8 +520,17 @@ def do_cell(cell, cell_ids: Iterable[int] = None):
before = len( cmds )
cmds.append( f"#CELL {cell.id}" )
vol_or_body = process_node_or_fill( cell, w )
- if cell.fill_type == "material":
- cmds.append( f'group \"Material_{cell.fill.id}\" add body {{ { vol_or_body[0] } }} ' )
+ if cell.fill is None:
+ cmds.append(f'group "mat:void" add body {{ { vol_or_body[0] } }} ')
+ elif cell.fill_type == "material":
+ mat_identifier = f"mat:{cell.fill.id}"
+ # use material names when possible
+ if cell.fill.name is not None and cell.fill.name:
+ mat_identifier = f"mat:{cell.fill.name}"
+ if len(mat_identifier) > 32:
+ mat_identifier = mat_identifier[:32]
+ warnings.warn(f'Truncating material name {mat_identifier} to 32 characters')
+ cmds.append( f'group \"{mat_identifier}\" add body {{ { vol_or_body[0] } }} ' )
after = len( cmds )
if cell_ids is not None and cell.id in cell_ids:
@@ -973,6 +560,30 @@ def do_cell(cell, cell_ids: Iterable[int] = None):
cubit.cmd(f"save as {filename[:-4]}.cub overwrite")
+def material_assignment(cell, geom_id, assignment_type='group'):
+ if cell.fill is None:
+ mat_identifier = "mat:void"
+ elif cell.fill_type == "material":
+ mat_identifier = f"mat:{cell.fill.id}"
+ # use material names when possible
+ if cell.fill.name is not None and cell.fill.name:
+ mat_identifier = f"mat:{cell.fill.name}"
+ else:
+ return []
+
+ if len(mat_identifier) > 32:
+ mat_identifier = mat_identifier[:32]
+ warnings.warn(f'Truncating material name {mat_identifier} to 32 characters')
+
+ cmds = []
+ if assignment_type == 'group':
+ cmds.append(f'group \"{mat_identifier}\" add body {{ { geom_id } }}')
+ else:
+ raise ValueError(f"Unknown material assignment type requested: {assignment_type}")
+
+ return cmds
+
+
def openmc_to_cad():
"""Command-line interface for OpenMC to CAD model conversion"""
parser = ArgumentParser()
@@ -997,3 +608,8 @@ def openmc_to_cad():
sys.path.append(args.cubit_path)
to_cubit_journal(model.geometry, world=args.world_size, filename=args.output, cells=args.cells, to_cubit=args.to_cubit)
+
+
+__all__ = ['CADPlane', 'CADXPlane', 'CADYPlane', 'CADZPlane',
+ 'CADCylinder', 'CADXCylinder', 'CADYCylinder', 'CADZCylinder',
+ 'CADSphere', 'CADXCone', 'CADYCone', 'CADZCone', 'CADXTorus', 'CADYTorus', 'CADZTorus']
\ No newline at end of file
diff --git a/test/__init__.py b/test/__init__.py
new file mode 100644
index 0000000..03ec43a
--- /dev/null
+++ b/test/__init__.py
@@ -0,0 +1,3 @@
+
+from .conftest import test_config, run_in_tmpdir
+from .test_utilities import *
\ No newline at end of file
diff --git a/test/assembly.jou b/test/assembly.jou
new file mode 100644
index 0000000..ca412d7
--- /dev/null
+++ b/test/assembly.jou
@@ -0,0 +1,645 @@
+set graphics off
+set journal off
+#CELL 1
+create prism height 2.0 sides 6 radius 0.5
+#{ id1 = Id("body") }
+rotate body { id1 } about z angle 30
+body { id1 } name "cell 4"
+move body { id1 } midpoint location 0.0 1.7320508075688772 0.0
+cylinder height 2.0 radius 0.4
+#{ id2 = Id("body") }
+body { id2 } name "cell 5"
+move body { id2 } midpoint location 0.75 1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id3 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id4 = Id("body") }
+rotate body { id4 } about z angle 30
+subtract body { id3 } from body { id4 }
+body { id4 } name "cell 6"
+move body { id4 } midpoint location 0.75 1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id5 = Id("body") }
+body { id5 } name "cell 5"
+move body { id5 } midpoint location 1.5 0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id6 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id7 = Id("body") }
+rotate body { id7 } about z angle 30
+subtract body { id6 } from body { id7 }
+body { id7 } name "cell 6"
+move body { id7 } midpoint location 1.5 0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id8 = Id("body") }
+body { id8 } name "cell 5"
+move body { id8 } midpoint location 1.5 0.0 0.0
+cylinder height 2.0 radius 0.4
+#{ id9 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id10 = Id("body") }
+rotate body { id10 } about z angle 30
+subtract body { id9 } from body { id10 }
+body { id10 } name "cell 6"
+move body { id10 } midpoint location 1.5 0.0 0.0
+cylinder height 2.0 radius 0.4
+#{ id11 = Id("body") }
+body { id11 } name "cell 5"
+move body { id11 } midpoint location 1.5 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id12 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id13 = Id("body") }
+rotate body { id13 } about z angle 30
+subtract body { id12 } from body { id13 }
+body { id13 } name "cell 6"
+move body { id13 } midpoint location 1.5 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id14 = Id("body") }
+body { id14 } name "cell 5"
+move body { id14 } midpoint location 0.75 -1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id15 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id16 = Id("body") }
+rotate body { id16 } about z angle 30
+subtract body { id15 } from body { id16 }
+body { id16 } name "cell 6"
+move body { id16 } midpoint location 0.75 -1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id17 = Id("body") }
+body { id17 } name "cell 5"
+move body { id17 } midpoint location 0.0 -1.7320508075688772 0.0
+cylinder height 2.0 radius 0.4
+#{ id18 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id19 = Id("body") }
+rotate body { id19 } about z angle 30
+subtract body { id18 } from body { id19 }
+body { id19 } name "cell 6"
+move body { id19 } midpoint location 0.0 -1.7320508075688772 0.0
+cylinder height 2.0 radius 0.4
+#{ id20 = Id("body") }
+body { id20 } name "cell 5"
+move body { id20 } midpoint location -0.75 -1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id21 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id22 = Id("body") }
+rotate body { id22 } about z angle 30
+subtract body { id21 } from body { id22 }
+body { id22 } name "cell 6"
+move body { id22 } midpoint location -0.75 -1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id23 = Id("body") }
+body { id23 } name "cell 5"
+move body { id23 } midpoint location -1.5 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id24 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id25 = Id("body") }
+rotate body { id25 } about z angle 30
+subtract body { id24 } from body { id25 }
+body { id25 } name "cell 6"
+move body { id25 } midpoint location -1.5 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id26 = Id("body") }
+body { id26 } name "cell 5"
+move body { id26 } midpoint location -1.5 0.0 0.0
+cylinder height 2.0 radius 0.4
+#{ id27 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id28 = Id("body") }
+rotate body { id28 } about z angle 30
+subtract body { id27 } from body { id28 }
+body { id28 } name "cell 6"
+move body { id28 } midpoint location -1.5 0.0 0.0
+cylinder height 2.0 radius 0.4
+#{ id29 = Id("body") }
+body { id29 } name "cell 5"
+move body { id29 } midpoint location -1.5 0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id30 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id31 = Id("body") }
+rotate body { id31 } about z angle 30
+subtract body { id30 } from body { id31 }
+body { id31 } name "cell 6"
+move body { id31 } midpoint location -1.5 0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id32 = Id("body") }
+body { id32 } name "cell 5"
+move body { id32 } midpoint location -0.75 1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id33 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id34 = Id("body") }
+rotate body { id34 } about z angle 30
+subtract body { id33 } from body { id34 }
+body { id34 } name "cell 6"
+move body { id34 } midpoint location -0.75 1.299038105676658 0.0
+create prism height 2.0 sides 6 radius 0.5
+#{ id35 = Id("body") }
+rotate body { id35 } about z angle 30
+body { id35 } name "cell 4"
+move body { id35 } midpoint location 5.302876193624534e-17 0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id36 = Id("body") }
+body { id36 } name "cell 5"
+move body { id36 } midpoint location 0.7499999999999999 0.4330127018922193 0.0
+cylinder height 2.0 radius 0.4
+#{ id37 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id38 = Id("body") }
+rotate body { id38 } about z angle 30
+subtract body { id37 } from body { id38 }
+body { id38 } name "cell 6"
+move body { id38 } midpoint location 0.7499999999999999 0.4330127018922193 0.0
+cylinder height 2.0 radius 0.4
+#{ id39 = Id("body") }
+body { id39 } name "cell 5"
+move body { id39 } midpoint location 0.75 -0.43301270189221913 0.0
+cylinder height 2.0 radius 0.4
+#{ id40 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id41 = Id("body") }
+rotate body { id41 } about z angle 30
+subtract body { id40 } from body { id41 }
+body { id41 } name "cell 6"
+move body { id41 } midpoint location 0.75 -0.43301270189221913 0.0
+cylinder height 2.0 radius 0.4
+#{ id42 = Id("body") }
+body { id42 } name "cell 5"
+move body { id42 } midpoint location 5.302876193624534e-17 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id43 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id44 = Id("body") }
+rotate body { id44 } about z angle 30
+subtract body { id43 } from body { id44 }
+body { id44 } name "cell 6"
+move body { id44 } midpoint location 5.302876193624534e-17 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id45 = Id("body") }
+body { id45 } name "cell 5"
+move body { id45 } midpoint location -0.7499999999999998 -0.4330127018922196 0.0
+cylinder height 2.0 radius 0.4
+#{ id46 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id47 = Id("body") }
+rotate body { id47 } about z angle 30
+subtract body { id46 } from body { id47 }
+body { id47 } name "cell 6"
+move body { id47 } midpoint location -0.7499999999999998 -0.4330127018922196 0.0
+cylinder height 2.0 radius 0.4
+#{ id48 = Id("body") }
+body { id48 } name "cell 5"
+move body { id48 } midpoint location -0.7499999999999999 0.4330127018922194 0.0
+cylinder height 2.0 radius 0.4
+#{ id49 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id50 = Id("body") }
+rotate body { id50 } about z angle 30
+subtract body { id49 } from body { id50 }
+body { id50 } name "cell 6"
+move body { id50 } midpoint location -0.7499999999999999 0.4330127018922194 0.0
+cylinder height 2.0 radius 0.4
+#{ id51 = Id("body") }
+body { id51 } name "cell 5"
+move body { id51 } midpoint location 0.0 0.0 0.0
+cylinder height 2.0 radius 0.4
+#{ id52 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id53 = Id("body") }
+rotate body { id53 } about z angle 30
+subtract body { id52 } from body { id53 }
+body { id53 } name "cell 6"
+move body { id53 } midpoint location 0.0 0.0 0.0
+create prism height 2.0 sides 6 radius 0.5
+#{ id54 = Id("body") }
+rotate body { id54 } about z angle 30
+body { id54 } name "cell 4"
+move body { id54 } midpoint location 0.0 1.7320508075688772 2.0
+cylinder height 2.0 radius 0.4
+#{ id55 = Id("body") }
+body { id55 } name "cell 2"
+move body { id55 } midpoint location 0.75 1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id56 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id57 = Id("body") }
+rotate body { id57 } about z angle 30
+subtract body { id56 } from body { id57 }
+body { id57 } name "cell 3"
+move body { id57 } midpoint location 0.75 1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id58 = Id("body") }
+body { id58 } name "cell 2"
+move body { id58 } midpoint location 1.5 0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id59 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id60 = Id("body") }
+rotate body { id60 } about z angle 30
+subtract body { id59 } from body { id60 }
+body { id60 } name "cell 3"
+move body { id60 } midpoint location 1.5 0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id61 = Id("body") }
+body { id61 } name "cell 2"
+move body { id61 } midpoint location 1.5 0.0 2.0
+cylinder height 2.0 radius 0.4
+#{ id62 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id63 = Id("body") }
+rotate body { id63 } about z angle 30
+subtract body { id62 } from body { id63 }
+body { id63 } name "cell 3"
+move body { id63 } midpoint location 1.5 0.0 2.0
+cylinder height 2.0 radius 0.4
+#{ id64 = Id("body") }
+body { id64 } name "cell 2"
+move body { id64 } midpoint location 1.5 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id65 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id66 = Id("body") }
+rotate body { id66 } about z angle 30
+subtract body { id65 } from body { id66 }
+body { id66 } name "cell 3"
+move body { id66 } midpoint location 1.5 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id67 = Id("body") }
+body { id67 } name "cell 2"
+move body { id67 } midpoint location 0.75 -1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id68 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id69 = Id("body") }
+rotate body { id69 } about z angle 30
+subtract body { id68 } from body { id69 }
+body { id69 } name "cell 3"
+move body { id69 } midpoint location 0.75 -1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id70 = Id("body") }
+body { id70 } name "cell 2"
+move body { id70 } midpoint location 0.0 -1.7320508075688772 2.0
+cylinder height 2.0 radius 0.4
+#{ id71 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id72 = Id("body") }
+rotate body { id72 } about z angle 30
+subtract body { id71 } from body { id72 }
+body { id72 } name "cell 3"
+move body { id72 } midpoint location 0.0 -1.7320508075688772 2.0
+cylinder height 2.0 radius 0.4
+#{ id73 = Id("body") }
+body { id73 } name "cell 2"
+move body { id73 } midpoint location -0.75 -1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id74 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id75 = Id("body") }
+rotate body { id75 } about z angle 30
+subtract body { id74 } from body { id75 }
+body { id75 } name "cell 3"
+move body { id75 } midpoint location -0.75 -1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id76 = Id("body") }
+body { id76 } name "cell 2"
+move body { id76 } midpoint location -1.5 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id77 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id78 = Id("body") }
+rotate body { id78 } about z angle 30
+subtract body { id77 } from body { id78 }
+body { id78 } name "cell 3"
+move body { id78 } midpoint location -1.5 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id79 = Id("body") }
+body { id79 } name "cell 2"
+move body { id79 } midpoint location -1.5 0.0 2.0
+cylinder height 2.0 radius 0.4
+#{ id80 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id81 = Id("body") }
+rotate body { id81 } about z angle 30
+subtract body { id80 } from body { id81 }
+body { id81 } name "cell 3"
+move body { id81 } midpoint location -1.5 0.0 2.0
+cylinder height 2.0 radius 0.4
+#{ id82 = Id("body") }
+body { id82 } name "cell 2"
+move body { id82 } midpoint location -1.5 0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id83 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id84 = Id("body") }
+rotate body { id84 } about z angle 30
+subtract body { id83 } from body { id84 }
+body { id84 } name "cell 3"
+move body { id84 } midpoint location -1.5 0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id85 = Id("body") }
+body { id85 } name "cell 2"
+move body { id85 } midpoint location -0.75 1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id86 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id87 = Id("body") }
+rotate body { id87 } about z angle 30
+subtract body { id86 } from body { id87 }
+body { id87 } name "cell 3"
+move body { id87 } midpoint location -0.75 1.299038105676658 2.0
+create prism height 2.0 sides 6 radius 0.5
+#{ id88 = Id("body") }
+rotate body { id88 } about z angle 30
+body { id88 } name "cell 4"
+move body { id88 } midpoint location 5.302876193624534e-17 0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id89 = Id("body") }
+body { id89 } name "cell 2"
+move body { id89 } midpoint location 0.7499999999999999 0.4330127018922193 2.0
+cylinder height 2.0 radius 0.4
+#{ id90 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id91 = Id("body") }
+rotate body { id91 } about z angle 30
+subtract body { id90 } from body { id91 }
+body { id91 } name "cell 3"
+move body { id91 } midpoint location 0.7499999999999999 0.4330127018922193 2.0
+cylinder height 2.0 radius 0.4
+#{ id92 = Id("body") }
+body { id92 } name "cell 2"
+move body { id92 } midpoint location 0.75 -0.43301270189221913 2.0
+cylinder height 2.0 radius 0.4
+#{ id93 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id94 = Id("body") }
+rotate body { id94 } about z angle 30
+subtract body { id93 } from body { id94 }
+body { id94 } name "cell 3"
+move body { id94 } midpoint location 0.75 -0.43301270189221913 2.0
+cylinder height 2.0 radius 0.4
+#{ id95 = Id("body") }
+body { id95 } name "cell 2"
+move body { id95 } midpoint location 5.302876193624534e-17 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id96 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id97 = Id("body") }
+rotate body { id97 } about z angle 30
+subtract body { id96 } from body { id97 }
+body { id97 } name "cell 3"
+move body { id97 } midpoint location 5.302876193624534e-17 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id98 = Id("body") }
+body { id98 } name "cell 2"
+move body { id98 } midpoint location -0.7499999999999998 -0.4330127018922196 2.0
+cylinder height 2.0 radius 0.4
+#{ id99 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id100 = Id("body") }
+rotate body { id100 } about z angle 30
+subtract body { id99 } from body { id100 }
+body { id100 } name "cell 3"
+move body { id100 } midpoint location -0.7499999999999998 -0.4330127018922196 2.0
+cylinder height 2.0 radius 0.4
+#{ id101 = Id("body") }
+body { id101 } name "cell 2"
+move body { id101 } midpoint location -0.7499999999999999 0.4330127018922194 2.0
+cylinder height 2.0 radius 0.4
+#{ id102 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id103 = Id("body") }
+rotate body { id103 } about z angle 30
+subtract body { id102 } from body { id103 }
+body { id103 } name "cell 3"
+move body { id103 } midpoint location -0.7499999999999999 0.4330127018922194 2.0
+cylinder height 2.0 radius 0.4
+#{ id104 = Id("body") }
+body { id104 } name "cell 2"
+move body { id104 } midpoint location 0.0 0.0 2.0
+cylinder height 2.0 radius 0.4
+#{ id105 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id106 = Id("body") }
+rotate body { id106 } about z angle 30
+subtract body { id105 } from body { id106 }
+body { id106 } name "cell 3"
+move body { id106 } midpoint location 0.0 0.0 2.0
+create prism height 2.0 sides 6 radius 0.5
+#{ id107 = Id("body") }
+rotate body { id107 } about z angle 30
+body { id107 } name "cell 4"
+move body { id107 } midpoint location 0.0 1.7320508075688772 4.0
+cylinder height 2.0 radius 0.4
+#{ id108 = Id("body") }
+body { id108 } name "cell 5"
+move body { id108 } midpoint location 0.75 1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id109 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id110 = Id("body") }
+rotate body { id110 } about z angle 30
+subtract body { id109 } from body { id110 }
+body { id110 } name "cell 6"
+move body { id110 } midpoint location 0.75 1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id111 = Id("body") }
+body { id111 } name "cell 5"
+move body { id111 } midpoint location 1.5 0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id112 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id113 = Id("body") }
+rotate body { id113 } about z angle 30
+subtract body { id112 } from body { id113 }
+body { id113 } name "cell 6"
+move body { id113 } midpoint location 1.5 0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id114 = Id("body") }
+body { id114 } name "cell 5"
+move body { id114 } midpoint location 1.5 0.0 4.0
+cylinder height 2.0 radius 0.4
+#{ id115 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id116 = Id("body") }
+rotate body { id116 } about z angle 30
+subtract body { id115 } from body { id116 }
+body { id116 } name "cell 6"
+move body { id116 } midpoint location 1.5 0.0 4.0
+cylinder height 2.0 radius 0.4
+#{ id117 = Id("body") }
+body { id117 } name "cell 5"
+move body { id117 } midpoint location 1.5 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id118 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id119 = Id("body") }
+rotate body { id119 } about z angle 30
+subtract body { id118 } from body { id119 }
+body { id119 } name "cell 6"
+move body { id119 } midpoint location 1.5 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id120 = Id("body") }
+body { id120 } name "cell 5"
+move body { id120 } midpoint location 0.75 -1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id121 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id122 = Id("body") }
+rotate body { id122 } about z angle 30
+subtract body { id121 } from body { id122 }
+body { id122 } name "cell 6"
+move body { id122 } midpoint location 0.75 -1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id123 = Id("body") }
+body { id123 } name "cell 5"
+move body { id123 } midpoint location 0.0 -1.7320508075688772 4.0
+cylinder height 2.0 radius 0.4
+#{ id124 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id125 = Id("body") }
+rotate body { id125 } about z angle 30
+subtract body { id124 } from body { id125 }
+body { id125 } name "cell 6"
+move body { id125 } midpoint location 0.0 -1.7320508075688772 4.0
+cylinder height 2.0 radius 0.4
+#{ id126 = Id("body") }
+body { id126 } name "cell 5"
+move body { id126 } midpoint location -0.75 -1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id127 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id128 = Id("body") }
+rotate body { id128 } about z angle 30
+subtract body { id127 } from body { id128 }
+body { id128 } name "cell 6"
+move body { id128 } midpoint location -0.75 -1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id129 = Id("body") }
+body { id129 } name "cell 5"
+move body { id129 } midpoint location -1.5 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id130 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id131 = Id("body") }
+rotate body { id131 } about z angle 30
+subtract body { id130 } from body { id131 }
+body { id131 } name "cell 6"
+move body { id131 } midpoint location -1.5 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id132 = Id("body") }
+body { id132 } name "cell 5"
+move body { id132 } midpoint location -1.5 0.0 4.0
+cylinder height 2.0 radius 0.4
+#{ id133 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id134 = Id("body") }
+rotate body { id134 } about z angle 30
+subtract body { id133 } from body { id134 }
+body { id134 } name "cell 6"
+move body { id134 } midpoint location -1.5 0.0 4.0
+cylinder height 2.0 radius 0.4
+#{ id135 = Id("body") }
+body { id135 } name "cell 5"
+move body { id135 } midpoint location -1.5 0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id136 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id137 = Id("body") }
+rotate body { id137 } about z angle 30
+subtract body { id136 } from body { id137 }
+body { id137 } name "cell 6"
+move body { id137 } midpoint location -1.5 0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id138 = Id("body") }
+body { id138 } name "cell 5"
+move body { id138 } midpoint location -0.75 1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id139 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id140 = Id("body") }
+rotate body { id140 } about z angle 30
+subtract body { id139 } from body { id140 }
+body { id140 } name "cell 6"
+move body { id140 } midpoint location -0.75 1.299038105676658 4.0
+create prism height 2.0 sides 6 radius 0.5
+#{ id141 = Id("body") }
+rotate body { id141 } about z angle 30
+body { id141 } name "cell 4"
+move body { id141 } midpoint location 5.302876193624534e-17 0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id142 = Id("body") }
+body { id142 } name "cell 5"
+move body { id142 } midpoint location 0.7499999999999999 0.4330127018922193 4.0
+cylinder height 2.0 radius 0.4
+#{ id143 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id144 = Id("body") }
+rotate body { id144 } about z angle 30
+subtract body { id143 } from body { id144 }
+body { id144 } name "cell 6"
+move body { id144 } midpoint location 0.7499999999999999 0.4330127018922193 4.0
+cylinder height 2.0 radius 0.4
+#{ id145 = Id("body") }
+body { id145 } name "cell 5"
+move body { id145 } midpoint location 0.75 -0.43301270189221913 4.0
+cylinder height 2.0 radius 0.4
+#{ id146 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id147 = Id("body") }
+rotate body { id147 } about z angle 30
+subtract body { id146 } from body { id147 }
+body { id147 } name "cell 6"
+move body { id147 } midpoint location 0.75 -0.43301270189221913 4.0
+cylinder height 2.0 radius 0.4
+#{ id148 = Id("body") }
+body { id148 } name "cell 5"
+move body { id148 } midpoint location 5.302876193624534e-17 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id149 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id150 = Id("body") }
+rotate body { id150 } about z angle 30
+subtract body { id149 } from body { id150 }
+body { id150 } name "cell 6"
+move body { id150 } midpoint location 5.302876193624534e-17 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id151 = Id("body") }
+body { id151 } name "cell 5"
+move body { id151 } midpoint location -0.7499999999999998 -0.4330127018922196 4.0
+cylinder height 2.0 radius 0.4
+#{ id152 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id153 = Id("body") }
+rotate body { id153 } about z angle 30
+subtract body { id152 } from body { id153 }
+body { id153 } name "cell 6"
+move body { id153 } midpoint location -0.7499999999999998 -0.4330127018922196 4.0
+cylinder height 2.0 radius 0.4
+#{ id154 = Id("body") }
+body { id154 } name "cell 5"
+move body { id154 } midpoint location -0.7499999999999999 0.4330127018922194 4.0
+cylinder height 2.0 radius 0.4
+#{ id155 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id156 = Id("body") }
+rotate body { id156 } about z angle 30
+subtract body { id155 } from body { id156 }
+body { id156 } name "cell 6"
+move body { id156 } midpoint location -0.7499999999999999 0.4330127018922194 4.0
+cylinder height 2.0 radius 0.4
+#{ id157 = Id("body") }
+body { id157 } name "cell 5"
+move body { id157 } midpoint location 0.0 0.0 4.0
+cylinder height 2.0 radius 0.4
+#{ id158 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id159 = Id("body") }
+rotate body { id159 } about z angle 30
+subtract body { id158 } from body { id159 }
+body { id159 } name "cell 6"
+move body { id159 } midpoint location 0.0 0.0 4.0
diff --git a/test/conftest.py b/test/conftest.py
new file mode 100644
index 0000000..81974a6
--- /dev/null
+++ b/test/conftest.py
@@ -0,0 +1,23 @@
+import pytest
+
+test_config = {'update': False}
+
+
+def pytest_addoption(parser):
+ parser.addoption('--update', action='store_true')
+
+
+def pytest_configure(config):
+ opts = ['update']
+ for opt in opts:
+ if config.getoption(opt) is not None:
+ test_config[opt] = config.getoption(opt)
+
+
+@pytest.fixture
+def run_in_tmpdir(tmpdir):
+ orig = tmpdir.chdir()
+ try:
+ yield
+ finally:
+ orig.chdir()
diff --git a/test/cylinder.jou b/test/cylinder.jou
new file mode 100644
index 0000000..d886fc9
--- /dev/null
+++ b/test/cylinder.jou
@@ -0,0 +1,10 @@
+set graphics off
+set journal off
+#CELL 3
+cylinder height 500 radius 6.0
+#{ id1 = Id("body") }
+body { id1 } rotate 0.0 about Z
+body { id1 } rotate 45.0 about Y
+body { id1 } rotate 35.264389682754654 about X
+body { id1 } move 5.0 5.0 5.0
+body { id1 } name "Cell_3"
diff --git a/test/geometry.xml b/test/geometry.xml
new file mode 100644
index 0000000..c07bb26
--- /dev/null
+++ b/test/geometry.xml
@@ -0,0 +1,47 @@
+
+
+ |
+ |
+ |
+ |
+ |
+ |
+
+ 1.0 2.0
+ 3
+ 0.0 0.0 0.0
+
+ 3
+ 4 4
+4 3 4
+ 4 4
+4 4 4
+ 4 4
+4 4 4
+ 4 4
+ 4
+ 3
+ 1 1
+1 3 1
+ 1 1
+1 1 1
+ 1 1
+1 1 1
+ 1 1
+ 1
+ 3
+ 4 4
+4 3 4
+ 4 4
+4 4 4
+ 4 4
+4 4 4
+ 4 4
+ 4
+
+
+
+
+
+
+
diff --git a/test/gold/assembly.jou b/test/gold/assembly.jou
index ca412d7..465259d 100644
--- a/test/gold/assembly.jou
+++ b/test/gold/assembly.jou
@@ -1,645 +1,8095 @@
set graphics off
set journal off
-#CELL 1
-create prism height 2.0 sides 6 radius 0.5
+#CELL 7
+cylinder height 500 radius 0.39218
#{ id1 = Id("body") }
-rotate body { id1 } about z angle 30
-body { id1 } name "cell 4"
-move body { id1 } midpoint location 0.0 1.7320508075688772 0.0
-cylinder height 2.0 radius 0.4
+body { id1 } name "Cell_1"
+move body { id1 } midpoint location -10.08 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id2 = Id("body") }
-body { id2 } name "cell 5"
-move body { id2 } midpoint location 0.75 1.299038105676658 0.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id3 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+subtract body { id2 } from body { id3 }
+cylinder height 500 radius 0.4572
#{ id4 = Id("body") }
-rotate body { id4 } about z angle 30
-subtract body { id3 } from body { id4 }
-body { id4 } name "cell 6"
-move body { id4 } midpoint location 0.75 1.299038105676658 0.0
-cylinder height 2.0 radius 0.4
#{ id5 = Id("body") }
-body { id5 } name "cell 5"
-move body { id5 } midpoint location 1.5 0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+intersect body { id3 } { id4 }
#{ id6 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
-#{ id7 = Id("body") }
-rotate body { id7 } about z angle 30
-subtract body { id6 } from body { id7 }
-body { id7 } name "cell 6"
-move body { id7 } midpoint location 1.5 0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+#{id7 = ( id5 == id6 ) ? id4 : id6}
+brick x 1.26 y 1.26 z 500
#{ id8 = Id("body") }
-body { id8 } name "cell 5"
-move body { id8 } midpoint location 1.5 0.0 0.0
-cylinder height 2.0 radius 0.4
+intersect body { id7 } { id8 }
#{ id9 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+body { id9 } name "Cell_2"
+move body { id9 } midpoint location -10.08 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id10 = Id("body") }
-rotate body { id10 } about z angle 30
-subtract body { id9 } from body { id10 }
-body { id10 } name "cell 6"
-move body { id10 } midpoint location 1.5 0.0 0.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id11 = Id("body") }
-body { id11 } name "cell 5"
-move body { id11 } midpoint location 1.5 -0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+subtract body { id10 } from body { id11 }
+body { id11 } name "Cell_3"
+move body { id11 } midpoint location -10.08 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id12 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+body { id12 } name "Cell_1"
+move body { id12 } midpoint location -8.82 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id13 = Id("body") }
-rotate body { id13 } about z angle 30
-subtract body { id12 } from body { id13 }
-body { id13 } name "cell 6"
-move body { id13 } midpoint location 1.5 -0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id14 = Id("body") }
-body { id14 } name "cell 5"
-move body { id14 } midpoint location 0.75 -1.299038105676658 0.0
-cylinder height 2.0 radius 0.4
+subtract body { id13 } from body { id14 }
+cylinder height 500 radius 0.4572
#{ id15 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
#{ id16 = Id("body") }
-rotate body { id16 } about z angle 30
-subtract body { id15 } from body { id16 }
-body { id16 } name "cell 6"
-move body { id16 } midpoint location 0.75 -1.299038105676658 0.0
-cylinder height 2.0 radius 0.4
+intersect body { id14 } { id15 }
#{ id17 = Id("body") }
-body { id17 } name "cell 5"
-move body { id17 } midpoint location 0.0 -1.7320508075688772 0.0
-cylinder height 2.0 radius 0.4
-#{ id18 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+#{id18 = ( id16 == id17 ) ? id15 : id17}
+brick x 1.26 y 1.26 z 500
#{ id19 = Id("body") }
-rotate body { id19 } about z angle 30
-subtract body { id18 } from body { id19 }
-body { id19 } name "cell 6"
-move body { id19 } midpoint location 0.0 -1.7320508075688772 0.0
-cylinder height 2.0 radius 0.4
+intersect body { id18 } { id19 }
#{ id20 = Id("body") }
-body { id20 } name "cell 5"
-move body { id20 } midpoint location -0.75 -1.299038105676658 0.0
-cylinder height 2.0 radius 0.4
+body { id20 } name "Cell_2"
+move body { id20 } midpoint location -8.82 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id21 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+brick x 1.26 y 1.26 z 500
#{ id22 = Id("body") }
-rotate body { id22 } about z angle 30
subtract body { id21 } from body { id22 }
-body { id22 } name "cell 6"
-move body { id22 } midpoint location -0.75 -1.299038105676658 0.0
-cylinder height 2.0 radius 0.4
+body { id22 } name "Cell_3"
+move body { id22 } midpoint location -8.82 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id23 = Id("body") }
-body { id23 } name "cell 5"
-move body { id23 } midpoint location -1.5 -0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+body { id23 } name "Cell_1"
+move body { id23 } midpoint location -7.5600000000000005 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id24 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+brick x 1.26 y 1.26 z 500
#{ id25 = Id("body") }
-rotate body { id25 } about z angle 30
subtract body { id24 } from body { id25 }
-body { id25 } name "cell 6"
-move body { id25 } midpoint location -1.5 -0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+cylinder height 500 radius 0.4572
#{ id26 = Id("body") }
-body { id26 } name "cell 5"
-move body { id26 } midpoint location -1.5 0.0 0.0
-cylinder height 2.0 radius 0.4
#{ id27 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id25 } { id26 }
#{ id28 = Id("body") }
-rotate body { id28 } about z angle 30
-subtract body { id27 } from body { id28 }
-body { id28 } name "cell 6"
-move body { id28 } midpoint location -1.5 0.0 0.0
-cylinder height 2.0 radius 0.4
-#{ id29 = Id("body") }
-body { id29 } name "cell 5"
-move body { id29 } midpoint location -1.5 0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+#{id29 = ( id27 == id28 ) ? id26 : id28}
+brick x 1.26 y 1.26 z 500
#{ id30 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id29 } { id30 }
#{ id31 = Id("body") }
-rotate body { id31 } about z angle 30
-subtract body { id30 } from body { id31 }
-body { id31 } name "cell 6"
-move body { id31 } midpoint location -1.5 0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+body { id31 } name "Cell_2"
+move body { id31 } midpoint location -7.5600000000000005 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id32 = Id("body") }
-body { id32 } name "cell 5"
-move body { id32 } midpoint location -0.75 1.299038105676658 0.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id33 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+subtract body { id32 } from body { id33 }
+body { id33 } name "Cell_3"
+move body { id33 } midpoint location -7.5600000000000005 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id34 = Id("body") }
-rotate body { id34 } about z angle 30
-subtract body { id33 } from body { id34 }
-body { id34 } name "cell 6"
-move body { id34 } midpoint location -0.75 1.299038105676658 0.0
-create prism height 2.0 sides 6 radius 0.5
+body { id34 } name "Cell_1"
+move body { id34 } midpoint location -6.3 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id35 = Id("body") }
-rotate body { id35 } about z angle 30
-body { id35 } name "cell 4"
-move body { id35 } midpoint location 5.302876193624534e-17 0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id36 = Id("body") }
-body { id36 } name "cell 5"
-move body { id36 } midpoint location 0.7499999999999999 0.4330127018922193 0.0
-cylinder height 2.0 radius 0.4
+subtract body { id35 } from body { id36 }
+cylinder height 500 radius 0.4572
#{ id37 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
#{ id38 = Id("body") }
-rotate body { id38 } about z angle 30
-subtract body { id37 } from body { id38 }
-body { id38 } name "cell 6"
-move body { id38 } midpoint location 0.7499999999999999 0.4330127018922193 0.0
-cylinder height 2.0 radius 0.4
+intersect body { id36 } { id37 }
#{ id39 = Id("body") }
-body { id39 } name "cell 5"
-move body { id39 } midpoint location 0.75 -0.43301270189221913 0.0
-cylinder height 2.0 radius 0.4
-#{ id40 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+#{id40 = ( id38 == id39 ) ? id37 : id39}
+brick x 1.26 y 1.26 z 500
#{ id41 = Id("body") }
-rotate body { id41 } about z angle 30
-subtract body { id40 } from body { id41 }
-body { id41 } name "cell 6"
-move body { id41 } midpoint location 0.75 -0.43301270189221913 0.0
-cylinder height 2.0 radius 0.4
+intersect body { id40 } { id41 }
#{ id42 = Id("body") }
-body { id42 } name "cell 5"
-move body { id42 } midpoint location 5.302876193624534e-17 -0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+body { id42 } name "Cell_2"
+move body { id42 } midpoint location -6.3 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id43 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+brick x 1.26 y 1.26 z 500
#{ id44 = Id("body") }
-rotate body { id44 } about z angle 30
subtract body { id43 } from body { id44 }
-body { id44 } name "cell 6"
-move body { id44 } midpoint location 5.302876193624534e-17 -0.8660254037844386 0.0
-cylinder height 2.0 radius 0.4
+body { id44 } name "Cell_3"
+move body { id44 } midpoint location -6.3 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id45 = Id("body") }
-body { id45 } name "cell 5"
-move body { id45 } midpoint location -0.7499999999999998 -0.4330127018922196 0.0
-cylinder height 2.0 radius 0.4
+body { id45 } name "Cell_1"
+move body { id45 } midpoint location -5.04 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id46 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+brick x 1.26 y 1.26 z 500
#{ id47 = Id("body") }
-rotate body { id47 } about z angle 30
subtract body { id46 } from body { id47 }
-body { id47 } name "cell 6"
-move body { id47 } midpoint location -0.7499999999999998 -0.4330127018922196 0.0
-cylinder height 2.0 radius 0.4
+cylinder height 500 radius 0.4572
#{ id48 = Id("body") }
-body { id48 } name "cell 5"
-move body { id48 } midpoint location -0.7499999999999999 0.4330127018922194 0.0
-cylinder height 2.0 radius 0.4
#{ id49 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id47 } { id48 }
#{ id50 = Id("body") }
-rotate body { id50 } about z angle 30
-subtract body { id49 } from body { id50 }
-body { id50 } name "cell 6"
-move body { id50 } midpoint location -0.7499999999999999 0.4330127018922194 0.0
-cylinder height 2.0 radius 0.4
-#{ id51 = Id("body") }
-body { id51 } name "cell 5"
-move body { id51 } midpoint location 0.0 0.0 0.0
-cylinder height 2.0 radius 0.4
+#{id51 = ( id49 == id50 ) ? id48 : id50}
+brick x 1.26 y 1.26 z 500
#{ id52 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id51 } { id52 }
#{ id53 = Id("body") }
-rotate body { id53 } about z angle 30
-subtract body { id52 } from body { id53 }
-body { id53 } name "cell 6"
-move body { id53 } midpoint location 0.0 0.0 0.0
-create prism height 2.0 sides 6 radius 0.5
+body { id53 } name "Cell_2"
+move body { id53 } midpoint location -5.04 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id54 = Id("body") }
-rotate body { id54 } about z angle 30
-body { id54 } name "cell 4"
-move body { id54 } midpoint location 0.0 1.7320508075688772 2.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id55 = Id("body") }
-body { id55 } name "cell 2"
-move body { id55 } midpoint location 0.75 1.299038105676658 2.0
-cylinder height 2.0 radius 0.4
+subtract body { id54 } from body { id55 }
+body { id55 } name "Cell_3"
+move body { id55 } midpoint location -5.04 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id56 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+body { id56 } name "Cell_1"
+move body { id56 } midpoint location -3.7800000000000002 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id57 = Id("body") }
-rotate body { id57 } about z angle 30
-subtract body { id56 } from body { id57 }
-body { id57 } name "cell 3"
-move body { id57 } midpoint location 0.75 1.299038105676658 2.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id58 = Id("body") }
-body { id58 } name "cell 2"
-move body { id58 } midpoint location 1.5 0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+subtract body { id57 } from body { id58 }
+cylinder height 500 radius 0.4572
#{ id59 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
#{ id60 = Id("body") }
-rotate body { id60 } about z angle 30
-subtract body { id59 } from body { id60 }
-body { id60 } name "cell 3"
-move body { id60 } midpoint location 1.5 0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+intersect body { id58 } { id59 }
#{ id61 = Id("body") }
-body { id61 } name "cell 2"
-move body { id61 } midpoint location 1.5 0.0 2.0
-cylinder height 2.0 radius 0.4
-#{ id62 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+#{id62 = ( id60 == id61 ) ? id59 : id61}
+brick x 1.26 y 1.26 z 500
#{ id63 = Id("body") }
-rotate body { id63 } about z angle 30
-subtract body { id62 } from body { id63 }
-body { id63 } name "cell 3"
-move body { id63 } midpoint location 1.5 0.0 2.0
-cylinder height 2.0 radius 0.4
+intersect body { id62 } { id63 }
#{ id64 = Id("body") }
-body { id64 } name "cell 2"
-move body { id64 } midpoint location 1.5 -0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+body { id64 } name "Cell_2"
+move body { id64 } midpoint location -3.7800000000000002 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id65 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+brick x 1.26 y 1.26 z 500
#{ id66 = Id("body") }
-rotate body { id66 } about z angle 30
subtract body { id65 } from body { id66 }
-body { id66 } name "cell 3"
-move body { id66 } midpoint location 1.5 -0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+body { id66 } name "Cell_3"
+move body { id66 } midpoint location -3.7800000000000002 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id67 = Id("body") }
-body { id67 } name "cell 2"
-move body { id67 } midpoint location 0.75 -1.299038105676658 2.0
-cylinder height 2.0 radius 0.4
+body { id67 } name "Cell_1"
+move body { id67 } midpoint location -2.5199999999999996 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id68 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+brick x 1.26 y 1.26 z 500
#{ id69 = Id("body") }
-rotate body { id69 } about z angle 30
subtract body { id68 } from body { id69 }
-body { id69 } name "cell 3"
-move body { id69 } midpoint location 0.75 -1.299038105676658 2.0
-cylinder height 2.0 radius 0.4
+cylinder height 500 radius 0.4572
#{ id70 = Id("body") }
-body { id70 } name "cell 2"
-move body { id70 } midpoint location 0.0 -1.7320508075688772 2.0
-cylinder height 2.0 radius 0.4
#{ id71 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id69 } { id70 }
#{ id72 = Id("body") }
-rotate body { id72 } about z angle 30
-subtract body { id71 } from body { id72 }
-body { id72 } name "cell 3"
-move body { id72 } midpoint location 0.0 -1.7320508075688772 2.0
-cylinder height 2.0 radius 0.4
-#{ id73 = Id("body") }
-body { id73 } name "cell 2"
-move body { id73 } midpoint location -0.75 -1.299038105676658 2.0
-cylinder height 2.0 radius 0.4
+#{id73 = ( id71 == id72 ) ? id70 : id72}
+brick x 1.26 y 1.26 z 500
#{ id74 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id73 } { id74 }
#{ id75 = Id("body") }
-rotate body { id75 } about z angle 30
-subtract body { id74 } from body { id75 }
-body { id75 } name "cell 3"
-move body { id75 } midpoint location -0.75 -1.299038105676658 2.0
-cylinder height 2.0 radius 0.4
+body { id75 } name "Cell_2"
+move body { id75 } midpoint location -2.5199999999999996 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id76 = Id("body") }
-body { id76 } name "cell 2"
-move body { id76 } midpoint location -1.5 -0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id77 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+subtract body { id76 } from body { id77 }
+body { id77 } name "Cell_3"
+move body { id77 } midpoint location -2.5199999999999996 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id78 = Id("body") }
-rotate body { id78 } about z angle 30
-subtract body { id77 } from body { id78 }
-body { id78 } name "cell 3"
-move body { id78 } midpoint location -1.5 -0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+body { id78 } name "Cell_1"
+move body { id78 } midpoint location -1.2599999999999998 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id79 = Id("body") }
-body { id79 } name "cell 2"
-move body { id79 } midpoint location -1.5 0.0 2.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id80 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+subtract body { id79 } from body { id80 }
+cylinder height 500 radius 0.4572
#{ id81 = Id("body") }
-rotate body { id81 } about z angle 30
-subtract body { id80 } from body { id81 }
-body { id81 } name "cell 3"
-move body { id81 } midpoint location -1.5 0.0 2.0
-cylinder height 2.0 radius 0.4
#{ id82 = Id("body") }
-body { id82 } name "cell 2"
-move body { id82 } midpoint location -1.5 0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+intersect body { id80 } { id81 }
#{ id83 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
-#{ id84 = Id("body") }
-rotate body { id84 } about z angle 30
-subtract body { id83 } from body { id84 }
-body { id84 } name "cell 3"
-move body { id84 } midpoint location -1.5 0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+#{id84 = ( id82 == id83 ) ? id81 : id83}
+brick x 1.26 y 1.26 z 500
#{ id85 = Id("body") }
-body { id85 } name "cell 2"
-move body { id85 } midpoint location -0.75 1.299038105676658 2.0
-cylinder height 2.0 radius 0.4
+intersect body { id84 } { id85 }
#{ id86 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+body { id86 } name "Cell_2"
+move body { id86 } midpoint location -1.2599999999999998 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id87 = Id("body") }
-rotate body { id87 } about z angle 30
-subtract body { id86 } from body { id87 }
-body { id87 } name "cell 3"
-move body { id87 } midpoint location -0.75 1.299038105676658 2.0
-create prism height 2.0 sides 6 radius 0.5
+brick x 1.26 y 1.26 z 500
#{ id88 = Id("body") }
-rotate body { id88 } about z angle 30
-body { id88 } name "cell 4"
-move body { id88 } midpoint location 5.302876193624534e-17 0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+subtract body { id87 } from body { id88 }
+body { id88 } name "Cell_3"
+move body { id88 } midpoint location -1.2599999999999998 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id89 = Id("body") }
-body { id89 } name "cell 2"
-move body { id89 } midpoint location 0.7499999999999999 0.4330127018922193 2.0
-cylinder height 2.0 radius 0.4
+body { id89 } name "Cell_1"
+move body { id89 } midpoint location 0.0 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id90 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+brick x 1.26 y 1.26 z 500
#{ id91 = Id("body") }
-rotate body { id91 } about z angle 30
subtract body { id90 } from body { id91 }
-body { id91 } name "cell 3"
-move body { id91 } midpoint location 0.7499999999999999 0.4330127018922193 2.0
-cylinder height 2.0 radius 0.4
+cylinder height 500 radius 0.4572
#{ id92 = Id("body") }
-body { id92 } name "cell 2"
-move body { id92 } midpoint location 0.75 -0.43301270189221913 2.0
-cylinder height 2.0 radius 0.4
#{ id93 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id91 } { id92 }
#{ id94 = Id("body") }
-rotate body { id94 } about z angle 30
-subtract body { id93 } from body { id94 }
-body { id94 } name "cell 3"
-move body { id94 } midpoint location 0.75 -0.43301270189221913 2.0
-cylinder height 2.0 radius 0.4
-#{ id95 = Id("body") }
-body { id95 } name "cell 2"
-move body { id95 } midpoint location 5.302876193624534e-17 -0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+#{id95 = ( id93 == id94 ) ? id92 : id94}
+brick x 1.26 y 1.26 z 500
#{ id96 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id95 } { id96 }
#{ id97 = Id("body") }
-rotate body { id97 } about z angle 30
-subtract body { id96 } from body { id97 }
-body { id97 } name "cell 3"
-move body { id97 } midpoint location 5.302876193624534e-17 -0.8660254037844386 2.0
-cylinder height 2.0 radius 0.4
+body { id97 } name "Cell_2"
+move body { id97 } midpoint location 0.0 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id98 = Id("body") }
-body { id98 } name "cell 2"
-move body { id98 } midpoint location -0.7499999999999998 -0.4330127018922196 2.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id99 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+subtract body { id98 } from body { id99 }
+body { id99 } name "Cell_3"
+move body { id99 } midpoint location 0.0 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id100 = Id("body") }
-rotate body { id100 } about z angle 30
-subtract body { id99 } from body { id100 }
-body { id100 } name "cell 3"
-move body { id100 } midpoint location -0.7499999999999998 -0.4330127018922196 2.0
-cylinder height 2.0 radius 0.4
+body { id100 } name "Cell_1"
+move body { id100 } midpoint location 1.2599999999999998 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id101 = Id("body") }
-body { id101 } name "cell 2"
-move body { id101 } midpoint location -0.7499999999999999 0.4330127018922194 2.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id102 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+subtract body { id101 } from body { id102 }
+cylinder height 500 radius 0.4572
#{ id103 = Id("body") }
-rotate body { id103 } about z angle 30
-subtract body { id102 } from body { id103 }
-body { id103 } name "cell 3"
-move body { id103 } midpoint location -0.7499999999999999 0.4330127018922194 2.0
-cylinder height 2.0 radius 0.4
#{ id104 = Id("body") }
-body { id104 } name "cell 2"
-move body { id104 } midpoint location 0.0 0.0 2.0
-cylinder height 2.0 radius 0.4
+intersect body { id102 } { id103 }
#{ id105 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
-#{ id106 = Id("body") }
-rotate body { id106 } about z angle 30
-subtract body { id105 } from body { id106 }
-body { id106 } name "cell 3"
-move body { id106 } midpoint location 0.0 0.0 2.0
-create prism height 2.0 sides 6 radius 0.5
+#{id106 = ( id104 == id105 ) ? id103 : id105}
+brick x 1.26 y 1.26 z 500
#{ id107 = Id("body") }
-rotate body { id107 } about z angle 30
-body { id107 } name "cell 4"
-move body { id107 } midpoint location 0.0 1.7320508075688772 4.0
-cylinder height 2.0 radius 0.4
+intersect body { id106 } { id107 }
#{ id108 = Id("body") }
-body { id108 } name "cell 5"
-move body { id108 } midpoint location 0.75 1.299038105676658 4.0
-cylinder height 2.0 radius 0.4
+body { id108 } name "Cell_2"
+move body { id108 } midpoint location 1.2599999999999998 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id109 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+brick x 1.26 y 1.26 z 500
#{ id110 = Id("body") }
-rotate body { id110 } about z angle 30
subtract body { id109 } from body { id110 }
-body { id110 } name "cell 6"
-move body { id110 } midpoint location 0.75 1.299038105676658 4.0
-cylinder height 2.0 radius 0.4
+body { id110 } name "Cell_3"
+move body { id110 } midpoint location 1.2599999999999998 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id111 = Id("body") }
-body { id111 } name "cell 5"
-move body { id111 } midpoint location 1.5 0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+body { id111 } name "Cell_1"
+move body { id111 } midpoint location 2.5199999999999996 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id112 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+brick x 1.26 y 1.26 z 500
#{ id113 = Id("body") }
-rotate body { id113 } about z angle 30
subtract body { id112 } from body { id113 }
-body { id113 } name "cell 6"
-move body { id113 } midpoint location 1.5 0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+cylinder height 500 radius 0.4572
#{ id114 = Id("body") }
-body { id114 } name "cell 5"
-move body { id114 } midpoint location 1.5 0.0 4.0
-cylinder height 2.0 radius 0.4
#{ id115 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id113 } { id114 }
#{ id116 = Id("body") }
-rotate body { id116 } about z angle 30
-subtract body { id115 } from body { id116 }
-body { id116 } name "cell 6"
-move body { id116 } midpoint location 1.5 0.0 4.0
-cylinder height 2.0 radius 0.4
-#{ id117 = Id("body") }
-body { id117 } name "cell 5"
-move body { id117 } midpoint location 1.5 -0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+#{id117 = ( id115 == id116 ) ? id114 : id116}
+brick x 1.26 y 1.26 z 500
#{ id118 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id117 } { id118 }
#{ id119 = Id("body") }
-rotate body { id119 } about z angle 30
-subtract body { id118 } from body { id119 }
-body { id119 } name "cell 6"
-move body { id119 } midpoint location 1.5 -0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+body { id119 } name "Cell_2"
+move body { id119 } midpoint location 2.5199999999999996 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id120 = Id("body") }
-body { id120 } name "cell 5"
-move body { id120 } midpoint location 0.75 -1.299038105676658 4.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id121 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+subtract body { id120 } from body { id121 }
+body { id121 } name "Cell_3"
+move body { id121 } midpoint location 2.5199999999999996 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id122 = Id("body") }
-rotate body { id122 } about z angle 30
-subtract body { id121 } from body { id122 }
-body { id122 } name "cell 6"
-move body { id122 } midpoint location 0.75 -1.299038105676658 4.0
-cylinder height 2.0 radius 0.4
+body { id122 } name "Cell_1"
+move body { id122 } midpoint location 3.7799999999999994 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id123 = Id("body") }
-body { id123 } name "cell 5"
-move body { id123 } midpoint location 0.0 -1.7320508075688772 4.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id124 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+subtract body { id123 } from body { id124 }
+cylinder height 500 radius 0.4572
#{ id125 = Id("body") }
-rotate body { id125 } about z angle 30
-subtract body { id124 } from body { id125 }
-body { id125 } name "cell 6"
-move body { id125 } midpoint location 0.0 -1.7320508075688772 4.0
-cylinder height 2.0 radius 0.4
#{ id126 = Id("body") }
-body { id126 } name "cell 5"
-move body { id126 } midpoint location -0.75 -1.299038105676658 4.0
-cylinder height 2.0 radius 0.4
+intersect body { id124 } { id125 }
#{ id127 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
-#{ id128 = Id("body") }
-rotate body { id128 } about z angle 30
-subtract body { id127 } from body { id128 }
-body { id128 } name "cell 6"
-move body { id128 } midpoint location -0.75 -1.299038105676658 4.0
-cylinder height 2.0 radius 0.4
+#{id128 = ( id126 == id127 ) ? id125 : id127}
+brick x 1.26 y 1.26 z 500
#{ id129 = Id("body") }
-body { id129 } name "cell 5"
-move body { id129 } midpoint location -1.5 -0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+intersect body { id128 } { id129 }
#{ id130 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+body { id130 } name "Cell_2"
+move body { id130 } midpoint location 3.7799999999999994 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id131 = Id("body") }
-rotate body { id131 } about z angle 30
-subtract body { id130 } from body { id131 }
-body { id131 } name "cell 6"
-move body { id131 } midpoint location -1.5 -0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id132 = Id("body") }
-body { id132 } name "cell 5"
-move body { id132 } midpoint location -1.5 0.0 4.0
-cylinder height 2.0 radius 0.4
+subtract body { id131 } from body { id132 }
+body { id132 } name "Cell_3"
+move body { id132 } midpoint location 3.7799999999999994 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id133 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+body { id133 } name "Cell_1"
+move body { id133 } midpoint location 5.040000000000001 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id134 = Id("body") }
-rotate body { id134 } about z angle 30
-subtract body { id133 } from body { id134 }
-body { id134 } name "cell 6"
-move body { id134 } midpoint location -1.5 0.0 4.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id135 = Id("body") }
-body { id135 } name "cell 5"
-move body { id135 } midpoint location -1.5 0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+subtract body { id134 } from body { id135 }
+cylinder height 500 radius 0.4572
#{ id136 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
#{ id137 = Id("body") }
-rotate body { id137 } about z angle 30
-subtract body { id136 } from body { id137 }
-body { id137 } name "cell 6"
-move body { id137 } midpoint location -1.5 0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+intersect body { id135 } { id136 }
#{ id138 = Id("body") }
-body { id138 } name "cell 5"
-move body { id138 } midpoint location -0.75 1.299038105676658 4.0
-cylinder height 2.0 radius 0.4
-#{ id139 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+#{id139 = ( id137 == id138 ) ? id136 : id138}
+brick x 1.26 y 1.26 z 500
#{ id140 = Id("body") }
-rotate body { id140 } about z angle 30
-subtract body { id139 } from body { id140 }
-body { id140 } name "cell 6"
-move body { id140 } midpoint location -0.75 1.299038105676658 4.0
-create prism height 2.0 sides 6 radius 0.5
+intersect body { id139 } { id140 }
#{ id141 = Id("body") }
-rotate body { id141 } about z angle 30
-body { id141 } name "cell 4"
-move body { id141 } midpoint location 5.302876193624534e-17 0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+body { id141 } name "Cell_2"
+move body { id141 } midpoint location 5.040000000000001 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id142 = Id("body") }
-body { id142 } name "cell 5"
-move body { id142 } midpoint location 0.7499999999999999 0.4330127018922193 4.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id143 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+subtract body { id142 } from body { id143 }
+body { id143 } name "Cell_3"
+move body { id143 } midpoint location 5.040000000000001 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id144 = Id("body") }
-rotate body { id144 } about z angle 30
-subtract body { id143 } from body { id144 }
-body { id144 } name "cell 6"
-move body { id144 } midpoint location 0.7499999999999999 0.4330127018922193 4.0
-cylinder height 2.0 radius 0.4
+body { id144 } name "Cell_1"
+move body { id144 } midpoint location 6.299999999999999 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id145 = Id("body") }
-body { id145 } name "cell 5"
-move body { id145 } midpoint location 0.75 -0.43301270189221913 4.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id146 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+subtract body { id145 } from body { id146 }
+cylinder height 500 radius 0.4572
#{ id147 = Id("body") }
-rotate body { id147 } about z angle 30
-subtract body { id146 } from body { id147 }
-body { id147 } name "cell 6"
-move body { id147 } midpoint location 0.75 -0.43301270189221913 4.0
-cylinder height 2.0 radius 0.4
#{ id148 = Id("body") }
-body { id148 } name "cell 5"
-move body { id148 } midpoint location 5.302876193624534e-17 -0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+intersect body { id146 } { id147 }
#{ id149 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
-#{ id150 = Id("body") }
-rotate body { id150 } about z angle 30
-subtract body { id149 } from body { id150 }
-body { id150 } name "cell 6"
-move body { id150 } midpoint location 5.302876193624534e-17 -0.8660254037844386 4.0
-cylinder height 2.0 radius 0.4
+#{id150 = ( id148 == id149 ) ? id147 : id149}
+brick x 1.26 y 1.26 z 500
#{ id151 = Id("body") }
-body { id151 } name "cell 5"
-move body { id151 } midpoint location -0.7499999999999998 -0.4330127018922196 4.0
-cylinder height 2.0 radius 0.4
+intersect body { id150 } { id151 }
#{ id152 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+body { id152 } name "Cell_2"
+move body { id152 } midpoint location 6.299999999999999 -10.08 0 except z
+cylinder height 500 radius 0.4572
#{ id153 = Id("body") }
-rotate body { id153 } about z angle 30
-subtract body { id152 } from body { id153 }
-body { id153 } name "cell 6"
-move body { id153 } midpoint location -0.7499999999999998 -0.4330127018922196 4.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id154 = Id("body") }
-body { id154 } name "cell 5"
-move body { id154 } midpoint location -0.7499999999999999 0.4330127018922194 4.0
-cylinder height 2.0 radius 0.4
+subtract body { id153 } from body { id154 }
+body { id154 } name "Cell_3"
+move body { id154 } midpoint location 6.299999999999999 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id155 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
+body { id155 } name "Cell_1"
+move body { id155 } midpoint location 7.5600000000000005 -10.08 0 except z
+cylinder height 500 radius 0.39218
#{ id156 = Id("body") }
-rotate body { id156 } about z angle 30
-subtract body { id155 } from body { id156 }
-body { id156 } name "cell 6"
-move body { id156 } midpoint location -0.7499999999999999 0.4330127018922194 4.0
-cylinder height 2.0 radius 0.4
+brick x 1.26 y 1.26 z 500
#{ id157 = Id("body") }
-body { id157 } name "cell 5"
-move body { id157 } midpoint location 0.0 0.0 4.0
-cylinder height 2.0 radius 0.4
+subtract body { id156 } from body { id157 }
+cylinder height 500 radius 0.4572
#{ id158 = Id("body") }
-create prism height 2.0 sides 6 radius 0.5
#{ id159 = Id("body") }
-rotate body { id159 } about z angle 30
-subtract body { id158 } from body { id159 }
-body { id159 } name "cell 6"
-move body { id159 } midpoint location 0.0 0.0 4.0
+intersect body { id157 } { id158 }
+#{ id160 = Id("body") }
+#{id161 = ( id159 == id160 ) ? id158 : id160}
+brick x 1.26 y 1.26 z 500
+#{ id162 = Id("body") }
+intersect body { id161 } { id162 }
+#{ id163 = Id("body") }
+body { id163 } name "Cell_2"
+move body { id163 } midpoint location 7.5600000000000005 -10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id164 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id165 = Id("body") }
+subtract body { id164 } from body { id165 }
+body { id165 } name "Cell_3"
+move body { id165 } midpoint location 7.5600000000000005 -10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id166 = Id("body") }
+body { id166 } name "Cell_1"
+move body { id166 } midpoint location 8.819999999999999 -10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id167 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id168 = Id("body") }
+subtract body { id167 } from body { id168 }
+cylinder height 500 radius 0.4572
+#{ id169 = Id("body") }
+#{ id170 = Id("body") }
+intersect body { id168 } { id169 }
+#{ id171 = Id("body") }
+#{id172 = ( id170 == id171 ) ? id169 : id171}
+brick x 1.26 y 1.26 z 500
+#{ id173 = Id("body") }
+intersect body { id172 } { id173 }
+#{ id174 = Id("body") }
+body { id174 } name "Cell_2"
+move body { id174 } midpoint location 8.819999999999999 -10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id175 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id176 = Id("body") }
+subtract body { id175 } from body { id176 }
+body { id176 } name "Cell_3"
+move body { id176 } midpoint location 8.819999999999999 -10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id177 = Id("body") }
+body { id177 } name "Cell_1"
+move body { id177 } midpoint location 10.08 -10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id178 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id179 = Id("body") }
+subtract body { id178 } from body { id179 }
+cylinder height 500 radius 0.4572
+#{ id180 = Id("body") }
+#{ id181 = Id("body") }
+intersect body { id179 } { id180 }
+#{ id182 = Id("body") }
+#{id183 = ( id181 == id182 ) ? id180 : id182}
+brick x 1.26 y 1.26 z 500
+#{ id184 = Id("body") }
+intersect body { id183 } { id184 }
+#{ id185 = Id("body") }
+body { id185 } name "Cell_2"
+move body { id185 } midpoint location 10.08 -10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id186 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id187 = Id("body") }
+subtract body { id186 } from body { id187 }
+body { id187 } name "Cell_3"
+move body { id187 } midpoint location 10.08 -10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id188 = Id("body") }
+body { id188 } name "Cell_1"
+move body { id188 } midpoint location -10.08 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id189 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id190 = Id("body") }
+subtract body { id189 } from body { id190 }
+cylinder height 500 radius 0.4572
+#{ id191 = Id("body") }
+#{ id192 = Id("body") }
+intersect body { id190 } { id191 }
+#{ id193 = Id("body") }
+#{id194 = ( id192 == id193 ) ? id191 : id193}
+brick x 1.26 y 1.26 z 500
+#{ id195 = Id("body") }
+intersect body { id194 } { id195 }
+#{ id196 = Id("body") }
+body { id196 } name "Cell_2"
+move body { id196 } midpoint location -10.08 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id197 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id198 = Id("body") }
+subtract body { id197 } from body { id198 }
+body { id198 } name "Cell_3"
+move body { id198 } midpoint location -10.08 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id199 = Id("body") }
+body { id199 } name "Cell_1"
+move body { id199 } midpoint location -8.82 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id200 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id201 = Id("body") }
+subtract body { id200 } from body { id201 }
+cylinder height 500 radius 0.4572
+#{ id202 = Id("body") }
+#{ id203 = Id("body") }
+intersect body { id201 } { id202 }
+#{ id204 = Id("body") }
+#{id205 = ( id203 == id204 ) ? id202 : id204}
+brick x 1.26 y 1.26 z 500
+#{ id206 = Id("body") }
+intersect body { id205 } { id206 }
+#{ id207 = Id("body") }
+body { id207 } name "Cell_2"
+move body { id207 } midpoint location -8.82 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id208 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id209 = Id("body") }
+subtract body { id208 } from body { id209 }
+body { id209 } name "Cell_3"
+move body { id209 } midpoint location -8.82 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id210 = Id("body") }
+body { id210 } name "Cell_1"
+move body { id210 } midpoint location -7.5600000000000005 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id211 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id212 = Id("body") }
+subtract body { id211 } from body { id212 }
+cylinder height 500 radius 0.4572
+#{ id213 = Id("body") }
+#{ id214 = Id("body") }
+intersect body { id212 } { id213 }
+#{ id215 = Id("body") }
+#{id216 = ( id214 == id215 ) ? id213 : id215}
+brick x 1.26 y 1.26 z 500
+#{ id217 = Id("body") }
+intersect body { id216 } { id217 }
+#{ id218 = Id("body") }
+body { id218 } name "Cell_2"
+move body { id218 } midpoint location -7.5600000000000005 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id219 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id220 = Id("body") }
+subtract body { id219 } from body { id220 }
+body { id220 } name "Cell_3"
+move body { id220 } midpoint location -7.5600000000000005 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id221 = Id("body") }
+body { id221 } name "Cell_1"
+move body { id221 } midpoint location -6.3 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id222 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id223 = Id("body") }
+subtract body { id222 } from body { id223 }
+cylinder height 500 radius 0.4572
+#{ id224 = Id("body") }
+#{ id225 = Id("body") }
+intersect body { id223 } { id224 }
+#{ id226 = Id("body") }
+#{id227 = ( id225 == id226 ) ? id224 : id226}
+brick x 1.26 y 1.26 z 500
+#{ id228 = Id("body") }
+intersect body { id227 } { id228 }
+#{ id229 = Id("body") }
+body { id229 } name "Cell_2"
+move body { id229 } midpoint location -6.3 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id230 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id231 = Id("body") }
+subtract body { id230 } from body { id231 }
+body { id231 } name "Cell_3"
+move body { id231 } midpoint location -6.3 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id232 = Id("body") }
+body { id232 } name "Cell_1"
+move body { id232 } midpoint location -5.04 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id233 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id234 = Id("body") }
+subtract body { id233 } from body { id234 }
+cylinder height 500 radius 0.4572
+#{ id235 = Id("body") }
+#{ id236 = Id("body") }
+intersect body { id234 } { id235 }
+#{ id237 = Id("body") }
+#{id238 = ( id236 == id237 ) ? id235 : id237}
+brick x 1.26 y 1.26 z 500
+#{ id239 = Id("body") }
+intersect body { id238 } { id239 }
+#{ id240 = Id("body") }
+body { id240 } name "Cell_2"
+move body { id240 } midpoint location -5.04 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id241 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id242 = Id("body") }
+subtract body { id241 } from body { id242 }
+body { id242 } name "Cell_3"
+move body { id242 } midpoint location -5.04 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id243 = Id("body") }
+body { id243 } name "Cell_1"
+move body { id243 } midpoint location -3.7800000000000002 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id244 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id245 = Id("body") }
+subtract body { id244 } from body { id245 }
+cylinder height 500 radius 0.4572
+#{ id246 = Id("body") }
+#{ id247 = Id("body") }
+intersect body { id245 } { id246 }
+#{ id248 = Id("body") }
+#{id249 = ( id247 == id248 ) ? id246 : id248}
+brick x 1.26 y 1.26 z 500
+#{ id250 = Id("body") }
+intersect body { id249 } { id250 }
+#{ id251 = Id("body") }
+body { id251 } name "Cell_2"
+move body { id251 } midpoint location -3.7800000000000002 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id252 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id253 = Id("body") }
+subtract body { id252 } from body { id253 }
+body { id253 } name "Cell_3"
+move body { id253 } midpoint location -3.7800000000000002 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id254 = Id("body") }
+body { id254 } name "Cell_1"
+move body { id254 } midpoint location -2.5199999999999996 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id255 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id256 = Id("body") }
+subtract body { id255 } from body { id256 }
+cylinder height 500 radius 0.4572
+#{ id257 = Id("body") }
+#{ id258 = Id("body") }
+intersect body { id256 } { id257 }
+#{ id259 = Id("body") }
+#{id260 = ( id258 == id259 ) ? id257 : id259}
+brick x 1.26 y 1.26 z 500
+#{ id261 = Id("body") }
+intersect body { id260 } { id261 }
+#{ id262 = Id("body") }
+body { id262 } name "Cell_2"
+move body { id262 } midpoint location -2.5199999999999996 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id263 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id264 = Id("body") }
+subtract body { id263 } from body { id264 }
+body { id264 } name "Cell_3"
+move body { id264 } midpoint location -2.5199999999999996 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id265 = Id("body") }
+body { id265 } name "Cell_1"
+move body { id265 } midpoint location -1.2599999999999998 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id266 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id267 = Id("body") }
+subtract body { id266 } from body { id267 }
+cylinder height 500 radius 0.4572
+#{ id268 = Id("body") }
+#{ id269 = Id("body") }
+intersect body { id267 } { id268 }
+#{ id270 = Id("body") }
+#{id271 = ( id269 == id270 ) ? id268 : id270}
+brick x 1.26 y 1.26 z 500
+#{ id272 = Id("body") }
+intersect body { id271 } { id272 }
+#{ id273 = Id("body") }
+body { id273 } name "Cell_2"
+move body { id273 } midpoint location -1.2599999999999998 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id274 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id275 = Id("body") }
+subtract body { id274 } from body { id275 }
+body { id275 } name "Cell_3"
+move body { id275 } midpoint location -1.2599999999999998 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id276 = Id("body") }
+body { id276 } name "Cell_1"
+move body { id276 } midpoint location 0.0 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id277 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id278 = Id("body") }
+subtract body { id277 } from body { id278 }
+cylinder height 500 radius 0.4572
+#{ id279 = Id("body") }
+#{ id280 = Id("body") }
+intersect body { id278 } { id279 }
+#{ id281 = Id("body") }
+#{id282 = ( id280 == id281 ) ? id279 : id281}
+brick x 1.26 y 1.26 z 500
+#{ id283 = Id("body") }
+intersect body { id282 } { id283 }
+#{ id284 = Id("body") }
+body { id284 } name "Cell_2"
+move body { id284 } midpoint location 0.0 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id285 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id286 = Id("body") }
+subtract body { id285 } from body { id286 }
+body { id286 } name "Cell_3"
+move body { id286 } midpoint location 0.0 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id287 = Id("body") }
+body { id287 } name "Cell_1"
+move body { id287 } midpoint location 1.2599999999999998 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id288 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id289 = Id("body") }
+subtract body { id288 } from body { id289 }
+cylinder height 500 radius 0.4572
+#{ id290 = Id("body") }
+#{ id291 = Id("body") }
+intersect body { id289 } { id290 }
+#{ id292 = Id("body") }
+#{id293 = ( id291 == id292 ) ? id290 : id292}
+brick x 1.26 y 1.26 z 500
+#{ id294 = Id("body") }
+intersect body { id293 } { id294 }
+#{ id295 = Id("body") }
+body { id295 } name "Cell_2"
+move body { id295 } midpoint location 1.2599999999999998 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id296 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id297 = Id("body") }
+subtract body { id296 } from body { id297 }
+body { id297 } name "Cell_3"
+move body { id297 } midpoint location 1.2599999999999998 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id298 = Id("body") }
+body { id298 } name "Cell_1"
+move body { id298 } midpoint location 2.5199999999999996 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id299 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id300 = Id("body") }
+subtract body { id299 } from body { id300 }
+cylinder height 500 radius 0.4572
+#{ id301 = Id("body") }
+#{ id302 = Id("body") }
+intersect body { id300 } { id301 }
+#{ id303 = Id("body") }
+#{id304 = ( id302 == id303 ) ? id301 : id303}
+brick x 1.26 y 1.26 z 500
+#{ id305 = Id("body") }
+intersect body { id304 } { id305 }
+#{ id306 = Id("body") }
+body { id306 } name "Cell_2"
+move body { id306 } midpoint location 2.5199999999999996 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id307 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id308 = Id("body") }
+subtract body { id307 } from body { id308 }
+body { id308 } name "Cell_3"
+move body { id308 } midpoint location 2.5199999999999996 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id309 = Id("body") }
+body { id309 } name "Cell_1"
+move body { id309 } midpoint location 3.7799999999999994 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id310 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id311 = Id("body") }
+subtract body { id310 } from body { id311 }
+cylinder height 500 radius 0.4572
+#{ id312 = Id("body") }
+#{ id313 = Id("body") }
+intersect body { id311 } { id312 }
+#{ id314 = Id("body") }
+#{id315 = ( id313 == id314 ) ? id312 : id314}
+brick x 1.26 y 1.26 z 500
+#{ id316 = Id("body") }
+intersect body { id315 } { id316 }
+#{ id317 = Id("body") }
+body { id317 } name "Cell_2"
+move body { id317 } midpoint location 3.7799999999999994 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id318 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id319 = Id("body") }
+subtract body { id318 } from body { id319 }
+body { id319 } name "Cell_3"
+move body { id319 } midpoint location 3.7799999999999994 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id320 = Id("body") }
+body { id320 } name "Cell_1"
+move body { id320 } midpoint location 5.040000000000001 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id321 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id322 = Id("body") }
+subtract body { id321 } from body { id322 }
+cylinder height 500 radius 0.4572
+#{ id323 = Id("body") }
+#{ id324 = Id("body") }
+intersect body { id322 } { id323 }
+#{ id325 = Id("body") }
+#{id326 = ( id324 == id325 ) ? id323 : id325}
+brick x 1.26 y 1.26 z 500
+#{ id327 = Id("body") }
+intersect body { id326 } { id327 }
+#{ id328 = Id("body") }
+body { id328 } name "Cell_2"
+move body { id328 } midpoint location 5.040000000000001 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id329 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id330 = Id("body") }
+subtract body { id329 } from body { id330 }
+body { id330 } name "Cell_3"
+move body { id330 } midpoint location 5.040000000000001 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id331 = Id("body") }
+body { id331 } name "Cell_1"
+move body { id331 } midpoint location 6.299999999999999 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id332 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id333 = Id("body") }
+subtract body { id332 } from body { id333 }
+cylinder height 500 radius 0.4572
+#{ id334 = Id("body") }
+#{ id335 = Id("body") }
+intersect body { id333 } { id334 }
+#{ id336 = Id("body") }
+#{id337 = ( id335 == id336 ) ? id334 : id336}
+brick x 1.26 y 1.26 z 500
+#{ id338 = Id("body") }
+intersect body { id337 } { id338 }
+#{ id339 = Id("body") }
+body { id339 } name "Cell_2"
+move body { id339 } midpoint location 6.299999999999999 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id340 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id341 = Id("body") }
+subtract body { id340 } from body { id341 }
+body { id341 } name "Cell_3"
+move body { id341 } midpoint location 6.299999999999999 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id342 = Id("body") }
+body { id342 } name "Cell_1"
+move body { id342 } midpoint location 7.5600000000000005 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id343 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id344 = Id("body") }
+subtract body { id343 } from body { id344 }
+cylinder height 500 radius 0.4572
+#{ id345 = Id("body") }
+#{ id346 = Id("body") }
+intersect body { id344 } { id345 }
+#{ id347 = Id("body") }
+#{id348 = ( id346 == id347 ) ? id345 : id347}
+brick x 1.26 y 1.26 z 500
+#{ id349 = Id("body") }
+intersect body { id348 } { id349 }
+#{ id350 = Id("body") }
+body { id350 } name "Cell_2"
+move body { id350 } midpoint location 7.5600000000000005 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id351 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id352 = Id("body") }
+subtract body { id351 } from body { id352 }
+body { id352 } name "Cell_3"
+move body { id352 } midpoint location 7.5600000000000005 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id353 = Id("body") }
+body { id353 } name "Cell_1"
+move body { id353 } midpoint location 8.819999999999999 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id354 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id355 = Id("body") }
+subtract body { id354 } from body { id355 }
+cylinder height 500 radius 0.4572
+#{ id356 = Id("body") }
+#{ id357 = Id("body") }
+intersect body { id355 } { id356 }
+#{ id358 = Id("body") }
+#{id359 = ( id357 == id358 ) ? id356 : id358}
+brick x 1.26 y 1.26 z 500
+#{ id360 = Id("body") }
+intersect body { id359 } { id360 }
+#{ id361 = Id("body") }
+body { id361 } name "Cell_2"
+move body { id361 } midpoint location 8.819999999999999 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id362 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id363 = Id("body") }
+subtract body { id362 } from body { id363 }
+body { id363 } name "Cell_3"
+move body { id363 } midpoint location 8.819999999999999 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id364 = Id("body") }
+body { id364 } name "Cell_1"
+move body { id364 } midpoint location 10.08 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id365 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id366 = Id("body") }
+subtract body { id365 } from body { id366 }
+cylinder height 500 radius 0.4572
+#{ id367 = Id("body") }
+#{ id368 = Id("body") }
+intersect body { id366 } { id367 }
+#{ id369 = Id("body") }
+#{id370 = ( id368 == id369 ) ? id367 : id369}
+brick x 1.26 y 1.26 z 500
+#{ id371 = Id("body") }
+intersect body { id370 } { id371 }
+#{ id372 = Id("body") }
+body { id372 } name "Cell_2"
+move body { id372 } midpoint location 10.08 -8.82 0 except z
+cylinder height 500 radius 0.4572
+#{ id373 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id374 = Id("body") }
+subtract body { id373 } from body { id374 }
+body { id374 } name "Cell_3"
+move body { id374 } midpoint location 10.08 -8.82 0 except z
+cylinder height 500 radius 0.39218
+#{ id375 = Id("body") }
+body { id375 } name "Cell_1"
+move body { id375 } midpoint location -10.08 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id376 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id377 = Id("body") }
+subtract body { id376 } from body { id377 }
+cylinder height 500 radius 0.4572
+#{ id378 = Id("body") }
+#{ id379 = Id("body") }
+intersect body { id377 } { id378 }
+#{ id380 = Id("body") }
+#{id381 = ( id379 == id380 ) ? id378 : id380}
+brick x 1.26 y 1.26 z 500
+#{ id382 = Id("body") }
+intersect body { id381 } { id382 }
+#{ id383 = Id("body") }
+body { id383 } name "Cell_2"
+move body { id383 } midpoint location -10.08 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id384 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id385 = Id("body") }
+subtract body { id384 } from body { id385 }
+body { id385 } name "Cell_3"
+move body { id385 } midpoint location -10.08 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id386 = Id("body") }
+body { id386 } name "Cell_1"
+move body { id386 } midpoint location -8.82 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id387 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id388 = Id("body") }
+subtract body { id387 } from body { id388 }
+cylinder height 500 radius 0.4572
+#{ id389 = Id("body") }
+#{ id390 = Id("body") }
+intersect body { id388 } { id389 }
+#{ id391 = Id("body") }
+#{id392 = ( id390 == id391 ) ? id389 : id391}
+brick x 1.26 y 1.26 z 500
+#{ id393 = Id("body") }
+intersect body { id392 } { id393 }
+#{ id394 = Id("body") }
+body { id394 } name "Cell_2"
+move body { id394 } midpoint location -8.82 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id395 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id396 = Id("body") }
+subtract body { id395 } from body { id396 }
+body { id396 } name "Cell_3"
+move body { id396 } midpoint location -8.82 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id397 = Id("body") }
+body { id397 } name "Cell_1"
+move body { id397 } midpoint location -7.5600000000000005 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id398 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id399 = Id("body") }
+subtract body { id398 } from body { id399 }
+cylinder height 500 radius 0.4572
+#{ id400 = Id("body") }
+#{ id401 = Id("body") }
+intersect body { id399 } { id400 }
+#{ id402 = Id("body") }
+#{id403 = ( id401 == id402 ) ? id400 : id402}
+brick x 1.26 y 1.26 z 500
+#{ id404 = Id("body") }
+intersect body { id403 } { id404 }
+#{ id405 = Id("body") }
+body { id405 } name "Cell_2"
+move body { id405 } midpoint location -7.5600000000000005 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id406 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id407 = Id("body") }
+subtract body { id406 } from body { id407 }
+body { id407 } name "Cell_3"
+move body { id407 } midpoint location -7.5600000000000005 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id408 = Id("body") }
+body { id408 } name "Cell_1"
+move body { id408 } midpoint location -6.3 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id409 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id410 = Id("body") }
+subtract body { id409 } from body { id410 }
+cylinder height 500 radius 0.4572
+#{ id411 = Id("body") }
+#{ id412 = Id("body") }
+intersect body { id410 } { id411 }
+#{ id413 = Id("body") }
+#{id414 = ( id412 == id413 ) ? id411 : id413}
+brick x 1.26 y 1.26 z 500
+#{ id415 = Id("body") }
+intersect body { id414 } { id415 }
+#{ id416 = Id("body") }
+body { id416 } name "Cell_2"
+move body { id416 } midpoint location -6.3 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id417 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id418 = Id("body") }
+subtract body { id417 } from body { id418 }
+body { id418 } name "Cell_3"
+move body { id418 } midpoint location -6.3 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id419 = Id("body") }
+body { id419 } name "Cell_1"
+move body { id419 } midpoint location -5.04 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id420 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id421 = Id("body") }
+subtract body { id420 } from body { id421 }
+cylinder height 500 radius 0.4572
+#{ id422 = Id("body") }
+#{ id423 = Id("body") }
+intersect body { id421 } { id422 }
+#{ id424 = Id("body") }
+#{id425 = ( id423 == id424 ) ? id422 : id424}
+brick x 1.26 y 1.26 z 500
+#{ id426 = Id("body") }
+intersect body { id425 } { id426 }
+#{ id427 = Id("body") }
+body { id427 } name "Cell_2"
+move body { id427 } midpoint location -5.04 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id428 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id429 = Id("body") }
+subtract body { id428 } from body { id429 }
+body { id429 } name "Cell_3"
+move body { id429 } midpoint location -5.04 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id430 = Id("body") }
+body { id430 } name "Cell_4"
+move body { id430 } midpoint location -3.7800000000000002 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id431 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id432 = Id("body") }
+subtract body { id431 } from body { id432 }
+cylinder height 500 radius 0.4572
+#{ id433 = Id("body") }
+#{ id434 = Id("body") }
+intersect body { id432 } { id433 }
+#{ id435 = Id("body") }
+#{id436 = ( id434 == id435 ) ? id433 : id435}
+brick x 1.26 y 1.26 z 500
+#{ id437 = Id("body") }
+intersect body { id436 } { id437 }
+#{ id438 = Id("body") }
+body { id438 } name "Cell_5"
+move body { id438 } midpoint location -3.7800000000000002 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id439 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id440 = Id("body") }
+subtract body { id439 } from body { id440 }
+body { id440 } name "Cell_6"
+move body { id440 } midpoint location -3.7800000000000002 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id441 = Id("body") }
+body { id441 } name "Cell_1"
+move body { id441 } midpoint location -2.5199999999999996 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id442 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id443 = Id("body") }
+subtract body { id442 } from body { id443 }
+cylinder height 500 radius 0.4572
+#{ id444 = Id("body") }
+#{ id445 = Id("body") }
+intersect body { id443 } { id444 }
+#{ id446 = Id("body") }
+#{id447 = ( id445 == id446 ) ? id444 : id446}
+brick x 1.26 y 1.26 z 500
+#{ id448 = Id("body") }
+intersect body { id447 } { id448 }
+#{ id449 = Id("body") }
+body { id449 } name "Cell_2"
+move body { id449 } midpoint location -2.5199999999999996 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id450 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id451 = Id("body") }
+subtract body { id450 } from body { id451 }
+body { id451 } name "Cell_3"
+move body { id451 } midpoint location -2.5199999999999996 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id452 = Id("body") }
+body { id452 } name "Cell_1"
+move body { id452 } midpoint location -1.2599999999999998 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id453 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id454 = Id("body") }
+subtract body { id453 } from body { id454 }
+cylinder height 500 radius 0.4572
+#{ id455 = Id("body") }
+#{ id456 = Id("body") }
+intersect body { id454 } { id455 }
+#{ id457 = Id("body") }
+#{id458 = ( id456 == id457 ) ? id455 : id457}
+brick x 1.26 y 1.26 z 500
+#{ id459 = Id("body") }
+intersect body { id458 } { id459 }
+#{ id460 = Id("body") }
+body { id460 } name "Cell_2"
+move body { id460 } midpoint location -1.2599999999999998 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id461 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id462 = Id("body") }
+subtract body { id461 } from body { id462 }
+body { id462 } name "Cell_3"
+move body { id462 } midpoint location -1.2599999999999998 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id463 = Id("body") }
+body { id463 } name "Cell_4"
+move body { id463 } midpoint location 0.0 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id464 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id465 = Id("body") }
+subtract body { id464 } from body { id465 }
+cylinder height 500 radius 0.4572
+#{ id466 = Id("body") }
+#{ id467 = Id("body") }
+intersect body { id465 } { id466 }
+#{ id468 = Id("body") }
+#{id469 = ( id467 == id468 ) ? id466 : id468}
+brick x 1.26 y 1.26 z 500
+#{ id470 = Id("body") }
+intersect body { id469 } { id470 }
+#{ id471 = Id("body") }
+body { id471 } name "Cell_5"
+move body { id471 } midpoint location 0.0 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id472 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id473 = Id("body") }
+subtract body { id472 } from body { id473 }
+body { id473 } name "Cell_6"
+move body { id473 } midpoint location 0.0 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id474 = Id("body") }
+body { id474 } name "Cell_1"
+move body { id474 } midpoint location 1.2599999999999998 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id475 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id476 = Id("body") }
+subtract body { id475 } from body { id476 }
+cylinder height 500 radius 0.4572
+#{ id477 = Id("body") }
+#{ id478 = Id("body") }
+intersect body { id476 } { id477 }
+#{ id479 = Id("body") }
+#{id480 = ( id478 == id479 ) ? id477 : id479}
+brick x 1.26 y 1.26 z 500
+#{ id481 = Id("body") }
+intersect body { id480 } { id481 }
+#{ id482 = Id("body") }
+body { id482 } name "Cell_2"
+move body { id482 } midpoint location 1.2599999999999998 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id483 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id484 = Id("body") }
+subtract body { id483 } from body { id484 }
+body { id484 } name "Cell_3"
+move body { id484 } midpoint location 1.2599999999999998 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id485 = Id("body") }
+body { id485 } name "Cell_1"
+move body { id485 } midpoint location 2.5199999999999996 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id486 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id487 = Id("body") }
+subtract body { id486 } from body { id487 }
+cylinder height 500 radius 0.4572
+#{ id488 = Id("body") }
+#{ id489 = Id("body") }
+intersect body { id487 } { id488 }
+#{ id490 = Id("body") }
+#{id491 = ( id489 == id490 ) ? id488 : id490}
+brick x 1.26 y 1.26 z 500
+#{ id492 = Id("body") }
+intersect body { id491 } { id492 }
+#{ id493 = Id("body") }
+body { id493 } name "Cell_2"
+move body { id493 } midpoint location 2.5199999999999996 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id494 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id495 = Id("body") }
+subtract body { id494 } from body { id495 }
+body { id495 } name "Cell_3"
+move body { id495 } midpoint location 2.5199999999999996 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id496 = Id("body") }
+body { id496 } name "Cell_4"
+move body { id496 } midpoint location 3.7799999999999994 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id497 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id498 = Id("body") }
+subtract body { id497 } from body { id498 }
+cylinder height 500 radius 0.4572
+#{ id499 = Id("body") }
+#{ id500 = Id("body") }
+intersect body { id498 } { id499 }
+#{ id501 = Id("body") }
+#{id502 = ( id500 == id501 ) ? id499 : id501}
+brick x 1.26 y 1.26 z 500
+#{ id503 = Id("body") }
+intersect body { id502 } { id503 }
+#{ id504 = Id("body") }
+body { id504 } name "Cell_5"
+move body { id504 } midpoint location 3.7799999999999994 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id505 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id506 = Id("body") }
+subtract body { id505 } from body { id506 }
+body { id506 } name "Cell_6"
+move body { id506 } midpoint location 3.7799999999999994 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id507 = Id("body") }
+body { id507 } name "Cell_1"
+move body { id507 } midpoint location 5.040000000000001 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id508 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id509 = Id("body") }
+subtract body { id508 } from body { id509 }
+cylinder height 500 radius 0.4572
+#{ id510 = Id("body") }
+#{ id511 = Id("body") }
+intersect body { id509 } { id510 }
+#{ id512 = Id("body") }
+#{id513 = ( id511 == id512 ) ? id510 : id512}
+brick x 1.26 y 1.26 z 500
+#{ id514 = Id("body") }
+intersect body { id513 } { id514 }
+#{ id515 = Id("body") }
+body { id515 } name "Cell_2"
+move body { id515 } midpoint location 5.040000000000001 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id516 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id517 = Id("body") }
+subtract body { id516 } from body { id517 }
+body { id517 } name "Cell_3"
+move body { id517 } midpoint location 5.040000000000001 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id518 = Id("body") }
+body { id518 } name "Cell_1"
+move body { id518 } midpoint location 6.299999999999999 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id519 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id520 = Id("body") }
+subtract body { id519 } from body { id520 }
+cylinder height 500 radius 0.4572
+#{ id521 = Id("body") }
+#{ id522 = Id("body") }
+intersect body { id520 } { id521 }
+#{ id523 = Id("body") }
+#{id524 = ( id522 == id523 ) ? id521 : id523}
+brick x 1.26 y 1.26 z 500
+#{ id525 = Id("body") }
+intersect body { id524 } { id525 }
+#{ id526 = Id("body") }
+body { id526 } name "Cell_2"
+move body { id526 } midpoint location 6.299999999999999 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id527 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id528 = Id("body") }
+subtract body { id527 } from body { id528 }
+body { id528 } name "Cell_3"
+move body { id528 } midpoint location 6.299999999999999 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id529 = Id("body") }
+body { id529 } name "Cell_1"
+move body { id529 } midpoint location 7.5600000000000005 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id530 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id531 = Id("body") }
+subtract body { id530 } from body { id531 }
+cylinder height 500 radius 0.4572
+#{ id532 = Id("body") }
+#{ id533 = Id("body") }
+intersect body { id531 } { id532 }
+#{ id534 = Id("body") }
+#{id535 = ( id533 == id534 ) ? id532 : id534}
+brick x 1.26 y 1.26 z 500
+#{ id536 = Id("body") }
+intersect body { id535 } { id536 }
+#{ id537 = Id("body") }
+body { id537 } name "Cell_2"
+move body { id537 } midpoint location 7.5600000000000005 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id538 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id539 = Id("body") }
+subtract body { id538 } from body { id539 }
+body { id539 } name "Cell_3"
+move body { id539 } midpoint location 7.5600000000000005 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id540 = Id("body") }
+body { id540 } name "Cell_1"
+move body { id540 } midpoint location 8.819999999999999 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id541 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id542 = Id("body") }
+subtract body { id541 } from body { id542 }
+cylinder height 500 radius 0.4572
+#{ id543 = Id("body") }
+#{ id544 = Id("body") }
+intersect body { id542 } { id543 }
+#{ id545 = Id("body") }
+#{id546 = ( id544 == id545 ) ? id543 : id545}
+brick x 1.26 y 1.26 z 500
+#{ id547 = Id("body") }
+intersect body { id546 } { id547 }
+#{ id548 = Id("body") }
+body { id548 } name "Cell_2"
+move body { id548 } midpoint location 8.819999999999999 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id549 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id550 = Id("body") }
+subtract body { id549 } from body { id550 }
+body { id550 } name "Cell_3"
+move body { id550 } midpoint location 8.819999999999999 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id551 = Id("body") }
+body { id551 } name "Cell_1"
+move body { id551 } midpoint location 10.08 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id552 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id553 = Id("body") }
+subtract body { id552 } from body { id553 }
+cylinder height 500 radius 0.4572
+#{ id554 = Id("body") }
+#{ id555 = Id("body") }
+intersect body { id553 } { id554 }
+#{ id556 = Id("body") }
+#{id557 = ( id555 == id556 ) ? id554 : id556}
+brick x 1.26 y 1.26 z 500
+#{ id558 = Id("body") }
+intersect body { id557 } { id558 }
+#{ id559 = Id("body") }
+body { id559 } name "Cell_2"
+move body { id559 } midpoint location 10.08 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id560 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id561 = Id("body") }
+subtract body { id560 } from body { id561 }
+body { id561 } name "Cell_3"
+move body { id561 } midpoint location 10.08 -7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id562 = Id("body") }
+body { id562 } name "Cell_1"
+move body { id562 } midpoint location -10.08 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id563 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id564 = Id("body") }
+subtract body { id563 } from body { id564 }
+cylinder height 500 radius 0.4572
+#{ id565 = Id("body") }
+#{ id566 = Id("body") }
+intersect body { id564 } { id565 }
+#{ id567 = Id("body") }
+#{id568 = ( id566 == id567 ) ? id565 : id567}
+brick x 1.26 y 1.26 z 500
+#{ id569 = Id("body") }
+intersect body { id568 } { id569 }
+#{ id570 = Id("body") }
+body { id570 } name "Cell_2"
+move body { id570 } midpoint location -10.08 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id571 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id572 = Id("body") }
+subtract body { id571 } from body { id572 }
+body { id572 } name "Cell_3"
+move body { id572 } midpoint location -10.08 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id573 = Id("body") }
+body { id573 } name "Cell_1"
+move body { id573 } midpoint location -8.82 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id574 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id575 = Id("body") }
+subtract body { id574 } from body { id575 }
+cylinder height 500 radius 0.4572
+#{ id576 = Id("body") }
+#{ id577 = Id("body") }
+intersect body { id575 } { id576 }
+#{ id578 = Id("body") }
+#{id579 = ( id577 == id578 ) ? id576 : id578}
+brick x 1.26 y 1.26 z 500
+#{ id580 = Id("body") }
+intersect body { id579 } { id580 }
+#{ id581 = Id("body") }
+body { id581 } name "Cell_2"
+move body { id581 } midpoint location -8.82 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id582 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id583 = Id("body") }
+subtract body { id582 } from body { id583 }
+body { id583 } name "Cell_3"
+move body { id583 } midpoint location -8.82 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id584 = Id("body") }
+body { id584 } name "Cell_1"
+move body { id584 } midpoint location -7.5600000000000005 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id585 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id586 = Id("body") }
+subtract body { id585 } from body { id586 }
+cylinder height 500 radius 0.4572
+#{ id587 = Id("body") }
+#{ id588 = Id("body") }
+intersect body { id586 } { id587 }
+#{ id589 = Id("body") }
+#{id590 = ( id588 == id589 ) ? id587 : id589}
+brick x 1.26 y 1.26 z 500
+#{ id591 = Id("body") }
+intersect body { id590 } { id591 }
+#{ id592 = Id("body") }
+body { id592 } name "Cell_2"
+move body { id592 } midpoint location -7.5600000000000005 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id593 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id594 = Id("body") }
+subtract body { id593 } from body { id594 }
+body { id594 } name "Cell_3"
+move body { id594 } midpoint location -7.5600000000000005 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id595 = Id("body") }
+body { id595 } name "Cell_4"
+move body { id595 } midpoint location -6.3 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id596 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id597 = Id("body") }
+subtract body { id596 } from body { id597 }
+cylinder height 500 radius 0.4572
+#{ id598 = Id("body") }
+#{ id599 = Id("body") }
+intersect body { id597 } { id598 }
+#{ id600 = Id("body") }
+#{id601 = ( id599 == id600 ) ? id598 : id600}
+brick x 1.26 y 1.26 z 500
+#{ id602 = Id("body") }
+intersect body { id601 } { id602 }
+#{ id603 = Id("body") }
+body { id603 } name "Cell_5"
+move body { id603 } midpoint location -6.3 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id604 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id605 = Id("body") }
+subtract body { id604 } from body { id605 }
+body { id605 } name "Cell_6"
+move body { id605 } midpoint location -6.3 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id606 = Id("body") }
+body { id606 } name "Cell_1"
+move body { id606 } midpoint location -5.04 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id607 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id608 = Id("body") }
+subtract body { id607 } from body { id608 }
+cylinder height 500 radius 0.4572
+#{ id609 = Id("body") }
+#{ id610 = Id("body") }
+intersect body { id608 } { id609 }
+#{ id611 = Id("body") }
+#{id612 = ( id610 == id611 ) ? id609 : id611}
+brick x 1.26 y 1.26 z 500
+#{ id613 = Id("body") }
+intersect body { id612 } { id613 }
+#{ id614 = Id("body") }
+body { id614 } name "Cell_2"
+move body { id614 } midpoint location -5.04 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id615 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id616 = Id("body") }
+subtract body { id615 } from body { id616 }
+body { id616 } name "Cell_3"
+move body { id616 } midpoint location -5.04 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id617 = Id("body") }
+body { id617 } name "Cell_1"
+move body { id617 } midpoint location -3.7800000000000002 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id618 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id619 = Id("body") }
+subtract body { id618 } from body { id619 }
+cylinder height 500 radius 0.4572
+#{ id620 = Id("body") }
+#{ id621 = Id("body") }
+intersect body { id619 } { id620 }
+#{ id622 = Id("body") }
+#{id623 = ( id621 == id622 ) ? id620 : id622}
+brick x 1.26 y 1.26 z 500
+#{ id624 = Id("body") }
+intersect body { id623 } { id624 }
+#{ id625 = Id("body") }
+body { id625 } name "Cell_2"
+move body { id625 } midpoint location -3.7800000000000002 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id626 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id627 = Id("body") }
+subtract body { id626 } from body { id627 }
+body { id627 } name "Cell_3"
+move body { id627 } midpoint location -3.7800000000000002 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id628 = Id("body") }
+body { id628 } name "Cell_1"
+move body { id628 } midpoint location -2.5199999999999996 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id629 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id630 = Id("body") }
+subtract body { id629 } from body { id630 }
+cylinder height 500 radius 0.4572
+#{ id631 = Id("body") }
+#{ id632 = Id("body") }
+intersect body { id630 } { id631 }
+#{ id633 = Id("body") }
+#{id634 = ( id632 == id633 ) ? id631 : id633}
+brick x 1.26 y 1.26 z 500
+#{ id635 = Id("body") }
+intersect body { id634 } { id635 }
+#{ id636 = Id("body") }
+body { id636 } name "Cell_2"
+move body { id636 } midpoint location -2.5199999999999996 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id637 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id638 = Id("body") }
+subtract body { id637 } from body { id638 }
+body { id638 } name "Cell_3"
+move body { id638 } midpoint location -2.5199999999999996 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id639 = Id("body") }
+body { id639 } name "Cell_1"
+move body { id639 } midpoint location -1.2599999999999998 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id640 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id641 = Id("body") }
+subtract body { id640 } from body { id641 }
+cylinder height 500 radius 0.4572
+#{ id642 = Id("body") }
+#{ id643 = Id("body") }
+intersect body { id641 } { id642 }
+#{ id644 = Id("body") }
+#{id645 = ( id643 == id644 ) ? id642 : id644}
+brick x 1.26 y 1.26 z 500
+#{ id646 = Id("body") }
+intersect body { id645 } { id646 }
+#{ id647 = Id("body") }
+body { id647 } name "Cell_2"
+move body { id647 } midpoint location -1.2599999999999998 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id648 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id649 = Id("body") }
+subtract body { id648 } from body { id649 }
+body { id649 } name "Cell_3"
+move body { id649 } midpoint location -1.2599999999999998 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id650 = Id("body") }
+body { id650 } name "Cell_1"
+move body { id650 } midpoint location 0.0 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id651 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id652 = Id("body") }
+subtract body { id651 } from body { id652 }
+cylinder height 500 radius 0.4572
+#{ id653 = Id("body") }
+#{ id654 = Id("body") }
+intersect body { id652 } { id653 }
+#{ id655 = Id("body") }
+#{id656 = ( id654 == id655 ) ? id653 : id655}
+brick x 1.26 y 1.26 z 500
+#{ id657 = Id("body") }
+intersect body { id656 } { id657 }
+#{ id658 = Id("body") }
+body { id658 } name "Cell_2"
+move body { id658 } midpoint location 0.0 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id659 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id660 = Id("body") }
+subtract body { id659 } from body { id660 }
+body { id660 } name "Cell_3"
+move body { id660 } midpoint location 0.0 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id661 = Id("body") }
+body { id661 } name "Cell_1"
+move body { id661 } midpoint location 1.2599999999999998 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id662 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id663 = Id("body") }
+subtract body { id662 } from body { id663 }
+cylinder height 500 radius 0.4572
+#{ id664 = Id("body") }
+#{ id665 = Id("body") }
+intersect body { id663 } { id664 }
+#{ id666 = Id("body") }
+#{id667 = ( id665 == id666 ) ? id664 : id666}
+brick x 1.26 y 1.26 z 500
+#{ id668 = Id("body") }
+intersect body { id667 } { id668 }
+#{ id669 = Id("body") }
+body { id669 } name "Cell_2"
+move body { id669 } midpoint location 1.2599999999999998 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id670 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id671 = Id("body") }
+subtract body { id670 } from body { id671 }
+body { id671 } name "Cell_3"
+move body { id671 } midpoint location 1.2599999999999998 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id672 = Id("body") }
+body { id672 } name "Cell_1"
+move body { id672 } midpoint location 2.5199999999999996 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id673 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id674 = Id("body") }
+subtract body { id673 } from body { id674 }
+cylinder height 500 radius 0.4572
+#{ id675 = Id("body") }
+#{ id676 = Id("body") }
+intersect body { id674 } { id675 }
+#{ id677 = Id("body") }
+#{id678 = ( id676 == id677 ) ? id675 : id677}
+brick x 1.26 y 1.26 z 500
+#{ id679 = Id("body") }
+intersect body { id678 } { id679 }
+#{ id680 = Id("body") }
+body { id680 } name "Cell_2"
+move body { id680 } midpoint location 2.5199999999999996 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id681 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id682 = Id("body") }
+subtract body { id681 } from body { id682 }
+body { id682 } name "Cell_3"
+move body { id682 } midpoint location 2.5199999999999996 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id683 = Id("body") }
+body { id683 } name "Cell_1"
+move body { id683 } midpoint location 3.7799999999999994 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id684 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id685 = Id("body") }
+subtract body { id684 } from body { id685 }
+cylinder height 500 radius 0.4572
+#{ id686 = Id("body") }
+#{ id687 = Id("body") }
+intersect body { id685 } { id686 }
+#{ id688 = Id("body") }
+#{id689 = ( id687 == id688 ) ? id686 : id688}
+brick x 1.26 y 1.26 z 500
+#{ id690 = Id("body") }
+intersect body { id689 } { id690 }
+#{ id691 = Id("body") }
+body { id691 } name "Cell_2"
+move body { id691 } midpoint location 3.7799999999999994 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id692 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id693 = Id("body") }
+subtract body { id692 } from body { id693 }
+body { id693 } name "Cell_3"
+move body { id693 } midpoint location 3.7799999999999994 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id694 = Id("body") }
+body { id694 } name "Cell_1"
+move body { id694 } midpoint location 5.040000000000001 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id695 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id696 = Id("body") }
+subtract body { id695 } from body { id696 }
+cylinder height 500 radius 0.4572
+#{ id697 = Id("body") }
+#{ id698 = Id("body") }
+intersect body { id696 } { id697 }
+#{ id699 = Id("body") }
+#{id700 = ( id698 == id699 ) ? id697 : id699}
+brick x 1.26 y 1.26 z 500
+#{ id701 = Id("body") }
+intersect body { id700 } { id701 }
+#{ id702 = Id("body") }
+body { id702 } name "Cell_2"
+move body { id702 } midpoint location 5.040000000000001 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id703 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id704 = Id("body") }
+subtract body { id703 } from body { id704 }
+body { id704 } name "Cell_3"
+move body { id704 } midpoint location 5.040000000000001 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id705 = Id("body") }
+body { id705 } name "Cell_4"
+move body { id705 } midpoint location 6.299999999999999 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id706 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id707 = Id("body") }
+subtract body { id706 } from body { id707 }
+cylinder height 500 radius 0.4572
+#{ id708 = Id("body") }
+#{ id709 = Id("body") }
+intersect body { id707 } { id708 }
+#{ id710 = Id("body") }
+#{id711 = ( id709 == id710 ) ? id708 : id710}
+brick x 1.26 y 1.26 z 500
+#{ id712 = Id("body") }
+intersect body { id711 } { id712 }
+#{ id713 = Id("body") }
+body { id713 } name "Cell_5"
+move body { id713 } midpoint location 6.299999999999999 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id714 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id715 = Id("body") }
+subtract body { id714 } from body { id715 }
+body { id715 } name "Cell_6"
+move body { id715 } midpoint location 6.299999999999999 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id716 = Id("body") }
+body { id716 } name "Cell_1"
+move body { id716 } midpoint location 7.5600000000000005 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id717 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id718 = Id("body") }
+subtract body { id717 } from body { id718 }
+cylinder height 500 radius 0.4572
+#{ id719 = Id("body") }
+#{ id720 = Id("body") }
+intersect body { id718 } { id719 }
+#{ id721 = Id("body") }
+#{id722 = ( id720 == id721 ) ? id719 : id721}
+brick x 1.26 y 1.26 z 500
+#{ id723 = Id("body") }
+intersect body { id722 } { id723 }
+#{ id724 = Id("body") }
+body { id724 } name "Cell_2"
+move body { id724 } midpoint location 7.5600000000000005 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id725 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id726 = Id("body") }
+subtract body { id725 } from body { id726 }
+body { id726 } name "Cell_3"
+move body { id726 } midpoint location 7.5600000000000005 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id727 = Id("body") }
+body { id727 } name "Cell_1"
+move body { id727 } midpoint location 8.819999999999999 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id728 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id729 = Id("body") }
+subtract body { id728 } from body { id729 }
+cylinder height 500 radius 0.4572
+#{ id730 = Id("body") }
+#{ id731 = Id("body") }
+intersect body { id729 } { id730 }
+#{ id732 = Id("body") }
+#{id733 = ( id731 == id732 ) ? id730 : id732}
+brick x 1.26 y 1.26 z 500
+#{ id734 = Id("body") }
+intersect body { id733 } { id734 }
+#{ id735 = Id("body") }
+body { id735 } name "Cell_2"
+move body { id735 } midpoint location 8.819999999999999 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id736 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id737 = Id("body") }
+subtract body { id736 } from body { id737 }
+body { id737 } name "Cell_3"
+move body { id737 } midpoint location 8.819999999999999 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id738 = Id("body") }
+body { id738 } name "Cell_1"
+move body { id738 } midpoint location 10.08 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id739 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id740 = Id("body") }
+subtract body { id739 } from body { id740 }
+cylinder height 500 radius 0.4572
+#{ id741 = Id("body") }
+#{ id742 = Id("body") }
+intersect body { id740 } { id741 }
+#{ id743 = Id("body") }
+#{id744 = ( id742 == id743 ) ? id741 : id743}
+brick x 1.26 y 1.26 z 500
+#{ id745 = Id("body") }
+intersect body { id744 } { id745 }
+#{ id746 = Id("body") }
+body { id746 } name "Cell_2"
+move body { id746 } midpoint location 10.08 -6.3 0 except z
+cylinder height 500 radius 0.4572
+#{ id747 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id748 = Id("body") }
+subtract body { id747 } from body { id748 }
+body { id748 } name "Cell_3"
+move body { id748 } midpoint location 10.08 -6.3 0 except z
+cylinder height 500 radius 0.39218
+#{ id749 = Id("body") }
+body { id749 } name "Cell_1"
+move body { id749 } midpoint location -10.08 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id750 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id751 = Id("body") }
+subtract body { id750 } from body { id751 }
+cylinder height 500 radius 0.4572
+#{ id752 = Id("body") }
+#{ id753 = Id("body") }
+intersect body { id751 } { id752 }
+#{ id754 = Id("body") }
+#{id755 = ( id753 == id754 ) ? id752 : id754}
+brick x 1.26 y 1.26 z 500
+#{ id756 = Id("body") }
+intersect body { id755 } { id756 }
+#{ id757 = Id("body") }
+body { id757 } name "Cell_2"
+move body { id757 } midpoint location -10.08 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id758 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id759 = Id("body") }
+subtract body { id758 } from body { id759 }
+body { id759 } name "Cell_3"
+move body { id759 } midpoint location -10.08 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id760 = Id("body") }
+body { id760 } name "Cell_1"
+move body { id760 } midpoint location -8.82 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id761 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id762 = Id("body") }
+subtract body { id761 } from body { id762 }
+cylinder height 500 radius 0.4572
+#{ id763 = Id("body") }
+#{ id764 = Id("body") }
+intersect body { id762 } { id763 }
+#{ id765 = Id("body") }
+#{id766 = ( id764 == id765 ) ? id763 : id765}
+brick x 1.26 y 1.26 z 500
+#{ id767 = Id("body") }
+intersect body { id766 } { id767 }
+#{ id768 = Id("body") }
+body { id768 } name "Cell_2"
+move body { id768 } midpoint location -8.82 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id769 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id770 = Id("body") }
+subtract body { id769 } from body { id770 }
+body { id770 } name "Cell_3"
+move body { id770 } midpoint location -8.82 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id771 = Id("body") }
+body { id771 } name "Cell_1"
+move body { id771 } midpoint location -7.5600000000000005 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id772 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id773 = Id("body") }
+subtract body { id772 } from body { id773 }
+cylinder height 500 radius 0.4572
+#{ id774 = Id("body") }
+#{ id775 = Id("body") }
+intersect body { id773 } { id774 }
+#{ id776 = Id("body") }
+#{id777 = ( id775 == id776 ) ? id774 : id776}
+brick x 1.26 y 1.26 z 500
+#{ id778 = Id("body") }
+intersect body { id777 } { id778 }
+#{ id779 = Id("body") }
+body { id779 } name "Cell_2"
+move body { id779 } midpoint location -7.5600000000000005 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id780 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id781 = Id("body") }
+subtract body { id780 } from body { id781 }
+body { id781 } name "Cell_3"
+move body { id781 } midpoint location -7.5600000000000005 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id782 = Id("body") }
+body { id782 } name "Cell_1"
+move body { id782 } midpoint location -6.3 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id783 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id784 = Id("body") }
+subtract body { id783 } from body { id784 }
+cylinder height 500 radius 0.4572
+#{ id785 = Id("body") }
+#{ id786 = Id("body") }
+intersect body { id784 } { id785 }
+#{ id787 = Id("body") }
+#{id788 = ( id786 == id787 ) ? id785 : id787}
+brick x 1.26 y 1.26 z 500
+#{ id789 = Id("body") }
+intersect body { id788 } { id789 }
+#{ id790 = Id("body") }
+body { id790 } name "Cell_2"
+move body { id790 } midpoint location -6.3 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id791 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id792 = Id("body") }
+subtract body { id791 } from body { id792 }
+body { id792 } name "Cell_3"
+move body { id792 } midpoint location -6.3 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id793 = Id("body") }
+body { id793 } name "Cell_1"
+move body { id793 } midpoint location -5.04 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id794 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id795 = Id("body") }
+subtract body { id794 } from body { id795 }
+cylinder height 500 radius 0.4572
+#{ id796 = Id("body") }
+#{ id797 = Id("body") }
+intersect body { id795 } { id796 }
+#{ id798 = Id("body") }
+#{id799 = ( id797 == id798 ) ? id796 : id798}
+brick x 1.26 y 1.26 z 500
+#{ id800 = Id("body") }
+intersect body { id799 } { id800 }
+#{ id801 = Id("body") }
+body { id801 } name "Cell_2"
+move body { id801 } midpoint location -5.04 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id802 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id803 = Id("body") }
+subtract body { id802 } from body { id803 }
+body { id803 } name "Cell_3"
+move body { id803 } midpoint location -5.04 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id804 = Id("body") }
+body { id804 } name "Cell_1"
+move body { id804 } midpoint location -3.7800000000000002 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id805 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id806 = Id("body") }
+subtract body { id805 } from body { id806 }
+cylinder height 500 radius 0.4572
+#{ id807 = Id("body") }
+#{ id808 = Id("body") }
+intersect body { id806 } { id807 }
+#{ id809 = Id("body") }
+#{id810 = ( id808 == id809 ) ? id807 : id809}
+brick x 1.26 y 1.26 z 500
+#{ id811 = Id("body") }
+intersect body { id810 } { id811 }
+#{ id812 = Id("body") }
+body { id812 } name "Cell_2"
+move body { id812 } midpoint location -3.7800000000000002 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id813 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id814 = Id("body") }
+subtract body { id813 } from body { id814 }
+body { id814 } name "Cell_3"
+move body { id814 } midpoint location -3.7800000000000002 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id815 = Id("body") }
+body { id815 } name "Cell_1"
+move body { id815 } midpoint location -2.5199999999999996 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id816 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id817 = Id("body") }
+subtract body { id816 } from body { id817 }
+cylinder height 500 radius 0.4572
+#{ id818 = Id("body") }
+#{ id819 = Id("body") }
+intersect body { id817 } { id818 }
+#{ id820 = Id("body") }
+#{id821 = ( id819 == id820 ) ? id818 : id820}
+brick x 1.26 y 1.26 z 500
+#{ id822 = Id("body") }
+intersect body { id821 } { id822 }
+#{ id823 = Id("body") }
+body { id823 } name "Cell_2"
+move body { id823 } midpoint location -2.5199999999999996 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id824 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id825 = Id("body") }
+subtract body { id824 } from body { id825 }
+body { id825 } name "Cell_3"
+move body { id825 } midpoint location -2.5199999999999996 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id826 = Id("body") }
+body { id826 } name "Cell_1"
+move body { id826 } midpoint location -1.2599999999999998 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id827 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id828 = Id("body") }
+subtract body { id827 } from body { id828 }
+cylinder height 500 radius 0.4572
+#{ id829 = Id("body") }
+#{ id830 = Id("body") }
+intersect body { id828 } { id829 }
+#{ id831 = Id("body") }
+#{id832 = ( id830 == id831 ) ? id829 : id831}
+brick x 1.26 y 1.26 z 500
+#{ id833 = Id("body") }
+intersect body { id832 } { id833 }
+#{ id834 = Id("body") }
+body { id834 } name "Cell_2"
+move body { id834 } midpoint location -1.2599999999999998 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id835 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id836 = Id("body") }
+subtract body { id835 } from body { id836 }
+body { id836 } name "Cell_3"
+move body { id836 } midpoint location -1.2599999999999998 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id837 = Id("body") }
+body { id837 } name "Cell_1"
+move body { id837 } midpoint location 0.0 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id838 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id839 = Id("body") }
+subtract body { id838 } from body { id839 }
+cylinder height 500 radius 0.4572
+#{ id840 = Id("body") }
+#{ id841 = Id("body") }
+intersect body { id839 } { id840 }
+#{ id842 = Id("body") }
+#{id843 = ( id841 == id842 ) ? id840 : id842}
+brick x 1.26 y 1.26 z 500
+#{ id844 = Id("body") }
+intersect body { id843 } { id844 }
+#{ id845 = Id("body") }
+body { id845 } name "Cell_2"
+move body { id845 } midpoint location 0.0 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id846 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id847 = Id("body") }
+subtract body { id846 } from body { id847 }
+body { id847 } name "Cell_3"
+move body { id847 } midpoint location 0.0 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id848 = Id("body") }
+body { id848 } name "Cell_1"
+move body { id848 } midpoint location 1.2599999999999998 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id849 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id850 = Id("body") }
+subtract body { id849 } from body { id850 }
+cylinder height 500 radius 0.4572
+#{ id851 = Id("body") }
+#{ id852 = Id("body") }
+intersect body { id850 } { id851 }
+#{ id853 = Id("body") }
+#{id854 = ( id852 == id853 ) ? id851 : id853}
+brick x 1.26 y 1.26 z 500
+#{ id855 = Id("body") }
+intersect body { id854 } { id855 }
+#{ id856 = Id("body") }
+body { id856 } name "Cell_2"
+move body { id856 } midpoint location 1.2599999999999998 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id857 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id858 = Id("body") }
+subtract body { id857 } from body { id858 }
+body { id858 } name "Cell_3"
+move body { id858 } midpoint location 1.2599999999999998 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id859 = Id("body") }
+body { id859 } name "Cell_1"
+move body { id859 } midpoint location 2.5199999999999996 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id860 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id861 = Id("body") }
+subtract body { id860 } from body { id861 }
+cylinder height 500 radius 0.4572
+#{ id862 = Id("body") }
+#{ id863 = Id("body") }
+intersect body { id861 } { id862 }
+#{ id864 = Id("body") }
+#{id865 = ( id863 == id864 ) ? id862 : id864}
+brick x 1.26 y 1.26 z 500
+#{ id866 = Id("body") }
+intersect body { id865 } { id866 }
+#{ id867 = Id("body") }
+body { id867 } name "Cell_2"
+move body { id867 } midpoint location 2.5199999999999996 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id868 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id869 = Id("body") }
+subtract body { id868 } from body { id869 }
+body { id869 } name "Cell_3"
+move body { id869 } midpoint location 2.5199999999999996 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id870 = Id("body") }
+body { id870 } name "Cell_1"
+move body { id870 } midpoint location 3.7799999999999994 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id871 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id872 = Id("body") }
+subtract body { id871 } from body { id872 }
+cylinder height 500 radius 0.4572
+#{ id873 = Id("body") }
+#{ id874 = Id("body") }
+intersect body { id872 } { id873 }
+#{ id875 = Id("body") }
+#{id876 = ( id874 == id875 ) ? id873 : id875}
+brick x 1.26 y 1.26 z 500
+#{ id877 = Id("body") }
+intersect body { id876 } { id877 }
+#{ id878 = Id("body") }
+body { id878 } name "Cell_2"
+move body { id878 } midpoint location 3.7799999999999994 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id879 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id880 = Id("body") }
+subtract body { id879 } from body { id880 }
+body { id880 } name "Cell_3"
+move body { id880 } midpoint location 3.7799999999999994 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id881 = Id("body") }
+body { id881 } name "Cell_1"
+move body { id881 } midpoint location 5.040000000000001 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id882 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id883 = Id("body") }
+subtract body { id882 } from body { id883 }
+cylinder height 500 radius 0.4572
+#{ id884 = Id("body") }
+#{ id885 = Id("body") }
+intersect body { id883 } { id884 }
+#{ id886 = Id("body") }
+#{id887 = ( id885 == id886 ) ? id884 : id886}
+brick x 1.26 y 1.26 z 500
+#{ id888 = Id("body") }
+intersect body { id887 } { id888 }
+#{ id889 = Id("body") }
+body { id889 } name "Cell_2"
+move body { id889 } midpoint location 5.040000000000001 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id890 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id891 = Id("body") }
+subtract body { id890 } from body { id891 }
+body { id891 } name "Cell_3"
+move body { id891 } midpoint location 5.040000000000001 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id892 = Id("body") }
+body { id892 } name "Cell_1"
+move body { id892 } midpoint location 6.299999999999999 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id893 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id894 = Id("body") }
+subtract body { id893 } from body { id894 }
+cylinder height 500 radius 0.4572
+#{ id895 = Id("body") }
+#{ id896 = Id("body") }
+intersect body { id894 } { id895 }
+#{ id897 = Id("body") }
+#{id898 = ( id896 == id897 ) ? id895 : id897}
+brick x 1.26 y 1.26 z 500
+#{ id899 = Id("body") }
+intersect body { id898 } { id899 }
+#{ id900 = Id("body") }
+body { id900 } name "Cell_2"
+move body { id900 } midpoint location 6.299999999999999 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id901 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id902 = Id("body") }
+subtract body { id901 } from body { id902 }
+body { id902 } name "Cell_3"
+move body { id902 } midpoint location 6.299999999999999 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id903 = Id("body") }
+body { id903 } name "Cell_1"
+move body { id903 } midpoint location 7.5600000000000005 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id904 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id905 = Id("body") }
+subtract body { id904 } from body { id905 }
+cylinder height 500 radius 0.4572
+#{ id906 = Id("body") }
+#{ id907 = Id("body") }
+intersect body { id905 } { id906 }
+#{ id908 = Id("body") }
+#{id909 = ( id907 == id908 ) ? id906 : id908}
+brick x 1.26 y 1.26 z 500
+#{ id910 = Id("body") }
+intersect body { id909 } { id910 }
+#{ id911 = Id("body") }
+body { id911 } name "Cell_2"
+move body { id911 } midpoint location 7.5600000000000005 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id912 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id913 = Id("body") }
+subtract body { id912 } from body { id913 }
+body { id913 } name "Cell_3"
+move body { id913 } midpoint location 7.5600000000000005 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id914 = Id("body") }
+body { id914 } name "Cell_1"
+move body { id914 } midpoint location 8.819999999999999 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id915 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id916 = Id("body") }
+subtract body { id915 } from body { id916 }
+cylinder height 500 radius 0.4572
+#{ id917 = Id("body") }
+#{ id918 = Id("body") }
+intersect body { id916 } { id917 }
+#{ id919 = Id("body") }
+#{id920 = ( id918 == id919 ) ? id917 : id919}
+brick x 1.26 y 1.26 z 500
+#{ id921 = Id("body") }
+intersect body { id920 } { id921 }
+#{ id922 = Id("body") }
+body { id922 } name "Cell_2"
+move body { id922 } midpoint location 8.819999999999999 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id923 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id924 = Id("body") }
+subtract body { id923 } from body { id924 }
+body { id924 } name "Cell_3"
+move body { id924 } midpoint location 8.819999999999999 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id925 = Id("body") }
+body { id925 } name "Cell_1"
+move body { id925 } midpoint location 10.08 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id926 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id927 = Id("body") }
+subtract body { id926 } from body { id927 }
+cylinder height 500 radius 0.4572
+#{ id928 = Id("body") }
+#{ id929 = Id("body") }
+intersect body { id927 } { id928 }
+#{ id930 = Id("body") }
+#{id931 = ( id929 == id930 ) ? id928 : id930}
+brick x 1.26 y 1.26 z 500
+#{ id932 = Id("body") }
+intersect body { id931 } { id932 }
+#{ id933 = Id("body") }
+body { id933 } name "Cell_2"
+move body { id933 } midpoint location 10.08 -5.04 0 except z
+cylinder height 500 radius 0.4572
+#{ id934 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id935 = Id("body") }
+subtract body { id934 } from body { id935 }
+body { id935 } name "Cell_3"
+move body { id935 } midpoint location 10.08 -5.04 0 except z
+cylinder height 500 radius 0.39218
+#{ id936 = Id("body") }
+body { id936 } name "Cell_1"
+move body { id936 } midpoint location -10.08 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id937 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id938 = Id("body") }
+subtract body { id937 } from body { id938 }
+cylinder height 500 radius 0.4572
+#{ id939 = Id("body") }
+#{ id940 = Id("body") }
+intersect body { id938 } { id939 }
+#{ id941 = Id("body") }
+#{id942 = ( id940 == id941 ) ? id939 : id941}
+brick x 1.26 y 1.26 z 500
+#{ id943 = Id("body") }
+intersect body { id942 } { id943 }
+#{ id944 = Id("body") }
+body { id944 } name "Cell_2"
+move body { id944 } midpoint location -10.08 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id945 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id946 = Id("body") }
+subtract body { id945 } from body { id946 }
+body { id946 } name "Cell_3"
+move body { id946 } midpoint location -10.08 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id947 = Id("body") }
+body { id947 } name "Cell_1"
+move body { id947 } midpoint location -8.82 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id948 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id949 = Id("body") }
+subtract body { id948 } from body { id949 }
+cylinder height 500 radius 0.4572
+#{ id950 = Id("body") }
+#{ id951 = Id("body") }
+intersect body { id949 } { id950 }
+#{ id952 = Id("body") }
+#{id953 = ( id951 == id952 ) ? id950 : id952}
+brick x 1.26 y 1.26 z 500
+#{ id954 = Id("body") }
+intersect body { id953 } { id954 }
+#{ id955 = Id("body") }
+body { id955 } name "Cell_2"
+move body { id955 } midpoint location -8.82 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id956 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id957 = Id("body") }
+subtract body { id956 } from body { id957 }
+body { id957 } name "Cell_3"
+move body { id957 } midpoint location -8.82 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id958 = Id("body") }
+body { id958 } name "Cell_4"
+move body { id958 } midpoint location -7.5600000000000005 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id959 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id960 = Id("body") }
+subtract body { id959 } from body { id960 }
+cylinder height 500 radius 0.4572
+#{ id961 = Id("body") }
+#{ id962 = Id("body") }
+intersect body { id960 } { id961 }
+#{ id963 = Id("body") }
+#{id964 = ( id962 == id963 ) ? id961 : id963}
+brick x 1.26 y 1.26 z 500
+#{ id965 = Id("body") }
+intersect body { id964 } { id965 }
+#{ id966 = Id("body") }
+body { id966 } name "Cell_5"
+move body { id966 } midpoint location -7.5600000000000005 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id967 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id968 = Id("body") }
+subtract body { id967 } from body { id968 }
+body { id968 } name "Cell_6"
+move body { id968 } midpoint location -7.5600000000000005 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id969 = Id("body") }
+body { id969 } name "Cell_1"
+move body { id969 } midpoint location -6.3 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id970 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id971 = Id("body") }
+subtract body { id970 } from body { id971 }
+cylinder height 500 radius 0.4572
+#{ id972 = Id("body") }
+#{ id973 = Id("body") }
+intersect body { id971 } { id972 }
+#{ id974 = Id("body") }
+#{id975 = ( id973 == id974 ) ? id972 : id974}
+brick x 1.26 y 1.26 z 500
+#{ id976 = Id("body") }
+intersect body { id975 } { id976 }
+#{ id977 = Id("body") }
+body { id977 } name "Cell_2"
+move body { id977 } midpoint location -6.3 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id978 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id979 = Id("body") }
+subtract body { id978 } from body { id979 }
+body { id979 } name "Cell_3"
+move body { id979 } midpoint location -6.3 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id980 = Id("body") }
+body { id980 } name "Cell_1"
+move body { id980 } midpoint location -5.04 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id981 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id982 = Id("body") }
+subtract body { id981 } from body { id982 }
+cylinder height 500 radius 0.4572
+#{ id983 = Id("body") }
+#{ id984 = Id("body") }
+intersect body { id982 } { id983 }
+#{ id985 = Id("body") }
+#{id986 = ( id984 == id985 ) ? id983 : id985}
+brick x 1.26 y 1.26 z 500
+#{ id987 = Id("body") }
+intersect body { id986 } { id987 }
+#{ id988 = Id("body") }
+body { id988 } name "Cell_2"
+move body { id988 } midpoint location -5.04 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id989 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id990 = Id("body") }
+subtract body { id989 } from body { id990 }
+body { id990 } name "Cell_3"
+move body { id990 } midpoint location -5.04 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id991 = Id("body") }
+body { id991 } name "Cell_4"
+move body { id991 } midpoint location -3.7800000000000002 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id992 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id993 = Id("body") }
+subtract body { id992 } from body { id993 }
+cylinder height 500 radius 0.4572
+#{ id994 = Id("body") }
+#{ id995 = Id("body") }
+intersect body { id993 } { id994 }
+#{ id996 = Id("body") }
+#{id997 = ( id995 == id996 ) ? id994 : id996}
+brick x 1.26 y 1.26 z 500
+#{ id998 = Id("body") }
+intersect body { id997 } { id998 }
+#{ id999 = Id("body") }
+body { id999 } name "Cell_5"
+move body { id999 } midpoint location -3.7800000000000002 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1000 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1001 = Id("body") }
+subtract body { id1000 } from body { id1001 }
+body { id1001 } name "Cell_6"
+move body { id1001 } midpoint location -3.7800000000000002 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1002 = Id("body") }
+body { id1002 } name "Cell_1"
+move body { id1002 } midpoint location -2.5199999999999996 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1003 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1004 = Id("body") }
+subtract body { id1003 } from body { id1004 }
+cylinder height 500 radius 0.4572
+#{ id1005 = Id("body") }
+#{ id1006 = Id("body") }
+intersect body { id1004 } { id1005 }
+#{ id1007 = Id("body") }
+#{id1008 = ( id1006 == id1007 ) ? id1005 : id1007}
+brick x 1.26 y 1.26 z 500
+#{ id1009 = Id("body") }
+intersect body { id1008 } { id1009 }
+#{ id1010 = Id("body") }
+body { id1010 } name "Cell_2"
+move body { id1010 } midpoint location -2.5199999999999996 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1011 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1012 = Id("body") }
+subtract body { id1011 } from body { id1012 }
+body { id1012 } name "Cell_3"
+move body { id1012 } midpoint location -2.5199999999999996 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1013 = Id("body") }
+body { id1013 } name "Cell_1"
+move body { id1013 } midpoint location -1.2599999999999998 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1014 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1015 = Id("body") }
+subtract body { id1014 } from body { id1015 }
+cylinder height 500 radius 0.4572
+#{ id1016 = Id("body") }
+#{ id1017 = Id("body") }
+intersect body { id1015 } { id1016 }
+#{ id1018 = Id("body") }
+#{id1019 = ( id1017 == id1018 ) ? id1016 : id1018}
+brick x 1.26 y 1.26 z 500
+#{ id1020 = Id("body") }
+intersect body { id1019 } { id1020 }
+#{ id1021 = Id("body") }
+body { id1021 } name "Cell_2"
+move body { id1021 } midpoint location -1.2599999999999998 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1022 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1023 = Id("body") }
+subtract body { id1022 } from body { id1023 }
+body { id1023 } name "Cell_3"
+move body { id1023 } midpoint location -1.2599999999999998 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1024 = Id("body") }
+body { id1024 } name "Cell_4"
+move body { id1024 } midpoint location 0.0 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1025 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1026 = Id("body") }
+subtract body { id1025 } from body { id1026 }
+cylinder height 500 radius 0.4572
+#{ id1027 = Id("body") }
+#{ id1028 = Id("body") }
+intersect body { id1026 } { id1027 }
+#{ id1029 = Id("body") }
+#{id1030 = ( id1028 == id1029 ) ? id1027 : id1029}
+brick x 1.26 y 1.26 z 500
+#{ id1031 = Id("body") }
+intersect body { id1030 } { id1031 }
+#{ id1032 = Id("body") }
+body { id1032 } name "Cell_5"
+move body { id1032 } midpoint location 0.0 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1033 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1034 = Id("body") }
+subtract body { id1033 } from body { id1034 }
+body { id1034 } name "Cell_6"
+move body { id1034 } midpoint location 0.0 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1035 = Id("body") }
+body { id1035 } name "Cell_1"
+move body { id1035 } midpoint location 1.2599999999999998 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1036 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1037 = Id("body") }
+subtract body { id1036 } from body { id1037 }
+cylinder height 500 radius 0.4572
+#{ id1038 = Id("body") }
+#{ id1039 = Id("body") }
+intersect body { id1037 } { id1038 }
+#{ id1040 = Id("body") }
+#{id1041 = ( id1039 == id1040 ) ? id1038 : id1040}
+brick x 1.26 y 1.26 z 500
+#{ id1042 = Id("body") }
+intersect body { id1041 } { id1042 }
+#{ id1043 = Id("body") }
+body { id1043 } name "Cell_2"
+move body { id1043 } midpoint location 1.2599999999999998 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1044 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1045 = Id("body") }
+subtract body { id1044 } from body { id1045 }
+body { id1045 } name "Cell_3"
+move body { id1045 } midpoint location 1.2599999999999998 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1046 = Id("body") }
+body { id1046 } name "Cell_1"
+move body { id1046 } midpoint location 2.5199999999999996 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1047 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1048 = Id("body") }
+subtract body { id1047 } from body { id1048 }
+cylinder height 500 radius 0.4572
+#{ id1049 = Id("body") }
+#{ id1050 = Id("body") }
+intersect body { id1048 } { id1049 }
+#{ id1051 = Id("body") }
+#{id1052 = ( id1050 == id1051 ) ? id1049 : id1051}
+brick x 1.26 y 1.26 z 500
+#{ id1053 = Id("body") }
+intersect body { id1052 } { id1053 }
+#{ id1054 = Id("body") }
+body { id1054 } name "Cell_2"
+move body { id1054 } midpoint location 2.5199999999999996 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1055 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1056 = Id("body") }
+subtract body { id1055 } from body { id1056 }
+body { id1056 } name "Cell_3"
+move body { id1056 } midpoint location 2.5199999999999996 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1057 = Id("body") }
+body { id1057 } name "Cell_4"
+move body { id1057 } midpoint location 3.7799999999999994 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1058 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1059 = Id("body") }
+subtract body { id1058 } from body { id1059 }
+cylinder height 500 radius 0.4572
+#{ id1060 = Id("body") }
+#{ id1061 = Id("body") }
+intersect body { id1059 } { id1060 }
+#{ id1062 = Id("body") }
+#{id1063 = ( id1061 == id1062 ) ? id1060 : id1062}
+brick x 1.26 y 1.26 z 500
+#{ id1064 = Id("body") }
+intersect body { id1063 } { id1064 }
+#{ id1065 = Id("body") }
+body { id1065 } name "Cell_5"
+move body { id1065 } midpoint location 3.7799999999999994 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1066 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1067 = Id("body") }
+subtract body { id1066 } from body { id1067 }
+body { id1067 } name "Cell_6"
+move body { id1067 } midpoint location 3.7799999999999994 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1068 = Id("body") }
+body { id1068 } name "Cell_1"
+move body { id1068 } midpoint location 5.040000000000001 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1069 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1070 = Id("body") }
+subtract body { id1069 } from body { id1070 }
+cylinder height 500 radius 0.4572
+#{ id1071 = Id("body") }
+#{ id1072 = Id("body") }
+intersect body { id1070 } { id1071 }
+#{ id1073 = Id("body") }
+#{id1074 = ( id1072 == id1073 ) ? id1071 : id1073}
+brick x 1.26 y 1.26 z 500
+#{ id1075 = Id("body") }
+intersect body { id1074 } { id1075 }
+#{ id1076 = Id("body") }
+body { id1076 } name "Cell_2"
+move body { id1076 } midpoint location 5.040000000000001 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1077 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1078 = Id("body") }
+subtract body { id1077 } from body { id1078 }
+body { id1078 } name "Cell_3"
+move body { id1078 } midpoint location 5.040000000000001 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1079 = Id("body") }
+body { id1079 } name "Cell_1"
+move body { id1079 } midpoint location 6.299999999999999 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1080 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1081 = Id("body") }
+subtract body { id1080 } from body { id1081 }
+cylinder height 500 radius 0.4572
+#{ id1082 = Id("body") }
+#{ id1083 = Id("body") }
+intersect body { id1081 } { id1082 }
+#{ id1084 = Id("body") }
+#{id1085 = ( id1083 == id1084 ) ? id1082 : id1084}
+brick x 1.26 y 1.26 z 500
+#{ id1086 = Id("body") }
+intersect body { id1085 } { id1086 }
+#{ id1087 = Id("body") }
+body { id1087 } name "Cell_2"
+move body { id1087 } midpoint location 6.299999999999999 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1088 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1089 = Id("body") }
+subtract body { id1088 } from body { id1089 }
+body { id1089 } name "Cell_3"
+move body { id1089 } midpoint location 6.299999999999999 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1090 = Id("body") }
+body { id1090 } name "Cell_4"
+move body { id1090 } midpoint location 7.5600000000000005 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1091 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1092 = Id("body") }
+subtract body { id1091 } from body { id1092 }
+cylinder height 500 radius 0.4572
+#{ id1093 = Id("body") }
+#{ id1094 = Id("body") }
+intersect body { id1092 } { id1093 }
+#{ id1095 = Id("body") }
+#{id1096 = ( id1094 == id1095 ) ? id1093 : id1095}
+brick x 1.26 y 1.26 z 500
+#{ id1097 = Id("body") }
+intersect body { id1096 } { id1097 }
+#{ id1098 = Id("body") }
+body { id1098 } name "Cell_5"
+move body { id1098 } midpoint location 7.5600000000000005 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1099 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1100 = Id("body") }
+subtract body { id1099 } from body { id1100 }
+body { id1100 } name "Cell_6"
+move body { id1100 } midpoint location 7.5600000000000005 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1101 = Id("body") }
+body { id1101 } name "Cell_1"
+move body { id1101 } midpoint location 8.819999999999999 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1102 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1103 = Id("body") }
+subtract body { id1102 } from body { id1103 }
+cylinder height 500 radius 0.4572
+#{ id1104 = Id("body") }
+#{ id1105 = Id("body") }
+intersect body { id1103 } { id1104 }
+#{ id1106 = Id("body") }
+#{id1107 = ( id1105 == id1106 ) ? id1104 : id1106}
+brick x 1.26 y 1.26 z 500
+#{ id1108 = Id("body") }
+intersect body { id1107 } { id1108 }
+#{ id1109 = Id("body") }
+body { id1109 } name "Cell_2"
+move body { id1109 } midpoint location 8.819999999999999 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1110 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1111 = Id("body") }
+subtract body { id1110 } from body { id1111 }
+body { id1111 } name "Cell_3"
+move body { id1111 } midpoint location 8.819999999999999 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1112 = Id("body") }
+body { id1112 } name "Cell_1"
+move body { id1112 } midpoint location 10.08 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1113 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1114 = Id("body") }
+subtract body { id1113 } from body { id1114 }
+cylinder height 500 radius 0.4572
+#{ id1115 = Id("body") }
+#{ id1116 = Id("body") }
+intersect body { id1114 } { id1115 }
+#{ id1117 = Id("body") }
+#{id1118 = ( id1116 == id1117 ) ? id1115 : id1117}
+brick x 1.26 y 1.26 z 500
+#{ id1119 = Id("body") }
+intersect body { id1118 } { id1119 }
+#{ id1120 = Id("body") }
+body { id1120 } name "Cell_2"
+move body { id1120 } midpoint location 10.08 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.4572
+#{ id1121 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1122 = Id("body") }
+subtract body { id1121 } from body { id1122 }
+body { id1122 } name "Cell_3"
+move body { id1122 } midpoint location 10.08 -3.7800000000000002 0 except z
+cylinder height 500 radius 0.39218
+#{ id1123 = Id("body") }
+body { id1123 } name "Cell_1"
+move body { id1123 } midpoint location -10.08 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1124 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1125 = Id("body") }
+subtract body { id1124 } from body { id1125 }
+cylinder height 500 radius 0.4572
+#{ id1126 = Id("body") }
+#{ id1127 = Id("body") }
+intersect body { id1125 } { id1126 }
+#{ id1128 = Id("body") }
+#{id1129 = ( id1127 == id1128 ) ? id1126 : id1128}
+brick x 1.26 y 1.26 z 500
+#{ id1130 = Id("body") }
+intersect body { id1129 } { id1130 }
+#{ id1131 = Id("body") }
+body { id1131 } name "Cell_2"
+move body { id1131 } midpoint location -10.08 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1132 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1133 = Id("body") }
+subtract body { id1132 } from body { id1133 }
+body { id1133 } name "Cell_3"
+move body { id1133 } midpoint location -10.08 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1134 = Id("body") }
+body { id1134 } name "Cell_1"
+move body { id1134 } midpoint location -8.82 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1135 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1136 = Id("body") }
+subtract body { id1135 } from body { id1136 }
+cylinder height 500 radius 0.4572
+#{ id1137 = Id("body") }
+#{ id1138 = Id("body") }
+intersect body { id1136 } { id1137 }
+#{ id1139 = Id("body") }
+#{id1140 = ( id1138 == id1139 ) ? id1137 : id1139}
+brick x 1.26 y 1.26 z 500
+#{ id1141 = Id("body") }
+intersect body { id1140 } { id1141 }
+#{ id1142 = Id("body") }
+body { id1142 } name "Cell_2"
+move body { id1142 } midpoint location -8.82 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1143 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1144 = Id("body") }
+subtract body { id1143 } from body { id1144 }
+body { id1144 } name "Cell_3"
+move body { id1144 } midpoint location -8.82 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1145 = Id("body") }
+body { id1145 } name "Cell_1"
+move body { id1145 } midpoint location -7.5600000000000005 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1146 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1147 = Id("body") }
+subtract body { id1146 } from body { id1147 }
+cylinder height 500 radius 0.4572
+#{ id1148 = Id("body") }
+#{ id1149 = Id("body") }
+intersect body { id1147 } { id1148 }
+#{ id1150 = Id("body") }
+#{id1151 = ( id1149 == id1150 ) ? id1148 : id1150}
+brick x 1.26 y 1.26 z 500
+#{ id1152 = Id("body") }
+intersect body { id1151 } { id1152 }
+#{ id1153 = Id("body") }
+body { id1153 } name "Cell_2"
+move body { id1153 } midpoint location -7.5600000000000005 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1154 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1155 = Id("body") }
+subtract body { id1154 } from body { id1155 }
+body { id1155 } name "Cell_3"
+move body { id1155 } midpoint location -7.5600000000000005 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1156 = Id("body") }
+body { id1156 } name "Cell_1"
+move body { id1156 } midpoint location -6.3 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1157 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1158 = Id("body") }
+subtract body { id1157 } from body { id1158 }
+cylinder height 500 radius 0.4572
+#{ id1159 = Id("body") }
+#{ id1160 = Id("body") }
+intersect body { id1158 } { id1159 }
+#{ id1161 = Id("body") }
+#{id1162 = ( id1160 == id1161 ) ? id1159 : id1161}
+brick x 1.26 y 1.26 z 500
+#{ id1163 = Id("body") }
+intersect body { id1162 } { id1163 }
+#{ id1164 = Id("body") }
+body { id1164 } name "Cell_2"
+move body { id1164 } midpoint location -6.3 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1165 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1166 = Id("body") }
+subtract body { id1165 } from body { id1166 }
+body { id1166 } name "Cell_3"
+move body { id1166 } midpoint location -6.3 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1167 = Id("body") }
+body { id1167 } name "Cell_1"
+move body { id1167 } midpoint location -5.04 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1168 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1169 = Id("body") }
+subtract body { id1168 } from body { id1169 }
+cylinder height 500 radius 0.4572
+#{ id1170 = Id("body") }
+#{ id1171 = Id("body") }
+intersect body { id1169 } { id1170 }
+#{ id1172 = Id("body") }
+#{id1173 = ( id1171 == id1172 ) ? id1170 : id1172}
+brick x 1.26 y 1.26 z 500
+#{ id1174 = Id("body") }
+intersect body { id1173 } { id1174 }
+#{ id1175 = Id("body") }
+body { id1175 } name "Cell_2"
+move body { id1175 } midpoint location -5.04 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1176 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1177 = Id("body") }
+subtract body { id1176 } from body { id1177 }
+body { id1177 } name "Cell_3"
+move body { id1177 } midpoint location -5.04 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1178 = Id("body") }
+body { id1178 } name "Cell_1"
+move body { id1178 } midpoint location -3.7800000000000002 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1179 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1180 = Id("body") }
+subtract body { id1179 } from body { id1180 }
+cylinder height 500 radius 0.4572
+#{ id1181 = Id("body") }
+#{ id1182 = Id("body") }
+intersect body { id1180 } { id1181 }
+#{ id1183 = Id("body") }
+#{id1184 = ( id1182 == id1183 ) ? id1181 : id1183}
+brick x 1.26 y 1.26 z 500
+#{ id1185 = Id("body") }
+intersect body { id1184 } { id1185 }
+#{ id1186 = Id("body") }
+body { id1186 } name "Cell_2"
+move body { id1186 } midpoint location -3.7800000000000002 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1187 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1188 = Id("body") }
+subtract body { id1187 } from body { id1188 }
+body { id1188 } name "Cell_3"
+move body { id1188 } midpoint location -3.7800000000000002 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1189 = Id("body") }
+body { id1189 } name "Cell_1"
+move body { id1189 } midpoint location -2.5199999999999996 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1190 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1191 = Id("body") }
+subtract body { id1190 } from body { id1191 }
+cylinder height 500 radius 0.4572
+#{ id1192 = Id("body") }
+#{ id1193 = Id("body") }
+intersect body { id1191 } { id1192 }
+#{ id1194 = Id("body") }
+#{id1195 = ( id1193 == id1194 ) ? id1192 : id1194}
+brick x 1.26 y 1.26 z 500
+#{ id1196 = Id("body") }
+intersect body { id1195 } { id1196 }
+#{ id1197 = Id("body") }
+body { id1197 } name "Cell_2"
+move body { id1197 } midpoint location -2.5199999999999996 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1198 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1199 = Id("body") }
+subtract body { id1198 } from body { id1199 }
+body { id1199 } name "Cell_3"
+move body { id1199 } midpoint location -2.5199999999999996 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1200 = Id("body") }
+body { id1200 } name "Cell_1"
+move body { id1200 } midpoint location -1.2599999999999998 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1201 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1202 = Id("body") }
+subtract body { id1201 } from body { id1202 }
+cylinder height 500 radius 0.4572
+#{ id1203 = Id("body") }
+#{ id1204 = Id("body") }
+intersect body { id1202 } { id1203 }
+#{ id1205 = Id("body") }
+#{id1206 = ( id1204 == id1205 ) ? id1203 : id1205}
+brick x 1.26 y 1.26 z 500
+#{ id1207 = Id("body") }
+intersect body { id1206 } { id1207 }
+#{ id1208 = Id("body") }
+body { id1208 } name "Cell_2"
+move body { id1208 } midpoint location -1.2599999999999998 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1209 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1210 = Id("body") }
+subtract body { id1209 } from body { id1210 }
+body { id1210 } name "Cell_3"
+move body { id1210 } midpoint location -1.2599999999999998 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1211 = Id("body") }
+body { id1211 } name "Cell_1"
+move body { id1211 } midpoint location 0.0 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1212 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1213 = Id("body") }
+subtract body { id1212 } from body { id1213 }
+cylinder height 500 radius 0.4572
+#{ id1214 = Id("body") }
+#{ id1215 = Id("body") }
+intersect body { id1213 } { id1214 }
+#{ id1216 = Id("body") }
+#{id1217 = ( id1215 == id1216 ) ? id1214 : id1216}
+brick x 1.26 y 1.26 z 500
+#{ id1218 = Id("body") }
+intersect body { id1217 } { id1218 }
+#{ id1219 = Id("body") }
+body { id1219 } name "Cell_2"
+move body { id1219 } midpoint location 0.0 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1220 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1221 = Id("body") }
+subtract body { id1220 } from body { id1221 }
+body { id1221 } name "Cell_3"
+move body { id1221 } midpoint location 0.0 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1222 = Id("body") }
+body { id1222 } name "Cell_1"
+move body { id1222 } midpoint location 1.2599999999999998 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1223 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1224 = Id("body") }
+subtract body { id1223 } from body { id1224 }
+cylinder height 500 radius 0.4572
+#{ id1225 = Id("body") }
+#{ id1226 = Id("body") }
+intersect body { id1224 } { id1225 }
+#{ id1227 = Id("body") }
+#{id1228 = ( id1226 == id1227 ) ? id1225 : id1227}
+brick x 1.26 y 1.26 z 500
+#{ id1229 = Id("body") }
+intersect body { id1228 } { id1229 }
+#{ id1230 = Id("body") }
+body { id1230 } name "Cell_2"
+move body { id1230 } midpoint location 1.2599999999999998 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1231 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1232 = Id("body") }
+subtract body { id1231 } from body { id1232 }
+body { id1232 } name "Cell_3"
+move body { id1232 } midpoint location 1.2599999999999998 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1233 = Id("body") }
+body { id1233 } name "Cell_1"
+move body { id1233 } midpoint location 2.5199999999999996 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1234 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1235 = Id("body") }
+subtract body { id1234 } from body { id1235 }
+cylinder height 500 radius 0.4572
+#{ id1236 = Id("body") }
+#{ id1237 = Id("body") }
+intersect body { id1235 } { id1236 }
+#{ id1238 = Id("body") }
+#{id1239 = ( id1237 == id1238 ) ? id1236 : id1238}
+brick x 1.26 y 1.26 z 500
+#{ id1240 = Id("body") }
+intersect body { id1239 } { id1240 }
+#{ id1241 = Id("body") }
+body { id1241 } name "Cell_2"
+move body { id1241 } midpoint location 2.5199999999999996 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1242 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1243 = Id("body") }
+subtract body { id1242 } from body { id1243 }
+body { id1243 } name "Cell_3"
+move body { id1243 } midpoint location 2.5199999999999996 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1244 = Id("body") }
+body { id1244 } name "Cell_1"
+move body { id1244 } midpoint location 3.7799999999999994 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1245 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1246 = Id("body") }
+subtract body { id1245 } from body { id1246 }
+cylinder height 500 radius 0.4572
+#{ id1247 = Id("body") }
+#{ id1248 = Id("body") }
+intersect body { id1246 } { id1247 }
+#{ id1249 = Id("body") }
+#{id1250 = ( id1248 == id1249 ) ? id1247 : id1249}
+brick x 1.26 y 1.26 z 500
+#{ id1251 = Id("body") }
+intersect body { id1250 } { id1251 }
+#{ id1252 = Id("body") }
+body { id1252 } name "Cell_2"
+move body { id1252 } midpoint location 3.7799999999999994 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1253 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1254 = Id("body") }
+subtract body { id1253 } from body { id1254 }
+body { id1254 } name "Cell_3"
+move body { id1254 } midpoint location 3.7799999999999994 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1255 = Id("body") }
+body { id1255 } name "Cell_1"
+move body { id1255 } midpoint location 5.040000000000001 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1256 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1257 = Id("body") }
+subtract body { id1256 } from body { id1257 }
+cylinder height 500 radius 0.4572
+#{ id1258 = Id("body") }
+#{ id1259 = Id("body") }
+intersect body { id1257 } { id1258 }
+#{ id1260 = Id("body") }
+#{id1261 = ( id1259 == id1260 ) ? id1258 : id1260}
+brick x 1.26 y 1.26 z 500
+#{ id1262 = Id("body") }
+intersect body { id1261 } { id1262 }
+#{ id1263 = Id("body") }
+body { id1263 } name "Cell_2"
+move body { id1263 } midpoint location 5.040000000000001 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1264 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1265 = Id("body") }
+subtract body { id1264 } from body { id1265 }
+body { id1265 } name "Cell_3"
+move body { id1265 } midpoint location 5.040000000000001 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1266 = Id("body") }
+body { id1266 } name "Cell_1"
+move body { id1266 } midpoint location 6.299999999999999 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1267 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1268 = Id("body") }
+subtract body { id1267 } from body { id1268 }
+cylinder height 500 radius 0.4572
+#{ id1269 = Id("body") }
+#{ id1270 = Id("body") }
+intersect body { id1268 } { id1269 }
+#{ id1271 = Id("body") }
+#{id1272 = ( id1270 == id1271 ) ? id1269 : id1271}
+brick x 1.26 y 1.26 z 500
+#{ id1273 = Id("body") }
+intersect body { id1272 } { id1273 }
+#{ id1274 = Id("body") }
+body { id1274 } name "Cell_2"
+move body { id1274 } midpoint location 6.299999999999999 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1275 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1276 = Id("body") }
+subtract body { id1275 } from body { id1276 }
+body { id1276 } name "Cell_3"
+move body { id1276 } midpoint location 6.299999999999999 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1277 = Id("body") }
+body { id1277 } name "Cell_1"
+move body { id1277 } midpoint location 7.5600000000000005 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1278 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1279 = Id("body") }
+subtract body { id1278 } from body { id1279 }
+cylinder height 500 radius 0.4572
+#{ id1280 = Id("body") }
+#{ id1281 = Id("body") }
+intersect body { id1279 } { id1280 }
+#{ id1282 = Id("body") }
+#{id1283 = ( id1281 == id1282 ) ? id1280 : id1282}
+brick x 1.26 y 1.26 z 500
+#{ id1284 = Id("body") }
+intersect body { id1283 } { id1284 }
+#{ id1285 = Id("body") }
+body { id1285 } name "Cell_2"
+move body { id1285 } midpoint location 7.5600000000000005 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1286 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1287 = Id("body") }
+subtract body { id1286 } from body { id1287 }
+body { id1287 } name "Cell_3"
+move body { id1287 } midpoint location 7.5600000000000005 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1288 = Id("body") }
+body { id1288 } name "Cell_1"
+move body { id1288 } midpoint location 8.819999999999999 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1289 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1290 = Id("body") }
+subtract body { id1289 } from body { id1290 }
+cylinder height 500 radius 0.4572
+#{ id1291 = Id("body") }
+#{ id1292 = Id("body") }
+intersect body { id1290 } { id1291 }
+#{ id1293 = Id("body") }
+#{id1294 = ( id1292 == id1293 ) ? id1291 : id1293}
+brick x 1.26 y 1.26 z 500
+#{ id1295 = Id("body") }
+intersect body { id1294 } { id1295 }
+#{ id1296 = Id("body") }
+body { id1296 } name "Cell_2"
+move body { id1296 } midpoint location 8.819999999999999 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1297 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1298 = Id("body") }
+subtract body { id1297 } from body { id1298 }
+body { id1298 } name "Cell_3"
+move body { id1298 } midpoint location 8.819999999999999 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1299 = Id("body") }
+body { id1299 } name "Cell_1"
+move body { id1299 } midpoint location 10.08 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1300 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1301 = Id("body") }
+subtract body { id1300 } from body { id1301 }
+cylinder height 500 radius 0.4572
+#{ id1302 = Id("body") }
+#{ id1303 = Id("body") }
+intersect body { id1301 } { id1302 }
+#{ id1304 = Id("body") }
+#{id1305 = ( id1303 == id1304 ) ? id1302 : id1304}
+brick x 1.26 y 1.26 z 500
+#{ id1306 = Id("body") }
+intersect body { id1305 } { id1306 }
+#{ id1307 = Id("body") }
+body { id1307 } name "Cell_2"
+move body { id1307 } midpoint location 10.08 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1308 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1309 = Id("body") }
+subtract body { id1308 } from body { id1309 }
+body { id1309 } name "Cell_3"
+move body { id1309 } midpoint location 10.08 -2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1310 = Id("body") }
+body { id1310 } name "Cell_1"
+move body { id1310 } midpoint location -10.08 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1311 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1312 = Id("body") }
+subtract body { id1311 } from body { id1312 }
+cylinder height 500 radius 0.4572
+#{ id1313 = Id("body") }
+#{ id1314 = Id("body") }
+intersect body { id1312 } { id1313 }
+#{ id1315 = Id("body") }
+#{id1316 = ( id1314 == id1315 ) ? id1313 : id1315}
+brick x 1.26 y 1.26 z 500
+#{ id1317 = Id("body") }
+intersect body { id1316 } { id1317 }
+#{ id1318 = Id("body") }
+body { id1318 } name "Cell_2"
+move body { id1318 } midpoint location -10.08 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1319 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1320 = Id("body") }
+subtract body { id1319 } from body { id1320 }
+body { id1320 } name "Cell_3"
+move body { id1320 } midpoint location -10.08 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1321 = Id("body") }
+body { id1321 } name "Cell_1"
+move body { id1321 } midpoint location -8.82 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1322 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1323 = Id("body") }
+subtract body { id1322 } from body { id1323 }
+cylinder height 500 radius 0.4572
+#{ id1324 = Id("body") }
+#{ id1325 = Id("body") }
+intersect body { id1323 } { id1324 }
+#{ id1326 = Id("body") }
+#{id1327 = ( id1325 == id1326 ) ? id1324 : id1326}
+brick x 1.26 y 1.26 z 500
+#{ id1328 = Id("body") }
+intersect body { id1327 } { id1328 }
+#{ id1329 = Id("body") }
+body { id1329 } name "Cell_2"
+move body { id1329 } midpoint location -8.82 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1330 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1331 = Id("body") }
+subtract body { id1330 } from body { id1331 }
+body { id1331 } name "Cell_3"
+move body { id1331 } midpoint location -8.82 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1332 = Id("body") }
+body { id1332 } name "Cell_1"
+move body { id1332 } midpoint location -7.5600000000000005 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1333 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1334 = Id("body") }
+subtract body { id1333 } from body { id1334 }
+cylinder height 500 radius 0.4572
+#{ id1335 = Id("body") }
+#{ id1336 = Id("body") }
+intersect body { id1334 } { id1335 }
+#{ id1337 = Id("body") }
+#{id1338 = ( id1336 == id1337 ) ? id1335 : id1337}
+brick x 1.26 y 1.26 z 500
+#{ id1339 = Id("body") }
+intersect body { id1338 } { id1339 }
+#{ id1340 = Id("body") }
+body { id1340 } name "Cell_2"
+move body { id1340 } midpoint location -7.5600000000000005 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1341 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1342 = Id("body") }
+subtract body { id1341 } from body { id1342 }
+body { id1342 } name "Cell_3"
+move body { id1342 } midpoint location -7.5600000000000005 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1343 = Id("body") }
+body { id1343 } name "Cell_1"
+move body { id1343 } midpoint location -6.3 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1344 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1345 = Id("body") }
+subtract body { id1344 } from body { id1345 }
+cylinder height 500 radius 0.4572
+#{ id1346 = Id("body") }
+#{ id1347 = Id("body") }
+intersect body { id1345 } { id1346 }
+#{ id1348 = Id("body") }
+#{id1349 = ( id1347 == id1348 ) ? id1346 : id1348}
+brick x 1.26 y 1.26 z 500
+#{ id1350 = Id("body") }
+intersect body { id1349 } { id1350 }
+#{ id1351 = Id("body") }
+body { id1351 } name "Cell_2"
+move body { id1351 } midpoint location -6.3 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1352 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1353 = Id("body") }
+subtract body { id1352 } from body { id1353 }
+body { id1353 } name "Cell_3"
+move body { id1353 } midpoint location -6.3 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1354 = Id("body") }
+body { id1354 } name "Cell_1"
+move body { id1354 } midpoint location -5.04 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1355 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1356 = Id("body") }
+subtract body { id1355 } from body { id1356 }
+cylinder height 500 radius 0.4572
+#{ id1357 = Id("body") }
+#{ id1358 = Id("body") }
+intersect body { id1356 } { id1357 }
+#{ id1359 = Id("body") }
+#{id1360 = ( id1358 == id1359 ) ? id1357 : id1359}
+brick x 1.26 y 1.26 z 500
+#{ id1361 = Id("body") }
+intersect body { id1360 } { id1361 }
+#{ id1362 = Id("body") }
+body { id1362 } name "Cell_2"
+move body { id1362 } midpoint location -5.04 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1363 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1364 = Id("body") }
+subtract body { id1363 } from body { id1364 }
+body { id1364 } name "Cell_3"
+move body { id1364 } midpoint location -5.04 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1365 = Id("body") }
+body { id1365 } name "Cell_1"
+move body { id1365 } midpoint location -3.7800000000000002 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1366 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1367 = Id("body") }
+subtract body { id1366 } from body { id1367 }
+cylinder height 500 radius 0.4572
+#{ id1368 = Id("body") }
+#{ id1369 = Id("body") }
+intersect body { id1367 } { id1368 }
+#{ id1370 = Id("body") }
+#{id1371 = ( id1369 == id1370 ) ? id1368 : id1370}
+brick x 1.26 y 1.26 z 500
+#{ id1372 = Id("body") }
+intersect body { id1371 } { id1372 }
+#{ id1373 = Id("body") }
+body { id1373 } name "Cell_2"
+move body { id1373 } midpoint location -3.7800000000000002 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1374 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1375 = Id("body") }
+subtract body { id1374 } from body { id1375 }
+body { id1375 } name "Cell_3"
+move body { id1375 } midpoint location -3.7800000000000002 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1376 = Id("body") }
+body { id1376 } name "Cell_1"
+move body { id1376 } midpoint location -2.5199999999999996 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1377 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1378 = Id("body") }
+subtract body { id1377 } from body { id1378 }
+cylinder height 500 radius 0.4572
+#{ id1379 = Id("body") }
+#{ id1380 = Id("body") }
+intersect body { id1378 } { id1379 }
+#{ id1381 = Id("body") }
+#{id1382 = ( id1380 == id1381 ) ? id1379 : id1381}
+brick x 1.26 y 1.26 z 500
+#{ id1383 = Id("body") }
+intersect body { id1382 } { id1383 }
+#{ id1384 = Id("body") }
+body { id1384 } name "Cell_2"
+move body { id1384 } midpoint location -2.5199999999999996 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1385 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1386 = Id("body") }
+subtract body { id1385 } from body { id1386 }
+body { id1386 } name "Cell_3"
+move body { id1386 } midpoint location -2.5199999999999996 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1387 = Id("body") }
+body { id1387 } name "Cell_1"
+move body { id1387 } midpoint location -1.2599999999999998 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1388 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1389 = Id("body") }
+subtract body { id1388 } from body { id1389 }
+cylinder height 500 radius 0.4572
+#{ id1390 = Id("body") }
+#{ id1391 = Id("body") }
+intersect body { id1389 } { id1390 }
+#{ id1392 = Id("body") }
+#{id1393 = ( id1391 == id1392 ) ? id1390 : id1392}
+brick x 1.26 y 1.26 z 500
+#{ id1394 = Id("body") }
+intersect body { id1393 } { id1394 }
+#{ id1395 = Id("body") }
+body { id1395 } name "Cell_2"
+move body { id1395 } midpoint location -1.2599999999999998 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1396 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1397 = Id("body") }
+subtract body { id1396 } from body { id1397 }
+body { id1397 } name "Cell_3"
+move body { id1397 } midpoint location -1.2599999999999998 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1398 = Id("body") }
+body { id1398 } name "Cell_1"
+move body { id1398 } midpoint location 0.0 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1399 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1400 = Id("body") }
+subtract body { id1399 } from body { id1400 }
+cylinder height 500 radius 0.4572
+#{ id1401 = Id("body") }
+#{ id1402 = Id("body") }
+intersect body { id1400 } { id1401 }
+#{ id1403 = Id("body") }
+#{id1404 = ( id1402 == id1403 ) ? id1401 : id1403}
+brick x 1.26 y 1.26 z 500
+#{ id1405 = Id("body") }
+intersect body { id1404 } { id1405 }
+#{ id1406 = Id("body") }
+body { id1406 } name "Cell_2"
+move body { id1406 } midpoint location 0.0 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1407 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1408 = Id("body") }
+subtract body { id1407 } from body { id1408 }
+body { id1408 } name "Cell_3"
+move body { id1408 } midpoint location 0.0 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1409 = Id("body") }
+body { id1409 } name "Cell_1"
+move body { id1409 } midpoint location 1.2599999999999998 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1410 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1411 = Id("body") }
+subtract body { id1410 } from body { id1411 }
+cylinder height 500 radius 0.4572
+#{ id1412 = Id("body") }
+#{ id1413 = Id("body") }
+intersect body { id1411 } { id1412 }
+#{ id1414 = Id("body") }
+#{id1415 = ( id1413 == id1414 ) ? id1412 : id1414}
+brick x 1.26 y 1.26 z 500
+#{ id1416 = Id("body") }
+intersect body { id1415 } { id1416 }
+#{ id1417 = Id("body") }
+body { id1417 } name "Cell_2"
+move body { id1417 } midpoint location 1.2599999999999998 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1418 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1419 = Id("body") }
+subtract body { id1418 } from body { id1419 }
+body { id1419 } name "Cell_3"
+move body { id1419 } midpoint location 1.2599999999999998 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1420 = Id("body") }
+body { id1420 } name "Cell_1"
+move body { id1420 } midpoint location 2.5199999999999996 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1421 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1422 = Id("body") }
+subtract body { id1421 } from body { id1422 }
+cylinder height 500 radius 0.4572
+#{ id1423 = Id("body") }
+#{ id1424 = Id("body") }
+intersect body { id1422 } { id1423 }
+#{ id1425 = Id("body") }
+#{id1426 = ( id1424 == id1425 ) ? id1423 : id1425}
+brick x 1.26 y 1.26 z 500
+#{ id1427 = Id("body") }
+intersect body { id1426 } { id1427 }
+#{ id1428 = Id("body") }
+body { id1428 } name "Cell_2"
+move body { id1428 } midpoint location 2.5199999999999996 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1429 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1430 = Id("body") }
+subtract body { id1429 } from body { id1430 }
+body { id1430 } name "Cell_3"
+move body { id1430 } midpoint location 2.5199999999999996 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1431 = Id("body") }
+body { id1431 } name "Cell_1"
+move body { id1431 } midpoint location 3.7799999999999994 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1432 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1433 = Id("body") }
+subtract body { id1432 } from body { id1433 }
+cylinder height 500 radius 0.4572
+#{ id1434 = Id("body") }
+#{ id1435 = Id("body") }
+intersect body { id1433 } { id1434 }
+#{ id1436 = Id("body") }
+#{id1437 = ( id1435 == id1436 ) ? id1434 : id1436}
+brick x 1.26 y 1.26 z 500
+#{ id1438 = Id("body") }
+intersect body { id1437 } { id1438 }
+#{ id1439 = Id("body") }
+body { id1439 } name "Cell_2"
+move body { id1439 } midpoint location 3.7799999999999994 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1440 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1441 = Id("body") }
+subtract body { id1440 } from body { id1441 }
+body { id1441 } name "Cell_3"
+move body { id1441 } midpoint location 3.7799999999999994 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1442 = Id("body") }
+body { id1442 } name "Cell_1"
+move body { id1442 } midpoint location 5.040000000000001 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1443 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1444 = Id("body") }
+subtract body { id1443 } from body { id1444 }
+cylinder height 500 radius 0.4572
+#{ id1445 = Id("body") }
+#{ id1446 = Id("body") }
+intersect body { id1444 } { id1445 }
+#{ id1447 = Id("body") }
+#{id1448 = ( id1446 == id1447 ) ? id1445 : id1447}
+brick x 1.26 y 1.26 z 500
+#{ id1449 = Id("body") }
+intersect body { id1448 } { id1449 }
+#{ id1450 = Id("body") }
+body { id1450 } name "Cell_2"
+move body { id1450 } midpoint location 5.040000000000001 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1451 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1452 = Id("body") }
+subtract body { id1451 } from body { id1452 }
+body { id1452 } name "Cell_3"
+move body { id1452 } midpoint location 5.040000000000001 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1453 = Id("body") }
+body { id1453 } name "Cell_1"
+move body { id1453 } midpoint location 6.299999999999999 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1454 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1455 = Id("body") }
+subtract body { id1454 } from body { id1455 }
+cylinder height 500 radius 0.4572
+#{ id1456 = Id("body") }
+#{ id1457 = Id("body") }
+intersect body { id1455 } { id1456 }
+#{ id1458 = Id("body") }
+#{id1459 = ( id1457 == id1458 ) ? id1456 : id1458}
+brick x 1.26 y 1.26 z 500
+#{ id1460 = Id("body") }
+intersect body { id1459 } { id1460 }
+#{ id1461 = Id("body") }
+body { id1461 } name "Cell_2"
+move body { id1461 } midpoint location 6.299999999999999 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1462 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1463 = Id("body") }
+subtract body { id1462 } from body { id1463 }
+body { id1463 } name "Cell_3"
+move body { id1463 } midpoint location 6.299999999999999 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1464 = Id("body") }
+body { id1464 } name "Cell_1"
+move body { id1464 } midpoint location 7.5600000000000005 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1465 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1466 = Id("body") }
+subtract body { id1465 } from body { id1466 }
+cylinder height 500 radius 0.4572
+#{ id1467 = Id("body") }
+#{ id1468 = Id("body") }
+intersect body { id1466 } { id1467 }
+#{ id1469 = Id("body") }
+#{id1470 = ( id1468 == id1469 ) ? id1467 : id1469}
+brick x 1.26 y 1.26 z 500
+#{ id1471 = Id("body") }
+intersect body { id1470 } { id1471 }
+#{ id1472 = Id("body") }
+body { id1472 } name "Cell_2"
+move body { id1472 } midpoint location 7.5600000000000005 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1473 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1474 = Id("body") }
+subtract body { id1473 } from body { id1474 }
+body { id1474 } name "Cell_3"
+move body { id1474 } midpoint location 7.5600000000000005 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1475 = Id("body") }
+body { id1475 } name "Cell_1"
+move body { id1475 } midpoint location 8.819999999999999 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1476 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1477 = Id("body") }
+subtract body { id1476 } from body { id1477 }
+cylinder height 500 radius 0.4572
+#{ id1478 = Id("body") }
+#{ id1479 = Id("body") }
+intersect body { id1477 } { id1478 }
+#{ id1480 = Id("body") }
+#{id1481 = ( id1479 == id1480 ) ? id1478 : id1480}
+brick x 1.26 y 1.26 z 500
+#{ id1482 = Id("body") }
+intersect body { id1481 } { id1482 }
+#{ id1483 = Id("body") }
+body { id1483 } name "Cell_2"
+move body { id1483 } midpoint location 8.819999999999999 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1484 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1485 = Id("body") }
+subtract body { id1484 } from body { id1485 }
+body { id1485 } name "Cell_3"
+move body { id1485 } midpoint location 8.819999999999999 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1486 = Id("body") }
+body { id1486 } name "Cell_1"
+move body { id1486 } midpoint location 10.08 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1487 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1488 = Id("body") }
+subtract body { id1487 } from body { id1488 }
+cylinder height 500 radius 0.4572
+#{ id1489 = Id("body") }
+#{ id1490 = Id("body") }
+intersect body { id1488 } { id1489 }
+#{ id1491 = Id("body") }
+#{id1492 = ( id1490 == id1491 ) ? id1489 : id1491}
+brick x 1.26 y 1.26 z 500
+#{ id1493 = Id("body") }
+intersect body { id1492 } { id1493 }
+#{ id1494 = Id("body") }
+body { id1494 } name "Cell_2"
+move body { id1494 } midpoint location 10.08 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1495 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1496 = Id("body") }
+subtract body { id1495 } from body { id1496 }
+body { id1496 } name "Cell_3"
+move body { id1496 } midpoint location 10.08 -1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1497 = Id("body") }
+body { id1497 } name "Cell_1"
+move body { id1497 } midpoint location -10.08 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1498 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1499 = Id("body") }
+subtract body { id1498 } from body { id1499 }
+cylinder height 500 radius 0.4572
+#{ id1500 = Id("body") }
+#{ id1501 = Id("body") }
+intersect body { id1499 } { id1500 }
+#{ id1502 = Id("body") }
+#{id1503 = ( id1501 == id1502 ) ? id1500 : id1502}
+brick x 1.26 y 1.26 z 500
+#{ id1504 = Id("body") }
+intersect body { id1503 } { id1504 }
+#{ id1505 = Id("body") }
+body { id1505 } name "Cell_2"
+move body { id1505 } midpoint location -10.08 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1506 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1507 = Id("body") }
+subtract body { id1506 } from body { id1507 }
+body { id1507 } name "Cell_3"
+move body { id1507 } midpoint location -10.08 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1508 = Id("body") }
+body { id1508 } name "Cell_1"
+move body { id1508 } midpoint location -8.82 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1509 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1510 = Id("body") }
+subtract body { id1509 } from body { id1510 }
+cylinder height 500 radius 0.4572
+#{ id1511 = Id("body") }
+#{ id1512 = Id("body") }
+intersect body { id1510 } { id1511 }
+#{ id1513 = Id("body") }
+#{id1514 = ( id1512 == id1513 ) ? id1511 : id1513}
+brick x 1.26 y 1.26 z 500
+#{ id1515 = Id("body") }
+intersect body { id1514 } { id1515 }
+#{ id1516 = Id("body") }
+body { id1516 } name "Cell_2"
+move body { id1516 } midpoint location -8.82 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1517 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1518 = Id("body") }
+subtract body { id1517 } from body { id1518 }
+body { id1518 } name "Cell_3"
+move body { id1518 } midpoint location -8.82 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1519 = Id("body") }
+body { id1519 } name "Cell_4"
+move body { id1519 } midpoint location -7.5600000000000005 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1520 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1521 = Id("body") }
+subtract body { id1520 } from body { id1521 }
+cylinder height 500 radius 0.4572
+#{ id1522 = Id("body") }
+#{ id1523 = Id("body") }
+intersect body { id1521 } { id1522 }
+#{ id1524 = Id("body") }
+#{id1525 = ( id1523 == id1524 ) ? id1522 : id1524}
+brick x 1.26 y 1.26 z 500
+#{ id1526 = Id("body") }
+intersect body { id1525 } { id1526 }
+#{ id1527 = Id("body") }
+body { id1527 } name "Cell_5"
+move body { id1527 } midpoint location -7.5600000000000005 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1528 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1529 = Id("body") }
+subtract body { id1528 } from body { id1529 }
+body { id1529 } name "Cell_6"
+move body { id1529 } midpoint location -7.5600000000000005 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1530 = Id("body") }
+body { id1530 } name "Cell_1"
+move body { id1530 } midpoint location -6.3 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1531 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1532 = Id("body") }
+subtract body { id1531 } from body { id1532 }
+cylinder height 500 radius 0.4572
+#{ id1533 = Id("body") }
+#{ id1534 = Id("body") }
+intersect body { id1532 } { id1533 }
+#{ id1535 = Id("body") }
+#{id1536 = ( id1534 == id1535 ) ? id1533 : id1535}
+brick x 1.26 y 1.26 z 500
+#{ id1537 = Id("body") }
+intersect body { id1536 } { id1537 }
+#{ id1538 = Id("body") }
+body { id1538 } name "Cell_2"
+move body { id1538 } midpoint location -6.3 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1539 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1540 = Id("body") }
+subtract body { id1539 } from body { id1540 }
+body { id1540 } name "Cell_3"
+move body { id1540 } midpoint location -6.3 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1541 = Id("body") }
+body { id1541 } name "Cell_1"
+move body { id1541 } midpoint location -5.04 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1542 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1543 = Id("body") }
+subtract body { id1542 } from body { id1543 }
+cylinder height 500 radius 0.4572
+#{ id1544 = Id("body") }
+#{ id1545 = Id("body") }
+intersect body { id1543 } { id1544 }
+#{ id1546 = Id("body") }
+#{id1547 = ( id1545 == id1546 ) ? id1544 : id1546}
+brick x 1.26 y 1.26 z 500
+#{ id1548 = Id("body") }
+intersect body { id1547 } { id1548 }
+#{ id1549 = Id("body") }
+body { id1549 } name "Cell_2"
+move body { id1549 } midpoint location -5.04 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1550 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1551 = Id("body") }
+subtract body { id1550 } from body { id1551 }
+body { id1551 } name "Cell_3"
+move body { id1551 } midpoint location -5.04 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1552 = Id("body") }
+body { id1552 } name "Cell_4"
+move body { id1552 } midpoint location -3.7800000000000002 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1553 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1554 = Id("body") }
+subtract body { id1553 } from body { id1554 }
+cylinder height 500 radius 0.4572
+#{ id1555 = Id("body") }
+#{ id1556 = Id("body") }
+intersect body { id1554 } { id1555 }
+#{ id1557 = Id("body") }
+#{id1558 = ( id1556 == id1557 ) ? id1555 : id1557}
+brick x 1.26 y 1.26 z 500
+#{ id1559 = Id("body") }
+intersect body { id1558 } { id1559 }
+#{ id1560 = Id("body") }
+body { id1560 } name "Cell_5"
+move body { id1560 } midpoint location -3.7800000000000002 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1561 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1562 = Id("body") }
+subtract body { id1561 } from body { id1562 }
+body { id1562 } name "Cell_6"
+move body { id1562 } midpoint location -3.7800000000000002 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1563 = Id("body") }
+body { id1563 } name "Cell_1"
+move body { id1563 } midpoint location -2.5199999999999996 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1564 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1565 = Id("body") }
+subtract body { id1564 } from body { id1565 }
+cylinder height 500 radius 0.4572
+#{ id1566 = Id("body") }
+#{ id1567 = Id("body") }
+intersect body { id1565 } { id1566 }
+#{ id1568 = Id("body") }
+#{id1569 = ( id1567 == id1568 ) ? id1566 : id1568}
+brick x 1.26 y 1.26 z 500
+#{ id1570 = Id("body") }
+intersect body { id1569 } { id1570 }
+#{ id1571 = Id("body") }
+body { id1571 } name "Cell_2"
+move body { id1571 } midpoint location -2.5199999999999996 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1572 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1573 = Id("body") }
+subtract body { id1572 } from body { id1573 }
+body { id1573 } name "Cell_3"
+move body { id1573 } midpoint location -2.5199999999999996 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1574 = Id("body") }
+body { id1574 } name "Cell_1"
+move body { id1574 } midpoint location -1.2599999999999998 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1575 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1576 = Id("body") }
+subtract body { id1575 } from body { id1576 }
+cylinder height 500 radius 0.4572
+#{ id1577 = Id("body") }
+#{ id1578 = Id("body") }
+intersect body { id1576 } { id1577 }
+#{ id1579 = Id("body") }
+#{id1580 = ( id1578 == id1579 ) ? id1577 : id1579}
+brick x 1.26 y 1.26 z 500
+#{ id1581 = Id("body") }
+intersect body { id1580 } { id1581 }
+#{ id1582 = Id("body") }
+body { id1582 } name "Cell_2"
+move body { id1582 } midpoint location -1.2599999999999998 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1583 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1584 = Id("body") }
+subtract body { id1583 } from body { id1584 }
+body { id1584 } name "Cell_3"
+move body { id1584 } midpoint location -1.2599999999999998 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1585 = Id("body") }
+body { id1585 } name "Cell_4"
+move body { id1585 } midpoint location 0.0 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1586 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1587 = Id("body") }
+subtract body { id1586 } from body { id1587 }
+cylinder height 500 radius 0.4572
+#{ id1588 = Id("body") }
+#{ id1589 = Id("body") }
+intersect body { id1587 } { id1588 }
+#{ id1590 = Id("body") }
+#{id1591 = ( id1589 == id1590 ) ? id1588 : id1590}
+brick x 1.26 y 1.26 z 500
+#{ id1592 = Id("body") }
+intersect body { id1591 } { id1592 }
+#{ id1593 = Id("body") }
+body { id1593 } name "Cell_5"
+move body { id1593 } midpoint location 0.0 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1594 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1595 = Id("body") }
+subtract body { id1594 } from body { id1595 }
+body { id1595 } name "Cell_6"
+move body { id1595 } midpoint location 0.0 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1596 = Id("body") }
+body { id1596 } name "Cell_1"
+move body { id1596 } midpoint location 1.2599999999999998 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1597 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1598 = Id("body") }
+subtract body { id1597 } from body { id1598 }
+cylinder height 500 radius 0.4572
+#{ id1599 = Id("body") }
+#{ id1600 = Id("body") }
+intersect body { id1598 } { id1599 }
+#{ id1601 = Id("body") }
+#{id1602 = ( id1600 == id1601 ) ? id1599 : id1601}
+brick x 1.26 y 1.26 z 500
+#{ id1603 = Id("body") }
+intersect body { id1602 } { id1603 }
+#{ id1604 = Id("body") }
+body { id1604 } name "Cell_2"
+move body { id1604 } midpoint location 1.2599999999999998 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1605 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1606 = Id("body") }
+subtract body { id1605 } from body { id1606 }
+body { id1606 } name "Cell_3"
+move body { id1606 } midpoint location 1.2599999999999998 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1607 = Id("body") }
+body { id1607 } name "Cell_1"
+move body { id1607 } midpoint location 2.5199999999999996 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1608 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1609 = Id("body") }
+subtract body { id1608 } from body { id1609 }
+cylinder height 500 radius 0.4572
+#{ id1610 = Id("body") }
+#{ id1611 = Id("body") }
+intersect body { id1609 } { id1610 }
+#{ id1612 = Id("body") }
+#{id1613 = ( id1611 == id1612 ) ? id1610 : id1612}
+brick x 1.26 y 1.26 z 500
+#{ id1614 = Id("body") }
+intersect body { id1613 } { id1614 }
+#{ id1615 = Id("body") }
+body { id1615 } name "Cell_2"
+move body { id1615 } midpoint location 2.5199999999999996 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1616 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1617 = Id("body") }
+subtract body { id1616 } from body { id1617 }
+body { id1617 } name "Cell_3"
+move body { id1617 } midpoint location 2.5199999999999996 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1618 = Id("body") }
+body { id1618 } name "Cell_4"
+move body { id1618 } midpoint location 3.7799999999999994 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1619 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1620 = Id("body") }
+subtract body { id1619 } from body { id1620 }
+cylinder height 500 radius 0.4572
+#{ id1621 = Id("body") }
+#{ id1622 = Id("body") }
+intersect body { id1620 } { id1621 }
+#{ id1623 = Id("body") }
+#{id1624 = ( id1622 == id1623 ) ? id1621 : id1623}
+brick x 1.26 y 1.26 z 500
+#{ id1625 = Id("body") }
+intersect body { id1624 } { id1625 }
+#{ id1626 = Id("body") }
+body { id1626 } name "Cell_5"
+move body { id1626 } midpoint location 3.7799999999999994 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1627 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1628 = Id("body") }
+subtract body { id1627 } from body { id1628 }
+body { id1628 } name "Cell_6"
+move body { id1628 } midpoint location 3.7799999999999994 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1629 = Id("body") }
+body { id1629 } name "Cell_1"
+move body { id1629 } midpoint location 5.040000000000001 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1630 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1631 = Id("body") }
+subtract body { id1630 } from body { id1631 }
+cylinder height 500 radius 0.4572
+#{ id1632 = Id("body") }
+#{ id1633 = Id("body") }
+intersect body { id1631 } { id1632 }
+#{ id1634 = Id("body") }
+#{id1635 = ( id1633 == id1634 ) ? id1632 : id1634}
+brick x 1.26 y 1.26 z 500
+#{ id1636 = Id("body") }
+intersect body { id1635 } { id1636 }
+#{ id1637 = Id("body") }
+body { id1637 } name "Cell_2"
+move body { id1637 } midpoint location 5.040000000000001 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1638 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1639 = Id("body") }
+subtract body { id1638 } from body { id1639 }
+body { id1639 } name "Cell_3"
+move body { id1639 } midpoint location 5.040000000000001 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1640 = Id("body") }
+body { id1640 } name "Cell_1"
+move body { id1640 } midpoint location 6.299999999999999 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1641 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1642 = Id("body") }
+subtract body { id1641 } from body { id1642 }
+cylinder height 500 radius 0.4572
+#{ id1643 = Id("body") }
+#{ id1644 = Id("body") }
+intersect body { id1642 } { id1643 }
+#{ id1645 = Id("body") }
+#{id1646 = ( id1644 == id1645 ) ? id1643 : id1645}
+brick x 1.26 y 1.26 z 500
+#{ id1647 = Id("body") }
+intersect body { id1646 } { id1647 }
+#{ id1648 = Id("body") }
+body { id1648 } name "Cell_2"
+move body { id1648 } midpoint location 6.299999999999999 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1649 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1650 = Id("body") }
+subtract body { id1649 } from body { id1650 }
+body { id1650 } name "Cell_3"
+move body { id1650 } midpoint location 6.299999999999999 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1651 = Id("body") }
+body { id1651 } name "Cell_4"
+move body { id1651 } midpoint location 7.5600000000000005 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1652 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1653 = Id("body") }
+subtract body { id1652 } from body { id1653 }
+cylinder height 500 radius 0.4572
+#{ id1654 = Id("body") }
+#{ id1655 = Id("body") }
+intersect body { id1653 } { id1654 }
+#{ id1656 = Id("body") }
+#{id1657 = ( id1655 == id1656 ) ? id1654 : id1656}
+brick x 1.26 y 1.26 z 500
+#{ id1658 = Id("body") }
+intersect body { id1657 } { id1658 }
+#{ id1659 = Id("body") }
+body { id1659 } name "Cell_5"
+move body { id1659 } midpoint location 7.5600000000000005 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1660 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1661 = Id("body") }
+subtract body { id1660 } from body { id1661 }
+body { id1661 } name "Cell_6"
+move body { id1661 } midpoint location 7.5600000000000005 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1662 = Id("body") }
+body { id1662 } name "Cell_1"
+move body { id1662 } midpoint location 8.819999999999999 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1663 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1664 = Id("body") }
+subtract body { id1663 } from body { id1664 }
+cylinder height 500 radius 0.4572
+#{ id1665 = Id("body") }
+#{ id1666 = Id("body") }
+intersect body { id1664 } { id1665 }
+#{ id1667 = Id("body") }
+#{id1668 = ( id1666 == id1667 ) ? id1665 : id1667}
+brick x 1.26 y 1.26 z 500
+#{ id1669 = Id("body") }
+intersect body { id1668 } { id1669 }
+#{ id1670 = Id("body") }
+body { id1670 } name "Cell_2"
+move body { id1670 } midpoint location 8.819999999999999 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1671 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1672 = Id("body") }
+subtract body { id1671 } from body { id1672 }
+body { id1672 } name "Cell_3"
+move body { id1672 } midpoint location 8.819999999999999 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1673 = Id("body") }
+body { id1673 } name "Cell_1"
+move body { id1673 } midpoint location 10.08 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1674 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1675 = Id("body") }
+subtract body { id1674 } from body { id1675 }
+cylinder height 500 radius 0.4572
+#{ id1676 = Id("body") }
+#{ id1677 = Id("body") }
+intersect body { id1675 } { id1676 }
+#{ id1678 = Id("body") }
+#{id1679 = ( id1677 == id1678 ) ? id1676 : id1678}
+brick x 1.26 y 1.26 z 500
+#{ id1680 = Id("body") }
+intersect body { id1679 } { id1680 }
+#{ id1681 = Id("body") }
+body { id1681 } name "Cell_2"
+move body { id1681 } midpoint location 10.08 0.0 0 except z
+cylinder height 500 radius 0.4572
+#{ id1682 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1683 = Id("body") }
+subtract body { id1682 } from body { id1683 }
+body { id1683 } name "Cell_3"
+move body { id1683 } midpoint location 10.08 0.0 0 except z
+cylinder height 500 radius 0.39218
+#{ id1684 = Id("body") }
+body { id1684 } name "Cell_1"
+move body { id1684 } midpoint location -10.08 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1685 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1686 = Id("body") }
+subtract body { id1685 } from body { id1686 }
+cylinder height 500 radius 0.4572
+#{ id1687 = Id("body") }
+#{ id1688 = Id("body") }
+intersect body { id1686 } { id1687 }
+#{ id1689 = Id("body") }
+#{id1690 = ( id1688 == id1689 ) ? id1687 : id1689}
+brick x 1.26 y 1.26 z 500
+#{ id1691 = Id("body") }
+intersect body { id1690 } { id1691 }
+#{ id1692 = Id("body") }
+body { id1692 } name "Cell_2"
+move body { id1692 } midpoint location -10.08 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1693 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1694 = Id("body") }
+subtract body { id1693 } from body { id1694 }
+body { id1694 } name "Cell_3"
+move body { id1694 } midpoint location -10.08 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1695 = Id("body") }
+body { id1695 } name "Cell_1"
+move body { id1695 } midpoint location -8.82 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1696 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1697 = Id("body") }
+subtract body { id1696 } from body { id1697 }
+cylinder height 500 radius 0.4572
+#{ id1698 = Id("body") }
+#{ id1699 = Id("body") }
+intersect body { id1697 } { id1698 }
+#{ id1700 = Id("body") }
+#{id1701 = ( id1699 == id1700 ) ? id1698 : id1700}
+brick x 1.26 y 1.26 z 500
+#{ id1702 = Id("body") }
+intersect body { id1701 } { id1702 }
+#{ id1703 = Id("body") }
+body { id1703 } name "Cell_2"
+move body { id1703 } midpoint location -8.82 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1704 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1705 = Id("body") }
+subtract body { id1704 } from body { id1705 }
+body { id1705 } name "Cell_3"
+move body { id1705 } midpoint location -8.82 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1706 = Id("body") }
+body { id1706 } name "Cell_1"
+move body { id1706 } midpoint location -7.5600000000000005 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1707 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1708 = Id("body") }
+subtract body { id1707 } from body { id1708 }
+cylinder height 500 radius 0.4572
+#{ id1709 = Id("body") }
+#{ id1710 = Id("body") }
+intersect body { id1708 } { id1709 }
+#{ id1711 = Id("body") }
+#{id1712 = ( id1710 == id1711 ) ? id1709 : id1711}
+brick x 1.26 y 1.26 z 500
+#{ id1713 = Id("body") }
+intersect body { id1712 } { id1713 }
+#{ id1714 = Id("body") }
+body { id1714 } name "Cell_2"
+move body { id1714 } midpoint location -7.5600000000000005 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1715 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1716 = Id("body") }
+subtract body { id1715 } from body { id1716 }
+body { id1716 } name "Cell_3"
+move body { id1716 } midpoint location -7.5600000000000005 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1717 = Id("body") }
+body { id1717 } name "Cell_1"
+move body { id1717 } midpoint location -6.3 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1718 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1719 = Id("body") }
+subtract body { id1718 } from body { id1719 }
+cylinder height 500 radius 0.4572
+#{ id1720 = Id("body") }
+#{ id1721 = Id("body") }
+intersect body { id1719 } { id1720 }
+#{ id1722 = Id("body") }
+#{id1723 = ( id1721 == id1722 ) ? id1720 : id1722}
+brick x 1.26 y 1.26 z 500
+#{ id1724 = Id("body") }
+intersect body { id1723 } { id1724 }
+#{ id1725 = Id("body") }
+body { id1725 } name "Cell_2"
+move body { id1725 } midpoint location -6.3 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1726 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1727 = Id("body") }
+subtract body { id1726 } from body { id1727 }
+body { id1727 } name "Cell_3"
+move body { id1727 } midpoint location -6.3 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1728 = Id("body") }
+body { id1728 } name "Cell_1"
+move body { id1728 } midpoint location -5.04 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1729 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1730 = Id("body") }
+subtract body { id1729 } from body { id1730 }
+cylinder height 500 radius 0.4572
+#{ id1731 = Id("body") }
+#{ id1732 = Id("body") }
+intersect body { id1730 } { id1731 }
+#{ id1733 = Id("body") }
+#{id1734 = ( id1732 == id1733 ) ? id1731 : id1733}
+brick x 1.26 y 1.26 z 500
+#{ id1735 = Id("body") }
+intersect body { id1734 } { id1735 }
+#{ id1736 = Id("body") }
+body { id1736 } name "Cell_2"
+move body { id1736 } midpoint location -5.04 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1737 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1738 = Id("body") }
+subtract body { id1737 } from body { id1738 }
+body { id1738 } name "Cell_3"
+move body { id1738 } midpoint location -5.04 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1739 = Id("body") }
+body { id1739 } name "Cell_1"
+move body { id1739 } midpoint location -3.7800000000000002 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1740 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1741 = Id("body") }
+subtract body { id1740 } from body { id1741 }
+cylinder height 500 radius 0.4572
+#{ id1742 = Id("body") }
+#{ id1743 = Id("body") }
+intersect body { id1741 } { id1742 }
+#{ id1744 = Id("body") }
+#{id1745 = ( id1743 == id1744 ) ? id1742 : id1744}
+brick x 1.26 y 1.26 z 500
+#{ id1746 = Id("body") }
+intersect body { id1745 } { id1746 }
+#{ id1747 = Id("body") }
+body { id1747 } name "Cell_2"
+move body { id1747 } midpoint location -3.7800000000000002 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1748 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1749 = Id("body") }
+subtract body { id1748 } from body { id1749 }
+body { id1749 } name "Cell_3"
+move body { id1749 } midpoint location -3.7800000000000002 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1750 = Id("body") }
+body { id1750 } name "Cell_1"
+move body { id1750 } midpoint location -2.5199999999999996 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1751 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1752 = Id("body") }
+subtract body { id1751 } from body { id1752 }
+cylinder height 500 radius 0.4572
+#{ id1753 = Id("body") }
+#{ id1754 = Id("body") }
+intersect body { id1752 } { id1753 }
+#{ id1755 = Id("body") }
+#{id1756 = ( id1754 == id1755 ) ? id1753 : id1755}
+brick x 1.26 y 1.26 z 500
+#{ id1757 = Id("body") }
+intersect body { id1756 } { id1757 }
+#{ id1758 = Id("body") }
+body { id1758 } name "Cell_2"
+move body { id1758 } midpoint location -2.5199999999999996 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1759 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1760 = Id("body") }
+subtract body { id1759 } from body { id1760 }
+body { id1760 } name "Cell_3"
+move body { id1760 } midpoint location -2.5199999999999996 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1761 = Id("body") }
+body { id1761 } name "Cell_1"
+move body { id1761 } midpoint location -1.2599999999999998 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1762 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1763 = Id("body") }
+subtract body { id1762 } from body { id1763 }
+cylinder height 500 radius 0.4572
+#{ id1764 = Id("body") }
+#{ id1765 = Id("body") }
+intersect body { id1763 } { id1764 }
+#{ id1766 = Id("body") }
+#{id1767 = ( id1765 == id1766 ) ? id1764 : id1766}
+brick x 1.26 y 1.26 z 500
+#{ id1768 = Id("body") }
+intersect body { id1767 } { id1768 }
+#{ id1769 = Id("body") }
+body { id1769 } name "Cell_2"
+move body { id1769 } midpoint location -1.2599999999999998 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1770 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1771 = Id("body") }
+subtract body { id1770 } from body { id1771 }
+body { id1771 } name "Cell_3"
+move body { id1771 } midpoint location -1.2599999999999998 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1772 = Id("body") }
+body { id1772 } name "Cell_1"
+move body { id1772 } midpoint location 0.0 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1773 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1774 = Id("body") }
+subtract body { id1773 } from body { id1774 }
+cylinder height 500 radius 0.4572
+#{ id1775 = Id("body") }
+#{ id1776 = Id("body") }
+intersect body { id1774 } { id1775 }
+#{ id1777 = Id("body") }
+#{id1778 = ( id1776 == id1777 ) ? id1775 : id1777}
+brick x 1.26 y 1.26 z 500
+#{ id1779 = Id("body") }
+intersect body { id1778 } { id1779 }
+#{ id1780 = Id("body") }
+body { id1780 } name "Cell_2"
+move body { id1780 } midpoint location 0.0 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1781 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1782 = Id("body") }
+subtract body { id1781 } from body { id1782 }
+body { id1782 } name "Cell_3"
+move body { id1782 } midpoint location 0.0 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1783 = Id("body") }
+body { id1783 } name "Cell_1"
+move body { id1783 } midpoint location 1.2599999999999998 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1784 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1785 = Id("body") }
+subtract body { id1784 } from body { id1785 }
+cylinder height 500 radius 0.4572
+#{ id1786 = Id("body") }
+#{ id1787 = Id("body") }
+intersect body { id1785 } { id1786 }
+#{ id1788 = Id("body") }
+#{id1789 = ( id1787 == id1788 ) ? id1786 : id1788}
+brick x 1.26 y 1.26 z 500
+#{ id1790 = Id("body") }
+intersect body { id1789 } { id1790 }
+#{ id1791 = Id("body") }
+body { id1791 } name "Cell_2"
+move body { id1791 } midpoint location 1.2599999999999998 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1792 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1793 = Id("body") }
+subtract body { id1792 } from body { id1793 }
+body { id1793 } name "Cell_3"
+move body { id1793 } midpoint location 1.2599999999999998 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1794 = Id("body") }
+body { id1794 } name "Cell_1"
+move body { id1794 } midpoint location 2.5199999999999996 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1795 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1796 = Id("body") }
+subtract body { id1795 } from body { id1796 }
+cylinder height 500 radius 0.4572
+#{ id1797 = Id("body") }
+#{ id1798 = Id("body") }
+intersect body { id1796 } { id1797 }
+#{ id1799 = Id("body") }
+#{id1800 = ( id1798 == id1799 ) ? id1797 : id1799}
+brick x 1.26 y 1.26 z 500
+#{ id1801 = Id("body") }
+intersect body { id1800 } { id1801 }
+#{ id1802 = Id("body") }
+body { id1802 } name "Cell_2"
+move body { id1802 } midpoint location 2.5199999999999996 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1803 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1804 = Id("body") }
+subtract body { id1803 } from body { id1804 }
+body { id1804 } name "Cell_3"
+move body { id1804 } midpoint location 2.5199999999999996 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1805 = Id("body") }
+body { id1805 } name "Cell_1"
+move body { id1805 } midpoint location 3.7799999999999994 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1806 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1807 = Id("body") }
+subtract body { id1806 } from body { id1807 }
+cylinder height 500 radius 0.4572
+#{ id1808 = Id("body") }
+#{ id1809 = Id("body") }
+intersect body { id1807 } { id1808 }
+#{ id1810 = Id("body") }
+#{id1811 = ( id1809 == id1810 ) ? id1808 : id1810}
+brick x 1.26 y 1.26 z 500
+#{ id1812 = Id("body") }
+intersect body { id1811 } { id1812 }
+#{ id1813 = Id("body") }
+body { id1813 } name "Cell_2"
+move body { id1813 } midpoint location 3.7799999999999994 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1814 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1815 = Id("body") }
+subtract body { id1814 } from body { id1815 }
+body { id1815 } name "Cell_3"
+move body { id1815 } midpoint location 3.7799999999999994 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1816 = Id("body") }
+body { id1816 } name "Cell_1"
+move body { id1816 } midpoint location 5.040000000000001 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1817 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1818 = Id("body") }
+subtract body { id1817 } from body { id1818 }
+cylinder height 500 radius 0.4572
+#{ id1819 = Id("body") }
+#{ id1820 = Id("body") }
+intersect body { id1818 } { id1819 }
+#{ id1821 = Id("body") }
+#{id1822 = ( id1820 == id1821 ) ? id1819 : id1821}
+brick x 1.26 y 1.26 z 500
+#{ id1823 = Id("body") }
+intersect body { id1822 } { id1823 }
+#{ id1824 = Id("body") }
+body { id1824 } name "Cell_2"
+move body { id1824 } midpoint location 5.040000000000001 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1825 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1826 = Id("body") }
+subtract body { id1825 } from body { id1826 }
+body { id1826 } name "Cell_3"
+move body { id1826 } midpoint location 5.040000000000001 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1827 = Id("body") }
+body { id1827 } name "Cell_1"
+move body { id1827 } midpoint location 6.299999999999999 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1828 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1829 = Id("body") }
+subtract body { id1828 } from body { id1829 }
+cylinder height 500 radius 0.4572
+#{ id1830 = Id("body") }
+#{ id1831 = Id("body") }
+intersect body { id1829 } { id1830 }
+#{ id1832 = Id("body") }
+#{id1833 = ( id1831 == id1832 ) ? id1830 : id1832}
+brick x 1.26 y 1.26 z 500
+#{ id1834 = Id("body") }
+intersect body { id1833 } { id1834 }
+#{ id1835 = Id("body") }
+body { id1835 } name "Cell_2"
+move body { id1835 } midpoint location 6.299999999999999 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1836 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1837 = Id("body") }
+subtract body { id1836 } from body { id1837 }
+body { id1837 } name "Cell_3"
+move body { id1837 } midpoint location 6.299999999999999 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1838 = Id("body") }
+body { id1838 } name "Cell_1"
+move body { id1838 } midpoint location 7.5600000000000005 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1839 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1840 = Id("body") }
+subtract body { id1839 } from body { id1840 }
+cylinder height 500 radius 0.4572
+#{ id1841 = Id("body") }
+#{ id1842 = Id("body") }
+intersect body { id1840 } { id1841 }
+#{ id1843 = Id("body") }
+#{id1844 = ( id1842 == id1843 ) ? id1841 : id1843}
+brick x 1.26 y 1.26 z 500
+#{ id1845 = Id("body") }
+intersect body { id1844 } { id1845 }
+#{ id1846 = Id("body") }
+body { id1846 } name "Cell_2"
+move body { id1846 } midpoint location 7.5600000000000005 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1847 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1848 = Id("body") }
+subtract body { id1847 } from body { id1848 }
+body { id1848 } name "Cell_3"
+move body { id1848 } midpoint location 7.5600000000000005 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1849 = Id("body") }
+body { id1849 } name "Cell_1"
+move body { id1849 } midpoint location 8.819999999999999 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1850 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1851 = Id("body") }
+subtract body { id1850 } from body { id1851 }
+cylinder height 500 radius 0.4572
+#{ id1852 = Id("body") }
+#{ id1853 = Id("body") }
+intersect body { id1851 } { id1852 }
+#{ id1854 = Id("body") }
+#{id1855 = ( id1853 == id1854 ) ? id1852 : id1854}
+brick x 1.26 y 1.26 z 500
+#{ id1856 = Id("body") }
+intersect body { id1855 } { id1856 }
+#{ id1857 = Id("body") }
+body { id1857 } name "Cell_2"
+move body { id1857 } midpoint location 8.819999999999999 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1858 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1859 = Id("body") }
+subtract body { id1858 } from body { id1859 }
+body { id1859 } name "Cell_3"
+move body { id1859 } midpoint location 8.819999999999999 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1860 = Id("body") }
+body { id1860 } name "Cell_1"
+move body { id1860 } midpoint location 10.08 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1861 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1862 = Id("body") }
+subtract body { id1861 } from body { id1862 }
+cylinder height 500 radius 0.4572
+#{ id1863 = Id("body") }
+#{ id1864 = Id("body") }
+intersect body { id1862 } { id1863 }
+#{ id1865 = Id("body") }
+#{id1866 = ( id1864 == id1865 ) ? id1863 : id1865}
+brick x 1.26 y 1.26 z 500
+#{ id1867 = Id("body") }
+intersect body { id1866 } { id1867 }
+#{ id1868 = Id("body") }
+body { id1868 } name "Cell_2"
+move body { id1868 } midpoint location 10.08 1.2599999999999998 0 except z
+cylinder height 500 radius 0.4572
+#{ id1869 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1870 = Id("body") }
+subtract body { id1869 } from body { id1870 }
+body { id1870 } name "Cell_3"
+move body { id1870 } midpoint location 10.08 1.2599999999999998 0 except z
+cylinder height 500 radius 0.39218
+#{ id1871 = Id("body") }
+body { id1871 } name "Cell_1"
+move body { id1871 } midpoint location -10.08 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1872 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1873 = Id("body") }
+subtract body { id1872 } from body { id1873 }
+cylinder height 500 radius 0.4572
+#{ id1874 = Id("body") }
+#{ id1875 = Id("body") }
+intersect body { id1873 } { id1874 }
+#{ id1876 = Id("body") }
+#{id1877 = ( id1875 == id1876 ) ? id1874 : id1876}
+brick x 1.26 y 1.26 z 500
+#{ id1878 = Id("body") }
+intersect body { id1877 } { id1878 }
+#{ id1879 = Id("body") }
+body { id1879 } name "Cell_2"
+move body { id1879 } midpoint location -10.08 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1880 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1881 = Id("body") }
+subtract body { id1880 } from body { id1881 }
+body { id1881 } name "Cell_3"
+move body { id1881 } midpoint location -10.08 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1882 = Id("body") }
+body { id1882 } name "Cell_1"
+move body { id1882 } midpoint location -8.82 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1883 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1884 = Id("body") }
+subtract body { id1883 } from body { id1884 }
+cylinder height 500 radius 0.4572
+#{ id1885 = Id("body") }
+#{ id1886 = Id("body") }
+intersect body { id1884 } { id1885 }
+#{ id1887 = Id("body") }
+#{id1888 = ( id1886 == id1887 ) ? id1885 : id1887}
+brick x 1.26 y 1.26 z 500
+#{ id1889 = Id("body") }
+intersect body { id1888 } { id1889 }
+#{ id1890 = Id("body") }
+body { id1890 } name "Cell_2"
+move body { id1890 } midpoint location -8.82 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1891 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1892 = Id("body") }
+subtract body { id1891 } from body { id1892 }
+body { id1892 } name "Cell_3"
+move body { id1892 } midpoint location -8.82 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1893 = Id("body") }
+body { id1893 } name "Cell_1"
+move body { id1893 } midpoint location -7.5600000000000005 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1894 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1895 = Id("body") }
+subtract body { id1894 } from body { id1895 }
+cylinder height 500 radius 0.4572
+#{ id1896 = Id("body") }
+#{ id1897 = Id("body") }
+intersect body { id1895 } { id1896 }
+#{ id1898 = Id("body") }
+#{id1899 = ( id1897 == id1898 ) ? id1896 : id1898}
+brick x 1.26 y 1.26 z 500
+#{ id1900 = Id("body") }
+intersect body { id1899 } { id1900 }
+#{ id1901 = Id("body") }
+body { id1901 } name "Cell_2"
+move body { id1901 } midpoint location -7.5600000000000005 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1902 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1903 = Id("body") }
+subtract body { id1902 } from body { id1903 }
+body { id1903 } name "Cell_3"
+move body { id1903 } midpoint location -7.5600000000000005 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1904 = Id("body") }
+body { id1904 } name "Cell_1"
+move body { id1904 } midpoint location -6.3 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1905 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1906 = Id("body") }
+subtract body { id1905 } from body { id1906 }
+cylinder height 500 radius 0.4572
+#{ id1907 = Id("body") }
+#{ id1908 = Id("body") }
+intersect body { id1906 } { id1907 }
+#{ id1909 = Id("body") }
+#{id1910 = ( id1908 == id1909 ) ? id1907 : id1909}
+brick x 1.26 y 1.26 z 500
+#{ id1911 = Id("body") }
+intersect body { id1910 } { id1911 }
+#{ id1912 = Id("body") }
+body { id1912 } name "Cell_2"
+move body { id1912 } midpoint location -6.3 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1913 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1914 = Id("body") }
+subtract body { id1913 } from body { id1914 }
+body { id1914 } name "Cell_3"
+move body { id1914 } midpoint location -6.3 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1915 = Id("body") }
+body { id1915 } name "Cell_1"
+move body { id1915 } midpoint location -5.04 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1916 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1917 = Id("body") }
+subtract body { id1916 } from body { id1917 }
+cylinder height 500 radius 0.4572
+#{ id1918 = Id("body") }
+#{ id1919 = Id("body") }
+intersect body { id1917 } { id1918 }
+#{ id1920 = Id("body") }
+#{id1921 = ( id1919 == id1920 ) ? id1918 : id1920}
+brick x 1.26 y 1.26 z 500
+#{ id1922 = Id("body") }
+intersect body { id1921 } { id1922 }
+#{ id1923 = Id("body") }
+body { id1923 } name "Cell_2"
+move body { id1923 } midpoint location -5.04 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1924 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1925 = Id("body") }
+subtract body { id1924 } from body { id1925 }
+body { id1925 } name "Cell_3"
+move body { id1925 } midpoint location -5.04 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1926 = Id("body") }
+body { id1926 } name "Cell_1"
+move body { id1926 } midpoint location -3.7800000000000002 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1927 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1928 = Id("body") }
+subtract body { id1927 } from body { id1928 }
+cylinder height 500 radius 0.4572
+#{ id1929 = Id("body") }
+#{ id1930 = Id("body") }
+intersect body { id1928 } { id1929 }
+#{ id1931 = Id("body") }
+#{id1932 = ( id1930 == id1931 ) ? id1929 : id1931}
+brick x 1.26 y 1.26 z 500
+#{ id1933 = Id("body") }
+intersect body { id1932 } { id1933 }
+#{ id1934 = Id("body") }
+body { id1934 } name "Cell_2"
+move body { id1934 } midpoint location -3.7800000000000002 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1935 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1936 = Id("body") }
+subtract body { id1935 } from body { id1936 }
+body { id1936 } name "Cell_3"
+move body { id1936 } midpoint location -3.7800000000000002 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1937 = Id("body") }
+body { id1937 } name "Cell_1"
+move body { id1937 } midpoint location -2.5199999999999996 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1938 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1939 = Id("body") }
+subtract body { id1938 } from body { id1939 }
+cylinder height 500 radius 0.4572
+#{ id1940 = Id("body") }
+#{ id1941 = Id("body") }
+intersect body { id1939 } { id1940 }
+#{ id1942 = Id("body") }
+#{id1943 = ( id1941 == id1942 ) ? id1940 : id1942}
+brick x 1.26 y 1.26 z 500
+#{ id1944 = Id("body") }
+intersect body { id1943 } { id1944 }
+#{ id1945 = Id("body") }
+body { id1945 } name "Cell_2"
+move body { id1945 } midpoint location -2.5199999999999996 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1946 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1947 = Id("body") }
+subtract body { id1946 } from body { id1947 }
+body { id1947 } name "Cell_3"
+move body { id1947 } midpoint location -2.5199999999999996 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1948 = Id("body") }
+body { id1948 } name "Cell_1"
+move body { id1948 } midpoint location -1.2599999999999998 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1949 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1950 = Id("body") }
+subtract body { id1949 } from body { id1950 }
+cylinder height 500 radius 0.4572
+#{ id1951 = Id("body") }
+#{ id1952 = Id("body") }
+intersect body { id1950 } { id1951 }
+#{ id1953 = Id("body") }
+#{id1954 = ( id1952 == id1953 ) ? id1951 : id1953}
+brick x 1.26 y 1.26 z 500
+#{ id1955 = Id("body") }
+intersect body { id1954 } { id1955 }
+#{ id1956 = Id("body") }
+body { id1956 } name "Cell_2"
+move body { id1956 } midpoint location -1.2599999999999998 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1957 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1958 = Id("body") }
+subtract body { id1957 } from body { id1958 }
+body { id1958 } name "Cell_3"
+move body { id1958 } midpoint location -1.2599999999999998 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1959 = Id("body") }
+body { id1959 } name "Cell_1"
+move body { id1959 } midpoint location 0.0 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1960 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1961 = Id("body") }
+subtract body { id1960 } from body { id1961 }
+cylinder height 500 radius 0.4572
+#{ id1962 = Id("body") }
+#{ id1963 = Id("body") }
+intersect body { id1961 } { id1962 }
+#{ id1964 = Id("body") }
+#{id1965 = ( id1963 == id1964 ) ? id1962 : id1964}
+brick x 1.26 y 1.26 z 500
+#{ id1966 = Id("body") }
+intersect body { id1965 } { id1966 }
+#{ id1967 = Id("body") }
+body { id1967 } name "Cell_2"
+move body { id1967 } midpoint location 0.0 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1968 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1969 = Id("body") }
+subtract body { id1968 } from body { id1969 }
+body { id1969 } name "Cell_3"
+move body { id1969 } midpoint location 0.0 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1970 = Id("body") }
+body { id1970 } name "Cell_1"
+move body { id1970 } midpoint location 1.2599999999999998 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1971 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1972 = Id("body") }
+subtract body { id1971 } from body { id1972 }
+cylinder height 500 radius 0.4572
+#{ id1973 = Id("body") }
+#{ id1974 = Id("body") }
+intersect body { id1972 } { id1973 }
+#{ id1975 = Id("body") }
+#{id1976 = ( id1974 == id1975 ) ? id1973 : id1975}
+brick x 1.26 y 1.26 z 500
+#{ id1977 = Id("body") }
+intersect body { id1976 } { id1977 }
+#{ id1978 = Id("body") }
+body { id1978 } name "Cell_2"
+move body { id1978 } midpoint location 1.2599999999999998 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1979 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1980 = Id("body") }
+subtract body { id1979 } from body { id1980 }
+body { id1980 } name "Cell_3"
+move body { id1980 } midpoint location 1.2599999999999998 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1981 = Id("body") }
+body { id1981 } name "Cell_1"
+move body { id1981 } midpoint location 2.5199999999999996 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1982 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1983 = Id("body") }
+subtract body { id1982 } from body { id1983 }
+cylinder height 500 radius 0.4572
+#{ id1984 = Id("body") }
+#{ id1985 = Id("body") }
+intersect body { id1983 } { id1984 }
+#{ id1986 = Id("body") }
+#{id1987 = ( id1985 == id1986 ) ? id1984 : id1986}
+brick x 1.26 y 1.26 z 500
+#{ id1988 = Id("body") }
+intersect body { id1987 } { id1988 }
+#{ id1989 = Id("body") }
+body { id1989 } name "Cell_2"
+move body { id1989 } midpoint location 2.5199999999999996 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id1990 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1991 = Id("body") }
+subtract body { id1990 } from body { id1991 }
+body { id1991 } name "Cell_3"
+move body { id1991 } midpoint location 2.5199999999999996 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1992 = Id("body") }
+body { id1992 } name "Cell_1"
+move body { id1992 } midpoint location 3.7799999999999994 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id1993 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id1994 = Id("body") }
+subtract body { id1993 } from body { id1994 }
+cylinder height 500 radius 0.4572
+#{ id1995 = Id("body") }
+#{ id1996 = Id("body") }
+intersect body { id1994 } { id1995 }
+#{ id1997 = Id("body") }
+#{id1998 = ( id1996 == id1997 ) ? id1995 : id1997}
+brick x 1.26 y 1.26 z 500
+#{ id1999 = Id("body") }
+intersect body { id1998 } { id1999 }
+#{ id2000 = Id("body") }
+body { id2000 } name "Cell_2"
+move body { id2000 } midpoint location 3.7799999999999994 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id2001 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2002 = Id("body") }
+subtract body { id2001 } from body { id2002 }
+body { id2002 } name "Cell_3"
+move body { id2002 } midpoint location 3.7799999999999994 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2003 = Id("body") }
+body { id2003 } name "Cell_1"
+move body { id2003 } midpoint location 5.040000000000001 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2004 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2005 = Id("body") }
+subtract body { id2004 } from body { id2005 }
+cylinder height 500 radius 0.4572
+#{ id2006 = Id("body") }
+#{ id2007 = Id("body") }
+intersect body { id2005 } { id2006 }
+#{ id2008 = Id("body") }
+#{id2009 = ( id2007 == id2008 ) ? id2006 : id2008}
+brick x 1.26 y 1.26 z 500
+#{ id2010 = Id("body") }
+intersect body { id2009 } { id2010 }
+#{ id2011 = Id("body") }
+body { id2011 } name "Cell_2"
+move body { id2011 } midpoint location 5.040000000000001 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id2012 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2013 = Id("body") }
+subtract body { id2012 } from body { id2013 }
+body { id2013 } name "Cell_3"
+move body { id2013 } midpoint location 5.040000000000001 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2014 = Id("body") }
+body { id2014 } name "Cell_1"
+move body { id2014 } midpoint location 6.299999999999999 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2015 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2016 = Id("body") }
+subtract body { id2015 } from body { id2016 }
+cylinder height 500 radius 0.4572
+#{ id2017 = Id("body") }
+#{ id2018 = Id("body") }
+intersect body { id2016 } { id2017 }
+#{ id2019 = Id("body") }
+#{id2020 = ( id2018 == id2019 ) ? id2017 : id2019}
+brick x 1.26 y 1.26 z 500
+#{ id2021 = Id("body") }
+intersect body { id2020 } { id2021 }
+#{ id2022 = Id("body") }
+body { id2022 } name "Cell_2"
+move body { id2022 } midpoint location 6.299999999999999 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id2023 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2024 = Id("body") }
+subtract body { id2023 } from body { id2024 }
+body { id2024 } name "Cell_3"
+move body { id2024 } midpoint location 6.299999999999999 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2025 = Id("body") }
+body { id2025 } name "Cell_1"
+move body { id2025 } midpoint location 7.5600000000000005 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2026 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2027 = Id("body") }
+subtract body { id2026 } from body { id2027 }
+cylinder height 500 radius 0.4572
+#{ id2028 = Id("body") }
+#{ id2029 = Id("body") }
+intersect body { id2027 } { id2028 }
+#{ id2030 = Id("body") }
+#{id2031 = ( id2029 == id2030 ) ? id2028 : id2030}
+brick x 1.26 y 1.26 z 500
+#{ id2032 = Id("body") }
+intersect body { id2031 } { id2032 }
+#{ id2033 = Id("body") }
+body { id2033 } name "Cell_2"
+move body { id2033 } midpoint location 7.5600000000000005 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id2034 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2035 = Id("body") }
+subtract body { id2034 } from body { id2035 }
+body { id2035 } name "Cell_3"
+move body { id2035 } midpoint location 7.5600000000000005 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2036 = Id("body") }
+body { id2036 } name "Cell_1"
+move body { id2036 } midpoint location 8.819999999999999 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2037 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2038 = Id("body") }
+subtract body { id2037 } from body { id2038 }
+cylinder height 500 radius 0.4572
+#{ id2039 = Id("body") }
+#{ id2040 = Id("body") }
+intersect body { id2038 } { id2039 }
+#{ id2041 = Id("body") }
+#{id2042 = ( id2040 == id2041 ) ? id2039 : id2041}
+brick x 1.26 y 1.26 z 500
+#{ id2043 = Id("body") }
+intersect body { id2042 } { id2043 }
+#{ id2044 = Id("body") }
+body { id2044 } name "Cell_2"
+move body { id2044 } midpoint location 8.819999999999999 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id2045 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2046 = Id("body") }
+subtract body { id2045 } from body { id2046 }
+body { id2046 } name "Cell_3"
+move body { id2046 } midpoint location 8.819999999999999 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2047 = Id("body") }
+body { id2047 } name "Cell_1"
+move body { id2047 } midpoint location 10.08 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2048 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2049 = Id("body") }
+subtract body { id2048 } from body { id2049 }
+cylinder height 500 radius 0.4572
+#{ id2050 = Id("body") }
+#{ id2051 = Id("body") }
+intersect body { id2049 } { id2050 }
+#{ id2052 = Id("body") }
+#{id2053 = ( id2051 == id2052 ) ? id2050 : id2052}
+brick x 1.26 y 1.26 z 500
+#{ id2054 = Id("body") }
+intersect body { id2053 } { id2054 }
+#{ id2055 = Id("body") }
+body { id2055 } name "Cell_2"
+move body { id2055 } midpoint location 10.08 2.5199999999999996 0 except z
+cylinder height 500 radius 0.4572
+#{ id2056 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2057 = Id("body") }
+subtract body { id2056 } from body { id2057 }
+body { id2057 } name "Cell_3"
+move body { id2057 } midpoint location 10.08 2.5199999999999996 0 except z
+cylinder height 500 radius 0.39218
+#{ id2058 = Id("body") }
+body { id2058 } name "Cell_1"
+move body { id2058 } midpoint location -10.08 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2059 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2060 = Id("body") }
+subtract body { id2059 } from body { id2060 }
+cylinder height 500 radius 0.4572
+#{ id2061 = Id("body") }
+#{ id2062 = Id("body") }
+intersect body { id2060 } { id2061 }
+#{ id2063 = Id("body") }
+#{id2064 = ( id2062 == id2063 ) ? id2061 : id2063}
+brick x 1.26 y 1.26 z 500
+#{ id2065 = Id("body") }
+intersect body { id2064 } { id2065 }
+#{ id2066 = Id("body") }
+body { id2066 } name "Cell_2"
+move body { id2066 } midpoint location -10.08 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2067 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2068 = Id("body") }
+subtract body { id2067 } from body { id2068 }
+body { id2068 } name "Cell_3"
+move body { id2068 } midpoint location -10.08 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2069 = Id("body") }
+body { id2069 } name "Cell_1"
+move body { id2069 } midpoint location -8.82 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2070 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2071 = Id("body") }
+subtract body { id2070 } from body { id2071 }
+cylinder height 500 radius 0.4572
+#{ id2072 = Id("body") }
+#{ id2073 = Id("body") }
+intersect body { id2071 } { id2072 }
+#{ id2074 = Id("body") }
+#{id2075 = ( id2073 == id2074 ) ? id2072 : id2074}
+brick x 1.26 y 1.26 z 500
+#{ id2076 = Id("body") }
+intersect body { id2075 } { id2076 }
+#{ id2077 = Id("body") }
+body { id2077 } name "Cell_2"
+move body { id2077 } midpoint location -8.82 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2078 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2079 = Id("body") }
+subtract body { id2078 } from body { id2079 }
+body { id2079 } name "Cell_3"
+move body { id2079 } midpoint location -8.82 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2080 = Id("body") }
+body { id2080 } name "Cell_4"
+move body { id2080 } midpoint location -7.5600000000000005 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2081 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2082 = Id("body") }
+subtract body { id2081 } from body { id2082 }
+cylinder height 500 radius 0.4572
+#{ id2083 = Id("body") }
+#{ id2084 = Id("body") }
+intersect body { id2082 } { id2083 }
+#{ id2085 = Id("body") }
+#{id2086 = ( id2084 == id2085 ) ? id2083 : id2085}
+brick x 1.26 y 1.26 z 500
+#{ id2087 = Id("body") }
+intersect body { id2086 } { id2087 }
+#{ id2088 = Id("body") }
+body { id2088 } name "Cell_5"
+move body { id2088 } midpoint location -7.5600000000000005 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2089 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2090 = Id("body") }
+subtract body { id2089 } from body { id2090 }
+body { id2090 } name "Cell_6"
+move body { id2090 } midpoint location -7.5600000000000005 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2091 = Id("body") }
+body { id2091 } name "Cell_1"
+move body { id2091 } midpoint location -6.3 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2092 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2093 = Id("body") }
+subtract body { id2092 } from body { id2093 }
+cylinder height 500 radius 0.4572
+#{ id2094 = Id("body") }
+#{ id2095 = Id("body") }
+intersect body { id2093 } { id2094 }
+#{ id2096 = Id("body") }
+#{id2097 = ( id2095 == id2096 ) ? id2094 : id2096}
+brick x 1.26 y 1.26 z 500
+#{ id2098 = Id("body") }
+intersect body { id2097 } { id2098 }
+#{ id2099 = Id("body") }
+body { id2099 } name "Cell_2"
+move body { id2099 } midpoint location -6.3 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2100 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2101 = Id("body") }
+subtract body { id2100 } from body { id2101 }
+body { id2101 } name "Cell_3"
+move body { id2101 } midpoint location -6.3 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2102 = Id("body") }
+body { id2102 } name "Cell_1"
+move body { id2102 } midpoint location -5.04 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2103 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2104 = Id("body") }
+subtract body { id2103 } from body { id2104 }
+cylinder height 500 radius 0.4572
+#{ id2105 = Id("body") }
+#{ id2106 = Id("body") }
+intersect body { id2104 } { id2105 }
+#{ id2107 = Id("body") }
+#{id2108 = ( id2106 == id2107 ) ? id2105 : id2107}
+brick x 1.26 y 1.26 z 500
+#{ id2109 = Id("body") }
+intersect body { id2108 } { id2109 }
+#{ id2110 = Id("body") }
+body { id2110 } name "Cell_2"
+move body { id2110 } midpoint location -5.04 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2111 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2112 = Id("body") }
+subtract body { id2111 } from body { id2112 }
+body { id2112 } name "Cell_3"
+move body { id2112 } midpoint location -5.04 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2113 = Id("body") }
+body { id2113 } name "Cell_4"
+move body { id2113 } midpoint location -3.7800000000000002 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2114 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2115 = Id("body") }
+subtract body { id2114 } from body { id2115 }
+cylinder height 500 radius 0.4572
+#{ id2116 = Id("body") }
+#{ id2117 = Id("body") }
+intersect body { id2115 } { id2116 }
+#{ id2118 = Id("body") }
+#{id2119 = ( id2117 == id2118 ) ? id2116 : id2118}
+brick x 1.26 y 1.26 z 500
+#{ id2120 = Id("body") }
+intersect body { id2119 } { id2120 }
+#{ id2121 = Id("body") }
+body { id2121 } name "Cell_5"
+move body { id2121 } midpoint location -3.7800000000000002 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2122 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2123 = Id("body") }
+subtract body { id2122 } from body { id2123 }
+body { id2123 } name "Cell_6"
+move body { id2123 } midpoint location -3.7800000000000002 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2124 = Id("body") }
+body { id2124 } name "Cell_1"
+move body { id2124 } midpoint location -2.5199999999999996 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2125 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2126 = Id("body") }
+subtract body { id2125 } from body { id2126 }
+cylinder height 500 radius 0.4572
+#{ id2127 = Id("body") }
+#{ id2128 = Id("body") }
+intersect body { id2126 } { id2127 }
+#{ id2129 = Id("body") }
+#{id2130 = ( id2128 == id2129 ) ? id2127 : id2129}
+brick x 1.26 y 1.26 z 500
+#{ id2131 = Id("body") }
+intersect body { id2130 } { id2131 }
+#{ id2132 = Id("body") }
+body { id2132 } name "Cell_2"
+move body { id2132 } midpoint location -2.5199999999999996 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2133 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2134 = Id("body") }
+subtract body { id2133 } from body { id2134 }
+body { id2134 } name "Cell_3"
+move body { id2134 } midpoint location -2.5199999999999996 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2135 = Id("body") }
+body { id2135 } name "Cell_1"
+move body { id2135 } midpoint location -1.2599999999999998 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2136 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2137 = Id("body") }
+subtract body { id2136 } from body { id2137 }
+cylinder height 500 radius 0.4572
+#{ id2138 = Id("body") }
+#{ id2139 = Id("body") }
+intersect body { id2137 } { id2138 }
+#{ id2140 = Id("body") }
+#{id2141 = ( id2139 == id2140 ) ? id2138 : id2140}
+brick x 1.26 y 1.26 z 500
+#{ id2142 = Id("body") }
+intersect body { id2141 } { id2142 }
+#{ id2143 = Id("body") }
+body { id2143 } name "Cell_2"
+move body { id2143 } midpoint location -1.2599999999999998 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2144 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2145 = Id("body") }
+subtract body { id2144 } from body { id2145 }
+body { id2145 } name "Cell_3"
+move body { id2145 } midpoint location -1.2599999999999998 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2146 = Id("body") }
+body { id2146 } name "Cell_4"
+move body { id2146 } midpoint location 0.0 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2147 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2148 = Id("body") }
+subtract body { id2147 } from body { id2148 }
+cylinder height 500 radius 0.4572
+#{ id2149 = Id("body") }
+#{ id2150 = Id("body") }
+intersect body { id2148 } { id2149 }
+#{ id2151 = Id("body") }
+#{id2152 = ( id2150 == id2151 ) ? id2149 : id2151}
+brick x 1.26 y 1.26 z 500
+#{ id2153 = Id("body") }
+intersect body { id2152 } { id2153 }
+#{ id2154 = Id("body") }
+body { id2154 } name "Cell_5"
+move body { id2154 } midpoint location 0.0 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2155 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2156 = Id("body") }
+subtract body { id2155 } from body { id2156 }
+body { id2156 } name "Cell_6"
+move body { id2156 } midpoint location 0.0 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2157 = Id("body") }
+body { id2157 } name "Cell_1"
+move body { id2157 } midpoint location 1.2599999999999998 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2158 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2159 = Id("body") }
+subtract body { id2158 } from body { id2159 }
+cylinder height 500 radius 0.4572
+#{ id2160 = Id("body") }
+#{ id2161 = Id("body") }
+intersect body { id2159 } { id2160 }
+#{ id2162 = Id("body") }
+#{id2163 = ( id2161 == id2162 ) ? id2160 : id2162}
+brick x 1.26 y 1.26 z 500
+#{ id2164 = Id("body") }
+intersect body { id2163 } { id2164 }
+#{ id2165 = Id("body") }
+body { id2165 } name "Cell_2"
+move body { id2165 } midpoint location 1.2599999999999998 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2166 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2167 = Id("body") }
+subtract body { id2166 } from body { id2167 }
+body { id2167 } name "Cell_3"
+move body { id2167 } midpoint location 1.2599999999999998 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2168 = Id("body") }
+body { id2168 } name "Cell_1"
+move body { id2168 } midpoint location 2.5199999999999996 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2169 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2170 = Id("body") }
+subtract body { id2169 } from body { id2170 }
+cylinder height 500 radius 0.4572
+#{ id2171 = Id("body") }
+#{ id2172 = Id("body") }
+intersect body { id2170 } { id2171 }
+#{ id2173 = Id("body") }
+#{id2174 = ( id2172 == id2173 ) ? id2171 : id2173}
+brick x 1.26 y 1.26 z 500
+#{ id2175 = Id("body") }
+intersect body { id2174 } { id2175 }
+#{ id2176 = Id("body") }
+body { id2176 } name "Cell_2"
+move body { id2176 } midpoint location 2.5199999999999996 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2177 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2178 = Id("body") }
+subtract body { id2177 } from body { id2178 }
+body { id2178 } name "Cell_3"
+move body { id2178 } midpoint location 2.5199999999999996 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2179 = Id("body") }
+body { id2179 } name "Cell_4"
+move body { id2179 } midpoint location 3.7799999999999994 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2180 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2181 = Id("body") }
+subtract body { id2180 } from body { id2181 }
+cylinder height 500 radius 0.4572
+#{ id2182 = Id("body") }
+#{ id2183 = Id("body") }
+intersect body { id2181 } { id2182 }
+#{ id2184 = Id("body") }
+#{id2185 = ( id2183 == id2184 ) ? id2182 : id2184}
+brick x 1.26 y 1.26 z 500
+#{ id2186 = Id("body") }
+intersect body { id2185 } { id2186 }
+#{ id2187 = Id("body") }
+body { id2187 } name "Cell_5"
+move body { id2187 } midpoint location 3.7799999999999994 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2188 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2189 = Id("body") }
+subtract body { id2188 } from body { id2189 }
+body { id2189 } name "Cell_6"
+move body { id2189 } midpoint location 3.7799999999999994 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2190 = Id("body") }
+body { id2190 } name "Cell_1"
+move body { id2190 } midpoint location 5.040000000000001 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2191 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2192 = Id("body") }
+subtract body { id2191 } from body { id2192 }
+cylinder height 500 radius 0.4572
+#{ id2193 = Id("body") }
+#{ id2194 = Id("body") }
+intersect body { id2192 } { id2193 }
+#{ id2195 = Id("body") }
+#{id2196 = ( id2194 == id2195 ) ? id2193 : id2195}
+brick x 1.26 y 1.26 z 500
+#{ id2197 = Id("body") }
+intersect body { id2196 } { id2197 }
+#{ id2198 = Id("body") }
+body { id2198 } name "Cell_2"
+move body { id2198 } midpoint location 5.040000000000001 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2199 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2200 = Id("body") }
+subtract body { id2199 } from body { id2200 }
+body { id2200 } name "Cell_3"
+move body { id2200 } midpoint location 5.040000000000001 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2201 = Id("body") }
+body { id2201 } name "Cell_1"
+move body { id2201 } midpoint location 6.299999999999999 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2202 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2203 = Id("body") }
+subtract body { id2202 } from body { id2203 }
+cylinder height 500 radius 0.4572
+#{ id2204 = Id("body") }
+#{ id2205 = Id("body") }
+intersect body { id2203 } { id2204 }
+#{ id2206 = Id("body") }
+#{id2207 = ( id2205 == id2206 ) ? id2204 : id2206}
+brick x 1.26 y 1.26 z 500
+#{ id2208 = Id("body") }
+intersect body { id2207 } { id2208 }
+#{ id2209 = Id("body") }
+body { id2209 } name "Cell_2"
+move body { id2209 } midpoint location 6.299999999999999 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2210 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2211 = Id("body") }
+subtract body { id2210 } from body { id2211 }
+body { id2211 } name "Cell_3"
+move body { id2211 } midpoint location 6.299999999999999 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2212 = Id("body") }
+body { id2212 } name "Cell_4"
+move body { id2212 } midpoint location 7.5600000000000005 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2213 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2214 = Id("body") }
+subtract body { id2213 } from body { id2214 }
+cylinder height 500 radius 0.4572
+#{ id2215 = Id("body") }
+#{ id2216 = Id("body") }
+intersect body { id2214 } { id2215 }
+#{ id2217 = Id("body") }
+#{id2218 = ( id2216 == id2217 ) ? id2215 : id2217}
+brick x 1.26 y 1.26 z 500
+#{ id2219 = Id("body") }
+intersect body { id2218 } { id2219 }
+#{ id2220 = Id("body") }
+body { id2220 } name "Cell_5"
+move body { id2220 } midpoint location 7.5600000000000005 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2221 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2222 = Id("body") }
+subtract body { id2221 } from body { id2222 }
+body { id2222 } name "Cell_6"
+move body { id2222 } midpoint location 7.5600000000000005 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2223 = Id("body") }
+body { id2223 } name "Cell_1"
+move body { id2223 } midpoint location 8.819999999999999 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2224 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2225 = Id("body") }
+subtract body { id2224 } from body { id2225 }
+cylinder height 500 radius 0.4572
+#{ id2226 = Id("body") }
+#{ id2227 = Id("body") }
+intersect body { id2225 } { id2226 }
+#{ id2228 = Id("body") }
+#{id2229 = ( id2227 == id2228 ) ? id2226 : id2228}
+brick x 1.26 y 1.26 z 500
+#{ id2230 = Id("body") }
+intersect body { id2229 } { id2230 }
+#{ id2231 = Id("body") }
+body { id2231 } name "Cell_2"
+move body { id2231 } midpoint location 8.819999999999999 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2232 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2233 = Id("body") }
+subtract body { id2232 } from body { id2233 }
+body { id2233 } name "Cell_3"
+move body { id2233 } midpoint location 8.819999999999999 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2234 = Id("body") }
+body { id2234 } name "Cell_1"
+move body { id2234 } midpoint location 10.08 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2235 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2236 = Id("body") }
+subtract body { id2235 } from body { id2236 }
+cylinder height 500 radius 0.4572
+#{ id2237 = Id("body") }
+#{ id2238 = Id("body") }
+intersect body { id2236 } { id2237 }
+#{ id2239 = Id("body") }
+#{id2240 = ( id2238 == id2239 ) ? id2237 : id2239}
+brick x 1.26 y 1.26 z 500
+#{ id2241 = Id("body") }
+intersect body { id2240 } { id2241 }
+#{ id2242 = Id("body") }
+body { id2242 } name "Cell_2"
+move body { id2242 } midpoint location 10.08 3.7799999999999994 0 except z
+cylinder height 500 radius 0.4572
+#{ id2243 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2244 = Id("body") }
+subtract body { id2243 } from body { id2244 }
+body { id2244 } name "Cell_3"
+move body { id2244 } midpoint location 10.08 3.7799999999999994 0 except z
+cylinder height 500 radius 0.39218
+#{ id2245 = Id("body") }
+body { id2245 } name "Cell_1"
+move body { id2245 } midpoint location -10.08 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2246 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2247 = Id("body") }
+subtract body { id2246 } from body { id2247 }
+cylinder height 500 radius 0.4572
+#{ id2248 = Id("body") }
+#{ id2249 = Id("body") }
+intersect body { id2247 } { id2248 }
+#{ id2250 = Id("body") }
+#{id2251 = ( id2249 == id2250 ) ? id2248 : id2250}
+brick x 1.26 y 1.26 z 500
+#{ id2252 = Id("body") }
+intersect body { id2251 } { id2252 }
+#{ id2253 = Id("body") }
+body { id2253 } name "Cell_2"
+move body { id2253 } midpoint location -10.08 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2254 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2255 = Id("body") }
+subtract body { id2254 } from body { id2255 }
+body { id2255 } name "Cell_3"
+move body { id2255 } midpoint location -10.08 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2256 = Id("body") }
+body { id2256 } name "Cell_1"
+move body { id2256 } midpoint location -8.82 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2257 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2258 = Id("body") }
+subtract body { id2257 } from body { id2258 }
+cylinder height 500 radius 0.4572
+#{ id2259 = Id("body") }
+#{ id2260 = Id("body") }
+intersect body { id2258 } { id2259 }
+#{ id2261 = Id("body") }
+#{id2262 = ( id2260 == id2261 ) ? id2259 : id2261}
+brick x 1.26 y 1.26 z 500
+#{ id2263 = Id("body") }
+intersect body { id2262 } { id2263 }
+#{ id2264 = Id("body") }
+body { id2264 } name "Cell_2"
+move body { id2264 } midpoint location -8.82 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2265 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2266 = Id("body") }
+subtract body { id2265 } from body { id2266 }
+body { id2266 } name "Cell_3"
+move body { id2266 } midpoint location -8.82 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2267 = Id("body") }
+body { id2267 } name "Cell_1"
+move body { id2267 } midpoint location -7.5600000000000005 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2268 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2269 = Id("body") }
+subtract body { id2268 } from body { id2269 }
+cylinder height 500 radius 0.4572
+#{ id2270 = Id("body") }
+#{ id2271 = Id("body") }
+intersect body { id2269 } { id2270 }
+#{ id2272 = Id("body") }
+#{id2273 = ( id2271 == id2272 ) ? id2270 : id2272}
+brick x 1.26 y 1.26 z 500
+#{ id2274 = Id("body") }
+intersect body { id2273 } { id2274 }
+#{ id2275 = Id("body") }
+body { id2275 } name "Cell_2"
+move body { id2275 } midpoint location -7.5600000000000005 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2276 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2277 = Id("body") }
+subtract body { id2276 } from body { id2277 }
+body { id2277 } name "Cell_3"
+move body { id2277 } midpoint location -7.5600000000000005 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2278 = Id("body") }
+body { id2278 } name "Cell_1"
+move body { id2278 } midpoint location -6.3 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2279 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2280 = Id("body") }
+subtract body { id2279 } from body { id2280 }
+cylinder height 500 radius 0.4572
+#{ id2281 = Id("body") }
+#{ id2282 = Id("body") }
+intersect body { id2280 } { id2281 }
+#{ id2283 = Id("body") }
+#{id2284 = ( id2282 == id2283 ) ? id2281 : id2283}
+brick x 1.26 y 1.26 z 500
+#{ id2285 = Id("body") }
+intersect body { id2284 } { id2285 }
+#{ id2286 = Id("body") }
+body { id2286 } name "Cell_2"
+move body { id2286 } midpoint location -6.3 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2287 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2288 = Id("body") }
+subtract body { id2287 } from body { id2288 }
+body { id2288 } name "Cell_3"
+move body { id2288 } midpoint location -6.3 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2289 = Id("body") }
+body { id2289 } name "Cell_1"
+move body { id2289 } midpoint location -5.04 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2290 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2291 = Id("body") }
+subtract body { id2290 } from body { id2291 }
+cylinder height 500 radius 0.4572
+#{ id2292 = Id("body") }
+#{ id2293 = Id("body") }
+intersect body { id2291 } { id2292 }
+#{ id2294 = Id("body") }
+#{id2295 = ( id2293 == id2294 ) ? id2292 : id2294}
+brick x 1.26 y 1.26 z 500
+#{ id2296 = Id("body") }
+intersect body { id2295 } { id2296 }
+#{ id2297 = Id("body") }
+body { id2297 } name "Cell_2"
+move body { id2297 } midpoint location -5.04 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2298 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2299 = Id("body") }
+subtract body { id2298 } from body { id2299 }
+body { id2299 } name "Cell_3"
+move body { id2299 } midpoint location -5.04 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2300 = Id("body") }
+body { id2300 } name "Cell_1"
+move body { id2300 } midpoint location -3.7800000000000002 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2301 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2302 = Id("body") }
+subtract body { id2301 } from body { id2302 }
+cylinder height 500 radius 0.4572
+#{ id2303 = Id("body") }
+#{ id2304 = Id("body") }
+intersect body { id2302 } { id2303 }
+#{ id2305 = Id("body") }
+#{id2306 = ( id2304 == id2305 ) ? id2303 : id2305}
+brick x 1.26 y 1.26 z 500
+#{ id2307 = Id("body") }
+intersect body { id2306 } { id2307 }
+#{ id2308 = Id("body") }
+body { id2308 } name "Cell_2"
+move body { id2308 } midpoint location -3.7800000000000002 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2309 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2310 = Id("body") }
+subtract body { id2309 } from body { id2310 }
+body { id2310 } name "Cell_3"
+move body { id2310 } midpoint location -3.7800000000000002 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2311 = Id("body") }
+body { id2311 } name "Cell_1"
+move body { id2311 } midpoint location -2.5199999999999996 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2312 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2313 = Id("body") }
+subtract body { id2312 } from body { id2313 }
+cylinder height 500 radius 0.4572
+#{ id2314 = Id("body") }
+#{ id2315 = Id("body") }
+intersect body { id2313 } { id2314 }
+#{ id2316 = Id("body") }
+#{id2317 = ( id2315 == id2316 ) ? id2314 : id2316}
+brick x 1.26 y 1.26 z 500
+#{ id2318 = Id("body") }
+intersect body { id2317 } { id2318 }
+#{ id2319 = Id("body") }
+body { id2319 } name "Cell_2"
+move body { id2319 } midpoint location -2.5199999999999996 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2320 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2321 = Id("body") }
+subtract body { id2320 } from body { id2321 }
+body { id2321 } name "Cell_3"
+move body { id2321 } midpoint location -2.5199999999999996 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2322 = Id("body") }
+body { id2322 } name "Cell_1"
+move body { id2322 } midpoint location -1.2599999999999998 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2323 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2324 = Id("body") }
+subtract body { id2323 } from body { id2324 }
+cylinder height 500 radius 0.4572
+#{ id2325 = Id("body") }
+#{ id2326 = Id("body") }
+intersect body { id2324 } { id2325 }
+#{ id2327 = Id("body") }
+#{id2328 = ( id2326 == id2327 ) ? id2325 : id2327}
+brick x 1.26 y 1.26 z 500
+#{ id2329 = Id("body") }
+intersect body { id2328 } { id2329 }
+#{ id2330 = Id("body") }
+body { id2330 } name "Cell_2"
+move body { id2330 } midpoint location -1.2599999999999998 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2331 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2332 = Id("body") }
+subtract body { id2331 } from body { id2332 }
+body { id2332 } name "Cell_3"
+move body { id2332 } midpoint location -1.2599999999999998 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2333 = Id("body") }
+body { id2333 } name "Cell_1"
+move body { id2333 } midpoint location 0.0 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2334 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2335 = Id("body") }
+subtract body { id2334 } from body { id2335 }
+cylinder height 500 radius 0.4572
+#{ id2336 = Id("body") }
+#{ id2337 = Id("body") }
+intersect body { id2335 } { id2336 }
+#{ id2338 = Id("body") }
+#{id2339 = ( id2337 == id2338 ) ? id2336 : id2338}
+brick x 1.26 y 1.26 z 500
+#{ id2340 = Id("body") }
+intersect body { id2339 } { id2340 }
+#{ id2341 = Id("body") }
+body { id2341 } name "Cell_2"
+move body { id2341 } midpoint location 0.0 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2342 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2343 = Id("body") }
+subtract body { id2342 } from body { id2343 }
+body { id2343 } name "Cell_3"
+move body { id2343 } midpoint location 0.0 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2344 = Id("body") }
+body { id2344 } name "Cell_1"
+move body { id2344 } midpoint location 1.2599999999999998 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2345 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2346 = Id("body") }
+subtract body { id2345 } from body { id2346 }
+cylinder height 500 radius 0.4572
+#{ id2347 = Id("body") }
+#{ id2348 = Id("body") }
+intersect body { id2346 } { id2347 }
+#{ id2349 = Id("body") }
+#{id2350 = ( id2348 == id2349 ) ? id2347 : id2349}
+brick x 1.26 y 1.26 z 500
+#{ id2351 = Id("body") }
+intersect body { id2350 } { id2351 }
+#{ id2352 = Id("body") }
+body { id2352 } name "Cell_2"
+move body { id2352 } midpoint location 1.2599999999999998 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2353 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2354 = Id("body") }
+subtract body { id2353 } from body { id2354 }
+body { id2354 } name "Cell_3"
+move body { id2354 } midpoint location 1.2599999999999998 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2355 = Id("body") }
+body { id2355 } name "Cell_1"
+move body { id2355 } midpoint location 2.5199999999999996 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2356 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2357 = Id("body") }
+subtract body { id2356 } from body { id2357 }
+cylinder height 500 radius 0.4572
+#{ id2358 = Id("body") }
+#{ id2359 = Id("body") }
+intersect body { id2357 } { id2358 }
+#{ id2360 = Id("body") }
+#{id2361 = ( id2359 == id2360 ) ? id2358 : id2360}
+brick x 1.26 y 1.26 z 500
+#{ id2362 = Id("body") }
+intersect body { id2361 } { id2362 }
+#{ id2363 = Id("body") }
+body { id2363 } name "Cell_2"
+move body { id2363 } midpoint location 2.5199999999999996 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2364 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2365 = Id("body") }
+subtract body { id2364 } from body { id2365 }
+body { id2365 } name "Cell_3"
+move body { id2365 } midpoint location 2.5199999999999996 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2366 = Id("body") }
+body { id2366 } name "Cell_1"
+move body { id2366 } midpoint location 3.7799999999999994 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2367 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2368 = Id("body") }
+subtract body { id2367 } from body { id2368 }
+cylinder height 500 radius 0.4572
+#{ id2369 = Id("body") }
+#{ id2370 = Id("body") }
+intersect body { id2368 } { id2369 }
+#{ id2371 = Id("body") }
+#{id2372 = ( id2370 == id2371 ) ? id2369 : id2371}
+brick x 1.26 y 1.26 z 500
+#{ id2373 = Id("body") }
+intersect body { id2372 } { id2373 }
+#{ id2374 = Id("body") }
+body { id2374 } name "Cell_2"
+move body { id2374 } midpoint location 3.7799999999999994 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2375 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2376 = Id("body") }
+subtract body { id2375 } from body { id2376 }
+body { id2376 } name "Cell_3"
+move body { id2376 } midpoint location 3.7799999999999994 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2377 = Id("body") }
+body { id2377 } name "Cell_1"
+move body { id2377 } midpoint location 5.040000000000001 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2378 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2379 = Id("body") }
+subtract body { id2378 } from body { id2379 }
+cylinder height 500 radius 0.4572
+#{ id2380 = Id("body") }
+#{ id2381 = Id("body") }
+intersect body { id2379 } { id2380 }
+#{ id2382 = Id("body") }
+#{id2383 = ( id2381 == id2382 ) ? id2380 : id2382}
+brick x 1.26 y 1.26 z 500
+#{ id2384 = Id("body") }
+intersect body { id2383 } { id2384 }
+#{ id2385 = Id("body") }
+body { id2385 } name "Cell_2"
+move body { id2385 } midpoint location 5.040000000000001 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2386 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2387 = Id("body") }
+subtract body { id2386 } from body { id2387 }
+body { id2387 } name "Cell_3"
+move body { id2387 } midpoint location 5.040000000000001 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2388 = Id("body") }
+body { id2388 } name "Cell_1"
+move body { id2388 } midpoint location 6.299999999999999 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2389 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2390 = Id("body") }
+subtract body { id2389 } from body { id2390 }
+cylinder height 500 radius 0.4572
+#{ id2391 = Id("body") }
+#{ id2392 = Id("body") }
+intersect body { id2390 } { id2391 }
+#{ id2393 = Id("body") }
+#{id2394 = ( id2392 == id2393 ) ? id2391 : id2393}
+brick x 1.26 y 1.26 z 500
+#{ id2395 = Id("body") }
+intersect body { id2394 } { id2395 }
+#{ id2396 = Id("body") }
+body { id2396 } name "Cell_2"
+move body { id2396 } midpoint location 6.299999999999999 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2397 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2398 = Id("body") }
+subtract body { id2397 } from body { id2398 }
+body { id2398 } name "Cell_3"
+move body { id2398 } midpoint location 6.299999999999999 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2399 = Id("body") }
+body { id2399 } name "Cell_1"
+move body { id2399 } midpoint location 7.5600000000000005 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2400 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2401 = Id("body") }
+subtract body { id2400 } from body { id2401 }
+cylinder height 500 radius 0.4572
+#{ id2402 = Id("body") }
+#{ id2403 = Id("body") }
+intersect body { id2401 } { id2402 }
+#{ id2404 = Id("body") }
+#{id2405 = ( id2403 == id2404 ) ? id2402 : id2404}
+brick x 1.26 y 1.26 z 500
+#{ id2406 = Id("body") }
+intersect body { id2405 } { id2406 }
+#{ id2407 = Id("body") }
+body { id2407 } name "Cell_2"
+move body { id2407 } midpoint location 7.5600000000000005 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2408 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2409 = Id("body") }
+subtract body { id2408 } from body { id2409 }
+body { id2409 } name "Cell_3"
+move body { id2409 } midpoint location 7.5600000000000005 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2410 = Id("body") }
+body { id2410 } name "Cell_1"
+move body { id2410 } midpoint location 8.819999999999999 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2411 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2412 = Id("body") }
+subtract body { id2411 } from body { id2412 }
+cylinder height 500 radius 0.4572
+#{ id2413 = Id("body") }
+#{ id2414 = Id("body") }
+intersect body { id2412 } { id2413 }
+#{ id2415 = Id("body") }
+#{id2416 = ( id2414 == id2415 ) ? id2413 : id2415}
+brick x 1.26 y 1.26 z 500
+#{ id2417 = Id("body") }
+intersect body { id2416 } { id2417 }
+#{ id2418 = Id("body") }
+body { id2418 } name "Cell_2"
+move body { id2418 } midpoint location 8.819999999999999 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2419 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2420 = Id("body") }
+subtract body { id2419 } from body { id2420 }
+body { id2420 } name "Cell_3"
+move body { id2420 } midpoint location 8.819999999999999 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2421 = Id("body") }
+body { id2421 } name "Cell_1"
+move body { id2421 } midpoint location 10.08 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2422 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2423 = Id("body") }
+subtract body { id2422 } from body { id2423 }
+cylinder height 500 radius 0.4572
+#{ id2424 = Id("body") }
+#{ id2425 = Id("body") }
+intersect body { id2423 } { id2424 }
+#{ id2426 = Id("body") }
+#{id2427 = ( id2425 == id2426 ) ? id2424 : id2426}
+brick x 1.26 y 1.26 z 500
+#{ id2428 = Id("body") }
+intersect body { id2427 } { id2428 }
+#{ id2429 = Id("body") }
+body { id2429 } name "Cell_2"
+move body { id2429 } midpoint location 10.08 5.040000000000001 0 except z
+cylinder height 500 radius 0.4572
+#{ id2430 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2431 = Id("body") }
+subtract body { id2430 } from body { id2431 }
+body { id2431 } name "Cell_3"
+move body { id2431 } midpoint location 10.08 5.040000000000001 0 except z
+cylinder height 500 radius 0.39218
+#{ id2432 = Id("body") }
+body { id2432 } name "Cell_1"
+move body { id2432 } midpoint location -10.08 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2433 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2434 = Id("body") }
+subtract body { id2433 } from body { id2434 }
+cylinder height 500 radius 0.4572
+#{ id2435 = Id("body") }
+#{ id2436 = Id("body") }
+intersect body { id2434 } { id2435 }
+#{ id2437 = Id("body") }
+#{id2438 = ( id2436 == id2437 ) ? id2435 : id2437}
+brick x 1.26 y 1.26 z 500
+#{ id2439 = Id("body") }
+intersect body { id2438 } { id2439 }
+#{ id2440 = Id("body") }
+body { id2440 } name "Cell_2"
+move body { id2440 } midpoint location -10.08 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2441 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2442 = Id("body") }
+subtract body { id2441 } from body { id2442 }
+body { id2442 } name "Cell_3"
+move body { id2442 } midpoint location -10.08 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2443 = Id("body") }
+body { id2443 } name "Cell_1"
+move body { id2443 } midpoint location -8.82 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2444 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2445 = Id("body") }
+subtract body { id2444 } from body { id2445 }
+cylinder height 500 radius 0.4572
+#{ id2446 = Id("body") }
+#{ id2447 = Id("body") }
+intersect body { id2445 } { id2446 }
+#{ id2448 = Id("body") }
+#{id2449 = ( id2447 == id2448 ) ? id2446 : id2448}
+brick x 1.26 y 1.26 z 500
+#{ id2450 = Id("body") }
+intersect body { id2449 } { id2450 }
+#{ id2451 = Id("body") }
+body { id2451 } name "Cell_2"
+move body { id2451 } midpoint location -8.82 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2452 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2453 = Id("body") }
+subtract body { id2452 } from body { id2453 }
+body { id2453 } name "Cell_3"
+move body { id2453 } midpoint location -8.82 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2454 = Id("body") }
+body { id2454 } name "Cell_1"
+move body { id2454 } midpoint location -7.5600000000000005 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2455 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2456 = Id("body") }
+subtract body { id2455 } from body { id2456 }
+cylinder height 500 radius 0.4572
+#{ id2457 = Id("body") }
+#{ id2458 = Id("body") }
+intersect body { id2456 } { id2457 }
+#{ id2459 = Id("body") }
+#{id2460 = ( id2458 == id2459 ) ? id2457 : id2459}
+brick x 1.26 y 1.26 z 500
+#{ id2461 = Id("body") }
+intersect body { id2460 } { id2461 }
+#{ id2462 = Id("body") }
+body { id2462 } name "Cell_2"
+move body { id2462 } midpoint location -7.5600000000000005 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2463 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2464 = Id("body") }
+subtract body { id2463 } from body { id2464 }
+body { id2464 } name "Cell_3"
+move body { id2464 } midpoint location -7.5600000000000005 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2465 = Id("body") }
+body { id2465 } name "Cell_4"
+move body { id2465 } midpoint location -6.3 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2466 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2467 = Id("body") }
+subtract body { id2466 } from body { id2467 }
+cylinder height 500 radius 0.4572
+#{ id2468 = Id("body") }
+#{ id2469 = Id("body") }
+intersect body { id2467 } { id2468 }
+#{ id2470 = Id("body") }
+#{id2471 = ( id2469 == id2470 ) ? id2468 : id2470}
+brick x 1.26 y 1.26 z 500
+#{ id2472 = Id("body") }
+intersect body { id2471 } { id2472 }
+#{ id2473 = Id("body") }
+body { id2473 } name "Cell_5"
+move body { id2473 } midpoint location -6.3 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2474 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2475 = Id("body") }
+subtract body { id2474 } from body { id2475 }
+body { id2475 } name "Cell_6"
+move body { id2475 } midpoint location -6.3 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2476 = Id("body") }
+body { id2476 } name "Cell_1"
+move body { id2476 } midpoint location -5.04 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2477 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2478 = Id("body") }
+subtract body { id2477 } from body { id2478 }
+cylinder height 500 radius 0.4572
+#{ id2479 = Id("body") }
+#{ id2480 = Id("body") }
+intersect body { id2478 } { id2479 }
+#{ id2481 = Id("body") }
+#{id2482 = ( id2480 == id2481 ) ? id2479 : id2481}
+brick x 1.26 y 1.26 z 500
+#{ id2483 = Id("body") }
+intersect body { id2482 } { id2483 }
+#{ id2484 = Id("body") }
+body { id2484 } name "Cell_2"
+move body { id2484 } midpoint location -5.04 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2485 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2486 = Id("body") }
+subtract body { id2485 } from body { id2486 }
+body { id2486 } name "Cell_3"
+move body { id2486 } midpoint location -5.04 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2487 = Id("body") }
+body { id2487 } name "Cell_1"
+move body { id2487 } midpoint location -3.7800000000000002 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2488 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2489 = Id("body") }
+subtract body { id2488 } from body { id2489 }
+cylinder height 500 radius 0.4572
+#{ id2490 = Id("body") }
+#{ id2491 = Id("body") }
+intersect body { id2489 } { id2490 }
+#{ id2492 = Id("body") }
+#{id2493 = ( id2491 == id2492 ) ? id2490 : id2492}
+brick x 1.26 y 1.26 z 500
+#{ id2494 = Id("body") }
+intersect body { id2493 } { id2494 }
+#{ id2495 = Id("body") }
+body { id2495 } name "Cell_2"
+move body { id2495 } midpoint location -3.7800000000000002 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2496 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2497 = Id("body") }
+subtract body { id2496 } from body { id2497 }
+body { id2497 } name "Cell_3"
+move body { id2497 } midpoint location -3.7800000000000002 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2498 = Id("body") }
+body { id2498 } name "Cell_1"
+move body { id2498 } midpoint location -2.5199999999999996 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2499 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2500 = Id("body") }
+subtract body { id2499 } from body { id2500 }
+cylinder height 500 radius 0.4572
+#{ id2501 = Id("body") }
+#{ id2502 = Id("body") }
+intersect body { id2500 } { id2501 }
+#{ id2503 = Id("body") }
+#{id2504 = ( id2502 == id2503 ) ? id2501 : id2503}
+brick x 1.26 y 1.26 z 500
+#{ id2505 = Id("body") }
+intersect body { id2504 } { id2505 }
+#{ id2506 = Id("body") }
+body { id2506 } name "Cell_2"
+move body { id2506 } midpoint location -2.5199999999999996 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2507 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2508 = Id("body") }
+subtract body { id2507 } from body { id2508 }
+body { id2508 } name "Cell_3"
+move body { id2508 } midpoint location -2.5199999999999996 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2509 = Id("body") }
+body { id2509 } name "Cell_1"
+move body { id2509 } midpoint location -1.2599999999999998 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2510 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2511 = Id("body") }
+subtract body { id2510 } from body { id2511 }
+cylinder height 500 radius 0.4572
+#{ id2512 = Id("body") }
+#{ id2513 = Id("body") }
+intersect body { id2511 } { id2512 }
+#{ id2514 = Id("body") }
+#{id2515 = ( id2513 == id2514 ) ? id2512 : id2514}
+brick x 1.26 y 1.26 z 500
+#{ id2516 = Id("body") }
+intersect body { id2515 } { id2516 }
+#{ id2517 = Id("body") }
+body { id2517 } name "Cell_2"
+move body { id2517 } midpoint location -1.2599999999999998 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2518 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2519 = Id("body") }
+subtract body { id2518 } from body { id2519 }
+body { id2519 } name "Cell_3"
+move body { id2519 } midpoint location -1.2599999999999998 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2520 = Id("body") }
+body { id2520 } name "Cell_1"
+move body { id2520 } midpoint location 0.0 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2521 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2522 = Id("body") }
+subtract body { id2521 } from body { id2522 }
+cylinder height 500 radius 0.4572
+#{ id2523 = Id("body") }
+#{ id2524 = Id("body") }
+intersect body { id2522 } { id2523 }
+#{ id2525 = Id("body") }
+#{id2526 = ( id2524 == id2525 ) ? id2523 : id2525}
+brick x 1.26 y 1.26 z 500
+#{ id2527 = Id("body") }
+intersect body { id2526 } { id2527 }
+#{ id2528 = Id("body") }
+body { id2528 } name "Cell_2"
+move body { id2528 } midpoint location 0.0 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2529 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2530 = Id("body") }
+subtract body { id2529 } from body { id2530 }
+body { id2530 } name "Cell_3"
+move body { id2530 } midpoint location 0.0 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2531 = Id("body") }
+body { id2531 } name "Cell_1"
+move body { id2531 } midpoint location 1.2599999999999998 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2532 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2533 = Id("body") }
+subtract body { id2532 } from body { id2533 }
+cylinder height 500 radius 0.4572
+#{ id2534 = Id("body") }
+#{ id2535 = Id("body") }
+intersect body { id2533 } { id2534 }
+#{ id2536 = Id("body") }
+#{id2537 = ( id2535 == id2536 ) ? id2534 : id2536}
+brick x 1.26 y 1.26 z 500
+#{ id2538 = Id("body") }
+intersect body { id2537 } { id2538 }
+#{ id2539 = Id("body") }
+body { id2539 } name "Cell_2"
+move body { id2539 } midpoint location 1.2599999999999998 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2540 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2541 = Id("body") }
+subtract body { id2540 } from body { id2541 }
+body { id2541 } name "Cell_3"
+move body { id2541 } midpoint location 1.2599999999999998 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2542 = Id("body") }
+body { id2542 } name "Cell_1"
+move body { id2542 } midpoint location 2.5199999999999996 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2543 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2544 = Id("body") }
+subtract body { id2543 } from body { id2544 }
+cylinder height 500 radius 0.4572
+#{ id2545 = Id("body") }
+#{ id2546 = Id("body") }
+intersect body { id2544 } { id2545 }
+#{ id2547 = Id("body") }
+#{id2548 = ( id2546 == id2547 ) ? id2545 : id2547}
+brick x 1.26 y 1.26 z 500
+#{ id2549 = Id("body") }
+intersect body { id2548 } { id2549 }
+#{ id2550 = Id("body") }
+body { id2550 } name "Cell_2"
+move body { id2550 } midpoint location 2.5199999999999996 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2551 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2552 = Id("body") }
+subtract body { id2551 } from body { id2552 }
+body { id2552 } name "Cell_3"
+move body { id2552 } midpoint location 2.5199999999999996 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2553 = Id("body") }
+body { id2553 } name "Cell_1"
+move body { id2553 } midpoint location 3.7799999999999994 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2554 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2555 = Id("body") }
+subtract body { id2554 } from body { id2555 }
+cylinder height 500 radius 0.4572
+#{ id2556 = Id("body") }
+#{ id2557 = Id("body") }
+intersect body { id2555 } { id2556 }
+#{ id2558 = Id("body") }
+#{id2559 = ( id2557 == id2558 ) ? id2556 : id2558}
+brick x 1.26 y 1.26 z 500
+#{ id2560 = Id("body") }
+intersect body { id2559 } { id2560 }
+#{ id2561 = Id("body") }
+body { id2561 } name "Cell_2"
+move body { id2561 } midpoint location 3.7799999999999994 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2562 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2563 = Id("body") }
+subtract body { id2562 } from body { id2563 }
+body { id2563 } name "Cell_3"
+move body { id2563 } midpoint location 3.7799999999999994 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2564 = Id("body") }
+body { id2564 } name "Cell_1"
+move body { id2564 } midpoint location 5.040000000000001 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2565 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2566 = Id("body") }
+subtract body { id2565 } from body { id2566 }
+cylinder height 500 radius 0.4572
+#{ id2567 = Id("body") }
+#{ id2568 = Id("body") }
+intersect body { id2566 } { id2567 }
+#{ id2569 = Id("body") }
+#{id2570 = ( id2568 == id2569 ) ? id2567 : id2569}
+brick x 1.26 y 1.26 z 500
+#{ id2571 = Id("body") }
+intersect body { id2570 } { id2571 }
+#{ id2572 = Id("body") }
+body { id2572 } name "Cell_2"
+move body { id2572 } midpoint location 5.040000000000001 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2573 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2574 = Id("body") }
+subtract body { id2573 } from body { id2574 }
+body { id2574 } name "Cell_3"
+move body { id2574 } midpoint location 5.040000000000001 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2575 = Id("body") }
+body { id2575 } name "Cell_4"
+move body { id2575 } midpoint location 6.299999999999999 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2576 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2577 = Id("body") }
+subtract body { id2576 } from body { id2577 }
+cylinder height 500 radius 0.4572
+#{ id2578 = Id("body") }
+#{ id2579 = Id("body") }
+intersect body { id2577 } { id2578 }
+#{ id2580 = Id("body") }
+#{id2581 = ( id2579 == id2580 ) ? id2578 : id2580}
+brick x 1.26 y 1.26 z 500
+#{ id2582 = Id("body") }
+intersect body { id2581 } { id2582 }
+#{ id2583 = Id("body") }
+body { id2583 } name "Cell_5"
+move body { id2583 } midpoint location 6.299999999999999 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2584 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2585 = Id("body") }
+subtract body { id2584 } from body { id2585 }
+body { id2585 } name "Cell_6"
+move body { id2585 } midpoint location 6.299999999999999 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2586 = Id("body") }
+body { id2586 } name "Cell_1"
+move body { id2586 } midpoint location 7.5600000000000005 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2587 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2588 = Id("body") }
+subtract body { id2587 } from body { id2588 }
+cylinder height 500 radius 0.4572
+#{ id2589 = Id("body") }
+#{ id2590 = Id("body") }
+intersect body { id2588 } { id2589 }
+#{ id2591 = Id("body") }
+#{id2592 = ( id2590 == id2591 ) ? id2589 : id2591}
+brick x 1.26 y 1.26 z 500
+#{ id2593 = Id("body") }
+intersect body { id2592 } { id2593 }
+#{ id2594 = Id("body") }
+body { id2594 } name "Cell_2"
+move body { id2594 } midpoint location 7.5600000000000005 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2595 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2596 = Id("body") }
+subtract body { id2595 } from body { id2596 }
+body { id2596 } name "Cell_3"
+move body { id2596 } midpoint location 7.5600000000000005 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2597 = Id("body") }
+body { id2597 } name "Cell_1"
+move body { id2597 } midpoint location 8.819999999999999 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2598 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2599 = Id("body") }
+subtract body { id2598 } from body { id2599 }
+cylinder height 500 radius 0.4572
+#{ id2600 = Id("body") }
+#{ id2601 = Id("body") }
+intersect body { id2599 } { id2600 }
+#{ id2602 = Id("body") }
+#{id2603 = ( id2601 == id2602 ) ? id2600 : id2602}
+brick x 1.26 y 1.26 z 500
+#{ id2604 = Id("body") }
+intersect body { id2603 } { id2604 }
+#{ id2605 = Id("body") }
+body { id2605 } name "Cell_2"
+move body { id2605 } midpoint location 8.819999999999999 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2606 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2607 = Id("body") }
+subtract body { id2606 } from body { id2607 }
+body { id2607 } name "Cell_3"
+move body { id2607 } midpoint location 8.819999999999999 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2608 = Id("body") }
+body { id2608 } name "Cell_1"
+move body { id2608 } midpoint location 10.08 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2609 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2610 = Id("body") }
+subtract body { id2609 } from body { id2610 }
+cylinder height 500 radius 0.4572
+#{ id2611 = Id("body") }
+#{ id2612 = Id("body") }
+intersect body { id2610 } { id2611 }
+#{ id2613 = Id("body") }
+#{id2614 = ( id2612 == id2613 ) ? id2611 : id2613}
+brick x 1.26 y 1.26 z 500
+#{ id2615 = Id("body") }
+intersect body { id2614 } { id2615 }
+#{ id2616 = Id("body") }
+body { id2616 } name "Cell_2"
+move body { id2616 } midpoint location 10.08 6.299999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2617 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2618 = Id("body") }
+subtract body { id2617 } from body { id2618 }
+body { id2618 } name "Cell_3"
+move body { id2618 } midpoint location 10.08 6.299999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2619 = Id("body") }
+body { id2619 } name "Cell_1"
+move body { id2619 } midpoint location -10.08 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2620 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2621 = Id("body") }
+subtract body { id2620 } from body { id2621 }
+cylinder height 500 radius 0.4572
+#{ id2622 = Id("body") }
+#{ id2623 = Id("body") }
+intersect body { id2621 } { id2622 }
+#{ id2624 = Id("body") }
+#{id2625 = ( id2623 == id2624 ) ? id2622 : id2624}
+brick x 1.26 y 1.26 z 500
+#{ id2626 = Id("body") }
+intersect body { id2625 } { id2626 }
+#{ id2627 = Id("body") }
+body { id2627 } name "Cell_2"
+move body { id2627 } midpoint location -10.08 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2628 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2629 = Id("body") }
+subtract body { id2628 } from body { id2629 }
+body { id2629 } name "Cell_3"
+move body { id2629 } midpoint location -10.08 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2630 = Id("body") }
+body { id2630 } name "Cell_1"
+move body { id2630 } midpoint location -8.82 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2631 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2632 = Id("body") }
+subtract body { id2631 } from body { id2632 }
+cylinder height 500 radius 0.4572
+#{ id2633 = Id("body") }
+#{ id2634 = Id("body") }
+intersect body { id2632 } { id2633 }
+#{ id2635 = Id("body") }
+#{id2636 = ( id2634 == id2635 ) ? id2633 : id2635}
+brick x 1.26 y 1.26 z 500
+#{ id2637 = Id("body") }
+intersect body { id2636 } { id2637 }
+#{ id2638 = Id("body") }
+body { id2638 } name "Cell_2"
+move body { id2638 } midpoint location -8.82 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2639 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2640 = Id("body") }
+subtract body { id2639 } from body { id2640 }
+body { id2640 } name "Cell_3"
+move body { id2640 } midpoint location -8.82 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2641 = Id("body") }
+body { id2641 } name "Cell_1"
+move body { id2641 } midpoint location -7.5600000000000005 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2642 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2643 = Id("body") }
+subtract body { id2642 } from body { id2643 }
+cylinder height 500 radius 0.4572
+#{ id2644 = Id("body") }
+#{ id2645 = Id("body") }
+intersect body { id2643 } { id2644 }
+#{ id2646 = Id("body") }
+#{id2647 = ( id2645 == id2646 ) ? id2644 : id2646}
+brick x 1.26 y 1.26 z 500
+#{ id2648 = Id("body") }
+intersect body { id2647 } { id2648 }
+#{ id2649 = Id("body") }
+body { id2649 } name "Cell_2"
+move body { id2649 } midpoint location -7.5600000000000005 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2650 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2651 = Id("body") }
+subtract body { id2650 } from body { id2651 }
+body { id2651 } name "Cell_3"
+move body { id2651 } midpoint location -7.5600000000000005 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2652 = Id("body") }
+body { id2652 } name "Cell_1"
+move body { id2652 } midpoint location -6.3 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2653 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2654 = Id("body") }
+subtract body { id2653 } from body { id2654 }
+cylinder height 500 radius 0.4572
+#{ id2655 = Id("body") }
+#{ id2656 = Id("body") }
+intersect body { id2654 } { id2655 }
+#{ id2657 = Id("body") }
+#{id2658 = ( id2656 == id2657 ) ? id2655 : id2657}
+brick x 1.26 y 1.26 z 500
+#{ id2659 = Id("body") }
+intersect body { id2658 } { id2659 }
+#{ id2660 = Id("body") }
+body { id2660 } name "Cell_2"
+move body { id2660 } midpoint location -6.3 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2661 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2662 = Id("body") }
+subtract body { id2661 } from body { id2662 }
+body { id2662 } name "Cell_3"
+move body { id2662 } midpoint location -6.3 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2663 = Id("body") }
+body { id2663 } name "Cell_1"
+move body { id2663 } midpoint location -5.04 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2664 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2665 = Id("body") }
+subtract body { id2664 } from body { id2665 }
+cylinder height 500 radius 0.4572
+#{ id2666 = Id("body") }
+#{ id2667 = Id("body") }
+intersect body { id2665 } { id2666 }
+#{ id2668 = Id("body") }
+#{id2669 = ( id2667 == id2668 ) ? id2666 : id2668}
+brick x 1.26 y 1.26 z 500
+#{ id2670 = Id("body") }
+intersect body { id2669 } { id2670 }
+#{ id2671 = Id("body") }
+body { id2671 } name "Cell_2"
+move body { id2671 } midpoint location -5.04 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2672 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2673 = Id("body") }
+subtract body { id2672 } from body { id2673 }
+body { id2673 } name "Cell_3"
+move body { id2673 } midpoint location -5.04 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2674 = Id("body") }
+body { id2674 } name "Cell_4"
+move body { id2674 } midpoint location -3.7800000000000002 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2675 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2676 = Id("body") }
+subtract body { id2675 } from body { id2676 }
+cylinder height 500 radius 0.4572
+#{ id2677 = Id("body") }
+#{ id2678 = Id("body") }
+intersect body { id2676 } { id2677 }
+#{ id2679 = Id("body") }
+#{id2680 = ( id2678 == id2679 ) ? id2677 : id2679}
+brick x 1.26 y 1.26 z 500
+#{ id2681 = Id("body") }
+intersect body { id2680 } { id2681 }
+#{ id2682 = Id("body") }
+body { id2682 } name "Cell_5"
+move body { id2682 } midpoint location -3.7800000000000002 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2683 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2684 = Id("body") }
+subtract body { id2683 } from body { id2684 }
+body { id2684 } name "Cell_6"
+move body { id2684 } midpoint location -3.7800000000000002 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2685 = Id("body") }
+body { id2685 } name "Cell_1"
+move body { id2685 } midpoint location -2.5199999999999996 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2686 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2687 = Id("body") }
+subtract body { id2686 } from body { id2687 }
+cylinder height 500 radius 0.4572
+#{ id2688 = Id("body") }
+#{ id2689 = Id("body") }
+intersect body { id2687 } { id2688 }
+#{ id2690 = Id("body") }
+#{id2691 = ( id2689 == id2690 ) ? id2688 : id2690}
+brick x 1.26 y 1.26 z 500
+#{ id2692 = Id("body") }
+intersect body { id2691 } { id2692 }
+#{ id2693 = Id("body") }
+body { id2693 } name "Cell_2"
+move body { id2693 } midpoint location -2.5199999999999996 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2694 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2695 = Id("body") }
+subtract body { id2694 } from body { id2695 }
+body { id2695 } name "Cell_3"
+move body { id2695 } midpoint location -2.5199999999999996 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2696 = Id("body") }
+body { id2696 } name "Cell_1"
+move body { id2696 } midpoint location -1.2599999999999998 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2697 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2698 = Id("body") }
+subtract body { id2697 } from body { id2698 }
+cylinder height 500 radius 0.4572
+#{ id2699 = Id("body") }
+#{ id2700 = Id("body") }
+intersect body { id2698 } { id2699 }
+#{ id2701 = Id("body") }
+#{id2702 = ( id2700 == id2701 ) ? id2699 : id2701}
+brick x 1.26 y 1.26 z 500
+#{ id2703 = Id("body") }
+intersect body { id2702 } { id2703 }
+#{ id2704 = Id("body") }
+body { id2704 } name "Cell_2"
+move body { id2704 } midpoint location -1.2599999999999998 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2705 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2706 = Id("body") }
+subtract body { id2705 } from body { id2706 }
+body { id2706 } name "Cell_3"
+move body { id2706 } midpoint location -1.2599999999999998 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2707 = Id("body") }
+body { id2707 } name "Cell_4"
+move body { id2707 } midpoint location 0.0 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2708 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2709 = Id("body") }
+subtract body { id2708 } from body { id2709 }
+cylinder height 500 radius 0.4572
+#{ id2710 = Id("body") }
+#{ id2711 = Id("body") }
+intersect body { id2709 } { id2710 }
+#{ id2712 = Id("body") }
+#{id2713 = ( id2711 == id2712 ) ? id2710 : id2712}
+brick x 1.26 y 1.26 z 500
+#{ id2714 = Id("body") }
+intersect body { id2713 } { id2714 }
+#{ id2715 = Id("body") }
+body { id2715 } name "Cell_5"
+move body { id2715 } midpoint location 0.0 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2716 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2717 = Id("body") }
+subtract body { id2716 } from body { id2717 }
+body { id2717 } name "Cell_6"
+move body { id2717 } midpoint location 0.0 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2718 = Id("body") }
+body { id2718 } name "Cell_1"
+move body { id2718 } midpoint location 1.2599999999999998 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2719 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2720 = Id("body") }
+subtract body { id2719 } from body { id2720 }
+cylinder height 500 radius 0.4572
+#{ id2721 = Id("body") }
+#{ id2722 = Id("body") }
+intersect body { id2720 } { id2721 }
+#{ id2723 = Id("body") }
+#{id2724 = ( id2722 == id2723 ) ? id2721 : id2723}
+brick x 1.26 y 1.26 z 500
+#{ id2725 = Id("body") }
+intersect body { id2724 } { id2725 }
+#{ id2726 = Id("body") }
+body { id2726 } name "Cell_2"
+move body { id2726 } midpoint location 1.2599999999999998 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2727 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2728 = Id("body") }
+subtract body { id2727 } from body { id2728 }
+body { id2728 } name "Cell_3"
+move body { id2728 } midpoint location 1.2599999999999998 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2729 = Id("body") }
+body { id2729 } name "Cell_1"
+move body { id2729 } midpoint location 2.5199999999999996 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2730 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2731 = Id("body") }
+subtract body { id2730 } from body { id2731 }
+cylinder height 500 radius 0.4572
+#{ id2732 = Id("body") }
+#{ id2733 = Id("body") }
+intersect body { id2731 } { id2732 }
+#{ id2734 = Id("body") }
+#{id2735 = ( id2733 == id2734 ) ? id2732 : id2734}
+brick x 1.26 y 1.26 z 500
+#{ id2736 = Id("body") }
+intersect body { id2735 } { id2736 }
+#{ id2737 = Id("body") }
+body { id2737 } name "Cell_2"
+move body { id2737 } midpoint location 2.5199999999999996 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2738 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2739 = Id("body") }
+subtract body { id2738 } from body { id2739 }
+body { id2739 } name "Cell_3"
+move body { id2739 } midpoint location 2.5199999999999996 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2740 = Id("body") }
+body { id2740 } name "Cell_4"
+move body { id2740 } midpoint location 3.7799999999999994 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2741 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2742 = Id("body") }
+subtract body { id2741 } from body { id2742 }
+cylinder height 500 radius 0.4572
+#{ id2743 = Id("body") }
+#{ id2744 = Id("body") }
+intersect body { id2742 } { id2743 }
+#{ id2745 = Id("body") }
+#{id2746 = ( id2744 == id2745 ) ? id2743 : id2745}
+brick x 1.26 y 1.26 z 500
+#{ id2747 = Id("body") }
+intersect body { id2746 } { id2747 }
+#{ id2748 = Id("body") }
+body { id2748 } name "Cell_5"
+move body { id2748 } midpoint location 3.7799999999999994 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2749 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2750 = Id("body") }
+subtract body { id2749 } from body { id2750 }
+body { id2750 } name "Cell_6"
+move body { id2750 } midpoint location 3.7799999999999994 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2751 = Id("body") }
+body { id2751 } name "Cell_1"
+move body { id2751 } midpoint location 5.040000000000001 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2752 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2753 = Id("body") }
+subtract body { id2752 } from body { id2753 }
+cylinder height 500 radius 0.4572
+#{ id2754 = Id("body") }
+#{ id2755 = Id("body") }
+intersect body { id2753 } { id2754 }
+#{ id2756 = Id("body") }
+#{id2757 = ( id2755 == id2756 ) ? id2754 : id2756}
+brick x 1.26 y 1.26 z 500
+#{ id2758 = Id("body") }
+intersect body { id2757 } { id2758 }
+#{ id2759 = Id("body") }
+body { id2759 } name "Cell_2"
+move body { id2759 } midpoint location 5.040000000000001 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2760 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2761 = Id("body") }
+subtract body { id2760 } from body { id2761 }
+body { id2761 } name "Cell_3"
+move body { id2761 } midpoint location 5.040000000000001 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2762 = Id("body") }
+body { id2762 } name "Cell_1"
+move body { id2762 } midpoint location 6.299999999999999 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2763 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2764 = Id("body") }
+subtract body { id2763 } from body { id2764 }
+cylinder height 500 radius 0.4572
+#{ id2765 = Id("body") }
+#{ id2766 = Id("body") }
+intersect body { id2764 } { id2765 }
+#{ id2767 = Id("body") }
+#{id2768 = ( id2766 == id2767 ) ? id2765 : id2767}
+brick x 1.26 y 1.26 z 500
+#{ id2769 = Id("body") }
+intersect body { id2768 } { id2769 }
+#{ id2770 = Id("body") }
+body { id2770 } name "Cell_2"
+move body { id2770 } midpoint location 6.299999999999999 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2771 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2772 = Id("body") }
+subtract body { id2771 } from body { id2772 }
+body { id2772 } name "Cell_3"
+move body { id2772 } midpoint location 6.299999999999999 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2773 = Id("body") }
+body { id2773 } name "Cell_1"
+move body { id2773 } midpoint location 7.5600000000000005 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2774 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2775 = Id("body") }
+subtract body { id2774 } from body { id2775 }
+cylinder height 500 radius 0.4572
+#{ id2776 = Id("body") }
+#{ id2777 = Id("body") }
+intersect body { id2775 } { id2776 }
+#{ id2778 = Id("body") }
+#{id2779 = ( id2777 == id2778 ) ? id2776 : id2778}
+brick x 1.26 y 1.26 z 500
+#{ id2780 = Id("body") }
+intersect body { id2779 } { id2780 }
+#{ id2781 = Id("body") }
+body { id2781 } name "Cell_2"
+move body { id2781 } midpoint location 7.5600000000000005 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2782 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2783 = Id("body") }
+subtract body { id2782 } from body { id2783 }
+body { id2783 } name "Cell_3"
+move body { id2783 } midpoint location 7.5600000000000005 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2784 = Id("body") }
+body { id2784 } name "Cell_1"
+move body { id2784 } midpoint location 8.819999999999999 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2785 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2786 = Id("body") }
+subtract body { id2785 } from body { id2786 }
+cylinder height 500 radius 0.4572
+#{ id2787 = Id("body") }
+#{ id2788 = Id("body") }
+intersect body { id2786 } { id2787 }
+#{ id2789 = Id("body") }
+#{id2790 = ( id2788 == id2789 ) ? id2787 : id2789}
+brick x 1.26 y 1.26 z 500
+#{ id2791 = Id("body") }
+intersect body { id2790 } { id2791 }
+#{ id2792 = Id("body") }
+body { id2792 } name "Cell_2"
+move body { id2792 } midpoint location 8.819999999999999 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2793 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2794 = Id("body") }
+subtract body { id2793 } from body { id2794 }
+body { id2794 } name "Cell_3"
+move body { id2794 } midpoint location 8.819999999999999 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2795 = Id("body") }
+body { id2795 } name "Cell_1"
+move body { id2795 } midpoint location 10.08 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2796 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2797 = Id("body") }
+subtract body { id2796 } from body { id2797 }
+cylinder height 500 radius 0.4572
+#{ id2798 = Id("body") }
+#{ id2799 = Id("body") }
+intersect body { id2797 } { id2798 }
+#{ id2800 = Id("body") }
+#{id2801 = ( id2799 == id2800 ) ? id2798 : id2800}
+brick x 1.26 y 1.26 z 500
+#{ id2802 = Id("body") }
+intersect body { id2801 } { id2802 }
+#{ id2803 = Id("body") }
+body { id2803 } name "Cell_2"
+move body { id2803 } midpoint location 10.08 7.5600000000000005 0 except z
+cylinder height 500 radius 0.4572
+#{ id2804 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2805 = Id("body") }
+subtract body { id2804 } from body { id2805 }
+body { id2805 } name "Cell_3"
+move body { id2805 } midpoint location 10.08 7.5600000000000005 0 except z
+cylinder height 500 radius 0.39218
+#{ id2806 = Id("body") }
+body { id2806 } name "Cell_1"
+move body { id2806 } midpoint location -10.08 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2807 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2808 = Id("body") }
+subtract body { id2807 } from body { id2808 }
+cylinder height 500 radius 0.4572
+#{ id2809 = Id("body") }
+#{ id2810 = Id("body") }
+intersect body { id2808 } { id2809 }
+#{ id2811 = Id("body") }
+#{id2812 = ( id2810 == id2811 ) ? id2809 : id2811}
+brick x 1.26 y 1.26 z 500
+#{ id2813 = Id("body") }
+intersect body { id2812 } { id2813 }
+#{ id2814 = Id("body") }
+body { id2814 } name "Cell_2"
+move body { id2814 } midpoint location -10.08 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2815 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2816 = Id("body") }
+subtract body { id2815 } from body { id2816 }
+body { id2816 } name "Cell_3"
+move body { id2816 } midpoint location -10.08 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2817 = Id("body") }
+body { id2817 } name "Cell_1"
+move body { id2817 } midpoint location -8.82 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2818 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2819 = Id("body") }
+subtract body { id2818 } from body { id2819 }
+cylinder height 500 radius 0.4572
+#{ id2820 = Id("body") }
+#{ id2821 = Id("body") }
+intersect body { id2819 } { id2820 }
+#{ id2822 = Id("body") }
+#{id2823 = ( id2821 == id2822 ) ? id2820 : id2822}
+brick x 1.26 y 1.26 z 500
+#{ id2824 = Id("body") }
+intersect body { id2823 } { id2824 }
+#{ id2825 = Id("body") }
+body { id2825 } name "Cell_2"
+move body { id2825 } midpoint location -8.82 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2826 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2827 = Id("body") }
+subtract body { id2826 } from body { id2827 }
+body { id2827 } name "Cell_3"
+move body { id2827 } midpoint location -8.82 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2828 = Id("body") }
+body { id2828 } name "Cell_1"
+move body { id2828 } midpoint location -7.5600000000000005 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2829 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2830 = Id("body") }
+subtract body { id2829 } from body { id2830 }
+cylinder height 500 radius 0.4572
+#{ id2831 = Id("body") }
+#{ id2832 = Id("body") }
+intersect body { id2830 } { id2831 }
+#{ id2833 = Id("body") }
+#{id2834 = ( id2832 == id2833 ) ? id2831 : id2833}
+brick x 1.26 y 1.26 z 500
+#{ id2835 = Id("body") }
+intersect body { id2834 } { id2835 }
+#{ id2836 = Id("body") }
+body { id2836 } name "Cell_2"
+move body { id2836 } midpoint location -7.5600000000000005 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2837 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2838 = Id("body") }
+subtract body { id2837 } from body { id2838 }
+body { id2838 } name "Cell_3"
+move body { id2838 } midpoint location -7.5600000000000005 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2839 = Id("body") }
+body { id2839 } name "Cell_1"
+move body { id2839 } midpoint location -6.3 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2840 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2841 = Id("body") }
+subtract body { id2840 } from body { id2841 }
+cylinder height 500 radius 0.4572
+#{ id2842 = Id("body") }
+#{ id2843 = Id("body") }
+intersect body { id2841 } { id2842 }
+#{ id2844 = Id("body") }
+#{id2845 = ( id2843 == id2844 ) ? id2842 : id2844}
+brick x 1.26 y 1.26 z 500
+#{ id2846 = Id("body") }
+intersect body { id2845 } { id2846 }
+#{ id2847 = Id("body") }
+body { id2847 } name "Cell_2"
+move body { id2847 } midpoint location -6.3 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2848 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2849 = Id("body") }
+subtract body { id2848 } from body { id2849 }
+body { id2849 } name "Cell_3"
+move body { id2849 } midpoint location -6.3 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2850 = Id("body") }
+body { id2850 } name "Cell_1"
+move body { id2850 } midpoint location -5.04 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2851 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2852 = Id("body") }
+subtract body { id2851 } from body { id2852 }
+cylinder height 500 radius 0.4572
+#{ id2853 = Id("body") }
+#{ id2854 = Id("body") }
+intersect body { id2852 } { id2853 }
+#{ id2855 = Id("body") }
+#{id2856 = ( id2854 == id2855 ) ? id2853 : id2855}
+brick x 1.26 y 1.26 z 500
+#{ id2857 = Id("body") }
+intersect body { id2856 } { id2857 }
+#{ id2858 = Id("body") }
+body { id2858 } name "Cell_2"
+move body { id2858 } midpoint location -5.04 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2859 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2860 = Id("body") }
+subtract body { id2859 } from body { id2860 }
+body { id2860 } name "Cell_3"
+move body { id2860 } midpoint location -5.04 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2861 = Id("body") }
+body { id2861 } name "Cell_1"
+move body { id2861 } midpoint location -3.7800000000000002 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2862 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2863 = Id("body") }
+subtract body { id2862 } from body { id2863 }
+cylinder height 500 radius 0.4572
+#{ id2864 = Id("body") }
+#{ id2865 = Id("body") }
+intersect body { id2863 } { id2864 }
+#{ id2866 = Id("body") }
+#{id2867 = ( id2865 == id2866 ) ? id2864 : id2866}
+brick x 1.26 y 1.26 z 500
+#{ id2868 = Id("body") }
+intersect body { id2867 } { id2868 }
+#{ id2869 = Id("body") }
+body { id2869 } name "Cell_2"
+move body { id2869 } midpoint location -3.7800000000000002 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2870 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2871 = Id("body") }
+subtract body { id2870 } from body { id2871 }
+body { id2871 } name "Cell_3"
+move body { id2871 } midpoint location -3.7800000000000002 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2872 = Id("body") }
+body { id2872 } name "Cell_1"
+move body { id2872 } midpoint location -2.5199999999999996 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2873 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2874 = Id("body") }
+subtract body { id2873 } from body { id2874 }
+cylinder height 500 radius 0.4572
+#{ id2875 = Id("body") }
+#{ id2876 = Id("body") }
+intersect body { id2874 } { id2875 }
+#{ id2877 = Id("body") }
+#{id2878 = ( id2876 == id2877 ) ? id2875 : id2877}
+brick x 1.26 y 1.26 z 500
+#{ id2879 = Id("body") }
+intersect body { id2878 } { id2879 }
+#{ id2880 = Id("body") }
+body { id2880 } name "Cell_2"
+move body { id2880 } midpoint location -2.5199999999999996 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2881 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2882 = Id("body") }
+subtract body { id2881 } from body { id2882 }
+body { id2882 } name "Cell_3"
+move body { id2882 } midpoint location -2.5199999999999996 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2883 = Id("body") }
+body { id2883 } name "Cell_1"
+move body { id2883 } midpoint location -1.2599999999999998 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2884 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2885 = Id("body") }
+subtract body { id2884 } from body { id2885 }
+cylinder height 500 radius 0.4572
+#{ id2886 = Id("body") }
+#{ id2887 = Id("body") }
+intersect body { id2885 } { id2886 }
+#{ id2888 = Id("body") }
+#{id2889 = ( id2887 == id2888 ) ? id2886 : id2888}
+brick x 1.26 y 1.26 z 500
+#{ id2890 = Id("body") }
+intersect body { id2889 } { id2890 }
+#{ id2891 = Id("body") }
+body { id2891 } name "Cell_2"
+move body { id2891 } midpoint location -1.2599999999999998 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2892 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2893 = Id("body") }
+subtract body { id2892 } from body { id2893 }
+body { id2893 } name "Cell_3"
+move body { id2893 } midpoint location -1.2599999999999998 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2894 = Id("body") }
+body { id2894 } name "Cell_1"
+move body { id2894 } midpoint location 0.0 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2895 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2896 = Id("body") }
+subtract body { id2895 } from body { id2896 }
+cylinder height 500 radius 0.4572
+#{ id2897 = Id("body") }
+#{ id2898 = Id("body") }
+intersect body { id2896 } { id2897 }
+#{ id2899 = Id("body") }
+#{id2900 = ( id2898 == id2899 ) ? id2897 : id2899}
+brick x 1.26 y 1.26 z 500
+#{ id2901 = Id("body") }
+intersect body { id2900 } { id2901 }
+#{ id2902 = Id("body") }
+body { id2902 } name "Cell_2"
+move body { id2902 } midpoint location 0.0 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2903 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2904 = Id("body") }
+subtract body { id2903 } from body { id2904 }
+body { id2904 } name "Cell_3"
+move body { id2904 } midpoint location 0.0 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2905 = Id("body") }
+body { id2905 } name "Cell_1"
+move body { id2905 } midpoint location 1.2599999999999998 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2906 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2907 = Id("body") }
+subtract body { id2906 } from body { id2907 }
+cylinder height 500 radius 0.4572
+#{ id2908 = Id("body") }
+#{ id2909 = Id("body") }
+intersect body { id2907 } { id2908 }
+#{ id2910 = Id("body") }
+#{id2911 = ( id2909 == id2910 ) ? id2908 : id2910}
+brick x 1.26 y 1.26 z 500
+#{ id2912 = Id("body") }
+intersect body { id2911 } { id2912 }
+#{ id2913 = Id("body") }
+body { id2913 } name "Cell_2"
+move body { id2913 } midpoint location 1.2599999999999998 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2914 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2915 = Id("body") }
+subtract body { id2914 } from body { id2915 }
+body { id2915 } name "Cell_3"
+move body { id2915 } midpoint location 1.2599999999999998 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2916 = Id("body") }
+body { id2916 } name "Cell_1"
+move body { id2916 } midpoint location 2.5199999999999996 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2917 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2918 = Id("body") }
+subtract body { id2917 } from body { id2918 }
+cylinder height 500 radius 0.4572
+#{ id2919 = Id("body") }
+#{ id2920 = Id("body") }
+intersect body { id2918 } { id2919 }
+#{ id2921 = Id("body") }
+#{id2922 = ( id2920 == id2921 ) ? id2919 : id2921}
+brick x 1.26 y 1.26 z 500
+#{ id2923 = Id("body") }
+intersect body { id2922 } { id2923 }
+#{ id2924 = Id("body") }
+body { id2924 } name "Cell_2"
+move body { id2924 } midpoint location 2.5199999999999996 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2925 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2926 = Id("body") }
+subtract body { id2925 } from body { id2926 }
+body { id2926 } name "Cell_3"
+move body { id2926 } midpoint location 2.5199999999999996 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2927 = Id("body") }
+body { id2927 } name "Cell_1"
+move body { id2927 } midpoint location 3.7799999999999994 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2928 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2929 = Id("body") }
+subtract body { id2928 } from body { id2929 }
+cylinder height 500 radius 0.4572
+#{ id2930 = Id("body") }
+#{ id2931 = Id("body") }
+intersect body { id2929 } { id2930 }
+#{ id2932 = Id("body") }
+#{id2933 = ( id2931 == id2932 ) ? id2930 : id2932}
+brick x 1.26 y 1.26 z 500
+#{ id2934 = Id("body") }
+intersect body { id2933 } { id2934 }
+#{ id2935 = Id("body") }
+body { id2935 } name "Cell_2"
+move body { id2935 } midpoint location 3.7799999999999994 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2936 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2937 = Id("body") }
+subtract body { id2936 } from body { id2937 }
+body { id2937 } name "Cell_3"
+move body { id2937 } midpoint location 3.7799999999999994 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2938 = Id("body") }
+body { id2938 } name "Cell_1"
+move body { id2938 } midpoint location 5.040000000000001 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2939 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2940 = Id("body") }
+subtract body { id2939 } from body { id2940 }
+cylinder height 500 radius 0.4572
+#{ id2941 = Id("body") }
+#{ id2942 = Id("body") }
+intersect body { id2940 } { id2941 }
+#{ id2943 = Id("body") }
+#{id2944 = ( id2942 == id2943 ) ? id2941 : id2943}
+brick x 1.26 y 1.26 z 500
+#{ id2945 = Id("body") }
+intersect body { id2944 } { id2945 }
+#{ id2946 = Id("body") }
+body { id2946 } name "Cell_2"
+move body { id2946 } midpoint location 5.040000000000001 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2947 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2948 = Id("body") }
+subtract body { id2947 } from body { id2948 }
+body { id2948 } name "Cell_3"
+move body { id2948 } midpoint location 5.040000000000001 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2949 = Id("body") }
+body { id2949 } name "Cell_1"
+move body { id2949 } midpoint location 6.299999999999999 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2950 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2951 = Id("body") }
+subtract body { id2950 } from body { id2951 }
+cylinder height 500 radius 0.4572
+#{ id2952 = Id("body") }
+#{ id2953 = Id("body") }
+intersect body { id2951 } { id2952 }
+#{ id2954 = Id("body") }
+#{id2955 = ( id2953 == id2954 ) ? id2952 : id2954}
+brick x 1.26 y 1.26 z 500
+#{ id2956 = Id("body") }
+intersect body { id2955 } { id2956 }
+#{ id2957 = Id("body") }
+body { id2957 } name "Cell_2"
+move body { id2957 } midpoint location 6.299999999999999 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2958 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2959 = Id("body") }
+subtract body { id2958 } from body { id2959 }
+body { id2959 } name "Cell_3"
+move body { id2959 } midpoint location 6.299999999999999 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2960 = Id("body") }
+body { id2960 } name "Cell_1"
+move body { id2960 } midpoint location 7.5600000000000005 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2961 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2962 = Id("body") }
+subtract body { id2961 } from body { id2962 }
+cylinder height 500 radius 0.4572
+#{ id2963 = Id("body") }
+#{ id2964 = Id("body") }
+intersect body { id2962 } { id2963 }
+#{ id2965 = Id("body") }
+#{id2966 = ( id2964 == id2965 ) ? id2963 : id2965}
+brick x 1.26 y 1.26 z 500
+#{ id2967 = Id("body") }
+intersect body { id2966 } { id2967 }
+#{ id2968 = Id("body") }
+body { id2968 } name "Cell_2"
+move body { id2968 } midpoint location 7.5600000000000005 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2969 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2970 = Id("body") }
+subtract body { id2969 } from body { id2970 }
+body { id2970 } name "Cell_3"
+move body { id2970 } midpoint location 7.5600000000000005 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2971 = Id("body") }
+body { id2971 } name "Cell_1"
+move body { id2971 } midpoint location 8.819999999999999 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2972 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2973 = Id("body") }
+subtract body { id2972 } from body { id2973 }
+cylinder height 500 radius 0.4572
+#{ id2974 = Id("body") }
+#{ id2975 = Id("body") }
+intersect body { id2973 } { id2974 }
+#{ id2976 = Id("body") }
+#{id2977 = ( id2975 == id2976 ) ? id2974 : id2976}
+brick x 1.26 y 1.26 z 500
+#{ id2978 = Id("body") }
+intersect body { id2977 } { id2978 }
+#{ id2979 = Id("body") }
+body { id2979 } name "Cell_2"
+move body { id2979 } midpoint location 8.819999999999999 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2980 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2981 = Id("body") }
+subtract body { id2980 } from body { id2981 }
+body { id2981 } name "Cell_3"
+move body { id2981 } midpoint location 8.819999999999999 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2982 = Id("body") }
+body { id2982 } name "Cell_1"
+move body { id2982 } midpoint location 10.08 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2983 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2984 = Id("body") }
+subtract body { id2983 } from body { id2984 }
+cylinder height 500 radius 0.4572
+#{ id2985 = Id("body") }
+#{ id2986 = Id("body") }
+intersect body { id2984 } { id2985 }
+#{ id2987 = Id("body") }
+#{id2988 = ( id2986 == id2987 ) ? id2985 : id2987}
+brick x 1.26 y 1.26 z 500
+#{ id2989 = Id("body") }
+intersect body { id2988 } { id2989 }
+#{ id2990 = Id("body") }
+body { id2990 } name "Cell_2"
+move body { id2990 } midpoint location 10.08 8.819999999999999 0 except z
+cylinder height 500 radius 0.4572
+#{ id2991 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2992 = Id("body") }
+subtract body { id2991 } from body { id2992 }
+body { id2992 } name "Cell_3"
+move body { id2992 } midpoint location 10.08 8.819999999999999 0 except z
+cylinder height 500 radius 0.39218
+#{ id2993 = Id("body") }
+body { id2993 } name "Cell_1"
+move body { id2993 } midpoint location -10.08 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id2994 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id2995 = Id("body") }
+subtract body { id2994 } from body { id2995 }
+cylinder height 500 radius 0.4572
+#{ id2996 = Id("body") }
+#{ id2997 = Id("body") }
+intersect body { id2995 } { id2996 }
+#{ id2998 = Id("body") }
+#{id2999 = ( id2997 == id2998 ) ? id2996 : id2998}
+brick x 1.26 y 1.26 z 500
+#{ id3000 = Id("body") }
+intersect body { id2999 } { id3000 }
+#{ id3001 = Id("body") }
+body { id3001 } name "Cell_2"
+move body { id3001 } midpoint location -10.08 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3002 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3003 = Id("body") }
+subtract body { id3002 } from body { id3003 }
+body { id3003 } name "Cell_3"
+move body { id3003 } midpoint location -10.08 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3004 = Id("body") }
+body { id3004 } name "Cell_1"
+move body { id3004 } midpoint location -8.82 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3005 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3006 = Id("body") }
+subtract body { id3005 } from body { id3006 }
+cylinder height 500 radius 0.4572
+#{ id3007 = Id("body") }
+#{ id3008 = Id("body") }
+intersect body { id3006 } { id3007 }
+#{ id3009 = Id("body") }
+#{id3010 = ( id3008 == id3009 ) ? id3007 : id3009}
+brick x 1.26 y 1.26 z 500
+#{ id3011 = Id("body") }
+intersect body { id3010 } { id3011 }
+#{ id3012 = Id("body") }
+body { id3012 } name "Cell_2"
+move body { id3012 } midpoint location -8.82 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3013 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3014 = Id("body") }
+subtract body { id3013 } from body { id3014 }
+body { id3014 } name "Cell_3"
+move body { id3014 } midpoint location -8.82 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3015 = Id("body") }
+body { id3015 } name "Cell_1"
+move body { id3015 } midpoint location -7.5600000000000005 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3016 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3017 = Id("body") }
+subtract body { id3016 } from body { id3017 }
+cylinder height 500 radius 0.4572
+#{ id3018 = Id("body") }
+#{ id3019 = Id("body") }
+intersect body { id3017 } { id3018 }
+#{ id3020 = Id("body") }
+#{id3021 = ( id3019 == id3020 ) ? id3018 : id3020}
+brick x 1.26 y 1.26 z 500
+#{ id3022 = Id("body") }
+intersect body { id3021 } { id3022 }
+#{ id3023 = Id("body") }
+body { id3023 } name "Cell_2"
+move body { id3023 } midpoint location -7.5600000000000005 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3024 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3025 = Id("body") }
+subtract body { id3024 } from body { id3025 }
+body { id3025 } name "Cell_3"
+move body { id3025 } midpoint location -7.5600000000000005 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3026 = Id("body") }
+body { id3026 } name "Cell_1"
+move body { id3026 } midpoint location -6.3 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3027 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3028 = Id("body") }
+subtract body { id3027 } from body { id3028 }
+cylinder height 500 radius 0.4572
+#{ id3029 = Id("body") }
+#{ id3030 = Id("body") }
+intersect body { id3028 } { id3029 }
+#{ id3031 = Id("body") }
+#{id3032 = ( id3030 == id3031 ) ? id3029 : id3031}
+brick x 1.26 y 1.26 z 500
+#{ id3033 = Id("body") }
+intersect body { id3032 } { id3033 }
+#{ id3034 = Id("body") }
+body { id3034 } name "Cell_2"
+move body { id3034 } midpoint location -6.3 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3035 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3036 = Id("body") }
+subtract body { id3035 } from body { id3036 }
+body { id3036 } name "Cell_3"
+move body { id3036 } midpoint location -6.3 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3037 = Id("body") }
+body { id3037 } name "Cell_1"
+move body { id3037 } midpoint location -5.04 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3038 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3039 = Id("body") }
+subtract body { id3038 } from body { id3039 }
+cylinder height 500 radius 0.4572
+#{ id3040 = Id("body") }
+#{ id3041 = Id("body") }
+intersect body { id3039 } { id3040 }
+#{ id3042 = Id("body") }
+#{id3043 = ( id3041 == id3042 ) ? id3040 : id3042}
+brick x 1.26 y 1.26 z 500
+#{ id3044 = Id("body") }
+intersect body { id3043 } { id3044 }
+#{ id3045 = Id("body") }
+body { id3045 } name "Cell_2"
+move body { id3045 } midpoint location -5.04 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3046 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3047 = Id("body") }
+subtract body { id3046 } from body { id3047 }
+body { id3047 } name "Cell_3"
+move body { id3047 } midpoint location -5.04 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3048 = Id("body") }
+body { id3048 } name "Cell_1"
+move body { id3048 } midpoint location -3.7800000000000002 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3049 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3050 = Id("body") }
+subtract body { id3049 } from body { id3050 }
+cylinder height 500 radius 0.4572
+#{ id3051 = Id("body") }
+#{ id3052 = Id("body") }
+intersect body { id3050 } { id3051 }
+#{ id3053 = Id("body") }
+#{id3054 = ( id3052 == id3053 ) ? id3051 : id3053}
+brick x 1.26 y 1.26 z 500
+#{ id3055 = Id("body") }
+intersect body { id3054 } { id3055 }
+#{ id3056 = Id("body") }
+body { id3056 } name "Cell_2"
+move body { id3056 } midpoint location -3.7800000000000002 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3057 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3058 = Id("body") }
+subtract body { id3057 } from body { id3058 }
+body { id3058 } name "Cell_3"
+move body { id3058 } midpoint location -3.7800000000000002 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3059 = Id("body") }
+body { id3059 } name "Cell_1"
+move body { id3059 } midpoint location -2.5199999999999996 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3060 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3061 = Id("body") }
+subtract body { id3060 } from body { id3061 }
+cylinder height 500 radius 0.4572
+#{ id3062 = Id("body") }
+#{ id3063 = Id("body") }
+intersect body { id3061 } { id3062 }
+#{ id3064 = Id("body") }
+#{id3065 = ( id3063 == id3064 ) ? id3062 : id3064}
+brick x 1.26 y 1.26 z 500
+#{ id3066 = Id("body") }
+intersect body { id3065 } { id3066 }
+#{ id3067 = Id("body") }
+body { id3067 } name "Cell_2"
+move body { id3067 } midpoint location -2.5199999999999996 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3068 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3069 = Id("body") }
+subtract body { id3068 } from body { id3069 }
+body { id3069 } name "Cell_3"
+move body { id3069 } midpoint location -2.5199999999999996 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3070 = Id("body") }
+body { id3070 } name "Cell_1"
+move body { id3070 } midpoint location -1.2599999999999998 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3071 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3072 = Id("body") }
+subtract body { id3071 } from body { id3072 }
+cylinder height 500 radius 0.4572
+#{ id3073 = Id("body") }
+#{ id3074 = Id("body") }
+intersect body { id3072 } { id3073 }
+#{ id3075 = Id("body") }
+#{id3076 = ( id3074 == id3075 ) ? id3073 : id3075}
+brick x 1.26 y 1.26 z 500
+#{ id3077 = Id("body") }
+intersect body { id3076 } { id3077 }
+#{ id3078 = Id("body") }
+body { id3078 } name "Cell_2"
+move body { id3078 } midpoint location -1.2599999999999998 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3079 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3080 = Id("body") }
+subtract body { id3079 } from body { id3080 }
+body { id3080 } name "Cell_3"
+move body { id3080 } midpoint location -1.2599999999999998 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3081 = Id("body") }
+body { id3081 } name "Cell_1"
+move body { id3081 } midpoint location 0.0 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3082 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3083 = Id("body") }
+subtract body { id3082 } from body { id3083 }
+cylinder height 500 radius 0.4572
+#{ id3084 = Id("body") }
+#{ id3085 = Id("body") }
+intersect body { id3083 } { id3084 }
+#{ id3086 = Id("body") }
+#{id3087 = ( id3085 == id3086 ) ? id3084 : id3086}
+brick x 1.26 y 1.26 z 500
+#{ id3088 = Id("body") }
+intersect body { id3087 } { id3088 }
+#{ id3089 = Id("body") }
+body { id3089 } name "Cell_2"
+move body { id3089 } midpoint location 0.0 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3090 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3091 = Id("body") }
+subtract body { id3090 } from body { id3091 }
+body { id3091 } name "Cell_3"
+move body { id3091 } midpoint location 0.0 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3092 = Id("body") }
+body { id3092 } name "Cell_1"
+move body { id3092 } midpoint location 1.2599999999999998 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3093 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3094 = Id("body") }
+subtract body { id3093 } from body { id3094 }
+cylinder height 500 radius 0.4572
+#{ id3095 = Id("body") }
+#{ id3096 = Id("body") }
+intersect body { id3094 } { id3095 }
+#{ id3097 = Id("body") }
+#{id3098 = ( id3096 == id3097 ) ? id3095 : id3097}
+brick x 1.26 y 1.26 z 500
+#{ id3099 = Id("body") }
+intersect body { id3098 } { id3099 }
+#{ id3100 = Id("body") }
+body { id3100 } name "Cell_2"
+move body { id3100 } midpoint location 1.2599999999999998 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3101 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3102 = Id("body") }
+subtract body { id3101 } from body { id3102 }
+body { id3102 } name "Cell_3"
+move body { id3102 } midpoint location 1.2599999999999998 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3103 = Id("body") }
+body { id3103 } name "Cell_1"
+move body { id3103 } midpoint location 2.5199999999999996 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3104 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3105 = Id("body") }
+subtract body { id3104 } from body { id3105 }
+cylinder height 500 radius 0.4572
+#{ id3106 = Id("body") }
+#{ id3107 = Id("body") }
+intersect body { id3105 } { id3106 }
+#{ id3108 = Id("body") }
+#{id3109 = ( id3107 == id3108 ) ? id3106 : id3108}
+brick x 1.26 y 1.26 z 500
+#{ id3110 = Id("body") }
+intersect body { id3109 } { id3110 }
+#{ id3111 = Id("body") }
+body { id3111 } name "Cell_2"
+move body { id3111 } midpoint location 2.5199999999999996 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3112 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3113 = Id("body") }
+subtract body { id3112 } from body { id3113 }
+body { id3113 } name "Cell_3"
+move body { id3113 } midpoint location 2.5199999999999996 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3114 = Id("body") }
+body { id3114 } name "Cell_1"
+move body { id3114 } midpoint location 3.7799999999999994 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3115 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3116 = Id("body") }
+subtract body { id3115 } from body { id3116 }
+cylinder height 500 radius 0.4572
+#{ id3117 = Id("body") }
+#{ id3118 = Id("body") }
+intersect body { id3116 } { id3117 }
+#{ id3119 = Id("body") }
+#{id3120 = ( id3118 == id3119 ) ? id3117 : id3119}
+brick x 1.26 y 1.26 z 500
+#{ id3121 = Id("body") }
+intersect body { id3120 } { id3121 }
+#{ id3122 = Id("body") }
+body { id3122 } name "Cell_2"
+move body { id3122 } midpoint location 3.7799999999999994 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3123 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3124 = Id("body") }
+subtract body { id3123 } from body { id3124 }
+body { id3124 } name "Cell_3"
+move body { id3124 } midpoint location 3.7799999999999994 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3125 = Id("body") }
+body { id3125 } name "Cell_1"
+move body { id3125 } midpoint location 5.040000000000001 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3126 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3127 = Id("body") }
+subtract body { id3126 } from body { id3127 }
+cylinder height 500 radius 0.4572
+#{ id3128 = Id("body") }
+#{ id3129 = Id("body") }
+intersect body { id3127 } { id3128 }
+#{ id3130 = Id("body") }
+#{id3131 = ( id3129 == id3130 ) ? id3128 : id3130}
+brick x 1.26 y 1.26 z 500
+#{ id3132 = Id("body") }
+intersect body { id3131 } { id3132 }
+#{ id3133 = Id("body") }
+body { id3133 } name "Cell_2"
+move body { id3133 } midpoint location 5.040000000000001 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3134 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3135 = Id("body") }
+subtract body { id3134 } from body { id3135 }
+body { id3135 } name "Cell_3"
+move body { id3135 } midpoint location 5.040000000000001 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3136 = Id("body") }
+body { id3136 } name "Cell_1"
+move body { id3136 } midpoint location 6.299999999999999 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3137 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3138 = Id("body") }
+subtract body { id3137 } from body { id3138 }
+cylinder height 500 radius 0.4572
+#{ id3139 = Id("body") }
+#{ id3140 = Id("body") }
+intersect body { id3138 } { id3139 }
+#{ id3141 = Id("body") }
+#{id3142 = ( id3140 == id3141 ) ? id3139 : id3141}
+brick x 1.26 y 1.26 z 500
+#{ id3143 = Id("body") }
+intersect body { id3142 } { id3143 }
+#{ id3144 = Id("body") }
+body { id3144 } name "Cell_2"
+move body { id3144 } midpoint location 6.299999999999999 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3145 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3146 = Id("body") }
+subtract body { id3145 } from body { id3146 }
+body { id3146 } name "Cell_3"
+move body { id3146 } midpoint location 6.299999999999999 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3147 = Id("body") }
+body { id3147 } name "Cell_1"
+move body { id3147 } midpoint location 7.5600000000000005 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3148 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3149 = Id("body") }
+subtract body { id3148 } from body { id3149 }
+cylinder height 500 radius 0.4572
+#{ id3150 = Id("body") }
+#{ id3151 = Id("body") }
+intersect body { id3149 } { id3150 }
+#{ id3152 = Id("body") }
+#{id3153 = ( id3151 == id3152 ) ? id3150 : id3152}
+brick x 1.26 y 1.26 z 500
+#{ id3154 = Id("body") }
+intersect body { id3153 } { id3154 }
+#{ id3155 = Id("body") }
+body { id3155 } name "Cell_2"
+move body { id3155 } midpoint location 7.5600000000000005 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3156 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3157 = Id("body") }
+subtract body { id3156 } from body { id3157 }
+body { id3157 } name "Cell_3"
+move body { id3157 } midpoint location 7.5600000000000005 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3158 = Id("body") }
+body { id3158 } name "Cell_1"
+move body { id3158 } midpoint location 8.819999999999999 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3159 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3160 = Id("body") }
+subtract body { id3159 } from body { id3160 }
+cylinder height 500 radius 0.4572
+#{ id3161 = Id("body") }
+#{ id3162 = Id("body") }
+intersect body { id3160 } { id3161 }
+#{ id3163 = Id("body") }
+#{id3164 = ( id3162 == id3163 ) ? id3161 : id3163}
+brick x 1.26 y 1.26 z 500
+#{ id3165 = Id("body") }
+intersect body { id3164 } { id3165 }
+#{ id3166 = Id("body") }
+body { id3166 } name "Cell_2"
+move body { id3166 } midpoint location 8.819999999999999 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3167 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3168 = Id("body") }
+subtract body { id3167 } from body { id3168 }
+body { id3168 } name "Cell_3"
+move body { id3168 } midpoint location 8.819999999999999 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3169 = Id("body") }
+body { id3169 } name "Cell_1"
+move body { id3169 } midpoint location 10.08 10.08 0 except z
+cylinder height 500 radius 0.39218
+#{ id3170 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3171 = Id("body") }
+subtract body { id3170 } from body { id3171 }
+cylinder height 500 radius 0.4572
+#{ id3172 = Id("body") }
+#{ id3173 = Id("body") }
+intersect body { id3171 } { id3172 }
+#{ id3174 = Id("body") }
+#{id3175 = ( id3173 == id3174 ) ? id3172 : id3174}
+brick x 1.26 y 1.26 z 500
+#{ id3176 = Id("body") }
+intersect body { id3175 } { id3176 }
+#{ id3177 = Id("body") }
+body { id3177 } name "Cell_2"
+move body { id3177 } midpoint location 10.08 10.08 0 except z
+cylinder height 500 radius 0.4572
+#{ id3178 = Id("body") }
+brick x 1.26 y 1.26 z 500
+#{ id3179 = Id("body") }
+subtract body { id3178 } from body { id3179 }
+body { id3179 } name "Cell_3"
+move body { id3179 } midpoint location 10.08 10.08 0 except z
diff --git a/test/gold/cylinder.jou b/test/gold/cylinder.jou
new file mode 100644
index 0000000..6cf2377
--- /dev/null
+++ b/test/gold/cylinder.jou
@@ -0,0 +1,9 @@
+set graphics off
+set journal off
+#CELL 3
+cylinder height 500 radius 6.0
+#{ id1 = Id("body") }
+body { id1 } rotate 90.0 about Y
+body { id1 } rotate 45.0 about Z
+body { id1 } name "Cell_3"
+group "mat:void" add body { id1 }
diff --git a/test/gold/pincell.jou b/test/gold/pincell.jou
index c16552b..d836cc1 100644
--- a/test/gold/pincell.jou
+++ b/test/gold/pincell.jou
@@ -4,7 +4,7 @@ set journal off
cylinder height 500 radius 0.39218
#{ id1 = Id("body") }
body { id1 } name "Cell_1"
-group "Material_1" add body { id1 }
+group "mat:UO2 fuel at 2.4% wt enrichme" add body { id1 }
#CELL 2
cylinder height 500 radius 0.39218
#{ id2 = Id("body") }
@@ -18,7 +18,7 @@ intersect body { id3 } { id4 }
#{ id6 = Id("body") }
#{id7 = ( id5 == id6 ) ? id4 : id6}
body { id7 } name "Cell_2"
-group "Material_2" add body { id7 }
+group "mat:Helium for gap" add body { id7 }
#CELL 3
cylinder height 500 radius 0.40005
#{ id8 = Id("body") }
@@ -32,7 +32,7 @@ intersect body { id9 } { id10 }
#{ id12 = Id("body") }
#{id13 = ( id11 == id12 ) ? id10 : id12}
body { id13 } name "Cell_3"
-group "Material_3" add body { id13 }
+group "mat:Zircaloy 4" add body { id13 }
#CELL 4
cylinder height 500 radius 0.4572
#{ id14 = Id("body") }
@@ -68,4 +68,4 @@ intersect body { id27 } { id28 }
#{ id30 = Id("body") }
#{id31 = ( id29 == id30 ) ? id28 : id30}
body { id31 } name "Cell_4"
-group "Material_4" add body { id31 }
+group "mat:Borated water" add body { id31 }
diff --git a/test/gold/pincell_cell1.jou b/test/gold/pincell_cell1.jou
index 37a6924..3dcf1f7 100644
--- a/test/gold/pincell_cell1.jou
+++ b/test/gold/pincell_cell1.jou
@@ -2,4 +2,4 @@
cylinder height 500 radius 0.39218
#{ id1 = Id("body") }
body { id1 } name "Cell_1"
-group "Material_1" add body { id1 }
+group "mat:UO2 fuel at 2.4% wt enrichme" add body { id1 }
diff --git a/test/gold/pincell_cell2.jou b/test/gold/pincell_cell2.jou
index 17bb5d3..d9d38d5 100644
--- a/test/gold/pincell_cell2.jou
+++ b/test/gold/pincell_cell2.jou
@@ -11,4 +11,4 @@ intersect body { id3 } { id4 }
#{ id6 = Id("body") }
#{id7 = ( id5 == id6 ) ? id4 : id6}
body { id7 } name "Cell_2"
-group "Material_2" add body { id7 }
+group "mat:Helium for gap" add body { id7 }
diff --git a/test/gold/pincell_cell3.jou b/test/gold/pincell_cell3.jou
index 6221709..ab0f7ae 100644
--- a/test/gold/pincell_cell3.jou
+++ b/test/gold/pincell_cell3.jou
@@ -11,4 +11,4 @@ intersect body { id9 } { id10 }
#{ id12 = Id("body") }
#{id13 = ( id11 == id12 ) ? id10 : id12}
body { id13 } name "Cell_3"
-group "Material_3" add body { id13 }
+group "mat:Zircaloy 4" add body { id13 }
diff --git a/test/gold/pincell_cell4.jou b/test/gold/pincell_cell4.jou
index 46846f7..5d5be87 100644
--- a/test/gold/pincell_cell4.jou
+++ b/test/gold/pincell_cell4.jou
@@ -33,4 +33,4 @@ intersect body { id27 } { id28 }
#{ id30 = Id("body") }
#{id31 = ( id29 == id30 ) ? id28 : id30}
body { id31 } name "Cell_4"
-group "Material_4" add body { id31 }
+group "mat:Borated water" add body { id31 }
diff --git a/test/gold/x_cone.jou b/test/gold/x_cone.jou
new file mode 100644
index 0000000..c7f0acc
--- /dev/null
+++ b/test/gold/x_cone.jou
@@ -0,0 +1,9 @@
+set graphics off
+set journal off
+#CELL 4
+create frustum height 500 radius 50.0 top 0
+#{ id1 = Id("body") }
+rotate body { id1 } about y angle 90
+body { id1 } move 30.0 3.0 5.0
+body { id1 } name "Cell_4"
+group "mat:void" add body { id1 }
diff --git a/test/gold/x_torus.jou b/test/gold/x_torus.jou
new file mode 100644
index 0000000..ea404e1
--- /dev/null
+++ b/test/gold/x_torus.jou
@@ -0,0 +1,9 @@
+set graphics off
+set journal off
+#CELL 7
+torus major radius 5.0 minor radius 2.0
+#{ id1 = Id("body") }
+rotate body { id1 } about y angle 90
+body { id1 } move 10.0 10.0 10.0
+body { id1 } name "Cell_7"
+group "mat:void" add body { id1 }
diff --git a/test/gold/xcylinder.jou b/test/gold/xcylinder.jou
new file mode 100644
index 0000000..c9cadc9
--- /dev/null
+++ b/test/gold/xcylinder.jou
@@ -0,0 +1,9 @@
+set graphics off
+set journal off
+#CELL 1
+cylinder height 500 radius 1.0
+#{ id1 = Id("body") }
+rotate body { id1 } about y angle 90
+body { id1 } move 0 10.0 5.0
+body { id1 } name "Cell_1"
+group "mat:void" add body { id1 }
diff --git a/test/gold/y_cone.jou b/test/gold/y_cone.jou
new file mode 100644
index 0000000..5f77230
--- /dev/null
+++ b/test/gold/y_cone.jou
@@ -0,0 +1,9 @@
+set graphics off
+set journal off
+#CELL 5
+create frustum height 500 radius 31.622776601683793 top 0
+#{ id1 = Id("body") }
+rotate body { id1 } about x angle 90
+body { id1 } move 40.0 20.0 7.0
+body { id1 } name "Cell_5"
+group "mat:void" add body { id1 }
diff --git a/test/gold/y_torus.jou b/test/gold/y_torus.jou
new file mode 100644
index 0000000..5d1ab93
--- /dev/null
+++ b/test/gold/y_torus.jou
@@ -0,0 +1,9 @@
+set graphics off
+set journal off
+#CELL 8
+torus major radius 5.0 minor radius 2.0
+#{ id1 = Id("body") }
+rotate body { id1 } about x angle 90
+body { id1 } move -10.0 -10.0 -10.0
+body { id1 } name "Cell_8"
+group "mat:void" add body { id1 }
diff --git a/test/gold/ycylinder.jou b/test/gold/ycylinder.jou
new file mode 100644
index 0000000..d554ece
--- /dev/null
+++ b/test/gold/ycylinder.jou
@@ -0,0 +1,9 @@
+set graphics off
+set journal off
+#CELL 2
+cylinder height 500 radius 1.0
+#{ id1 = Id("body") }
+rotate body { id1 } about x angle 90
+body { id1 } move 10.0 0 5.0
+body { id1 } name "Cell_2"
+group "mat:void" add body { id1 }
diff --git a/test/gold/z_cone.jou b/test/gold/z_cone.jou
new file mode 100644
index 0000000..e77b6eb
--- /dev/null
+++ b/test/gold/z_cone.jou
@@ -0,0 +1,8 @@
+set graphics off
+set journal off
+#CELL 6
+create frustum height 500 radius 22.360679774997898 top 0
+#{ id1 = Id("body") }
+body { id1 } move 50.0 10.0 2.0
+body { id1 } name "Cell_6"
+group "mat:void" add body { id1 }
diff --git a/test/gold/z_torus.jou b/test/gold/z_torus.jou
new file mode 100644
index 0000000..1887e7f
--- /dev/null
+++ b/test/gold/z_torus.jou
@@ -0,0 +1,8 @@
+set graphics off
+set journal off
+#CELL 9
+torus major radius 5.0 minor radius 2.0
+#{ id1 = Id("body") }
+body { id1 } move 50.0 50.0 50.0
+body { id1 } name "Cell_9"
+group "mat:void" add body { id1 }
diff --git a/test/lattice-hexagonal.jou b/test/lattice-hexagonal.jou
new file mode 100644
index 0000000..ca412d7
--- /dev/null
+++ b/test/lattice-hexagonal.jou
@@ -0,0 +1,645 @@
+set graphics off
+set journal off
+#CELL 1
+create prism height 2.0 sides 6 radius 0.5
+#{ id1 = Id("body") }
+rotate body { id1 } about z angle 30
+body { id1 } name "cell 4"
+move body { id1 } midpoint location 0.0 1.7320508075688772 0.0
+cylinder height 2.0 radius 0.4
+#{ id2 = Id("body") }
+body { id2 } name "cell 5"
+move body { id2 } midpoint location 0.75 1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id3 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id4 = Id("body") }
+rotate body { id4 } about z angle 30
+subtract body { id3 } from body { id4 }
+body { id4 } name "cell 6"
+move body { id4 } midpoint location 0.75 1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id5 = Id("body") }
+body { id5 } name "cell 5"
+move body { id5 } midpoint location 1.5 0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id6 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id7 = Id("body") }
+rotate body { id7 } about z angle 30
+subtract body { id6 } from body { id7 }
+body { id7 } name "cell 6"
+move body { id7 } midpoint location 1.5 0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id8 = Id("body") }
+body { id8 } name "cell 5"
+move body { id8 } midpoint location 1.5 0.0 0.0
+cylinder height 2.0 radius 0.4
+#{ id9 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id10 = Id("body") }
+rotate body { id10 } about z angle 30
+subtract body { id9 } from body { id10 }
+body { id10 } name "cell 6"
+move body { id10 } midpoint location 1.5 0.0 0.0
+cylinder height 2.0 radius 0.4
+#{ id11 = Id("body") }
+body { id11 } name "cell 5"
+move body { id11 } midpoint location 1.5 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id12 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id13 = Id("body") }
+rotate body { id13 } about z angle 30
+subtract body { id12 } from body { id13 }
+body { id13 } name "cell 6"
+move body { id13 } midpoint location 1.5 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id14 = Id("body") }
+body { id14 } name "cell 5"
+move body { id14 } midpoint location 0.75 -1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id15 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id16 = Id("body") }
+rotate body { id16 } about z angle 30
+subtract body { id15 } from body { id16 }
+body { id16 } name "cell 6"
+move body { id16 } midpoint location 0.75 -1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id17 = Id("body") }
+body { id17 } name "cell 5"
+move body { id17 } midpoint location 0.0 -1.7320508075688772 0.0
+cylinder height 2.0 radius 0.4
+#{ id18 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id19 = Id("body") }
+rotate body { id19 } about z angle 30
+subtract body { id18 } from body { id19 }
+body { id19 } name "cell 6"
+move body { id19 } midpoint location 0.0 -1.7320508075688772 0.0
+cylinder height 2.0 radius 0.4
+#{ id20 = Id("body") }
+body { id20 } name "cell 5"
+move body { id20 } midpoint location -0.75 -1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id21 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id22 = Id("body") }
+rotate body { id22 } about z angle 30
+subtract body { id21 } from body { id22 }
+body { id22 } name "cell 6"
+move body { id22 } midpoint location -0.75 -1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id23 = Id("body") }
+body { id23 } name "cell 5"
+move body { id23 } midpoint location -1.5 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id24 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id25 = Id("body") }
+rotate body { id25 } about z angle 30
+subtract body { id24 } from body { id25 }
+body { id25 } name "cell 6"
+move body { id25 } midpoint location -1.5 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id26 = Id("body") }
+body { id26 } name "cell 5"
+move body { id26 } midpoint location -1.5 0.0 0.0
+cylinder height 2.0 radius 0.4
+#{ id27 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id28 = Id("body") }
+rotate body { id28 } about z angle 30
+subtract body { id27 } from body { id28 }
+body { id28 } name "cell 6"
+move body { id28 } midpoint location -1.5 0.0 0.0
+cylinder height 2.0 radius 0.4
+#{ id29 = Id("body") }
+body { id29 } name "cell 5"
+move body { id29 } midpoint location -1.5 0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id30 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id31 = Id("body") }
+rotate body { id31 } about z angle 30
+subtract body { id30 } from body { id31 }
+body { id31 } name "cell 6"
+move body { id31 } midpoint location -1.5 0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id32 = Id("body") }
+body { id32 } name "cell 5"
+move body { id32 } midpoint location -0.75 1.299038105676658 0.0
+cylinder height 2.0 radius 0.4
+#{ id33 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id34 = Id("body") }
+rotate body { id34 } about z angle 30
+subtract body { id33 } from body { id34 }
+body { id34 } name "cell 6"
+move body { id34 } midpoint location -0.75 1.299038105676658 0.0
+create prism height 2.0 sides 6 radius 0.5
+#{ id35 = Id("body") }
+rotate body { id35 } about z angle 30
+body { id35 } name "cell 4"
+move body { id35 } midpoint location 5.302876193624534e-17 0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id36 = Id("body") }
+body { id36 } name "cell 5"
+move body { id36 } midpoint location 0.7499999999999999 0.4330127018922193 0.0
+cylinder height 2.0 radius 0.4
+#{ id37 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id38 = Id("body") }
+rotate body { id38 } about z angle 30
+subtract body { id37 } from body { id38 }
+body { id38 } name "cell 6"
+move body { id38 } midpoint location 0.7499999999999999 0.4330127018922193 0.0
+cylinder height 2.0 radius 0.4
+#{ id39 = Id("body") }
+body { id39 } name "cell 5"
+move body { id39 } midpoint location 0.75 -0.43301270189221913 0.0
+cylinder height 2.0 radius 0.4
+#{ id40 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id41 = Id("body") }
+rotate body { id41 } about z angle 30
+subtract body { id40 } from body { id41 }
+body { id41 } name "cell 6"
+move body { id41 } midpoint location 0.75 -0.43301270189221913 0.0
+cylinder height 2.0 radius 0.4
+#{ id42 = Id("body") }
+body { id42 } name "cell 5"
+move body { id42 } midpoint location 5.302876193624534e-17 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id43 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id44 = Id("body") }
+rotate body { id44 } about z angle 30
+subtract body { id43 } from body { id44 }
+body { id44 } name "cell 6"
+move body { id44 } midpoint location 5.302876193624534e-17 -0.8660254037844386 0.0
+cylinder height 2.0 radius 0.4
+#{ id45 = Id("body") }
+body { id45 } name "cell 5"
+move body { id45 } midpoint location -0.7499999999999998 -0.4330127018922196 0.0
+cylinder height 2.0 radius 0.4
+#{ id46 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id47 = Id("body") }
+rotate body { id47 } about z angle 30
+subtract body { id46 } from body { id47 }
+body { id47 } name "cell 6"
+move body { id47 } midpoint location -0.7499999999999998 -0.4330127018922196 0.0
+cylinder height 2.0 radius 0.4
+#{ id48 = Id("body") }
+body { id48 } name "cell 5"
+move body { id48 } midpoint location -0.7499999999999999 0.4330127018922194 0.0
+cylinder height 2.0 radius 0.4
+#{ id49 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id50 = Id("body") }
+rotate body { id50 } about z angle 30
+subtract body { id49 } from body { id50 }
+body { id50 } name "cell 6"
+move body { id50 } midpoint location -0.7499999999999999 0.4330127018922194 0.0
+cylinder height 2.0 radius 0.4
+#{ id51 = Id("body") }
+body { id51 } name "cell 5"
+move body { id51 } midpoint location 0.0 0.0 0.0
+cylinder height 2.0 radius 0.4
+#{ id52 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id53 = Id("body") }
+rotate body { id53 } about z angle 30
+subtract body { id52 } from body { id53 }
+body { id53 } name "cell 6"
+move body { id53 } midpoint location 0.0 0.0 0.0
+create prism height 2.0 sides 6 radius 0.5
+#{ id54 = Id("body") }
+rotate body { id54 } about z angle 30
+body { id54 } name "cell 4"
+move body { id54 } midpoint location 0.0 1.7320508075688772 2.0
+cylinder height 2.0 radius 0.4
+#{ id55 = Id("body") }
+body { id55 } name "cell 2"
+move body { id55 } midpoint location 0.75 1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id56 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id57 = Id("body") }
+rotate body { id57 } about z angle 30
+subtract body { id56 } from body { id57 }
+body { id57 } name "cell 3"
+move body { id57 } midpoint location 0.75 1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id58 = Id("body") }
+body { id58 } name "cell 2"
+move body { id58 } midpoint location 1.5 0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id59 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id60 = Id("body") }
+rotate body { id60 } about z angle 30
+subtract body { id59 } from body { id60 }
+body { id60 } name "cell 3"
+move body { id60 } midpoint location 1.5 0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id61 = Id("body") }
+body { id61 } name "cell 2"
+move body { id61 } midpoint location 1.5 0.0 2.0
+cylinder height 2.0 radius 0.4
+#{ id62 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id63 = Id("body") }
+rotate body { id63 } about z angle 30
+subtract body { id62 } from body { id63 }
+body { id63 } name "cell 3"
+move body { id63 } midpoint location 1.5 0.0 2.0
+cylinder height 2.0 radius 0.4
+#{ id64 = Id("body") }
+body { id64 } name "cell 2"
+move body { id64 } midpoint location 1.5 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id65 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id66 = Id("body") }
+rotate body { id66 } about z angle 30
+subtract body { id65 } from body { id66 }
+body { id66 } name "cell 3"
+move body { id66 } midpoint location 1.5 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id67 = Id("body") }
+body { id67 } name "cell 2"
+move body { id67 } midpoint location 0.75 -1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id68 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id69 = Id("body") }
+rotate body { id69 } about z angle 30
+subtract body { id68 } from body { id69 }
+body { id69 } name "cell 3"
+move body { id69 } midpoint location 0.75 -1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id70 = Id("body") }
+body { id70 } name "cell 2"
+move body { id70 } midpoint location 0.0 -1.7320508075688772 2.0
+cylinder height 2.0 radius 0.4
+#{ id71 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id72 = Id("body") }
+rotate body { id72 } about z angle 30
+subtract body { id71 } from body { id72 }
+body { id72 } name "cell 3"
+move body { id72 } midpoint location 0.0 -1.7320508075688772 2.0
+cylinder height 2.0 radius 0.4
+#{ id73 = Id("body") }
+body { id73 } name "cell 2"
+move body { id73 } midpoint location -0.75 -1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id74 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id75 = Id("body") }
+rotate body { id75 } about z angle 30
+subtract body { id74 } from body { id75 }
+body { id75 } name "cell 3"
+move body { id75 } midpoint location -0.75 -1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id76 = Id("body") }
+body { id76 } name "cell 2"
+move body { id76 } midpoint location -1.5 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id77 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id78 = Id("body") }
+rotate body { id78 } about z angle 30
+subtract body { id77 } from body { id78 }
+body { id78 } name "cell 3"
+move body { id78 } midpoint location -1.5 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id79 = Id("body") }
+body { id79 } name "cell 2"
+move body { id79 } midpoint location -1.5 0.0 2.0
+cylinder height 2.0 radius 0.4
+#{ id80 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id81 = Id("body") }
+rotate body { id81 } about z angle 30
+subtract body { id80 } from body { id81 }
+body { id81 } name "cell 3"
+move body { id81 } midpoint location -1.5 0.0 2.0
+cylinder height 2.0 radius 0.4
+#{ id82 = Id("body") }
+body { id82 } name "cell 2"
+move body { id82 } midpoint location -1.5 0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id83 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id84 = Id("body") }
+rotate body { id84 } about z angle 30
+subtract body { id83 } from body { id84 }
+body { id84 } name "cell 3"
+move body { id84 } midpoint location -1.5 0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id85 = Id("body") }
+body { id85 } name "cell 2"
+move body { id85 } midpoint location -0.75 1.299038105676658 2.0
+cylinder height 2.0 radius 0.4
+#{ id86 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id87 = Id("body") }
+rotate body { id87 } about z angle 30
+subtract body { id86 } from body { id87 }
+body { id87 } name "cell 3"
+move body { id87 } midpoint location -0.75 1.299038105676658 2.0
+create prism height 2.0 sides 6 radius 0.5
+#{ id88 = Id("body") }
+rotate body { id88 } about z angle 30
+body { id88 } name "cell 4"
+move body { id88 } midpoint location 5.302876193624534e-17 0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id89 = Id("body") }
+body { id89 } name "cell 2"
+move body { id89 } midpoint location 0.7499999999999999 0.4330127018922193 2.0
+cylinder height 2.0 radius 0.4
+#{ id90 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id91 = Id("body") }
+rotate body { id91 } about z angle 30
+subtract body { id90 } from body { id91 }
+body { id91 } name "cell 3"
+move body { id91 } midpoint location 0.7499999999999999 0.4330127018922193 2.0
+cylinder height 2.0 radius 0.4
+#{ id92 = Id("body") }
+body { id92 } name "cell 2"
+move body { id92 } midpoint location 0.75 -0.43301270189221913 2.0
+cylinder height 2.0 radius 0.4
+#{ id93 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id94 = Id("body") }
+rotate body { id94 } about z angle 30
+subtract body { id93 } from body { id94 }
+body { id94 } name "cell 3"
+move body { id94 } midpoint location 0.75 -0.43301270189221913 2.0
+cylinder height 2.0 radius 0.4
+#{ id95 = Id("body") }
+body { id95 } name "cell 2"
+move body { id95 } midpoint location 5.302876193624534e-17 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id96 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id97 = Id("body") }
+rotate body { id97 } about z angle 30
+subtract body { id96 } from body { id97 }
+body { id97 } name "cell 3"
+move body { id97 } midpoint location 5.302876193624534e-17 -0.8660254037844386 2.0
+cylinder height 2.0 radius 0.4
+#{ id98 = Id("body") }
+body { id98 } name "cell 2"
+move body { id98 } midpoint location -0.7499999999999998 -0.4330127018922196 2.0
+cylinder height 2.0 radius 0.4
+#{ id99 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id100 = Id("body") }
+rotate body { id100 } about z angle 30
+subtract body { id99 } from body { id100 }
+body { id100 } name "cell 3"
+move body { id100 } midpoint location -0.7499999999999998 -0.4330127018922196 2.0
+cylinder height 2.0 radius 0.4
+#{ id101 = Id("body") }
+body { id101 } name "cell 2"
+move body { id101 } midpoint location -0.7499999999999999 0.4330127018922194 2.0
+cylinder height 2.0 radius 0.4
+#{ id102 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id103 = Id("body") }
+rotate body { id103 } about z angle 30
+subtract body { id102 } from body { id103 }
+body { id103 } name "cell 3"
+move body { id103 } midpoint location -0.7499999999999999 0.4330127018922194 2.0
+cylinder height 2.0 radius 0.4
+#{ id104 = Id("body") }
+body { id104 } name "cell 2"
+move body { id104 } midpoint location 0.0 0.0 2.0
+cylinder height 2.0 radius 0.4
+#{ id105 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id106 = Id("body") }
+rotate body { id106 } about z angle 30
+subtract body { id105 } from body { id106 }
+body { id106 } name "cell 3"
+move body { id106 } midpoint location 0.0 0.0 2.0
+create prism height 2.0 sides 6 radius 0.5
+#{ id107 = Id("body") }
+rotate body { id107 } about z angle 30
+body { id107 } name "cell 4"
+move body { id107 } midpoint location 0.0 1.7320508075688772 4.0
+cylinder height 2.0 radius 0.4
+#{ id108 = Id("body") }
+body { id108 } name "cell 5"
+move body { id108 } midpoint location 0.75 1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id109 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id110 = Id("body") }
+rotate body { id110 } about z angle 30
+subtract body { id109 } from body { id110 }
+body { id110 } name "cell 6"
+move body { id110 } midpoint location 0.75 1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id111 = Id("body") }
+body { id111 } name "cell 5"
+move body { id111 } midpoint location 1.5 0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id112 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id113 = Id("body") }
+rotate body { id113 } about z angle 30
+subtract body { id112 } from body { id113 }
+body { id113 } name "cell 6"
+move body { id113 } midpoint location 1.5 0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id114 = Id("body") }
+body { id114 } name "cell 5"
+move body { id114 } midpoint location 1.5 0.0 4.0
+cylinder height 2.0 radius 0.4
+#{ id115 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id116 = Id("body") }
+rotate body { id116 } about z angle 30
+subtract body { id115 } from body { id116 }
+body { id116 } name "cell 6"
+move body { id116 } midpoint location 1.5 0.0 4.0
+cylinder height 2.0 radius 0.4
+#{ id117 = Id("body") }
+body { id117 } name "cell 5"
+move body { id117 } midpoint location 1.5 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id118 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id119 = Id("body") }
+rotate body { id119 } about z angle 30
+subtract body { id118 } from body { id119 }
+body { id119 } name "cell 6"
+move body { id119 } midpoint location 1.5 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id120 = Id("body") }
+body { id120 } name "cell 5"
+move body { id120 } midpoint location 0.75 -1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id121 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id122 = Id("body") }
+rotate body { id122 } about z angle 30
+subtract body { id121 } from body { id122 }
+body { id122 } name "cell 6"
+move body { id122 } midpoint location 0.75 -1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id123 = Id("body") }
+body { id123 } name "cell 5"
+move body { id123 } midpoint location 0.0 -1.7320508075688772 4.0
+cylinder height 2.0 radius 0.4
+#{ id124 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id125 = Id("body") }
+rotate body { id125 } about z angle 30
+subtract body { id124 } from body { id125 }
+body { id125 } name "cell 6"
+move body { id125 } midpoint location 0.0 -1.7320508075688772 4.0
+cylinder height 2.0 radius 0.4
+#{ id126 = Id("body") }
+body { id126 } name "cell 5"
+move body { id126 } midpoint location -0.75 -1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id127 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id128 = Id("body") }
+rotate body { id128 } about z angle 30
+subtract body { id127 } from body { id128 }
+body { id128 } name "cell 6"
+move body { id128 } midpoint location -0.75 -1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id129 = Id("body") }
+body { id129 } name "cell 5"
+move body { id129 } midpoint location -1.5 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id130 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id131 = Id("body") }
+rotate body { id131 } about z angle 30
+subtract body { id130 } from body { id131 }
+body { id131 } name "cell 6"
+move body { id131 } midpoint location -1.5 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id132 = Id("body") }
+body { id132 } name "cell 5"
+move body { id132 } midpoint location -1.5 0.0 4.0
+cylinder height 2.0 radius 0.4
+#{ id133 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id134 = Id("body") }
+rotate body { id134 } about z angle 30
+subtract body { id133 } from body { id134 }
+body { id134 } name "cell 6"
+move body { id134 } midpoint location -1.5 0.0 4.0
+cylinder height 2.0 radius 0.4
+#{ id135 = Id("body") }
+body { id135 } name "cell 5"
+move body { id135 } midpoint location -1.5 0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id136 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id137 = Id("body") }
+rotate body { id137 } about z angle 30
+subtract body { id136 } from body { id137 }
+body { id137 } name "cell 6"
+move body { id137 } midpoint location -1.5 0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id138 = Id("body") }
+body { id138 } name "cell 5"
+move body { id138 } midpoint location -0.75 1.299038105676658 4.0
+cylinder height 2.0 radius 0.4
+#{ id139 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id140 = Id("body") }
+rotate body { id140 } about z angle 30
+subtract body { id139 } from body { id140 }
+body { id140 } name "cell 6"
+move body { id140 } midpoint location -0.75 1.299038105676658 4.0
+create prism height 2.0 sides 6 radius 0.5
+#{ id141 = Id("body") }
+rotate body { id141 } about z angle 30
+body { id141 } name "cell 4"
+move body { id141 } midpoint location 5.302876193624534e-17 0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id142 = Id("body") }
+body { id142 } name "cell 5"
+move body { id142 } midpoint location 0.7499999999999999 0.4330127018922193 4.0
+cylinder height 2.0 radius 0.4
+#{ id143 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id144 = Id("body") }
+rotate body { id144 } about z angle 30
+subtract body { id143 } from body { id144 }
+body { id144 } name "cell 6"
+move body { id144 } midpoint location 0.7499999999999999 0.4330127018922193 4.0
+cylinder height 2.0 radius 0.4
+#{ id145 = Id("body") }
+body { id145 } name "cell 5"
+move body { id145 } midpoint location 0.75 -0.43301270189221913 4.0
+cylinder height 2.0 radius 0.4
+#{ id146 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id147 = Id("body") }
+rotate body { id147 } about z angle 30
+subtract body { id146 } from body { id147 }
+body { id147 } name "cell 6"
+move body { id147 } midpoint location 0.75 -0.43301270189221913 4.0
+cylinder height 2.0 radius 0.4
+#{ id148 = Id("body") }
+body { id148 } name "cell 5"
+move body { id148 } midpoint location 5.302876193624534e-17 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id149 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id150 = Id("body") }
+rotate body { id150 } about z angle 30
+subtract body { id149 } from body { id150 }
+body { id150 } name "cell 6"
+move body { id150 } midpoint location 5.302876193624534e-17 -0.8660254037844386 4.0
+cylinder height 2.0 radius 0.4
+#{ id151 = Id("body") }
+body { id151 } name "cell 5"
+move body { id151 } midpoint location -0.7499999999999998 -0.4330127018922196 4.0
+cylinder height 2.0 radius 0.4
+#{ id152 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id153 = Id("body") }
+rotate body { id153 } about z angle 30
+subtract body { id152 } from body { id153 }
+body { id153 } name "cell 6"
+move body { id153 } midpoint location -0.7499999999999998 -0.4330127018922196 4.0
+cylinder height 2.0 radius 0.4
+#{ id154 = Id("body") }
+body { id154 } name "cell 5"
+move body { id154 } midpoint location -0.7499999999999999 0.4330127018922194 4.0
+cylinder height 2.0 radius 0.4
+#{ id155 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id156 = Id("body") }
+rotate body { id156 } about z angle 30
+subtract body { id155 } from body { id156 }
+body { id156 } name "cell 6"
+move body { id156 } midpoint location -0.7499999999999999 0.4330127018922194 4.0
+cylinder height 2.0 radius 0.4
+#{ id157 = Id("body") }
+body { id157 } name "cell 5"
+move body { id157 } midpoint location 0.0 0.0 4.0
+cylinder height 2.0 radius 0.4
+#{ id158 = Id("body") }
+create prism height 2.0 sides 6 radius 0.5
+#{ id159 = Id("body") }
+rotate body { id159 } about z angle 30
+subtract body { id158 } from body { id159 }
+body { id159 } name "cell 6"
+move body { id159 } midpoint location 0.0 0.0 4.0
diff --git a/test/local_tests.py b/test/local_tests.py
new file mode 100644
index 0000000..cca6246
--- /dev/null
+++ b/test/local_tests.py
@@ -0,0 +1,33 @@
+import functools
+
+import openmc
+
+from openmc_cad_adapter import to_cubit_journal
+
+from .test_utilities import diff_gold_file
+
+
+def openmc_reset(func):
+ @functools.wraps(func)
+ def wrapper(*args, **kwargs):
+ openmc.reset_auto_ids()
+ func(*args, **kwargs)
+ return wrapper
+
+
+@openmc_reset
+def test_xcylinder(request):
+ x_cyl = openmc.XCylinder(r=1.0, y0=10.0, z0=5.0)
+ g = openmc.Geometry([openmc.Cell(region=-x_cyl)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='xcylinder.jou')
+ diff_gold_file('xcylinder.jou')
+
+
+@openmc_reset
+def test_ycylinder(request):
+ y_cyl = openmc.YCylinder(r=1.0, x0=10.0, z0=5.0)
+ g = openmc.Geometry([openmc.Cell(region=-y_cyl)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='ycylinder.jou')
+ diff_gold_file('ycylinder.jou')
+
+
diff --git a/test/materials.xml b/test/materials.xml
new file mode 100644
index 0000000..b4be91c
--- /dev/null
+++ b/test/materials.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/pincell.jou b/test/pincell.jou
new file mode 100644
index 0000000..c16552b
--- /dev/null
+++ b/test/pincell.jou
@@ -0,0 +1,71 @@
+set graphics off
+set journal off
+#CELL 1
+cylinder height 500 radius 0.39218
+#{ id1 = Id("body") }
+body { id1 } name "Cell_1"
+group "Material_1" add body { id1 }
+#CELL 2
+cylinder height 500 radius 0.39218
+#{ id2 = Id("body") }
+brick x 500 y 500 z 500
+#{ id3 = Id("body") }
+subtract body { id2 } from body { id3 }
+cylinder height 500 radius 0.40005
+#{ id4 = Id("body") }
+#{ id5 = Id("body") }
+intersect body { id3 } { id4 }
+#{ id6 = Id("body") }
+#{id7 = ( id5 == id6 ) ? id4 : id6}
+body { id7 } name "Cell_2"
+group "Material_2" add body { id7 }
+#CELL 3
+cylinder height 500 radius 0.40005
+#{ id8 = Id("body") }
+brick x 500 y 500 z 500
+#{ id9 = Id("body") }
+subtract body { id8 } from body { id9 }
+cylinder height 500 radius 0.4572
+#{ id10 = Id("body") }
+#{ id11 = Id("body") }
+intersect body { id9 } { id10 }
+#{ id12 = Id("body") }
+#{id13 = ( id11 == id12 ) ? id10 : id12}
+body { id13 } name "Cell_3"
+group "Material_3" add body { id13 }
+#CELL 4
+cylinder height 500 radius 0.4572
+#{ id14 = Id("body") }
+brick x 500 y 500 z 500
+#{ id15 = Id("body") }
+subtract body { id14 } from body { id15 }
+brick x 500 y 500 z 500
+#{ id16 = Id("body") }
+section body { id16 } with xplane offset -0.62992
+#{ id17 = Id("body") }
+intersect body { id15 } { id16 }
+#{ id18 = Id("body") }
+#{id19 = ( id17 == id18 ) ? id16 : id18}
+brick x 500 y 500 z 500
+#{ id20 = Id("body") }
+section body { id20 } with xplane offset 0.62992 reverse
+#{ id21 = Id("body") }
+intersect body { id19 } { id20 }
+#{ id22 = Id("body") }
+#{id23 = ( id21 == id22 ) ? id20 : id22}
+brick x 500 y 500 z 500
+#{ id24 = Id("body") }
+section body { id24 } with yplane offset -0.62992
+#{ id25 = Id("body") }
+intersect body { id23 } { id24 }
+#{ id26 = Id("body") }
+#{id27 = ( id25 == id26 ) ? id24 : id26}
+brick x 500 y 500 z 500
+#{ id28 = Id("body") }
+section body { id28 } with yplane offset 0.62992 reverse
+#{ id29 = Id("body") }
+intersect body { id27 } { id28 }
+#{ id30 = Id("body") }
+#{id31 = ( id29 == id30 ) ? id28 : id30}
+body { id31 } name "Cell_4"
+group "Material_4" add body { id31 }
diff --git a/test/pincell_cell1.jou b/test/pincell_cell1.jou
new file mode 100644
index 0000000..37a6924
--- /dev/null
+++ b/test/pincell_cell1.jou
@@ -0,0 +1,5 @@
+#CELL 1
+cylinder height 500 radius 0.39218
+#{ id1 = Id("body") }
+body { id1 } name "Cell_1"
+group "Material_1" add body { id1 }
diff --git a/test/pincell_cell2.jou b/test/pincell_cell2.jou
new file mode 100644
index 0000000..17bb5d3
--- /dev/null
+++ b/test/pincell_cell2.jou
@@ -0,0 +1,14 @@
+#CELL 2
+cylinder height 500 radius 0.39218
+#{ id2 = Id("body") }
+brick x 500 y 500 z 500
+#{ id3 = Id("body") }
+subtract body { id2 } from body { id3 }
+cylinder height 500 radius 0.40005
+#{ id4 = Id("body") }
+#{ id5 = Id("body") }
+intersect body { id3 } { id4 }
+#{ id6 = Id("body") }
+#{id7 = ( id5 == id6 ) ? id4 : id6}
+body { id7 } name "Cell_2"
+group "Material_2" add body { id7 }
diff --git a/test/pincell_cell3.jou b/test/pincell_cell3.jou
new file mode 100644
index 0000000..6221709
--- /dev/null
+++ b/test/pincell_cell3.jou
@@ -0,0 +1,14 @@
+#CELL 3
+cylinder height 500 radius 0.40005
+#{ id8 = Id("body") }
+brick x 500 y 500 z 500
+#{ id9 = Id("body") }
+subtract body { id8 } from body { id9 }
+cylinder height 500 radius 0.4572
+#{ id10 = Id("body") }
+#{ id11 = Id("body") }
+intersect body { id9 } { id10 }
+#{ id12 = Id("body") }
+#{id13 = ( id11 == id12 ) ? id10 : id12}
+body { id13 } name "Cell_3"
+group "Material_3" add body { id13 }
diff --git a/test/pincell_cell4.jou b/test/pincell_cell4.jou
new file mode 100644
index 0000000..46846f7
--- /dev/null
+++ b/test/pincell_cell4.jou
@@ -0,0 +1,36 @@
+#CELL 4
+cylinder height 500 radius 0.4572
+#{ id14 = Id("body") }
+brick x 500 y 500 z 500
+#{ id15 = Id("body") }
+subtract body { id14 } from body { id15 }
+brick x 500 y 500 z 500
+#{ id16 = Id("body") }
+section body { id16 } with xplane offset -0.62992
+#{ id17 = Id("body") }
+intersect body { id15 } { id16 }
+#{ id18 = Id("body") }
+#{id19 = ( id17 == id18 ) ? id16 : id18}
+brick x 500 y 500 z 500
+#{ id20 = Id("body") }
+section body { id20 } with xplane offset 0.62992 reverse
+#{ id21 = Id("body") }
+intersect body { id19 } { id20 }
+#{ id22 = Id("body") }
+#{id23 = ( id21 == id22 ) ? id20 : id22}
+brick x 500 y 500 z 500
+#{ id24 = Id("body") }
+section body { id24 } with yplane offset -0.62992
+#{ id25 = Id("body") }
+intersect body { id23 } { id24 }
+#{ id26 = Id("body") }
+#{id27 = ( id25 == id26 ) ? id24 : id26}
+brick x 500 y 500 z 500
+#{ id28 = Id("body") }
+section body { id28 } with yplane offset 0.62992 reverse
+#{ id29 = Id("body") }
+intersect body { id27 } { id28 }
+#{ id30 = Id("body") }
+#{id31 = ( id29 == id30 ) ? id28 : id30}
+body { id31 } name "Cell_4"
+group "Material_4" add body { id31 }
diff --git a/test/plots.xml b/test/plots.xml
new file mode 100644
index 0000000..4732ec0
--- /dev/null
+++ b/test/plots.xml
@@ -0,0 +1,13 @@
+
+
+
+ 400 400
+ 0 0 0
+ 6 6
+
+
+ 400 400
+ 0 0 0
+ 8 8
+
+
diff --git a/test/settings.xml b/test/settings.xml
new file mode 100644
index 0000000..ea5f614
--- /dev/null
+++ b/test/settings.xml
@@ -0,0 +1,23 @@
+
+
+ eigenvalue
+ 10000
+ 20
+ 10
+
+ 0.0005
+ std_dev
+
+
+
+ true
+ 100
+
+
diff --git a/test/tallies.xml b/test/tallies.xml
new file mode 100644
index 0000000..c934516
--- /dev/null
+++ b/test/tallies.xml
@@ -0,0 +1,10 @@
+
+
+
+ 101
+
+
+ 1
+ total
+
+
diff --git a/test/test_examples.py b/test/test_examples.py
index 491b2b2..ed61fa0 100644
--- a/test/test_examples.py
+++ b/test/test_examples.py
@@ -10,33 +10,37 @@
from openmc_cad_adapter import to_cubit_journal
import openmc
+from test import diff_files
+
examples = ["pincell/build_xml.py",
"lattice/hexagonal/build_xml.py",
"assembly/assembly.py"]
+
if 'OPENMC_EXAMPLES_DIR' not in os.environ:
raise EnvironmentError('Variable OPENMC_EXAMPLES_DIR is required')
-OPENMC_EXAMPLES_DIR = Path(os.environ['OPENMC_EXAMPLES_DIR']).resolve()
-
-def diff_files(a, b):
- if not filecmp.cmp(a, b):
- print(''.join(difflib.unified_diff(open(a, 'r').readlines(),
- open(b, 'r').readlines())))
- raise RuntimeError(f'{a} and {b} are different')
+OPENMC_EXAMPLES_DIR = Path(os.environ['OPENMC_EXAMPLES_DIR']).resolve()
def example_name(example):
return '-'.join(example.split('/')[:-1])
+def generate_example_xml(example):
+ if 'assembly' in example:
+ subprocess.Popen(['python', str(OPENMC_EXAMPLES_DIR / example), '--generate']).wait()
+ else:
+ exec(open(OPENMC_EXAMPLES_DIR / example).read())
+
+
@pytest.mark.parametrize("example", examples, ids=example_name)
-def test_examples(example, request):
+def test_examples(example, request, run_in_tmpdir):
openmc.reset_auto_ids()
- exec(open(OPENMC_EXAMPLES_DIR / example).read())
+ generate_example_xml(example)
openmc.reset_auto_ids()
model = openmc.Model.from_xml()
@@ -49,7 +53,7 @@ def test_examples(example, request):
diff_files(output, gold_file)
-def test_cell_by_cell_conversion(request):
+def test_cell_by_cell_conversion(request, run_in_tmpdir):
openmc.reset_auto_ids()
exec(open(OPENMC_EXAMPLES_DIR / "pincell/build_xml.py").read())
@@ -67,12 +71,12 @@ def test_cell_by_cell_conversion(request):
gold_file = request.path.parent / Path('gold') / Path(output)
diff_files(output, gold_file)
+
@pytest.mark.parametrize("example", examples, ids=example_name)
-def test_examples_cli(example, request):
+def test_examples_cli(example, request, run_in_tmpdir):
openmc.reset_auto_ids()
- example_path = OPENMC_EXAMPLES_DIR / example
- exec(open(example_path).read())
+ generate_example_xml(example)
openmc.reset_auto_ids()
world = [500, 500, 500]
@@ -84,4 +88,4 @@ def test_examples_cli(example, request):
raise RuntimeError(f'Command {" ".join(cmd)} failed')
gold_file = request.path.parent / Path('gold') / Path(output)
- diff_files(output, gold_file)
+ diff_files(output, gold_file)
\ No newline at end of file
diff --git a/test/test_local.py b/test/test_local.py
new file mode 100644
index 0000000..22a1e19
--- /dev/null
+++ b/test/test_local.py
@@ -0,0 +1,87 @@
+import openmc
+import pytest
+
+from openmc_cad_adapter import to_cubit_journal
+
+from .test_utilities import diff_gold_file
+from test import run_in_tmpdir
+
+
+# Test the XCylinder and YCylinder classes, the ZCylinder surface is tested
+# extensively in the OpenMC example tests
+
+def test_xcylinder(request, run_in_tmpdir):
+ x_cyl = openmc.XCylinder(r=1.0, y0=10.0, z0=5.0)
+ g = openmc.Geometry([openmc.Cell(region=-x_cyl)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='xcylinder.jou')
+ diff_gold_file('xcylinder.jou')
+
+
+def test_ycylinder(request, run_in_tmpdir):
+ y_cyl = openmc.YCylinder(r=1.0, x0=10.0, z0=5.0)
+ g = openmc.Geometry([openmc.Cell(region=-y_cyl)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='ycylinder.jou')
+ diff_gold_file('ycylinder.jou')
+
+
+def test_cylinder(request, run_in_tmpdir):
+ cyl = openmc.Cylinder(x0=0.0, y0=0.0, z0=0.0, r=6.0, dx=0.7071, dy=0.7071, dz=0.0)
+ g = openmc.Geometry([openmc.Cell(region=-cyl)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='cylinder.jou')
+ diff_gold_file('cylinder.jou')
+
+
+def test_x_cone(request, run_in_tmpdir):
+ x_cone = openmc.XCone(x0=30.0, y0=3.0, z0=5.0, r2=5.0)
+ g = openmc.Geometry([openmc.Cell(region=-x_cone)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='x_cone.jou')
+ diff_gold_file('x_cone.jou')
+
+
+def test_y_cone(request, run_in_tmpdir):
+ y_cone = openmc.YCone(x0=40.0, y0=20.0, z0=7.0, r2=2.0)
+ g = openmc.Geometry([openmc.Cell(region=-y_cone)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='y_cone.jou')
+ diff_gold_file('y_cone.jou')
+
+
+def test_z_cone(request, run_in_tmpdir):
+ z_cone = openmc.ZCone(x0=50.0, y0=10.0, z0=2.0, r2=1.0)
+ g = openmc.Geometry([openmc.Cell(region=-z_cone)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='z_cone.jou')
+ diff_gold_file('z_cone.jou')
+
+
+def test_x_torus(request, run_in_tmpdir):
+ x_torus = openmc.XTorus(x0=10.0, y0=10.0, z0=10.0, a=5.0, b=2.0, c=2.0)
+ g = openmc.Geometry([openmc.Cell(region=-x_torus)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='x_torus.jou')
+ diff_gold_file('x_torus.jou')
+
+
+def test_y_torus(request, run_in_tmpdir):
+ y_torus = openmc.YTorus(x0=-10.0, y0=-10.0, z0=-10.0, a=5.0, b=2.0, c=2.0)
+ g = openmc.Geometry([openmc.Cell(region=-y_torus)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='y_torus.jou')
+ diff_gold_file('y_torus.jou')
+
+
+def test_z_torus(request, run_in_tmpdir):
+ z_torus = openmc.ZTorus(x0=50.0, y0=50.0, z0=50.0, a=5.0, b=2.0, c=2.0)
+ g = openmc.Geometry([openmc.Cell(region=-z_torus)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='z_torus.jou')
+ diff_gold_file('z_torus.jou')
+
+
+def test_torus_diff_radii(request, run_in_tmpdir):
+ with pytest.raises(ValueError):
+ z_torus = openmc.ZTorus(x0=50.0, y0=50.0, z0=50.0, a=5.0, b=2.0, c=3.0)
+ g = openmc.Geometry([openmc.Cell(region=-z_torus)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='a_torus.jou')
+
+
+def test_general_cone(request, run_in_tmpdir):
+ with pytest.raises(NotImplementedError):
+ cone = openmc.Cone(x0=0.0, y0=0.0, z0=0.0, r2=6.0, dx=1, dy=1, dz=1)
+ g = openmc.Geometry([openmc.Cell(region=-cone)])
+ to_cubit_journal(g, world=(500, 500, 500), filename='cone.jou')
\ No newline at end of file
diff --git a/test/test_utilities.py b/test/test_utilities.py
new file mode 100644
index 0000000..9f6ac2e
--- /dev/null
+++ b/test/test_utilities.py
@@ -0,0 +1,26 @@
+import os
+import shutil
+import difflib
+import filecmp
+
+from test import test_config
+
+def diff_files(test_output, gold_file):
+
+ if test_config['update']:
+ os.makedirs(os.path.dirname(gold_file), exist_ok=True)
+ shutil.copy(test_output, gold_file)
+
+ if not filecmp.cmp(test_output, gold_file):
+ print(''.join(difflib.unified_diff(open(test_output, 'r').readlines(),
+ open(gold_file, 'r').readlines())))
+ raise RuntimeError(f'{test_output} and {gold_file} are different')
+
+
+def diff_gold_file(gold_file, request=None):
+ if request is not None:
+ gold_file = request.path.parent / gold_file
+ b = request.path.parent / 'gold' / gold_file.name
+ else:
+ b = os.path.join(os.path.dirname(__file__), 'gold', os.path.basename(gold_file))
+ diff_files(gold_file, b)
\ No newline at end of file
diff --git a/test/xcylinder.jou b/test/xcylinder.jou
new file mode 100644
index 0000000..2f4cf29
--- /dev/null
+++ b/test/xcylinder.jou
@@ -0,0 +1,8 @@
+set graphics off
+set journal off
+#CELL 1
+cylinder height 500 radius 1.0
+#{ id1 = Id("body") }
+rotate body { id1 } about y angle 90
+body { id1 } move 0 10.0 5.0
+body { id1 } name "Cell_1"
diff --git a/test/ycylinder.jou b/test/ycylinder.jou
new file mode 100644
index 0000000..c72b62a
--- /dev/null
+++ b/test/ycylinder.jou
@@ -0,0 +1,8 @@
+set graphics off
+set journal off
+#CELL 2
+cylinder height 500 radius 1.0
+#{ id1 = Id("body") }
+rotate body { id1 } about x angle 90
+body { id1 } move 10.0 0 5.0
+body { id1 } name "Cell_2"