Beispiel #1
0
 def open_file(self, file_name):
     self.cur_filename = file_name
     self.app_manager.set_model(cmds.open_model(file_name))
     self.is_changed = True
     self.create_lens_table()
     cmds.create_live_layout_view(self.app_manager.model, gui_parent=self)
     self.add_ipython_subwindow()
     self.refresh_app_ui()
Beispiel #2
0
def create_from_file(filename, **kwargs):
    opm = cmds.open_model(filename)
    sm = opm.seq_model
    osp = opm.optical_spec
    em = opm.ele_model
    if 'power' in kwargs:
        desired_power = kwargs['power']
        cur_power = osp.parax_data.fod.power
        scale_factor = desired_power / cur_power
        sm.apply_scale_factor(scale_factor)
    em.elements_from_sequence(sm)
    seq = [list(node) for node in sm.path(start=1, stop=-1)]
    ele = [em.gap_dict[g] for g in sm.gaps[1:-1]]
    return seq, ele
Beispiel #3
0
def create_from_file(filename, **kwargs):
    opm = cmds.open_model(filename)
    sm = opm.seq_model
    osp = opm.optical_spec
    if 'power' in kwargs:
        desired_power = kwargs['power']
        cur_power = osp.parax_data.fod.power
        scale_factor = desired_power/cur_power
        sm.apply_scale_factor(scale_factor)
    seq = [list(node) for node in sm.path(start=1, stop=-1)]
    e_nodes = opm.part_tree.nodes_with_tag(tag='#element')
    ele = [node.id for node in e_nodes]
    root = Node('file', id=None, tag='#group', children=e_nodes)
    return seq, ele, root
Beispiel #4
0
def setup(filename):
    root_pth = Path(ro.__file__).resolve().parent
    opm = open_model(root_pth / filename)
    sm = opm.seq_model
    osp = opm.optical_spec
    fld, wvl, foc = osp.lookup_fld_wvl_focus(1)
    vig_pupil = fld.apply_vignetting([0.5, 0.5])
    fod = osp.parax_data.fod
    eprad = fod.enp_radius
    pt1 = np.array([
        eprad * vig_pupil[0], eprad * vig_pupil[1], fod.obj_dist + fod.enp_dist
    ])
    pt0 = osp.obj_coords(fld)
    dir0 = normalize(pt1 - pt0)
    return (sm, pt0, dir0, wvl)
Beispiel #5
0
def create_from_file(filename, **kwargs):
    opm = cmds.open_model(filename)
    sm = opm['seq_model']
    osp = opm['optical_spec']
    em = opm['ele_model']
    pt = opm['part_tree']
    if len(pt.nodes_with_tag(tag='#element')) == 0:
        parttree.elements_from_sequence(em, sm, pt)
    if 'power' in kwargs:
        desired_power = kwargs['power']
        cur_power = osp.parax_data.fod.power
        # scale_factor is linear, power is 1/linear
        #  so use reciprocal of power to compute scale_factor
        scale_factor = cur_power / desired_power
        sm.apply_scale_factor(scale_factor)
    seq = [list(node) for node in sm.path(start=1, stop=-1)]
    seq[-1][2] = None
    sys_nodes = pt.nodes_with_tag(tag='#element#airgap',
                                  not_tag='#object#image')
    eles = [node.id for node in sys_nodes]
    root = Node('file', id=None, tag='#group', children=sys_nodes)
    return seq, eles, root
Beispiel #6
0
 def test_Sasian_Triplet_fail(self):
     root_pth = Path(ro.__file__).resolve().parent
     with self.assertRaises(ImportError):
         open_model(root_pth / 'gui/tests/Sasian Triplet old.roa',
                    mapping={})
Beispiel #7
0
 def test_cell_phone_fail(self):
     warnings.filterwarnings("ignore", category=RuntimeWarning)
     root_pth = Path(ro.__file__).resolve().parent
     with self.assertRaises(ImportError):
         open_model(root_pth / 'gui/tests/cell_phone_camera_old.roa',
                    mapping={})
Beispiel #8
0
 def test_Sasian_Triplet(self):
     root_pth = Path(ro.__file__).resolve().parent
     opm = open_model(root_pth / 'gui/tests/Sasian Triplet old.roa')
     assert isinstance(opm, OpticalModel)
Beispiel #9
0
 def test_cell_phone(self):
     warnings.filterwarnings("ignore", category=RuntimeWarning)
     root_pth = Path(ro.__file__).resolve().parent
     opm = open_model(root_pth / 'gui/tests/cell_phone_camera_old.roa')
     assert isinstance(opm, OpticalModel)