基于Maxsurf二次开发的船体型值表建立方法

vbscript教程  时间:2021-02-22  阅读:()

李遵伟,陈建涛,王艳龙,王侨,王桂云(山东省科学院海洋仪器仪表研究所,山东青岛266001)摘要:提出基于Maxsurf二次开发的船体型值表建立方法,利用Maxsurf完成型线设计后,需要导出船体型值表.
以VB.
NET作为程序设计语言,以MicrosoftAccess作为数据库,对MaxsurfModeler模块进行二次开发从而得到型值表,通过实例证明该方法是可行的、快捷的.

关键词:Maxsurf二次开发;VB.
NET;MicrosoftAccess;型值表中图分类号:U662.
2文献标志码:A【DOI】10.
13788/j.
cnki.
cbgc.
2015.
Z.
005BuildingShipOffsetTableBasedonRe-developmentofMaxsurfLIZun-wei,WANGYan-long,WANGQiao,WANGGuiyun(ScienceandTechnologyCenterofOceanographicInstrumentofShandongProvince,ShandongQingdao266001,China)Abstract:Amethodofbuildingoffsettablebasedonre-developmentofMaxsurfispresentedinthispaper.
ItisnecessarytobuildoffsettableafterlinesdesigningusedMaxsurf.
TheprogramisproducedinVB.
NET.
AccessdatabaseareusedtostoretheoffsetwhichisgotfromMaxsurfmodel.
Anexampleiscompletedinthe`program,andthesimulationresultsdemonstratethefeasibilityandeffectivenessoftheproposedmethodinthispaper.
Keywords:Re-developmentofMaxsurf;VB.
NET;Access;OffsetTable0引言Maxsurf软件是由澳大利亚FormationDesignSystems公司为船舶设计和建造者开发的,适用于各种船舶设计、分析和建造的一套非常完整的计算机辅助船舶设计和建造软件.
用户借助Maxsurf可以为船体外型建模、评估稳性和强度、预测性能以及展开初始结构定义与分析.
Maxsurf软件目前在全球已拥有广泛分布在澳大利亚、中国、日本、德国、荷兰、新加坡、美国等国家的1000多个船舶设计和建造用户,在各种船舶设计和建造领域都得到了非常普遍的应用[1].

Maxsurf系统由船体模型生成(MaxsurfModeler)模块、船舶阻力及有效马力计算(MaxsurfResistance)模块、船舶水动力性能计算分析(MaxsurfStability)模块、船体结构生产放样(MaxsurfStructure)模块、船舶耐波性能分析(MaxsurfMotions)模块、空间实体自动拟合(MaxsurfFitting)模块、帆船性能分析(MaxsurfVPP)模块和数据转换(MaxsurfLink)模块等模块组成.
一般在船舶设计时主要使用MaxsurfModeler模块和MaxsurfStability模块.
MaxsurfModeler模块是Maxsurf软件包的核心部分.
MaxsurfModeler模块包括一整套用一个或多个真正的三维NURBS曲面,进行三维船体建模的工具[2].
MaxsurfModeler在完成船体三维建模后,无法导出型值表,这就给设计工作带来一定的困难.
本文针对MaxsurfModeler模块进行二次开发,对该模块的相关数据进行访问、抽取和重构,快速地输出型值表.

1Maxsurf开发环境Maxsurf的开发环境是MaxsurfActiveXAutomation.
ActiveXAutomation是微软公司开发的、跨应用程序的、通用的客户化和集成化技术.
通过ActiveXAutomation,Maxsurf和其他Windows应用程序之间的数据交互变得十分方便.
其另外一个强大的特性是用户可以使用常见的客户化编程工具,如VB.
NET(VisualBasic.
NET)、VC(VisualC++)和JAVA等编写MAXSURFActiveX应用程序.
对Maxsurf的二次开发可以通过两种方式实现:其一,Maxsurf用户可以选择VB.
NET(或VC、JAVA等)作为Maxsurf应用程序的开发工具,通过ActiveXAutomation接口在VB.
NET开发环境中实现Maxsurf的数据获取与操作;其二,可以把Maxsurf与其他标准的Windows应用程序(MicrosoftExcel、MicrosoftWord、MicrosoftAccess、AutoCAD2000及更新版本)通过VBA相集成[3],直接在Windows应用程序的VBA中实现数据的访问,但这种方式的不足是只针对特定的Windows应用程序.
VB.
NET是VisualStudio.
NET的一部分,是一种简单易学、功能强大的程序设计语言.
在保留VisualBasic6.
0传统优点的基础上,它提供了很多方便程序开发人员快速开发应用程序的新功能.
本文中选择VB.
NET作为Maxsurf二次开发工具,通过ActiveXAutomation接口在VB.
NET开发环境中实现Maxsurf的数据获取与操作.
2Maxsurf对象访问方式本文以VB.
NET为工具来开发Maxsurf,就是通过操纵Maxsurf对象模型来实现的.
Maxsurf对象模型中的大部分对象都是用来描述曲面、标记点或者网格,或者用来从Maxsurf模型中查找特性参数的.
其中,每一个对象分别都有各自独立的属性和方法.
每种特定类型的对象都是包含了同样特性的一系列对象的集合,例如Design对象中Markers集合包含了所有Marker的信息.

集合(Collection)、列表对象(Lists)和项(Item)是Maxsurf对象模型库中三个重要的概念.
集合是一个存储了有序对象的容器,相当于程序开发中的数组;表对象提供了仅通过调用很少的子程序就可快速访问和修改一组对象数据的方式;一个项代表了一个实体,如Surface或Grids.

无论是集合,还是列表对象,抑或是具体的项,本身都带有属性(properties)和方法(methods).
属性是一些变量,其中存储了对象的具体信息,例如名称、高度和数量等.
不同类型的对象属性类型和名称都有所不同.
方法是一些函数,可以操纵对象,例如增加、删除和修改对象的变量等.

3Maxsurf对象模型库MaxsurfModeler的对象模型库,主要包含八种类型:Application对象模型、Design对象模型、FrameofReference对象模型、Grids对象模型、Surface对象模型、Hydrostatics对象模型、Markers对象模型、Preference对象模型等.
在船舶设计过程中,有些对象经常要使用,而有些对象不经常接触,本文仅对开发过程中用的Application对象模型、Design对象模型、Grids对象模型和Markers对象模型进行详细阐述.

3.
1Application对象模型Maxsurf对象模型的根节点是Application对象.
所有其他对象都是直接或间接通过Application对象实现访问的.
Application对象提供了访问Design和Preference对象、六种Maxsurf属性以及两种方法的途径,如图1所示.
例如,如果访问Design对象,则必须要先引用Application对象,才能获得Design对象的信息和操作.
在Application中,所有的对象、属性和方法都是全局的.

图1Application对象模型结构3.
2Design对象模型Design对象描绘Maxsurf的当前设计的所有方面.
在Design对象中包含一些对象和操作方法,它也是访问其他对象必须要经过的对象,如Markers对象(图2).

访问模型和对象的代码如下:msApp.
Design.
SaveI=msApp.
Design.
Markers(1).
Height图2Design对象模型结构3.
3Grids对象模型Grids对象可用于生成、获取或者编辑MaxsurfModeler中的格子线,除了不支持设置补步长外,支持MaxsurfModeler中的格子线设置的其他所有功能.
Grids对象模型结构如图3所示.
访问模型和对象的代码如下:msApp.
Design.
Grids.
AddGridLinemsGTButtocklines,_Butt_01,4,0i=msApp.
Design.
Grids.
LineCountmsGTButtocklines图3Grids对象模型结构3.
4Markers对象模型Markers对象可用于获取MaxsurfModeler的Markers窗口中标记点的属性,包括标记点的长度、宽度和高度值.
Markers对象模型也能获得标记点的站位信息和相关联的曲面.
Markers对象模型结构如图4所示.

访问模型和对象的代码如下:i=msApp.
Design.
Markers(i).
Heightj=msApp.
Design.
Markers.
Count图4Markers对象模型结构4程序间的接口4.
1VB.
NET调用MicrosoftAccess数据库VB.
NET应用程序可以访问MicrosoftAccess数据库,但VB.
NET自身并不具备对数据库进行操作的功能,进行数据库编程主要利用的是ADO.
NET,ADO.
NET(AcciveXDataOblects)是.
NETFramework中的一系列类库,他能让程序员更加方便地在应用程序中使用和操作数据.
在ADO.
NET中,大量的复杂的数据操作的代码被封装起来,所以在应用程序开发中,只需要编写少量的代码就可以处理大量的操作.
ADO.
NET有效地从数据操作中将数据访问分解为多个可以单独使用或一前一后使用的不连续组件.
ADO.
NET包含用于连接到数据库、执行命令和检索结果等操作的.
NET数据提供程序.
在.
NET应用程序开发中,ADO.
NET可以被看做是一个数据源和数据使用者之间的转换器.
ADO.
NET接收使用者语言中的命令,如连接数据库、返回数据集之类,然后将会这些命令转换成数据源中可以正确执行的语句[4].

ADO.
NET连接MicrosoftAccess数据库的数据提供程序包括ODBC和OLEDB两种方法,ODBC是比OLEDB更早的技术,适合于使用ODBC公开的数据源.
二者都在自己的命名空间中实现,都有自己的类.
ODBC的命名空间是System.

Data.
Odbc,OLEDB的命名空间是System.
Data.
OleDb,在使用之前必须首先引入相应的命名空间[5].

VB.
NET为程序员连接数据源提供了向导,通过向导可以方便快捷地连接数据源,检索和更新数据.
但是由于连接信息不可更改,所以不利于程序发布.
通过动态连接可以解决这个问题.
在下面的程序设计中,就是利用VB.
NET动态链接的MicrosoftAccess数据库.
4.
2VB.
NET调用MicrosoftExcel在应用程序中使用MicrosoftExcel对象,必须首先在项目中加入对该对象的引用.
VB.
NET中编程操纵MicrosoftExcel对象的过程集中体现为对四个常用的对象,即应用对象、工作簿对象、工作表对象和区域对象的操作.
应用对象是MicrosoftExcel对象模型中的顶级对象,使用应用对象可确定应用程序级属性或执行应用程序级方法.
也是访问MicrosoftExcel对象模型的其它部分的入手点;在MicrosoftExcel对象模型中,工作簿对象出现在应用对象的下面,它表示一个工作簿文件.
使用工作簿对象可以处理单个MicrosoftExcel工作簿,而使用工作簿集合可以处理所有当前打开的工作簿对象;工作表对象是工作薄对象的下一级对象,工作薄对象的Sheets属性可以返回当前工作簿中所有工作表和图表工作表的集合.
工作簿与工作表的关系是:每个MicrosoftExcel工作簿可以包含多个工作表,也可以包含多个图表工作表;在MicrosoftExcel中,区域对象是功能最强大、最动态的对象,充分了解区域对象并掌握如何在VB.
NET中有效地使用它,便可以自如地利用Excel的功能了,除了区域对象外,单元格属性Cells也是非常重要的,单元格属性返回表示一个区域对象,包含工作表中某个指定单元格.
要处理某个单元格,可以使用Cells属性返回的Range对象的item属性来指定特定单元格的索引[6].

5程序设计本程序中以MicrosoftVisualStudio2010为开发环境,VB.
NET为程序设计语言,MicrosoftAccess2010为数据库.
利用VB.
NET操纵Maxsurf对象模型获取模型数据信息,再将获取的模型信息存到MicrosoftAccess数据库中,最后将数据库中的模型信息进行整理写到MicrosoftExcel中.
其程序框架如图5所示.
图5程序框架本程序在得到一个模型后,首先打开模型,设置模型的原点、横剖面、纵剖面及水线面;然后计算模型的型值,同时计算出标记点的值,并将计算的值存入到数据库中;最后将将数据库中的型值信息导入Excel表格中.
程序的流程图如图6所示.
为了便于更快捷方便地对型值进行操作,使之按照型值表的格式顺利导出,本程序将从模型中获得型值存入到MicrosoftAccess数据库中,该数据库的数据结构如图7所示.
图6程序流程图7数据结构6应用实例以一个集装箱船模型为应用实例.
用户界面如图8所示.
首先打开模型,设置尾垂线、基平面和中线面的交点为原点,垂线间长间设置20站,设置0mm纵剖线、1200mm纵剖线、2400mm纵剖线、3600mm纵剖线、4800mm纵剖线、6000mm纵剖线、7200mm纵剖线,设置0mm水线、设置2000mm水线、设置4000mm水线、设置6000mm水线、设置8000mm水线、设置10000mm水线;然后计算模型的型值,然后保存到数据库中;最后获取数据,并导出型值表,导出的型值表如图9所示.

图8用户界面图9型值表7总结Maxsurf软件广泛应用于船舶设计工作中.
本文针对Maxsurf软件无法导出型值表这一缺陷,对MaxsurfModeler模块进行二次开发.
文中以VB.
NET为工具来开发MaxsurfModeler,通过操纵MaxsurfModeler对象模型获取型值,然后把型值存到Access数据库中,最后导入到Excel表中.
通过实例证明该方法能够快速获得型值表,大大方便了船舶设计工作.

ParkInHost - 俄罗斯VPS主机 抗投诉 55折,月付2.75欧元起

ParkInHost主机商是首次介绍到的主机商,这个商家是2013年的印度主机商,隶属于印度DiggDigital公司,主营业务有俄罗斯、荷兰、德国等机房的抗投诉虚拟主机、VPS主机和独立服务器。也看到商家的数据中心还有中国香港和美国、法国等,不过香港机房肯定不是直连的。根据曾经对于抗投诉外贸主机的了解,虽然ParkInHost以无视DMCA的抗投诉VPS和抗投诉服务器,但是,我们还是要做好数据备...

HostYun 新上美国CN2 GIA VPS 月15元

HostYun 商家以前是玩具主机商,这两年好像发展还挺迅速的,有点在要做点事情的味道。在前面也有多次介绍到HostYun商家新增的多款机房方案,价格相对还是比较便宜的。到目前为止,我们可以看到商家提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路。近期,HostYun上线低价版美国CN2 GIA ...

spinservers:圣何塞物理机7.5折,$111/月,2*e5-2630Lv3/64G内存/2T SSD/10Gbps带宽

spinservers美国圣何塞机房的独立服务器补货120台,默认接入10Gbps带宽,给你超高配置,这价格目前来看好像真的是无敌手,而且可以做到下单后30分钟内交货,都是预先部署好了的。每一台机器用户都可以在后台自行安装、重装、重启、关机操作,无需人工参与! 官方网站:https://www.spinservers.com 比特币、信用卡、PayPal、支付宝、webmoney、Payssi...

vbscript教程为你推荐
文件夹删不掉文件夹删除不了是什么原因?二叉树遍历怎么正确理解二叉树的遍历arm开发板想购买一个ARM开发板,选什么类型的好数码资源网安卓有没有可以离线刷题的软件?唱吧电脑版官方下载唱吧有没有电脑版的啊?如何建立自己的网站怎么创建自己的网站畅想中国畅想中国发展前景ejb开发EJB是什么?宕机何谓宕机?网络虚拟机如何设置vmware虚拟机网络
哈尔滨服务器租用 出租服务器 域名解析服务器 高防dns dns是什么 香港主机 谷歌香港 wordpress技巧 免费全能空间 国外在线代理 免费网站申请 搜索引擎提交入口 33456 爱奇艺会员免费试用 新睿云 空间登入 谷歌台湾 lamp怎么读 乐视会员免费领取 七十九刀 更多