国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于AutoCAD的外板自動(dòng)展開技術(shù)

2018-08-25 02:38:00陳茂勇
船舶 2018年4期
關(guān)鍵詞:型線外板肋骨

陳茂勇 陳 飛

(上海外高橋造船有限公司 設(shè)計(jì)一所 上海200137)

引 言

外板展開圖(Shell Expansion,以下簡(jiǎn)稱SE)是船舶設(shè)計(jì)中最主要的結(jié)構(gòu)圖之一,反映了船體外板的結(jié)構(gòu)形式、板規(guī)布置和分段劃分等重要內(nèi)容。傳統(tǒng)手工外板展開的主要工作在于反復(fù)地求取各縱向構(gòu)件與肋骨線交點(diǎn)在SE上的坐標(biāo),亦即反復(fù)量取各肋骨線在不同交點(diǎn)處的曲線長(zhǎng)度(區(qū)間圍長(zhǎng))。這種具備明確規(guī)則、單一且耗時(shí)的重復(fù)性工作,完全可由計(jì)算機(jī)程序來完成。AutoCAD作為通用的繪圖軟件,提供了強(qiáng)大豐富的基礎(chǔ)繪圖功能,但對(duì)諸多專業(yè)領(lǐng)域的支持仍顯不足。故此,需對(duì)AutoCAD進(jìn)行二次開發(fā),借助程序?qū)崿F(xiàn)船體外板的自動(dòng)展開。

目前,已有同行嘗試?yán)贸绦騺磔o助進(jìn)行外板展開,但仍存在一些不足。主要體現(xiàn)在:

(1)肋骨型線的圖層需嚴(yán)格命名[1],對(duì)數(shù)據(jù)源的適用性要求較高,且圖層名攜帶的信息量有限;

(2)程序?qū)吖切途€的識(shí)別不夠智能,需手動(dòng)按順序選擇對(duì)象來保證展開的準(zhǔn)確性[2];

(3)展開過程中仍需較多的手工干預(yù)[3],自動(dòng)化程度不理想;

(4)不具備展開線的標(biāo)準(zhǔn)化功能。

對(duì)此,本文探討了一種新的外板自動(dòng)展開技術(shù),較好地解決了上述不足。

1 技術(shù)原理及程序設(shè)計(jì)

1.1 技術(shù)原理

船舶設(shè)計(jì)中外板的展開是一種近似展開,即橫向展開、縱向不展開。因此,船體外板上任意一點(diǎn)在展開后,沿船長(zhǎng)方向的坐標(biāo)保持不變,而沿船寬方向的坐標(biāo)與該點(diǎn)在肋骨線上距中心線的曲線長(zhǎng)度有關(guān)(如圖1所示)。通常,SE是以肋骨型線圖(Frame Lines,以下簡(jiǎn)稱FL)為基礎(chǔ)繪制而成。

圖1 肋骨型線圖和外板展開圖

1.2 程序設(shè)計(jì)流程

AutoCAD為工程設(shè)計(jì)人員提供了諸多二次開發(fā)途徑,其內(nèi)嵌的AutoLISP/Visual LISP編程語(yǔ)言[4],實(shí)用且易學(xué),在此被用作外板自動(dòng)展開程序的二次開發(fā)工具。

為便于后文敘述,先定義兩個(gè)概念:

(1)肋骨線 泛指船體外板曲面上處于肋位面內(nèi)的任意構(gòu)件線、板縫線或其他虛擬線。

(2)縱線 泛指船體外板曲面上與肋骨線相交的任意構(gòu)件線、板縫線或其他虛擬線。

船體型線由兩者共同組成。

根據(jù)近似展開原理,要將FL展開成SE,關(guān)鍵在于獲取FL上縱線和肋骨線的交點(diǎn),并計(jì)算出對(duì)應(yīng)點(diǎn)在SE上的坐標(biāo)。因此,程序需具備如下三個(gè)基本功能:

(1) 自動(dòng)識(shí)別FL上的縱線和肋骨線;

