更新日志#

该项目的所有值得注意的更改将记录在此文件中。

该格式基于Keep a Changelog,这个项目遵守Semantic Versioning,除了一个例外:仅简化访问ZOS-API某些部分的小功能也可以在补丁版本中添加。

[未发行]#

新增#

修复#

更新#

弃用#

移除#

[2.0.0] - 2025-03-17#

新增#

  • zospy.zpcore.ZOS.get_instance获得现有ZOS实例,如果存在(#107)。

  • Opticstudio 2025 R1的测试参考数据。现在,这是测试的参考版本(#127)。

修复#

  • zospy.analyses.base.Analysis现在提出一个AttributeError试图设置OpticStudio分析对象(#106)中不存在的属性时。

  • 在数据网格中获得正确的最小x和y值zospy.analyses.extendedscene.geometric_image_analysis (#103).

  • 将光束和光纤类型设置为外部文件zospy.analyses.physicaloptics.physical_optics_propagation (#114)

更新#

  • zospy.zpcore.ZOS现在使用单身模式来确保一个实例ZOS创建。如果创建了第二个实例,则返回现有实例并提高警告(#107)

  • zospy.zpcore.OpticStudioSystem._ZOS被更名为ZOS,使其成为公共属性(#107)

  • zospy.analyses.new_analysis: settings_first现在是一个仅关键字的参数。

  • zospy.api.apisupport.load_zosapi_nethelper: preload现在是一个仅关键字的参数。

  • zospy.api.apisupport.load_zosapi: preload现在是一个仅关键字的参数。

  • zospy.functions.lde.find_surface_by_comment: case_sensitive现在是一个仅关键字的参数。

  • zospy.functions.nce.find_object_by_comment: case_sensitive现在是一个仅关键字的参数。

  • zospy.utils.flatten_dict: keep_unflattened现在是一个仅关键字的参数。

  • zospy.zpcore.OpticStudioSystem.load: saveifneeded现在是一个仅关键字的参数。

  • zospy.zpcore.OpticStudioSystem.new: saveifneeded现在是一个仅关键字的参数。

  • zospy.zpcore.OpticStudioSystem.close: saveifneeded现在是一个仅关键字的参数。

  • zospy.zpcore.ZOS.__init__:所有参数现在都是仅关键字的参数。

  • 更换zospy.utils.zputils.rsetattrzospy.utils.zputils.attrsetter,基于operator.attrgetter.

  • zospy.analyses现在使用一个新的,面向对象的接口进行OpticStudio分析(#118)。现在已弃用了旧接口,但仍在zospy.analyses.old. 参见讨论#87并发行说明以获取更多信息。

  • zospy.utils.zputils.unpack_datagrid现在返回带有列和行标签的数据杂称,以指示单元格的中心,而是 细胞的底部左下角(#128)。

弃用#

  • zospy.analyses.old在不弃用以对象为导向的新接口zospy.analyses (#118).

移除#

  • zospy.zpcore.ZOS.wakeup不再需要,因为ZOS-API现在已加载zospy.zpcore.ZOS.__init__ (#107)

  • zospy.zpcore.ZOS.connect_as_extension, zospy.zpcore.ZOS.create_new_applicationzospy.zpcore.ZOS.connect_as_standalone被移除以支持zospy.zpcore.ZOS.connect (#107)

  • zospy.functions.nce.get_object_data之所以被移除,是因为它实现了现在自动完成的转换zospy.api.codecs.OpticStudioInterfaceEncoder (#107)

  • 移除zospy.utils.zputils.rgetattr因为operator.attrgetter做同样的事情。

[1.3.1] - 2025-01-16#

修复#

  • 物理光学分析开始表面被硬编码为1(#111,#112)

[1.3.0] - 2024-10-30#

新增#

  • 波前分析:zospy.analyses.wavefront.wavefront_map (!61)

  • 扩展场景分析:zospy.analyses.extendedscene.geometric_image_analysis (!61)

  • 物理光学分析:zospy.analyses.physicaloptics.physical_optics_propagation (!61)

    • 为这些分析生成特定参数词典的助手函数:zospy.analyses.physicaloptics.pop_create_beam_parameter_dict, zospy.analyses.physicaloptics.pop_create_fiber_parameter_dict

  • 在顺序模式下更改表面的光圈类型的便利函数:zospy.functions.lde.surface_change_aperturetype

  • 实验新界面用于分析zospy.analyses.new (#78, #15)

  • 添加对系统查看器出口的支持zospy.analyses.systemviewers.viewer_3dzospy.analyses.systemviewers.cross_section (#80).

更新#

  • 更新zospy.functions.lde.surface_change_type还支持需要加载文件规范的表面。 (!61)

  • 在这两个中添加了对字典参数的支持zospy.testszospy.scripts.generate_test_reference_data. (!61)

[1.2.1] - 2024-03-11#

修复#

  • 导入(#66,#69)上的不受支持的语言环境设置

  • Zernike标准系数分析分析日期作为德国语言环境下的浮子(#70)

更新#

  • 风俗__dir__方法zospy.analyses.base.Analysis. dir现在显示包装器成员和Opticstudio分析成员(!56)

[1.2.0] - 2024-01-19#

新增#

  • 新的,统一的连接方法ZOS.connect。此方法替换了现有的连接方法 ZOS.connect_as_extension, ZOS.create_new_applicationZOS.connect_as_standalone. 连接模式作为参数传递,并且始终返回主系统(!47)

  • 可以使用OptipStudio安装目录使用opticstudio_directory 参数ZOS班级。如果安装了多个OpticStudio版本,这特别有用 在同一系统上,您想使用特定版本(!47)

    • **注意:**当使用此参数时ZOSAPI_NetHelper未加载,ZOS.ZOSAPI_NetHelper 仍然不设置。

  • zospy.api.codecs对于ZOS-API类型和Python类型之间的定制转换(!48)

  • zospy.api.codecs.OpticStudioInterfaceEncoder用于自动降低某些常见通用接口 执行他们的实施(例如__implementation__不再需要)(!48)

  • MTF分析:huygens_mtf (#55)

  • pickup_chief_ray求解器(!38)

  • ZOS.disconnect与Opticstudio断开连接(!47)

  • 支持Opticstudio 2024 R1(!51)

  • 支持Python 3.12(!54)

修复#

  • OpticStudioSystem.load路径不正确或相对时会静静地失败(#34)

  • 在延长模式下连接后节省失败,因为OpticStudioSystem._OpenFile未设置。 在延长模式下连接时,_OpenFile现在设置为通往打开系统的路径以防止此(#41)

更新#

  • 将许可证更改为MIT(#57,#58)-2023-12-22

  • 移除azospy.zpcore.ZOS对象现在自动调用ZOS.disconnect (!47)

  • 在扩展模式下连接时,不再需要使用 OpticStudioSystem.save_as在可以保存之前OpticStudioSystem.save (!47, #41)

  • zospy.analyses.base.Analysis现在使用zospy.api.codecs.OpticStudioInterfaceEncoder降低 分析将其实施界面(!48)

  • 接受相对路径并检查路径是否存在OpticStudioSystem.loadOpticStudioSystem.save_as (!50)

  • 使用zospy.constants.process_constant解析from_column争论zospy.solvers.surface_pickup. 现在可以将此列指定为来自zospy.constants或字符串(!53)

弃用#

  • ZOS.connect_as_extension, ZOS.create_new_applicationZOS.connect_as_standalone. 他们被取代了ZOS.connect (!47)

  • zospy.functions.nce.get_object_data被弃用是因为它的任务现在由 zospy.api.codecs.OpticStudioInterfaceEncoder (!48)

移除#

[1.1.2] - 2023-12-13#

修复#

  • 反向datagrids的行索引zospy.utils.zputils.unpack_datagrid (!42)

[1.1.1] - 2023-09-25#

新增#

  • ZOS.connect_as_standalone作为别名ZOS.create_new_application (#26)

  • 新参数return_primary_system为了ZOS.connect_as_extensionZOS.create_new_application。如果此参数为,这些方法返回主要光学系统True。如果许可证对ZOS-API无效,则ConnectionRefusedError被提升(#26)

  • zospy.functions.nce.get_object_data获取NCE对象的数据(#30)

修复#

  • 当未设置文本文件编码时,分析结果错误解析Unicode通过实施zospy.zpcore.ZOS.get_txt_file_encoding (!36)

  • 不允许用户直接更改lensupdatemode的错误OpticStudioSystem.LensUpdateMode (#40)

更新#

  • 更新了如何和何时在zospy.api.config确定以更清楚(!39)

  • 更新错误消息zospy.ZOS解释为什么只有一个实例ZOS允许(#24)

  • 加载ZOS-API DLLZOS.__init__ (#26)

弃用#

  • 单独的电话ZOS.wakeup现在是多余的。此方法将在以后的版本中移除(#26)

[1.1.0] - 2023-07-03#

新增#

  • 极化分析:polarization_pupil_map, transmission (#14)

  • 系统查看器分析:cross_section, viewer_3d, shaded_model, nsc_3d_layout, nsc_shaded_model (!20)

  • 所有示例的文档(!25)

  • version属性ZOS班级(!21)

  • zospy.utils.pyutils.atox, zospy.utils.pyutils.xtoa_config.THOUSANDS_SEPARATOR对于环境感知的字符串和数字之间的转换(!26)

  • .zenodo.json对Zenodo有更多控制权(!32)

  • zospy.functions.lde.find_surface_by_commentzospy.functions.nce.find_object_by_comment根据其评论找到LDE表面 / NCE对象(#18)

修复#

  • 在设置MTF类型时,错误的ZOS-API用于OpticStudio <21.2新增zospy.analyses.mtf._correct_fft_through_focus_mtftype_api_bug (!21)

  • 不正确的实施zospy.zpcore.ZOS.get_system (!30)

  • 在Docstrings中的错误示例zospy.functions.lde.surface_change_typezospy.functions.nce.object_change_type (!31)

更新#

  • 将一些示例转换为Jupyter笔记本

  • 重命名_config.DECIMAL_config.DECIMAL_POINT (!26)

  • 使用.zmx文件而不是.zos单位测试参考系统文件的文件(!23)

  • 更新的兼容性信息在readme.md(!29)中

移除#

  • 空方法zospy.zpcore.ZOS.licence_check (!30)