电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

星空PLM与(2D/3D)CAD集成的二次开发方法(2-1)

来源:金蝶云社区作者:金蝶2024-09-2321

星空PLM与(2D/3D)CAD集成的二次开发方法(2-1)

需求:

目前的集成插件没有支持到的CAD种类或版本,如何进行二次开发


方案:

目前没有开放正式的二开接口,但是可以借用现有已支持的CAD类型的业务模型进行二次开发,达到与PLM对接的目的,后续我们也将开放一些标准扩展性好的接口(敬请期待!)。

参考不同CAD的API接口开发文档选择适当的开发语言和工具,这里以AutoCAD插件开发为例进行说明,选用开发语言是C#。


Step1: 创建CAD插件的二开新项目

https://vip.kingdee.com/article/376001586327215360?productLineId=1&isKnowledge=2

Step2: 创建CAD接口的访问类-2D

Step2: 创建CAD接口的访问类-3D

https://vip.kingdee.com/article/376003123472522496?productLineId=1&isKnowledge=2

Step3: 创建PLM接口通信交互类

https://vip.kingdee.com/article/376003526830616064?productLineId=1&isKnowledge=2

Step4: 安装部署CAD插件

=======================================================


Step2: 创建CAD接口的访问类

这个类的主要职责是通过CAD软件开发的接口,获取CAD图纸上的相关属性数据,如AUTOCAD标题栏中的编码、名称等属性,SolidWorks文件中所配置的属性信息。使用这些属性构建每一个CadDataStruct对象(每个CadDataStruct对象代表一个文档的数据结构),最终将整个文档组中所有文档对象集合整合到 CadDataModel 对象中,并序列化为Json格式,通过Socket与 PLM客户端进行通信(Step3介绍与PLM通信的部分)


    1)、2D类型CAD:


参考CAD的二次开发教程或者API接口文档, 引用CAD的API接口组件(下图示例AutoCAD二开引用组件)。如无需引用组件则跳过这个步骤

08.webp


创建CAD的API接口访问类。

创建 文档标题栏 数据结构获取的方法,2D文档的标题栏视为一份文档信息,对应一个CadDataStruct对象

09.webp



创建 文档明细栏 数据结构获取的方法,2D文档的明细栏中每条明细信息都视为一份文档信息对应一个CadDataStruct对象,所以整个明细栏信息将对应一个CadDataStruct的列表


10.webp



将 标题栏 与 明细栏 进行整合

11.webp


参考代码

public class _2DCadManager
    {
        #region 2D文档数据结构获取
        /// <summary>
        /// 获取标题栏 数据结构--二开实现
        /// </summary>
        /// <param name="cadFilePath"></param>
        /// <returns></returns>
        public CadDataStruct GetCadTitleDataStruct(string cadFilePath)
        {
            ///1、TODO:二开--通过CAD的API接口获取到标题栏各个属性信息
            Dictionary<string, string> titleProper = new Dictionary<string, string>() {
                        //{"PartNO","标题栏编码" },//例如
                        //{ "PartName","标题栏名称"}
                    };

            //2、创建标题栏数据结构实体对象
            CadDataStruct titlDatastruct = new CadDataStruct()
            {
                DicPropertyInfos = titleProper,//复制将标题栏块数据
                CadType = CadType.AutoCAD,//2D类型的CAD进行二开时,建议借用 AutoCAD 的CAD类型,并沿用此CAD的业务判断
                IsRoot = true,//标题栏为根文件数据
                FileLevel = CadFileLevel.Normal,
                FileHash = RegistryHelper.GetFileSHA1(cadFilePath)
            };
            if (!string.IsNullOrWhiteSpace(cadFilePath))
            {
                if (File.Exists(cadFilePath))
                {
                    FileInfo cadFileInfo = new FileInfo(cadFilePath);
                    titlDatastruct.Size = cadFileInfo.Length;
                    titlDatastruct.FileName = cadFileInfo.Name;
                    titlDatastruct.DirectoryPath = cadFileInfo.DirectoryName;
                    titlDatastruct.LastWriteTime = cadFileInfo.LastWriteTime;
                    titlDatastruct.CreationTime = cadFileInfo.CreationTime;
                }
                else
                {
                    titlDatastruct.FileName = cadFilePath;
                }
            }

            return titlDatastruct;
        }

        /// <summary>
        /// 获取明细栏 数据结构-- 二开实现
        /// </summary>
        /// <returns></returns>
        public List<CadDataStruct> GetCadBomDataStruct()
        {
            List<CadDataStruct> bomStructs = new List<CadD

星空PLM与(2D/3D)CAD集成的二次开发方法(2-1)

需求:目前的集成插件没有支持到的CAD种类或版本,如何进行二次开发方案:目前没有开放正式的二开接口,但是可以借用现有已支持的CAD类型的...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信