




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于proengineer的卡车三维参数化总布置设计系统摘 要:介绍了在建立零部件图形库、底盘参数数据库、底盘设计标准库的基础上,通过pro/engineer软件进行二次开发建立的集成于pro/engineer环境下的卡车底盘参数化三维总布置设计系统。该系统的研制在一定程度上实现了卡车底盘的虚拟设计与虚拟开发。详细阐述了系统开发的基本原理和主要方法。 关键词:卡车总布置计算机辅助设计参数化1 引言产品设计通常可以分为创新设计和变型设计两类,在机械、汽车行业中,创新设计较少,大量的是变型设计,也就是在原有产品的基础上,按市场需求进行局部换型和调整、重组。变型设计的实现过程可以最大限度地利用企业已有的成熟产品资源,具有很强的灵活性和适应性,这也就要求企业实施平台化战略。卡车是一种多品种、多系列的产品,新技术、新产品日益广泛的应用使得卡车的底盘的更新和换型周期不断缩短。卡车性能主要取决于底盘,卡车底盘设计制造水平的不断提高是卡车行业赖以发展的基础。同时,底盘作为平台战略的主要对象,它的快速设计与开发对企业产品平台化战略的实施也必将产生积极的作用。车辆的总布置是整车开发的基础,其水平对整车产品质量和性能起决定性作用。现惯用的是二维平面方法,它要求总布置人员素质要高,必须对产品零部件相当熟悉且总布置工作必须做细,总布置过程当中要基本完成全部部件的布置,部件设计人员不独立进行部件的布置。这种做法的优点是总布置人员站在整车的高度全局统筹考虑,一般不易发生由于部件之间缺乏沟通造成的干涉等矛盾;缺点是要求总布置人员具有相当丰富的专业知识和经验并且对各种繁杂的产品具有较深入的了解,对零部件掌握程度高,否则由于部件人员介入晚,一旦总布置出现问题极易影响开发进度和质量。针对汽车总布置的性质和特点,结合企业实际,以大型cad/cae/cam三维软件pro/engineer为基础进行二次开发,研制了卡车底盘总布置设计系统,同时采用部件设计人员参与部件布置、总布置与部件布置相结合同步进行的开发思路,使该系统操作简单,设计过程直观、高效,适用于轻卡底盘变型设计与开发。2 pro/engineer软件 pro/engineer是美国ptc公司(parametric technology corporation,参数技术公司)开发的三维造型设计系统,它以单一数据、参数化、基于特征、全相关性以及工程数据再利用等改变了传统机械设计的观念,为工业产品设计提供完整的解决方案,成为当今世界机械cad领域的新标准,广泛应用于造型设计、机械设计、模具设计、加工制造、机构分析、有限元分析及关系数据库管理等各个领域。pro/engineer复合式建模工具较之纯参数化的系统更灵活和自由,可以有效利用已有的产品模型数据并充分发挥其在新产品设计中的价值,特别是其自顶向下的设计思路,运用layout和骨架来传递和交流设计意图,大大提高了设计效率。pro/engineer软件还提供了强大的装配功能,包括定义不同零部件之间的位置约束关系,生成爆炸视图,进行零部件之间的干涉检查,并计算装配体的距离、总重、重心等各种物理属性等。3 底盘总布置设计系统基本结构图1为卡车底盘总布置设计系统基本框架结构。4 三维参数化总布置的实现4.1 基础环境建立(1)硬件设施。局域网基础上的高性能pc机或工作站,主服务站(总布置)对硬盘、内存、显卡等要求要高。(2)软件设施。具备pro/engineer产品中pro/engineer、pro/assembly等模块,可进行三维建模、cad转化、曲面、骨架等功能支持。(3)功能模块的配置。根据不同用户分pro/engineer的功能模块。(4)工作目录环境设置。设定服务区域及模型存放位置。(5)建立零件标准启动模板。使各用户的零件特征具有一致性。(6)建立装配标准启动模板。在同一环境下的装配实现。(7)配置统一使用环境。对长度、密度等配备同一基准。(8)配置统一绘图环境。设定可以输出生产用图的背景,包括图框、符号库等。(9)标准件、常用件、汽标件、厂标件整理。自动调用已存在的零部件库及标准件库。4.2明确设计任务,界定关联范围根据设计任务书的要求和各零部件的分组情况,确定各自部件,为模块化建立基础。4.3导入主产品结构定义及骨架模型建立方法根据各总成间的构建情况,设定传递接点和要素,用以控制设计意图在各系统间的传递,同时为骨架传递确定初步要素。同时建立整车基准坐标系和各总成坐标系,各总成坐标系与整车坐标系可无关联联系。如图2所示。图2 建立整车基准坐标系和各总成坐标系4.4约定(conventions)在设计之前仍需对整个过程进行约定,包括对象(object)的文件命名约定、产品库与标准库中典型的对象类型、库文件夹结构、角色(roles)和授权(艾俊路桂婷(北汽福田汽车股份有限公司)izations)等的约定,以及诸如采用标准化的格式、记录本人的工作任务、接受信息来源、输出信息方向、变更的影响范围等等,以使项目的组织管理及设计过程的了解有据可考。设计流程、任务范围界定、任务描述由各系统的设计人员在未开始设计之前,先静下心来,描述自己在该项目中的角色,设计内容,与周围的信息交流内容和形式,并将其记录在文档中,存档于数据库,同时与所设计的子系统相关联,有利于理顺设计思路,流畅设计过程,便于后续自顶向下设计方法的开展。同时为后续新项目的快速启动奠定基础。4.5零部件三维参数化模型传统的设计过程中,原有的几何模型是设计者用固定的尺寸值得到的,零件的结构形状不能灵活地改变,一旦零件尺寸发生改变必须重新绘制相应的几何模型。所谓参数化设计即以一定量的参数控制零件的几何模型,通过修改参数而改变几何模型,从而改变零件的结构尺寸。利用参数化技术进行设计时,图形的修改非常容易,用户构造几何模型时可以集中于概念和整体设计,因此可以充分发挥创造性,提高设计效率。我们知道卡车产品一经定型,在其众多系列变型产品中,一些零部件的结构基本不变,通常都是个别的地方有所改动或改变总成的位置更换总成,如切换发动机、变动轴距等.在原车基础上进行变型车设计能充分体现出参数化的优势。卡车底盘总布置设计首要任务是确定底盘各总成的基本结构型式和空间大致位置,在只考虑零部件主要尺寸的前提下进行总成及零部件的空间位置及基本结构参数的动态修改。为此,首先必须抽取各零部件的总体参数,即与总布置有关的基本结构参数,如表征零部件外形轮廓的长、宽、高等的尺寸,零部件的定位基准等,通过这些总体参数控制零部件的简化模型,进行变量化、参数化设计。在底盘装配时,通过修改相应参数就可以实现汽车零部件的快速布置和基本结构尺寸的动态修改,这个用layout来进行总布置的方法是卡车参数化总布置所要达到的一个目标。4.6卡车参数化设计模型的控制点卡车总布置是从动力总成开始的,动力总成在整车中的定位参数有:动力线与0z面(一般取车架上平面较大平面为0z平面)的夹角,动力总成的设计基准点(一般取曲轴中心线与发动机缸体后端面的交点)坐标、动力总成在xoy面内的倾角(此参数在一般在装化油器的汽油车中出现),而此定位参数靠发动机前悬置和变速器吊架来保证。动力总成包括发动机、离合器、变速器。发动机在本车型设计中被分为发动机本体、进气系统、排气系统、供油系统及冷却系统等五个模块:发动机本体其所要控制的要素为发动机软垫安装点、离合器壳在发动机上的安装点、进排气口、进出水口,进出油口及发动机的部分外形(主要为油底壳外形和发动机上表面);发动机其他模块则需要控制的要素为与发动机的联接位置和在车架上的安装位置。离合器在本车型设计中所要控制的要素为离合器壳外形、离合拨叉与分泵的接触点、离合器分泵安装点、变速器操纵支架安装点以及离合壳与发动机、变速器的安装点。变速器在本车型设计中所要控制的要素为变速器外形、变速器与吊架安装点、输入输出轴的参数、装手制动器的位置。在总布置的骨架中需有动力总成的定位参数和与前后发动机悬置的安装点,在以后的设计中动力总成的位置可以靠改这些参数来实现。动力总成分组做的动力总成骨架需要与总布置中的动力总成的参数一样。在动力分组在以后的设计中,只能在动力总成骨架中修改骨架和增加中一些参数,不能删除初定的参数,否则就会造成总布置再生的失败。在动力总成中进一步创建发动机本体、进气系统、排气系统、供油系统及冷却系统、离合器、变速器子总成;在这些子总成里面首先创建这相子总成的骨架零件。然后根据骨架创建各子总成的零件,或将零件安装在骨架上。当其中一零件需要其他零件的面做参考时,尽量不从同一级关系的零件中去取参考,从此一级零件的骨架上或上一级的零部件上去取参考,如传动轴的中间支撑由车架提供安装点,在传动轴的骨架中,万向节一定要建立为十字轴的骨架,同时为了以后的可调性和传动轴随动性,每一个传动轴采用两段,由中间轴线和与通过与十字轴连接的孔中心线与传动轴骨架装配。4.7 参数化底盘总成装配树型结构在装配体中各个组成的零件和子部件之间构成了装配关系树。在建立底盘装配模型之前,需要先建立好底盘参数化总装配的树型结构。参数化总装配树型结构的根节点为我们所要建立的底盘文件,各大总成作为树型结构的一级子节点,对于复杂的总成如包含有纵梁、横梁的车架还有二级甚至三级子节点。父节点与子节点之间的关系由相关参数联系,这些参数包括配合参数和安装定位参数(尺寸参数、位置参数)。图3所示即为卡车底盘总体装配树简单结构示意图。在该树型结构中,不同分支的节点之间存在着限制或约束关系,所以在确定总成及零部件的安装位置时,需要对该节点增加相关参数或安装位置的限定。骨架模型是最好的传递设计意图的工具,同时保证了信息传递途径的单向性,因而这种方式是高度可靠的。在承担设计意图方面,它有三种功能:(1)可作为元件间的设计截面来创建和使用骨架,建立安装关系;(2)划分空间声明,控制元件位置,实现分块同步设计;(3)确定组件的运动,控制元件连结的运动。当将车身与货厢等作为总成,以骨架或约束与底盘系统结合后就形成了卡车参数化总布置系统。4.8总成及零部件装配方式由于底盘总成及零部件位置关系的复杂性,在进行底盘总布置时采用了两种装配方式:骨架装配及约束装配,如图所示。骨架装配具有思路简单,操作快捷、方便的特点。约束装配可以实现不同零件之间复杂的装配关系。骨架装配时零件根据组件内的上下关系创建的特殊零件模型,使用它不必创建元件并将其装配到一起,就可以发展设计规范,骨架零件是组件的一个三维布局,创建组件时可将其用作构架。图 top-down下的骨架装配与约束装配图骨架空间占位进行(排气)零件设计可以使用骨架在不开发元件的情况下,创建组件的三维布局、模拟运动、空间设计并显示组件设计。然后,使用该骨架作为中心参照,通过将信息经组件结构向下传递,就可以改变该骨架以更新元件。同时在开发下级模型时就可以使用组件中的这些块临时地开发空间声明,如图所示在骨架模型中直接进行排气系统的设计。约束装配(assembly)可以实现的形式可分为贴合、对齐、定向、插入等来实现元件间的组合。图4.9 干涉检查及基本运动校核在进行总布置设计时,一项重要的工作就是对各相对运动的零部件进行运动校核。其中包括转向轮极限转角和钢板弹簧极限动载时的运动干涉情况。在pro/engineer中,干涉检查是静态的,只有当用户发出命令时才进行。但可以通过analysis中的modle analysis来输入一定参数,从而进行初步分析。钢板弹簧是卡车底盘广泛采用的悬架型式之一。对于发动机前置车型,前钢板弹簧的极限上跳可能与布置在其上方的发动机油底壳发生干涉;对于后驱动车型,后钢板弹簧的调动范围将影响与后桥凸缘相连的传动轴参数的设计选择。因此必须对钢板弹簧的运动进行校核。通过将正反弯曲的两段圆弧前轮转向的运动校核是总布置设计必须进行的工作,其目的是检查转向轮与转向直拉杆、车架之间的运动间隙。车轮运动实际是由转向节绕主销的转动引起的。在进行车轮装配时,我们通过引入曲线与曲面约束来进行模拟运动。这样,在进行车轮转向的检查时,只要调整转向节与前轴之间定义的angle约束的角度大小,就可以实现前轮转向角度的调整,还可以得到任意角度下车轮与转向直拉杆、车架等的运动间隙情况。4.10 质量参数计算汽车的质量参数是总布置设计必须考虑和确定的参数。它直接影响着汽车的性能和型式。在pro/engineer中已经提供了计算整车总质量及质心坐标的菜单,计算对象为零件、装配部件以及装配树中包含的实体,利用该模块可以计算和控制他们的质量和其他质量参数,如体积、质心以及转动惯量等。该模块既可以计算整个零件和装配体,也可以有选择地计算其中一部分实体或装配部件。当我们采用相同的模板(含相同的质量单位、基准等),运行相应的模块,则可以进行总布置中所有质量参数的迅速计算。try fs = new fileinputstream(source);int bflen = 14;byte bf = new bytebflen;fs.read(bf, 0, bflen); / 读取14字节bmp文件头int bilen = 40;byte bi = new bytebilen;fs.read(bi, 0, bilen); / 读取40字节bmp信息头/ 源图宽度nwidth = (int) bi7 & 0xff) 24)| (int) bi6 & 0xff) 16)| (int) bi5 & 0xff) 8) | (int) bi4 & 0xff;/ 源图高度nheight = (int) bi11 & 0xff) 24)| (int) bi10 & 0xff) 16)| (int) bi9 & 0xff) 8) | (int) bi8 & 0xff;/ 位数nbitcount = (int) bi15 & 0xff) 8) | (int) bi14 & 0xff;/ 源图大小int nsizeimage = (int) bi23 & 0xff) 24)| (int) bi22 & 0xff) 16)| (int) bi21 & 0xff) 8) | (int) bi20 & 0xff;/ 对24位bmp进行解析if (nbitcount = 24)int npad = (nsizeimage / nheight) - nwidth * 3;ndata = new intnheight * nwidth;nb=new intnheight * nwidth;nr=new intnheight * nwidth;ng=new intnheight * nwidth;byte brgb = new byte(nwidth + npad) * 3 * nheight;fs.read(brgb, 0, (nwidth + npad) * 3 * nheight);int nindex = 0;for (int j = 0; j nheight; j+)for (int i = 0; i nwidth; i+) ndatanwidth * (nheight - j - 1) + i = (255 & 0xff) 24| (int) brgbnindex + 2 & 0xff) 16)| (int) brgbnindex + 1 & 0xff) 8)| (int) brgbnindex & 0xff; nbnwidth * (nheight - j - 1) + i=(int) brgbnindex& 0xff;ngnwidth * (nheight - j - 1) + i=(int) brgbnindex+1& 0xff;nrnwidth * (nheight - j - 1) + i=(int) brgbnindex+2& 0xff;nindex += 3;nindex += npad;/ toolkit kit = toolkit.getdefaulttoolkit();/ image = kit.createimage(new memoryimagesource(nwidth, nheight,/ ndata, 0, nwidth);/* /调试数据的读取 filewriter fw = new filewriter(c:documents and settingsadministratormy documentsndataraw.txt);/创建新文件printwriter out = new printwriter(fw);for(int j=0;jnheight;j+)for(int i=0;inwidth;i+)out.print(65536*256+ndatanwidth * (nheight - j - 1) + i)+_+nrnwidth * (nheight - j - 1) + i+_+ngnwidth * (nheight - j - 1) + i+_+nbnwidth * (nheight - j - 1) + i+ );out.println();out.close();*/ catch (exception e) e.printstacktrace();throw new exception(e); finally if (fs != null) fs.close();/ return image;二 由r g b 获取灰度数组public int getbrightnessdata(int rdata,int gdata,int bdata)int brightnessdata=new intrdata.length;if(rdata.length!=gdata.length | rdata.length!=bdata.length| bdata.length!=gdata.length)return brightnessdata;else for(int i=0;i0.5?1:0);return brightnessdata;三 直方图均衡化public int equilibrategray(int pixelsgray,int width,int height) int gray;int length=pixelsgray.length;int frequencegray=new intlength; int sumgray=new int256; int imagedestination=new intlength;for(int i = 0; i length ;i+) gray=pixelsgrayi; frequencegraygray+; / 灰度均衡化 sumgray0=frequencegray0; for(int i=1;i256;i+)sumgrayi=sumgrayi-1+frequencegrayi; for(int i=0;i256;i+) sumgrayi=(int)(sumgrayi*255/length); for(int i=0;iheight;i+) for(int j=0;jwidth;j+) int k=i*width+j; imagedestinationk=0xff000000 | (sumgraypixelsgrayk 16 ) | (sumgraypixelsgrayk 8 ) | sumgraypixelsgrayk); return imagedestination; 四 laplace2阶滤波,增强边缘,图像锐化public int laplace2dfileter(int data,int width,int height)int filterdata=new intdata.length;int min=10000;int max=-10000;for(int i=0;iheight;i+)for(int j=0;jwidth;j+)if(i=0 | i=height-1 | j=0 | j=width-1)filterdatai*width+j=datai*width+j;elsefilterdatai*width+j=9*datai*width+j-datai*width+j-1-datai*width+j+1-data(i-1)*width+j-data(i-1)*width+j-1-data(i-1)*width+j+1-data(i+1)*width+j-data(i+1)*width+j-1-data(i+1)*width+j+1; if(filterdatai*width+jmax)max=filterdatai*width+j; / system.out.println(max: +max);/ system.out.println(min: +min);for(int i=0;iwidth*height;i+)filterdatai=(filterdatai-min)*255/(max-min);return filterdata;五 laplace2阶增强滤波,增强边缘,增强系数deltpublic int laplacehigh2dfileter(int data,int width,int height,double delt)int filterdata=new intdata.length;int min=10000;int max=-10000;for(int i=0;iheight;i+)for(int j=0;jwidth;j+)if(i=0 | i=height-1 | j=0 | j=width-1)filterdatai*width+j=(int)(1+delt)*datai*width+j);elsefilterdatai*width+j=(int)(9+delt)*datai*width+j-datai*width+j-1)-datai*width+j+1-data(i-1)*width+j-data(i-1)*width+j-1-data(i-1)*width+j+1-data(i+1)*width+j-data(i+1)*width+j-1-data(i+1)*width+j+1; if(filterdatai*width+jmax)max=filterdatai*width+j; for(int i=0;iwidth*height;i+)filterdatai=(filterdatai-min)*255/(max-min);return filterdata;六 局部阈值处理2值化/ 局部阈值处理2值化,niblacks method/*原理: t(x,y)=m(x,y) + k*s(x,y) 取一个宽度为w的矩形框,(x,y)为这个框的中心。统计框内数据,t(x,y)为阈值,m(x,y)为均值,s(x,y)为均方差,k为参数(推荐-2)计算出t再对(x,y)进行切割255/0。 这个算法的优点是 速度快,效果好。 缺点是 niblacks method会产生一定的噪声。 */public int localthresholdprocess(int data,int width,int height,int w,int h,double coefficients,double gate)int processdata=new intdata.length;for(int i=0;idata.length;i+)processdatai=255;if(data.length!=width*height)return processdata;int wnum=width/w;int hnum=height/h;int delt=new intw*h;/system.out.println(w; +w+ h:+h+ wnum:+wnum+ hnum:+hnum);for(int j=0;jhnum;j+)for(int i=0;iwnum;i+)/for(int j=0;j1;j+)/ for(int i=0;i1;i+) for(int n=0;nh;n+)for(int k=0;kw;k+)deltn*w+k=data(j*h+n)*width+i*w+k;/system.out.print(delt+(n*w+k)+: +deltn*w+k+ );/system.out.println();/*for(int n=0;nh;n+)for(int k=0;kw;k+)system.out.print(data+(j*h+n)*width+i*w+k)+: +data(j*h+n)*width+i*w+k+ );system.out.println();*/delt=thresholdprocess(delt,w,h,coefficients,gate);for(int n=0;nh;n+)for(int k=0;kw;k+)processdata(j*h+n)*width+i*w+k=deltn*w+k;/ system.out.print(delt+(n*w+k)+: +deltn*w+k+ );/system.out.println();/*for(int n=0;nh;n+)for(int k=0;kw;k+)system.out.print(processdata+(j*h+n)*width+i*w+k)+: +processdata(j*h+n)*width+i*w+k+ );system.out.println();*/ return processdata;七 全局阈值处理2值化public int thresholdprocess(int data,int width,int height,double coefficients,double gate)int processdata=new intdata.length;if(data.length!=width*height)return processdata;elsedouble sum=0;double average=0;double variance=0;double threshold;if( gate!=0)threshold=gate; elsefor(int i=0;iwidth*height;i+)sum+=datai;average=sum/(width*height);for(int i=0;iwidth*height;i+)variance+=(datai-average)*(datai-average);variance=math.sqrt(variance);threshold=average-coefficients*variance;for(int i=0;ithreshold)processdatai=255;else processdatai=0;return processdata;八 垂直边缘检测,sobel算子public int verticleedgecheck(int data,int width,int height,int sobelcoefficients) throws exceptionint filterdata=new intdata.length;int min=10000;int max=-10000;if(data.length!=width*height)return filterdata;tryfor(int i=0;iheight;i+)for(int j=0;jwidth;j+)if(i=0 | i=1 | i=height-1 | i=height-2 |j=0 | j=1 | j=width-1 | j=width-2)filterdatai*width+j=datai*width+j;elsedouble average;/中心的九个像素点/average=datai*width+j-math.sqrt(2)*datai*width+j-1+math.sqrt(2)*datai*width+j+1average=datai*width+j-sobelcoefficients*datai*width+j-1+sobelcoefficients*datai*width+j+1 -data(i-1)*width+j-1+data(i-1)*width+j+1-data(i+1)*width+j-1+data(i+1)*width+j+1;filterdatai*width+j=(int)(average); if(filterdatai*width+jmax)max=filterdatai*width+j;for(int i=0;iwidth*height;i+)filterdatai=(filterdatai-min)*255/(max-min);catch (exception e) e.printstacktrace();throw new exception(e); return filterdata;九 图像平滑:3*3掩模处理(平均处理),降低噪声 public int filter(int data,int width,int height) throws exceptionint filterdata=new intdata.length;int min=10000;int max=-10000;if(data.length!=width*height)return filterdata;tryfor(int i=0;iheight;i+)for(int j=0;jwidth;j+)if(i=0 | i=1 | i=height-1 | i=height-2 |j=0 | j=1 | j=width-1 | j=width-2)filterdatai*width+j=datai*width+j;elsedouble average;/中心的九个像素点average=(datai*width+j+datai*width+j-1+datai*width+j+1+data(i-1)*width+j+data(i-1)*width+j-1+data(i-1)*width+j+1+data(i+1)*width+j+data(i+1)*width+j-1+data(i+1)*width+j+1)/9;filterdatai*width+j=(int)(average); if(filterdatai*width+jmax)max=filterdatai*width+j;for(int i=0;iwidth*height;i+)filterdatai=(filterdatai-min)*255/(max-min);catch (exception e) e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届吉林省德惠市九校化学高二上期中联考模拟试题含解析
- 综合解析京改版数学8年级上册期中试卷附参考答案详解【满分必刷】
- 信息科技领域数据中心安全防护与应急响应计划
- 新产品使用手册及功能介绍
- 甘肃省兰州市兰化一中2026届高二化学第一学期期末调研模拟试题含答案
- 家具表面涂层耐用度检验
- (2025年标准)果然结婚协议书
- (2025年标准)闺房的协议书
- 2026届湖南省张家界市慈利县高一化学第一学期期中学业水平测试模拟试题含解析
- (2025年标准)挂靠入户协议书
- 2025年中国智慧养殖行业市场占有率及投资前景预测分析报告
- 电影院安全生产与安全管理规定制度
- 废气处理合同协议
- 镁铝合金行业前景
- 2025-2030中国余热回收行业市场现状供需分析及投资评估规划分析研究报告
- 无人机物流配送服务手册
- 见证取样送检计划方案
- 二年级上册语文课内阅读理解每日一练(含答案)
- 2025-2030年中国功率器件市场发展趋势规划研究报告
- 基层管理培训课程
- 宇宙飞船的发射与回收技术分析
评论
0/150
提交评论