




免费预览已结束,剩余31页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北方工业大学硕士学位论文摘要进入21世纪以来,计算机技术得到了突飞猛进的发展,产品建模领域越来越多的应用了计算机技术。产品模型是基于信息理论和计算机技术,在现代设计方法学、并行工程等方法的指导下,以一定的数据模式定义和描述产品在开发设计、工艺规划、加工制造、检验装配、销售维护至产品消亡的整个生命周期中关于产品的数据内容、活动过程及数据联系的一种信息模型。产品建模是指产品模型在计算机上的具体实现过程。对于尖锐边、点处过渡特征的生成对提高产品外观和实用性具有重要意义。能体现产品价值的不仅仅是产品的质量,还有产品的外观和实用性。能够满足快节奏生活方式的产品。产品建模过程中复杂过渡特征的生成就是为了消除上述的尖锐边、点,使之产生过渡特征的过程,而商用CAD软件大多直接采用几何建模引擎实现过渡特征的生成。如何方便获取需要的顶点和边,确定相应参数是提高复杂过渡特征的生成技术在产品设计中应用效果的关键。本课题主要应用VC+6.0和ACIS相结合,通过ACIS对SAT文件的处理完成了对产品建模过程中较复杂过渡特征生成的原型系统的设计。关键字:产品建模,VC+6.0,ACIS,过渡特征AbstractSince entering the 21st century, computer technology has been rapid development of the field of product modeling more and more use of computer technology. Product model is based on information theory and computer technology, modern design methodologies, concurrent engineering, etc., under the guidance of a certain data model definition and description of products in the development of design, process planning, processing, manufacture, test assembly, sales and maintenance products the demise of the entire life cycle of the data content on the products, processes and data linked to an information model. Product modeling is the product model on the computer to achieve specific process. For the sharp edges and the sharp points, generate the transition characteristics of products to enhance the appearance of great significance and practicality. Value reflects not only the quality of the product, as well as the appearance and usefulness of products, able to meet the fast-paced lifestyle products. Modeling the process of product characteristics of complex formation is the transition in order to eliminate the above-mentioned sharp edges, points, to produce the characteristics of the process of transition, while the commercial CAD software are directly used to achieve geometric modeling engine to generate the transition characteristics. How to facilitate access to the vertices and edges need to determine the corresponding parameter is to improve the characteristics of the complexity of the transition generation technology in the product design in the key application. The main subject of the application of the VC + +6.0 and ACIS combination of the SAT through the ACIS documents completed the process of product modeling more complex features of the transition to generate the design of the prototype system.Keywords: Product Modeling, VC+6.0, ACIS, Transition feature- 2 -目 录摘要1Abstract21引言11.1研究背景11.2论文的组织结构12混合原理32.1 混合的定义32.2 混合的原理32.4 滚动球32.3 混合几何体32.4多边混合62.5 顶点混合顺序72.6 高级混合72.6.1 横截面半径72.6.2 拓扑92.6.3 混合过程102.6.4 有序边混合102.6.5 实体/实体混合113开发技术介绍133.1Visual C+6.0介绍133.2ACIS介绍143.2.1应用程序与ACIS的接口143.2.2ACIS的相关概念153.2.3ACIS结构163.2.4Scheme语言173.2.5ACIS C+程序基本结构183.2.6SAT文件184原型系统开发204.1VC+6.0环境中编译ACIS程序204.1.1配置操作系统环境变量204.1.2配置VC+6.0204.2原型系统的设计214.2.1尖锐边、角混合214.2.2基本实体模型的构造234.2.3过渡特征生成265原型系统测试285.1原型系统对SAT文件初始化285.2读入混合半径295.3混合操作并保存混合后文件296结束语31致谢32参考文献3332- -1 引言作为本文的开篇之作,本章首先介绍了本课题的意义和研究现状,然后介绍了研究方法,最后介绍了文章的结构。1.1 研究背景随着计算机技术不断的完善,计算机已经应用到了各个领域和行业,而在产品建模过程,也不断的加入了计算机。产品模型是基于信息理论和计算机技术,在现代设计方法学、并行工程等方法的指导下,以一定的数据模式定义和描述产品在开发设计、工艺规划、加工制造、检验装配、销售维护至产品消亡的整个生命周期中关于产品的数据内容、活动过程及数据联系的一种信息模型。产品建模是指产品模型在计算机上的具体实现过程1。尖锐边、点处过渡特征的生成对提高产品外观和实用性具有重要意义。能体现产品价值的不仅仅是产品的质量,还有产品的外观和实用性。能够满足快节奏生活方式的产品,即便使用寿命不长也深受消费者喜爱。比如,手机样式的更新速度就是一个典型代表,即使老款手机的质量优于新款,依然会遭到市场的淘汰。产品建模过程中复杂过渡特征的生成就是为了消除上述的尖锐边、点,使之产生过渡特征的过程,而商用CAD软件大多直接采用几何建模引擎实现过渡特征的生成。如何方便获取需要的顶点和边,确定相应参数是提高复杂过渡特征的生成技术在产品设计中应用效果的关键。本课题针对产品设计阶段中的产品建模部分,就如何实现尖锐边、点处复杂过渡特征的生成进行了相关的研究,并通过建立简单的原型测试系统对上述研究结果进行了验证。1.2 论文的组织结构本文结构如下:第一章,简单介绍了本课题研究的意义、研究背景、研究内容、研究方法。第二章,对本课题用到的技术进行了简单地陈述,VC+6.0的简要介绍、ACIS的简单介绍,以及ACIS和VC+6.0混合编程的方法。第三章,对如何获取需要的顶点和边,确定相应参数方法做了重点介绍,同时介绍了原型系统的关键算法和核心部分做了重点的介绍。第四章,针对不同的SAT文件,对原型系统做了功能测试。第五章,对以上工作的总结。2 混合原理本章主要介绍了本课题的理论基础,对混合的定义、原理、方法都进行了详细的介绍。2.1 混合的定义在实际模型中为了提高零件外观的光顺性,同时也为了减少零件中的应力集中点以及提高零件的可加工性,模型中的尖锐或尖点通常被光滑的曲面替代,这个操作在边界表示法造型器中被称为混合。2.2 混合的原理混合操作是通过在某个位置构造一个薄面,并把它附加在模型上来完成的。混合曲面是一个曲面片。将混合曲面附加在模型上的过程中要对原始的曲面进行裁剪或延伸,并将原始曲面中的一些曲面用混合曲面中相应的部分替代。ACIS中的混合曲面是在一个单独的操作中构造的,因此在整个混合操作中,它可以给应用程序提供反馈,同时还可以显示该曲面。这样,应用程序可以可视地控制混合的整个过程,从而一个面一个面进行交互混合操作。2.4 滚动球“滚动球”是一个形象的比喻,它假设一个圆球沿着两个曲面的交线所在的夹角滚动,在它的滚动过程中其表面所经过的区域就形成了一个曲面,这个曲面中就包括我们要求的混合曲面。球在滚动过程中始终与曲面保持相切。球的中心经过的曲线被称为脊线(Spine curve),球与两个面的切点所在的曲线被称为弹出线(Sping curve)。弹出线就是滚动球与混合曲面的切接触点的集合。2.3 混合几何体ACIS中的标准混合操作支持圆角混合、直角混合以及顶点混合。在标准混合操作中,两个要进行混合操作的面必须相互连接。混合半径指的是滚动球的半径,它可以为一个常量(等半径混合)也可以是一个变量(变半径混合)。等半径混合和变半径混合可以在混合操作中一起使用。在混合操作中,两个实体间的混合面的形状特征可以用横截面来表示。混合面上连接被混合的两个面的最短线就位于横截面上。横截面始终与两个被混合的面保持垂直。圆角混合是指用如下方式产生的混合曲面:(1) 将一个等半径或变半径球沿着一个被混合的边滚动,并且在滚动过程中始终保持与边所在的两个面相切。(2) 将一个等半径球沿着一个顶点转动,并且在转动过程中保持与一个面和一条与该顶点相连接的边相切。对于等半径混合来说,混合半径是一个常量,混合曲面一般用样条来表示。在某些几何条件下,比如说脊线为一简单曲线的情况下,等半径混合曲面可以用一个简单的解析曲面来表示,如下表2.1中的情况对于变半径混合来说,它用基本微分算法计算不断变化的混合半径。为了计算某点的曲线和混合曲面,必须在该点建立一个滚动球,并用步进算法求得曲线和混合曲面的近似值。当变半径函数被定义后,我们就可以求出某一个点处的滚动球半径的具体数值。ACIS中还要用被混合的曲面的公共边来校验这个数值。另外,即使是最简单的变半径混合曲面也不能用解析曲面表示,它们都由样条曲面表示。标准的混合操作支持两种变半径混合曲面的数学定义,即滚动球快照混合曲面和滚动球封闭混合曲面。这两种曲面在几何上是类似的,但是滚动球封闭曲面更光滑一些,并且它们的偏移操作容易控制。变半径混合操作的默认设置是构造最简单的混合曲面,例如当变半径混合算法被用来产生一个半径线性变化的变半径混合曲面时,如果开始半径和结束半径的数值相等,则其运算结果将是一个等半径混合曲面。直角混合指连接滚动球的两个切接点的直线沿脊线进行扫掠而成规则曲面。可以用作直角混合曲面的类型只能为平面。将两个半径不同的球一起滚动,取其中一个滚动球沿一个面的切接点而另一个滚动球沿另一个面的切接点,将这两个点连成直线再进行扫掠就形成了不对称的直角混合曲面。直角混合的横截面是一条直线。ACIS支持顶点混合操作,并提供了几种控制顶点混合的形状的方法。ACIS也可以产生用N个B样条曲面近似的N边顶点混合曲面。(1) 回归:当混合边中的一个或两个顶点是混合顶点时,该边的混合曲面和顶点的混合曲面将相交,其交线为一个“交叉”边,这时混合算法需要计算该边的位置和斜率。在这种情况下,混合边的两个端点处要进行起始回归和结束回归操作。回归指的是在边的混合操作中,从混合结束的顶点开始沿着混合边方向倒退的某个距离。它定义了一个与混合边垂直的平面(回归平面),该面与混合顶点的距离就是回归操作退回的距离。回归平面与混合曲面的交线可以用来作为顶点混合曲面的边界。起始回归和结束回归的数值可以通过混合API函数的参数设定,参数的合理性由混合顶点所在边的几何特性与尺寸来确定。如果用户定义了一个比最小的回归数值还要小的回归数值,该数值将被最小的回归数值替代。回归可以设置成倾斜的,这样就可以构造一些特殊的顶点过渡形状,如将两个弹出线处的回归数值分别设置成不同的数值,这样边的混合曲面和顶点混合曲面的交线将是一个斜线,通过这种方式我们可以获得更多顶点混合曲面的形状。具体的回归数值也可以由系统自动确定,这种方式称为自动回归。ACIS会自动给混合顶点分配一个回归数值(该顶点处的边已经含有混合属性)。当然,用户也可以使用这种方式先确定一个较合理的初始数值,当然再手工调整该数值以获得一个需要的混合曲面形状。在顶点混合操作中也可以不定义回归数值,但是这时ACIS仍然要求出交叉边。给定一个不带回归的混合边,ACIS要求出该边的混合曲面的弹出线与其邻接边的混合曲面的弹出线的交点,并将这些交点沿混合曲面连接起来,就构成了交叉边。(2) 凸因子:凸因子是控制顶点混合曲面的形状的数值。凸因子影响的是顶点混合曲面的内部形状,而不影响它的边界。一个较大的凸因子数值将增加混合曲面的饱满程度。(3) Gregory多边形曲面:当交于一个顶点的所有边进行混合操作时,顶点处就会出现n边Gregory多边形曲面,对这种曲面来说,各个边的混合操作既不需要混合半径相等也不需要混合曲面的光滑连接,当用一个滚动球不能完全逼近这个顶点区域时(该顶点处的所有边的混合半径不相同时)或设定了不为0的回归数值时,就会出现N边Gregory多边形曲面。ACIS还提供了一些其他的技术处理不能用N边Gregory多边形曲面严格混合的内部顶点。如现将混合顶点处的一个边混合,得到一系列的光滑边,然后再将这些光滑边混合。另外一个方法就是将混合顶点处的两个边同时混合,而得到一个倾斜的连接边。2.4多边混合多边混合是在一个混合操作中要同时处理的一些列首尾相连的边,这些边组成的混合边序列可以是闭合的也可以是开放的,如果是闭合的,这些混合边将形成一个环,对它进行的混合操作就不用计算结束封顶曲面(单向封顶曲面仍可能出现)。在混合边序列中,两个混合边的交点有如下两种情况:(1) 光滑,两个混合边在它们的公共顶点处相切,也就是它们在连接点处一阶导数连续。一些交于该顶点的非混合边也是光滑边,具有这种特征的顶点被称为双混合顶点。(2) 非光滑,混合边在其交点处不相切,或在该顶点处存在非光滑的非混合边,这种混合边的交点被称为倾斜混合顶点。双混合顶点是一个内部顶点,两个混合边在该顶点处相切,并且具有一致的混合属性。该顶点处可以存在任意多光滑的非混合边。同时,两个边的混合曲面在该顶点可以形成光滑连续的混合曲面。当混合顶点是一个内部顶点,并且该点处的混合边不相切或在该点处存在非光滑的非混合边,则该顶点就是倾斜混合边。倾斜混合顶点处的两个混合边不必须具有相同的混合属性,但是它们的凸凹性必须相同。在该点最多允许两个其他的边相交,但它们必须是非光滑连接,并且被混合边隔离。如果两个混合曲面在它们的端点处不能光滑过渡,也就是它们不能很好地配合而形成一个封闭的混合曲面,这种情况需要特殊处理,其中一个混合曲面要作为局部的封顶曲面而延长。闭合边的混合操作没有开端点,所以也不存在结束封顶的问题。闭合边中的内部顶点可以是光滑,也可以是非光滑的。在混合边(指开放的混合边)的结尾处,混合曲面必须与原始的实体合理地结合在一起。如果可能。模型中的一个或多个面将与混合曲面相交,并在交线处将混合曲面裁剪,当不存在模型的面与混合曲面相交时,混合算法就要试图将模型中的相应的面延伸与混合曲面相交,从而将混合曲面封顶。如果混合边是开放的,并且它的端点所在的顶点是一个凹凸混合顶点,为了将混合曲面封顶,模型中的一些面延伸后才能构造出封顶顶面。多为的凹凸混合顶点是指交于该点的混合边和交于该点的其他边的凹凸性不同。2.5 顶点混合顺序ACIS中提供了多种顶点混合的方法,交于该顶点的混合边的混合顺序决定了顶点混合结果的形状。简单倾斜混合可以通过如下步骤获得,首先将公共顶点的两个边做等半径混合倾斜混合而得到一个光滑的混合边序列,然后对该光滑混合边进行混合操作,其滚动球的半径要较前一个混合操作中的小一些,这样才可以使滚动球通过倾斜圆弧,该圆弧是由第一步中的两个混合曲面的交线形成。通常,如果一个边与其他边光滑连接,对该边的混合操作会自动地过渡到与该边光滑相连的每个边上。这种方式可以通过定义单边混合方式而改变。在单边混合方式中,只计算一个边的混合曲面,并将它延伸而与其邻面相交形成封闭曲面。2.6 高级混合一般来说,混合是模型不同区域之间的过渡曲面,ACIS中的标准混合功能提供了构造面与面之间的过渡曲面能力,高级混合功能将提供同样的操作,不同之处是它具有更多的选项,可以产生更多形状的过渡面。高级昏昏然功能在广义上划分为两类,即有序边混合和实体/实体混合,其中前者扩大了标准混合中面/面混合的范围,而后者提供了一种全新的处理面或者边之间的混合操作的方法。在高级混合中,变半径混合的半径变化形式更自由,以其构造的过渡曲面的形状也更加丰富。另外,在标准混合操作中不能执行的边和面之间的混合操作可以在高级混合中实现。便半径混合中可以支持曲面的延伸。高级混合可以处理比标准混合更多的几何和拓扑,同时提供了更多的混合形状,增强了标准混合中的圆角过渡和直角过渡的功能。然而,高级混合功能所需要的几何体类都是在ACIS中实现的几何体类,因此ACIS的应用程序即使没使用高级混合功能,也可以读写利用高级混合功能产生的这些实体。2.6.1 横截面半径两个实体之间的混合曲面的特征形状一般由该曲面的横截面来表示。横截面是混合曲面上连接两个被混合实体的一条曲线。在标准混合操作中,混合曲面是连接两个被混合曲面的桥梁,也就是说标准混合曲面上连接连个被混合实体的一条曲线。在标准混合操作中,混合曲面是连接两个被混合曲面的桥梁,就是说标准混合曲面不能连接面和边,或者边和边。这种情况下,混合曲面的横截面形状就是沿着该混合曲面从其中一个被混合曲面到另一个被混合曲面的最短路径。圆弧形截面对应是一个管状混合曲面,这种曲面一般用样条曲面来表示,在一些特殊情况下也可以用圆柱或者圆环表示。在标准混合中,混合曲面与被混合曲面保持相切,横截面所在的平面总是与被混合的曲面垂直。直角过渡曲面的横截面是一条直线,它由沿被混合曲面的偏移距离控制,特殊情况下,这种混合曲面用平面或者锥面表示。上面所属的是标准圆角和直角混合曲面的横截面,在高级混合中增加了具有如下几种形状横截面的混合曲面:(1) 椭圆截面,它是由长轴、短轴以及旋转角度等参数控制的椭圆弧;(2) 圆形直角横截面,这种横截面看上去就像在直角混合面上增加了一个圆形凸器,与直角过渡曲面一样,这种混合曲面不和被混合面相切;(3) 拇指因子,按一定的参数(拇指因子)将一般圆弧混合曲面的凸起程度增加或者减少,而混合曲面可以始终保持与被混合曲面相切。拇指因子有左右之分,并且可以单独应用。高级混合功能为超出基本混合功能的不同截面形状提供了几何扩展。在标准混合中混合曲面的横截面始终与被混合的两个曲面保持垂直的关系,而在高级混合中,横截面所在的平面可能与某个用户指定的方向垂直。所有类型的混合曲面的横截面形状都是由混合半径参数控制的,混合曲面上不同位置的不同参数值可以改变横截面的大小。在标准混合中,半径数值是一个常数或者是通过分别指定混合曲面的公共边的两个端点处的半径数值而确定的一个隐含可变半径数值,除了这两种方法,高级混合功能还提供了下述几种定义混合半径的方法:(1) 由一些列半径数值确定,这些半径数值分别与混合边上的不同位置对应;(2) 沿混合边所在的曲面定义一系列参数,这些参数对应着一系列的半径数值;(3) 根据被混合曲面之间的夹角老确定混合半径,以此来获得一个等横截面宽度的混合曲面;(4) 由任意半径函数定义半径。标准混合功能和高级混合功能都提供了混合曲面的自动光滑连接功能。除此之外,高级混合功能还提供了离散半径数值的自动光滑过渡功能,即如果定义了不同位置的参数,最终的混合曲面将强制修改这些参数,以保证不同点之间的光滑过渡。2.6.2 拓扑标准混合操作可以保证混合曲面与混合曲面之间的相切特性,而两个被混合曲面必须在公共边处被混合。对不相邻的曲面之间的混合,标准混合功能在执行时具有局限性,只能处理一些特殊情况。高级混合功能可以处理的混合操作包括含有公共边的两个曲面、两个不连接的曲面、一个面和一个边、一个点和一个面甚至两个边的混合。远距离面/面浑噩,在初始实体中被混合的两个面是分离的,它们之间通过一个直角过渡曲面连接,它们之间没有公共边,不能执行边混合。边/面混合是在一个边和一个面之间执行而不是两个面之间进行的混合操作。这种情况下,必须根据边的凹凸性来确定混合操作的近似开始点位于边的哪一侧,边和面的选择顺序没有限制,可以先选择面,也可以先选择边,都不会影响混合操作的结果。混合中的倾斜线只在标准的混合操作和高级混合操作提供的几何扩展中存在,对于实体/实体混合。倾斜线的效果只有在存在明显混合次序的情况下才可以出现。高级混合操作中,混合模型的混合操作始终在混合过程监视器的指导下执行,该功能可以处理不同类型的混合操作之间的自动过渡,如从面/面混合或者从边/面混合过渡到面/面混合。这种功能仅适用于实体/实体混合。当单步执行混合操作时,应用程序可以通过绘制粗略的混合曲面的图形来提供混合过程反馈。2.6.3 混合过程所有的混合操作首先是给ACIS模型中的实体分配各种各样的混合属性。其中除了一些可以直接驱动混合过程的混合属性之外,还包括所谓的主要混合属性,如面/面混合、顶点混合和基本的实体/实体混合,以及次要混合属性,这些次要属性中详细定义了被混合模型中某个位置具体的混合操作的内容。混合过程首先处理主要混合属性,并且一次只能处理只要属性性列表中的一个属性。在一个成功的混合属性处理过程中将产生一个或者多个混合曲面,同时,新的主要属性也被附加在被混合模型中的实体上并插入主要属性列表中。混合过程也可能导致属性列表中未被处理属性的删除。如果混合属性的处理不成功,该属性将被移动到属性列表的末尾供后续的操作使用或者被删除。在有序边混合中,用户将属性附加在边和顶点上,这些属性就形成了初始属性列表。在实体/实体混合中,用户将一个主要属性和多个次要属性附加在混合模型中,主要混合属性组成了初始混合属性列表。2.6.4 有序边混合有序边的混合操作是按混合边的选择顺序执行的,这些混合仅在曲面与曲面之间进行。它包括所有的混合功能。高级混合功能对有序边混合的扩充主要表现在增加了混合半径函数和横截面形状的控制功能。除了标准混合功能提供的等半径混合和隐式变半径混合(可以指定混合曲线两个端点处的混合半径),高级混合功能可以接受以下述方式定义的半径,并在变半径有序边混合操作中支持曲面的延伸操作。(1) 一些列参数数值(沿混合曲线取值)和半径数值。(2) 一些列位置坐标(沿混合曲线取值)和半径数值。(3) 按固定横截面宽度计算出的隐含半径数值;(4) 半径函数。2.6.5 实体/实体混合实体/实体混合只在高级混合功能中提供。它不但可以进行面/面混合操作而且可以进行非连接面之间的混合操作,甚至可以混合两个分离的壳体。 表2.1默认混合过渡方法当前实体遇到的实体默认处理方法面光滑边通过该边滚动到下一个面上面锐边将混合曲面封顶面与光滑面连接的顶点滚动到光滑曲面上面未与光滑面连接的顶点将混合曲面封顶边面滚动到面上边与相切边连接的顶点滚动到相切边上边不与相切边连接的顶点将混合曲面封顶实体/实体混合操作不是沿着混合边的顺序执行的,而且从一对给定的实体开始,然后沿着“滚动球”的滚动路径自动延伸到下一个被混合的实体上。实体/实体混合可以在面/面、边/边、边/面以及顶点/面等混合类型之间任意转换。该混合操作沿着一些列的实体对进行,我们不能提前获取这些被混合实体的信息。在混合过程中,“滚动球”会不断遇到新实体直到结束,“滚动球”遇到新实体的处理方法,如表2.1中所示。表2.1中所列的是默认的混合方法,我们可为某个实体指定一个指示属性而对该实体强制执行某个混合操作。由于实体/实体混合中不存在有序混合边,因此可以获取指示属性的地方只能是“滚动球”在滚动过程中接触到的实体。指示属性包括“roll on 继续执行混合操作”和“cap执行封顶操作”,具体是那一种操作由用户决定。例如,当面的混合操作过程中遇到锐边时,默认的动作是封顶,而我们可以通过指示属性让混合操作继续执行锐边混合,这时指示属性被附加在遇到的边上。指示属性中可以含有一些位置信息,利用这些信息可以混合边的不同位置定义不同的混合操作。实体/实体混合可以进行等半径和变半径混合操作。变半径混合操作需要光滑的曲线,并且可以有不同的截面形状。在变半径实体/实体混合中支持曲面的延伸。实体/实体混合不能和有序边混合交互使用,每次只能混合一个实体对。在顶点混合和倾斜边混合中不能进行实体/实体混合。3 开发技术介绍本章对本课题开发应用技术的背景进行了简单的介绍,其中包括了VC+6.0和ACIS,以及二者联合使用的方法。3.1 Visual C+6.0介绍一种语言只有在一种界面化的开发工具下,才容易被推广和流传。Visual C+ 6.0就是微软公司推出的C+开发工具,是使用最广的开发工具。本节介绍Visual C+ 6.0工具的开发环境和开发流程。 Microsoft Visual C+ + 6.0(简称VC+ 6.0 ),是微软可视化编程套件Visual Studio 98中的重要组成部分。这套功能强大的Windows应用程序开发系统是由Microsoft C/C+演化而来的。从Microsoft C/C+开始改称为Visual C+,一直发展到今天的Visual C+6.0。由于同是微软的产品,Visual平台是当前Windows应用开发系统中与Windows平台本身支持最彻底的开发平台。Visual C+6.0包含了支持Windows 95 , Windows NT 4.0以及Windows 98的Win32 SDK文档,即人们可以在Visual C+环境下使用Windows SDK的SDK文档提供的API来进行Windows应用程序的开发。Visual C+6.0采用的是32位编程方式,也就是说其生成的程序是在像Windows 95,WindowsNT4.0和Windows98等这样的32位操作系统下运行的。VC+6.0继承了其以前版本的最主要的技术特点:可视化编程和支持面向对象的编程。它提供了一系列可视化编程的工具,如AppWizard和C1assWizard等。它们使Windows编程更为直观。VC+6.0支持的面向对象的编程技术包装了Windows内在的复杂的运行机制,通过微软基础类库MFC,使Windows编程更为简单易学。此外,VC+6.0还具有其他技术特点:如通过ActiveX技术来支持Internet编程,支持ODBC数据库编程等。VC+6.0是一个非常强大的开发工具,一旦掌握它,就可以编制出你想要的应用程序。9VC+6.0的开发过程如下:Visual C+ 6.0编译器负责将C+源代码编译成汇编文件,转换为中间文件(obj文件),然后使用连接器将相关的中间文件连接在一起,生成可执行的二进制文件。其过程如下:(1)源程序经过预处理后交给编译器。(2)如果代码无误,编译器将代码生成汇编程序,再生成若干个目标程序(obj文件)。(3)链接器负责将目标程序进行连接,生成可执行的程序。3.2 ACIS介绍ACIS是一个基于面向对象软件技术的三维几何造型引擎,它是美国Spatial公司的产品。它可以为应用软件系统提供功能强大的几何造型功能。ACIS是用C+技术构造的,它包含了一整套C+类(包括数据成员和方法)和函数,开发人员可以使用这些类和函数构造有关某些终端用户的2/3维软件系统。ACIS可以向应用程序提供一个包括曲线、曲面和实体造型的统一开发环境,它提供了通用的基本造型功能,用户也可以根据自己的特殊需要采用其中的一部分,也可以在这个基础上扩展它的功能。在ACIS中集成了线框造型、曲面造型以及实体造型方法,而且这些造型方法可以在一个统一的数据结构中共存,因此,一个ACIS实体可以用上述方法中的一种和多种同时表示。从应用角度看,不准确地说,初学者(尤其是在C+环境下的ACIS的初学者)可以把ACIS看成C+环境中的一个图形开发类库,而C+是它的运行环境。ACIS提供了文件处理功能,它可以将模型信息保存到磁盘文件中,当然也可以从这些文件里读出并恢复保存的模型信息。这些文件的格式是公开的,这样非ACIS软件系统就可以使用这些信息。例如,一个非ACIS应用程序如果把ACIS模型信息转换到另外的系统中去,就需要了解ACIS存储文件的格式,反之亦然。有两种ACIS存储文件格式:标准的ACIS文本文件(文件扩展名为.SAT)和标准的ACIS二进制文件(文件扩展名为.SAB)。这两种格式的唯一不同是一个为ASCII文本格式而另一个为二进制格式,这两种文件格式的组织结构是统一的。3.2.1 应用程序与ACIS的接口C+应用程序与ACIS的接口可以通过API(Application Procedural Interface,应用程序接口)、C+类及其直接接口函数来实现。对于Microsoft的Windows平台,开发人员也可以在MFC(Microsoft Foundation Class,微软基本类库)中使用ACIS接口(本章第三节讲的就是在VC+环境下如何配置ACIS及构建应用程序框架)。(1) API函数:API函数是应用程序和ACIS的主要接口,它是应用程序用来产生、修改和接受数据的主要方法。API函数将造型功能和一些应用程序特征结合在一起,如参数错误检查和返回操作等。这些函数保证不同版本之间的一致性,这个一致性对一些低级的ACIS数据结构做了改变也要得到保证。(2) 类:类接口是指用于定义ACIS模型中几何体、拓扑以及其他特性的C+类的集合。应用程序可以通过这些类中的公共和保护数据成员和超越函数(方法)直接与ACIS通讯,开发人员为了实现特殊目的,可以从ACIS的类派生出特殊用途的类。类接口在不同版本之间可能存在不同。(3) 类的直接接口函数:这类函数提供了直接调用造型操作的功能,它不具备API函数的应用支持特征,因此这些函数不保证不同版本的一致性。3.2.2 ACIS的相关概念ACIS是用C+构造的图形系统开发平台,它包括一系列的C+函数和类(包括数据成员和方法)。开发者可以利用这些功能开发面向终端用户的三维造型系统。ACIS是一个实体造型器,但是线框和曲面模型也可以在ACIS中表示。ACIS通过一个统一的数据结构来同时描述线框、曲面和实体模型,这个数据结构用分层的C+类实现。ACIS利用C+的特点构造了标准的、可维护的接口。API函数在不同ACIS版本之间保持一致性,而类及其接口函数则可能改变。ACIS中应用到的主要C+概念包括:数据封装、类构造重载、构造拷贝、类方法和操作符重载以及函数重载等。C+没有提供描述几何体的数学基本类,ACIS提供了一些C+基类实现这个功能,并且利用C+的特性可以对它进行了扩充,这样ACIS就可以支持任意几何体的定义和构造功能。(1) 实体和模型对象实体(Entities)是ACIS中最基本的对象,它由C+中的ENTITY类实现,所有的实体对象具有一组相同的功能,例如,实体本身的信息保存功能、自身复制功能以及调试功能。所有的高级ACIS模型对象都继承于ENTITYl类。模型对象(Model Objects)可以是任何能保存到ACIS的SAT文件和能从SAT文件恢复的对象。ACIS的模型对象由派生于ENTITY类的不同层次的类实现。需要说明的是,这里所说的实体与实体造型中的“实体”不是一个概念,后者指“实心体”。(2) 属性和维度属性被用于给实体附加数据,每个实体可以没有或有多个属性。C+中的ATTRIB类直接继承于ENTITY类,它提供了所有属性共享的数据和功能,包括用户定义属性和系统属性。ATTRIB类执行将属性列表附加到模型实体的常务性操作。属性可以是简单数据、指向其他实体的指针、与某个应用程序的链接或可变长度数据。许多属性执行派生于ATTRIB类的特殊任务。对象的维度是为了确定对象上一点所需的个数。一个点需要一个参数表示,则其维度为一,需要两个参数表示则其维度为二,依次类推。换句话说,线上的点是一维的,面上的点是二维的,体上的点是三维的。在ACIS中,一维指线(如直线),二维指面(如平面),三维指实体(如方块或球体)。ACIS中的对象的维度与它所在的空间的维度没有关系,例如三维空间里的一维曲线仍然是一个一维实体。当不同维度的对象在同一个模型中表示的时候,混合维度就出现了。ACIS明确地表示混合维度的对象并允许混合维度操作。一个物体可以包括三维区域、二维和一维区域。ACIS允许在三维区域包含线和平面,这些线和面不必与实体区域的边界相连,可以是封闭和开放的。被包含的面表示实体区域里的一个裂缝或一个非常窄的空间,也就是说二维区域不在实体的点集合中。被包含的线表示实体区域内的一个无限小的小洞,也就是说一维区域不在实体的点集合中。3.2.3 ACIS结构ACIS采用了软件组件技术,软件组件是指相关软件模块的集合。这些软件组件有些是Spatial开发的,也有一些是Spatial在世界各地的合作者开发的,一个产品可以由一个或多个组件组合而成。Spatial公司还提供了几个可选产品,它们可以同其核心产品ACIS 3D造型引擎协同工作,这些可选产品也是由一个或多个组件组成,但是它提供一些特殊或先进的功能,用户可以根据自己的需要选择不同的产品。软件产品关心的是软件如何打包和出售,而组件的问题是如何构造软件,在不影响系统结构的情况下,组件可以被组成不同的软件系统,但是如果改变组件将影响系统结构。3.2.4 Scheme语言Scheme是一种派生于LISP(一种公共程序开发语言)的解释型程序开发语言,它为应用程序开发提供了快速原型方法。这种语言与其他解释型语言的不同之处是它的执行效率非常高。由于它是解释型的程序开发语言,所以用它编写的程序不需要编译和连接就可以在解释器直接运行,开发者可以通过一些简单的练习而快速地掌握Scheme语言。Scheme非常适用于控制任务,如用户交互命令的处理等。对于所有的操作系统平台上的ACIS来说都支持用Scheme语言进行系统开发。ACIS中的Scheme接口是一些函数的集合,基于Scheme的应用程序可以通过这些函数调用ACIS的API函数、类的公共成员函数以及访问ACIS的数据。ACIS系统中含有一个Scheme 解释器,S cheme应用程序就在这个解释器中运行,所以该解释器负责Scheme应用程序与ACIS系统之间的通信。ACIS中的Scheme解释器是按照EIK版的Scheme语言规则设计的,它被用来解释Scheme命令并调用相关的C+代码。Scheme是基于LISP的程序开发语言,它有几个不同的版本,ACIS选择了EIK版本的Scheme语言作为其Scheme开发系统的标准。Scheme语言具有如下特性:(1) 解释型语言,用Scheme语言编写的程序或者命令需要通过Scheme解释器来执行;(2) 支持尾部递归方法,可使用有限的递归过程来编写一些实现复杂算法的代码;(3) 面向对象特性,数据和方法都可以当作Scheme对象,可以被定义、保存以及作为一个程序的结果返回;(4) 模块化程序结构,递归过程中使用标准的程序模块结构;(5) 直接数值传递,过程和函数的参数传递必须以数值方式而不是引用方式进行,在传送之前将参数表达式强制转换为相应的数值,然后再传递。3.2.5 ACIS C+程序基本结构ACIS一共提供了生成7种基本形状的方法,包括4种旋转曲面体(球体、圆锥体、圆环以及圆柱)和3种多面体(立方体、棱柱以及棱锥)。利用C+在ACIS平台上进行系统开发时,除了遵循C+语言的规定之外,还要注意ACIS的一些特点,下图是一个典型的ACIS C+程序结构。图2.1 典型的ACIS C+程序结构3.2.6 SAT文件ACIS提供了文件处理功能,它可以将模型信息保存到磁盘文件中,当然也可以从这些文件里读出并恢复保存的模型信息。这些文件的格式是公开的,这样非ACIS软件系统就可以使用这些信息。例如,一个非ACIS应用程序如果要把ACIS模型信息总转换到另外的系统中去,就需要了解ACIS存储文件的格式,反之亦然。有两种ACIS存储文件格式:标准的ACIS文本文件(文件扩展名为SAT)和标准的ACIS二进制文件(文件扩展名为.SAB)。这两种格式的惟一不同是一个为ASC文本格式而另一个为二进制格式,这两种文件格式的组织结构是统一的。图2.2 SAT文件结构其中1是文件头,主要存储了版本号、模式等信息;2是文件信息,是对文件的一些属性信息的描述;3是数据,是SAT的主体部分,几何体具体描述信息就在这存储,例如ATTRIBUTE,TAG,Pattern等;4是文件结束标志。4 原型系统开发本章主要介绍了VC和ACIS混合编程的前期准备工作,同时介绍了目标文件的生成方法和原型系统的设计思想。4.1 VC+6.0环境中编译ACIS程序假设计算机已经安装了Windows(Win98/2000/xp或者WindowsNT)操作系统和Visual C+ 6.0以及相应的ACIS系统。默认的ACIS调试动态链接库位于acis_dir/lib/NT_DLLD/路径中(其中acis_dir是ACIS系统的安装路径,如:d:acis),扩展名为.DLL。 4.1.1 配置操作系统环境变量首先,右击“我的电脑”;选择“属性”菜单,出现“系统属性”对话框,选择“高级”选项卡;选择“环境变量”按钮,在系统变量列表框中选择“Path”; 选择“编辑”按钮,在“变量值”里,输入“/lib/NT_DLLD”(要根据具体的ACIS安装路径设置,如:d:acis);选择“确定”按钮。上面是Windows NT和Windows 2000中的设置方法,在其他Windows操作系统中,用户可以通过编辑引导目录里的autoexe.bat文件的方法来加入上述路径,如:在Windows 98中,可以在“开始”菜单中,选择“运行”,再输入“msconfig”,即可出现autoexe文件的对话框;或者,按“开始程序附件系统信息系统配置实用程序”,即可弹出“系统配置实用程序”对话框,选择其中的“autoexe”选项,即可配置环境变量“Path”。4.1.2 配置VC+6.0启动Visual C+ 6.0。打开File菜单,选择New菜单项,出现new对话框。选择new对话框中的Project选项卡,在列表框中选择Win32 console Application,并在Project Name文本框中输入工程名(如“My”),在Location文本框中输入保存路径名称,选择OK按钮,出现Win32 Console Application Step 1 of 1对话框。选择An empty project单选项,最后选择Finish按钮。打开Project菜单组,再打开Add to Project菜单组,选择Files菜单项,出现Insert Files Into Project对话框,选择block.cxx文件,最后选择OK按钮,将该文件加入到当前工程之中。打开Visual C+的Build菜单组,选择Set Active Configuration命令,出现Set Active Project Configuration对话框,在Project Configurations列表框中选择My-Win32 Debug选项。打开Visual C+的Project菜单,选择Settings命令,出现Project Settings对话框,确
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届辽宁省阜新市名校数学七年级第一学期期末预测试题含解析
- 顺德用车小知识培训课件
- 宁波象山数学试卷
- 2025二手房买卖中介服务合同
- 2025企业人员借用合同协议模板
- 电脑知识零基础学习培训课件
- 2025【合同协议】工程咨询公司专业技术人员聘用合同
- 电脑前端知识培训内容课件
- 电网解说专业知识培训班课件
- 电网主设备知识库培训课件
- 2025年护士执业资格考试题库-护理质量管理与评价案例分析题库深度解析
- 疼痛管理多学科协作模式-洞察分析
- 考研动员讲座
- 《设备基础知识培训》课件
- 《现代汉语》课件-普通话的声调
- 氯及其化合物(完整版)课件
- 我们要节约粮食 珍惜粮食主题班会
- 第八届全国医药行业特有职业技能竞赛(中药调剂员)考试题及答案
- 传感器技术-武汉大学
- 2024年大学英语四六级考试大纲词汇
- DB11∕T 420-2019 电梯安装、改造、重大修理和维护保养自检规则
评论
0/150
提交评论