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

?

基于DXF文件獲取激光切管系統(tǒng)中三維軌跡點(diǎn)算法的研究

2022-01-11 05:59方素平張坤朋
現(xiàn)代機(jī)械 2021年6期
關(guān)鍵詞:圖元型管圓管

徐 陳,方素平,顧 磊,張坤朋

(1.合肥工業(yè)大學(xué)機(jī)械工程學(xué)院,安徽 合肥 230009;2.河海大學(xué)機(jī)電工程學(xué)院,江蘇 常州 213002)

0 引言

在激光切管系統(tǒng)中,為了實(shí)現(xiàn)系統(tǒng)的多功能,有必要提供一種根據(jù)已編輯好的圖形交換格式(Drawing Exchange Format,DXF)文件就能直接在圓管、矩形管、腰型管上切割出相應(yīng)圖形的功能。如何根據(jù)DXF文件提取有用信息滿(mǎn)足所需要求就顯得尤為重要。

在DXF文件解析方面,已有一些學(xué)者做過(guò)研究。文獻(xiàn)[1-4]中詳細(xì)介紹了DXF格式和文件結(jié)構(gòu),設(shè)計(jì)了DXF解析模塊。文獻(xiàn)[5]探討了CAD與C語(yǔ)言程序的數(shù)據(jù)接口設(shè)計(jì)。文獻(xiàn)[6]針對(duì)DXF文件中的多個(gè)圖形進(jìn)行排序,利用貪婪算法進(jìn)行路徑規(guī)劃。本文在綜合了文獻(xiàn)[1-6]所提供方法的基礎(chǔ)上,實(shí)現(xiàn)了直線(xiàn)、圓、圓弧、多段線(xiàn)等圖元的解析,并進(jìn)一步在一個(gè)平面域上存在有多個(gè)圖形時(shí),實(shí)現(xiàn)了多個(gè)圖形有序且每個(gè)圖形的圖元有序的DXF模塊解析,最終得到了有序的二維離散點(diǎn)。在管件展開(kāi)方面,關(guān)于圓管、矩形管、腰型管展開(kāi)的研究很少,文獻(xiàn)[7]中介紹了相貫線(xiàn)展開(kāi)和圓錐面展開(kāi)的方法,文獻(xiàn)[8]中介紹了異徑管件放樣的展開(kāi)方法,但對(duì)于具體實(shí)現(xiàn)均未給出具體有效的方法。

針對(duì)管件上三維軌跡點(diǎn)的獲取問(wèn)題,本文提供了一種解析DXF文件和管件展開(kāi)相結(jié)合的新方法,得到了實(shí)際切割中的三維軌跡點(diǎn)。

1 DXF文件解析獲得二維離散點(diǎn)

DXF文件是Autodesk公司開(kāi)發(fā)的用于A(yíng)utoCAD與其他軟件之間進(jìn)行數(shù)據(jù)交換的文件格式,有二進(jìn)制和ASCII碼兩種格式,本文中所研究的DXF文件是ASCII格式文本文件。

1.1 DXF文件解析

一個(gè)完整的DXF文件由HEADER段、CLASSES段、TABLE段、BLOCKS段、ENTITIES段、OBJECTS段和文件結(jié)束標(biāo)志組成。DXF文件中,所需的圖元信息都存儲(chǔ)在ENTITIES段,因此獲得直線(xiàn)、圓、圓弧、多段線(xiàn)的數(shù)據(jù)只需對(duì)ENTITIES段進(jìn)行解析。而多段線(xiàn)是由直線(xiàn)和圓弧組成,因此多段線(xiàn)的存儲(chǔ)可以將其拆分為直線(xiàn)和圓弧分別存儲(chǔ)。

在讀DXF文件時(shí),圖元元素是先繪制的先存儲(chǔ),依次讀取到的直線(xiàn)、圓、圓弧、多段線(xiàn)是無(wú)序的,因此在設(shè)計(jì)DXF文件解析模塊時(shí)分為兩步,先將讀取到的圖元信息臨時(shí)存儲(chǔ),直到所有圖元存儲(chǔ)完成后,再通過(guò)兩次排序使得多個(gè)圖形有序且每個(gè)圖形的圖元有序。其中,第一次排序使得多個(gè)圖形有序,第二次排序使得每個(gè)圖形內(nèi)的圖元有序。

在C語(yǔ)言中,共用體具有在同一塊內(nèi)存上可以存儲(chǔ)不同類(lèi)型成員的優(yōu)點(diǎn),因此可以將DXF文件中所有的直線(xiàn)、圓、圓弧、多段線(xiàn)數(shù)據(jù)存儲(chǔ)到一個(gè)共用體中,再將共用體和圖元類(lèi)型一起封裝到結(jié)構(gòu)體中。DXF文件主要解析流程圖如圖1所示。

圖1 DXF文件主要解析流程

提取直線(xiàn)、圓、圓弧、多段線(xiàn)的數(shù)據(jù)時(shí),方法相同,都是逐行讀取組碼和組值,來(lái)獲取圖元的參數(shù)值,通過(guò)表1中的組碼信息對(duì)DXF文件進(jìn)行解析,并將這個(gè)圖元的參數(shù)值存儲(chǔ)到共用體數(shù)組中。

