全国服务热线:

021-51001615

网站首页 > 新闻资讯 > 技术文章
样品展示

PRODUCT

我是标题
色彩分析仪CA-410
分光辐射亮度计CS-2000
CA-2000成像亮度计
CL-200A
T-10A/T-10MA  T-10WsA/T-10WLA
联系我们

CONTACT

电话:86-021-51001615-0

邮箱:info@fulllightcn.com

地址:上海市虹口区松花江路2539号复旦科技园1号楼5楼

新闻资讯

NEWS

光学设计中STP文件导来导去太麻烦? TracePro宏语言一招搞定!

发布时间:2021-04-01

浏览次数:393



众所周知,光学设计的关键步骤即为修改实体模型然后分析光学系统性能。在这个过程中,工程师必不可少的会频繁的修改模型。藉由建模软件灵活快速的建模工具,每一次修改都面临着一系列重复的操作。修改模型-建模软件文件汇出-文件导入光学软件-添加光学属性-光线追迹-分析。即使操作非常熟练的工程师,实现这一系列过程至少需要30秒的时间。极其浪费时间和精力。

为了更大限度的释放TracePro的能力,我们利用TP软件自带的宏语言来帮助我们自动的执行这些重复过程,提高工作效率,解放双手。
TracePro的宏语言即为scheme语言。起源于麻省理工学院。详细介绍非本文重点,后续文章会有详述,敬请期待。

在TracePro中,目前为止有两种方式实现文件交互。

1.利用RayViz插件实现文件交互。

针对Solidworks用户,lambda research公司提供RayViz插件可内嵌于Solidworks中,实现在建模软件中进行光学材料赋予,光源设置等光学特性设置,亦可进行光线追迹,做光线视觉化分析。最终可直接保存为TP原生格式.oml文件,利用TP打开直接进行光线追迹,即可进行更细致的光学分析。

1.png

2.利用中间格式进行文件交互

对于建模软件中的模型,TP目前支持主流的中间格式汇入。诸如stp,igs,sat等,因此建模软件可以导出一个公共格式的文件即可汇入TP中。进而在TP中赋予光学特性进行后续光学设计。优点在于可实现绝大多数软件的文件交互。痛点在于手工进行操作,面临大量重复的步骤,影响使用体验。

为了解决这一痛点,我们藉由TP的scheme语言作为工具进行试验。针对于计算机而言,实现文件交互的方式多种多样,诸如 socket,DDE,COM编程等均可实现。专业的计算机实现方法又需具备基本的计算机编程技术,对我们而言时间精力投入回报率不高。因此为了更简单的实现这一过程,我们利用一种最简单的方法:数据共享。原理也较为简单,通过共享文件地址的方式,实现建模软件与光学软件的文件交互,再利用TP的scheme语言自动赋予光学属性,整体代码写于一个脚本中,即可实现自动化文件交互。

2.png

我们通过一个例子来展示这个过程。

软件:CREO6.0,TracePro21.1。

首先在CREO6.0中建立初始的模型。

如图所示:

3.jpg

导出STP汇入TracePro进行初始仿真。

4.png

设置LED光源为表面光源,光通量1lm。导光件材料为PMMA。进行光线追迹。

5.png

假设我们需要调整导光件的结构来实现不同的光学效果。接下来需要做的就是在CREO里修改模型然后再导入TP。调整后我们先保存导光件STP于指定的文件夹,为了快速操作,绝大多数建模软件支持设置快捷键进行STP保存。我们在CREO里设置了快捷键。

6.jpg

设置好了快捷键,进入第二部分,scheme代码调用。藉由TP自带的insert函数,我们编写了一个脚本,可以自动的从特定文件夹里读取特定的文件,并赋予光学属性,我们把所有代码写到一个新的函数里,在TP中执行这个函数即可实现自动更新模型并追迹。

7.png

发送至TP中,在软件的信息框中会显示这个函数名,表示已经TP已经读取到这段代码,后续的过程只需在macro窗口执行这个函数即可。

8.png

现在我们测试一下,在建模软件中修改一下模型,再执行一下update命令。

9.jpg

10.png

模型已经更新且已经执行完光线追迹。我们分析一下接受面的能量。

11.png

根据照度图可知,导光件发生了改变且光学属性也已经成功赋予,因此模型更新是成功的。在这种方法下,修改模型后只需再点击两个按钮即可实现之前的一系列过程,大大提高的工作效率。而这一切只是调用了TP的自带宏语言中的两个函数。TP目前已有的函数超过1000个,海量功能静待探索。

12.png
13.png
14.png
15.png

TracePro是一个开放包容的软件,众多原生函数可实现绝大多数的软件功能。UI中的功能只是常用功能中的一部分。更多灵活的操作多数藉由代码实现,scheme语言的简练易用更是大大放低了编程的门槛,即使是新用户也可在短时间内实现自己想要的功能。想了解更多,请联系我们。