999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VBA的結構有限元建模命令流自動生成方法

2016-03-18 10:17:29秦江濤
造船技術 2016年1期
關鍵詞:二次開發有限元結構

胡 江, 秦江濤

(1.武漢理工大學 高性能艦船技術教育部重點實驗室, 湖北 武漢 430063; 2.武漢理工大學 交通學院, 船舶、海洋與結構工程系, 湖北 武漢 430063)

?

基于VBA的結構有限元建模命令流自動生成方法

胡江1,2, 秦江濤1,2

(1.武漢理工大學 高性能艦船技術教育部重點實驗室, 湖北 武漢 430063; 2.武漢理工大學 交通學院, 船舶、海洋與結構工程系, 湖北 武漢 430063)

摘要針對目前船舶結構有限元分析建模方法存在的不足,采用VBA編程方法對船舶設計軟件Maxsurf進行二次開發,能自動提取Maxsurf數據庫中肋骨、艙壁、甲板的空間位置坐標數據,并快捷地轉換為可在ANSYS、Patran等有限元軟件上執行的APDL或PCL參數化建模命令流文件。相關實例表明該方法能顯著提高建模及相關修改工作的效率。

關鍵詞結構有限元建模二次開發命令流VBAMaxsurf

Automatic Generation of Parametric Command Flow for FEM Modeling of Structure Based on VBA Method

HU Jiang1,2, QIN Jiang-tao1,2

(1.Key Laboratory of High Performance Ship Technology of Ministry of Education, Wuhan University of Technology, Wuhan Hubei 430063, China; 2.Departments of Naval Architecture, Ocean and Structural Engineering, School of Transportation, Wuhan University of Technology, Wuhan Hubei 430063, China)

AbstractAiming at the problems existing in current FEM modeling of ship structure,secondary development work using VBA for the ship design software Maxsurf has been done, by which the space coordinate dat of frame shape points, bulkhead and deck can be automatic extracted and convered to the APDL or PCL command flow file which can be run on the FEM software like ANSYS or Patran. Related examples show that the method can significantly improve the efficiency of modeling and the related modification work.

Keywords FEM modeling of ship structureSecondary developmentCommand flowVBAMaxsurf

0引言

由于精度高、實用性強以及行業的普遍認可,船舶結構有限元分析被廣泛應用于各類船舶的結構計算中。其中船體結構建模是有限元分析最基礎的工作,但由于船體外形復雜、內部構件繁多,該工作耗時長且易出錯。因此采用編程手段,對建模工作進行自動化處理就顯得尤為必要。

目前船體結構有限元建模一般采取兩種方法。第一種方法是利用初步設計或詳細設計階段在其他船舶設計軟件中建好的船體模型,將其轉換成IGS、STEP等標準格式導入有限元軟件中,再在模型上切割出肋骨線、縱桁線等結構線段。該方法省時快捷,但要對船體面進行多次切割,且在模型的轉換和切割過程中常會出現模型拓撲信息丟失、幾何信息錯誤(如面的破損等)等情況,導致后續網格劃分、計算等無法進行。第二種方法是在結構有限元分析前處理模塊中,通過圖形界面或手工輸入命令流的建模方式生成船體模型。該方法生成的模型精度好且無需對模型進行二次轉換處理,但由于需要手工輸入型值數據,工作繁瑣、耗時長且容易出現錯誤。

為了充分發揮上述方法各自的優點,克服其不足,本文采用VBA(Visual Basic for Applications,簡稱VBA)開發的程序實現了既能充分利用船舶設計軟件Maxsurf中的船體三維模型數據,又能自動生成相應有限元計算所需的船體建模命令流文件的功能,從而達到了快捷參數化建模與修改的目的。

1開發背景與思路

1.1Maxsurf 簡介

Maxsurf是澳大利亞Formation Design Systems公司開發的船舶設計建造軟件中的建模模塊。2011年該軟件成為Bently工程軟件中的一員,其主要優勢在于強大的NURB(非均勻有理B樣條)曲面建模能力、與Word、AutoCAD、Excel等通用軟件良好的數據交換能力,以及實時快捷的水動力性能計算能力,在國內外諸多高校、科研院所、制造企業中有著廣泛的應用。

1.2Maxsurf二次開發構架與方法

目前國內外針對Maxsurf二次開發均展開了相關工作。國外主要是將各種多目標遺傳優化算法如NSGA-II、EASDS等通過二次開發嵌入Maxsurf中,進行船型的水動力優化工作[1、2];國內則主要進行數據轉換接口的二次開發[3、4]以及系列船型的仿射變換[4、5]。