表1 DXF組碼信息

讀取直線(xiàn)、圓、圓弧、多段線(xiàn)的圖元信息時(shí),將讀取到的組值依次與“LINE”“CIRCLE”“ARC”“LWPOLYLINE”等字符串作比較來(lái)確定圖元類(lèi)型,進(jìn)而對(duì)這個(gè)圖元進(jìn)行解析。

1.2 獲得二維有序離散點(diǎn)

二維有序離散點(diǎn)的獲取分為兩步。第一步,用排序算法,根據(jù)圖元特征,使得圖元由無(wú)序存儲(chǔ)變?yōu)橛行?;第二步,將有序圖元進(jìn)行離散,得到有序離散點(diǎn)。

排序算法的作用是將所有圖元通過(guò)首尾相連的方式依次串聯(lián)起來(lái),保證圖元在內(nèi)存中存儲(chǔ)位置的正確性。

已知直線(xiàn)的起點(diǎn)和終點(diǎn),可以得到直線(xiàn)的總長(zhǎng)度,再按照離散精度值δ1,得到直線(xiàn)上的離散點(diǎn)。圓的離散和圓弧的離散方法相同,都是用弓高值δ2作為離散的約束條件。將求得的弓高值與δ2作比較,如果求得的弓高值大于δ2,則對(duì)圓和圓弧進(jìn)行二分后再次求取弓高值,依次循環(huán)下去,直到求得的弓高值不大于δ2為止。

最后,根據(jù)鏈表具有順序隨機(jī)存儲(chǔ)和動(dòng)態(tài)申請(qǐng)內(nèi)存空間的優(yōu)點(diǎn),將得到的離散點(diǎn)依次有序存儲(chǔ)到鏈表中。

2 三維軌跡點(diǎn)的算法實(shí)現(xiàn)

根據(jù)上述步驟,獲得了有序的二維離散點(diǎn)。接下來(lái)將二維離散點(diǎn)轉(zhuǎn)化到圓管、矩形管、腰型管等三種管型上去。3種管型建模如圖2所示。

圖2 圓管、矩形管、腰型管建模

基于建立的圓管、矩形管、腰型管的三維模型,以O(shè)1點(diǎn)為起始點(diǎn),Y軸方向?yàn)橹休S方向,對(duì)Z軸左右兩側(cè)進(jìn)行展開(kāi),展開(kāi)圖如圖3所示。

圖3 圓管、矩形管、腰型管展開(kāi)圖

圖3中,陰影部分表示圓弧區(qū)域,標(biāo)注尺寸表示線(xiàn)段長(zhǎng)度。圖3(a)中,R為圓管半徑;圖3(b)中,L表示矩形管的長(zhǎng),H表示矩形管的高,R為圓角半徑,當(dāng)L與H相等時(shí),矩形管型為方管;圖3(c)中L表示腰形管的長(zhǎng),R表示腰型管的圓弧半徑。

經(jīng)過(guò)DXF文件解析得到的二維離散點(diǎn)用坐標(biāo)(XSource,YSource)表示,三維管件上的軌跡點(diǎn)用坐標(biāo)(X,Y,Z)表示。

2.1 數(shù)據(jù)處理

在對(duì)圓管、矩形管、腰型管進(jìn)行建模時(shí),由于是人為定義空間坐標(biāo)系原點(diǎn)O,那么將二維離散點(diǎn)轉(zhuǎn)化到管件上得到的軌跡點(diǎn)是絕對(duì)軌跡點(diǎn)。因此要實(shí)現(xiàn)管件上的任意位置切割,必須使三維軌跡點(diǎn)具有相對(duì)坐標(biāo)系原點(diǎn)O偏移的功能。如果是單個(gè)圖形切割,可以直接求出這個(gè)圖形的幾何中心(CoreX,CoreY);對(duì)于多個(gè)圖形切割,先確定每個(gè)圖形的幾何中心,然后通過(guò)幾何中心作差的方式,確定每個(gè)圖形的相對(duì)位置。這里僅給出單個(gè)圖形切割,得到具有偏移功能的相對(duì)軌跡點(diǎn)算法:

(1)

其中,X0、Y0為偏移參數(shù)。

將二維離散點(diǎn)轉(zhuǎn)化為三維軌跡點(diǎn)之前,要先確保二維離散點(diǎn)能夠落在圓管、矩形管、腰型管兩側(cè)的展開(kāi)區(qū)域,這里要對(duì)數(shù)據(jù)作如下處理:

對(duì)于圓管:

XSource=XSource%(2·π·R)

(2)

(3)

對(duì)于矩形管:

XSource=XSource%(2·L+2·H+2·π·R)

(4)

(5)

對(duì)于腰型管:

XSource=XSource%(2·L+2·π·R)

(6)

(7)

式(2)、(4)、(6)中“%”為取余運(yùn)算。

根據(jù)圖2中建立的坐標(biāo)系,每一個(gè)二維離散點(diǎn)轉(zhuǎn)化為三維軌跡點(diǎn)都滿(mǎn)足Y=YSource;下文中將給出每種管型上X和Z的求解算法。

