文本讨论了PLM标准集成插件的二次开发需求及解决方案。由于插件定制功能不足或不支持特定CAD版本和种类,需进行二次开发。尽管未正式开放二开接口,但插件运行于客户端,二次开发仍可行。文中概述了CAD集成原理及开发类型(客户端、服务端、WebAPI),并提供了客户端插件开发的具体步骤和组件引用,以及服务端和WebAPI开发的简要说明。
需求:
1. 已经安装了PLM的标准集成插件,发现有定制功能无法满足,如何进行二次开发
2. 目前的集成插件不支持使用的CAD版本,如何进行二次开发
3. 目前的集成插件没有支持到对应的CAD种类,如何进行二次开发
解决方案:
虽然目前没有开放正式的二开接口,但是作为主要运行在客户端的集成插件,依然很容易进行一些二次开发。
后续我们也将开放一些标准扩展性好的接口(敬请期待!)
1.PLM CAD集成接口概述:
CAD集成主要原理是CAD插件与 PLM客户端 通过socket通信,实现数据传输和功能集成
CAD集成开发主要包括 客户端插件开发,服务端插件开发,webapi开发
客户端插件开发 :主要指通过调用CAD的API和PLM客户端实现数据传输 , 执行已经定义好的标准业务操作
服务端插件开发 :对PLM客户端的传来的数据进行业务逻辑处理和操作(
包括了界面处理,数据业务校验,数据入库)
WEBAPI开发:开发webapi,客户端插件直接调用(实现一些自定义的集成 功能特性,以及和星空其他模块的集成)
1. 客户端插件开发:
主要在自己开发的add-in中开发对应的 socket 通信和数据包的处理
a) 引用组件
Kingdee.K3.PLM.Common.Cad.dll,
Newtonsoft.Json.dll
位于C:\Program Files (x86)\kingdee\K3Cloud\DeskClient\K3CloudClient
Kingdee.K3.PLM.Integration.Common.dll
可以通过相关工具解析C:\Program Files (x86)\kingdee\K3Cloud\DeskClient\K3CloudClient\Kingdee.PLM.OysterApp.IntegrationSetup.dll的嵌入资源
,也可以通过安装对应的集成插件获取,比如Autocad ZWCAD,安装插件后,组件位于 安装目录\KINGDEE PLM BUNDLE\Contents
b) Socket处理通信:
继承SocketCommonManager类,利用此类进行数据包的发送:
其中 cadCommand 的 类型和 对应功能如下:
CadCommand.ImportDoc 导入文档
CadCommand.FindDoc 查找文档
CadCommand.FindMat 查找物料
CadCommand.CheckOutDoc 检出文档
CadCommand.CheckInDoc 检入文档
CadCommand.BatchEditDoc 批量编辑
CadCommand.SetOwner 设置拥有权
CadCommand.AddMaterial 添加物料
如果是新增的CAD类型,可以借用目前的CadType
一般来说,2D的可以借用 AutoCad的CadType值
一般来说,3D的可以借用 SolidWorks的CadType值
除了主动发送,还要处理回调:
Socket上需要注册和处理回调的命令:
2. 服务端插件开发:
目前服务端没有太多扩展接口,后面补丁会推出CAD服务端组件的扩展接口:
目前可以通过BOS的表单插件接口实现部分后台集成业务的扩展:
CAD导入表单:
CAD检入表单:
电子操作表单(包含电子集成的导入和检入):
3. webAPI开发:
参考:https://vip.kingdee.com/article/180763?channel_level=kdclub
推荐阅读