欢迎来到天天文库
浏览记录
ID:40814613
大小:67.50 KB
页数:7页
时间:2019-08-08
《化工设备制造计算机辅助设计系统规划》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、化工设备制造计算机辅助设计系统7化工设备制造计算机辅助设计系统一、PVITEM类l共用信息longm_ID//在Doc中存档位置号intm_Type//在构造函数中用来指明构造类型如:PV_D_SHELLintm_CalcType//计算类型Cstringm_Name//零件名称voidm_pItem//指向具体的专用类的指针classm_ResultFile//计算结果的格式化m_IDm_Typem_CalcTypem_Namem_Iconm_ResultFilem_pitem如:PV_DP_SHELL类中包含以下结构:通用信息结构structgeneral零件
2、信息结构structpart零件专用信息结构structcylinderl通用类信息:设计压力,设计温度,操作介质密度,试验介质密度,操作介质高度,试验介质高度,水压试验或气压试验选择。l零件信息结构:元件名称,件号,备注。l零件专用信息结构:零件的几何参数,如筒体长度,名义厚度,材料,内外壁温,腐蚀余度,焊缝系数。二、在PVITEM类的头文件中包含各种具体类的头文件如:PV_DP_Shell,PV_DP_Vertex等等,以及符号定义文件PV_D_Shell等。三、PVITEM构造函数的关键是具有多路开关的构造函数,其形势如下:PVItem::PVItem(in
3、ttype,longid)//这是构造函数的另一个版本{m_ID=id;m_Data.Format("%s%ld","Item",id);m_Result=_T("可以在这里加说明。");m_ResultFile.Format("%s%ld.%s","rst",id,"rst");m_CalcType=0;m_Type=type;switch(type){casePV_D_CYLINDER:m_Name.Format("%s%ld","筒体",id);m_pItem=(void*)newPV_DP_Shell;//这里根据需要构造了实际m_Icon=18;//不同
4、的类;显然,这里PV_DP_break;//Shell已在头文件里定义成具体shell类的对象。casePV_D_VERTEX_HEAD:m_Name.Format("%s%ld","凸形封头",id);m_pItem=(void*)newPV_DP_Vertex;m_Icon=3;break;…}化工设备制造计算机辅助设计系统7四、文档设计1·本程序采用一个文档来存储,这样,在打开已有文件时,就可以从一个文档文件读入所有数据。并且此文档从多文档CMultiDocument派生,这样,就可以在应用中打开多个工程文件。2·为了类的存储,使用集合类Carray5、tem,PVItem&>m_Items;每一专用PVItem将成为m_Items的一个元素而进行存储。3·项目信息Cstringm_Project;//用于存储项目名称longm_MaxId;//用于存储项目的最大子项数longm_DispId;//用于记录显示子类项的id值longm_Version//本程序的版本号4·成员函数intFindItem(longId)//找到文档存储的PVItem子类,返回下标;voidAddItem(PVItem&);//在文档中加入新的PVItem子类五、视设计、计算结果的存储与显示由于应用程序的主视图是从CTreeView类6、派生出来的,所以计算结果不能在主视图中来显示。要另外建立一个视类用来显示和存储计算结果。那么,主要问题是如何使两个视类使用同一文档,即如何访问文档的问题。可用以下办法进行:(假定工程名称是Wx)1·用VC++的AppWizard产生一个基于多文档、CTreeView的应用程序框架。其中包括了基于CChildWnd的类..WxChildFrame和WxView类;2·用ClassWizard产生一个基于Cview类的新类NewView,但是在选择头文件名和完成文件名时仍选择WxView.h和WxView.cpp;3.在WxView的头文件中包括WxDoc.h,并在N7、ewView的头文件中加入以下内容:public:WxDoc*GetDocument();并在头文件的后面加入以下内容:#ifndef_DEBUG//debugversioninwxsplitView.cppinlineWxDoc*NewView::GetDocument(){return(WxDoc*)m_pDocument;}#endif4.在完成文件中加入以下内容:WxDoc*NewView::GetDocument()//non-debugversionisinline{ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(W8、xDoc)
5、tem,PVItem&>m_Items;每一专用PVItem将成为m_Items的一个元素而进行存储。3·项目信息Cstringm_Project;//用于存储项目名称longm_MaxId;//用于存储项目的最大子项数longm_DispId;//用于记录显示子类项的id值longm_Version//本程序的版本号4·成员函数intFindItem(longId)//找到文档存储的PVItem子类,返回下标;voidAddItem(PVItem&);//在文档中加入新的PVItem子类五、视设计、计算结果的存储与显示由于应用程序的主视图是从CTreeView类
6、派生出来的,所以计算结果不能在主视图中来显示。要另外建立一个视类用来显示和存储计算结果。那么,主要问题是如何使两个视类使用同一文档,即如何访问文档的问题。可用以下办法进行:(假定工程名称是Wx)1·用VC++的AppWizard产生一个基于多文档、CTreeView的应用程序框架。其中包括了基于CChildWnd的类..WxChildFrame和WxView类;2·用ClassWizard产生一个基于Cview类的新类NewView,但是在选择头文件名和完成文件名时仍选择WxView.h和WxView.cpp;3.在WxView的头文件中包括WxDoc.h,并在N
7、ewView的头文件中加入以下内容:public:WxDoc*GetDocument();并在头文件的后面加入以下内容:#ifndef_DEBUG//debugversioninwxsplitView.cppinlineWxDoc*NewView::GetDocument(){return(WxDoc*)m_pDocument;}#endif4.在完成文件中加入以下内容:WxDoc*NewView::GetDocument()//non-debugversionisinline{ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(W
8、xDoc)
此文档下载收益归作者所有