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

?

面向多張CAD圖紙的文本信息自動提取與實(shí)現(xiàn)

2021-05-14 10:19李文強(qiáng)漆小華宋悅剛
工程設(shè)計學(xué)報 2021年2期
關(guān)鍵詞:矩形框明細(xì)表數(shù)組

李 銳,李文強(qiáng),漆小華,王 萌,宋悅剛,劉 漾

(1.四川大學(xué)機(jī)械工程學(xué)院,四川成都610065;2.四川大學(xué)創(chuàng)新方法與創(chuàng)新設(shè)計四川省重點(diǎn)實(shí)驗(yàn)室,四川成都610065;3.中國電子科技集團(tuán)公司第二十九研究所,四川成都610036)

CAD(computer aided design,計算機(jī)輔助設(shè)計)圖紙中不僅含有產(chǎn)品的幾何圖形信息,如零件圖、裝配圖等,還含有文本信息,如標(biāo)題欄、明細(xì)表等。對于不同類型的CAD圖紙,幾何圖形信息和文本信息的占比是不同的。對于傳統(tǒng)的機(jī)械建筑類圖紙來說,幾何圖形信息是圖紙中的主要部分,文本信息較少;但對于某些文本圖紙,其信息幾乎由文字組成,如連接器電路圖,圖中清楚地標(biāo)注了連接器名稱,母板連接器名稱,母板用物資代碼,各個腔口名稱及相應(yīng)腔口中連接器的端子、特性和去向等信息。

為了提高文本圖紙的生成效率,利用自動生成系統(tǒng)讀取待生成原文件中的文本信息并在AutoCAD軟件中自動生成文本圖紙已成為一種發(fā)展趨勢。目前,該方法在實(shí)際生產(chǎn)中得到了越來越廣泛的應(yīng)用。根據(jù)待生成原文件中文本信息的不同屬性,自動生成系統(tǒng)會自動生成一張或多張CAD圖紙[1‐5]。為保證自動生成的CAD圖紙的文本信息與原文件一致,須對其文本信息進(jìn)行提取并與原文件文本信息進(jìn)行匹配和校核。ObjectARX是AutoCAD軟件的二次開發(fā)工具,利用其單行文本類中的contents函數(shù)和多行文本類中的strings函數(shù)可分別讀取通過塊表記錄迭代器遍歷CAD圖紙獲得的單行文本和多行文本[6‐10]。然而,由于塊表記錄迭代器是按照文本信息寫入順序的逆序進(jìn)行遍歷的,并非按照CAD圖紙中文本信息的位置進(jìn)行遍歷,使得提取到的文本信息是混亂無序的。此外,現(xiàn)有CAD圖紙文本信息自動提取方法僅針對單張圖紙,而對于多張CAD圖紙,利用該方法提取到的文本信息混雜在一起,無法辨識其所屬圖紙。因此,針對自動生成的多張CAD圖紙,對其文本信息進(jìn)行有序提取和校核具有重要意義。

1 CAD圖紙文本信息提取的研究現(xiàn)狀

