背景
PolyWorks兼容多种扫描仪,但兼容的都是国外设备,国内自研的设备想要配合PolyWorks使用,只能通过PolyWorks提供的SDK进行自行开发,PolyWorks SDK的参考说明可以在PolyWorks->Help->Reference Guides中找到。本人的项目需求是将自研的扫描仪设备控制软件制作成插件,实现从PolyWorks中直接控制设备并将扫描的点云数据实时传回到PolyWorks中进行显示。
PolyWorks SDK说明
PolyWorks SDK提供有两种开发方式,一种是开发客户端应用的方式,PolyWorks作为服务器,通过API接口与PolyWorks进行交互,可参考官方示例demo目录中applications文件夹;另一种是开发插件的方式,用户按照PolyWorks SDK提供的框架示例开发一款插件,PolyWorks成功注册该插件后即可在软件中使用插件提供的功能或者调用PolyWorks的功能,比如控制扫描仪、获取点云数据、利用点云数据进行拟合计算等。
PolyWorks SDK提供的demo目录如下图所示,其中插件的demo在plugins文件中。
C:\Program Files\InnovMetric\PolyWorks MS 2021\goodies\PolyWorksSDK\samples
插件支持的开发语言
- Visual Basic .NET
- C++
- C#
不同版本的SDK中有些内容不太一样,比如模块名称、支持的IDE版本之类的,具体开发时请根据自己使用的版本及相应的参考说明进行开发。
官方示例插件说明
PolyWorks Inspect中自带一个官方的插件示例,具体路径如下
插件打开后界面如下,在“线扫描文件”输入框中导入一个.psl文件后,可以模拟运行扫描过程。
PolyWorks插件演示
其中扫描类型可选择类型有
- 曲面扫描
- 曲面和边界扫描
- 锐边扫描
其中“曲面扫描”指常规的表面扫描;“曲面和边界扫描”指既扫描表面,也同时计算出边界点;“锐边扫描”只计算锐边点,不扫描表面。(边界点和锐边点时有区别的)。
此外在勾选“实时质量网格化”功能时,数据类型可选类型有 - 三角化模型
- 基于网格的点云
“三角化模型”是实时将点云数据进行三角化封装,“基于网格的点云”是将点云数据按照设定的网格进行重新计算,输出显示的一般是非原始的点云数据了。
以上是PolyWorks插件的一个基本介绍,具体的插件功能可自行运行查看,本文中有不对之处还请各位大神批评指正。