zemax opticstudio com api(zos-api)的python接口
PyZOS的Python项目详细描述
……图片::https://raw.githubusercontent.com/pyzos/pyzos/master/doc/images/pyzos_banner_small.png
python zemax opticstudio-api
----
目标
但是,直接通过pywin32在python中使用zos com api是不利于实现的,而且感觉很不符合语法,原因如下:
*zos对象的大量*property*属性是不可内省的,
*一些接口对象在使用前需要进行适当的类型转换,而且,
*接口相当复杂(虽然灵活),需要大量的编码。
*ZOSAPI只在独立(无头)模式下工作。这样可以防止用户与
正在运行的opticstudio用户界面交互,并立即观察对设计所做的更改。
解决方案
~使用正在运行的opticstudio用户界面启用交互功能(`see demo<;https://www.youtube.com/watch?v=ot5crjmxc_w>;`` _u)
2.更好地反省对象的属性和方法
3。通过< BR/> *减少复杂度,提供一组自定义的助手方法,该方法在单个或最少可能的步骤(BR/> *)中完成共同任务,提供一个框架,以方便地添加与现有的ZOS对象无缝匹配的自定义方法
*管理适当类型的ZOS对象的铸造,以便我们能够集中精力解决问题。光学设计问题
4.在不以任何方式限制或遮挡ZOS-API的情况下执行1-3
5。尽可能用最少的编码来做1-3(也就是说,通过很少的操作来做很多事情)
使用pyzos库对zos-api的这些*增强*记录在本(正在进行的工作)
“jupyter笔记本”lt;http://nbviewer.jupyter.org/github/pyzos/pyzos/blob/master/examples/jupyter_notebooks/00撸增强撸u-api撸interface.ipynb>;`。
示例用法代码::python
1.0)
wave=zos.const.wavelengthpreset_0p587
sdata.pwavelength.selectwavelengthpreset(wave)
…
osys.zpushlens(1)将镜头从zos com服务器复制到可视ui应用程序
…
osys.zgetrefresh();将更改从可视ui应用程序复制到zos com服务器
…
在jupyter笔记本中使用的pyzos'here<;https://github.com/pyzos/pyzos/tree/master/examples/jupyter_notebooks>;` ` `.
install pyzos from pypi
“从pypi安装pyzos”
代码::python
有兴趣参与吗?
使用库并提供反馈、建议和报告错误
2。添加您为项目编写的其他人可以使用的自定义函数
3。帮助编写单元测试,添加测试用例
4。让别人知道pyzos(如果你觉得有用的话)
dependencies
''''''''''''''''''
核心pyzos库只依赖于标准的python库。
1.python 3.3及以上版本/python 2.7;32/64位版本
2。` Pywin32<;http://sourceforge.net/projects/Pywin32/>;`
所有依赖项都可以使用Anaconda Python发行版安装。
//opensource.org/licenses/mit>;`。
python zemax opticstudio-api
----
目标
但是,直接通过pywin32在python中使用zos com api是不利于实现的,而且感觉很不符合语法,原因如下:
*zos对象的大量*property*属性是不可内省的,
*一些接口对象在使用前需要进行适当的类型转换,而且,
*接口相当复杂(虽然灵活),需要大量的编码。
*ZOSAPI只在独立(无头)模式下工作。这样可以防止用户与
正在运行的opticstudio用户界面交互,并立即观察对设计所做的更改。
解决方案
~使用正在运行的opticstudio用户界面启用交互功能(`see demo<;https://www.youtube.com/watch?v=ot5crjmxc_w>;`` _u)
2.更好地反省对象的属性和方法
3。通过< BR/> *减少复杂度,提供一组自定义的助手方法,该方法在单个或最少可能的步骤(BR/> *)中完成共同任务,提供一个框架,以方便地添加与现有的ZOS对象无缝匹配的自定义方法
*管理适当类型的ZOS对象的铸造,以便我们能够集中精力解决问题。光学设计问题
4.在不以任何方式限制或遮挡ZOS-API的情况下执行1-3
5。尽可能用最少的编码来做1-3(也就是说,通过很少的操作来做很多事情)
使用pyzos库对zos-api的这些*增强*记录在本(正在进行的工作)
“jupyter笔记本”lt;http://nbviewer.jupyter.org/github/pyzos/pyzos/blob/master/examples/jupyter_notebooks/00撸增强撸u-api撸interface.ipynb>;`。
示例用法代码::python
1.0)
wave=zos.const.wavelengthpreset_0p587
sdata.pwavelength.selectwavelengthpreset(wave)
…
osys.zpushlens(1)将镜头从zos com服务器复制到可视ui应用程序
…
osys.zgetrefresh();将更改从可视ui应用程序复制到zos com服务器
…
在jupyter笔记本中使用的pyzos'here<;https://github.com/pyzos/pyzos/tree/master/examples/jupyter_notebooks>;` ` `.
install pyzos from pypi
“从pypi安装pyzos”
代码::python
有兴趣参与吗?
使用库并提供反馈、建议和报告错误
2。添加您为项目编写的其他人可以使用的自定义函数
3。帮助编写单元测试,添加测试用例
4。让别人知道pyzos(如果你觉得有用的话)
dependencies
''''''''''''''''''
核心pyzos库只依赖于标准的python库。
1.python 3.3及以上版本/python 2.7;32/64位版本
2。` Pywin32<;http://sourceforge.net/projects/Pywin32/>;`
所有依赖项都可以使用Anaconda Python发行版安装。
//opensource.org/licenses/mit>;`。