APP下载

使用WebLink二次开发Creo

2023-08-26胡迪罗辉

电脑知识与技术 2023年19期
关键词:二次开发二维码

胡迪 罗辉

关键词:CREO;WebLink;二次开发;二维码

0 引言

Creo是美国PTC公司推出的一款三维设计软件,已成为国内制造企业最普及的标准软件之一,针对其进行二次开发获得个性化功能也成为国内外研究热点之一[1-5]。Creo 提供了Creo/Toolkit、VB API、J-Link 等丰富的二次开发接口[6-9],其中WebLink使用JavsS? cript语言进行开发,可在Creo软件的内置浏览器中通过HTML网页进行访问和运行,不仅完全免费,而且易于上手[5,10],编程效率高,可与Windchill等PLM服务器进行无缝连接,且部署容易。

本文根据近年来实际工作中取得的开发经验,阐述如何使用WebLink对Creo进行二次开发,降低Creo 二次开发的难度。

1 WebLink 环境设置

1.1 Creo 的设置

要在Creo中使用WebLink功能,首先必须在安装Creo时,选中WebLink功能。之后在Creo中修改以下选项:

2) web_link_file_read和web_link_file_write。将这两个选项设置为yes,表示可以通过WebLink程序进行本地文件操作。

3) web_link_proe_read和web_link_proe_write。将这两个选项设置为yes,表示可以通过WebLink程序从Creo会话中读取数据。

4) web_link_security_autoprompt。將该选项设置为yes,表示当WebLink程序功能超出当前设置的安全访问时,显示“安全”对话框。

5) windows_browser_type。指定Creo内置浏览器的类型,在Creo2.0及之前仅有IE和Firefox内核的浏览器选项,在Creo3.0及以后则将Firefox内核浏览器给更换为Chromium内核浏览器选项。尽管IE浏览器因为安全问题已被微软弃用,但由于其独有的Ac? tiveX控件可以扩展WebLink程序进行一定程度的本地文件操作,也有其一定的便利性,可以根据需要选择Creo内置浏览器的类型。

1.2 IE 浏览器安全设置

完成上述设置后,WebLink程序在Firefox内核或Chromium内核的内置浏览器即可运行。如果选择使用IE浏览器,则仍需要对JavaScript脚本的执行环境进行设置:

1) 设置IE安全选项,将部署WebLink程序的站点网址加入受信任站点。

2) 设置IE安全选项,将“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本”选项设置为启用。

2 WebLink 开发的关键技术

2.1 WebLink 中的类和对象

WebLink采用面向对象的方式进行编码。由于JavaScript在IE、Firefox以及Chromium内核浏览器创建对象的机理和方式各不相同,但创建对象所有的操作和代码编写是一致的,所以首先可以抽象出一个根据不同内核的浏览器创建对象的函数:

由于JavaScript是一种动态类型的脚本语言,因此在编程过程中,子类调用父类的属性或方法无须进行类型转换,且如果父类对象确定也是子类的对象实例后,一样可以直接调用子类的属性或方法。例如pf? cSolid的父类分别为pfcFamilyMember和pfcModel,当系统获得一个pfcModel对象时,如果能够确定也是Ip? fcsolid对象,则该对象可以直接调用pfcFamilyMember 类的属性和方法,无须进行显式类转换。

2.2 WebLink 程序与Creo 的连接

WebLink程序采用网页的形式运行,导致Creo在切换窗口、打开新实例等操作时无法与WebLink程序实时通信,必须在WebLink程序运行过程中,先单向检查当前Creo会话是否与网页打开时一致。每次检查过程可使用如下方式获取Creo的Session对象,进而再进行模型检查等操作:

3 WebLink 程序的调试

3.1 系统设置

作为JavaScript 编写的网页程序,WebLink应该是具备调试功能的,只是由于 Creo 2.0及之前的嵌入式浏览器内核为IE和Firefox而暂时无法使用浏览器的调试工具。如前文所述,Creo 在3.0 版本后嵌入式浏览器内核加入了Chromium,自此当Creo浏览器设置为Chromium内核浏览器就可以使用Chromium内核浏览器进行调试了,相关设置如下:

1) 添加Windows 系统环境变量,设置Chromium 的调试端口,变量名为CEF_DEBUG_PORT,端口填一个不要与别的程序冲突的值,例如可设置为9222。也可以直接在parametric.psf中添加对应的设置,添加如下内容到文件最后:“ENV=CEF_DEBUG_PORT=9222”。

2) 确保本机已经安装了独立的Chrome/Chromium 内核的浏览器,微软默认浏览器Edge等使用了Chro? mium内核的浏览器也可以。

3.2 调试步骤

在Creo的嵌入式浏览器打开要调试的网页。之后在浏览器的地址栏输入“Chrome://inspect/#de? v#iLcOesC”A。LH稍O作ST等”下待面,在会浏显览示器Cr的eo页嵌面入中浏“览Re器m中ote打 T开arg的et页面,如图3所示。

从图3可以看到,外置浏览器中最下方Target下面显示了Creo嵌入浏览器打开的网页列表。点击该网页下面的“inspect”链接,会弹出Chrome内核浏览器的独立调试窗口,之后的操作就和调试普通网页一样,执行调试窗口的源码处打上断点,添加监视等,然后在Creo内置浏览器中执行相关操作就可以了,调试过程和界面如图4所示。

4 工程应用实例