(2) 自動(dòng)獲取縱線和肋骨線在FL上的交點(diǎn);

(3) 自動(dòng)計(jì)算交點(diǎn)在SE上對(duì)應(yīng)的坐標(biāo)。

此外,為減少展開過程中的手工干預(yù),程序設(shè)計(jì)時(shí)增加如下兩個(gè)重要的輔助功能:

(1) 自動(dòng)提取平底線和平邊線;

(2) 自動(dòng)完成展開線的標(biāo)準(zhǔn)化。

實(shí)現(xiàn)自動(dòng)展開的前提在于如何使程序“認(rèn)識(shí)”并區(qū)分FL上的縱線和肋骨線。其中,肋骨線的肋位號(hào)識(shí)別是關(guān)鍵,它決定了SE上各點(diǎn)的橫坐標(biāo)。AutoCAD中普通的曲線圖形上不包含肋位號(hào)信息,因而需要采用特定的方式對(duì)其進(jìn)行編號(hào),使之與對(duì)應(yīng)的肋位號(hào)相互關(guān)聯(lián)。

本程序通過賦予圖元擴(kuò)展數(shù)據(jù)的方法來實(shí)現(xiàn)與肋位號(hào)的關(guān)聯(lián)。AutoCAD中每個(gè)曲線對(duì)象都是一個(gè)圖元,圖元的擴(kuò)展數(shù)據(jù)隨文檔保存,不因編輯等操作而丟失。被賦予擴(kuò)展數(shù)據(jù)的型線將具備一種額外的自定義屬性,使其可以被程序“認(rèn)識(shí)”并從復(fù)雜圖形中篩選出來。擴(kuò)展數(shù)據(jù)的使用,不會(huì)對(duì)圖形造成任何可見的改變,但能被方便地編輯、查看和讀取。

按上文分析,程序設(shè)計(jì)流程如下頁(yè)圖2所示,后文將以主要程序代碼來進(jìn)行介紹。

1.3 建立工程項(xiàng)

圖2 程序設(shè)計(jì)流程

為提升程序自動(dòng)化程度,這里引入工程項(xiàng)的概念。將外板展開過程中所需的各項(xiàng)固定輸入條件寫入到一個(gè)文本文件,作為工程項(xiàng)保存。在開始或繼續(xù)一個(gè)工程前,先選擇對(duì)應(yīng)的工程項(xiàng),輸入條件將被讀取到AutoCAD內(nèi)存空間,作為全局變量供程序隨時(shí)調(diào)用。工程項(xiàng)的設(shè)置,既避免了反復(fù)手動(dòng)選擇對(duì)象或輸入各項(xiàng)參數(shù)的麻煩,還能使程序在不同項(xiàng)目間快速切換。

工程項(xiàng)主要包括肋距配置、FL/SE坐標(biāo)原點(diǎn)定義和主尺度等相關(guān)參數(shù)。肋距配置是其中較為關(guān)鍵的一項(xiàng),它決定了型線上各點(diǎn)展開后的X坐標(biāo)。肋距配置同樣被寫入到文本文件,格式如圖3所示。

圖3 肋距配置文件

編寫一個(gè)簡(jiǎn)單的肋距解析程序,只要給定肋位號(hào),就可得到點(diǎn)在SE中X坐標(biāo)。例如,求#54肋位的X坐標(biāo),計(jì)算公式為x=50×800+(FR-50)×860,將54代入公式中的FR即可。示例代碼如下:

坐標(biāo)原點(diǎn)的定義,使程序能夠準(zhǔn)確讀取型線交點(diǎn)的坐標(biāo)并在指定位置進(jìn)行外板展開。

主尺度的定義,使程序能夠根據(jù)型寬、型深和船長(zhǎng)等數(shù)據(jù)將視圖縮放到特定的范圍。利用SSGET函數(shù),將擴(kuò)展數(shù)據(jù)作為過濾條件,程序可自動(dòng)選擇該范圍內(nèi)符合條件的型線;再配合VL-SORT函數(shù),將肋位號(hào)作為對(duì)比條件對(duì)選擇集中的型線(主要是肋骨線)進(jìn)行排序,即可省去手動(dòng)依次選擇型線的操作。

