本發(fā)明涉及PCB板檢測技術領域,特別是涉及一種PCB板設計圖中輪廓和角點信息的提取方法。
背景技術:
由于工藝原因,實際生產的PCB板(Printed Circuit Board,印制電路板)上某些位置處可能會存在報告PCB板上是否存在開路、短路、毛刺、缺口、針孔、銅渣等宏觀缺陷,只有將這些缺陷確定出來,才能為修復缺陷提供依據。缺陷確定的過程為(1)確立一個檢測基準模型,該檢測基準模型是記錄有設計圖中PCB板上電路的輪廓和角點信息的模型,角點是指電路輪廓段之間的分界點;(2)利用圖像采集器采集到根據上述設計資料生產出的PCB板上的實際電路輪廓和角點的圖像信息,從實際電路輪廓和角點的圖像信息可以看到上述缺陷的位置;(3)用上述檢測基準模型來檢測PCB板是否存在缺陷。由上述缺陷的確定過程可知,獲取到的設計資料中PCB板上電路的輪廓和角點信息的準確性會直接影響缺陷檢測的結果,因此如何提取該輪廓和角點信息是關鍵。
目前的提取方法為:在一定的分辨率下,將CAM資料解析后繪制成矢量圖像,然后利用圖像處理技術提取繪制圖像的輪廓和角點。CAM資料是描述如何按照PCB板設計圖形成PCB板的矢量數據資料,CAM資料屬于PCB板的設計資料。使用目前的提取方法存在以下問題:(1)為了利用圖像處理技術,需要先將按照CAM資料的矢量數據繪制的矢量圖像轉換為光柵圖像,但是光柵圖像都是用整數坐標來描述的,矢量圖像轉換成光柵圖像,必然在輪廓附近帶來精度損失,從而會導致上述檢測基準模型的輪廓信息的精度損失;(2)利用圖像處理技術,容易出現(xiàn)找不準甚至丟失弱角點的問題,弱角點是指類似圓弧與圓弧的切點、圓弧與直線的切點等較為接近的角點,這會導致上述檢測基準模型的角點信息提取錯誤。而上述兩個問題,均會導致檢測基準模型的錯誤,最終導致在對PCB板缺陷檢測時的誤報。
綜上所述,需要尋求一種新的PCB板設計資料中的輪廓和角點的提取方法,以提高PCB板缺陷檢測的準確性。
技術實現(xiàn)要素:
本發(fā)明實施例中提供了一種PCB板設計圖中輪廓和角點信息的提取方法,以解決現(xiàn)有技術中的提取精確度較差的問題。
為了解決上述技術問題,本發(fā)明實施例公開了如下技術方案:
一種PCB板設計圖中輪廓和角點信息的提取方法,包括以下步驟:
獲取PCB板設計圖的CAM資料;
解析所述CAM資料,確定所有的繪制項及繪制順序,所述繪制項的種類與繪制順序與所述PCB板設計圖相對應;
按照所述繪制順序,依次提取各個繪制項在所述PCB板設計圖中的坐標信息;
按照所述繪制順序,利用矢量光圈依據所述坐標信息的移動而成的軌跡,將各個繪制項轉化為封閉矢量圖形,所述封閉矢量圖形攜帶圖形極性信息;
按照所述轉化順序,依次判斷所述封閉矢量圖形的圖形極性信息,將轉化順序相連并且圖形極性相同的封閉矢量圖形劃為一組,利用加速圖形布爾運算算法,得到所述PCB板設計圖的輪廓和角點信息,其中,所述加速圖形布爾運算算法是指,先對各個組內圖形進行運算得到組內運算結果,再將所有的組內運算結果進行組間運算。
優(yōu)選的,在上述PCB板設計圖中輪廓和角點信息的提取方法中,所述繪制項的種類包括直線、圓弧、復合多邊形和焊盤。
優(yōu)選的,在上述PCB板設計圖中輪廓和角點信息的提取方法中,在所述按照所述繪制順序,依次提取各個繪制項在所述PCB板設計圖中的坐標信息后還包括,確定所述矢量光圈的半徑,所述矢量光圈的直徑與繪制項的寬度相同。
優(yōu)選的,在上述PCB板設計圖中輪廓和角點信息的提取方法中,所述按照所述繪制順序,利用矢量光圈依據所述坐標信息移動而成的軌跡,將各個繪制項轉化為封閉矢量圖形,所述封閉矢量圖形攜帶圖形極性信息包括:
將各個繪制項依次分解為繪制單位,分別利用矢量光圈依據所述坐標信息的移動而形成的軌跡,將所述繪制單元轉化為封閉矢量圖形單元,所述封閉矢量圖形單元組成所述封閉矢量圖形,其中繪制單元包括為圓、矩形、多邊形和/或圓矩形。
優(yōu)選的,在上述PCB板設計圖中輪廓和角點信息的提取方法中,在所述利用矢量光圈依據所述坐標信息移動而成的軌跡,按照所述繪制順序,將各個繪制項轉化為封閉矢量圖形,所述封閉矢量圖形攜帶圖形極性信息后,還包括:
將所述封閉矢量圖形分區(qū),在各個區(qū)之間并行所述加速圖形布爾運算,得到所述PCB板設計圖的輪廓和角點信息。
優(yōu)選的,在上述PCB板設計圖中輪廓和角點信息的提取方法中,所述加速圖形布爾運算包括組內布爾并運算,還包括組間布爾并運算或組間布爾差運算。
由以上技術方案可見,本發(fā)明提供的PCB板設計圖中輪廓和角點信息的提取方法中,改變了按照CAM資料描繪得到PCB設計電路圖的方式,根據CAM資料中的各個繪制項攜帶的矢量數據信息,將各個繪制項逐一轉化為封閉的矢量圖形,因為是從矢量數據到矢量圖形的等價轉化過程,所以這個等價轉化過程不會導致繪制項矢量數據的精確度損失,而且,正是因為以上述等價轉化結果為基礎又改進了圖形布爾運算的算法,改進后的運算在保持圖形運算的順序的前提下,利用圖形自身極性的進行分組,優(yōu)先并行組內運算,其次進行組間運算,將逐個運算轉化為批量計算,而且提高了運算的效率。由此可見,按照本發(fā)明提供的提取方法得到的PCB設計電路的輪廓和角點信息,相比利用目前的提取方法而言是更加準確的。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術人員而言,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例對應的PCB板的設計圖;
圖2A為與圖1中直線1轉化封閉矢量圖形的過程示意圖;
圖2B為與圖1中直線1轉化封閉矢量圖形的結果示意圖;
圖3A為圖1中圓弧2轉化封閉矢量圖形的過程示意圖;
圖3B為圖1中圓弧2轉化封閉矢量圖形的結果示意圖;
圖4為圖1中直線1、圓弧2和直線3經過加速圖形布爾運算的運算后結果示意圖;
圖5為圖1中圓型焊盤4轉化為封閉矢量圖形的過程示意圖;
圖6為與圖1中的PCB板的設計圖相對應的封閉矢量圖形連通區(qū)域的輪廓與角點示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明中的技術方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
PCB設計圖的CAM資料中,一般包括以下類型的繪制項,有直線、圓弧、復合多邊形、標準圓形焊盤、標準矩形焊盤(標準圓形焊盤就是一個封閉的圓形,內部可能含有一個小的圓形或者方形的孔洞)、標準圓矩形焊盤(標準矩形焊盤就是一個封閉的矩形,內部可能含有一個小的圓形或者方形的孔洞、正多邊形焊盤(正多邊形焊盤就是一個帶旋轉角度的封閉正多邊形,內部可能含有一個小的圓形或者方形的孔洞)、自定義圓形焊盤就是一個圓形,內部不含孔洞、中心直線型焊盤(中心直線型焊盤以中心位置-寬度-高度-旋轉角度形式定義的直線型焊盤)、向量型焊盤(向量型焊盤以起止位置-寬度-旋轉角度形式定義的直線型焊盤)、左下角型直線焊盤(以左下角坐標-寬度-高度-旋轉角度參數定義的直線形式定義的直線型焊盤)、外輪廓型焊盤(以一個開始點、輪廓點總數(最多50個點)以及各點的X/Y坐標定義的一個封閉的形狀)、特殊多邊形焊盤(以頂點數量(3~10個)、中心位置、外接圓直徑、旋轉角度定義的中心對稱的正多邊形)、波紋型焊盤(由一組中心對稱的圓環(huán)及十字線組成的形狀,通過圓環(huán)數量、外接圓直徑、十字線線寬、十字線長度、旋轉角度、圓環(huán)的間距等參數定義)、散熱焊盤(由圓環(huán)與同心的十字線相切構成的圖形,已知外徑、內徑、十字線線寬、相對X軸旋轉角度、中心點坐標)等。
下面以一個PCB板設計圖為例,對本發(fā)明提供的PCB板設計圖中輪廓和角點信息的提取方法做說明。上述各種組成PCB板設計圖繪制項,根據自身的坐標特點,均可以通過與下例相似的方式提取各自的角點和輪廓信息。
參見圖1,為本發(fā)明實施例提供的一種PCB板設計圖,對于該PCB板的CAM資料做解析,如圖1所示,得到該PCB板的繪制項包括直線1、圓弧2、直線3、標準圓形焊盤4和圓矩形焊盤5,為了更清晰的顯示直線、圓弧的寬度及焊盤的尺寸,圖1中采用填充的形式表示,繪制順序依次為直線1—圓弧2—直線3—圓形焊盤4—圓矩形焊盤5,按照繪制順序,依次提取各個繪制項在該PCB板上的坐標信息,坐標系X軸向右為正,Y軸向下為正:
對于直線1而言,獲取起點坐標(-20,20),終點坐標(-20,0);
對于圓弧2而言,獲取圓心坐標(0,0),起始角度180、終止角度270;
對于直線3而言,獲取起點坐標(0,-20),終點坐標(20,-20);
根據坐標系的正負定義,對于直線1、圓弧2和直線3的極性均為正極性。
按照繪制順序直線1-圓弧2-直線3,利用矢量光圈依據所述坐標信息的移動而成的軌跡,將各個繪制項轉化為封閉矢量圖形具體是指:
對于同一PCB板而言,光圈的移動方向相同的形成的封閉矢量圖形的極性一致、光圈的移動方向不同的形成的矢量圖形的極性相反。從直線1、圓弧2和直線3的坐標可以看出,三者轉化的封閉矢量圖形的極性是一致的,我們規(guī)定為正極性。對于直線1而言,是一條具有一定寬度的直線,可以利用圓形光圈11依據直線1的起到終點的移動軌跡,將直線1轉化為封閉的矢量圖形,轉化過程和結果如圖2所示。圖2A為轉化過程示意圖,圖中虛線圓圈代表光圈的移動軌跡,圖2B為轉化結果,直線1的轉化結果是一個環(huán)形跑道樣式的封閉矢量圖形。直線3的轉化過程類似,此不詳述。圖3A和圖3B分別為圓弧2的轉化過程與結果。由圖1-圖4可知,在將繪制項轉化為封閉矢量圖形時,要確定所述矢量光圈的半徑,所述矢量光圈的半徑與繪制項的寬度相同,這樣就可以保證,得到的封閉矢量圖形的輪廓和繪制項的輪廓一致??梢娭本€1、圓弧2和直線3的矢量光圈均為圓形光圈11,且所用圓形光圈的直徑相等。圓形光圈11的直徑為5。
請參考圖5,圖5示出了圓型焊盤4轉化為封閉矢量圖形的過程。對于圓型焊盤4而言,是一個內部含有一個小的圓形孔洞的焊盤??梢詫⑵浞纸鉃閮蓚€不同直徑的同心圓自定義焊盤401和402為繪制單位,圓型焊盤4是這兩個自定義焊盤組合后的一個繪制項。為了顯示繪制項和繪制單元的尺寸,圖5顯示為填充形式,填充的部分就代表圓形焊盤4的在PCB設計電路中的蝕刻寬度。兩個繪制單元的坐標信息分別為:中心均為(40,-20),自定義焊盤401利用圓形光圈22、自定義焊盤402利用圓形光圈33依據所述坐標信息移動而成的軌跡,均轉化為封閉矢量圓形軌跡、其中圓形光圈33的直徑與圓形光圈11的直徑相等,均為5,圓形光圈22的直徑為10。
然后將得到的這兩個封閉矢量圓形根據極性進行布爾運算,得到繪制項圓盤5的布爾運算結果,兩個封閉矢量圓形的極性相反,應該做布爾差運算。
類似上述圓形焊盤4的轉化過程,圓矩形焊盤5是一個內部含有一個小的方形孔洞的焊盤。圓矩形焊盤5繪制項的轉化過程為,將其分解為兩個焊盤為繪制單元,一個繪制單元是內部不帶孔洞的標準圓矩形焊盤501,一個繪制單元是正多邊形焊盤502。利用圓矩形光圈44將內部不帶孔洞的標準圓矩形焊盤501轉化為封閉矢量圓矩形,依據的坐標信息為中心(30,20),圓矩形光圈44寬為20,高為10;利用矩形光圈55將正多邊形焊盤502轉化為封閉矢量正方形,矩形光,55的寬和高均為5。
然后根據繪制順序直線1-圓弧2-直線3-自定義焊盤401-自定義焊盤402-內部不帶孔洞的標準圓矩形焊盤501—正多邊形焊盤502,等價轉化后圖形極性依次分別為正-正-正-正-負-正-負,按照轉化順序,將極性相同的直線1、圓弧2和直線3和自定義焊盤401的封閉矢量圖形劃為第一組,將極性改變?yōu)樨摰淖远x焊盤402劃為第二組,將極性再次改變?yōu)檎膬炔坎粠Э锥吹臉藴蕡A矩形焊盤501劃為第三組,將極性再次改變的正多邊形焊盤502劃為第四組,先利用加速圖形布爾做組內并運算,圖4為中直線1、圓弧2和直線3經過加速圖形布爾運算的運算后結果示意圖,然后將得到的四個組內運算結果做組間布爾差運算,得到與圖1中提供的PCB板的設計圖對應的各個封閉矢量圖形的連通區(qū)域,該連通區(qū)域顯示在圖6中。如圖6所示,箭頭的位置即為繪制項之間的分界點位置,即角點位置,將計算所得輪廓經過填充繪制,所得繪制結果與直接利用CAM資料進行繪制得到的結果是一致的。
由以上技術方案可見,本發(fā)明提供的PCB板設計圖中輪廓和角點信息的提取方法中,根據CAM資料中的各個繪制項攜帶的矢量數據信息,將各個繪制項逐一轉化為封閉的矢量圖形,因為是從矢量數據到矢量圖形的等價轉化過程,所以這個等價轉化過程不會導致繪制項矢量數據的精確度損失,而且,正是因為以上述等價轉化結果為基礎又改進了圖形布爾運算的算法,改進后的運算在保持圖形運算的順序的前提下,利用圖形自身極性的進行分組,優(yōu)先并行組內運算,其次進行組件運算,將逐個運算轉化為批量計算,而且提高了運算的準確性。由此可見,按照本發(fā)明提供的提取方法得到的PCB設計電路的輪廓和角點信息,相比利用目前的提取方法而言是更加準確的。
在上述技術方案的基礎上,進行優(yōu)化,尤其是當PCB板設計圖相對復雜時,提取其輪廓和角點的過程可以在所述利用矢量光圈依據所述坐標信息移動而成的軌跡,按照所述繪制順序,將各個繪制項轉化為封閉矢量圖形,所述封閉矢量圖形攜帶圖形極性信息后,還包括:將所述封閉矢量圖形分區(qū),在各個區(qū)之間并行所述加速圖形布爾運算,得到所述PCB板設計圖的輪廓和角點信息,以此來提高布爾運算的速度。
通過以上的方法實施例的描述,所屬領域的技術人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述僅是本發(fā)明的具體實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。