王鵬云,高長水
(南京航空航天大學 機電學院,南京 210016)
基于UG8.5的自動BOM模塊開發
王鵬云,高長水
(南京航空航天大學 機電學院,南京 210016)
為了提高模具設計人員的工作效率,在UG8.5軟件的基礎上,使用VS2010平臺開發了注塑模具自動BOM(Bill of Material)模塊。該模塊能夠在裝配情況下自動遍歷檢索模型下所有的零部件,生成符合特定格式的BOM表格文件。同時用戶還可以根據需要,讓程序生成某些指定零件的BOM。對于部分非裝配的零部件程序可以自動的識別和區分。常用的采購標準件可以直接測量得到標準件的采購規格。最后生成的表格,程序可以自動進行格式設置,能夠快速的生成供用戶直接交付打印的BOM表格。
自動BOM;UG8.5;注塑模
UG軟件由于其強大的三維建模、仿真和分析功能,被廣泛的應用在各行各業。在模具制造行業,特別是注塑模具方面更是被廣泛應用。UG被廣泛應用的一個重要原因就是其提供了一個快捷方便的二次開發接口,用戶可以根據自己的需要在軟件本身功能的基礎上開發更多符合企業自身設計規范的功能。在注塑模具行業,模具設計結束之后,對于模具設計人員來說,制作模具BOM表,一直是一個費時費力又很容易出錯的內容。雖然有些學者或者研究人員已經通過UG二次開發制作出自動BOM的相關程序,但是非定制的程序很難適應企業自身的各種設計規范和標準。南京某注塑模具設計企業為了提高設計人員的設計效率和準確性,提出了在UG8.5軟件的基礎上開發自動BOM功能的需求,希望通過開發出來的自動BOM模塊取代傳統的人工在模型中逐個零件進行測量并且填寫表格的工作,從而減少或者避免人工制作BOM表格過程中出現的各種差錯。
對于企業來說,模具設計人員眾多,希望通過二次開發在模具設計結束之后自動生成BOM,那么一個重要的前提就是規范模具設計人員的設計流程,要求他們設計出來的產品必須嚴格的符合某些規定。因此制定良好的模具設計規范是模具自動BOM能夠實現,和后期模具設計自動化實現的前提。
該注塑模具設計企業在提出模具設計自動化的同時也制定了相應的設計規范,這為后期模具設計自動化提供了很好的基礎。對于模具設計自動BOM來說,規范中對于零件的命名部分和裝配方式是最重要的。如果零件能夠命名一個合理的零件編碼,那么零件編碼就可以包含很多BOM中需要出現的信息,例如零件名稱、物料分類、零件材質和硬度。下面是我們本次采取的零件命名規則:
模具編號-零件編號-版本號HG15060565-002-01R07
在模具設計規范中也明確制定好了,每一個零件編號對應的零件名稱和物料分類,零件材質和硬度等信息。根據制定好的設計規范,使用Excel表格制作BOM數據文件,數據文件表格如圖1所示。
選擇使用Excel表格來存儲這些數據文件的原因主要有兩個:1)為了程序編寫完畢之后,方便用戶后期根據自己的需要進行必要的修改,例如零件名稱、零件材質和零件硬度這些信息。2)由于程序數據庫文件比較小,如果使用數據庫,要求客戶端電腦必須安裝必要的數據庫配置軟件,增加了軟件安裝和使用的復雜性。

圖1 自動BOM數據庫文件
通過對設計部門以往三維模型裝配圖和設計人員手工編寫的BOM表的比較分析,我們發現BOM表格中除了一些固定的表頭格式和結尾格式之外,每條數據的結構如圖2所示。在這些內容中,通過零件模型來測量的部分是整個程序開發設計的難點,同時也是人工來進行操作和設計的最繁瑣的部分。通過數據庫檢索部分相對簡單,我們只需要拿到零件編號,然后對零件編號進行解析,根據解析的內容,從數據庫文件中查找對應的部分即可。