目前,國內(nèi)外學(xué)者針對CAD圖紙文本信息的提取已做了很多研究。Lu等基于對CAD圖紙中“文本”和“圖形”幾何特征的分析,提出了文本字符串提取的概念,即從混合文本信息和圖形的CAD圖紙中去除非文本元素,而不是直接從CAD圖紙中提取文本信息[11]。Chai等通過分離CAD圖紙中的文本框與周圍圖形來識別和提取文本信息[12]。何改云等通過用戶交互函數(shù)手動地選取CAD圖紙中明細(xì)表的2個頂點(diǎn),或在AutoCAD軟件的命令行中直接輸入2個頂點(diǎn)的坐標(biāo)來構(gòu)建窗口選擇集,提取CAD圖紙中所有的文本信息[13]。袁瓊通過將CAD圖紙中的每個明細(xì)表定義成一個屬性塊,并根據(jù)坐標(biāo)依次遍歷各屬性塊實(shí)現(xiàn)了CAD圖紙明細(xì)表中文本信息的提取[14]。顏立坤等通過手動選取CAD圖紙中明細(xì)表的坐標(biāo)范圍,先獲取該范圍內(nèi)所有文本的坐標(biāo),然后采用冒泡法對這些坐標(biāo)進(jìn)行排序,確定其在明細(xì)表中的位置,從而實(shí)現(xiàn)CAD圖紙文本信息的提?。?5]。黃靖根據(jù)手動獲取的明細(xì)表對角線上2個點(diǎn)的位置信息來構(gòu)建窗口選擇集,然后對選擇集內(nèi)的文本信息進(jìn)行操作,從而獲得了明細(xì)表中的文本及其位置信息[16]。張良棟等通過建立屬性塊來實(shí)現(xiàn)對CAD圖紙中明細(xì)表信息的提?。?7]。龔雄等通過遍歷CAD圖紙來搜索水平垂直線條和文字,并定義了2個分別記錄線條端點(diǎn)坐標(biāo)和文字字串及其坐標(biāo)的結(jié)構(gòu)數(shù)組,根據(jù)線條端點(diǎn)橫、縱坐標(biāo)的最小值和最大值確定了CAD圖圖框的坐標(biāo)范圍,然后依次提取圖框范圍內(nèi)的文本信息[18]。

雖然上述方法可對CAD圖紙的文本信息進(jìn)行有效提取,但存在以下2點(diǎn)不足:一是現(xiàn)有圖紙文本信息提取方法只能對單張CAD圖紙進(jìn)行提取,無法同時提取多張CAD圖紙的文本信息;二是現(xiàn)有圖紙文本信息提取方法僅能提取CAD圖紙中位置固定的文本信息,無法對多張CAD圖紙中位置不確定且類型多樣的文本信息進(jìn)行并行提取。基于上述不足,筆者提出了一種面向多張CAD圖紙的文本信息自動提取方法,以實(shí)現(xiàn)對多張CAD圖紙中多種類型文本信息的有效提取。同時,基于提出的方法開發(fā)了面向多張CAD圖紙的文本信息自動提取與校核系統(tǒng)。

2 面向多張CAD圖紙的文本信息自動提取方法及流程

2.1 面向多張CAD圖紙的文本信息自動提取方法

為實(shí)現(xiàn)對多張CAD圖紙文本信息的自動提取,需解決2個方面的問題。一是當(dāng)對單張CAD圖紙的文本信息進(jìn)行提取時,由于所有文本信息都位于一張圖紙中,不存在不同圖紙之間文本信息相互干擾的問題,可直接對整張CAD圖紙中的文本屬性塊進(jìn)行遍歷,然后分別提取屬性塊中的文本信息。但對于多張CAD圖紙而言,為了準(zhǔn)確提取每張CAD圖紙的文本信息,需先確定每張CAD圖紙的位置,然后分別提取屬于不同CAD圖紙的文本信息。二是當(dāng)僅對CAD圖紙中標(biāo)題欄或明細(xì)表中的文本信息進(jìn)行提取時,由于標(biāo)題欄和明細(xì)表的位置都相對固定,且其文本信息都屬于同一種類型,可直接利用窗口選擇集對CAD圖紙中選定范圍內(nèi)的文本信息進(jìn)行遍歷,并根據(jù)其坐標(biāo)進(jìn)行提取。但在提取多張CAD圖紙中位置不固定且類型多樣的文本信息時,為了準(zhǔn)確提取不同位置處不同類型的文本信息,需對多張CAD圖紙進(jìn)行遍歷并對各位置處不同類型的文本信息進(jìn)行分類提取?;诖?,提出面向多張CAD圖紙的文本信息自動提取方法,其主要包括以下3個部分。

1)確定每張CAD圖紙的位置。

