基于設計環境的圖紙BOM管理系統(一)
1.2.2 圖紙的批量錄入
圖紙管理以“項目”為劃分,每個“項目”的圖紙都可以批量錄入,指定文件夾或是多個dwg文件都可以。對于單張圖紙的錄入過程如圖3所示,圖紙的批量錄入是循環執行單張錄入的過程。
圖3 單張圖紙的錄入過程
圖3“遍歷圖紙”是對圖紙中所有實體的迭代過程,從中找出標題欄和明細表,然后對整個標題欄和明細表的數據進行讀取,這是圖紙數據讀取的關鍵部分。對圖紙數據的讀取主要有3種方法:“模板匹配法”、“塊屬性定義”和“圖紙屬性定義文件”。其中,“模板匹配法”要求現有的圖形和預先定義的模板的形式完全一致,這樣就可以根據模板中的位置來提取圖紙中的數據,該方法主要用于一些格式比較固定的純表格類數據的提取,對圖紙的要求非常嚴格;“塊屬性定義”是現在用的非常廣的一種圖紙數據提取方法,在AutoCAD中提供一種塊編輯器功能,可以對圖塊進行屬性定義或是在圖塊中填寫擴展數據來標識圖形,在獲取數據時對圖紙進行遍歷,找到之前定義的屬性塊,這樣就可以通過定義的屬性提取出填寫在圖紙中的數據;“圖紙屬性定義文件”則主要適合一些自由表格圖形的數據提取,通過在屬性表中定義的圖紙屬性和相應的相對坐標及坐標偏移量就可以找到一個包容盒,這樣包容盒中的文字數據就可以很方便的提取了。這里,系統提供了“塊屬性定義”和“圖紙屬性定義文件”這兩種方法來提取圖紙數據。下面主要是以“塊屬性定義”為例,圖紙中標題欄和明細表都被定義成帶屬性的塊,完整定義信息是由定義文件和保存在圖塊中的擴展數據組成的。圖紙的遍歷僅執行一次,遍歷的算法過程如圖4所示。
圖4 圖紙的遍歷過程
“讀取標題欄信息是否成功”,是檢查遍歷的圖紙的結果中是否存在標題欄的ID,如果存在則讀取標題欄中保存的擴展數據,找到相應的定義文件,定義文件中保存了標題欄的字段的定義信息,然后根據定義信息可以得到標題欄中各個字段的填寫區域,從而可以獲取到標題欄中填寫的所有信息,例如:圖號、名稱、圖幅等。“讀取明細表信息是否成功”的過程也是類似的。程序的基本流程圖如圖5所示。
圖5 讀取標題欄定義的過程
“檢查是否存在遞歸包含”的作用是檢查一張圖紙是否在明細表中又包含了自己,如果存在遞歸包含則不會被添加到圖庫中,因為這在輸出產品結構樹時會引起一個類似死循環的結構。如果要添加的文件已經存在圖紙數據庫中,則刪除原來已經保存在數據庫中的相關圖紙信息,重新添加一次。
1.2.3 產品結構樹輸出
在圖紙的標題欄和明細表信息的錄入時,系統會在圖庫數據庫中新建1個“圖紙關系表”(如果已經存在,則或刪除重建),用來管理錄入圖庫中的圖紙之間的關系。“圖紙關系表”中主要記錄了3個字段:項目ID(根據項目新建的順序,從1開始順序取值)、圖紙ID(按照圖紙添加的順序,從1開始順序取值)、父圖紙ID。圖紙的父子關系主要是根據圖紙中的明細表的引用關系來確定的:如果a圖紙的明細表中引用了b圖紙,則認為b圖是a圖的零件,a圖是b圖的父親。產品結構樹的輸出過程如圖6所示。
圖6 產品結構樹輸出過程
“建立文檔父子關系”是產品結構樹的關鍵步驟,其過程主要分為3步:
1)從“圖紙信息表”中獲取圖紙ID;
2)根據圖紙ID在相應的“明細表信息表”中查詢該圖紙明細表中所引用的圖紙的ID,保存到一個數組中;
3)根據獲得的圖紙ID數組逐個的查詢,這樣就得到了文檔的父子關系,然后添加到“圖紙關系表”中;“檢查是否存在遞歸包含”的依據是“圖紙關系表”中圖紙ID和其父圖ID是否相等,如果相等,則認為是存在遞歸包含,不相等接著進行下一步,插入到結構樹的相應位置進行顯示。
1.2.4 BOM報表輸出
BOM報表可以輸出多種格式:txt、xls、dbf和dwg。圖紙的數據包含標題欄和明細表信息,數據按照產品結構樹的層次來輸出。BOM報表輸出的數據來自“產品結構信息”表,這個表中的數據是“圖紙信息表”和“明細表信息表”的綜合,包含的數據量非常大,考慮到整個系統的性能,“產品結構信息”表不會自動刷新,用戶在需要時手動刷新。txt、xls和dbf格式都是按照順序直接寫出數據,是比較通用的格式,而dwg格式報表則是把數據填寫在dwg格式的表格中,這是很多管理軟件沒有的報表格式,dwg格式的報表在工業實際中應用非常廣泛,符合設計人員的使用習慣,方便修改和維護。dwg格式報表需要預先定義一個報表格式和相應的表格定義文件,系統會根據dwg表格模板和定義文件中定義的字段選擇性的提取“產品結構信息”表中的數據填寫到表格中,從而輸出dwg報表。
2 圖紙BOM管理系統實例
圖紙BOM管理首先是要建立圖庫數據庫,數據庫中主要包含圖紙的定義信息,和各個用于存儲圖紙信息的數據表,這些信息都是以后圖紙的信息提取和保存的基礎。然后可以新建項目、添加圖紙,新建的項目和添加的圖紙信息都會被保存到先前建立的數據庫中,系統最終會根據圖紙的信息生成一個產品結構樹,可以對樹中的任意一張圖紙進行查看,填寫等操作,對于每個項目都可以輸出報表,選擇輸出報表,可以得到如表1所示的報表數據。
表1 報表數據
針對這個網格中數據,可以輸出成多種格式:txt、dbf和dwg。對于dwg格式的報表需要預先定制好輸出的表格形式,表2是輸出的dwg報表。
表2 輸出dwg報表
3 結束語
圖紙BOM管理系統已經在多個企業使用,如:成都成工工程機械有限公司等,系統直接集成在CAD環境中,操作簡單直觀,符合設計人員的使用習慣,提高了圖紙數據的重復利用率,減少了設計者的重復勞動,得到了用戶的一致好評。未來該圖紙BOM管理可以朝著網絡協同方面發展,實現多用戶并行工作和圖紙數據的完全共享,這將又會是一次大的飛躍。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:基于設計環境的圖紙BOM管理系統(二)