圖2 BOM數據信息結構
3.1 功能定義
本基于UG8.5開發的自動BOM模塊有以下五個功能:
1)自動從模型中提取BOM信息;
2)用戶可以根據需要選擇需要出BOM的零件;
3)某些非裝配的零部件(螺絲、頂針和墊圈等)可以自動識別和區分;
4)某些常用的采購標準件(螺栓、推桿、彈簧等等)可以自動測量并填寫標準件的采購規格,例如直推桿(EPH4-150);
5)程序在BOM表格生成之后,自動的進行表格的格式處理,打印設置等等處理,使生成的表格可以直接交付打印,方便快捷。
3.2 功能設計
自動BOM模塊的設計目的是簡化BOM設計流程,降低手工BOM的出錯率。自動從模型中提取BOM信息,一方面簡化用戶的操作,另一方面能夠避免用戶在測量模型尺寸或者填寫BOM表格時出現不必要的錯誤。這一部分是自動BOM程序設計的重點。
由于設計師設計的模具,有時候需要進行修模和改模,而修模和改模時并不是所有模具上的零件都需要重新采購和加工,只有需要改動的零件需要重新選擇設計。因此能夠根據用戶需要選擇性的生成部分模型的BOM表格也能夠極大的提高用戶使用的便捷性。
對于螺栓、推桿和彈簧等零件,由于在模型中這類零件使用的數量較多,單個命名和裝配比較繁瑣,因此設計師們習慣同類零件統一命名,放在一個部件中。對于這類非裝配的零部件,模塊可以自動識別和區分,同時自動測量尺寸,自動計數并且合并尺寸相同的零部件。
采購標準件,模塊自動根據零部件的編碼識別零部件的分類,測量規格必要的尺寸,生成指定零件的采購規格。生成的表格通過程序內置的格式處理和打印設置,使自動生成的BOM表格完全符合設計師們的日常設計習慣,方便設計師們快速使用。
4.1 整體概述
本次程序的設計我們采用Microsoft Visual Studio 2010作為開發工具,使用VB.Net作為開發語言。一方面UG提供了完整的VB.Net開發幫助文檔,另一方面VB.Net可以和Excel進行無縫交互融合,因此最終選擇使用VB.Net作為開發語言。同時在.Net平臺下開發的應用,不需要區分64位和32位版本即可在客戶機上直接運行,方便用戶使用。
4.2 零件屬性的讀寫操作
本次對于自動BOM的設計,是后期整個模具設計自動化的重要內容之一。后期需要進行工程圖自動標注的設計。因此把零件屬性作為一個中轉站,先把必要的信息寫入到零件屬性,再通過讀取零件屬性寫入到Excel表格,最終把每個零件的BOM信息完整的保存在零件文件上。在后期制作工程圖時,特別填寫標題欄時,需要的模型信息,我們可以直接從零件屬性中讀取出來。
零件屬性的讀寫操作主要用到兩個函數:SetUserAttribute()和GetUserAttribute()。通過這兩個函數,我們可以把模具零部件模型的有用信息永久的保存在模型上。
4.3 重要零件尺寸規格的測量
根據設計部門的模具設計規范,模具零件大概可以分為以下幾個類別:加工標準件、采購標準件、滑塊、頂針/司筒、標準模架配件、模仁和鑲件。其中加工標準件只需要測量型材尺寸即可,可以直接使用類Tooling.StockSizeBuilder之后添加Body就可以直接得到零件的型材尺寸。
滑塊類零件也需要得到一個型材尺寸,但是由于滑塊類零件的坐標系很多都是傾斜的,如果直接使用上面的方式測量,很容易得到錯誤的型材尺寸,例如圖3所示,但是我們期望的測量方式如圖4所示。我們在這里采用的策略是,測量零件的所有平面,查找零件的面積最大的那個平面,使用這個最大平面的法向量作為Z軸,在最大的平面上查找最長的直線邊,作為X或者Y軸。確定坐標系之后,使用這個確定的坐標系方向,來測量零件的尺寸,如圖4所示。使用這個規則,經過試驗,一年的所有產品中會偶爾出現一個不符合該規則。

圖3 錯誤測量方式

圖4 正確測量方式
采購標準件尺寸規格的測量是整個程序中最繁瑣的部分,因為對應于每個采購標準件,需要測量的尺寸較多,大部分尺寸又沒有一個統一的測量規則。因此我們需要針對每一種零件寫專用的測量尺寸規格的代碼。并且很多零件尺寸的拾取規則比較繁瑣,測量尺寸需要的對象沒有明顯的特征,通常很難從眾多的對象中拾取。下面以MISIMI臺階推桿的EHSE這類零件作為例子來簡單的講解關于采購標準件規格的測量。

圖5 MISIMI臺階推桿規格圖

圖6 MISIMI臺階推桿型號
從圖5和圖6關于臺階推桿尺寸的設定可知,臺階推桿的尺寸規格由以下四個尺寸組成:D公稱直徑(第二階臺階的直徑)、L推桿總長度、P第三階臺階的直徑、N總長度減去第三階臺階的長度。圖7通過流程圖的方式簡單的介紹了臺階推桿尺寸規格中每個尺寸的測量過程。