CAD圖紙自動生成系統(tǒng)可生成具有塊屬性的CAD圖紙。將不同規(guī)格的圖紙(A0、A1、A2、A3和A4紙)做成相應(yīng)的屬性塊(即圖紙塊),通過直接調(diào)用或插入來生成多張CAD圖紙。采用ObjectARX中的塊表記錄迭代器對自動生成的每張CAD圖紙中的線段、圖形和屬性塊等實(shí)體進(jìn)行逐個遍歷,利用實(shí)體類中的isA()函數(shù)篩選得到屬性塊,并利用塊表記錄類中的getName()函數(shù)獲取屬性塊的名稱,將遍歷得到的屬性塊與所調(diào)用圖紙塊進(jìn)行對比,從而依次找出所有圖紙塊,確定CAD圖紙的數(shù)量,并根據(jù)圖紙塊對應(yīng)的圖紙幅面,結(jié)合圖紙塊插入點(diǎn)的坐標(biāo)確定其位置,從而將多張圖紙文本信息的提取轉(zhuǎn)換為單張圖紙文本信息的提取,避免了不同圖紙文本信息之間的相互干擾。

2)提取多張CAD圖紙的文本信息。

在CAD圖紙自動生成系統(tǒng)通過讀取原文件中產(chǎn)品零件信息自動生成的多張CAD圖紙中,文本信息已被分類,具有不同屬性的文本信息以不同類型的矩形框來區(qū)分。本文根據(jù)矩形框所具有的屬性特點(diǎn)對文本信息進(jìn)行分類提取。其中,矩形框的構(gòu)成方式包括多段線和屬性塊兩種。對于由多段線構(gòu)成的矩形框中的文本信息,利用矩形框的任意2個對角坐標(biāo)構(gòu)建窗口選擇集來獲取文本信息,利用容量可動態(tài)變化的Vector數(shù)組或Cstring變量來存儲所提取的文本信息。對于由屬性塊構(gòu)成的矩形框中的文本信息,分2類進(jìn)行提?。寒?dāng)文本信息不屬于屬性塊的組成部分時(即文本信息不參與屬性塊的構(gòu)建),根據(jù)矩形框的插入點(diǎn)坐標(biāo)和尺寸構(gòu)建窗口選擇集,獲取文本信息并將其存儲在Vector數(shù)組或Cstring變量中;當(dāng)文本信息屬于屬性塊的組成部分時(即文本信息參與屬性塊的構(gòu)建),提取文本信息前必須先將矩形框炸開,再根據(jù)文本信息的坐標(biāo)、圖層名等獲取文本信息并存儲。

基礎(chǔ)病理學(xué)教學(xué)只針對疾病的普遍特征進(jìn)行講授,包括疾病的病因、發(fā)病機(jī)制、病理變化、結(jié)局和轉(zhuǎn)歸,其講授的是疾病的基本特征,屬于非專業(yè)性極強(qiáng)的醫(yī)學(xué)課程,因此契合X型慕課,非職業(yè)“精英主義”的原則[4]。

3)自動輸出與校核多張CAD圖紙的文本信息。

由于獲得的文本信息儲存在Vector數(shù)組或Cstring變量中,設(shè)計人員不能直接識別和利用。因此,須將儲存在數(shù)組或變量中的文本信息輸出并與原文件中的文本信息進(jìn)行對比。本文利用Excel接口程序輸出所提取的文本信息,并生成相應(yīng)的Execl文件。

與其他文本信息提取方法相比,面向多張CAD圖紙的文本信息自動提取方法具有以下優(yōu)點(diǎn):1)能夠自動地識別每張CAD圖紙并進(jìn)行文本信息提取,即無論是單張或多張CAD圖紙,該方法都適用;2)不僅能對CAD圖紙中位置相對固定的標(biāo)題欄和明細(xì)表中的文本信息進(jìn)行提取,還能對CAD圖紙中位置不確定的文本信息進(jìn)行自動識別和提?。?)可基于多段線和屬性塊的特征自動識別CAD圖紙中不同類型的文本信息并進(jìn)行分類提取和輸出。

2.2 面向多張CAD圖紙的文本信息自動提取流程

基于上述面向多張CAD圖紙的文本信息自動提取方法,建立相應(yīng)的文本信息自動提取與校核流程(如圖1所示),主要步驟如下。

