星空PLM与CAD集成的二次开发方法原创
金蝶云社区-张健_3
张健_3
11人赞赏了该文章 3,238次浏览 未经作者许可,禁止转载编辑于2021年04月29日 10:07:20
summary-icon摘要由AI智能服务提供

文本讨论了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,客户端插件直接调用(实现一些自定义的集成 功能特性,以及和星空其他模块的集成)

图片.png




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类,利用此类进行数据包的发送:

图片.png

图片.png


其中 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上需要注册和处理回调的命令:

 图片.png


2. 服务端插件开发:

目前服务端没有太多扩展接口,后面补丁会推出CAD服务端组件的扩展接口:

目前可以通过BOS的表单插件接口实现部分后台集成业务的扩展:

CAD导入表单:

 图片.png


CAD检入表单:

图片.png


电子操作表单(包含电子集成的导入和检入):

图片.png


3. webAPI开发:

参考:https://vip.kingdee.com/article/180763?channel_level=kdclub

 




赞 11