4.1 系统功能分析

二维码(Dimensional Barcode),又称二维条码,是在一维条码的基础上扩展出的一种具有可读性的条码,可靠性高、存储可扩性强、成本低廉、保密性和纠错能力较好[11] 。二维码在纵横两个方向都存有字母、汉字、照片、指纹等各种信息是由一系列黑白点按照一定的规律构成的几何图形,在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读[12]。

随着信息技术在工业领域的全面深入融合,在工程图中插入二维码可以方便机器扫描读取图纸信息,易于将图纸与MES、ERP等系统结合。由于Creo并未直接提供生成并插入二维码的功能,因此在上述研究的基础上,综合设计经验,以在工程图中插入二维码为例,对本文介绍的方法进行验证。添加二维码一般可以考虑以下方式:

1) 在工程图中插入图片等OLE内容。可以在Creo中导入外部程序生成的诸如jpg、png等图片格式的二维码文件。经测试,插入OLE内容暂时不仅未提供Toolkit接口,并且录制宏发现,插入图片的操作也无法通过宏的方式实现,所以该方法只能由设计人员手动添加,无法进行二次开发。

2) 在工程图中插入dxf。可以在Creo中导入外部程序生成的dxf格式的二维码文件。经测试,导入的dxf文件会转换为草绘对象,而且WebLink也提供了对应的函数和方法用于导入dxf文件,所以該方法不仅可以手动操作,也适合于二次开发。但该方法导入dxf后添加了一系列草绘图元,当需要修改时难以确定哪些草绘时导入的dxf文件转换得到,导致难以对二维码相关的草绘删除修改,故该方法仅适用于一次性导入二维码的操作。

3) 生成包含二维码信息的符号。可以在绘图中添加一个符号,在符号中绘制对应的二维码图案,之后插入该符号。该方法手工操作较复杂,主要需要手动绘制对应的二维码符号,但易于插入修改及替换,而WebLink也提供了绘制符号的函数和方法。

考虑系统的茁壮性和易操作修改,采用第三种方法在绘图中添加二维码,根据日常操作习惯,绘图中应该只有一个二维码,故使用WebLink二次开发为工程图添加二维码的基本流程主要包含以下几个步骤:

1) 遍历工程图所有符号,删除之前添加的二维码符号定义和所有实例;

2) 对输入进行转码,生成二维码信息;

3) 创建新的符号定义,根据二维码信息对该符号定义进行修改,生成包含二维码信息的符号定义;

4) 通过鼠标点选的方式将新的二维码符号实例摆放到正确的位置。

4.2 代码实现

4.2.1 系统初始化

在具体操作过程中,首先保证浏览器所在Creo窗口中打开的模型为绘图类型才能确保进行下一步操作。判断当前窗口模型类型为绘图关键代码如下:

4.2.2 删除符号定义和所有实例

在WebLink义使用pfcDetailItem类进行描述,其详细信息由pfcDetailSymbolDefIn? sDtrruawctiinogns的类Li描stD述eta。ilI可tem通s方过法绘访图问对绘象图pf包c?含的所有符号pfcDetailItem 对象。由于在Creo中符号定义的名称是唯一的,所以可以遍历绘图包含的符号通过名称进行比对后确定需要删除的符号定义。删除符号定义可由pfcDetailItem类的Delete方法完成,故删除对应的符号定义关键代码如下:

同时,由于WebLink程序直接删除符号定义后,符号定义生成的对象实例也同时一并删除,故无须进行删除符号实例的操作。

4.2.3 生成二维码符号定义

将字符串转为二维码是一项成熟的技术,针对JavaScript语言,Github.com上已有人提供了库。本文直接调用其接口函数,输入对应的文字信息即可获得要生成的二维码的二维矩阵数据:

生成新的符号定义后,根据二维码的矩阵数据依次在符号定义中绘画对应的点即可完成二维码的绘制。点的绘制可以设定为一个线长1 mm、线宽1 mm 的线段,可先通过pfcLineDescriptor类生成对应的线段对象,再由pfcDetailItem类的CreateDetailItem方法将其插入到符号定义中。最后依次遍历二维码矩阵数据,即可完成在符号中的二维码绘制工作,关键代码如下:

4.2.4 插入符号实例

插入符号的位置可以采用鼠标点击的方式获取。

首先,通过WebLink 中的Session 对象的UIGetNext? MousePick方法获得鼠标点击的坐标点。插入符号实例依然是通过pfcDetailItem类的CreateDetailItem方法实现,但是在设定好符号实例pfcDetailSymbolInstIn? structions 类的Attachment 为自由,AttachmentPoint 为鼠标点选的位置即可:

最终开发的系统如图5所示。用户在左侧网页中输入需要转换成二维码的文字,点击“左键单击绘图位置插入二维码”按钮,之后根据提示在工程图中点击鼠标左键选择需要插入二维码的位置即可完成工程图二维码的插入。

5 结束语

本文探讨了使用WebLink二次开发Creo的方法和关键技术,由于其具有易于编程和升级维护方便等特点,降低了开发难度,提高了开发效率,有助于相关领域的推广应用。

猜你喜欢

二次开发二维码
二维码迷宫
二维码
浅谈基于Revit平台的二次开发
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
让严肃的二维码呆萌起来
二维码让政务公开更直接
二维码,别想一扫了之
Micaps3.2 版本二次开发入门浅析
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用