圖7 臺階推桿尺寸測量流程
在整個測量工作中,最主要的任務是篩選出需要測量的對象。例如測量第三節圓柱面的直徑,最主要的任務就是從零件所有面中篩選得到最小的圓柱面這個對象。測量對象在整個測量過程中我們主要用到的是面對象和邊界對象。面對象的篩選主要用到特征:類型、面積、邊界的類型和數量等。邊界對象的篩選主要用到特征:類型、長度、所在面的類型和面積等。在某些難以區分的情況下我們會考慮使用面的法向量、邊界的方向向量和某些特征尺寸來進行篩選。
尺寸的測量部分主要測量距離、直徑、角度和面積等內容。測量距離和直徑可以使用NXOpen. MeasureDistance類添加測量對象。測量面積可以使用NXOpen.MeasureFaces類。測量角度則使用NXOpen. MeasureAngle。以上三個類在使用的過程中直接添加測量對象,設置測量方式和精度即可成功測量得到必要的尺寸。
4.4 BOM生成流程簡介
進入程序之后,首先遍歷所有零件,解析每個零件的名稱,拿到零件編號,查找數據庫中對應零件名稱、物料分類、零件材質和硬度,同時測量型材尺寸,將這些信息寫入到每一個零件的屬性中去。然后第二次遍歷所有零件,根據零件編號,對不同的零件進行不同處理,例如普通的加工零件則直接讀取零件屬性,寫入Excel表格,生成一條數據。對于普通采購標準件,測量零件的必要尺寸信息,然后再讀取零件屬性,寫入Excel表格,生成一條數據。對于非裝配件(推桿,螺絲和彈簧等)則得到零件體的個數,進入更深一層循環,測量每一個零件體的尺寸,每一個零件體都在Excel表格中生成一條新的數據。待所有的零件都在Excel表格中生成數據完畢之后,根據零件編號排序Excel表格,然后合并同類項,把相同零件編號和尺寸規格一模一樣的直接合并。表格數據處理完之后,進行格式設置,例如字體,邊界線等內容的處理。最后進行錯誤檢查,對于非常明顯的錯誤,把錯誤信息所在單元格的背景色改為紅色,提示用戶注意檢查。這里最容易出錯的地方就是尺寸規格部分,因此錯誤檢查主要是對測量的尺寸規格這一項進行檢查,如果得到的尺寸非常不規范,就認為這個尺寸有問題,需要設計人員檢查。
在這里關于最后的錯誤檢查,這一部分主要是為了減少設計人員的工作量。因為就算程序可以自動出BOM表格,但是也很難保證整個BOM表格是100%的正確。因此在BOM生成結束之后,設計人員肯定需要進行一些簡單的檢查。有些比較常規的錯誤,程序能夠進行判斷的,則在程序里面進行判斷,同時把錯誤信息所在單元格的背景色改為紅色,提示需要人工檢查。這樣設計人員在BOM生成完成之后只要重點注意一下有紅色提示部分即可。
4.5 自動生成實例
圖8是設計部門完成裝配之后的三維模型文件,圖9是使用自動BOM模塊生成的BOM清單文件。

圖8 裝配模型文件

圖9 自動生成的BOM表格
通過自動BOM模塊的開發,極大的提高了該企業模具設計部門設計人員的效率。一個中等復雜的模具,如果通過原始的方式來進行BOM表格的設計,一個普通的設計人員最少需要1~2個小時才能完全結束一張BOM表格的制作,中間還十分容易出錯?,F在使用自動BOM模塊,一個復雜的模具正常情況下1分鐘之內即可自動生成,加上設計人員后期的檢查修改時間,最多15分鐘完全可以完成一張BOM表格的制作。該模塊充分利用UG軟件提供的開發接口,簡化BOM制作流程,縮短了設計周期,降低了出錯率。
[1] 董正衛,田立中,付宜利.UG/Open API編程基礎[M].北京:清華大學出版社,2002.
[2] 胡衛衛,王華昌,李建軍.UG平臺下注射模CAD系統BOM表功能的開發[D].武漢:華中科技大學材料學院,2010.
[3] 黃勇,張博林,薛運鋒.UG二次開發與數據庫應用基礎與典型范例[M].北京:電子工業出版社,2008.1.
Development of automatic BOM software based on UG8.5
WANG Peng-yun, GAO Chang-shui
TP391.72
:B
1009-0134(2017)01-0094-05
2016-05-03
江蘇省前瞻性聯合研究項目(BY2016003-08)
王鵬云(1991 -),男,河南洛陽人,碩士研究生,研究方向為自動化軟件開發和制造車間生產仿真與優化。