您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 【设计】CAD中实现工程图样自动化转换的研究
67CAD/CAM与制造业信息化·2009年第11期栏目主持:黎艳 投稿信箱:liy@icad.com.cn着SolidWorks程序起动后主动加载在装配体界面,如图5所示。这样,在装配体设计环境下,可以随时从标准件通用件库中调用已有的标准件通用件三维模型。六、标准件通用件库的维护标准件、通用件在企业的应用是一个长期的过程,随着企业的发展,会生成新的通用件,标准件也会不断地调整,因此程序必须具有开放性,方便工程师实现标准件通用件的添加功能(如图6所示),可以方便地添加新的标准件通用件到PDM系统及标准件通用件库中,使不同企业的用户通过修改标准件通用件的配置数据及属性信息而形成自己企业的标准件通用件库。同时,当装配体向PDM数据库中提交数据时,因PDM数据库中已有标准件通用件的数据,装配体中所有的标准件通用件不会再提交进入PDM数据库中,这减少了集成程序运行的时间及PDM数据库中的数据冗余。七、结论本文提出了基于各信息化系统集成的标准件通用件库的开发方法,基于该方法可以实现SolidWorks与其他信息化系统的高度集成。程序开发人员可以根据企业信息化应用系统的特点,结合企业的编码规则及编码标准开发出企业自己的标准件通用件三维模型库,从而提高设计效率,加强三维数据管理,缩短产品研发生产周期。本文通过对CAD工程图样转换过程的分析,引进计算机应用技术,提出了图样转换的自动化处理方法,能部分或全部替代原有的人工操作,从而大大降低图样转换的劳动强度。同时也证明了用VBA进行CAD二次开发以减轻图样处理中大量重复劳动是十分方便有效的。CAD中实现工程图样自动化转换的研究□湖南工业职业技术学院彭小红工程技术人员在相互交流过程中因所使用的评议和标准不同,彼此传递的图样必须经过转换才能使用。其中绝大部分工作是对其中的标注和注释进行转换,简单说来就是把其中的文字做一个替换。如果图样较多,人工操作很繁琐,而且由于人工操作时个人水平和习惯的不同,也会导致转换结果不一致的问题。因此有必要开发一个图样转换工具来替代人工操作。一、总体设计此图形工具主要针对图形中的文字做转换,但涉及到图形文字字体选择和设置的问题。另外,为了达到准确一致的要求,还必须对替换的标准字典进行管理。因此,这个软件的总体结构如图1所示。主要功能模块的定义如下。(1)图形设置:通过样式管理器、字体设置和标注设置这三种方式对图形定义的字体和标注形式进行管理,以保证图样能显示中文、字体和标注符合相关标准。(2)图形转换:实现对图形中文字的替换。可选择不同的字典,按字典中的条目对字字进行“翻译”。图1功能模块图2操作菜单(3)字典管理:用以创建、修改字典。用户创建英汉字典、标准对照、材料对照字典后,就可通过“图形转换”操作对图样进行转换。(4)系统设置:主要方便用户对系统相关文件的管理。此图形工具插入到AutoCAD环境中,用户界面是在CAD中加入菜单(如图2所示),再通过对话框的形式进行操作。二、概要设计(1)图形设置模块;主要利用VBA与AutoCAD模型对象之间的良好接口,通过本文索引号:12268www.idnovo.com.cnDigitalDesign数字化设计对话框的形式与用户交互,方便实现图形的文本样式和标注样式。按照总体设计规划并结合用户操作习惯设计出如下几个对话框(见图3),即可进入详细设计阶段。(2)文本转换模块:主要完成对图形中所有文字的替换,如图4所示。这些文字可能是单行文本、多行文本、属性和标注文字,为了程序的结构清晰,设计GetText和SetText两个通用过程处理。另外,图形中还含有块参照且可能这些块是嵌套的,因此将文本转换设计为一个递归过程。(3)字典操作:是本程序的重头,鉴于面向对象的优越性,通过构造一个字典类来实现对数据的维护和操作,从而把与字典有关的操作全部集中到字典类上。它包含以下内容:常数:dicmax——定义字典允许的最大的词条数,根据运行效率、内存占用和实际需求设定其数值;属性:Count——字典实际词条数,data——词条;方法:索引FunctionUpdate(indexAsInteger,engAsString,chnAsString)AsBooleanIfindex=dicMAXOrindex0ThenUpdate=False:ExitFunctionDicData(index,0)=engDicData(index,1)=chnUpdate=TrueEndFunction‘Search操作,成功返回查到的词条索引,失败返回0FunctionSearch(engAsString,ByRefchnAsString)AsIntegerFori=0TodicCount–1‘通过一个循环逐条比较IfDicData(i,0)=engThenIfDicData(i,1)=ThenSearch=1‘查到原文,没有对应译文,返回1ElseSearch=2‘查到原文且有对应译文,返回2chn=DicData(i,1)EndIfExitFunctionEndIfNextSearch=0‘没有查到原文,返回0EndFunction‘内部过程MyReplace,是Cov的主过程,提取出来方便以后修改或升级PrivateFunctionMyReplace(sourceAsString,findAsString,replaceAsString,opAsInteger)AsStringls=Len(source)lf=Len(find)DimkAsIntegerk=InStr(1,source,find,vbTextCompare)‘在原文本中查找要查找的子串While(k0)SelectCaseop‘按op的值图3图形设置的几个对话框图4文本转换对话框和操作Clear——清空字典,Add——添加词条,Update——更新词条,Search——查找,Cov——实现文字翻译,Load——装入字典,Save——保存字典。(4)系统设置:主要指定系统工作路径、字体文件路径、字典文件路径,并保存在Windows注册表中。三、详细设计详细设计是对概要设计的内容进行编码,具备有一定的编程能力且熟悉VBA和AutoCAD模型对象就可顺利完成,其中字典类的代码如下。‘数据ConstdicMAX=1000‘定义最大词条数,根据实际需要和系统性能定PrivateDicData()AsString‘词条数组PrivatedicCountAsInteger‘词条总数‘只读属性dataPropertyGetdata()AsVariantdata=DicDataEndProperty‘只读属性countPropertyGetcount()AsIntegercount=dicCountEndProperty‘Add操作,成功返回True,eng—原文,chn—译文FunctionAdd(engAsString,chnAsString)AsBooleanIfdicCount=dicMAXThenAdd=False:ExitFunction‘如果词条数超过最大值则添加失败ReDimPreserveDicData(1,dicCount)‘重定义词条数组大小DicData(0,dicCount)=engDicData(1,dicCount)=chndicCount=dicCount+1Add=TrueEndFunction‘Update操作,成功返回True,eng—原文,chn—译文,Index—69CAD/CAM与制造业信息化·2009年第11期栏目主持:黎艳 投稿信箱:liy@icad.com.cn替换查找的子串Case1:MyReplace=Left(source,k-1)&replace‘直接替换Case2:MyReplace=Left(source,k-1)&(&replace&)言之‘替换并在两边加注括号Case3:MyReplace=Left(source,k+lf-1)&(&replace&)‘保留原文并加括号EndSelectsource=Right(source,ls-k+1-lf)k=InStr(k+lf,source,find,vbTextCompare)继续查找下一处WendMyReplace=MyReplace&sourceEndFunction‘Cov操作,s—原文本,op—翻译选项;返回译文,没有翻译时译文=原文本FunctionCov(sAsString,opAsInteger)AsStringCov=sFori=0TodicCount-1Cov=MyReplace(Cov,DicData(0,i),DicData(1,i),op)NextEndFunction‘Load操作,读入字典文件,fn—字典文件的全路径和名称FunctionLoad(fnAsString)AsBooleanOnErrorGoTol1OpenfnForInputAs#1‘打开文件DimeAsString,cAsStringWhileNotEOF(1)Input#1,e,c‘读入词条Adde,c‘加入字典WendClose1‘关闭文件Load=TrueExitFunctionl1:Load=False‘如遇错误,返回失败EndFunction‘Save操作,写出字典文件,fn—字典文件的全路径和名称FunctionSave(fnAsString)AsBooleanOnErrorGoTol1OpenfnForOutputAs#1‘打开文件,准备写入Fori=0TodicCount-1Write#1,DicData(0,i),DicData(1,i)‘写词条NextClose1关闭文件Save=TrueExitFunctionl1:Save=False‘如遇错误,返回失败EndFunction‘Clear操作,清空SubClear()dicCount=0‘词条计数值勤0ReDimDicData(1,0)‘词条数组清空EndSub‘初始操作,将dicCount值0,(在VB中可省略)PrivateSubClass_图5字典管理对话框和操作Initialize()dicCount=0EndSub四、软件测试这个软件是笔者设计的一个小软件,通过调试,软件能正常运行实现工程图样转换。五、结论软件完成后,试用的效果实用、方便、快捷,维护方便。由此可以得出以下体会:◎个人进行CAD二次开发来创建一个简单实用的图形工具是完全能够实现的;◎个人用VBA进行CAD二次开发效率高,可维护性强,不存在与AutoCAD各版本不兼容的问题;◎通过对话框的形式实现软件与用户的交互很直观,也很方便。x本文索引号:123
本文标题:【设计】CAD中实现工程图样自动化转换的研究
链接地址:https://www.777doc.com/doc-13989 .html