圖1 面向多張CAD圖紙的文本信息自動提取與校核流程Fig.1 Automatic extraction and verification process of text information for multiple CAD drawings

1)利用ObjectARX中的塊表記錄迭代器對多張CAD圖紙進(jìn)行遍歷,依次獲得所有圖紙塊。

2)將獲得的圖紙塊的插入點(diǎn)坐標(biāo)分別輸入到Vector數(shù)組中,并根據(jù)圖紙在AutoCAD軟件界面中的排布方式對數(shù)組中的插入點(diǎn)坐標(biāo)進(jìn)行排序。

3)排序完成后,根據(jù)數(shù)組中圖紙塊的插入點(diǎn)坐標(biāo)確定每張CAD圖紙的位置。循環(huán)構(gòu)建窗口選擇集,對每張CAD圖紙文本信息所在的矩形框進(jìn)行遍歷。

4)將遍歷得到的矩形框按屬性特點(diǎn)進(jìn)行分類,并根據(jù)矩形框在CAD圖紙中的位置,對同類型的矩形框進(jìn)行排序。

5)排序完成后,根據(jù)矩形框的構(gòu)成方式,采用對應(yīng)的方法對文本信息進(jìn)行提取。

6)將提取得到的文本信息輸出到新生成的Excel文件中并與原文件中的文本信息進(jìn)行匹配和校核。

3 面向多張CAD圖紙的文本信息自動提取與校核系統(tǒng)

在Visual Studio 2008平臺上通過二次開發(fā)工具ObjectARX 2010開發(fā)了一個面向多張CAD圖紙的文本信息自動提取與校核系統(tǒng),其主要包括以下功能模塊。

1)啟動模塊。傳統(tǒng)的ObjectARX程序是通過在AutoCAD軟件的命令行中手動輸入函數(shù)生成的啟動命令來執(zhí)行相應(yīng)功能,但這種執(zhí)行方式要求操作人員清楚地記住各個功能函數(shù)的啟動命令,當(dāng)啟動命令的數(shù)量多且較長時,這種執(zhí)行方式就會變得很麻煩。因此,本文開發(fā)的系統(tǒng)通過加載菜單資源的方法創(chuàng)建了快捷菜單的命令執(zhí)行方式。其中,菜單資源加載函數(shù)的代碼如下:

2)文本信息提取模塊。根據(jù)屬性塊名稱遍歷得到CAD圖紙中相同類型矩形框的任意2個對角坐標(biāo)或插入點(diǎn)坐標(biāo),并根據(jù)該類矩形框在圖紙中的位置對其對角坐標(biāo)或插入點(diǎn)坐標(biāo)進(jìn)行排序,以保證所提取文本信息的準(zhǔn)確排列,利用矩形框與文本之間的位置關(guān)系構(gòu)建窗口選擇集或炸開矩形框,以獲取矩形框中的文本信息并存儲到Vector數(shù)組或Cstring變量中。其中,獲取由屬性塊構(gòu)成的矩形框中文本信息的部分代碼如下:

3)文本信息輸出模塊。利用Excel操作接口,按照1張圖紙對應(yīng)Excel中1個工作表的原則,將儲存在數(shù)組和變量中的文本信息輸出到Excel中。保存在Vector數(shù)組中的文本信息的輸出代碼如下:

4)文本信息校核模塊。利用Visual Studio 2008中的可視化技術(shù)將提取到的文本信息以窗口形式顯示出來。自定義的用戶交互函數(shù)的代碼如下:

4 應(yīng)用實(shí)例

利用前期開發(fā)的基于Excel文件中文本信息的CAD圖紙自動生成系統(tǒng),通過讀取Excel文件中的文本信息,在AutoCAD軟件中生成多張連接器電路圖,如圖2所示。利用開發(fā)的面向多張CAD圖紙的文本信息自動提取與校核系統(tǒng)對連接器電路圖中的文本信息進(jìn)行自動提取和校核。

圖2 自動生成的連接器電路圖Fig.2 Automatically generated connector circuit diagram

