说明:收录全网最新的团体标准 提供单次或批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202211028056.9 (22)申请日 2022.08.25 (71)申请人 武汉益模科技股份有限公司 地址 430223 湖北省武汉市东湖新 技术开 发区高新二路云计算海外孵化中心1 号楼21层 (72)发明人 易平 朱凌穹 胡建平  (74)专利代理 机构 湖北武汉 永嘉专利代理有限 公司 42102 专利代理师 林文鑫 (51)Int.Cl. G06F 9/50(2006.01) G06F 9/54(2006.01) (54)发明名称 一种基于进程调度的三维CAD模 型并行驱动 方法 (57)摘要 本发明公开了一种基于进程调度的三维CAD 模型并行驱动方法, 包括: 获取并识别装配模型 中的子零件; 创建任务队列Q; 创建任务调度线 程 并初始化子进程; 子进程分析模 型表达式的依赖 关系; 获取模型文件的依赖分析, 并存放至文件 依赖表中; 将 模型文件的依 赖关系拼接形成模型 依赖图并对模 型依赖图进行解析, 计算每个文件 节点的最大深度得到深度信息, 并将深度信息存 储至文件依赖表中; 将文件按照其深度由小到大 存入Q中形成模型深度队列; 在模型深度队列中 依次对文件更新模型并存储; 更新完成后, 添加 主模型文件。 本发明将复杂装配结构分解为多个 单一零件的模 型驱动求解的子任务, 将模型驱动 工作按照资源消耗预测及依赖性关系分配给后 台进程进行驱动。 权利要求书3页 说明书6页 附图4页 CN 115509737 A 2022.12.23 CN 115509737 A 1.一种基于进程调度的三维CAD模型并行驱动方法, 其特 征在于, 包括以下步骤: S1、 获取并识别装配模型中的子零件; S2、 创建一个空的任务队列Q; S3、 创建任务调度线程并初始化子进程; S4、 子进程分析模型表达式的依赖关系; 获取模型文件的依赖分析, 并存放至文件依赖 表中; 将模型文件的依赖关系以预设结构拼接形成模型依赖图并对模型依赖图进行解析, 计算每个文件节点的最大深度得到深度信息, 并将 深度信息存 储至文件依赖表中; S5、 将文件依赖表中的文件按照其深度由小到大存入任务队列Q中形成模型深度队列, 并创建空的全局表达式列表G, 用于存 储已完成模型驱动的各零件的表达式值; S6、 在模型深度队列中依次对文件更新模型并存 储; S7、 更新完成后, 添加主模型文件。 2.根据权利要求1所述的一种基于进程调度的三维CAD模型并行驱动方法, 其特征在 于, S1的具体步骤为: S11、 根据资源文件主模型中可能的子零件进行匹配; S12、 以文本形式读取主模型的二进制文件; S13、 通过文本 匹配的形式检索所有包含关键字的字符位置N1, N2...Nn, 其 中, n为正实 数; S14、 将Nn作为起始位置, 反向查找关键字符, 所述关键字符表示为文件名称描述字符 串的起始位置 Mn, 截取(M, N n+4)得到 完整的文件名称。 3.根据权利要求2所述的一种基于进程调度的三维CAD模型并行驱动方法, 其特征在 于, 还包括以下步骤: 对比并存 储装配结构中的全部文件, 其具体步骤为: S15、 将全部文件完整的文件名称在主模型所在的文件夹中查找对应名称的文件, 并归 集于模型列表H中; S16、 将主模型文件 归集于模型列表H中; S17、 将模型列表H中所有 文件拷贝至临时文件夹中。 4.根据权利要求3所述的一种基于进程调度的三维CAD模型并行驱动方法, 其特征在 于, S3的具体步骤为: S31、 通过W indows API GetSystemI nfo获取当前CPU 核心数目C; S32、 创建(C ‑1)个任务管理线程Th, 在Th中创建一个运行在后台的模型驱动进程; 通过 CreateEvnet在 线程Th中创建一个与后台模 型驱动进程绑定的主进程事件Em和子进程事件 Es; 通过CreateFileMapping创建一个与后台模型驱动进程绑定共享内存块T; 等待Em事件 被子进程触发; 其中, 共享内存块分为两部分, head部分为任务信息关键字, 大小为 1024byte, 存储内容为任务类型与状态; b ody部分为任务参数及返回结果, 大小为10Mb, 存 储模型驱动过程中的参数及返回结果; S33、 后台模型驱动进程启动后, 首先直线初始化工作, 与任务调度主进程中的管理线 程进行同步, 通过OpenEvent与OpenFileMapping打开主进程所创建的主进程事件、 子进程 事件与共享内存块; 之后将共享内存块中head部分填充已完成初始化的关键信息 initialize d, body部分填充true表示为初始化成功, 并通过SetEvent触发主进程事件Em; 子进程进入等待任务状态;权 利 要 求 书 1/3 页 2 CN 115509737 A 2S34、 主进程获取T中head部分内容返回结果为initialized, body中结果为true, 进入 等待从任务队列Q中获取任务的循环中。 5.根据权利要求4所述的一种基于进程调度的三维CAD模型并行驱动方法, 其特征在 于, S4的具体步骤为: S41、 将模型列表H中的模型文件依次加载至任务调度模块的任务队列Q中; S42、 各任务管理线程Th依次从任务队列Q中获取任务对应的模型名称, 并将对应的共 享内存块T中head部分设置为Dependency  analysis, body部分设置为从任务队列Q中获取 的代解析模型文件名称, 并通过SetEvent触发子进程事 件Es; S43、 子进程结束Es事件的阻塞, 从T的head部分获取任务类型, body部分获取文件名称 F, 将装配加载选项设置为仅加载结构, 打开文件F, 获取文件中的所有表达式, 通过表达式 引用关键 字“::”识别出所有外部依赖表达式, 并解析 出依赖文件名称; S44、 子进程将解析出的依赖文件存放至T中body部分内, 并通过SetEvent触发主进程 事件Em; S45、 Th结束Em事件阻塞, 获取到当前模型文件的依赖分析, 并存放至文件依赖表DAM 中; S46、 Th继续从任务队列Q中获取任务, 并重复S43 ‑S45, 直至任务队列为空且所有子进 程的任务均执 行完毕; S47、 将模型文件的依赖关系以预设结构拼接形成模型依赖图并对模型依赖图进行解 析; S48、 计算每 个文件节点的最大深度, 并将文件节点深度信息存 存储至DAM中。 6.根据权利要求5所述的一种基于进程调度的三维CAD模型并行驱动方法, 其特征在 于, S5的具体步骤为: S51、 将DAM中的文件按照其深度由小到大存入任务队列 Q中, 并创建空全局表达式列表 G, 用于存 储已完成模型驱动的各零件的表达式值; S52、 各任务管理线程Th依次从任务队列Q中获取任务对应的模型名称, 并将对应的共 享内存块T中head部分设置为Updata, body部分中存储从任务队列Q中获取的代解析模 型文 件名称以及通过界面与数据库中获取的模型表达式参数E以及全局表达式列表G, 并通过 SetEvent触发子进程事 件Es; 子进程结束Es事件的阻塞, 从T的head部分获取任务类型, body部分获取文件名称F及 表达式参数E, 将装配加载选项设置为仅加载 结构, 打开文件F; 根据参数E依次更新模型表达式, 并在模型更新后保存该文件, 将body部分中返回结果 设置为true, 并添加执行模型驱动后的表达式值Gn; 如果模型驱动过程中存在任何异常状 态, 将body部分的返回结果设置为false并添加错误信息, 通过SetEvent触发主进程事件 Es。 主进程将从T的body部分中获取此次驱动的零件表达式值Gn, 将Gn连同文件名称存储 值G中。 7.根据权利要求5所述的一种基于进程调度的三维CAD模型并行驱动方法, 其特征在 于, 还包括步骤: 装配替换, 其具体为: 将要替换的文件通过关键字REPLACE置于主模型参数表中, 根据预设替换规则进行替权 利 要 求 书 2/3 页 3 CN 115509737 A 3

.PDF文档 专利 一种基于进程调度的三维CAD模型并行驱动方法

文档预览
中文文档 14 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于进程调度的三维CAD模型并行驱动方法 第 1 页 专利 一种基于进程调度的三维CAD模型并行驱动方法 第 2 页 专利 一种基于进程调度的三维CAD模型并行驱动方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 13:08:58上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。