首页/文档/自己造一个工具 py
示例 07 · 进阶

自己造一个工具 py

通过新建工具向导定义参数,再以 Python 脚本或 C++ 插件实现逻辑,即可按内置工具的方式在流程中调用、在界面上呈现。
约 25 分钟· 配套视频 3:09(待发布)

步骤

先确认现有工具不够用

先在工具库里按分类搜一遍:图像源、图像处理、定位、测量、识别、标定对齐、缺陷检测、深度学习、逻辑、控制流、系统、通信、用户自定义。能靠现有节点组合解决的,就别新造——自建工具要自己维护。

右键「新建工具」,填元数据

在 FlowDesigner 工具库树上右键选「新建工具」打开向导:填分类(默认落在「用户自定义」)、名称、类名、作者、图标、版本和说明,然后选实现语言——Python 或 C++。

在向导里定义输入输出参数

逐条添加参数并排序:名称、keyId、类型、默认值、是否允许连接数据流,以及参数是否可见、是否需要密码保护。这份定义决定了工具在流程画布上有哪些引脚、能怎么连线。

实现逻辑(两条路径二选一)

Python:向导生成一个 .py 脚本并登记到 system/PythonToolNav.cfg,由 Python 工具包装器加载;在外部编辑器改完脚本,回工具库面板点「重载修改过的 Python 脚本」即可生效,不用重启程序。C++:向导生成 .h / .cpp / README,把源码加进工具插件工程编译成 DLL,放到 config/DllPlugins.cfg 里 scanDir 指向的目录,重启软件后注册生效——C++ 插件不支持运行期热替换。

在流程里调用,绑到界面上

重启(仅 C++ 路径需要)后在节点列表中定位新工具,拖入流程画布并连接上下游,运行验证输出。之后其输出可按内置工具同样的方式绑定至组件属性并呈现。

批量分发:导入 / 卸载工具包

要给多台机器装同一批自研工具,用随包提供的 ToolPackImport.exe 把「工具模块 + 工具表」整体导入,不需要逐台手工配置;不用的工具包也可以卸载。

两条实现路径

项Python 脚本C++ 插件
向导产物.py 脚本 + system/PythonToolNav.cfg 登记.h / .cpp / README,需自行接入插件工程
生效方式工具库面板点「重载修改过的 Python 脚本」,不用重启编译成 DLL 放到 scanDir,重启软件注册
热更新支持不支持
适合场景算法试验、临时工具、脚本级逻辑性能敏感、需要复用现有 C++ 工具框架
分发随工程或工具包一起给随工具包(含 DLL)导入

自定义工具与内置工具怎么区分

  • 自定义工具默认落在「用户自定义」分类,和内置工具按分类分开。
  • 工具表里有 author 字段,填清楚作者,换人维护时一眼能认出是谁写的。
  • 没有单独的「自研」来源标记,分类 + 作者就是约定俗成的识别方式。

注意

  • 内置工具和自研工具靠「用户自定义」分类与工具表的 author 字段区分,没有单独的工具级来源标记——把作者填清楚,换人维护时一眼能认出。
  • 参数 keyId 命名跟内置工具保持一致风格,以后替换或复用节点会省很多事。
  • 先用 Python 路径把逻辑跑通,确认值得长期用,再考虑移植成 C++ 插件。

接下来

本组内容到此结束。示例按顺序做一遍之后,可以回文档首页挑进阶专题;遇到问题可通过联系页反馈。

← 示例 06 认识界面:VisionQuick
联系与反馈

获取安装包与技术反馈

安装包通过微信二维码获取。安装部署、界面组态与工具配置过程中的问题,可通过同一渠道反馈,无需注册或填写表单。

  • 安装包获取与部署说明
  • 界面组态与工具配置
  • 功能建议与问题反馈
微信扫码,获取安装包与反馈使用问题
微信扫码 · 安装包与问题反馈