[发明专利]一种基于CAD系统的表达式的批量删除方法及系统有效
申请号: | 201910733308.X | 申请日: | 2019-08-09 |
公开(公告)号: | CN110502812B | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | 刘建钊;刘元珍 | 申请(专利权)人: | 盐城工学院 |
主分类号: | G06F30/00 | 分类号: | G06F30/00 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 许方 |
地址: | 224003 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cad 系统 表达式 批量 删除 方法 | ||
1.一种基于CAD系统的表达式的批量删除系统,其特征在于:该系统包括表达式解析模块、有向图构建模块、有向图拓扑排序模块、用户接口模块、表达式删除模块;
所述表达式解析模块,用于对三维模型中需要删除的N个表达式进行解析,获取每个表达式的名称和值字符串,并传递给有向图构建模块;
所述有向图构建模块,用于解析表达式之间的依赖关系,根据表达式之间的依赖关系构建有向图;有向图中的节点表示表达式,有向图中无权的有向弧表示表达式之间的依赖关系;用于采用十字链表存储有向图中的节点及节点间的依赖关系,并传递至有向图拓扑排序模块;所述解析表达式之间的依赖关系,执行操作如下:
对每一个表达式Ei,遍历其他所有表达式的值字符串,查找其中是否包含表达式Ei的名称;
若表达式Ej的值字符串中包含表达式Ei的名称,记录表达式Ei的名称作为子字符串在表达式Ej的值字符串中的位置,且表达式Ei的名称作为表达式Ej的值字符串的子字符串存在多次出现的情况,将所有位置记为集合{P};
检索表达式Ej的值字符串中所有的函数的名称,将所有函数名称字符串在所述表达式Ej的值字符串中的起始位置T和终止位置S记为集合{{T,S}};
对集合{P}中的元素,若存在元素Pt在集合{{T,S}}中的任一元素规定的起始位置和终止位置区间之外,则排除表达式Ei的名称全部包含于表达式Ej的值字符串内的函数名称中的情况,表示表达式Ej依赖于表达式Ei;否则,表达式Ej不依赖于表达式Ei;
所述检索表达式Ej的值字符串中所有的函数的名称,执行操作如下:
检索表达式Ej的值字符串中所有的左圆括号字符'('的位置,将位置集合记为{S};
若集合{S}不为空,对集合{S}中的每个元素Sk,从Sk开始向前遍历表达式Ej的值字符串中的每个字符,直至到达表达式Ej的值字符串的起始位置或者遇到特定字符中的任意一个字符,结束检索,得到所有函数名称字符串在表达式Ej的值字符串中的起始和终止位置,记为{{T,S}};
所述特定字符包括{'+','-','*','/','%','','','=','(',','};
所述有向图拓扑排序模块,用于对有向图进行拓扑排序,其排序结果的逆序即为所有表达式的删除次序;所述有向图拓扑排序模块通过搜索有向图,输出有向图中没有前驱的节点,在有向图中删除该节点及所有以该节点为尾的有向弧,重复上述操作,直到输出有向图中所有节点,得到有向图中节点的输出次序;
所述用户接口模块,用于显示警告信息或程序执行结果,以及用户选择待删除的表达式,并将用户选择结果传递至表达式解析模块;
所述表达式删除模块,用于根据有向图拓扑排序模块输出的表达式删除次序删除部件文件中的表达式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于盐城工学院,未经盐城工学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910733308.X/1.html,转载请声明来源钻瓜专利网。