IMAN的二次开发关键技术
“炊饭”通过精心收集,向本站投稿了6篇IMAN的二次开发关键技术,以下是小编收集整理后的IMAN的二次开发关键技术,欢迎阅读与借鉴。
篇1:IMAN的二次开发关键技术
IMAN的二次开发关键技术
IMAN的二次开发关键技术* 注意:本文已在《计算机工程与应用》(,37(24):25-26,166)杂志发表,使用者请注明文章出处赖朝安** 孙延明 郑时雄(华南理工大学 机电工程系 广州 510640)摘要:介绍了商品化PDM系统IMAN的基本情况,研究了IMAN二次开发中的主要问题,提出了一种窗体定制新方法,论述了客户端二次开发的方法、指导思想以及基于IMAN的应用封装方法。关键词:PDM 二次开发中国分类号:TP391 文献标识码:ATHE KEY TECHNIQUES OF SECONDARY DEVELOPMENT OF IMANLAI ChaoAn,SUN YanMing,ZHENG ShiXong(mechatronic engineering Department, south china university of technology, Guangzhou 510640)Abstract: The basics of IMAN, a kind of commercial PDM system, are introduced, and the key problems during secondary development of IMAN are studied in this paper. It also put forward a new methodology of customizing form and discussed the methodology and rudder of secondary development in client terminal and the methodology of application encapsulation based on IMAN.Keywords: PDM; secondary development一 前言IMAN(information manager)是一种较为成熟且广泛应用的产品数据管理(PDM)系统,它的开发商是美国的UGS公司。IMAN系统主要用于汽车、航空、机械制造和家电等行业。它是面向对象的信息管理和控制系统,由一个窗口界面、一组实用程序、一个集成工具箱和一个关系数据库管理系统(ORACLE)组成。在版6.0后,IMAN包含C/S及B/S两种结构,B/S结构是发展方向,但目前功能较弱。IMAN目前广泛应用的版本为V6.0-V7.0。我国目前采用IMAN的企业有:海尔集团、玉柴机器、科龙集团等上百家企业。PDM系统属于管理系统,管理系统出售后常需要有一个定制过程,使之适应企业的特殊需要。由于PDM技术能带来很大的效益,很多企业相继实施PDM系统,但部分企业没有取得预期的回报,这是由于PDM系统实施难度大、影响因素多造成的。二次开发是PDM实施的主要工作之一,因此必须掌握其关键技术。IMAN的二次开发工作主要有:利用IMAN的二次开发模块开发新的程序;窗体定制;外部应用软件的封装与集成等。IMAN二次开发工作需要丰富的经验和复杂的技巧,而它的帮助文档不能及时更新,况且关于PDM系统实施的学术论文、书籍等各种资料大多数只关注理论研究,没有介绍具体实用的二次开发技术,因此系统的实施者开始时常感到无助而难以入手。为此,本文总结了几点IMAN二次开发经验并提出一些新技术。二 窗体定制新方法窗体(FORM)又称表单,它的定制是实施PDM的一项基本工作,这是因为产品类型及信息类型多种多样,如零部件的数量、材料、ID号、设计者以及设计过程信息等等,这些数据都需要记录并与相应属性名一起保存。通常每一种零部件需要一种窗体来描述它的各种属性。窗体的功能首先是录入、保存、浏览及查询信息,其次是保存过程信息以支持其它功能。窗体存储三种数据:输入(Captured)数据;资讯(Informative)数据;推导(Derived)数据。它们的区别是:输入数据是用户输入的字段,是窗体显示的主要数据;资讯数据是只读的;推导数据是其它栏的总结或综合,是只读的。IMAN的编程指南介绍了两种窗体定制方法:一是通过制作UIL( User Interface Language,用户界面语言 )文件来定义窗体的“非编程”方法;二是利用JAVA语言编程[1]。由于UIL较难理解而利用JAVA编程也涉及较复杂知识,为此笔者探索出一种组合利用IMAN提供的DOS应用程序及POMClass来定义窗体的简捷方法,步骤如下:1.通过一个文本文件definition.txt来定义窗体的内容:create Pom_application_object Train_Part_Classdefine Train_Part_Class Project_id POM_string 50 -rwndefine Train_Part_Class serial_number POM_string 1 -rwnsavequit编写该文本要注意如下事项:1)Pom_application_object是父类,是系统定义的。将生成的新类Train_Part_Class是它的子类;2)Project_id 和serial_number是显示于窗体上的属性名,它们可描述某产品的ID与序列号。属性名可以有任意多个,也可以是作意名称,在此仅是举例;3)POM_string是指输入的数据应是字符串,其它数据类型还有POM_int等等,可参考IMAN的编程指南;4)数字50及1只是举例,代表输入字符的最大允许长度。2.编辑创建窗体的批处理文件 CreatForm.bat如下所示,以读入该文本文件并创建窗体类。set user=infodbaset pass=infodbaset grp=dbad:iman0701bincl
earlocks -assert_all_dead
d:iman0701binsb < definition.txt -u=%user% -p=%pass% -g=%grp%
d:iman0701binclearlocks -assert_all_dead
d:iman0701bininstall -mod_class infodba infodba dba Train_Part_Class
编写该文本要注意如下事项:
1)该批处理文件中的名称Train_Part_Class要与文本文件中的相同;
2)管理员的用户名、密码、组名(infodba、dba)及IMAN安装路径只是举例,要根据现实系统而定;
3)definition.txt文件前要有“<“符号。如系统指出找不到该文件,可在该文件名前加上绝对路径
3.启动iman Menu
4.进入iman Menu环境后,带路径执行creatForm.bat。
5.若完成上面的步骤且没有出错提示,重新起动PROTAL,进入IMAN的方案编辑器(schema edit),展开Pom_application_object,可以看到刚定义的窗体类Train_Part_Class。
6.建立新的窗体模板:在IMAN admin里面打开类型(type),选择form选项,然后为新窗体命名(如为MYFORM1),再在POM_Class类里面选择刚定义的窗体类Train_Part_Class。按create完成新窗体类MYFORM1的定义,它继承了类Train_Part_Class。
7.在导航器里面就可以依次执行:文件->新建->窗体,选择MYFORM1,建立新窗体,窗体可以描述零部件的属性Project_id 和serial_number,这是系统提供的窗体所不能描述的。
该方法在V6.0版本中顺利通过,而在V7.0版本会引起“方案文件过期”的问题而引起系统暂时不能进入,所以要在系统管理员同意的情况下才能操作。出现这种情况后的解决办法是进入iman Menu环境,在原路径运行以下语句:“install Cregen_schema_file infodba infodba dba”,然后重新起动服务器。命令行的后三项分别是管理员的用户名、密码与组名,要根据系统的实际作相应改动。
三 客户端的二次开发方法
IMAN的二次开发分客户端及服务器端。客户端软件是用JAVA语言开发的,同样地它的二次开发也使用JAVA语言。服务器端的二次开发要利用二次开发模块ITK及C语言。由于IMAN版本升级可能导致所开发程序需要改写并重新编译,所以二次开发的原则是尽可能利用IMAN已有的功能,减少二次开发量[2]。基于以上考虑,二次开发重心放在客户端,而尽量利用服务器端的已有功能。客户端二次开发分为开发程序与注册程序两个阶段。
1开发程序
客户端开发需要的工具为:JDK1.2.2或更高;JAVA集成开发环境(IDE)如JBuilder,Visual café 等等。
1)环境设置
若没有使用IDE,要设置CALSSPATH环境变量。可在DOS提示符处运行:“C:> set %CLASSPATH%=%PORTAL_ROOT%portal.jar”。PORTAL_ROOT 是指 iMAN Portal 的安装路径。
2)用javac命令编译客户程序;
3)用jar命令打包;
4)执行
打开portal.bat文件,将客户程序(如MyPro.jar)包含到portal.jar之前:
Set JAVA_COMMAND_LINE=%JAVA_COMMAND% -classpath ”%IPR%.;… %IPR%MyPro.jar; … %IPR%portal.jar; … %CLASSPATH%“
起动IMAN Portal之后客户程序就可执行。但如果它是未经注册的新程序,还需要进行以下步骤。
2 在IMAN Portal中注册程序
注册程序就是要在IMAN的界面上的某个组内增加按钮,用于调用所开发的程序。假设客户程序叫MyPro,它属于com.mycom.mypro包。程序注册的步骤如下:
1)在PROTAL界面上增加一个新组
在PORTAL安装路径下找到Portal_user.properties文件(或使用Portal.properties文件,前者具有更高优先权),在GROUPS=IMAN,IMANAdministrator,Utilities的行末增加新组名,假设为newtools,如下所示:“GROUPS=IMAN,IMANAdministrator,Utilities,newtools”。
重新起动Portal后可看到新增的组newtools,在组内可加入按钮以调用客户程序。如果不需要增加新的组,可直接进行第二步。
2)在组中加进客户程序:
A. 运行Utilities组内的快速向导(Application Wizard),然后输入应用程序名称,假设为mypro,并按下一步(Next)。
B. 在左边拉开某个组,比如刚创建的组newtools,使客户程序的按钮加入到该组,按下一步。
C. 输入客户程序的包名,例如“com.mycom.mypro”,缺省值是“com.mypro”。然后单击某适当目录,系统将在该目录下自动建立与包名对应的子目录,并使所有与该客户程序相关的源文件在该子目录下生成。
系统在目录mypro中自动生成六个文件:mypro.properties、mypro_user.properties、MyproApplication.java、MyproApplicationMenuBar.java、MyproApplicationPanel.java、MyproApplicationToolBar.java。
前两个文件是程序注册文件,用户可使用mypro_user.properties也可使用mypro.properti
es来注册程序,前者可覆盖后者。系统自动使用后者。
后四个文件分别创建了四个应用类。要集成到portal的程序要有一个基类,它应是类AbstractAIFUIApplication的.子类。客户程序的类的层次如图1所示。
图1 客户程序类的层次
D. 按下一步后接受缺省的类名,按下一步,再按“Yes”按钮以创建新类。然后用单击方式选择Portal的安装目录,在这个路径中含有portal.jar等IMAN的JAVA类库。按下一步后系统显示“成功创建程序”。这时portal_user.properties系统注册文件自动修改,完成客户程序的注册。
四 基于IMAN的应用封装方法
随着企业信息化进程的发展,企业所使用的应用软件越来越多,如用于工程设计的CAX软件;用于办公自动化的字处理软件和制表软件等。为了能实现对各种应用软件所产生的数据和文档进行有效地管理,也为了能在PDM环境中做到应用软件间的信息共享、用户间的协同工作等目的,需要改变过去基于数据库实现应用系统集成的传统办法,而改变为基于PDM的应用集成。
按集成的紧密程度分,集成分为三个层次:应用封装;接口交换;紧密集成[3]。能与IMAN实现接口交换或紧密集成的应用程序通常是大型商品化软件,集成方法各有不同。比如UG与IMAN的紧密集成通过专用软件UG/MANAGER。而应用封装的方法是通用的,因此本文指出了应用封装的方法。步骤如下:
1、若是NT4操作系统,打开“我的电脑”并依次选择菜单查看→选项→文件类型,根据该类文档的后缀找到并记下该应用程序的MIMEType。若没有,可自定义。
若是WIN系统,需要运行regedit,在弹出的注册表编辑器中,打开如下路径:HKEY_CLASSES_ROOTMIMEDatabaseContent Type,根据文档后缀记下该应用程序的MIMEType。
2、在iMAN里面的类型(type)按钮打开tool选项,根据不同的数据集,指定输入输出格式(如ASCII,Binary,PART)。通常图像类数据集用Binary选项,文本类用ASCII,图形类用PART。然后输入上一步骤的MIME Type,并给TOOL起个名字;
3、按创建(Create)按钮;
4、dataset type里面创建新的数据集类型:指定应用程序为刚才定义的工具(TOOL),在“引用”中定义文件过滤器(如*.doc),在“参数”中增加并定义操作(如OPEN),点击OPEN等操作,勾选“选择”、“导出”,然后在右下方按加号,输入适当的参数类型(如$OBJECT)等等;
5、按创建按钮完成应用程序的封装;
这样,在导航器中点击某种文档就可自动起动相应的应用程序,并在程序中自动打开该文档。
五 结论
随着PDM的日益广泛应用,用户越来越注意根据自身的需要定制PDM系统,并要求缩短实施周期。本文总结了常用实施方法并提出了一些新技术,利用本文所总结的经验及提出的新方法为玉柴机器等多家单位实施了IMAN,达到实施周期缩短,企业保持稳定,并显著提高了企业产品开发效率的目标,证明这些方法是可行的。
参考文献
1 Unigraphics Solutions Corporation. IMAN Portal customization programmer's Guide. USA:UGS公司,2000
2 Unigraphics Solutions Corporation. IMAN online help. USA: UGS公司,2000
3 童秉枢,李建明. 产品数据管理(PDM)技术. 北京:清华大学出版社. 2000
────────────────
*本文受广东省科技创新百项工程项目(99B01901G)及广东省自然科学基金项目(990545)资助。
**赖朝安(1973C),男,广西钦州人,华南理工大学博士研究生,研究方向:CAD/PDM、创新设计
篇2:IMAN的二次开发关键技术
IMAN的二次开发关键技术
摘要:介绍了商品化PDM系统IMAN的基本情况,研究了IMAN二次开发中的主要问题,提出了一种窗体定制新方法,论述了客户端二次开发的方法、指导思想以及基于IMAN的应用封装方法。 关键词:PDM 二次开发 中国分类号:TP391 文献标识码:A THE KEY TECHNIQUES OF SECONDARY DEVELOPMENT OF IMAN LAI ChaoAn,SUN YanMing,ZHENG ShiXong (mechatronic engineering Department, south china university of technology, Guangzhou 510640) Abstract: The basics of IMAN, a kind of commercial PDM system, are introduced, and the key problems during secondary development of IMAN are studied in this paper. It also put forward a new methodology of customizing form and discussed the methodology and rudder of secondary development in client terminal and the methodology of application encapsulation based on IMAN. Keywords: PDM; secondary development 一 前言 IMAN(information manager)是一种较为成熟且广泛应用的产品数据管理(PDM)系统,它的开发商是美国的'UGS公司。IMAN系统主要用于汽车、航空、机械制造和家电等行业。它是面向对象的信息管理和控制系统,由一个窗口界面、一组实用程序、一个集成工具箱和一个关系数据库管理系统(ORACLE)组成。在版6.0后,IMAN包含C/S及B/S两种结构,B/S结构是发展方向,但目前功能较弱。IMAN目前广泛应用的版本为V6.0-V7.0。我国目前采用IMAN的企业有:海尔集团、玉柴机器、科龙集团等上百家企业。 PDM系统属于管理系统,管理系统出售后常需要有一个定制过程,使之适应企业的特殊需要。由于PDM技术能带来很大的效益,很多企业相继实施PDM系统,但部分企业没有取得预期的回报,这是由于PDM系统实施难度大、影响因素多造成的。二次开发是PDM实施的主要工作之一,因此必须掌握其关键技术。 IMAN的二次开发工作主要有:利用IMAN的二次开发模块开发新的程序;窗体定制;外部应用软件的封装与集成等。IMAN二次开发工作需要丰富的经验和复杂的技巧,而它的帮助文档不能及时更新,况且关于PDM系统实施的学术论文、书籍等各种资料大多数只关注理论研究,没有介绍具体实用的二次开发技术,因此系统的实施者开始时常感到无助而难以入手。为此,本文总结了几点IMAN二次开发经验并提出一些新技术。 二 窗体定制新方法 窗体(FORM)又称表单,它的定制是实施PDM的一项基本工作,这是因为产品类型及信息类型多种多样,如零部件的数量、材料、ID号、设计者以及设计过程信息等等,这些数据都需要记录并与相应属性名一起保存。通常每一种零部件需要一种窗体来描述它的各种属性。窗体[1] [2] [3] [4]
篇3:solidworks二次开发
摘 要:SolidWorks是一种非常优秀的三维机械设计软件,但是它缺少国家标准零件库,为机械设计工作带来了不便,VB是一种简单易学,而且功能强大的高级编程语言,Access是一种容易使用,而且功能强大的数据库管理系统。SolidWorks提供了基于OLE自动化技术的API函数,可以使用VB为它进行二次开发。螺纹联接的国家标准数据可以使用Access来管理。使用VB为SolidWorks开发螺纹联接国家标准零件的专用模块,配合Access管理的国家标准数据,就可开发出针对SolidWorks的国家标准零件库模块。把模块编译成SolidWorks的插件,然后用菜单的方式挂到SolidWorks系统中,可以使螺纹联接国家标准零件模块的使用更加方便。 关键词: 标准零件 标准零件库 螺纹联接标准零件库二次开发 SolidWorksAbstract: The SolidWorks is a real fair 3D machine design software, But it be in defect of the Lib of the national standard parts, that works to bring for machine design very inconvenient. VB is a easily study, and powerful computer high class language, Access is an easy usage, and powerful DBMS. The SolidWorks provided mass API functions base the OLE Automation technique, Can be use the VB to development two times for it. The national standard data of the thread linker can use the Access to manage. Can be use the VB develop the Lib of the national standard parts of thread linker for SolidWorks, and the National standard data that manage by Access, Can develop the appropriation molds of the Lib of the national standard parts of thread linker for SolidWorks. Let the appropriation molds edit and translate it be the Add-ins of the SolidWorks, then use the menu to hang in the SolidWorks system, and can make the Lib of the national standard parts of thread linker more convenient.Key words: The standard parts; The Lib of the standard partsThe Lib of the national standard parts of thread linker;Two times development; SolidWorks 第一章 绪 论1.1 SolidWorks系统简介 目前,在我国的CAD市场上比较流行的三维CAD软件有SolidWorks、MDT、UG、Pro/E SolidEdge 等。但就价位来讲SolidWorks、MDT、SolidEdge是中低档价位的产品,UG、Pro/EIDEAS是高中档价位的产品。SolidWorks是一套基于Windows的CAD/CAE/CAM/PDM桌面集成系统,是美国SolidWorks公司在总结和继承了大型机械CAD软件的基础上,在Windows环境下实现的第一个机械三维CAD软件,于1995年11月研制成功。它全面采用非全约束的特征建模技术,其设计过程全相关性,可以在设计过程的任何阶段修改设计。同时牵动相关部分的修改。它即提供自底向上的装配方法,同时还提供自顶向下的装配方法。自顶向下的装配方法使工程师能在装配环境中参考装配体的其他零件的位置及尺寸设计新的零件,更加符合工程习惯。它具有独创性的“封装”功能,可以分块处理复杂的装配体。具有产品配置功能,为用户设计不同构性的产品。它集成了设计、分析、加工和数据管理过程,所获得的分析和加工模拟结果成为产品模型的属性,在SolidWorks的特征管理器中清晰的列出了详细的数据信息。它还可以动态模拟装配过程,进行静态干涉检查、计算质量特征,如质心、惯性矩等。它将2D造型绘图与3D造型技术融为一体,能自动生成零件尺寸、材料明细表(BOM)、具有指引线的零部件编号等技术资料,从而简化了工程图样的生成过程。同时有中英文两种界面可以选择,其先进的特征树结构使操作更加简便和直观。具有交好的开发性接口和功能扩充性。能轻松实现各种CAD软件之间的数据转换传送。 目前,SolidWorks的全球用户超过20万,国外大多数制造公司招聘时都要求应聘人具备操作SolidWorks的能力。国际上很多一流的名校都将SolidWorks定为大学本科学生的必修课,如麻省理工学院、英国剑桥大学等。95%的西方企业要求员工回运用SolidWorks软件,SolidWorks连续几年被美国一些杂志评为优秀的CAD软件。 但是SolidWorks也并非十全十美,不可能满足特定企业的特殊要求。例如,由于该软件是外国人写的,不适合中国的国标,如标题栏、明细表、放大图的标注、剖视图的标注、装配图的序号等。也没有适合我国国标的标准件库。因此,为了适应特定企业的特殊要求,形成企业自己的特色,使SolidWorks在我国的企业中有效的发挥作用,并使常用的或是重复的任务自动化,提高效率,就必须对其进行本土化和专业化的二次开发工作。
摘 要:SolidWorks是一种非常优秀的三维机械设计软件,但是它缺少国家标准零件库,为机械设计工作带来了不便。VB是一种简单易学,而且功能强大的高级编程语言,Access是一种容易使用,而且功能强大的数据库管理系统。SolidWorks提供了基于OLE自动化技术的API函数,可以使用VB为它进行二次开发。螺纹联接的国家标准数据可以使用Access来管理。使用VB为SolidWorks开发螺纹联接国家标准零件的专用模块,配合Access管理的国家标准数据,就可开发出针对SolidWorks的国家标准零件库模块。把模块编译成SolidWorks的插件,然后用菜单的方式挂到SolidWorks系统中,可以使螺纹联接国家标准零件模块的使用更加方便。 关键词: 标准零件 标准零件库 螺纹联接标准零件库二次开发 SolidWorksAbstract: The SolidWorks is a real fair 3D machine design software, But it be in defect of the Lib of the national standard parts, that works to bring for machine design very inconvenient. VB is a easily study, and powerful computer high class language, Access is an easy usage, and powerful DBMS. The SolidWorks provided mass API functions base the OLE Automation technique, Can be use the VB to development two times for it. The national standard data of the thread linker can use the Access to manage. Can be use the VB develop the Lib of the national standard parts of thread linker for SolidWorks, and the National standard data that manage by Access, Can develop the appropriation molds of the Lib of the national standard parts of thread linker for SolidWorks. Let the appropriation molds edit and translate it be the Add-ins of the SolidWorks, then use the menu to hang in the SolidWorks system, and can make the Lib of the national standard parts of thread linker more convenient.Key words: The standard parts; The Lib of the standard partsThe Lib of the national standard parts of thread linker;Two times development; SolidWorks 第一章 绪 论1.1 SolidWorks系统简介 目前,在我国的CAD市场上比较流行的三维CAD软件有SolidWorks、MDT、UG、Pro/E SolidEdge 等。但就价位来讲SolidWorks、MDT、SolidEdge是中低档价位的产品,UG、Pro/EIDEAS是高中档价位的产品。SolidWorks是一套基于Windows的CAD/CAE/CAM/PDM桌面集成系统,是美国SolidWorks公司在总结和继承了大型机械CAD软件的基础上,在Windows环境下实现的第一个机械三维CAD软件,于1995年11月研制成功。它全面采用非全约束的特征建模技术,其设计过程全相关性,可以在设计过程的任何阶段修改设计。同时牵动相关部分的修改。它即提供自底向上的装配方法,同时还提供自顶向下的装配方法。自顶向下的装配方法使工程师能在装配环境中参考装配体的其他零件的位置及尺寸设计新的零件,更加符合工程习惯。它具有独创性的“封装”功能,可以分块处理复杂的装配体。具有产品配置功能,为用户设计不同构性的产品。它集成了设计、分析、加工和数据管理过程,所获得的分析和加工模拟结果成为产品模型的属性,在SolidWorks的特征管理器中清晰的列出了详细的数据信息。它还可以动态模拟装配过程,进行静态干涉检查、计算质量特征,如质心、惯性矩等。它将2D造型绘图与3D造型技术融为一体,能自动生成零件尺寸、材料明细表(BOM)、具有指引线的零部件编号等技术资料,从而简化了工程图样的生成过程。同时有中英文两种界面可以选择,其先进的特征树结构使操作更加简便和直观。具有交好的开发性接口和功能扩充性。能轻松实现各种CAD软件之间的数据转换传送。 目前,SolidWorks的全球用户超过20万,国外大多数制造公司招聘时都要求应聘人具备操作SolidWorks的能力。国际上很多一流的名校都将SolidWorks定为大学本科学生的必修课,如麻省理工学院、英国剑桥大学等。95%的西方企业要求员工回运用SolidWorks软件,SolidWorks连续几年被美国一些杂志评为优秀的CAD软件。 但是SolidWorks也并非十全十美,不可能满足特定企业的特殊要求。例如,由于该软件是外国人写的,不适合中国的国标,如标题栏、明细表、放大图的标注、剖视图的标注、装配图的序号等。也没有适合我国国标的标准件库。因此,为了适应特定企业的特殊要求,形成企业自己的特色,使SolidWorks在我国的企业中有效的发挥作用,并使常用的或是重复的任务自动化,提高效率,就必须对其进行本土化和专业化的二次开发工作。SolidWorks 系统具有如下的特点: (1) 具有独特的特征管理员,提供的特征管理员设计历史树同具体的实体模型是实时的动态联接;(2) 具有强大的实体建模功能和直观的Windows 用户界面;(3) 支持Windows 的DDE 机制和OLE 技术;(4) 支持Internet 技术,可以共享设计数据; (5) 双向关联的尺寸驱动机制;(6) 提供了VB ,VC + + 和其他支持OLE 的开发语言接口;(7) 给基于Windows 的桌面集成赋予了新的含义。它以Windows 为平台,集成了动态仿真软件(Motionworks) 、工程分析软(CosMo- SolidWorksorks) 、数控加工软件(SurfCAM) 、以及工程数据管理软(SmarTeamWorks) 等,使它们成为SolidWorks 家族中的一员。这些软件的数据可以相互传递共享。而且SolidWorks 公司还设有网上站点,可方便用户快速了解此系统的最新发展情况,或获得最新的技术支持。 造型功能SolidWorks 提供了新一代的造型功能,它包括了草图和实体,参数化特征造型技术。提供丰富的基本特征,并且提供用户自定义特征的功能。SolidWorks支持强大的三维参数化设计功能,可以方便地在设计的任何阶段修改零件. 绘图功能工程绘图系统Drawing 主要用于三维模型的工程图纸绘制与输出,可同时编辑多张图纸。当设计人员建图纸文件时,可以将PART 文件上的特征历史树的总结点用鼠标点取移动到图纸文件上,图纸文件上自动生成三视图。绘制的图纸上可以自动标注尺寸信息。图纸与模型是相互关联的,当模型上的尺寸或造型变化时,图纸也相应改变。视图包括标准视图、投影视图、一般视图、局部视图以及剖面视图,是零件或装配体在图纸上的某种形式的投影。在视图上可以增加或删除符合国标的工程标注。本系统随时维护三维模型与二维绘图的一致性。注释及辅助线段、圆注释和辅助的线段、圆用于给图纸增加一些视图中未给出的信息,如加工注意点、材料选择等。 装配功能SolidWorks 中装配的功能是由用户指定装配体中各零件之间的装配约束关系,将零件装配成装配体。装配系统不但可以将零件装配起来,也可以读入已经装配好的装配体,作为子装配体进行装配;子装配体在装配过程中可以视为一个整体,等效于一个零件。SolidWorks 可以模拟仿真装配的全过程。 二次开发虽然SolidWorks 所提供的功能非常强大,但要使其在我国企业中真正发挥作用,就必须对其进行本地化、专业化的二次开发工作。为了方便用户进行二次开发,SolidWorks提供了几百个API函数,这些API是SolidWorks的OLE或COM接口.用户可以使用高级语言对其进行二次开发,建立适合用户需要的、专用的SolidWorks功能模块。SolidWorks 是一个非常开放的系统,提供了VB ,VC + + 和其他支持OLE 的开发语言接口。提供给用户必要的工具(宏语言、库函数等) 以开发个人化的应用模块,并且易于将它集成到系统中去。用VB 或VC + + 调用SolidWorks 的API 函数,可以完成零件的建造、修改;零件各特征的建立、修改、删除、压缩等各项控制;零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息;零件的装配信息;零件工程图纸中的各项信息;还可在SolidWorks主菜单上增加按钮,将自己开发的应用模块嵌入到它的管理系统中。 基本装配命令零件的建模完成后,即可进行零件的装配,先调用swApp 中的NewAssembly 函数新建一个空白装配文档,再通过调用AssemblyDoc 中的AddComponent 函数插入零部件:AssemblyDoc.AddComponent (compName ,x , y , z)compName 表示要加入组件的路径及名称; x ,y , z 表示组件在装配文档中放置的位置。插入配合调用AssemblyDoc 中的AddMate 函数:AssemblyDoc.AddMate (mateType ,align ,flip ,dist ,angle)用mateType 控制配合类型,可取下列值:0 (重合) 、1 (同轴心) 、2 (垂直) 、3 (平行) 、4 (相切) 、5 (距离) 、6 (角度) ;align 控制两配合面的方向,0 (同向对齐) 、1 (反向对齐) 、2 (最近处) ;flip 为TRUE 时表示延缓配合; dist 控制mateType 为5 时的距离; angle控制mateTyp 为6 时的角度。 添加菜单为了操作方便,把生成标准件的功能挂到Solidworks 装配环境的菜单和工具栏上,在菜单上的提示为各标准件的名称,在工具条上的提示则为图标,用户要插入某个标准件时,只需在菜单或工具条上进行选择,然后由开发的程序调用相应的标准件功能模块。Solidworks 的SldWorks 对象,为VB 对Solidworks 工作环境进行访问处理提供了接口。通过此对象可以对Solidworks工作环境添加菜单、删除菜单、添加工具条、打开文件、新建文件、退出Solidworks 系统等功能,这里主要是通过使用SldWorks 对象的Addmenu 和Addmenuitem 方法来在Solidworks工作环境中添加菜单和下拉子菜单及功能模块的调用;通过使用SldWorks 对象的Addtoolbar 和AddToolbarCommand 方法来完成在Solidworks 工作环境中添加工具条和完成对应标准件功能模块的调用。Implements SWPublished.SwAddinDim iSldWorks As SldWorks.SldWorksDim iCookie As LongbRet = iSldWorks.SetAddinCallbackInfo(App.hInstance, Me, iCookie)bRet = iSldWorks.AddMenu(swDocNONE, ”螺纹联接(&L)“, 3) bRet = iSldWorks.AddMenuItem2(swDocNONE, iCookie, ”螺栓库(&S)@螺纹联接(&L)“, -1, ”LS_Item“, ”LS_ItemUpdate“, ”螺栓标准件库“)bRet = iSldWorks.AddMenuItem2(swDocPART, iCookie, ”螺栓库(&S)@螺纹联接(&L)“, -1, ”LS_Item“, ”LS_ItemUpdate“, ”螺栓标准件库“) 关于菜单插件的具体具体实现方法将在后面谈到。3.2.2数据库GB数据库是系统数据存储和管理中心,GB标准体现为数据表格,为了简约表达数据间的复杂关系,其表格往往都不是简单的二维表格。而现在流行的关系性数据库管理系统都是以简单的二维数据表基础。将GB数据成功导入数据库,并体现数据间的关系,是本次设计成功的关键,也是研究重点 未来扩展的GB库在现行系统中其实并不存在该库,这是对数据库中的现有数据组织上的要求。优秀的数据组织方式和存储结构,可以降低程序代码的难度,优化程序的结构。同时使将来数据的扩充或是修改成为可能。 3.2.3资源文件 图片文件作为Windows系统下的图形用户界面应用程序,适当的图形图象说明是必须的。该部分是独立于程序主体的,以文件的形式存储在特定的目录里,当系统运行时自动调用。 模板文件生成标准模型并不需要每次实时造型,而应该是为每种零件生成模板文件,最后选择需要的零件型号数据,驱动模板文件重新建模。生成模型文件与模板文件几何约束相同,尺寸约束相似。该部分是独立于程序主体的,以文件的形式存储在特定的目录里,当系统运行时自动调用。 SolidWorks和最终零件文件 系统通过OLE技术,和SolidWorks通信,SolidWorks打开指定的模板零件文件,并按照系统传递的参数修改模板零件文件的尺寸,最后重新建模,生产新的零件文件。 综上,本螺纹联接标准件库系统将分解成以下几个部分:1、 系统主体和用户界面,包括标准应用程序和SolidWorks菜单;2、 标准件GB数据库,包含了螺纹联接标准件的GB数据;3、 标准件模板零件文件库,包含了每个类型的标准零件的模板文件。以上几个部分的具体设计将在后面谈到。到此,系统完成了全部规划过程。 第四章 系统主体和用户界面的建立在VB中新建Active DLL工程,如图4.5,并把标准EXE程序的窗体文件和其他模块等添加到Active DLL工程,然后为工程添加一个类模块,内容如下:Make sure that a reference to the swpublished.tlb type library exists同图2.3一样,为Active DLL工程引用swpublished.tlb库文件,'Tell VB that you are going to provide functionality for the SwAddin interface为Active DLL工程获得SolidWorks对象,Implements SWPublished.SwAddinDim iSldWorks As SldWorks.SldWorks Dim iCookie As Long'Implementation methods of the SwAddin interfacePrivate Function SwAddin_ConnectToSW(ByVal ThisSW As Object, ByVal Cookie As Long) As BooleanDim bRet As Boolean ' store reference to SW session Set iSldWorks = ThisSW ' store cookie from SW iCookie = Cookie 'Inform. SW about the object that contains the callbacks bRet = iSldWorks.SetAddinCallbackInfo(App.hInstance, Me, iCookie) 'Add a menu item on the frame. when no documents are presentbRet = iSldWorks.SetAddinCallbackInfo(App.hInstance, Me, iCookie)'Add a menu item on the frame. when no documents are presentbRet = iSldWorks.AddMenu(swDocNONE, ”螺纹联接(&L)“, 3)没有文档的时候显示的菜单,使用AddMenuItem2方法,其中,”LS_Item“, ”LS_ItemUpdate“,是两个函数,见后面, bRet = iSldWorks.AddMenuItem2(swDocNONE, iCookie, ”螺栓库(&S)@螺纹联接(&L)“, -1, ”LS_Item“, ”LS_ItemUpdate“, ”螺栓标准件库“)打开或是新建零件文档的时候显示的菜单,bRet = iSldWorks.AddMenuItem2(swDocPART, iCookie, ”螺栓库(&S)@螺纹联接(&L)“, -1, ”LS_Item“, ”LS_ItemUpdate“, ”螺栓标准件库“)后面还有螺柱、螺钉、螺母和垫圈,和螺栓一样,故省略,SwAddin_ConnectToSW = TrueEnd Function图4.5卸载插件时删除菜单,主要使用RemoveMenu方法。Private Function SwAddin_DisconnectFromSW As Boolean Dim bRet As Boolean'Remove any UI that was added earlier删除先前添加的菜单, bRet = iSldWorks.RemoveMenu(swDocNONE, ”螺纹联接(&L)“, ”“) bRet = iSldWorks.RemoveMenu(swDocPART, ”螺纹联接(&L)“, ”“) Set iSldWorks = Nothing SwAddin_DisconnectFromSW = True End Function LS_Item函数,这里是打开窗体入口,如本列,在这里加载螺栓标准件的的第一个窗体:frmLS_Slt窗体, Public Sub LS_Item() frmLS_Slt.ShowEnd Sub
LS_ItemUpdate函数,用于控制菜单的状态,在本次设计中定义了Long 型的LS_MnuSts公共变量,系统加载的时候,使LS_MnuSts=1,加载了frmLS_Slt后,使LS_MnuSts=2,当frmLS_Slt正常退出后,使LS_MnuSts=1,这样就可以使同一模块不能重复加载,以避免同一模块前后窗体的数据不一致或是前后干扰等,如图4.6。图4.6Public Function LS_ItemUpdate() As Long' Return the state information for the menu item ' 0 - Disabled and unchecked ' 1 - Enabled and unchecked (default when update routine does not exist) ' 2 - Disabled and checked ' 3 - Enabled and checked LS_ItemUpdate = LS_MnuStsEnd Function 最后,将Active DLL工程编译为一个DLL文件,就可以使用本小节前面的方法,在SolidWorks中加载并运行了,同一个DLL文件只需要加载一次就可以了,如图4.4。需要卸载或是重新加载,只需要按照图4.2操作就可以了。
受力分析模块的工作原理Private Sub cboCL_Click() strMaterial = cboCL.Text cboQD.Clear Dim txtSQL As String Dim MsgTxt As String Dim rst As ADODB.Recordset 根据选择的材料列出强度级别 txtSQL = ”select 强度级别 from 螺栓材料 where 螺栓材料 = '“ & strMaterial & ”'“ Set rst = ExecuteSQL(txtSQL, MsgTxt) cboQD.Text = rst(”强度级别“).Value Do Until rst.BOF Or rst.EOF cboQD.AddItem rst(”强度级别“).Value rst.MoveNext Looprst.Close小径 d1的计算公式(式-1) S = 1 或 1.3 由受力情况而定 Fa 总拉力。 PI = 3.1415926…… cgm = Sb / Sp Sp = Val(cboSp.Text) Sb = Val(rst(”屈服极限“).Value) 螺栓总拉力 Fa = Fe + Fr 或者是(式-2) Fe '工作载荷Femin '最小工作载荷Fo '预紧力Fr '残余预紧力Fa '总拉力 工作拉力和残余预紧力一起作用在螺栓上,所以螺栓总拉力为工作载荷与残余预紧力之和。考虑的相对刚度,总拉力可以表达为预紧力加上部分工作载荷。针对四种受力情况,分别选择,输入工作载荷,按情况选择预紧力和残余预紧力选择材料,强度级别,安全系数就可以计算出需要的零件的尺寸数据,然后就可以从受力分析与校核模块转到标准件模块。 5.2.1基于ADO技术的数据库访问模块。Option Explicit参数SQL传递查询语句;MsgString传递查询消息;ExecuteSQL函数自身以一个的形式返回Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset定义连接Dim conn As ADODB.Connection定义数据集Dim rst As ADODB.Recordset定义字符串数组Dim STokens() As String出错处理On Error GoTo ExecuteSQL_Error使用Split函数产生一个包含各个子串的数组 STokens = Split(SQL) 打开连接 Set conn = New ADODB.Connection参数ConnectString是一个函数,返回连接字符串参数,在后面将谈到conn.Open ConnectString判断字符串中是否有指定的内容If InStr(”insert,delete,update“, UCase$(STokens(0))) Then执行查询语句conn.Execute SQL返回查询消息 MsgString = STokens(0) & ”query successful“Else创建数据集对象Set rst = New ADODB.Recordset返回查询结果rst.Open Trim$(SQL), conn, adOpenKeyset, adLockOptimistic返回记录集对象 Set ExecuteSQL = rst MsgString = ”查询到“ & rst.RecordCount & ”条记录“ End IfExecuteSQL_Exit:清空数据集对象Set rst = Nothing终端连接 Set conn = Nothing Exit FunctionExecuteSQL_Error:错误类型判断 MsgString = ”查询错误:“ & Err.Description Resume ExecuteSQL_ExitEnd Function 连接字符串函数,Public Function ConnectString() As String返回一个数据连接 ConnectString = ”driver={Microsoft Access Driver (*.mdb)};pwd=;dbq=“ & App.Path & ”ResData.mdb“End Function 将上面的代码作为一个公共模块添加在工程中。上面的代码是正确无误的,并且对任何关系形数据库都是通用且有效的。在工程的任何地方都可以调用该函数,这样可以极大的提高代码的效率,同时降低了代码的调试难度。用下面的方式就可以访问数据库了,建立SQL语句变量Dim txtSQL As String 建立返回消息变量 Dim MsgTxt As String建立记录集变量 Dim rst As ADODB.Recordset为SQL语句变量赋值 txtSQL = ”select 表名称 from 六角螺栓“调用ExecuteSQL函数,执行查询,并接收记录集Set rst = ExecuteSQL(txtSQL, MsgTxt) 操作记录集对象rst, cmb.Text = rst(”表名称“).Value Do Until rst.BOF Or rst.EOF cmb.AddItem rst(”表名称“).Value rst.MoveNextLoop操作完成后关闭记录集,释放资源rst.Close 5.2.2将GB数据表导入到数据库中Access的数据模型为关系数据模型,物理上体现为简单的2D数据表,而GB数据表为了简约表达数据以及数据之间的复杂关系,往往不会是简单的2D数据表。将GB数据导入到数据库中,就需要考虑到如何合理的将GB数据表拆分为简单的2D数据表,并且表达出表之间的关系。以螺柱的GB数据表导入数据库为例说明GB数据表的拆分和数据库中表的建立。图5.3
螺柱的GB数据表包括了螺柱的基本参数、螺柱的L系列和螺柱的L与B的关系三个部分,将这些数据导入到数据库中,就应该将它们分成三张表来存放,分别是“双头螺柱”、“螺柱L系列”、“螺柱LB关系”,如图5.3、5.4。
图 5.4由于螺柱L系列中部分数据不要求尽可能不使用,也就是其中有括号的数据,在设计表的时候,就可以建立两个字段,分别是L,Lshow,L字段的数据类型是单精度数字,用来参与计算和后面的驱动造型,Lshow是字符型,在用户选择时用来显示给用户看,让其了解那些是尽量不要选择的,而即使用户选择了带有括号的Lshow值,系统只要将其对应的L值读取就可以了。对螺柱标准件长度L的选择,和对应螺纹高度B的选择,其实现代码如下:将L,Lshow从“螺柱L系列”中查询出来,条件是要满足L的值应该属于在“双头螺柱”中选定规格的螺柱的 [Lmin,Lmax] 这个区间,该区间是在前面选择螺柱规格的时候就被查询出来了的。txtSQL = ”select L,Lshow from 螺柱L系列 where L >=“ & Lmin & ” and L <= “ & Lmax & ”“ Set rst = ExecuteSQL(txtSQL, MsgTxt)
n = rst.RecordCount ReDim l(n) cmbl.Text = rst(”Lshow“).Value i = 0 Do Until rst.BOF Or rst.EOF将满足条件的Lshow值添加到下拉框cmbl中,供用户选择 cmbl.AddItem rst(”Lshow“).Value将满足条件的L值存放的数组L中 l(i) = rst(”L“).Value i = i + 1 rst.MoveNext Loop当用户选择了L后,就可以执行下面的代码,用来查询对应的B值,将Lmin,Lmax,b从“螺柱LB关系”中查询出来,条件是前面选择的螺柱规格的公称直径LZ_d txtSQL = ”select Lmin,Lmax,b from 螺柱LB关系 where d = “ & LZ_d & ” order by b asc“ Set rst = ExecuteSQL(txtSQL, MsgTxt) Do Until rst.EOF Lmin = rst(”Lmin“).Value Lmax = rst(”Lmax“).Value如果L大于Lmax,就比较下一条。 If LZ_l > Lmax Then rst.MoveNext ElseB的值从“螺柱LB关系”表中查询出来了 LZ_b = rst(”b“).Value Exit Do End If 上面只是以螺柱为例,简单的说明数据库的设计和建立的方法,并并分析了用代码如何实现查询工作。下面将分析整个螺纹联接标准件库各类零件的数据之间的关系,以及数据表的物理结构。5.2.3完成全部数据的导入不同类型标准零件的数据表结果,部分相似,如图5.5。图5.5
螺纹联接螺栓、螺柱、螺钉、螺母和垫圈五大类零件,从外型结构上看,相互差异较大,但它们都有公称直径或是螺纹规格这个字段,因此,我们应该将所有的零件基本参数表的前两个字段创建为一致的数据类型,甚至是相同的字段名称。如此在任何零件的查询中基本上就可以使用相同的代码,这样就可以使代码可重用,提高代码的书写效率,同时也可以降低代码的调试难度,因为各个地方的代码结构一致,只要将任意一个地方的代码调试正确,其他地方代码复制就可以了,如图5.5。图5.6同一类型的零件的数据表,其数据结构一致,同时还要保证它们的字段名称也一致,这样,就可以在不对代码作出任何修改的情况下,扩充数据库,如前面所谈到的在系统结构中的未来的GB数据。如图5.6。 第六章 标准件模板零件库的建立6.1 标准件模板零件库概述 对于一个设计对象,参数十分复杂,而且数量庞大。而独立变化的参数一般只有几个,称之为主参数或者主约束,其他可以由图形结构特征确定或者与主参数有确定关系的参数称为次约束。参数化设计的核心是一种驱动机制即参数驱动机制。当把参数化模型确定下来以后,为了实现界面关键参数(主参数)对参数化模型的控制,必须建立界面参数和参数化模型中的底层参数(次约束)之间逻辑上或者数值上的关系,称之为参数驱动机制。通过参数驱动机制,可以对图形的几何数据进行参数化修改。参数化设计主要有程序驱动法和尺寸驱动法两种,程序驱动法是将设计过程的所有关系式融入应用程序中,然后在程序的控制下,顺序执行这些设计表达式,通过与用户的交互完成设计工作,这一方法的主要特点是:如果要修改图形;一般要重新运行一遍应用程序,当应用程序输入不同值,便生成不同的图形;尺寸驱动是指在保持零件结构不变的情况下,将零件的尺寸标注视为变量,给予不同的尺寸值,便能获得一系列零件。外型相同而尺寸不同的相似零件,它允许用户在定义一个典型零件时,不必考虑零件中几何元素的准确位置,而只需保证其拓扑结构正确,同时进行必要的尺寸参数标注,通过尺寸参数值的变化来生成结构相同而参数不同的零件族,它在零部件的重新生成与修改方面显
示出极大的方便性。因此,本系统采用尺寸驱动法,不用重复图形的生成过程,程序代码量少,便于获得系列化零件图形。每一种标准件按要求不同,有一组或多组尺寸系列,但同一种标准件结构基本相同。据此,在标准件建库过程中,采用参数化方法。其基本思想是:开发人员在SolidWorks环境中,任意选定一个比较方便绘图的零件型号尺寸,按照正确的设计关系(包括几何约束和尺寸约束)绘制标准件的模型,当需要生成某一规格的标准件时,可根据用户给定的相关约束变量参数值,对已定义好的标准件模型的相应约束关系进行修改与求解,使几何元素和特征的几何或拓扑信息发生改变,并引起相关图形元素及关系的联动,生成所需要的零件。6.2 标准件模板零件库的建立 标准件模板零件库:是参照国家标准,利用SolidWorks的特征造型技术建立的三维零件库。每一种标准件按要求不同,有一组或多组尺寸系列,但同一种标准件结构基本相同。每一种形状的标准零件均建立一个模型,并在造型的过程中完成对标准件图形的几何约束和尺寸约束定义,同时对需要尺寸驱动的特征尺寸定义相应的变量(名字),以便程序访问,实现尺寸的驱动。该库中储存的并不是带有具体几何数据的实体模型,而是标准件的概念模型,即描述标准件的几何形状的信息。其主要包括以下内容:1、 标准件的几何约束关系描述。利用水平、垂直、正交、相切、同心、平行等几何关系(即拓扑关系)来定义标准件的几何形状,从而得到标准件的几何约束关系描述。2、 标准件的几何特征参数名。此参数名应与标准件特征性规范中特性名相吻合。一旦确定后,在整个使用过程中应前后保持一致。3、 标准件的几何特性参数关系描述。定义标准件的各个特征要素的基本尺寸之间的参数关系。4、 零件构形特征和构形过程描述。对某一类标准件进行分析、抽象出用特征造型方法构造零件时所用的特征类型,是零件建库的一项重要工作,零件构形过程描述包括造型的操作步骤,操作类型和每步操作所参与的特征引用位置。构形过程并不是构造某一标准件具体的实体模型,而是通过 程序+变量 的方法来记录标准件建模的过程,从而建立它的概念模型。即通过CAD软件本身的API函数,利用特征造型技术,采用上面定义的标准件的尺寸参数名和尺寸参数关系来描述一个实体模型。按照构形的过程,将具有特定参数的构形特征一步步构造出来,即完了标准件的生成。任意选定一个比较方便绘图的零件型号尺寸,按照正确的设计关系(包括几何约束和尺寸约束)绘制标准件的模型,如图6.1,以M36螺栓为例。图6.1M36螺栓的尺寸较为方便,在造型过程中,对全部的几何关系进行全约束。利用水平、垂直、正交、相切、同心、平行等几何关系(即拓扑关系)来定义标准件的几何形状,从而得到标准件的几何约束关系描述。标注尺寸的时候,从螺栓的数据表中,选择定一个特定的型号的尺寸参数来标注。
模型建立好了后,在模型中应该尽量使用尺寸链和方程,定义标准件的各个特征要素的基本尺寸之间的参数关系。同时修改每一个标注的几何特征参数名为零件的尺寸代号,使该名称和程序中驱动修改的变量名称一致,如图6.2,d@草图4,其中的d就是螺栓的公称直径。图6.2成功建立了模板文件,对模型的全部的几何关系进行全约束,为每一个特征参数进行了命名后,就可以在程序代码中,打开该模型文件,并修改特征参数,最后重新建模,就可以生成选顶尺寸的特定零件文件了。下面的代码将简要说明这个过程。 打开模板文件Set Part = swApp.NewDocument(App.Path + ”Res六角螺栓.SLDPRT“, 0, 0, 0) 省略部分代码 选择 d@草图4 这个尺寸标注boolstatus = Part.Extension.SelectByID(”d @草图4@“ + fileName + ”.SLDPRT“, ”DIMENSION“, 0, 0, 0, False, 0, Nothing) 修改d@草图4 的值为LS_d / 1000 ,LS_d就是程序中螺栓的公称直径变量,系统运行时将为它赋值Part.Parameter(”d @草图4“).SystemValue = LS_d / 1000 还有其他的尺寸标注,省略 重新建模Part.EditRebuild这样就生成了一个用户选定类型与尺寸的特定标准零件。其他标准件的模板文件和螺栓基本一致,用上面的方法建立后,就建立起了模板零件库系统。
篇4:叶面施肥关键技术
叶面施肥关键技术
叶面喷施肥料具有肥效快、利用率高、施用方便、效果显著和节省肥料等优点,对提高农作物产量、品质有十分重要作用. 1.因肥料特性制宜用作叶面肥的肥料有尿素、磷酸二氢钾、硝酸钾、硫酸钾、硫酸铵、过磷酸钙和草木灰的.浸出液以及硼肥、钼肥、锰肥、锌肥、铜肥和铁肥等微量元素肥料.一些极易挥发的肥料如氨水、碳酸氢铵,含有氯离子的肥料如氯化铵、氯化钾等不宜用作叶面肥.
作 者:筱岫 作者单位:益阳市农业科学研究所,413046 刊 名:湖南农业 英文刊名:HUNAN AGRICULTURE 年,卷(期): ”"(11) 分类号: 关键词:篇5:GMPLS关键技术
1 引言
随着Internet和光纤技术的迅猛发展,IP和光网络技术的相互融合必将成为未来网络发展的重要趋势,如何解决IP层与光层的融合,GMPLS提供了一个良好的思路。GMPLS继承了几乎所有MPLS的特性和协议,是MPLS向光网络的扩展,它可以用统一的控制平面来管理多种不同技术组建的网络,从而为简化网络结构、降低网络管理成本和优化网络性能提供了重要保证。
2 多协议标签交换(MPLS)技术的回顾
MPLS是GMPLS的基础,它是定位于2.5层的网络技术,为IP层与链路层的交互提供了一个统一的操作平台,具有很强的适应性和灵活性,能支持现有网络层和链路层的各种协议(比如对网络层支持IPv4、IPv6、IPX、AppleTalk等,对链路层支持FR、ATM、PPP等)。MPLS是一种能够大幅度提高路由转发速度的技术,它的体系结构分为两个独立的组件,即转发组件(也叫数据层面)和控制组件(也叫控制层面)。转发组件使用标签交换机维护的标签转发数据库,根据分组携带的标签执行数据分组的转发任务。控制组件负责在一组互联的交换机之间建立和维护标签转发信息。
MPLS的简单工作原理是:当数据分组到达MPLS网络云的入口LSR(标签交换机),入口LSR通过分析数据分组的信息头来决定该分组属于哪个FEC(转发等价类,即FEC使一些具有某些共性的数据流集合,这些数据在转发过程中被LSR以相同的方式进行处理),然后查找LIB(标签信息库),将一个与该FEC相关联的标签加在数据分组前。在后继的LSR中,不需要再查找IP分组头,只需要根据数据分组的标签来查找LIB,即可决定其转发出口,在转发前将新的标签取代旧的标签,然后转发到下一个LSR 。当数据分组到达出口LSR 时,出口LSR将Label从数据分组中去掉,又按照传统的IP转发方式对数据分组进行转发。其中,所有与FEC绑定的标签分发和LSP的建立都是由LDP(标签分发协议)来完成。
3 GMPLS的关键技术
为了能适应未来智能光网络动态地提供网络资源和传送信令的要求,我们需要对传统的MPLS进行扩展和更新。GMPLS正是MPLS向光网络扩展的产物,它在支持传统的分组交换、时分交换、波长交换和光纤交换的同时,还对原有的路由协议、信令协议作了修改和扩展。
目前,IP层与光传送层的融合主要有重叠模型和集成模型两个方向,GMPLS应同时支持这两种模型。
重叠模型又称客户—服务器模型,即光层网络作为服务器,IP网络层做为客户层,两者具有独立的控制平面。具体地说,一个在核心光网络;而另一个在客户层,集中体现在用户—网络接口(UNI)处,两者之间不交换路由信息,独立选路,具有独立的拓扑结构。核心光网络作为服务器,为网络边缘的客户提供波长业务。它的优点是光网络与IP网络可以独立地发展;缺点是网络扩展性能差,存在N2问题。另外,两个层面存在两套不同的地址空间,需要复杂的地址解析。
集成模型又称对等模型或混合模型,它的基本特点是光传送层的控制智能被转移到IP层,由IP层来实施端到端的控制。此时,光传送网和IP网形成一个集成的网络,统一的控制平面维护单一的拓扑,光交换机和IP路由器可以自由地交换所有信息并运行同样的选路和信令协议,实现一体化的管理和流量工程。但它的缺点也是明显的,就是必须在光层和IP层交互大量的状态和控制信息。
3.1 GMPLS的标签和标签交换路径
GMPLS为了能控制光网络,它不仅要支持传统的分组交换,而且还要支持时分交换、波长交换和光纤交换,这就决定了GMPLS与MPLS有很大的不同,主要表现在以下几个方面:
· MPLS的标签空间非常大,而波长和时分信道非常有限。
· MPLS的LSP能够被分配连续值的带宽,而光信道和时分信道只能被分配有限个离散值的带宽。
· 如果两节点之间有多条并行光纤,GMPLS还必须支持光纤交换。
3.1.1 GMPLS的标签
为了支持电路交换(主要是SDH)和光交换(包括LSC和FSC),GMPLS设计了专用的标签格式,标签应该支持对光纤、波带、波长甚至时隙的标识。以CR-LDP的TLV格式为例,其标签项中应包含LPT、LSP-ENC、G-PID和链路标识4个字段。其中,LPT字段是指链路保护类型,LSP-ENC字段指LSP编码类型,定义了OC-n(SONET)、STS-n(SDH)、GigE、10GigE、DS1~DS4、E1~E4、J3、J4、VT以及光波长、波带等类型。G-PID字段是通用净荷标识,表示LSP运载的净荷类型,使用标准的以太网净荷类型,由入节点设置,供出节点使用,中间节点仅进行透明传送。链路标识字段标识收到标签请求的链路,仅在邻接的节点间具有本地效力。标签的长度和格式根据不同的应用环境也会不同。比如在波长标签交换应用中,端口/波长标签为32bit,表示使用的光纤或端口或波长,与传统标签不同的是没有实验比特、标签栈底和TTL等域,但它与传统标签一样,仅在邻接节点间具有本地效力。标签值可以通过人工指配或由协议动态决定。
3.1.2 GMPLS的层次化标签交换路径
为了支持光网络,GMPLS需要引入新的概念——层次化标签交换路径。层次化的含义是针对LSP的复用能力而言的,复用能力越强的LSP层次越高。如图1所示,LSP1、LSP2、LSP3和LSP4具有由低到高的嵌套关系。LSP1在最低层,它的始端和终端设备是具有分组交换能力的网络接口(主要的设备是路由器);LSP1和其他具有分组传输能力的LSP可以聚合到LSP2中,LSP2处在第二层,它的始端和终端设备是具有时隙交换能力的网络接口,主要种类有SDH/SONET、TDM或ADM接口;同样,LSP2可以和其他的具有时隙传输能力的LSP又可以聚合到LSP3中,LSP3的始端和终端设备(光交叉连接设备,OXC)在具有波长交换能力的网络中;LSP4在具有光纤交换能力的网络中,处于最高层。
LSP(标签交换路径)分层后,带来的好处是显而易见的。首先,通过不同层次间的路由汇聚,可以非常节约地使用波长和时隙信道,从而解决波长和时隙信道非常有限的问题;其次,解决了光信道和时分信道只能被分配有限个离散值带宽的问题。比如,在不采用分层LSP之前,穿过光网络100Mbit/s的LSP都需要一个单独的、非常大的离散值带宽(例如2Gbit/s)。采用了分层结构后,每个波长信道都成为了一条聚合路由,大量的LSP可以共享一条2Gbit/s的光信道。
3.1.3 层次化LSP的建立
这一部分我们将解释层次化LSP的建立过程, 假定LSP1是一条支持500Mbit/s分组传输的线路,LSP2是一条STS-12c的SDH线路,LSP3是一条OC-192线路,LSP4是支持WDM的线路。
下面的讨论是基于GMPLS中定义的扩展后的RSVP-TE信令。原版的RSVP使用两种信令,一种是PATH消息,它是发端向收端发送的请求信息,主要包含对业务流描述和分类的参数。另一种是RESV信息,它包含描述接收端预留的资源参数。为了支持MPLS,需要在RESV信息中加入标签对象,它的简单工作原理是:当一个LSR要为一个RSVP流发送RESV信息时,它会产生一个新的标签,将它写入转发表的入标签栏和要发送的RSVP信息中,
上游邻近的LSR收到此信息后,会将RESV信息中的标签写入转发表的出标签栏,同时产生一个新的标签,并把它写入转发表的入标签栏和要发送的RSVP信息中,然后此信息被传送到上游邻近的LSR。当RESV信息到达发端时,一条保证QoS的LSP就建立了。
如图2所示,层次化LSP的建立过程如下:
(1)一个关于要建立LSP1的路径请求报文(Path1)在R0产生,此报文被转发至R1(一个分组交换网的边缘节点)。
(2)R1收到此报文后,就会触发要建立LSP2(R1到R7)的路径请求报文(Path2)产生,此报文被转发至S2,这种过程一直持续到LSP4的路径请求报文(Path4)产生。
(3)Path4到达O5时,O5会沿原路回送Resv信息,当Resv信息到达O3时,LSP4就成功建立了,此时,Path3报文可以由LSP4传至O5,然后由O5转发到S6,S6沿原路径向S2发出标签映射消息,LSP3随后被建立。此过程一直重复到LSP1被成功建立。
3.2 路由与寻址
GMPLS将网络划分为两个层次:分组交换层(PSC)和非分组交换层。非分组交换层还可以细分,特别是当TDM与光交换由不同设备完成时,进一步细分是非常必要的。例如,图1中有4个网络云分别是:PSC Cloud(分组交换网络云)、TDM Cloud(时分交换网络云)、LSC Cloud(波长交换网络云)和FSC Cloud(光纤交换网络云),4个网络云可以被看成4个的自治系统。每个自治系统又可以分成多个路由域,每个路由域可以运行不同的内部路由协议(GMPLS定义了两种扩展的IGP协议:OSPF-TE和ISIS-TE)。每一个非分组交换层可以自成为一个AS(自治系统),各自治系统间的路由信息交换可由边缘路由器上运行域间路由协议来实现(如BGP4)。
在传统的路由网络中,两个IGP的邻居之间必须用物理链路直接相连,否则二者不能成为邻居。GMPLS重新定义链路概念,规定网络有权将部分LSP作为链路,并在路由域内进行通告。为此,GMPLS还设计了一个复杂的链路管理协议(LMP),它是GMPLS体系中一个非常重要的组成部分。
GMPLS规定了两种寻址方式:显式路由和逐跳路由。显式路由类似于源路由技术,在入口处指定路径中的每个节点;而逐跳路由则是由中间的每个节点自行决定下一个出口节点。很显然,逐跳路由模式要求中间的每个节点拥有全路由,它对设备路由处理能力的要求是非常高的。所以为了降低对传输网络设备的要求,GMPLS指定显式路由(包括宽松型和严格型)作为设备必须具备的能力,将逐跳路由作为可选能力。
3.3 链路的绑定和无编号链路
随着新的业务不断增多,未来网络的两个交换设备之间可能有上百条光纤,每条光纤上又有上百条波长通路。为每一条光纤、每一条波长通路和每一条时隙通路都分配一个IP地址是不可能的,因为这样会大大减少IP地址空间和加重管理负担。为了解决这个问题,GMPLS采用了两种机制,即链路绑定和无编号链路。链路绑定的具体做法是提取并行链路的一些共性,并将这些共性作为一条绑定链路的属性,它的好处是大大减少了链路状态数据库的大小,降低了维护开销;无编号链路是为了减少IP地址的使用而提出的,具体做法是用一个二元组[Router ID,Link Number]来表示链路的地址。其中,链路号的通告需要扩展相应的路由协议。
3.4 GMPLS的信令
为了适应光网络,GMPLS在继承MPLS信令的基础上,对原有的协议进行了扩展。这些更新和扩展主要包括:
(1)与MPLS-TE的信令过程相同,GMPLS的LSP建立过程也是由上游节点向目的端发出“标签请求消息”和目的端返回“标签映射消息”。所不同的是,“标记请求消息”中需要增加对所要建立的LSP的说明,包括LSP类型(PSC/TDM/LSC/ FSC)、载荷类型和链路保护方式等。
(2)为了达到优化的目的,上游节点可以向下游节点推荐建议标签(下游可以不采纳建议标签)。建议标签可以大大减少在收发端建立双向LSP的时间,减少信息传输的延迟时间。
(3)支持双向LSP是GMPLS信令的一个重要特征。双向LSP在每一方向上都有相同的流量工程要求,包括生存期、链路的保护与恢复、资源要求(如时延和抖动)。双向LSP的上行数据通路和下行数据通路采用统一信令消息,这样可以减少LSP的建立时间和网络上传输建立LSP的信令开销。双向LSP的两个端点都有权发起LSP的建立过程,如果双方被分配同一资源(如端口号),就会发生标签竞争,如何处理这一冲突,GMPLS建议采用比较双方Node ID大小的方式,较高的ID号的请求容易满足。
(4)为了快速处理故障,GMPLS采用了故障通告的机制,故障通告的机制采用通告消息来通告故障的邻近节点处理故障,这样就可以防止一些中间节点处理这些通告消息,避免故障点的状态被改变。通告消息已经被加入到RSVP-TE中,它不会替换RSVP中已存在的错误通告信息。
3.5 链路管理
GMPLS定义专门的链路管理协议(LMP)来管理两节点间的链路,其内容包括控制信道管理、链路属性关联、链路连接性验证和故障隔离/定位。其中后两项为可选项。
3.5.1 控制信道管理
控制信道是实现两相邻节点控制平面功能(如信令、路由和管理信息)的重要基础。为了保证控制信道的可靠性,GMPLS建立了专门的双向控制信道(与数据信道相隔离)来处理两节点间众多的独立或绑定的链路。
控制信道配置好后,就开始使用一个“Hello”协议来建立和维护两节点之间的连接。“Hello”协议分为协商阶段和保持阶段,协商阶段可以对一些基本参数进行协商;保持阶段进行“Hello”信息的传递。GMPLS通过控制信道接口来管理和配置控制信道(每个控制信道接口可以包含多个控制信道),完成使用哪一个控制信道来传输信息。控制信道可以采用显式配置,也可以采用自动配置。
3.5.2 链路属性关联
交换链路属性可以动态改变链路的特性,增加链路、改变链路保护机制、改变端口标识符等。
3.5.3 链路连通性的验证
链路连通性验证是一个可选的规程,在“Hello”协议协商阶段会商讨是否启用此规程。链路连通性验证规程主要用于验证数据链路的连通性,也可以在RSVP-TE和CR-LDP信令中用来交换链路的标识。验证数据链路的连通性可以通过发送Ping类的测试消息逐一验证,测试信息是通过数据链路传输的。
3.5.4 故障隔离/定位
故障定位对于网络运营非常重要。快速的故障定位是实现快速自愈和快速人为响应的前提。
故障隔离/定位也是在“Hello”协议协商阶段决定是否启用此规程,故障定位分为两个阶段:故障检测和故障通告。对于光网络而言,故障检测应在光层完成,这里距故障点最近。如果数据链路出现故障,所有下游节点的电源管理系统就会探测到光信号的丢失,并指示故障的发生。下游节点立即向它的上游相邻节点发送一个信道故障告警信号,上游节点收到此告警信号后马上检测该LSP相应的输入和输出端口是否有故障,再向下游节点返回一个信息,从而对故障点进行具体的定位。
4 结束语
通过上面的讨论,我认为MPLS扩展到GMPLS,将会对未来的交换构架和控制起到重要作用。基于GMPLS的统一控制平面会增加网络的智能性,使得相互连接的网络单元更好地工作。所有的网络单元在GMPLS的控制下,对等地协同工作,动态地建立跨越不同类型网络的标签交换路径,从而节省高昂的网管维护费用,为在短时间内供应高带宽和新的增值服务提供了保障。当然,使GMPLS真正成为互联网的统一控制平面所要走的路还很长,有很多信令和路由协议有待于不断地修改和完善,以适应不同技术的要求。
篇6:二次开发心理健康教育论文
二次开发心理健康教育论文
我们在课程标准的总体框架内,对教材内容进行适度的取舍和调整,从而使之更好地适应学校教学实际和学生的学习需求。
近年来,兰州市城关区教研室把对省编教材的二度开发作为心理学健康教育课堂教学研究活动的主要课题,展开了实践研究。我们开始按照一定的权限范围,在课程标准的总体框架内,对教材内容进行适度取舍和调整,从而使之更好地适应我区学校教学实际和学生的学习需求。
一、 教材的“二次开发”必须基于原省编教材进行
老师们在“二次开发”时对教材进行了调整,灵活地进行了教学设计。由于水平能力的限制,完全脱离教材谈开发教材是不现实的,原省编教材的编写是在课程和教学专家、学者的科学、严谨的工作下完成的,其基础性、系统性和典型性是其他任何教学资源都不能比拟的。因此,我们首先提出不脱离原有教材实施 “二次开发”。我们把适合学情需要的有关教学资源补充到教材中来,把教材中不合时宜的内容加以调整和替换,延伸和拓展教材的资源性功能。
二、教材“二次开发”必须吸纳学生的意见和建议
学生是学习的主体,课程的真正价值是教师和学生在教与学的互动中创生出来的,教材的“二次开发”只有在学生的参与下,才显得有实际意义和教学价值。所以课后收集学生的评价和反馈尤为重要,可以用简单问卷的方式,了解学生在这节课的收获,喜欢的环节,不喜欢的'环节,最后提出学生的建议,考虑其合理性予以吸纳。
三、 教材“二次开发”必须落实在教学设计中
“二次开发”的本意其实就是“再次设计”。教材的第一次设计是专家学者的心智成果。由于教材第一次设计具有很强的“普适性”特点。如果教师能够针对学情实际,根据教学设计理论要求和设计方法,对学习需要、学习内容、学习任务和学习过程以及学习资源进行科学分析和正确判断,根据分析结论,调整教学目标,对教材进行“再次设计”,就能“实事求是”地在促进学生的全面发展中发挥教材的最佳实效。
【案例】
教学设计 五年级下册第11课《学会原谅》
(一)热身活动:你“结”我“解”
游戏规则:同桌两人一组合作,一位同学先给绳子打五个结,必须打实,但不能打得太死。开始计时,另一位同学快速解开这五个结,先完成的同学马上站起来。时间为一分钟,时间到比赛就结束。
师:首先要祝贺完成的同学,我想请没完成的同学说说什么原因让你们的解绳没完成,有什么感受?
学生分享失败的原因和感受。
老师总结:同学们,在学习和生活中,我们会跟同学、家人发生这样那样的不愉快,出现一些磕磕绊绊,就像一根绳子上打了结。这是正常的,也是可以解决的问题。
(设计意图:通过活动,让孩子们通过一个简单的解绳游戏感受到与人合作中会有一些因素导致结果的失败,这是普遍而正常的情况,进而引申到与人相处的过程中,也会出现很多不愉快的事情,从而引起我们消极的情绪,告诉学生要正确看待生活中出现的和他人的矛盾、误解等不愉快的现象。)
(二)转换阶段
1.观看视频《同学之间》。(视频内容:小强抱着球进来,跟正要去交美术作品的小红撞在了一起,小红的美术作品被弄脏了。)
师:下面,让我们看一个发生在我们身边的例子。看完,同桌交流,预设一下他们之间接下来会发生什么事?
播放视频。同桌交流并回答。
师总结:一件不愉快的事情发生了,我们会有很多应对的方法,原谅他人无意的过失,矛盾就会化解;而不恰当的方法则会激化这个小小的矛盾。
2.演一演。
师:下面,我们请几组同学演一演《同学之间》后面的故事,我们从不同的角度演绎,看看不同的处理方式会有怎样的结果。
生展示两三种处理办法和事情发展的结果。
师:同学们看到了,对同一个问题采用不同的处理方法,会产生不同的结果。小红原谅小强,理解到他的过失不是有意而为,可以使自己的心情更加舒畅,这样也能拥有更多的朋友;两人如果恶言相向,甚至成了仇人,大家心里都会不舒服,朋友也就没得做了。(板书“理解”)
(设计意图:用视频呈现一个学生日常人际交往中发生的事情,通过角色扮演让学生体会到,面对一件突发的矛盾,不同的处理方法在人际互动中会产生不同的结果,理解他人的想法,而不是只看事情的结果,是维持良好的人际关系的一种态度和方法。)
从课程实施的过程来看,教材“二次开发”的过程只是其中的一个部分或环节,它不是一次完成的,它可以看作是一个计划——行动——再计划——再行动的循环过程,即首先计划如何使用教材教,然后用教材实施教学,并实时调整计划和教学,之后评价教材和教学,在评价教学和教材的基础上再计划,接着用教材再次教学。教材的“二次开发”需要经历这样的过程才能日益完善。
【IMAN的二次开发关键技术】相关文章:






文档为doc格式