1.4 型線的編號(hào)和識(shí)別

肋骨線以肋位號(hào)來編號(hào),下面的代碼可將包含肋位號(hào)的擴(kuò)展數(shù)據(jù)添加到肋骨線上:

實(shí)現(xiàn)了肋位號(hào)的讀取,只要配合肋距解析程序,就可求得FL上任意型線交點(diǎn)在SE上對(duì)應(yīng)的X坐標(biāo)。

同理,每條縱線亦可被編號(hào)。對(duì)上述代碼稍作修改,將擴(kuò)展數(shù)據(jù)注冊(cè)標(biāo)記″FR″更改為 ″LL″,將數(shù)據(jù)類型代碼1040更改為1000即可實(shí)現(xiàn)。與肋位線編號(hào)不同的是,縱線的編號(hào)更加隨意,編號(hào)可以是 ″L1″、 ″UPPER DECK″或 ″20400 A/B″等。因?yàn)檫@種隨意性,程序可實(shí)現(xiàn)縱線的全自動(dòng)編號(hào),如″SL9000″、 ″SL9001″……依次遞增。程序自動(dòng)識(shí)別已編號(hào)的縱線,忽略未編號(hào)的縱線,這樣可避免“一鍵”展開過程中無關(guān)曲線帶來的干擾,降低了程序?qū)L的適用性要求。

相比于利用圖層名等定義型線編號(hào),上述方法不但不需修改FL的圖層名,還能使型線攜帶更多有助于外板準(zhǔn)確展開的附加信息。比如, 當(dāng)FL中的#20~#115肋骨線在某一段完全重合,經(jīng)過此段肋骨線的縱線起始肋位為#25,終止肋位為#110。如果僅憑與肋骨線的交點(diǎn)來展開,該縱線將在#20~#115肋位之間展開,超出實(shí)際區(qū)間。此時(shí),可以在該縱線的擴(kuò)展數(shù)據(jù)中再增加一組限定肋位區(qū)間的特定數(shù)據(jù),程序在檢測(cè)到這組數(shù)據(jù)時(shí),該縱線將只在限定的肋位區(qū)間展開。

1.5 求解型線交點(diǎn)和肋骨線區(qū)間圍長(zhǎng)

欲獲取肋骨線的區(qū)間圍長(zhǎng),先要確定該區(qū)間的起點(diǎn)和終點(diǎn)。AutoCAD中的曲線均有方向性,程序中需增加對(duì)曲線方向的判斷。假設(shè)肋骨線靠近FL坐標(biāo)原點(diǎn)(中心線與基線交點(diǎn))的端點(diǎn)為起點(diǎn),則縱線與肋骨線的交點(diǎn)為終點(diǎn)。起點(diǎn)是確定的,終點(diǎn)需要求解。

為避免求解過程中的手工干預(yù),提高自動(dòng)化程度,程序設(shè)置了三個(gè)逐級(jí)嵌套的遍歷過程(求解流程見圖4)。

圖4 交點(diǎn)求解流程

(1)通過識(shí)別型線的編號(hào),可獲取所有縱線的集合。遍歷縱線集合,得到與任意一條縱線相交的肋骨線集合。示例代碼如下:

(2)遍歷肋骨線集合,獲取任意縱線與肋骨線的交點(diǎn)集合。單個(gè)縱線與肋骨線的交點(diǎn)由下方代碼求得:

1.6 外板展開

SE從中縱剖線開始展開,其上任意點(diǎn)的Y坐標(biāo)為FL對(duì)應(yīng)點(diǎn)處肋骨線區(qū)間圍長(zhǎng)加上肋骨線最低點(diǎn)到基線的距離。以圖1中的P1點(diǎn)為例,肋骨線最低點(diǎn)到基線的距離為H1,P1處肋骨線區(qū)間圍長(zhǎng)為L(zhǎng)1,則展開后對(duì)應(yīng)點(diǎn)P1′的Y坐標(biāo)為H1+L1。對(duì)于P2′,肋骨線最低點(diǎn)到基線的距離為0,其Y坐標(biāo)為L(zhǎng)2。

