汽车仿真软件v35设计_第1页
汽车仿真软件v35设计_第2页
汽车仿真软件v35设计_第3页
汽车仿真软件v35设计_第4页
汽车仿真软件v35设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE15汽车3.5概要设计引言主要是对整体架构的一些描述,便于交流软件的设计思路总体设计需求规定1.仿真教学 ·原理动画(flash、avi) ·系统电路(多种仪表的测量) ·三维结构2.实训练习 ·单项选择题 ·多项选择题 ·操作维护题 ·拆装题 ·记录及回放(操作错误与操作过程)3.测验考核 ·上面2里的内容 ·组卷,出卷,自动评分 运行环境硬件:IntelP41.2G以上、32M显存以上显卡软件:Windows2000以上基本设计概念·基于Windows系统,VisualC++2005,OpenGL1.2开发·快速的定制、添加各种教学页面·快速的定制、添加各种题目页面·多种车型发布控制;素材库、题材库可自定义组织内容结构·主模块: 页面的创建管理;远程的控制·基础模块: 一些基础类;资源管理系统·界面控件: 定制的界面控件·仪表: 测量仪表的实现·电路: 电路数据与逻辑·界面实现: 各种界面的实现及对页面编辑、添加的支持·三维模块: 三维对象的创建、数据的管理·拆装模块: 支持拆装题的编辑、添加主框架A.主框架主要负责实现页面的创建与管理以及程序运行模式的控制。B.由代表应用程序的“ArApp”负责程序运行模式的控制。·普通模式下,不做任何处理;·教师授课模式下,启动定时器,记录当前数据并通过远程模块发送出去;·学生受控模式下,过滤鼠标键盘的操作,接收远程模块发送来的数据,保持与教师控制端一致。C.由代表主框架窗口的“ArMainFrame”负责页面的创建与切换管理。 ·由页面工厂统一管理并提供各种页面的创建参数类; ·“ArMainFrame”根据创建参数类创建出新页面,并负责新旧页面的切换; ·页面池负责记录创建参数类及页面快照,用以实现返回上一个页面及页面状态的恢复;页面创建管理