2.2 圓管上軌跡點(diǎn)的獲取

根據(jù)圖3(a)中制定的圓管展開(kāi)規(guī)則,將圓管劃分為①、②兩個(gè)區(qū)域。①、②兩個(gè)區(qū)域滿(mǎn)足的算法公式相同。圓管上三維軌跡點(diǎn)的獲取算法如下:

(8)

2.3 矩形管上軌跡點(diǎn)的獲取

根據(jù)圖3(b)中制定的矩形管展開(kāi)規(guī)則,將矩形管劃分為①~⑩十個(gè)區(qū)域。通過(guò)判斷二維離散點(diǎn)在矩形管展開(kāi)圖上的位置,獲得轉(zhuǎn)化后矩形管上的三維軌跡點(diǎn)。判斷條件如下:

(9)

(10)

式(9)、(10)為①~⑩區(qū)域的判斷條件。

矩形管上三維軌跡點(diǎn)的獲取算法如下:

(11)

(12)

其中,θ1=(XSource-L/2)/R;θ2=(XSource-L/2-π·R/2-H)/R;θ3=(-XSource-L/2)/R;θ4=(-XSource-L/2)/R。

2.4 腰型管上軌跡點(diǎn)的獲取

根據(jù)圖3(c)中制定的腰型管展開(kāi)規(guī)則,將腰型管劃分為①~⑥六個(gè)區(qū)域。通過(guò)判斷二維離散點(diǎn)在腰型管展開(kāi)圖上的位置,獲得轉(zhuǎn)化后腰型管上的三維軌跡點(diǎn)。判斷條件如下:

(13)

式(13)為①~⑥區(qū)域的判斷條件。

腰型管上三維軌跡點(diǎn)的獲取算法如下:

(14)

(15)

其中,θ1=(XSource-L/2)/R;θ2=(-XSource-L/2)/R。

3 Matlab仿真

3.1 圓管上軌跡點(diǎn)仿真

圓管半徑R=17.5 mm。如圖4所示,圖4(a)是CAD畫(huà)的直線(xiàn)和圓弧組成的對(duì)稱(chēng)圖形,直線(xiàn)長(zhǎng)度L=20 mm,圓弧半徑r=14 mm;圖4(b)是由圖4(a)得到的三維軌跡點(diǎn)。

圖4 CAD二維圖和轉(zhuǎn)化到圓管上的三維軌跡點(diǎn)

3.2 矩形管上軌跡點(diǎn)仿真

矩形管長(zhǎng)L=30 mm,高H=20 mm,圓角半徑R=2 mm。如圖5所示,圖5(a)是CAD畫(huà)的矩形,長(zhǎng)L2=60 mm,高H2=15 mm,;圖5(b)是由圖5(a)得到的三維軌跡點(diǎn),分布在矩形管的三個(gè)面和圓角上。

圖5 CAD二維圖和轉(zhuǎn)化到矩形管上的三維軌跡點(diǎn)

3.3 腰型管上軌跡點(diǎn)仿真

腰型管長(zhǎng)L=40 mm,圓弧半徑R=10 mm。圖6(a)是CAD畫(huà)的帶圓角矩形,長(zhǎng)L1=80 mm,高H1=30 mm,圓角半徑r2=4 mm;圖6(b)是由圖6(a)得到的三維軌跡點(diǎn),分布在腰型管兩個(gè)面和圓弧上。

圖6 CAD二維圖和轉(zhuǎn)化到腰型管上的三維軌跡點(diǎn)

4 結(jié)語(yǔ)

本文通過(guò)DXF文件解析與管件展開(kāi)相結(jié)合的方式獲取了圓管、矩形管、腰型管等3種常見(jiàn)管型上的三維軌跡點(diǎn),并給出了具體實(shí)現(xiàn)方法。以Matlab2020b為仿真軟件,驗(yàn)證了獲取三維軌跡點(diǎn)算法的正確性。對(duì)激光切管機(jī)的研發(fā)具有實(shí)際意義,有廣泛的應(yīng)用前景。

猜你喜歡
圖元型管圓管
一種方便連接的涂塑鋼管
b型管板與筒體溫差應(yīng)力的分析計(jì)算和評(píng)定
內(nèi)置加勁環(huán)T型管節(jié)點(diǎn)抗沖擊承載力計(jì)算
Study on the Letter Words and Letter-word Phrases under Language Contact Theory
學(xué)術(shù)出版物插圖的編排要求(一):圖注
聯(lián)鎖表自動(dòng)生成軟件的設(shè)計(jì)與實(shí)現(xiàn)
Montgomery T型管置入術(shù)治療聲門(mén)下氣管狹窄失敗三例報(bào)道并文獻(xiàn)復(fù)習(xí)
一種圓管內(nèi)孔自動(dòng)打磨機(jī)的設(shè)計(jì)
基于Qt繪圖系統(tǒng)的圖形應(yīng)用優(yōu)化研究與實(shí)現(xiàn)
柔性圓管在渦激振動(dòng)下的模態(tài)響應(yīng)分析