通過上文分析,已分別求得SE上點(diǎn)的X、Y坐標(biāo),將這些點(diǎn)有序連接起來,即可實(shí)現(xiàn)外板展開。

1.6.1 肋骨線展開

肋骨線展開后為一條直線段,因此,只要給出已知的起點(diǎn)P_S′和終點(diǎn)P_E′,即可生成肋骨展開線。最簡(jiǎn)單的方法是使用COMMAND函數(shù)來執(zhí)行畫直線的命令:

1.6.2 縱線展開

縱線展開是外板展開的主要內(nèi)容,一般使用多段線繪制。假設(shè)某條縱線經(jīng)由上述分析得到的交點(diǎn)集合為points,其中包括p1,p2…pn共n個(gè)交點(diǎn)。程序通過生成圖元內(nèi)部組碼來新建多段線,代碼如下:

需要指出的是,在FL中,船體中心線和甲板線也屬于縱線范疇,可由程序自動(dòng)展開。前者展開后為中縱剖線,后者展開后為甲板邊線。因此,兩者應(yīng)同樣被賦予縱線編號(hào)。船體首尾處的線型變化較大,增加FL上的肋骨線密度,可使縱線展開后更加光順。

1.6.3 提取平底線和平邊線

程序可實(shí)現(xiàn)自動(dòng)提取平底線和平邊線。事實(shí)上,平底線和平邊線在FL上有其對(duì)應(yīng)的虛擬縱線。前者為沿基線的直線段,后者為沿船體半寬的垂向直線段。在FL中繪制出這兩條虛擬縱線并進(jìn)行編號(hào),即可由程序自動(dòng)展開。不過,該方法的不足之處在于,這兩條虛擬縱線的準(zhǔn)確展開對(duì)型線精度要求極高,利用常規(guī)的FL展開后,往往不能得到令人滿意的光順線型。

解決這個(gè)問題的關(guān)鍵在于降低型線精度對(duì)縱線展開的影響,此處使用另一種方法來實(shí)現(xiàn)。以平底線為例,平底線在FL中與肋骨線的交點(diǎn)均位于基線上,且交點(diǎn)必定為肋骨線(二維多段線)上的一個(gè)節(jié)點(diǎn)。因此,只要提取出每條肋骨線與基線重合段最靠近舷側(cè)的節(jié)點(diǎn),轉(zhuǎn)換成SE上對(duì)應(yīng)的點(diǎn),并連接成多段線即可。換而言之,各肋骨線的節(jié)點(diǎn)中,Y坐標(biāo)為0,且X坐標(biāo)絕對(duì)值最大的就是平底線在FL上所對(duì)應(yīng)的節(jié)點(diǎn)。依此思路,問題即變?yōu)榉治鯢L中肋骨線的節(jié)點(diǎn)坐標(biāo)。為降低對(duì)FL的線型精度要求,可設(shè)置一個(gè)適當(dāng)?shù)脑什頣(如0.1)。假設(shè)肋骨線節(jié)點(diǎn)的Y坐標(biāo)絕對(duì)值不大于T,則斷定該點(diǎn)位于基線上(參考如下代碼)。

其中fr_lst為按肋位號(hào)排序的肋骨線集合,可通過分析肋骨線的擴(kuò)展數(shù)據(jù)得到。程序的運(yùn)行結(jié)果為平底線在FL上對(duì)應(yīng)的點(diǎn)集,經(jīng)由程序轉(zhuǎn)換成SE上的點(diǎn)集并連接成線,即為平底線。平邊線可由類似方法提取。

2 標(biāo)準(zhǔn)化