Maxsurf 自身并無二次開發的工具,但提供了二次開發的接口,使得其他程序如Excel、Access、AutoCAD可以通過接口得到所需要的數據。該方法核心是微軟所推行的COM(Component Object Model)組件對象模型技術[6],其實質是允許一個應用程序操作另一個應用程序[2],[7]。基于該技術開發的程序或系統具有開放性好、易升級、易維護、易擴展、與平臺及語言無關等特點。

COM是面對對象的軟件模型,因而對象是它的基本要素之一。本文的開發工作就是通過編程語言對應用程序Maxsurf中對象(Object)的操控來實現的。在Maxsurf中,對象具體指代的是surface(面)、control point(控制點)、marker(標記點)這些可以定義船體模型的元素,每一個對象都包含“特性”(Properties)和“方法”(Methods)兩種屬性,其中,“特性”是用來存儲類如名稱、型值之類的常量,“方法”是指一些允許對對象進行操控的函數[6]。

對象本身不可被外部程序直接訪問,但Maxsurf通過把開放對象的“特性”與“方法”給外部程序,就可以使用許多與COM組件技術兼容的程序語言(如Matlab、Visual Basic、C++和Java等)來定義、存取和修改對象,進而達到控制船體模型、獲取相關數據信息的目的。

Maxsurf是以層級結構來組織對象的,其頂層對象是Application,其余所有對象都直接或間接與之關聯[6]。圖1以對象Application為例,展示了部分對象之間的層級結構關系(限于篇幅,圖中只對對像Design作了展開)。

圖1 “對象”層級結構圖

各對象之間的結構關系,在開發代碼中語言的組織順序里也有體現,下面以一段賦值代碼為例進行說明。

(1) Dim msApp as Maxsurf Modeler.Application;

(2) Dim i%;

(3) Set msApp=New Maxsurf Modeler.Application;

(4) i=msApp.Design.FrameOfReference.DatumWL。

其中(1)、(2)、(3)行代碼是基本的定義語句,代碼(4)實現了將水線高度值賦給參數i的功能,可以很清楚地看到代碼(4)中各對象與圖1中相關對象相一致的結構層級關系。

2命令流生成程序實現過程

2.1開發環境

本文選擇了Excel VBA開發環境,主要基于以下幾點:(1) VBA語言雖然在運行速度上不及C++之類的語言,但初步設計或詳細設計階段船體模型數據類型單一,也不包含復雜的生產加工信息,VBA可勝任此類數據的提取和轉換工作;(2) 以Excel作為數據傳遞的媒介,符合日常工作習慣,也便于后續數據處理工作;(3) VBA語言相對簡單,且不用做封裝處理,便于使用者修改代碼,實現符合自身需求的功能。

2.2程序開發簡述

2.2.1庫文件的引用

在Excel環境下要實現與Maxsurf數據庫的連接,可使用前期聯編方法或后期聯編方法。與后期聯編相比,前期聯編的代碼運行速度更快且代碼錯誤在編譯階段就可以被自動識別,要使用前期聯編方法首先需在VB編輯器的引用中加Maxsurf 庫文件,即在引用對話框中對“Bentley Moderler 1.1 Automation Library”勾選,如圖2所示。

圖2 Maxsurf庫文件的引用

圖3 程序流程圖

2.2.2程序主要步驟與流程圖

程序主要的步驟與流程如下(流程圖見圖3)。

(1) 載入Maxsurf模型并調整精度;

(2) Mlist命令提取型值點空間坐標數據;

(3) 空間坐標數據遍歷賦值,輸出至Excel表格并轉換成命令流文件;

(4) 命令流數據導入ANSYS或Patran生成模型。

2.2.3程序關鍵代碼

限于篇幅,下面只對提取型值數據的VBA代碼與生成命令流的VBA代碼進行說明。

(1) For i = 1 To count 'msDesign.markers.count;

(2) Coord(0) = mList(i).Position;

(3) Coord(1) = mList(i).Offset;

(4) Coord(2) = mList(i).Height;

(5) Range("A" & i + 1) =i;

