SolidWorks的尺寸公差標注系統(tǒng)設計
2013-05-23 by:廣州有限元分析、培訓中心-1CAE.COM 來源:仿真在線
作者: 隋文濤 張丹 張宇 來源: 萬方數(shù)據
關鍵字: 尺寸公差 數(shù)據庫
利用數(shù)據庫技米開發(fā)了尺寸公差動態(tài)查詢模塊。通過二次開發(fā),將查詢模塊作為插件集成在SolidWorks環(huán)境下,實現(xiàn)了SolidWorks中動態(tài)查詢尺寸公差和標注。
1引言
Solidworks是一套基于windows平臺的全參數(shù)化特征造型軟件,它可以十分方便地實現(xiàn)復雜的三維零件實體造型、復雜裝配和生成工程圖。圖形界面友好,用戶易學易用。同時該軟件集成了設計、分析、加工和數(shù)據管理的整個過程。具有較好的開發(fā)性接口和功能擴展性,是優(yōu)秀的中檔三維CAD軟件。
盡管Solidworks具有很多的優(yōu)點,但在某些方面仍存在不足。例如,在公差標注方面,SoIidworks有標注功能,但系統(tǒng)本身不帶有公差數(shù)據庫,這就需要工程技術人員翻閱手冊查找準確的上、下偏差值,給設計帶來不便。鑒于此,筆者以Solidworks為平臺,利用其提供的二次開發(fā)編程接口,采用面向對象技術,開發(fā)了尺寸公差自動標注系統(tǒng),提高了設計人員的工作效率。
2設計思想
公差標注系統(tǒng)的開發(fā)涉及多種軟件技術,包括vb開發(fā)數(shù)據庫技術、二次開發(fā)solidworks技術以及創(chuàng)建ActiveX DLL技術。因此,系統(tǒng)采用自頂向下的模塊化設計方法,整個設計過程如圖1所示。
首先建立尺寸公差數(shù)據庫,數(shù)據庫中存儲標準公差、孔的極限偏差和軸的極限偏差等數(shù)值表。建立數(shù)據庫后,采用ADO數(shù)據訪問技術,實現(xiàn)動態(tài)查詢尺寸公差。然后創(chuàng)建ActiveX DLL,目的是將動態(tài)查詢和尺寸標注功能封裝為一個插件,供SolidWorks調用。將生成的.DLL文件通過注冊等方式加載到SolidWorks環(huán)境供用戶使用。最后測試嵌人后的播件,看是否存在問題。
3關鍵技術
開發(fā)系統(tǒng)需要多種軟件技術,其中有以下3個關鍵的技術問題。
數(shù)據庫設計是底層基礎。數(shù)據庫的設計質量決定能否快速和準確地實現(xiàn)上下偏差查詢。數(shù)據庫設計又分兩個步驟,一個是數(shù)據庫的邏輯設計,即數(shù)據表和字段的設計。一個是在數(shù)據表的基礎上進行程序設計。本文采用VB進行應用程序設計,這是因為VB是一種面向對象的可視化設計工具,支持多種數(shù)據庫系統(tǒng)的訪問,并且支持動態(tài)數(shù)據交換(DDE)、動態(tài)鏈接庫(DLL)和對象的鏈接與嵌人(OLE)技術。
二次開發(fā)SolidWorks是一個難點。因為二次開發(fā)需要用到大量接口函數(shù),而這些接口函數(shù)采用英文書寫,需要仔細閱讀SolidWorks API幫助文件。開發(fā)過程中,有一個訣竅。在用SolidWorks標注時,打開宏"錄制",將整個標注過程錄制下來,對宏進行編輯。將具體數(shù)據修改為程序中的變量。然后通過程序對變量進行賦值,這樣運行程序時,即可通過輸人具體數(shù)值,實現(xiàn)相應的標注操作。
創(chuàng)建ActiveXDLL是實現(xiàn)集成的手段。為將動態(tài)查詢和尺寸標注功能封裝為一個插件,以菜單的形式集成到SolidWorks界面.需要創(chuàng)建動態(tài)連接庫(DLL) 。
3.1數(shù)據庫設計
本系統(tǒng)采用Access數(shù)據庫建庫,存儲的主要數(shù)據有孔的極限偏差和軸的極限偏差數(shù)值表。輔助數(shù)據有標準公差、基本偏差、孔軸公差帶信息。
軸的極限偏差數(shù)據來源于國家標準GB/T1800.4-1999。確定一個尺寸的上下偏差需要基本尺寸、偏差代號、公差等級3個必要條件,因此國家標準中軸的極限偏差表是三維的。根據數(shù)據庫規(guī)范化的理論,數(shù)據庫無法建立三維表。如果要實現(xiàn)三維形式存儲,需要建立多個表,各表之間要依據條件關系用主鍵建立聯(lián)系,編程時用復雜的SQL語句聯(lián)合查詢,這樣會降低數(shù)據庫訪問的速度,浪費存儲空間,而且維護性差。為解決以上間題,筆者重新設計數(shù)據表的字段,將國家標準中的三維表離散為符合數(shù)據庫格式的二維表。
表中的第一行為數(shù)據表的字段名,這些字段是國標中的基本尺寸。第1列為偏差代號,從第2列開始,分別是相應的上下偏差信息。上下偏差值用"\"間隔開,"\"前面為上偏差的符號信息和數(shù)值信息,"\"后面是下偏差的符號信息和數(shù)值信息。
程序采用ADO數(shù)據訪問接口技術與標準件尺寸參數(shù)庫進行連接。ADO (Active Data Object)是一種高性能的數(shù)據訪問接口,它的對象模型是所有數(shù)據訪問接口對象模型中最簡單的一種。通過應用程序可實現(xiàn)軸上下偏差查詢、孔上下偏差查詢、基孔制配合公差查詢、基軸制配合公差查詢。在底層數(shù)據庫的基礎上,利用VB開發(fā)的尺寸公差動態(tài)查詢模塊,為公差標注奠定了基礎。
限于篇幅,以實現(xiàn)上下偏差查詢功能為例,代碼如下:
3.2二次開發(fā)SolidWorks
為將尺寸公差動態(tài)查詢模塊作為插件嵌人到SolidWorks環(huán)境中使用,需要運用SolidWorks二次開發(fā)技術。SolidWorks提供的應用編程接口API (Application Programming Interface)是基于OLE(object linking and embedding)的編程接口,它包含了大量的功能函數(shù),可以被VB\VC等任何支持OLE技術的編程語言調用,提供直接訪問SolidWorks功能的能力。
以在SolidWorks界面上添加菜單用到的兩個關鍵函數(shù)為例,說明API的使用。
SwAddin.ConnectToSW函數(shù)是用戶編寫的程序連接SolidWorks的人口函數(shù),可實現(xiàn)尺寸查詢程序集成在SolidWorks環(huán)境下。說明如下:
在SwAddin.ConnectToSW函數(shù)中加人以下代碼,為SolidWorks界面添加菜單。Ret=iSIdWorks.AddMenuItem2(awDocDRAWING, iCookie,&_
"尺寸公差標注@公差標注",-1, "Size-dimension","",""}
通過AddMenuItem2函數(shù),為SolidWorks添加了"尺寸公差查詢"菜單。當用戶單擊該菜單后,將調用"Size- dimension"功能即尺寸公差標注功能。這樣應用程序與SolidWork。形成統(tǒng)一的界面。
3.3創(chuàng)建ActiveX DLL
創(chuàng)建ActiveXDLL的目的是將動態(tài)查詢和尺寸標注功能封裝為一個插件,而插件又以菜單的形式顯示在SolidWork,界面上。
簡要說明一下創(chuàng)建動態(tài)鏈接庫(DLL)文件的步驟。首先,啟動VB建立"ActiveX DLL"文件,在VB"引用"中加入SolidWorks的對象庫。然后,在類模塊中加人變盆聲明和SwAddin.ConnectToSW等關鍵函數(shù)。這需要運用上述二次開發(fā)的知識。最后,必須選擇【文件】/【生成DLL】菜單。
上面產生的DLL文件還不能轉換為SolidWorks插件,必須做相應的處理才能生效。有兩種方法:在Solidworks環(huán)境中打開和寫注冊表。前者需要在SolidWorks環(huán)境下以Add-Ins(*.DLL)文件類型打開用戶編寫的動態(tài)鏈接庫文件。后一種方法為在Windows系統(tǒng)的【運行】萊單中,輸人:Regavr32 *.dll。"*"。
4應用實例
在工程圖中為某尺寸添加公差標注時,首先選定該尺寸,然后按選擇【公差標注】和【尺寸公差標注】萊單,出現(xiàn)如圖3所示的動態(tài)查詢尺寸公差的窗體。輸人基本尺寸值、偏差代號及公差等級,單擊【確定】按鈕,界面會顯示上下偏差及公差尺寸。單擊【標注】,選中的尺寸上就被標注了上下偏差。
5結論
基于SolidWorks環(huán)境的尺寸公差標注系統(tǒng),實現(xiàn)了尺寸公差的動態(tài)查詢和標注,提高了設計效率。文中提出的設計思想為在SolidWorks環(huán)境下進行形位公差、粗糙度動態(tài)查詢和標注等二次開發(fā)提供了一個思路,也可供在其它三維CAD系統(tǒng)環(huán)境下編寫尺寸標注程序時作為參考。
本文作者創(chuàng)新點:提出了公差標注系統(tǒng)的設計方案,詳細介紹了軟件設計中的3個關鍵技術問題,彌補了CAD軟件在公差標注方面的不足。
相關標簽搜索:SolidWorks的尺寸公差標注系統(tǒng)設計 SolidWorks培訓課程 SolidWorks設計教程 SolidWorks視頻教程 SolidWorks軟件下載 SolidWorks在建筑室內設計工業(yè)設計的應用 SolidWorks基礎知識 SolidWorks代做 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 Autoform培訓