Software Development Kit(简称缩写SDK),又称软件开发工具包,是辅助用户基于来高科技软硬件产品开发项目,实现功能的文档、范例和工具的集合。来高科技经过十多年自主开发,已经形成了有关三维数据采集以及三维数据分析的强大生态系统。来高科技开发工具包(简称“来高SDK”),允许用户以调用接口的方式使用来高三维视觉系列产品实现项目功能,解决用户难题,降低开发难度,提升开发效率,简化开发流程,是用户完成项目的好助手。
本文将介绍如何通过来高SDK接口控制三维扫描软件打开工程文件和新建工程文件,方便用户快速完成项目开发。示例代码以C++为例,编译器环境visual studio 2022。
打开工程文件的函数原型如下
/
Techlego
bool techlego::h_scan3d_client::open_project(const char* fullpath);
参数fullpath为UTF-8字符串全路径,返回值为是否打开成功。
例如:在“D:\lego\HXData”路径下有工程文件夹名叫“NewProject”

在工程文件中找到“NewProject.vtop”的工程文件

首先将程序与客户端连接

然后打开工程

最后对返回值进行判断,如果为true则工程打开成功,否则需要创建一个新工程;如果创建的新工程创建失败,则退出程序。
创建新工程的函数原型如下
/
Techlego
bool techlego::h_scan3d_client::create_project(const char* path, const char* name);
参数path为UTF-8字符串全路径,工程名name也为UTF-8字符串,返回值为工程创建是否成功。

这里传入的path路径为工程文件夹的存放位置,在这个工程文件夹中存放“.vtop”工程文件,在打开工程的时候,传入的是“.vtop”的路径,而不是“工程文件夹”的位置。
在使用三维扫描仪执行扫描操作之前,需要获取三维扫描仪的状态,判断相机是否开启。这里需要用到get_camera_state成员函数,其原型如下:
bool techlego::h_scan3d_client::get_camera_state();
返回值为相机是否开启,为true则说明相机已经开启。

若相机未开启,则调用set_camera_range函数打开相机组;若相机组已经开启则切换到指定的相机组,其函数原型如下:
bool techlego::h_scan3d_client::set_camera_range(const signed char& index);
传入的参数是一个左值,表示相机组的序号。若相机组只有单组,传入的参数为0,代表第一组相机组;若相机组不止一组,从0开始按需求打开多个相机组。(set_camera_range可以直接传入字面常量0)

若相机打开或者切换(这里使用其打开相机的功能)失败,则执行“exit”函数退出程序。
程序的全部源代码
/
Techlego
#include<techlego_one.h>
int main(int argv, char* args[])
{
//连接到客户端
autoprotocol = techlego::create_binary_protocol(L"localhost", 5252);
autoclient = techlego::h_scan3d_client::make_shared(protocol);
//打开工程,如果打开失败则新建一个工程
bool ret = client->open_project(u8"D:\\lego\\HXData\\NewProject\\NewProject.vtop");
if (!ret)
{
//如果创建失败,则关闭程序
ret= client->create_project(u8"D:\\lego\\HXData", u8"NewProject");
if (!ret)
{
exit(EXIT_FAILURE);
}
}
//检查相机状态
ret= client->get_camera_state();
if (!ret)
{
//打开0号相机组
signed char index = 0;
ret= client->set_camera_range(index);
if (!ret)
{
//如果打开失败
exit(EXIT_FAILURE);
}
}
return 0;
}
新建工程成功后,在三维扫描软件中将显示新建工程。


官网视频号·点击视频·关注我们


经典案例
↙“点击下方”查看更多精彩内容