diff options
Diffstat (limited to 'solids/r7081_cut.py')
-rw-r--r-- | solids/r7081_cut.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/solids/r7081_cut.py b/solids/r7081_cut.py new file mode 100644 index 0000000..d38d54b --- /dev/null +++ b/solids/r7081_cut.py @@ -0,0 +1,48 @@ +import os +import sys +import numpy as np + +dir = os.path.split(os.path.realpath(__file__))[0] +sys.path.append(dir + '/..') + +import models +from stl import mesh_from_stl +from geometry import * +from materials import * + +r7081_outer_mesh = mesh_from_stl(models.dir + '/hamamatsu_12inch_outer_cut.stl') +r7081_inner_mesh = mesh_from_stl(models.dir + '/hamamatsu_12inch_inner_cut.stl') + +photocathode_triangles = np.mean(r7081_inner_mesh[:], axis=1)[:,1] > 0 + +inner_color = np.empty(len(r7081_inner_mesh.triangles), np.uint32) +inner_color[photocathode_triangles] = 0xff0000 +inner_color[~photocathode_triangles] = 0x00ff00 + +inner_surface = np.empty(len(r7081_inner_mesh.triangles), np.object) +inner_surface[photocathode_triangles] = black_surface +inner_surface[~photocathode_triangles] = shiny_surface + +r7081_inner_solid = Solid(r7081_inner_mesh, vacuum, glass, inner_surface, color=inner_color) +r7081_outer_solid = Solid(r7081_outer_mesh, glass, lightwater_sno) + +r7081_cut = r7081_inner_solid + r7081_outer_solid + +if __name__ == '__main__': + from view import view + from copy import deepcopy + + r7081_outer_mesh_cutaway = deepcopy(r7081_outer_mesh) + r7081_outer_mesh_cutaway.triangles = \ + r7081_outer_mesh_cutaway.triangles[\ + np.mean(r7081_outer_mesh_cutaway[:], axis=1)[:,0] > 0] + + r7081_outer_solid_cutaway = Solid(r7081_outer_mesh_cutaway, glass, lightwater_sno) + + r7081_cutaway = r7081_inner_solid + r7081_outer_solid_cutaway + + geometry = Geometry() + geometry.add_solid(r7081_cutaway) + geometry.build(bits=8) + + view(geometry, 'r7081_cutaway') |