机械CAD复习资料 46页

  • 2.62 MB
  • 2022-07-30 发布

机械CAD复习资料

  • 46页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
第一章CAD技术概述1.1有关CAD方面的知识计算机绘图的方式:交互式绘图、被动式绘图(编程式绘图);基础技术(1)图形处理技术。如二维交互图形技术、三维几何造型技术及其他图形输入输出技术。(2)工程分析技术。如有限元分析、优化设计方法、物理特性计算(如面积、体积、惯性矩等计算)、模拟仿真以及各行各业中的工程分析等。(3)数据管理与数据交换技术。如产品数据管理(PDM)、数据库、异构系统间的数据交换和接口等。(4)文档处理技术。如文档制作、编辑及文字处理等。(5)界面开发技术。如图形用户界面、网络用户界面、多通道多媒体智能用户界面等。(6)基于web的网络应用和开发技术。机械设计过程,设计一般经历以下几个阶段:(1)概念设计:通过调查研究、资料收集,仔细分析用户需求,在此基础上确定产品功能,进而构思方案,进行分析与论证,最后获得一组可行的原理性方案。(2)初步设计:从一组可行的原理方案中选一优化方案,绘制总布置草图,确定各部件基本结构和形状,建立相应数学模型,进行主要设计参数的分析计算与优化。(3)详细设计:确定设计对象的细部结构,最终完成总布置图和零、部件图,并编写技术文件。CAPP(ComputerAidedProcessPlanning)是指借助于计算机软硬件技术和支撑环境,利用计算机进行数值计算、逻辑判断和推理等的功能来制定零件机械加工工艺过程。CAPP的功能是进行零件加工工艺路线及工序的编制CAM(computerAidedManufacturing,计算机辅助制造)的核心是计算机数值控制(简称数控),是将计算机应用于制造生产过程的过程或系统。\nCAM是利用计算机对制造过程进行设计、管理和控制,一般来说包括工艺设计、数控编程和机器人编程等内容。第三章工程手册的数据处理设计资料的处理方法:程序化。即在应用程序内部对这些数表及线图进行查表、处理或计算。具体处理方法不外乎有两种,第一种将数表中的数据或线图经离散化后存入一维、二维或三维数组,用查表、插值等方法检索所需数据;第二种将数表或线图拟合成公式,编入程序计算出所需数据。3.1数表的程序化一、普通V带型号及截面尺寸(见表3一1)此表查表时,只有一个自变量,即型号,且为非数值型,查得的函数值为V带的顶宽、带高等,均为离散型实型数。程序化时可定义3个一维数组,并将表中数值填写在程序中,使数组初始化,再定义一个整型变量i代表型号,当i=0时代表Y型,i=1时代表z型,以此类推。以下是C语言的程序片断。inti;floatb[7]={6.0,10.0,13.0,17.0,22.0,32.0,38.0};\nfloath[7]={4.0,6.0,8.0,10.5,13.5,19.0,23.5};floattbp[7]={5.3,8.5,11.0,14.0,19.0,27.0,32.0};如用户给定i=2(即A型),则程序可立即查出b[2]=13.0,h[2]=8.0,bp[2]=11.0。二、平键和键槽的剖面尺寸(见表3一2,图3一1)查表时,根据设计中计算出来的直径dgiven,决定它位于表3一2轴径的哪个范围内,由此查出b,h,t,t1的值。轴径D是一个数值范围,编程时可将它的上限或下限记入一维数组内,表中其余列的值也放入各自的一维数组内。以下是变量和数组的定义:inti;floatdgiven,b,h,t,tl;/*dgiven为已知轴径*/floatD[12]={10.0,12.0,…,75.0,85.0};/*存放表中D的上限值*/floatkb[12]={3.0,4.0,…,20.0,22.0};/*存放表中b的值*/floatkh[12]={3.0,4.0,…,12.0,14.0};/*存放表中h的值*/\nfloatkt[12]={1.8,2.5,…,7.5,9.0};/*存放表中t的值*/floatktl[12]={1.4,1.8,…,4.9,5.4};/*存放表中t1的值*/查表程序的流程图见图3一2。三、包角影响系数K(见表3一3)表3-3包角影响系数K2α(º)90100110120130140150160170180K20.680.740.790.830.860.890.920.950.981.00查表时根据所得的实际包角α查K2值,α和K2均为数值型,可设计两个一维数组来实现。但因计算所得的实际包角α1可能不会正好是表3一3中所列的α值,自然相应的K2值也不会正好是表中之值,因此要用一元函数插值求解(后面将叙述)。已知包角值为α1,定义两个一维数组:floatalpha[10]={90.0,100.0,…,170.0,180.0};\nfloatK2[10]={0.68,0.74,…,0.98,1.00};调用一元函数的插值函数(见3.1.2节),即可求出实际的系数值。3.2一元函数插值设有一用数据表格给出的列表函数y=f(x),如下表:表3-7列表函数xx1x2x3…xnyy1y2y3…yn由于列表函数只能给出结点x1,x2,…,xn处的函数值y1,y2,…,yn,当自变量为结点的中间值时,当精度要求较低时可用附近结点上的函数值来近似代替;如果要求较高,则须用插值的方法求得。插值的基本思想是,设法构造一个函数y=g(x)作为列表函数f(x)的近似表达式,然后计算g(x)的值以得到f(x)的值。最常用的近似函数类型为代数多项式(即形式为:)。代数插值的数学含义可表述如下:设y=f(x)是区间[a,b]上的连续函数,已知它在[a,b]上的几个互于相同的点x1,x2,x3,…,xn上的函数值y1,y2,y3,…,yn。若代数多项式g(x)满足g(xi)=yi(i=1,2,3,…,n)则称g(x)为函数y=f(x)的插值多项式,x1,x2,x3,…,xn为插值结点,区间[a,b]为插值区间,y=f(x)称为被插值函数。插值问题的几何意义是:通过给定的n个点(x1,y1),(x2,y2),(x3,y3),…,(xn,yn)作一条n-1次的代数曲线y=gn-1(x),用以近似地表示曲线y=f(x)。一、线性插值最简单的插值为两点插值,即用一个一次多项式y=g1(x)作为插值多项式,使两个插值点满足此式。其几何意义就是求通过两点(x1,y1),(x2,y2)的直线。通过这两点的直线方程为:\n图3-4两点插值的几何意义一、二次插值线性插值只用到两个数据点的信息,计算简单,但求得的y=f(x)误差较大。如果多用一些数据点来求y=f(x)的近似值,其结果的精确程度就会改善。设已知y=f(x)在x1、x2、x3上的值为y1、y2、y3,这时求作一个二次多项式y=g2(x),使g2(xi)=yi,i=1,2,3。其几何意义是通过三点作一条曲线来近似曲线y=f(x)。如果三个点不在一直线上,作出的曲线就是抛物线。g2(x)叫做二次插值多项式。这种插值称为二次插值或抛物线插值。一般来说,二次插值的近似程度比线性插值要好些。注意:适当提高插值公式的阶数可以改善插值精度,但阶数太高的插值公式效果并不好。在实际进行插值时,通常采用分段插值方法,将插值范围划分为若干段,在每一分段上用低阶插值(如线性插值或抛物线插值)。介绍书p39公式再说下面的框图(3-2)\n注意:xi>n例3-1.有一组实验数据如下表,它有7个点,现要求用二次多项式拟合。\n点号1234567x值y值-3-2-101234230-1-2-5设经验公式为由上述实验数据及经验公式知m=7,n=2,代入公式(3-5)得以下3个方程:()把用表中的值代入,得:求解得:最后得拟合后的经验公式:注意:(1)多项式的幂次不能太高,一般小于7,可先用较低的幂次,如误差较大则再提高。(2)一组数据或一条线图有时不能用一个多项式表示其全部,此时应分段处理,分段大都发生在拐点或转折之处。此外如欲提高某区间的拟合精度,则应在该区间上采集更多的点。简谈:为了计算复杂函数的值,前面介绍几种方法,都是设法求出其近似式——插值函数,最优平方逼近函数,最优一致逼近函数,通过计算近似式的值求得复杂函数的近似值。\n3.5MATLAB语言简介例子:>>(5*2+3.5)/5ans=2.7000解释变量ans>>(5*2+3.5)/5;解释;如果想看ans的内容>>ans>>x=(5*2+3.5)/5>>y=(5*2+3.5)/5;%将运算结果存储于变量y,但不用显示于屏幕MATLAB会将所有在%之后的文字视为程序的注释(Comment),可提高程序的可读性,%之后的文字会被MATLAB忽略不执行。MATLAB可同时执行以逗号(,)或分号(;)隔开的数个表达式:>>x=sin(pi/3),y=x^2;z=y*10若一个数学运算式太长,可用三个句号(…)将其延伸到下一行>>z=10*sin(pi/3)*…>>sin(pi/3)注意:、变量命名规则:第一个字母必须是英文字母;字母间不可留空格;最多只能有31个字母;MATLAB在使用变量时,不需预先经过变量声明,而且所有数据变量均以默认的double数据类型储存。例如:*1、向量的处理>>s=[1352]%注意[]的使用,及各数字间的空白间格,也可用逗号%隔开>>t=2*s+1CAD书P36中包角影响系数表有两个向量\n>>t(3)=2%将向量t中的第三个元素改为2t=3725>>t(6)=10%在向量t加入第六个元素10t=3725010>>t(4)=[]%将向量t的第四个元素删除*2、建立矩阵>>A=[1234;5678;9101112]%注意;>>A(2,3)=5%将矩阵A第二行,第三列的元素改为5>>B=A(2,1:3)%取出矩阵A第二行,第一列至第三列的元素值存于一新%矩阵B>>A=[AB’]%将矩阵B转置后,再以列向量并入矩阵A(此处’不能用%不要粘贴)*3、矩阵运算:矩阵的加减运算:(注意相加减的矩阵必须具有相同维数)>>A=[12345620]>>B=[1324]>>C=A+BC=13375824矩阵与标量的运算:>>A=[12321]+5A=\n67876>>A=[123,442]>>B=2*A>>C=A/3矩阵相乘:(注意左列右行,否则MATLAB产生错误信息)>>A=[1;2]>>B=[3,4,5]>>C=A*BC=3456810矩阵的乘方运算:(注意矩阵必须是方阵)>>A=[123;456;789]>>B=A^2%表示A*A>>B=A.^2%比较这两式的不同,表示A中每一元素的平方1、基本的二维绘图命令:plot是最基本的绘图命令,可以对一组x坐标及y坐标进行描点绘图。例:*1、绘0~2正弦曲线:>>x=linspace(0,2*pi)%在0到2间,等分取100个点,x为长度100的向量,用:再来生成一向量。>>y=sin(x)>>plot(x,y)\n*2、plot命令一次可画多条曲线:>>plot(x,sin(x),x,cos(x),x,sin(x)+cos(x))MATLAB在绘制多条曲线是,会自动转换曲线颜色,以利于分辨(也可由使用者自行设置)。图形的控制:plot命令除了接受x及y坐标外,还可接受一个字符串输入(如何输入),用以控制曲线的颜色、格式及标记,plot(x,y,’CLM’)例子:*1、>>x=0:0.5:4*pi%0和4为x的起始和结束元素,0.5为各元素相差值>>plot(x,sin(x),’r:diamond’)%r为红色,:代表点线,而diamond为数据点%菱形标志\n*2、前面的图表示的更清楚:>>x=linspace(0,2*pi)>>plot(x,sin(x),’r-o’,x,cos(x),’y--x’,x,sin(x)+cos(x),’b-.*’)表3-15plot命令的曲线颜色选项参考表表3-16plot命令的曲线格式参考表\n表3-17plot命令的曲线符号参考表\n在一个窗口画多个图形:可在plot命令之前加上subplot,其一般形式为subplot(m,n,p),表示将窗口分为mxn个区域,而下一个plot命令则会绘图于第p个区域,其中p的算法为由左至右,一行一行算起。>>x=0:0.1:4*pi>>subplot(2,2,1);plot(x,sin(x))>>subplot(2,2,2);plot(x,cos(x))>>subplot(2,2,3);plot(x,sin(x)+cos(x))>>subplot(2,2,4);plot(x,x.^2)\n加入文字说明:1、内插法内插法(interpolation)可用于预估在数据点中间的函数值,其应用范围相对广泛。MATLAB提供了一系列的内插函数,有一维的、二维的、三维的及n维的,且每种都对应有很多种不同的插值方法。以应付不同的需要。interp1是MATLAB的一维内插命令,其基本方法是利用多项式来进行内插运算。yi=interp1(x,y,xi,method)向量x是数据点的x坐标,向量y是数据点的y坐标,向量xi是内插点,字符串method则指定使用方法;*1、线性内插法(method=‘linear’)*2、抛物线插值(method=’parabolic’)*3、三次多项式插值(method=‘cubic’)*4、三次样条内插(method=‘spline’)例1、《CAD》书p36包角:求包角为a=95时的k值(用线性插值和抛物线插值)>>a=[90100110120130140150160170180]>>k=[0.680.740.790.830.860.890.920.950.981.00]>>ai=95>>ki1=interp1(a,k,ai,’linear’)\n>>ki1=0.7100>>ki2=interp1(a,k,ai,’parabolic’)>>ki2=0.7113绘图以比较不同:>>ai=90:1:180>>ki1=interp1(a,k,ai,’linear’)>>ki2=interp1(a,k,ai,’parabolic’)>>plot(a,k,’o’,ai,ki1,’r’,ai,ki2,’k’)例2、为了看清楚各种插值方法的不同看下面的例子(可看出样条插值好)>>x=0:1:4*pi>>y=sin(x)>>xi=0:0.1:4*pi>>yi1=interp1(x,y,xi,’linear’)>>yi2=interp1(x,y,xi,’parabolic’)>>yi3=interp1(x,y,xi,’cubic’)>>yi4=interp1(x,y,xi,’spline’)>>plot(x,y,’o’,xi,yi1,’y’,xi,yi2,’r’,xi,yi3,’g’,xi,yi4,’k’)介绍另一个新概念:M文件:以MATLAB程序代码编写的文件通常以“m”为扩展名,所以这些文件又称为“m文件”(M-file),M文件又分为两类:脚本(Script)、函数(Function)。脚本:其内容包含了MATLAB的各种命令,我们可以在MATLAB命令窗口下直接输入此文件的主文件名,MATLAB即可逐一执行在此文件内的所有命令,,就仿佛我们在MATLAB命令窗口逐行输入这些命令一样。所产生的变量也都存放在MATLAB的基本空间内,脚本文件最适合用于对付简单但重复性高的程序代码,但它不支持输入及输出自变量。举例:函数:也是M文件的一种,它可以接受输入变量,并将运算结果送至输出变量,运算过程所产生的变量都存放在函数本身的工作空间,并不会和MATLAB基本工作空间的变量相互覆盖。因此,函数特别适用于大型程序代码,会使你的程序代码模块化,易于维护与改进。此函数的第一行为函数定义行,定义了此函数的名称(最好和主文件名相同)\n、输入自变量、输出自变量,而function则为关键词,代表此M文件为一函数,第二行则为函数主体,规范函数的运算过程,并指定输出自变量的值。举例:functiony=func1(x)%函数命名与变量方法一致a=[90100110120130140150160170180];k2=[0.680.740.790.830.860.890.920.950.981.00];y=interp1(a,k2,x,'linear');MATLAB的函数名称和变量名称都有相同的限制:只接受前31个字母,而且必须以英文字母作为开头。此外,当文件名称和函数名称不同时,我们仍可按文件名称调用文件,函数名称将被忽略。4、曲线拟合MATLAB提供了polyfit命令以进行多项式拟合:例1、《CAD》p55例子>>x=[-3-2-10123]>>y=[4230-1-2-5]>>p2=polyfit(x,y,2)>>p3=polyfit(x,y,3)画曲线比较精度的高低:>>xi=-3:0.1:3>>yi2=polyval(p2,xi)>>plot(x,y,’o’,xi,yi2,’r’,xi,polyval(p3,xi),’k’,xi,polyval(polyfit(x,y,6),xi),’g’)\n例2、假设我们的观察数据是美国自1790至1990年(以10年为一单位)的总人口,此数据可由加载文件census.mat得到(如图所示),命令如下:>>loadcensus.mat%加载人口数据>>plot(cdate,pop,'o')%cdate代表年度,pop代表人口总数现要预测美国在2012年的总人口。如何考虑:观察曲线可用3次多项式拟合。>>p3=polyfit(cdate,pop,3)>>population=polyval(p3,2012)population=\n311.3273高次数拟合:>>p6=polyfit(cdate,pop,6)>>p9=polyfit(cdate,pop,9)>>xi=1750:1:2030>>plot(cdate,pop,’o’,xi,polyval(p3,xi),’y’,xi,polyval(p6,xi),’g’,xi,polyval(p9,xi),’k’)请注意,多项式的次数越高,就越能逼近所给定的数据。以上述10点数据为例,若我们用9次的多项式来逼近,则此多项式会通过每一个数据点。但这并不表示预测的准确度会提高。高阶多项式对噪声(Noise)的敏感度较高,因此容易产生不准确的预测。第四章图形变换4.1图形变换的方法4.1.1点的变换1.平移变换X—Y平面上的点(xy),在其坐标方向上增加平移量Tx和Ty,可变换至新位置(x′y′)平移变换的关系式为:特点:平移使图形相对于原坐标系由一个位置移动至另一位置,而图形本身不发生变化。2.比例变换若点的x、y坐标分别乘以Sx和Sy,可得新的点,这种变换为比例变换,Sx和Sy为两坐标方向上的比例系数。比例变换的关系式为:比例变换有多种用途,现进行讨论:\n(1)当Sx=Sy时,可把图形放大或缩小;(2)当SxSy时,产生的效果相当于把图形沿平行于坐标轴的方向拉伸或压缩,使图形发生变形;(3)当Sx或Sy为负值时,变换后的图形对称X轴或Y轴,即可产生图形的镜像。1.旋转变换图形绕坐标原点旋转某一角度生成变换后的图形。设点P(x,y)绕原点逆时针方向旋转θ角后到达,则有关系:齐次坐标对点向量(xy)和(xˊyˊ)引入第三个分量,使它们成为(xy1)和(xˊyˊ1),向量(xy1)和(xˊyˊ1)中的第三个元素1,可看作是一个附加坐标,即平面上的一个点(二维向量)用三个坐标(三维向量)来表示。这种用三维向量表示二维向量,或n+1维向量表示n维向量的方法称为齐次坐标表示法。在齐次坐标表示法中,n维向量的变换是在n+1维空间内实现的。在n+1维齐次空间中的一个向量可看作一个n维空间中的向量多了一个比例因子H。通常笛卡尔坐标系中的二维点(xy)的齐次表达式是(xyH),其中H≠0,于是,给出点的齐次坐标表达式(xyH),就可求得二维笛卡尔坐标即:3.图形变换的基本原理用数学表达式表示如下:旧点(集)×变换矩阵新点(集)注意:上面的旧点或新点必须用齐次坐标表示。T─表示变换矩阵。2.变换矩阵\n如果点的位置向量用齐次坐标表示,那么图形的变换就可以用齐次坐标表示的模型矩阵与变换矩阵相乘来完成。由于二维图形和三维图形的变换矩阵有所不同,在后续作详细讨论。4.2二维图形变换4.2.1二维图形基本变换1.平移变换在二维图形变换中平移变换矩阵形式如下:T=2.比例变换在二维图形变换中比例变换矩阵形式如下:S=3.旋转变换在二维图形变换中旋转变换矩阵形式如下:R=二维图形的基本变换矩阵如下表:表4─1二维图形的基本变换矩阵\n\n4.2.2二维图形变换举例例1.若对点p(x,y)进行平移变换,则有:\n例2.如下图,使矩形ABCD沿X向平移20,沿Y向平移20,求变换后的矩形坐标。解:图4—1矩形ABCD变换矩阵为:T=对矩形进行平移变换:例3.当S>1时,对点P(x,y)的位置向量进行如下变换,可使两个坐标同时缩小。\n总结:为了便于解决问题,用三维向量来表示二维向量,或者说用n+1维向量来表示n维向量的方法称为齐次坐标表示法。在n维空间的坐标称正常坐标,在n+1维空间的坐标称为齐次坐标。4.3.1三维图形基本变换1.比例变换变换矩阵主对角线的元素a、e、j、s的作用使立体产生局部或总体比例变换。(1)恒等变换图形不发生变化。(2)局部比例变换立体各向缩放比例不同,产生类似变形,变换矩阵为:\n例:设变换矩阵为,对单位立方体进行变换。图4─2单位立方体经局部比例变换后的图形这时正方形变成长方形。(3)全比例变换当a=e=j=1,S≠1时,立体产生整体比例变换,变换矩阵为:例:对三维点进行变换:\n即:讨论:当01时,立体各方向等比例缩小;当S<0时,为对原点的反射加比例变换。例:设S=0.5,对单位立方体进行全比例变换。可见立方体放大一倍。2.错切变换错切变换可使空间立体上某个面沿x、y、z三个方向发生错移变形,错切变换是画斜轴侧图的基础,其变换矩阵的特点是主对角线上的元素全为1,第四行和第四列的其他元素全为0:\n三维错切变换按错切方向的不同,可有六种情况:沿x方向错切,有d、h项;沿y方向错切,有b、i项;沿z方向错切,有c、f项。(可见影响x、y、z坐标值分别是变换矩阵的第一列、第二列和第三列,即列元素,最后的元素s影响所有坐标值)例:设,对点进行变换。变换后的结果:图4—3经错切变换后的图形3.平移变换平移变换是指立体在空间沿x、y、z三方向移动一段距离,立体本身的形状和大小并不改变,变换矩阵为:分别为三个方向的平移量,由它们的正负来决定立体的平移方向。如:l=3、m=3、n=3对单位立方体进行变换。4.旋转变换三维旋转变换是指空间立体绕坐标轴旋转θ角,θ角的正方向为右手螺旋方向(如下图),在三维变换中一般习惯采用右手坐标系。变换前后立体的大小和形状不发生变化,只是空间位置相对于原位置发生了变化。\n图4—4三维变换中采用的右手坐标系及右手螺旋方向旋转变换矩阵的规律是:绕哪个坐标轴旋转,立体各点在此轴的坐标值不变,决定x、y、z坐标值变化的是4×4单位矩阵中主对角元素1,如果不是1将会使各点坐标值发生变化,绕哪个坐标轴旋转,则主管该轴坐标的一列元素不变,按二维旋转规律将其旋转矩阵中的元素填入相应的位置之中。(1)绕x轴旋转θ角这时x轴坐标不起变化,旋转后立体各点的y、z坐标发生变化,按二维旋转规律将旋转元素填入4×4单位矩阵中相应位置,即:\n(2)绕y轴旋转θ角绕y轴旋转,其上各点的y坐标不变,x、z变化,按上分析其变换矩阵为:这时注意:绕y轴旋转需将二维旋转矩阵中两个sinθ的正负号对换一下。(3)绕z轴旋转θ角其上各点z坐标不变,只是x、y坐标发生变化,其矩阵为:其它的三维基本变换矩阵可见书。4.3.2三维图形的正投影变换说明V、W、H面。\n图4─5三面视图的定义建立了物体三维信息的数学模型之后,如何得到六个基本视图的绘图信息呢?前者是三维信息,后者是二维信息,也就是说需要将三维信息通过矩阵变换,使它变成二维信息,此即正投影变换。现以V、H、W三个基本变换为例,则变换可用下列形式写出:1.正投影(V面)变换矩阵向V面投影,这时使y坐标为零,可通过恒等变换矩阵控制y坐标的第二列元素为零,即:点在V面上投影的坐标为:2.水平(H面)投影变换矩阵将三维物体的点集向H面投影,再绕x轴按右手旋转-90º,然后沿z轴方向向下平移-n距离,使V、H投影间保持间距为n。向H面投影绕x轴旋转-90º再沿Z方向平移-n点在H面上投影的坐标为:\n3.侧面(W面)投影变换矩阵将三维形体的点集向yoz平面投影,然后绕oz轴按右手系旋转90º,再沿ox方向平移-l,即:向w面投影绕z轴旋转90º再沿x方向平移-l点测面投影的坐标为:最后通过上述变换引出组合变换概念,说明与顺序有很大的关系,再提一下透视变换。4.3.3齐次坐标的优点齐次坐标的优点:(1)齐次坐标是帮助描述变换的工具,引入齐次坐标概念后,变换矩阵的功能更加齐全,它可以实现图形的所有基本变换。(2)引入齐次坐标后,可使不少复杂问题得到简化,在n维空间的问题有相对应的在n+1维空间的问题,而在n+1维空间的结果往往比在n维空间易于获得。第五章二维几何建模方法5.1交互几何建模5.2参数化几何建模传统的交互式绘图一般需要用精确的尺寸值定义几何元素,输入的每一条线都必须\n有确定的位置,图形一旦建立,即使结构相似但想改变图形大小尺寸,只能对图形进行重建。在机械设计中,许多零件特别是标准件,如齿轮、轴、螺钉、螺母、垫圈和轴承等都具有类似性。如果采用参数化绘图,就可以节省绘图时间,提高作图效率。5.3形状特征拼合法几何建模第六章三维产品建模技术6.1三维几何造型技术6.1.1几何造型概述1.什么是几何造型几何造型是指一种技术,它能将物体的形状及其属性(如颜色、纹理等)存储在计算机内,形成该物体的三维几何模型。这个模型是对原物体的确切的数学描述或是对原物体某种状态的真实模拟。这个模型将为各种不同的后续应用提供信息,例如由模型产生有限元网格,由模型编制数控加工刀具轨迹,由模型进行物体间碰撞、干涉检查等。很显然,用计算机对模型进行分析或模拟比对实物进行制作或处理要容易得多,因此CAD系统无不将几何造型作为系统的核心。通常把能够定义、描述、生成几何模型,并能交互地进行编辑的系统称为几何造型系统。市场上有许多这样的系统,AutoCAD,Pro/E,UG等就是这样的系统。6.1.2三维几何造型系统的三种模型以下三种模型代表了形体在计算机内三种不同的存储方式。1.线框模型(wireframemodel)20世纪60年代初期的线框模型仅仅是二维的,用户需要逐点、逐线地构建模型,目的是用计算机代替手工绘图。由于图形几何变换理论的发展,认识到加上第三维信息再投影变换成平面视图是很容易的事情,因此三维绘图系统迅速发展起来,但它同样仅限于点、线和曲线的组成。图6—1说明了线框模型在计算机内存储的数据结构原理。图中共有两个表,一为顶点表,记录各顶点坐标值;二为棱线表,记录每条棱线所连接的两顶点。\n由此可见三维物体是用它的全部顶点及边的集合来描述,线框一词由此而得名。图6—1线框模型的数据结构原理(a)立方体;(b)顶点表;(c)棱线表线框模型的优点如下:(1)由于有了物体的三维数据,可以产生任意视图,视图间能保持正确的投影关系,这为生成多视图的工程图带来了很大方便。还能生成任意视点或视向的透视图及轴测图,这在二维绘图系统中是做不到的。(2)构造模型时操作简便,在CPU时间及存储方面开销低。(3)用户几乎无需培训。使用系统就好像是人工绘图的自然延伸。缺点如下:(1)因为所有棱线全都显示出来,物体的真实形状需由人脑的解释才能理解,因此如\n图6-2有二义性的线框图图6-3缺少轮廓信息的线框图图6—2那样可出现二义性理解。此外当形状复杂时,棱线过多,也会引起模糊理解。(2)缺少曲面轮廓线,如图6—3,这是因为在线框模型中不包含这样的信息。(3)由于在数据结构中缺少边与面、面与体之间关系的信息,即所谓拓扑信息,因此不能构成实体,无法识别面与体。更谈不上区别体内与体外。因此从原理上讲,此种模型不能消除隐藏线,不能作任意剖切,不能计算物性,不能进行两个面的求交,无法生成数控加工刀具轨迹,不能自动划分有限元网格,不能检查物体间碰撞、干涉等。但目前有些系统从内部建立了边与面的拓扑关系,因此具有消隐功能。尽管这种模型有许多缺点,但由于它仍能满足许多设计与制造的要求,加上上面所说的优点,因此在实际工作中使用很广泛,而且在许多CAD/CAM系统中仍将此种模型作为表面模型与实体模型的基础。线框模型系统一般具有丰富的交互功能,用于构图的图素是大家所熟知的点、线、圆、圆弧、二次曲线、样条曲线、Bezier曲线等。2.表面模型(surfacemodel)这以图6—1(a)中的立方体为例,表面模型的数据结构原理见图6—4。\n图6-4表面模型的数据结构原理(a)立方体;(b)顶点表;(c)棱线表;(d)表面表与线框模型相比,多了一个面表,记录了边与面之间的拓扑关系,但仍旧缺乏面与体之间的拓扑关系,无法区别面的哪一侧是体内还是体外,依然不是实体模型。表面模型的优点是能实现以下功能:消隐、着色、表面积计算、二个曲面的求交、数控刀具轨迹生成、有限元网格划分等。此外擅长于构造复杂的曲面物体,如模具、汽车、飞机等表面。表面模型的缺点是只能表示物体的表面及其边界,它还不是实体模型。因此,不能实行剖切,不能计算物性,不能检查物体间碰撞和干涉。表面模型又分为平面模型和曲面模型。前者将物体表面划分成多边形网格,构成图6—4那样的数据结构;后者将物体曲表面划分成若干曲面片再进行光顺拼接。关于曲面造型系统的数据结构与造型方法请读者参考有关资料,本书不再讲述。下面给出表面模型中有关曲面图素的种类。(1)基本曲面。一般有圆柱面、圆锥面、球面、环面等,有些造型系统提供这些基本曲面,有些造型系统则不提供,而是通过拉伸、回转、扫描等造型方法生成这些基本曲面。(2)规则曲面。常见的有平面、直纹面、回转面、柱状面等。平面常用三点定义,用它作剖切平面,见图6—5(a)。直纹面见图6—5(b),它的导线是两条不同的空间曲线,母线\n是直线,其端点必须沿着导线移动,可表示非扭曲的曲面,造型系统中用专门的命令生成直纹面。回转面见图6—5(c),先绘制一平面线框图,再绕一轴线旋转生成。柱状面见图6—5(d),先绘制一平面曲线,然后沿垂直于该面的方向拉伸而成,柱状曲面具有相同的截面。(3)自由曲面。常见的有Bezier曲面、B样条曲面、Coons曲面等。Bezier曲面见图6—5(e),它是一组空间输入点的近似曲面,但并不通过给定的点,不具备局部控制功能。B样条曲面见图6—5(f),它也是一组输入点的近似曲面,但可局部控制。Coons曲面见图6-5(g),它由封闭的边界曲线构成。在造型系统中,上述自由曲面的生成通常用所谓的“蒙皮”的方法生成,其本质就是数据点的插值和拟合。可针对一组给定的曲线族进行蒙皮,也可对二组相互交错的曲线族进行蒙皮。(4)派生曲面。包括圆角曲面(图6—5(h))、等距曲面(图6—5(i))、过渡曲面等。派生曲面是在已经存在的曲面或实体上生成的曲面,在造型系统中都有专门的命令生成这些曲面。以上介绍的各种曲面图素在它们生成以后,可以在造型系统的曲面编辑环境下采用并(对两个相邻曲面作拼接)、交(交线外的部分被剪掉)、修剪(切除多余部分)、延伸(向某一方向扩展)等方法形成曲面立体。\n图6—5表面模型中的各种图素3.实体模型(solidmodel)它与上述表面模型不同之处在于确定了表面的哪一侧存在实体这个问题。常用办法见图6—6(a),(b),用有向棱边的右手法则确定所在面外法线的方向,例如规定正向指向体外。如此只需将图6—4(d)的表面表改成图6—6(c)的形式,就可确切地分清体内体外,形成实体模型了。\n图6-6有向棱边决定外法线方向实体模型的数据结构当然不会这么简单,可以有许多不同的结构。但有一点是肯定的,即数据结构不仅记录了全部几何信息,而且记录了全部点、线、面、体的拓扑信息,这是实体模型与线框或表面模型的根本区别。正因为如此,实体模型成了设计与制造自动化及集成的基础。依靠计算机内完整的几何与拓扑信息,所有前面提到的工作,从消隐、剖切、有限元网格划分、直到NC刀具轨迹生成都能顺利地实现,而且由于着色、光照及纹理处理等技术的运用使物体有着出色的可视性,使它在CAD/CAM领域外也有广泛应用,例如计算机艺术、广告、动画等。实体模型目前的缺点是尚不能与线框模型及表面模型间进行双向转化,因此还没能与系统中线框模型的功能及表面模型的功能融合在一起,实体造型模块还时常作为系统的一个单独的模块。但近年来情况有了很大改善.真正以实体模型为基础的、融三种模型于一体的CAD系统已经得到应用。实体模型的构型方法常用计算机内存储的体素(primitive),经集合论中的交、并、差运算构成复杂形体。所谓体素是一些简单的基本几何体,如长方块、圆柱、圆锥和球等。图6—7表示一些常见的体素,图6—8表示形体交、并、差的结果。\n图6—7表示一些常见的体素图6—8并、交、差操作结果(a)二维并、交、差;(b)三维并、交、差6.3特征建模技术6.3.1特征建模概述1.实体造型的优缺点实体造型的突出优点是计算机内真正存储了物体的三维几何与拓扑信息,这就使物体体积、面积、重心、惯性矩等的自动计算、隐藏线隐藏面的消除、有限元网格划分、物体截切及碰撞干涉检查、CAD/CAM集成、动画模拟、真实图形显示等成为可能,从而使这一技术在CAD/CAM、模拟仿真、医学、广告、计算机艺术等领域获得了广泛的应用。但实体造型的主要缺点是只存储了形体的几何形状信息,缺乏产品开发全生命周期所需的信息,诸如材料、加工特征信息、尺寸公差、形位公差、表面粗糙度、装配要求等信息,因此不能构成符合STEP标准的产品模型,导致CAD/CAPP/CAM集成及更大范围集成的困难。此外实体造型系统在零、部件造型设计时,只能提供无工程语义的简单体素的拼合,这种初级的构型手段,不能满足设计、制造对构型的需要,因为设计工程师与制造工程师在设计或考虑一个零、部件形状时,总是从那些对设计或制造有意义的基本形体特征出发,然后加以组合,形成所需的零、部件,因此实体造型提供的构型手段不符合工程师的习惯。2.特征建模的特点针对上面所说的实体造型的缺点,从20世纪80年代开始,作为实体造型的发展,提出了特征建模(feature—basedmodeling)的思想,并对其进行了深入的研究。特征建模的主要思想是:\n(1)从构型角度来说,不再将抽象的基本几何体(如图柱、圆锥、球等)作为拼合零件的对象。而是选用那些对设计制造有意义的特征形体作为基本单元拼合成零件,例如槽、凹腔、凸台、孔、壳、壁等特征。(2)从信息角度来说,特征作为产品开发过程中各种信息的载体,不仅包含了几何、拓扑信息,还包含了设计制造所需的一些非几何信息,如材料信息、尺寸、形状公差信息、热处理及表面粗糙度信息、刀具信息、管理信息等,这样的特征就包含了丰富的工程语义,可以在更高的信息层次上形成零、部件完整的信息模型。由上述思想所形成的特征建模有以下特点:(1)建立的零、部件模型不仅包括了几何信息,还包括了下游活动(计算机辅助工艺过程设计、数控编程等)所需的信息,形成了符合STEP标准的产品信息模型,从而为CIMS及并行工程(CE)环境下的CAx与DFx等集成打下了良好基础。(2)能以工程师所熟悉的方式进行设计,比实体造型有更高的设计效率。第七章AutoCAD的定制和二次开发7.1模板文件(扩展名为dwt)利用模板文件(扩展名为dwt)建立适用于本专业的图形编辑环境。结合书P189法兰盘零件图作一机械模板。主要有图纸大小、单位精度、图层、标注样式、文字样式等。7.2AutoLISP语言利用AutoLISP语言定义新的函数或命令,可方便地实现参数化程序绘图。用AutoLISP语言编写的程序文件,也称LISP文件,文件的扩展名为“.lsp",装入该文件的格式是:Cmmand:(load"LISP文件名“)名字为ACAD2000.LSP的文件,AutoCAD将会自动将其装入。用AutoLISP语言提供的函数可定义新的函数,也可以定义AutoCAD的新命令。执行函数的格式是:Command:(函数名_变元…)\n返回的是函数的运行结果。如果用AutoLISP语言定义的是AutoCAD的新命令,这个新命令的用法同AutoCAD的普通命令一样。AutoLISP函数或用AutoLISP语言定义的命令都可作为菜单项的组成部分,这也是提高自动设计程度的一个途径。7.3定义菜单、工具栏AutoCAD提供菜单文件的格式,供用户定义自己专业的菜单,包括有下拉菜单、工具栏、幻灯片菜单、卸载装载部分或全部菜单。AutoCAD用文件定义菜单,文件的扩展名为“.MNU",在图形编辑状态的“Command:”提示下,用MENU命令将其装入。根据AutoCAD提供的菜单文件文法,用户可建立自己专用的菜单或扩充现有菜单的内容,这是对AutoCAD进行二次开发的一个重要途径。7.4形(SHAPE)和块(BLOCK)7.4.1形和形文件形(shape)是由直线、圆弧这样的一些矢量组成的特殊实体,用于定义字母、数字、汉字或专用符号。形文件是记录形的定义的文件,形的源文件的扩展名为“shp”,经编译后的目标文件名为“.shx”。AutoCAD提供的各种西文字体以及数学、天文、地图、气象和音乐符号就是通过形定义的。二、例子:\n用标准矢量定义汉字“中”该形的完整定义如下:*130,17,ZHONG13,5,2,020,1,054,2,029,1,02C,040,024,048,2,04E,010,07.4.2图块块命令有两种:blockwblock,比较两命令的不同。现用wblock建立一个带属性的块来表示粗糙度符号。

相关文档