(6) Range("B"&i + 1) =Format(Coord(0), "#0.00";

(7) Range("C"&i + 1) =Format(Coord(1), "#0.00";

(8) Range("D"&i + 1) =Format(Coord(2), "#0.00" 。

第(1)行代碼是對型值點進行遍歷。第(2)、(3)、(4)行代碼分別將型值點的Position(縱向坐標)、Offset(橫向坐標)、Height(高度坐標)賦給含有3個元素的數組Coord(),由于mlist命令會自動對型值點按縱向坐標和高度坐標從小到大排列,因此我們不用另行編程對其進行排序。第(5)行代碼是為了給型值點編號,以利于后續的命令流生成工作。第(6)、(7)、(8)行代碼則實現了將數組Coord()的三個元素依次填入Exel表格的功能。

接下來要生成命令流文件,首先應參照APDL或PCL命令流中創建型值點的格式,來決定如何在代碼中嵌入APDL或PCL命令。

ANSYS軟件結構模塊中創建型值點的命令流格式:/prep7;K,2,0,2.8,187.6……,其中,K命令后面第一位數字代表節點編號,后面三個數字代表型值點的三維坐標。Patran軟件中結構模塊創建型值點的命令流格式:asm_const_grid_xyz("1", "[-172 0 0]",……,中括號內數字是型值點的三維坐標。據此我們可以用下面的VBA代碼實現命令流的自動生成功能(以生成ANSYS APDL命令流為例):

(1) Set sFile = fso.Create Text File (FileName);

(2) sFile.WriteLine ("/prep7");

(3) sFile.WriteBlankLines (1);

(4) For s = 2 To _ Sheet1. Range("A65536"). End(xlUp). Row;

(5) sFile. Write Line ("k") _ & "," & (Sheet1. Cells(s,1). Value _& "," & Sheet1. Cells(s, 2).Valu _& "," & Sheet1. Cells(s, 3).Value _& "," & Sheet1. Cells(s, 4). Value);

(6) Next s。

圖4 程序界面圖

第(1)行代碼創建了一個記事本文件,第(2)行代碼嵌入了APDL命令中的進入前處理器的命令,第(3)行代碼寫入了一個空白行作為間隔,第(4)、(5)、(6)行代碼則實現了將Exel表格中的第1至4列數據以及APDL命令中創建關鍵點命令K寫入記事本文件的功能。

2.2.4程序界面

在Excel中生成的程序界面如圖4所示。由5個面板組成,雙擊面板即可執行相應命令,如需修改或另行嵌入APDL或PCL命令,切換到Excel內置的VB編輯器中對應代碼進行修改即可。

3實例介紹

下面以一條總長為108 m的橫骨架式散貨船的整船建模為例,對開發程序進行說明。圖5是該船在Maxsurf中建好的三維模型,圖6是該船的肋骨型線圖。

圖5 Maxsurf中的三維模型圖

圖6 肋骨型線圖

在圖4所示的界面中,點擊載入msd文件(msd文件是Maxsurf模型的專用格式),在彈出的窗口中選擇該散貨船的模型,打開后進行精度調整,型值生成、提取、轉換工作后可得命令流文件(見圖7)。將命令流導入ANSYS 結構模塊運行后,即可生成船體結構建模所需要的關鍵點,如圖8所示(船體左右對稱,故只顯示一半模型),可以看出采用該方法船體、艙壁、甲板的數據點都可以很好地傳遞到ANSYS中。

模型數據點建好后,對照Excel數據表中的節點編號,在生成的命令流中加入循環、賦屬性、定義邊界條件、加載載荷等語句即可快速建立模型并進行計算分析。

圖7 命令流文件

圖8 模型關鍵點的生成

4結語

本文采用的基于VBA與COM組件技術的開發方法不僅適用于Maxsurf軟件,對于所有支持COM組件技術的常用軟件如AutoCAD、Office,均可采用這種方法來“定制”出自己所想要的功能。

對常用的行業軟件進行二次開發,不僅在于能顯著提高學習和工作效率,更重要的是能幫助開發者深入理解國外先進軟件的內部組織架構及其二次開發接口的設計方法理念,這對開發國產的優秀行業軟件是很有幫助的。

本方法目前對橫骨架式船型和縱骨架式船型均適用,能將常規方法中耗費數天的數據輸入建模工作縮短至數分鐘,尤其適合于結構計算中的多方案比較以及設計修改引起的重新計算工作。但值得指出的是,目前程序中縱骨架式船型的縱骨位置數據尚需人工輸入,這主要是由于縱骨布置的位置數據往往要到詳細設計階段的中后期才能得到,且目前尚未見到有定位于初步設計、詳細階段的船舶設計軟件能將縱骨布置功能很好地融入到前期的三維船型設計中,導致相關數據不足,因此可以以此為出發點,進行后續的研究工作。

參考文獻

[1]Hafez K A, El-Kot A A. Comparative investigation of the stagger variation influence on the hydrodynamic interference of high speed trimaran[J]. Alexandria Engineering Journal, 2012, 51(3): 153-169.

[2]Ayob A F, Ray T, Smith W F. A Framework for Scenario-Based Hydrodynamic Design Optimization of Hard Chine Planing Craft[C].Proceedings of the 9th International Conference in Computer and IT Applications in the Maritime Industries, 2014.

[3]黃金鋒.船型設計與性能分析系統數據接口設計與實現[J].中國艦船研究, 2012, 7(1):95-99.

[4]司南.基于設計軟件集成平臺的游艇外型與型線協調性研究[D]. 武漢:武漢理工大學, 2013.

[5]李杰. 三維船體庫系統的研究與設計[D]. 大連:大連海事大學, 2008.

[6]Maxsurf Modeler Automation Manual[Z]. Bentley Systems, Incorporated, Windows Version 18,2012.

[7]李詠紅. CAD二次開發方法研究與實現[D]. 成都:電子科技大學, 2004.

[8]蔣毅文. Maxsurf及相關設計程序在船舶設計中的應用[J]. 船海工程, 2005(4):39-41.

[9]李平書, 嚴家文, 任鴻. 船舶結構有限元模型快速生成研究[J]. 船舶, 2007(4):52-55.

[10]金建海.船舶CAE前后處理系統研制[D]. 無錫:江南大學, 2012.

中圖分類號U662

文獻標志碼A

作者簡介:胡江(1988-),男,碩士生,研究方向為船舶水動力性能與船型研究。

基金項目:國家自然科學基金項目(編號:51409201);中央高校基本科研業務費專項基金(編號:2015IVA029)。

猜你喜歡
二次開發有限元結構
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
西門子Easy Screen對倒棱機床界面二次開發
論《日出》的結構
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
磨削淬硬殘余應力的有限元分析
基于SolidWorks的吸嘴支撐臂有限元分析
基于Pro/E二次開發的推土鏟參數化模塊開發
主站蜘蛛池模板: 波多野结衣AV无码久久一区| 2018日日摸夜夜添狠狠躁| 女人一级毛片| 无码精品福利一区二区三区| 国内精自视频品线一二区| 国模视频一区二区| 亚洲香蕉在线| 国产美女自慰在线观看| 丁香婷婷激情网| 欧美午夜性视频| 欧美一级专区免费大片| 久久精品无码一区二区国产区| 久久免费视频6| 欧美在线观看不卡| 亚洲一区二区三区中文字幕5566| 国产人人干| 九九免费观看全部免费视频| 国产网站免费看| 六月婷婷综合| 91热爆在线| 综合久久五月天| 国产资源免费观看| 国产成年女人特黄特色毛片免| 成色7777精品在线| 草逼视频国产| 国产在线精彩视频论坛| 热这里只有精品国产热门精品| 国产自在线播放| 永久免费av网站可以直接看的 | 国产丝袜无码精品| 国产精品视屏| 成人亚洲视频| 国产精品大白天新婚身材| 欧美亚洲一区二区三区在线| 激情亚洲天堂| 免费人成又黄又爽的视频网站| 国产在线观看成人91| 最新国产高清在线| 国产精品白浆无码流出在线看| 69精品在线观看| 青青草a国产免费观看| 日韩欧美国产中文| 亚洲色图欧美激情| 高清无码手机在线观看| 久久久精品久久久久三级| 黄色福利在线| 国产精品亚洲综合久久小说| 一本无码在线观看| 四虎成人在线视频| 亚洲欧洲日产国码无码av喷潮| 亚洲中文字幕无码mv| 二级特黄绝大片免费视频大片| 亚洲天堂在线免费| 国模私拍一区二区三区| 婷婷激情亚洲| 亚洲中文字幕无码爆乳| 国产毛片基地| 亚洲美女高潮久久久久久久| 精品国产亚洲人成在线| 精品久久人人爽人人玩人人妻| 孕妇高潮太爽了在线观看免费| 久久永久视频| 国产成人AV综合久久| 日本在线免费网站| 国产69囗曝护士吞精在线视频| 91欧美在线| 高清国产va日韩亚洲免费午夜电影| 萌白酱国产一区二区| 国产爽妇精品| 日韩亚洲综合在线| 欧美色视频在线| 国产丝袜无码精品| 中文字幕精品一区二区三区视频| 五月婷婷导航| 久久国产精品娇妻素人| 青草91视频免费观看| 99热这里只有精品免费国产| 九色综合伊人久久富二代| 99久久亚洲综合精品TS| 天天操精品| 日韩黄色大片免费看| 国产肉感大码AV无码|