至此,外板展開的主要內(nèi)容已完全由程序?qū)崿F(xiàn)。為減少后續(xù)手工干預(yù),可由程序?qū)φ归_線進(jìn)行標(biāo)準(zhǔn)化設(shè)置,使之符合企業(yè)的繪圖標(biāo)準(zhǔn),包括圖層、顏色、線型、線寬等內(nèi)容。以圖層設(shè)置為例,假設(shè)在繪圖標(biāo)準(zhǔn)中,縱桁結(jié)構(gòu)在圖面上的標(biāo)注名稱為*GIRDER*,其圖層名為L(zhǎng)AYER5,普通縱骨展開線的圖層名為L(zhǎng)AYER1。用戶可將*GIRDER*作為該縱桁編號(hào),程序通過識(shí)別縱線的擴(kuò)展數(shù)據(jù),自動(dòng)將編號(hào)包含*GIRDER*的縱線展開歸入到LAYER5圖層,其余則歸入LAYER1圖層。示例代碼如下:

同理,將繪圖標(biāo)準(zhǔn)中的顏色、線型、線寬等設(shè)置與型線編號(hào)進(jìn)行關(guān)聯(lián)后,可由程序自動(dòng)完成對(duì)應(yīng)標(biāo)準(zhǔn)化設(shè)置。

3 結(jié) 論

提升,還能有效避免展開過程中可能產(chǎn)生的誤差和錯(cuò)誤。在實(shí)際開發(fā)中,AutoLISP編程語(yǔ)言配合DCL(對(duì)話控制語(yǔ)言)可以展現(xiàn)友好的交互式界面,提升程序易用性。限于篇幅,文中所示的程序代碼多經(jīng)過簡(jiǎn)化,在此僅作為自動(dòng)展開技術(shù)的載體而呈現(xiàn)。

上文借助對(duì)程序的解析,完整地闡述了外板自動(dòng)展開技術(shù),實(shí)現(xiàn)快速展開的目標(biāo)。該技術(shù)經(jīng)若干舊船型試應(yīng)用和實(shí)船項(xiàng)目正式應(yīng)用,其可靠性得到了有效驗(yàn)證。在具備完整FL的前提下,進(jìn)行項(xiàng)目的必要配置和型線編號(hào)可在30 min內(nèi)完成,而其后的外板展開過程只需約1 min便可完成。相比于傳統(tǒng)的手工展開,外板自動(dòng)展開不但在效率上呈數(shù)量級(jí)

猜你喜歡
型線外板肋骨
高次曲線組合型線渦旋盤性能研究*
側(cè)圍外板轉(zhuǎn)角深拉伸起皺缺陷研究
模具制造(2019年10期)2020-01-06 09:13:02
側(cè)圍外板尾燈處排料困難的解決方案
模具制造(2019年10期)2020-01-06 09:13:00
汽車側(cè)圍外板A柱起皺缺陷分析及處理方法
模具制造(2019年4期)2019-06-24 03:36:42
型線絞合導(dǎo)體ZC-YJLHV22-103×630鋁合金電纜的設(shè)計(jì)和生產(chǎn)
電線電纜(2018年3期)2018-06-29 07:41:00
迷人肋骨
Coco薇(2015年5期)2016-03-29 22:46:32
某型快艇船體外板腐蝕點(diǎn)焊補(bǔ)工藝研究
變截面復(fù)雜渦旋型線的加工幾何與力學(xué)仿真
肋骨帶外固定加外敷萬傷接骨膏治療單純性肋骨骨折的臨床分析
日安,白天
高邑县| 莲花县| 盐亭县| 丹棱县| 临朐县| 大石桥市| 武山县| 化州市| 平乡县| 龙南县| 建始县| 米脂县| 南涧| 冀州市| 屏东县| 白银市| 广宗县| 彩票| 交城县| 南开区| 剑川县| 增城市| 南京市| 孟连| 新余市| 秦皇岛市| 鄂伦春自治旗| 辉南县| 探索| 安阳县| 积石山| 诸暨市| 仁怀市| 大宁县| 政和县| 三原县| 隆尧县| 乌拉特后旗| 泰顺县| 嘉定区| 内丘县|