一般界面架构A.不同种类的界面有不同的实现。具体的设计在详细设计里体现。B.基本思路都是:多种视图元素通过控制器访问数据对象,数据的变化通过观察者接口更新相关视图元素。C.几种基础的经常使用的页面提供编辑器,以供外部扩充。简单页面基础资源管理A.”ArCarResManagerCL”封装对底层文件的访问,使得程序对普通文件、流文件、甚至压缩文件都能用一种方式访问。这样在调试的时候,可以使用易于查看的文本文件,软件发布的时候可以根据需要,将某些文件进行打包甚至压缩。这时不需要改动代码,只要配置抽象文档系统即可。B.老的调用方式:调用GetResPackM(constCString&sPackPath)得到一个ArIResourceCL接口,然后将实现了ArIResPersistCL接口的客户类传给ArIResourceCL,底层的ArPackedResLibCL反调LoadFromStreamM(IStream*pStm)函数,将数据流交给客户类使用。C.考虑新的调用方式:直接从ArCarResManagerCL上获取数据流IStreamPtr使用。·详细接口函数声明classCarBase_DllExpCrCarResManagerCL:publicCrIResManagerCL{public://根据包路径获取数据包接口。sPackPath是资源包路径,不限制必须是DLL名ArIResourceCL*GetResPackM(constCString&sPackPath);//给目标对象加载数据。sResName是安装目录内的路径,更灵活(无需关心属于哪个DLL数据包)BOOLLoadResM(ArIResPersistCL*pResObj,constCString&sResFile);//(新做法)直接获取资源数据流。sResName:安装目录内的路径(无需关心属于哪个数据包)//然后直接调用IStream::Read()读取数据。***注意:不能用写入类的函数***IStreamPtrGetResStreamM(constCString&sResFile);VoidSetCurDIrM(constCString&sResName);CStringGetCurDIrM();}·外部文件组织我们软件的首页会将所有的页面(结构/原理、题目、知识点)都列出来,用户点击后进入相应的窗口。因此有页面类型与页面ID两个概念:如:电路页面,知识点页面,拆装页面都是页面类型。 点火系电路页面,起动系电路页面则是页面ID。·具体到数据组织的时候:1.页面类型的数据放在“soft\frame\”下:如“拆装窗口”类型相关的数据,如底图、按钮、列表框图等,统一放在“soft\frame\backoutPG”下:如“电路窗口”类型相关的数据,如底图、按钮、列表框图等,统一放在“soft\frame\circuitPG”下:2.具体页面(结构/原理、题目、知识点)的数据,放在相应“车型\系统\xxx”下如“气缸盖拆装”这道题相关的数据,如拆装脚本、模型列表等则放在相应“santana\simu\engine\xxx”下。至于多道题目共用的数据,如模型(模型理想情况是可以与零部件库Santana\media\part里共用),如不能就放在车型下(santana\simu\sbjModel)。再如“氧传感器的检测”是一道电路题,此题目的初始化文件放在“Santana\simu\gaso\xxx”下,但电路数据、电路图是共用的,那就放在“Santana\simu\circuit”下“xxx”一般是题号,也可几道题上再建一个文件夹。 3.电路数据库不再是唯一的: 从现在的情况看,有多个车型,并且电路的需求也不一样,所以电路数据库不是一个,软件里的电路数据类也不能是全局对象,而是要根据电路题目初始化不同的电路数据。4.如何确定外部文件位置: 页面工厂根据页面ID(题目ID)创建页面的时候,首先确定使用的页面类,然后根据需要传入配置文件,配置文件里记录要用的其他数据文件,用相对位置或绝对位置(bin之下)都可以。当用“资源管理程序”打开某个文件的时候,资源管理程序的“当前目录”就设置为此文件的目录;也可以外部设置当前目录。在此之后就可以用相对路径打开文件。使用相对路径时候前面可以加“..\”,来指向共用的数据。

电路与仪表先使用以前的做法和实现。

三维模块公司产品的主要思路是虚拟仿真,三维功能是每一个软件都必不可少的。个人觉得可以考虑做一个比较通用的、灵活的三维模块,在不同的软件里都可以拿来用,应该可以提高整个公司的开发效率。考虑将三维模块分成3部分:“场景组织”、“资源管理”、“三维渲染”“场景管理”,描述了三维空间中有哪些内容,以及它们是如何组织在一起的;“资源管理”,不管模型、纹理还是字体等一切对象,绘制它们都需要不同的资源。“资源管理”负责加载、重用、卸载这些资源。“三维渲染”,三维空间中的东西最后将被渲染到屏幕上,这涉及到渲染管线、指定的渲染系统、渲染状态等API对象等底层对象。“三维渲染系统”提供对底层三维API的抽象,可以根据需要支持OpenGL或Direct3D。实际的零件结构横线上是抽象结构,横线下是具体例子。部件相当于树列表上的节点,有名称,可以被单独选取、隐藏;组合部件相当于父节点,可以展开,也可以收缩当作一个整体来选取、隐藏;子部件相当于子节点。子部件包含1~n个零件,可单独运动但不能被单独选取;不同的零件可能使用同一个模型数据。如汽缸盖紧固螺栓下有8个,每一个都能被单独的拆装,但它们都是由一个模型数据创建。设计的数据结构横线上的节点与实体由“场景管理”负责创建并管理;节点表示一个包或容器的概念,可以包含其他的子节点或实体;实体表示空间中的一个实实在在的物体,可以移动、旋转改变位置;横线下的模型及相关数据由“资源管理”负责创建并管理;一个模型对应一个数据文件,包含三角片、材质等用于绘制的数据,实现渲染、主结构1.根据配置文件初始化渲染系统,可以选择Direct3D或OpenGL;2.创建场景并在场景中架设摄像机;通过资源管理器创建物体并放置在场景中;3.创建窗口、视口并与摄像机关联,一个视口上显示一个摄像机能“看”到的物体;4.控制器接收消息和命令,将其转换成对场景和摄像机的控制;5.刷新时:窗口要求场景绘制它能看见的部分;场景将能见的物体交给渲染系统绘制;初始序列图资源管理模型对象由ModelManager负责创建、管理及重用。例如多个位置的螺栓用一个螺栓模型数据。材质由MaterialManager负责创建、管理及重用。例如不同的子网格使用同一种材质。纹理贴图由TextureManager负责创建、管理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论