1)在AutoCAD軟件界面中,先點(diǎn)擊鼠標(biāo)右鍵彈出快捷菜單,再點(diǎn)擊快捷菜單中的“輸出并校核”選項,啟動文本信息的提取和校核功能。然后,借助視圖調(diào)整模塊對用戶窗口進(jìn)行調(diào)整,使得所有電路圖都處于用戶窗口內(nèi),保證所提取文本信息的完整性。

2)利用塊表記錄迭代器對所有連接器電路圖進(jìn)行遍歷,將遍歷得到的圖紙塊名稱及其插入點(diǎn)坐標(biāo)分別添加到Vector數(shù)組和Vector數(shù)組中,并對圖紙塊名稱數(shù)組和插入點(diǎn)坐標(biāo)數(shù)組進(jìn)行同步排序。然后,根據(jù)圖紙塊名稱所對應(yīng)的圖紙尺寸(如“A0”對應(yīng)的圖紙尺寸為1 189 mm×841 mm)和插入點(diǎn)坐標(biāo),循環(huán)構(gòu)建窗口選擇集并依次對每張圖紙中的屬性塊和多段線進(jìn)行遍歷。

在圖2所示的連接器電路圖中,文本信息被劃分為3種類型:類型1和類型3對應(yīng)的矩形框名稱為“zw_table”,類型2對應(yīng)的矩形框名稱為“zw_rf”,且類型3對應(yīng)的矩形框被紅色多段線所包圍。首先,分別利用矩形框名稱和紅色多段線創(chuàng)建結(jié)果緩沖區(qū)鏈表;然后,利用窗口選擇集分別遍歷這3類文本信息所在矩形框的對角坐標(biāo)和插入點(diǎn)坐標(biāo)并排序,以保證提取的文本信息的順序;最后,根據(jù)矩形框的坐標(biāo)和尺寸,再次構(gòu)建窗口選擇集,分別獲取3種文本信息并存儲在Vector數(shù)組中。

3)利用添加的Excel接口程序及put_item函數(shù)將儲存在數(shù)組中的文本信息輸出到Excel的工作表中(1張電路圖對應(yīng)1個工作表),并將工作表名設(shè)置為對應(yīng)連接器的名稱,如圖3所示。

圖3 輸出到Excel工作表中的連接器信息Fig.3 Connector information exported to Excel worksheet

4)文本信息輸出完成后,AutoCAD軟件的界面上會彈出1個文件選擇窗口,用于提醒設(shè)計人員選擇自動生成連接器電路圖時所讀取的Excel文件,并與圖3所示的原Excel文件進(jìn)行匹配和校核;然后,利用內(nèi)置的可視化技術(shù)在AutoCAD軟件界面上生成一個窗口,用于顯示匹配結(jié)果。圖4所示為上述連接器電路圖文本信息匹配結(jié)果顯示窗口。

圖4 連接器電路圖文本信息匹配結(jié)果顯示窗口Fig.4 Display window of text information matching result of connector circuit diagram

5 結(jié) 論

針對現(xiàn)有圖紙文本信息提取方法無法自動提取多張圖紙中多種類型文本信息的問題,提出了一種面向多張CAD圖紙的文本信息自動提取方法,并開發(fā)了相應(yīng)的自動提取和校核系統(tǒng)。目前,所開發(fā)的系統(tǒng)已成功應(yīng)用于多張連接器電路圖文本信息的自動提取和校核。此外,該方法還可應(yīng)用于其他產(chǎn)品CAD圖紙的文本信息提取,具有較好的實(shí)用性和廣闊的應(yīng)用前景。

猜你喜歡
矩形框明細(xì)表數(shù)組
JAVA稀疏矩陣算法
2019年中國出口石材明細(xì)表(三)
2019年中國出口石材明細(xì)表(二)
2019年中國出口量值石材明細(xì)表(一)
JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
多模態(tài)卷積神經(jīng)網(wǎng)絡(luò)的物體抓取檢測
一種汽車式起重機(jī)防傾翻方法的研究
共享單車有了“家”
Excel數(shù)組公式在林業(yè)多條件求和中的應(yīng)用
尋找勾股數(shù)組的歷程