版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于ug尺寸公差自动标注系统的研发1课题的的提出1.1三维cad软件尺寸标注中的问题三维cad在用于机械设计时,设计人员标注尺寸公差必须先查表获得公差数值,然后通过dim参数设定完成,但参数设定繁琐,速度也慢。在一般的机械零件图、装配图的绘制过程中,却常常需要查询公差代号所对应的上下偏差,由此便引出尺寸公差偏差的自动查询和标注的问题。在国家标准规定的标注方式中,有需要标出公差代号、上下偏差和配合公差的,还有需要公差代号和上下偏差一起标注的等等。cad作为一种通用的绘图软件,它的各种版本中均没有可直接用于尺寸公差自动查询功能的命令,而且其尺寸公差的标注过程也比较烦琐。在cad中标注尺寸公差时,每
2、标注一个不同的尺寸公差前都必须设置标注形式(dimension style)中的有关参数值,操作繁杂、效率低下;另外,cad中也没有提供用于在装配图中标注配合公差的命令由于公差标注具有多种形式,同时不同零件尺寸段,不同公差等级具有不同的尺寸公差值,每一个不同公差值都要单独设定,才能进行标注。因此设计人员在标注多种尺寸公差时,上述过程必须重复进行,在尺寸公差标注上所花时间很多,不能实现尺寸公差快速查询和自动标注。1.2标注系统开发的意义为了方便设计人员,提高设计效率,通过vc+编程实现尺寸公差的自动查询及快速标注,在机械设计中具有较高的实用价值。应用系统的总体设计本设计通过vc语言编写程序实现,
3、能实现尺寸公差快速查询和自动标注。使得繁琐的手册查询能够省掉,为工作者提供一个轻松的查询平台大大提高公差查询的速度。1.3课题研究目标课题研究为尺寸标注的自动生成 ,该课题的实现解决了用编程的方法进行参数化绘图中的尺寸标注问题, 大大提高了这种方法的实用性及效率。该软件的实现采用样本图的方法, 并利用了图形中实体的生成序号来对图形实体进行标识, 使新生成图可以完全无误地与样本图进行匹配。如果能用成拓扑关系而不是生成顺号来标识则会扩大其使用范围, 当然这在程序实现上会增加相当的难度。另外本软件所采用的一些基本思想在应用上还可以做进一步的扩展, 即不止在尺寸标注线上这样做, 在一些附加实体或某种特
4、征图形上也可采用这种方法来实现,这样配合特征设计更加能提高绘图效率, 这也是今后特别值得去做的工作2尺寸标注系统2.1参数化标注的研究2.1.1编程参数化的实现1.确定处理表格约束参数确定标准数据的约束检索参数, 建立检索参数与标准数据之间的约束关系是首要的工作. 尺寸公差的数据一般是以表格的形式给出和进行约束的. 它的检索参数需要两个, 即需要两个参数才能决定一组相关的尺寸公差数据. 此外, 这些参数除自身系列外, 参数之间还有一定的约束关系.2.1.2建立标准数据表格确定公差带数值时, 反映零件基本尺寸d、公差等级it 与公差带大小数值间的约束关系.b. 确定上、下偏差数值时, 反映基本尺
5、寸d、公差等级it 与基本偏差即es( es) 或ei( ei) 的数值之间的约束关系 1 .按照这些分别进行转化及处理, 完成公差数据表格的建立和查询. 这部分工作是建立和维护标准的表格, 使用数据库制成表格及文本文件. 应用c 编程实现标准数据录入、形成标准表格建立2.1.3接口制作接口程序在软件中起到连接作用, 也是cad系统中的核心部分. 将系统接收的参数值与程序处理结果的参数值, 按照参数之间的约束关系从标准文本文件中检索出所需要的数值, 接口程序一方面要具备根据交互输入的基本尺寸和程序处理输出的it 等级, 检索出公差带的大小; 根据交互输入的基本尺寸和零件种类( 轴或孔) 及程序
6、输入的it 等级检索出所需要的上偏差或下偏差数值等功能. 另一方面具备将从有关标准中检索得到的数值输入标注序. 作用如图1所示接口程序除具备连接桥梁功能外, 还提供判断及修改功能. 比如可以判断用户输入的基本尺寸是否符合标准直径和标准长度系列, 如果是标准系列数值, 即可以直接采用. 否则, 接口程序将选择与其相近的标准数值; 判别设计所选用的配合是否符合国家标准.接口程序应用autolisp 制作, 应用autolisp提供的i/ o 函数打开文本文件. 顺序读入数据, 应用循环函数依设定的关键字检索出所需的数值. ( setq f ( open “g b. txt”“r”)( setq n
7、 ( read- line f ) ) l 0)( w hile ( = l n)( setq m ( read- line f ) )( setq l1 ( nth 0 m) )( if ( = l1 l) ( setq l ( + n1) ) )( setq l ( + l 1) )2.1.4计算求值若选用国家标准规定的优先和常用配合, 其上下、偏差数值可以从标准中直接查取. 如果不是优先、常用配合, 则根据基本尺寸和基本偏差代号确定一个上( 或下) 偏差的值, 另一个偏差的数值则须经过计算才能确定.程序按照顺序进行, 即若遇常数继续查找, 遇运算符或函数, 则根据操作数目, 从前面常数进
8、行运算, 直至将所有运算符及函数进行完毕为止, 将最后的运算结果储存使用.计算求值采用c 语言进行编程, 应用该程序将计算数据及标准数据生成顺序文本文件, 以供读取.2.1.5标注编程在装配图上标注基本尺寸相同的两个零件结合在一起的公差与配合. 如图2( a) 所示. 标注内容包括基本尺寸、配合代号. 配合代号是用孔、轴公差带代号组成的分数形式表示, 分子为孔的公差带代号, 分母为轴的公差带代号.标注格式编程实现, 程序中的基本尺寸及公差带代号均由交互输入、计算程序和接口程序中的输出获取图形存取.2.1.6参数化标注结束语随着计算机辅助设计的广泛应用, 设计软件的开发成为机械设计的一项重要的工
9、作. 本软件可以较方便的接入各种机械设计的cad 系统中, 用以补充一些cad 系统功能的不足. 本软件具有与外部系统良好的接口功能, 可以接入多种编程语言编制的程序.2.2公差设计概念与方法2.2.1公差概念1.由零件互换性的观念衍生,规范零件制造之尺寸变异范围为公差。2. 组装后的成品也必须满足功能上的需求,亦即零件的功能配合应该在制造组装过程中列入考虑,因此在工作图上标示公差之后才具有意义。3. 使用公差除了能保证装配可以确实进行之外,尚有下列优点: 确保零组件互换性,维持技术水准 缩短加工时间,简化检验工程 易于分工合作,提高产品的质量与寿命,降低生产成本2.2.2公差种类1.公差可分
10、为三种,即尺寸公差(size tolerance),形状公差(form tolerance)与位置公差(position or location tolerance)。2. 位置公差又可细分为定位类公差、方向类公差与偏转类公差;而形状公差一般也涵盖轮廓类公差。3.一般所称的公差常指尺寸公差,而形状公差与位置公差则合称为几何公差。2.2.3公差分析的方法与比较a.公差分析的传统方法( i)-worst case 法首先,必须解释在公差分析时所用的两种方法: 公差合成与公差分配.而在以下两个例子中用来运算公差范围的数学方法为 worst case 法,这是传统的做法1. 公差的合成(使用worst
11、 case 法运算)part a 与 part b 必须接合在一起,合成后的尺寸与公差范围会是如何呢?在这个例子中,可以得到一个很直观的结果-当part a 与 part b 相接后所得到的 part a+b 长度和公差范围都是 part a + part b 的结果.也就是说:合成后的公差范围会包括到每个零件的最极端尺寸,无论每个零件的尺寸在其公差范围内如何变化,都会 100% 落入合成后的公差范围内.2.2.4公差与产品之设计及制造2.2.5公差设计方法1.实验式公差设计法:透过实验方法找出设计参数之变动对于产品功能之影响,进而决定最佳之公差设定,例如田口式实验法。2. 数学模式之公差设计
12、法:透过系统化之方法,以数学模式分析设计参数之变动对于产品功能之影响,再透过敏感度分析决定最佳之公差设定。零件之公差设计与标示例几何公差标示例2.3cad软件辅助标注的实现cad软件的标注功能确实强大,适应面涵盖机械、建筑等行业,但从机械标注的角度来看,如此之多的标注变量选项,琢磨不透的标注变量含义,让人感觉cad将简单功能复杂化了。 在使用cad做设计时经常碰到如下问题: 1、如何方便的标注带公差的尺寸,能否直接查询公差带和公差值2、新国家标准中的孔深符号,展开长度符号如何填写、3、对称半尺寸如何标注所见即所得的尺寸标注编辑框:启动尺寸标注命令后,弹出尺寸编辑对话框,如图一。以尺寸值为核心,
13、前面是前缀区,后面有中缀区,公差区,后缀区,看起来就像一个真实的尺寸,想在哪个区域填写内容、填写什么内容一目了然。通过在尺寸标注对话框中点击“公差带.”按钮,弹出公差查询/配合查询对话框, )zs:gd t!j;l在cad中,用尺寸样式设置统一的公差值虽然是最简单的公差标注,但最不可取。一般的公差标注方法是在标注时进入文本编辑框,用转义字符或堆叠方式变相实现,想想都复杂!在cad里,公差既可以在尺寸编辑对话框的公差区域里直接输入,也可以点击常用的公差带表,通过查询的方式自动填写,只需几秒钟,一个复杂的带公差的尺寸就被标注出来了。试一试在cad中标注形如的公差,然后再在cad中标注同样的尺寸,就
14、不一样了。我们在工程绘图时,常需插入、还有新标准中规定的一些符号如: w,m1rskcad在尺寸编辑对话框(如图一)设置了“常用字符”一栏,点击即可选用。 a5vy 如果这些常用字符里没有,点对话框中的按钮“特殊字符.”,系统提供了更多的特殊字符,如图三。 ynqwfo h$k!k6uj 如果特殊字符里还没有,还可以点击自定义,添加一些常用的符号,这个对话框具有记忆功能,常用字符被添加后,将来可以直接使用。轻松实现对称半标注 errp3ee ?在cad的软件中,标注一个对称半尺寸有多困难:先标一个完整的尺寸(如果只有一半图形,标注前还得先画辅助线),然后通过编辑尺寸属性的方式,隐藏一边的尺寸线
15、,隐藏尺寸界限以及箭头,再调整一下文本的位置,标注出了一个对称半尺寸。启动对称半线性尺寸或对称半角度尺寸功能,指定中心线,指定一端的目标位置,对称半尺寸完成。如何实现螺纹标注? 902!m65rgcad标注螺纹有点小技巧,使用直径标注功能标注时,在尺寸编辑对话框中只显示了尺寸值,直径符号由标注类型决定,不显示在对话框中的,如果就这样确定,标注的是直径,可如果在前缀区加m,最后标注会显示成m+尺寸值了,怎么办?解决的方法是,在尺寸值区域尺寸数值的前面输入m,即可得到m+尺寸值,如果还需要在尺寸值后加说明,可以在后缀区填写。如何标注尺寸线下的文字呢? ys:iri. 在尺寸编辑对话框的后缀区输入“
16、/x”后再输入文字,这串文字确定后即可显示到尺寸线的下方3数据库3.1数据库的定义所有的信息(数据率档)的编纂物,不论其是以印刷形式,计算机存储单元形式,还是其它形式存在,都应视为“数据库”。数字化内容选择的原因有很多,概括起来主要有:(1)存储空间的原因。数字化的产品是通过网络被广大用户存取利用,而大家都知道数字化产品是存放在磁盘阵列上的,磁盘阵列由服务器来管理,磁盘空间是有限的,服务器的能力也是有限的,不可能无限量地存入数字资源,这就需要我们对文献资源数字化内容进行选择。(2)解决数字化生产高成本和图书馆经费有限性之间矛盾的需要。几乎没有图书馆有充足的资源来对整个馆藏进行数字化,内容选择不
17、可避免。(3)数字资源管理的需要。技术的快速发展使数字化项目所生成的数字资源的生命周期越来越短,投入巨资进行数字迁移是延长数字资源生命的1个重要途径,昂贵的维护成本就必须考虑数字化的内容选择。数据库发展史数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。30年
18、间数据库领域获得了三次计算机图灵奖(c.w. bachman,e.f.codd, j.gray),更加充分地说明了数据库是一个充满活力和创新精神的领域。就让我们沿着历史的轨迹,追溯一下数据库的发展历程。传统上,为了确保企业持续扩大的it系统稳定运行,一般用户信息中心往往不仅要不断更新更大容量的it运维软硬件设备,极大浪费企业资源;更要长期维持一支由数据库维护、服务器维护、机房值班等各种维护人员组成的运维大军,维护成本也随之节节高升。为此,企业it决策者开始思考:能不能像拧水龙头一样按需调节的使用it运维服务?而不是不断增加已经价格不菲的运维成本。3.2数据库中数据的性质1.数据整体性:数据库是
19、一个单位或是一个应用领域的通用数据处理系统,他存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,他按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。2.数据共享性:数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通
20、信的要求。3.3结构化查询语言(sql) 1974 年,ibm的ray boyce和don chamberlin将codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了sql(structured query language)语言。sql语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。sql集成实现了数据库生命周期中的全部操作。sql提供了与关系数据库进行交互的方法,它可以与标准的编程语言一起工作。自产生之日起,sql语言便成了检验关系数据库的试金石,而sql语言标
21、准的每一次变更都指导着关系数据库产品的发展方向。然而,直到二十世纪七十年代中期,关系理论才通过sql在商业数据库oracle和db2中使用。1986年,ansi把sql作为关系数据库语言的美国标准,同年公布了标准sql文本。目前sql标准有3个版本。基本sql定义是ansix3135-89,“database language - sql with integrity enhancement”ans89,一般叫做sql-89。sql-89定义了模式定义、数据操作和事务处理。sql- 89和随后的ansix3168-1989,“database language-embedded sql”构成了
22、第一代sql标准。ansix3135-1992ans92描述了一种增强功能的sql,现在叫做sql-92标准。sql-92包括模式操作,动态创建和sql语句动态执行、网络环境支持等增强特性。在完成sql-92标准后,ansi和iso即开始合作开发sql3标准。sql3的主要特点在于抽象数据类型的支持,为新一代对象关系数据库提供了标准。3.4基本结构数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。(1)物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。(2)概念数据层。它是数据
23、库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。(3)逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。数据库不同层次之间的联系是通过映射进行转换的。主要特点(1)实现数据共享。数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。(2)减少数据的余度。同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数
24、据冗余,维护了数据的一致性。(3)数据的独立性数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。(4)数据实现集中控制。文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。(5)数据一致性和可维护性,以确保数据的安全性和可靠性。主要包括:安全性控制:以防止数据丢失、错误更新和越权使用;完整性控制:保证数据的正确性、有效性和相容性;并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作
25、用;故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。3.5种类数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。1.数据库模型(1)数据结构所谓数据结构是指数据的组织形式或数据之间的联系。如果用d表示数据,用r表示数据对象之间存在的关系集合,则将ds(d,r)称为数据结构。例如,设有一个电话号码簿,它记录了n个人的名字和相应的电话号码。为了方便地查找某人的电话号码,将人名和号码按字典顺序排列,并在名字的后面跟随着对应的电话号码。这样,若要查找某人的电话号码(假定他的名字的第一个字母是y),那
26、么只须查找以y开头的那些名字就可以了。该例中,数据的集合d就是人名和电话号码,它们之间的联系r就是按字典顺序的排列,其相应的数据结构就是ds(d,r),即一个数组。(2)数据结构种类数据结构又分为数据的逻辑结构和数据的物理结构。数据的逻辑结构是从逻辑的角度(即数据间的联系和组织方式)来观察数据,分析数据,与数据的存储位置无关。数据的物理结构是指数据在计算机中存放的结构,即数据的逻辑结构在计算机中的实现形式,所以物理结构也被称为存储结构。这里只研究数据的逻辑结构,并将反映和实现数据联系的方法称为数据模型。目前,比较流行的数据模型有三种,即按图论理论建立的层次结构模型和网状结构模型以及按关系理论建
27、立的关系结构模型。2.层次,网状和关系数据库系统(1)层次结构模型层次结构模型实质上是一种有根结点的定向有序树(在数学中树被定义为一个无回的连通图)。下图是一个高等学校的组织结构图。这个组织结构图像一棵树,校部就是树根(称为根结点),各系、专业、教师、学生等为枝点(称为结点),树根与枝点之间的联系称为边,树根与边之比为1:n,即树根只有一个,树枝有n个。按照层次模型建立的数据库系统称为层次模型数据库系统。ims(information manage-mentsystem)是其典型代表。(2)网状结构模型按照网状数据结构建立的数据库系统称为网状数据库系统,其典型代表是dbtg(data base
28、 task group)。用数学方法可将网状数据结构转化为层次数据结构。(3)关系结构模型关系式数据结构把一些复杂的数据结构归结为简单的二元关系(即二维表格形式)。例如某单位的职工关系就是一个二元关系。由关系数据结构组成的数据库系统被称为关系数据库系统。在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关系表格的分类、合并、连接或选取等运算来实现数据的管理。dbaseii就是这类数据库管理系统的典型代表。对于一个实际的应用问题(如人事管理问题),有时需要多个关系才能实现。用dbaseii建立起来的一个关系称为一个数据库(或称数据库文件),而把对应多个关系建立起来的多个数
29、据库称为数据库系统。dbaseii的另一个重要功能是通过建立命令文件来实现对数据库的使用和管理,对于一个数据库系统相应的命令序列文件,称为该数据库的应用系统。因此,可以概括地说,一个关系称为一个数据库,若干个数据库可以构成一个数据库系统。数据库系统可以派生出各种不同类型的辅助文件和建立它的应用系统。3.6本次开发中所用数据库本次程序用的是sql2005 来实现数据查询的 本次二次开发过程所用数据库如下图所示4ug二次开发的研究4.1.ug软件概述unigraphics(简称ug)是当前世界上最先进和紧密集成的、面向制造行业的caid/cad/cae/cam高端软件。它为制造业产品开发的全过程提
30、供解决方案,主要功能包括:概念设计、工程设计、性能分析和制造。此外,ug软件还提供了cad/cae/cam业界最先进的编程工具集,以满足用户二次开发的需要。我们先讨论ug软件的主要功能,然后简单介绍二次开发各功能模块的特点和应用4.1.1ug软件功能介绍ug是知识驱动自动化技术领域中的领先者。它实现了设计优化技术与基于产品和过程的知识工程的组合,显著地改进了如汽车、航天航空、机械、消费产品、医疗仪器和工具等工业的生产率。它为各种规模的企业递交可测量的价值,更快地递交产品到市场,使复杂产品的设计简化,减少产品成本和增加企业的竞争实力。nx是一个交互的计算机辅助设计、计算机辅助制造和辅助工程(ca
31、d/cae/cam)系统。cad功能自动化是在今天制造公司中见到的一般工程、设计和制图能力;cam功能利用nx描述完成零件的设计模型,为现代机床提供nc编程;cae功能横越一广范的工程学科,提供许多的产品、装配和零件的性能防真能力。nx是一个全三维、双精度系统,它允许用户精确地描述几乎任一几何形状。通过组合这些形状,用户可以设计、分析产品和建立他们的工程图。一但设计完成,制造应用允许用户选择描述零件的几何体,加入制造信息,如刀具直径并自动生成一刀具位置,源文件(clsf),它可用来驱动大多数nc机床8。目前ugs公司已经推出nx5产品,本次设计中使用的是nx4版本的软件。nx4的特点是:1、为
32、了数字化产品开发集成的自动化;2、在所有开发学科中的新能力,包括工业设计、防真、工装、加工和管理;3、在一个全面的产品生命周期管理(plm)解决力案内的领先前沿的cad、cae和cam技术。4.1.2.ug功能模块利用nx,可以建立、存储、恢复和操纵设计与制造信息,典型地通过建立描述一零件的几何体开始工作。nx功能被划分成共同功能的一系列“应用(application)”共18个模块,各模块分别为:1、入口(gateway):对所有其他交互应用的首要必备的应用;2、建模(modeling):包括实体、特征、自由形状、钣金特征建模和用户定义特征;3、装配(assembilies):支持装配建模;
33、4、几何公差模块(geometric tolerancing module):让用户捕捉公差;5、产品和制造信息(pmi introduction):可用于在三维环境中对产品形成文档说明;6、分析(analysis):包括注塑模流动分析、运动应用和icad;7、制图(drafting):可将三维模型生成二维视图;8、高质量图像(high quality image):生成逼真照片的图像;9、知识熔接(knowledge fusion):允许用户应用工程知识驱动规则和设计意图到nx中的几何模型和装配;10、制造(manufacturing):可进行虚拟加工和自动加工编程;11、开放的用户界面设计
34、(open user interface styler):允许用户和第三方开发商生成nx对话框;12、编程语言(programming languages):包括grip和api;13、质量控制(quallity control);14、走线(routing):定义围绕和通过其他nx装配的装配;15、钣金(sheet metal):包括钣金设计、冲压和多零件加工的栅格;16、电子表格(spreadsheet):提供一在xess或者电子表格应用和nx间的智能界面;17、web express;18、wire harness:可在用于描述产品机械装配的同一三维空间建立电气布线的表示。4.2ug二次
35、开发相关工具的概述ug软件提供了cad/cae/cam业界最先进的编程工具集,以满足用户二次开发的需要,这组工具集称之为ug/open,是一系列ug开发工具的总称,它们随ug一起发布,以开放性架构面向不同的软件平台提供灵活的开发支持。ug/open包括以下几个部分:ug/open menu scrip开发工具,对ug软件操作界面进行用户化开发,无须编程即可对ug标准菜单进行添加、重组、剪裁或在ug软件中集成用户自己的软件功能;ug/open ui styler开发工具是一个可视化编辑器,用于创建类似ug的交互界面,利用该工具,用户可为ug/open应用程序开发独立于硬件平台的交互界面;ug/o
36、pen api开发工具提供了ug软件直接编程接口,支持c、c+、fortran和java等主要高级语言;ug/open grip开发工具是一个类似api的ug内部开发语言,利用该工具用户可生成 nc自动化或自动建模等用户的特殊应用9。利用ug/open提供的应用程序和开发工具,用户可以在其提供的平台上开发出适合自己需要的cad产品。4.2.1 ug/open gripug/open grip(graphics interactive programming)是一种专用的图形交互编程语言。这种语言与ug系统集成,实现ug下的绝大多数的操作。grip语言与一般的通用语言一样,有其自身的语法结构,程
37、序结构,内部函数,以及与其他通用语言程序相互调用的接口。一个grip语句是由一个或几个grip命令组成,grip命令是grip语言的基本组成部分。grip命令有三种表示格式:a)陈述格式。主要用于生成和编辑实体。b)gpa符号格式。gpa是全局参数存取(global parameter access)的缩写,用于访问ug 系统中各种对象的状态和参数。c)eda符号格式。eda是实体数据存取(entity data access)的缩写,用于访问ug数据库,能够访问各种对象的功能性数据。例如在属性、绘图和尺寸标注以及几何体等领域与ug进行交互操作时,其参数可用eda格式的命令取得。用grip语言
38、编写grip源程序,可以在windows的记事本中进行,记为*.grs;或者在grip高级开发环境(grad-grip advanced development environment)中编写。执行grip程序必需进入ug环境中,运行fileexecute ug/opengrip。grip编程语言是面向工程师的语言,具有简单、易学、易用的特点,但是所编写的程序长、复杂。要考虑程序的各个细节问题。因此,grip语言常用于开发一些规模比较小的程序,例如,同类零件建模、计算和分析、数据访问等程序。与grip语言相比较,用api函数编程则可实现功能复杂的操作10。4.2.2 ug/open api作为
39、ug nx4.0与外部应用程序之间的接口,ug/open api是一系列函数的集合。通过ug/open api的编程,用户几乎能够实现所有的ug nx4.0功能。开发人员可以通过用c+语言编程来调用这些函数,从而实现用户的需要。(1)对ug part文件及相应模型进行操作,包括建立ug nx4.0模型、查询模型对象、建立并遍历装配体,以及创建工程图等。(2)在ug nx4.0中创建交互式程序界面。(3)创建并管理用户定义对象等。应用函数时应注意所有的ug/open api应用必须及时进行初始化和终止,以确保获取或者释放ug/open api的执行许可权限。初始化函数是uf_ initializ
40、e (),当开始调用ug/open api的函数时应先调用uf_ initialize()来获取执行许可权限。一般来说,我们在变量声明完成后,第1个调用ug/open api的函数就是uf_ initialize()。终止函数是uf_ terminate(),当不再调用ug/open api的函数时必须调用uf_ terminate()来释放执行许可。ug/open api程序能在两种不同环境(依赖于程序的连接方式)下运行,即internal环境(也称为“internal开发模式”)和external模式。其中internal环境下的程序只能在ug nx4.0的界面环境(session)下运行
41、,在运行这些程序时他们被加载到ug nx4.0的运行空间中(ug nx4.0分配的内存);external模式开发的程序能在操作系统(windows nt/2000/xp及unix)下运行,不在ug nx4.0环境中或作为ug nx4.0的子进程运行。尽管没有图形显示,但ug/open api提供了函数用于打印机或绘图仪输出,也可以输出为cgm文件等其他数据文件。4.2.3 ug/open menu script不仅可以使用户利用asc文件来编辑ug的菜单,也可以以一种无缝集成的方式为用户开发的应用程序创建菜单。menu script同时也提供了一个菜单栏报告工具,以帮助用户查看定制的菜单,诊
42、断错误。对于菜单的自定义大致可以分为如下三个层次。(1)自定义菜单 该级别的自定义允许单个用户或者管理员重新安排ug的功能,去除在其产品开发过程中不需要的功能。这种级别的自定义不需要编程实现。(2)自定义ug功能 该级别的自定义允许单个用户或者管理员取代或增加标准的ug功能,并添加其自己定义的功能。(3)添加自定义应用 该级别的自定义其目的在于使用户或第三方开发商开发的应用程序完全集成在ug中。该级别的自定义需要编程实现。 ug的菜单文件是扩展名为.men的文本文件,可以使用windows 的记事本进行编辑。ug/open menu script提供了一套用于定义ug菜单的脚本语言。实际上,u
43、g系统的菜单文件也是用该脚本语言编写的。ug为主菜单栏、快捷菜单栏提供了丰富的系统菜单文件,这些菜单文件默认情况下都保存在ug_base_dir/ug/menus文件夹下。 使用ug/open menu script自定义ug菜单可以有两种方法,分别是使用add-on菜单文件和复制和编辑系统菜单文件。使用add-on菜单方法是添加编辑量很小的菜单文件到菜单文件的目录中,使用add-on菜单可以移出用户不需要的菜单项;添加新的菜单和菜单项;重新组织ug的菜单;修改菜单和菜单项的标题;为已经存在的应用按钮添加动态库和菜单文件。复制和编辑系统菜单文件是指复制、编辑系统菜单文件并将其放置在特定的目录下
44、,覆盖原始菜单文件。系统推荐使用add-on菜单文件方法,该方法不仅编辑起来比较方便、易于维护,而且其功能也相当强大,基本可以满足应用开发的所有需求。使用add-on菜单文件的另一个优点在于它可以被ug很方便地自动加载。对于与具体应用模式无关的菜单文件放置在startup文件夹下,与具体应用模式相关的菜单文件放置在相应的application文件夹下,通过使用menu_files声明,即可将菜单名与应用模式按钮相关联,点击该应用模式按钮后即可自动加载与其相关联的菜单文件。复制和编辑系统菜单文件方法不推荐使用,这主要是由于其编辑起来相当复杂,特别是对于像ug_main.men这样大型的菜单文件,
45、其维护也非常麻烦。4.2.4 ug/open ui stylerui styler是开发ug对话框的可视化工具,生成的对话框能与ug集成,让用户更方便、更高效地与ug进行交互操作。ug/open ui styler模块提供了强大的制作ug风格窗口的功能,其主要功能如下:(1) 提供了让开发人员建造ug风格对话框的可视化环境,并能生成ug/open ui styler文件和c代码,从而使用户在使用ug/open ui styler产生的对话框时,不必考虑图形用户界面(graphical user interface缩写为gui )的实现。(2) 利用可视化环境快速生成ug风格对话框,从而减少开发
46、时间。(3) 通过选取和放置控件,从而能实现所见即所得。(4) 可以在对话框中实现用户自定义位图。(5) 提供了属性编辑器,从而允许开发人员设置和修改控件属性。(6) ui styelr产生的对话框可以在menu script中被调用,因此可以实现在ug菜单项上调用ui styler产生的对话框,从而将用户应用程序和ug软件完全融合。应用ui styler这一工具可以使开发人员方便、快速地设计出与ug界面风格一致的对话框,避免其他复杂的编程。而且可以和用其他开发工具开发出的结果进行集成。ug/open ui styler工具和ug/open menu script工具一样,都只具有某一方面的功
47、能:ug/open ui styler用于对话框的开发,ug/open menu script用于菜单的开发。4.2.5 user tools工具ug软件为用户提供了一个调用二次开发结果的交互式接口:user tools。它的功能是生成弹出式对话框或工具条,其界面风格与ug界面风格一致。通过执行对话框或工具条,操作相应的控件就可运行菜单文件、宏文件、ug/open grip程序、ug/open api程序和其他二次开发文件。例如,执行皮带轮生成的程序集,可以用user tools工具产生两个对话框分别为实心式皮带轮和腹板式皮带轮,然后在相应的对话框上进行操作就生成相应种类的皮带轮。通过编写对话
48、框定义文件(*.utd)来实现user tool工具的功能。编写文件完成以后,在ug 中执行toolscustomizeuser toolsload选择所编写的*.utd文件即可弹出需要的对话框或工具条。*.utd这个文件是文本文件,可用 windows中的记事本进行编写和编辑。一种比较简单的实现方法:拷贝ug中的模板文件usertoo1.utd到ug启动目录下,然后编辑模板文件,实现所需要的功能。在以前较早版本中例如v13,运用user tools工具必须编写两个文件:菜单定义文件(*.utm)和对话框定义文件(*.utd),然后通过执行菜单项弹出相应的对话框或工具条。现在,较高的ug版本已
49、经省略产生菜单这一步,操作同上所述。在ug 界面中应用file execute ug/open菜单执行ug/open api程序或ug/open grip程序,操作一次只能执行一个程序,而且必须找到程序所在的路径。若利用user tools这个工具,用户可以将多个grip或api函数所编写的程序集成到一个user tools对话框或者工具条中,一个程序对应一个控件,通过操作控件来调用程序,使用起来就非常方便。4.3动态链接库技术4.3.1动态链介绍动态链接库(dll)是一个包含可由多个程序同时使用的代码和数据的库,dll 不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码
50、的函数。函数的可执行代码位于一个dll 中,该dll 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。dll 还有助于共享数据和资源。多个应用程序可同时访问内存中单个dll 副本的内容。4.3.2 dll 基本编程原理分析一般来说,dll 是一种磁盘文件(通常带有.dll 扩展名),它由全局数据、服务函数和资源组成,在运行时被系统加载到进程的虚拟空间中,成为调用进程的一部分。如果与其它dll 之间没有冲突,该文件通常映射到进程虚拟空间的同一地址上。dll 模块中包含各种导出函数,用于向外界提供服务。windows 在加载dll 模块时将进程函数调用与dll 文件的导出函数相匹配。
51、在win32 环境中,每个进程都复制了自己的读/写全局变量。如果想要与其它进程共享内存,必须使用内存映射文件或者声明一个共享数据段。dll 模块需要的堆栈内存都是从运行进程的堆栈中分配出来的4.3.3 dll 的实现及其调用在创建和调用动态链接库时要用到一些函数调用约定。函数调用约定是指决定函数参数传送时入栈和出栈的顺序,由调用者还是被调用者把参数弹出栈,以及编译器用来识别函数名字的修饰约定(1)函数调用约定有多种stdcall 调用约定相当于16 位动态库中经常使用的pascal 调用约定。在32 位的vc+6.0 中pascal 调用约定不再被支持,取而代之的是_stdcall 调用约定。
52、两者实质上是一致的,即函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分。_stdcall 是pascal 程序的缺省调用方式,通常用于win32 api 中,函数采用从右到左的压栈方式,自己在退出时清空堆栈vc 将函数编译后会在函数名前面加上下划线前缀,在函数名后加上和参数的字节数。(2)c 调用约定,按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护的。另外,在函数名修饰约定方面也有所不同。_cdecl 是c 和c+程序缺省的调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用
53、_stdcall 函数的大。函数采用从右到左的压栈方式。vc 将函数编译后会在函数名前面加上下划线前缀。它是mfc缺省调用约定。4.3.4创建动态链接库dll在visual c+6.0 开发环境下,打开filenewproject 选项, 可以选择win32 dynamic link library 或mfcappwizarddll来以不同的方式来创建non-mfc dll、regulardll、extension dll 等不同种类的动态链接库。该动态链接库编译成功后,打开mydll 工程中的debug目录,可以看到mydll.dll、mydll.lib 两个文件。lib 文件中包含dll
54、文件名和dll 文件中的函数名等,该lib 文件只是对应该dll 文件的“映像文件”,与dll 文件中,lib 文件的长度要小的多,在进行隐式链接dll 时要用到它4.3.5动态链接库dll 的调用(1)隐式的调用:需要把产生动态连接库时产生的lib 文件加入到应用程序的工程中,想使用 dll 中的函数时,只须说明一下。隐式调用不需要调用loadlibrary() 和freelibrary()。程序员在建立一个dll 文件时,链接程序会自动生成一个与之对应的lib 导入文件。该文件包含了每一个dll 导出函数的符号名和可选的标识号,但是并不含有实际的代码。lib 文件作为dll 的替代文件被编
55、译到应用程序项目中。当程序员通过静态链接方式编译生成应用程序时,应用程序中的调用函数与lib 文件中导出符号相匹配,这些符号或标识号进入到生成的exe 文件中。lib 文件中也包含了对应的dll 文件名,链接程序将其存储在exe 文件内部。当应用程序运行过程中需要加载dll 文件时,windows根据这些信息发现并加载 dll,然后通过符号名或标识号实现对dll 函数的动态链接。所有被应用程序调用的dll 文件都会在应用程序exe 文件加载时被再加载到内存中。可执行程序链接到一个包含dll 输出函数信息的输入库文件。操作系统在加载使用可执行程序时加载dll。可执行程序直接通过函数名调用dll
56、的输出函数,调用方法和程序内部其它的函数是一样的。(2)动态调用方式:是由编程者用api 函数加载和卸载dll 来达到调用dll 的目的,使用上较复杂,但能更加有效地使用内存,是编制大型应用程序时的重要方式。显式的调用:是指在应用程序中用loadlibrary 或mfc提供的afxloadlibrary 显式的将自己所做的动态连接库调进来,动态连接库的文件名即是上面两个函数的参数,再用getprocaddress()获取想要引入的函数。自此,你就可以像使用如同本应用程序自定义的函数一样来调用此引入函数了。在应用程序退出之前,应该用 freelibrary 或mfc 提供的afxfreelibr
57、ary 释放动态连接库。直接调用win32 的loadlibary函数,并指定dll 的路径作为参数。loadlibary 返回hinstance 参数,应用程序在调用getprocaddress 函数时使用这一参数。getprocaddress 函数将符号名或标识号转换为dll 内部的地址。程序员可以决定dll 文件何时加载或不加载,显式链接在运行时决定加载哪个dll 文件。使用dll 的程序在使用之前必须加载(loadlibrary)dll 从而得到一个dll 模块的句柄,然后调用getprocaddress 函数得到输出函数的指针,在退出之前必须卸载dll(freelibrary)。5二次开发技术实现5.1创建应用ug提供的ug/open uistyle开发工具是一个可视化编辑器,用于创建类似ug的交互界面,利用该工具,用户可以为ug/open应用程序开发独立于硬件平台的交互界面。但是对于比较复杂的应用程序交互界面,ug/open uistyle的界面设计功能则显然不能完全满足要求,而mfc(microsoft found
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能硬件创新企业评审
- 国际工艺品设备租赁协议
- 通信设备运输招投标文件
- 会员消费IC卡积分规则
- 无人机驾驶员聘用合同范本
- 执行院务公开管理办法
- 铁路工程供货施工合同范本
- 金属材料采购授权委托书
- 通讯设备项目奖励政策
- 煤炭供应商运输合作协议
- 2024年广东省普通高中学业水平考试化学试卷(修改+答案)版
- 2024年小学生中华经典诵读知识竞赛参考题库500题(含答案)
- 2024年四川遂宁开祺资产管理有限公司招聘笔试参考题库含答案解析
- 有机肥料及微生物肥料行业的环境影响与生态保护
- 提高检验标本合格率的品管圈课件
- 日拱一卒行稳致远
- 幼儿园教育的德育培养
- 培训内驱力的课件
- 管理后台策划方案
- 顺丰SHL在线测评题库
- 贵州省黔东南州2022-2023学年八年级上学期期末文化水平测试数学试卷(含答案)
评论
0/150
提交评论