solidworks二次開發

分類  >  Solidworks >
tags:    時間:2014-03-07 09:43:11
solidworks二次開發簡介
  摘       要: SolidWorks是一種非常優秀的三維機械設計軟體,但是它缺少國家標準零件庫,為機械設……
solidworks二次開發正文
       要:
SolidWorks是一種非常優秀的三維機械設計軟體,但是它缺少國家標準零件庫,為機械設計工作帶來了不便。VB是一種簡單易學,而且功能強大的高級編程語言,Access是一種容易使用,而且功能強大的資料庫管理系統。SolidWorks提供了基於OLE自動化技術的API函數,可以使用VB為它進行二次開發。螺紋聯接的國家標準數據可以使用Access來管理。使用VB為SolidWorks開發螺紋聯接國家標準零件的專用模塊,配合Access管理的國家標準數據,就可開發出針對SolidWorks的國家標準零件庫模塊。把模塊編譯成SolidWorks的插件,然後用菜單的方式掛到SolidWorks系統中,可以使螺紋聯接國家標準零件模塊的使用更加方便。
 
詞:
                     標準零件 標準零件庫 螺紋聯接標準零件庫二次開發 SolidWorks
Abstract:
 
The SolidWorks is a real fair 3D machine design software, But it be in defect of the Lib of the national standard parts, that works to bring for machine design very inconvenient. VB is a easily study, and powerful computer high class language, Access is an easy usage, and powerful DBMS. The SolidWorks provided mass API functions base the OLE Automation technique, Can be use the VB to development two times for it. The national standard data of the thread linker can use the Access to manage. Can be use the VB develop the Lib of the national standard parts of thread linker for SolidWorks, and the National standard data that manage by Access, Can develop the appropriation molds of the Lib of the national standard parts of thread linker for SolidWorks. Let the appropriation molds edit and translate it be the Add-ins of the SolidWorks, then use the menu to hang in the SolidWorks system, and can make the Lib of the national standard parts of thread linker more convenient.
Key words:
                     The standard parts; The Lib of the standard parts
The Lib of the national standard parts of thread linker;
Two times development; SolidWorks
 
第一章 緒    論
1.1  SolidWorks系統簡介
   
目前,在我國的CAD市場上比較流行的三維CAD軟體有SolidWorks、MDT、UG、Pro/E SolidEdge 等。但就價位來講SolidWorks、MDT、SolidEdge是中低檔價位的產品,UG、Pro/E
IDEAS是高中檔價位的產品。
SolidWorks是一套基於Windows的CAD/CAE/CAM/PDM桌面集成系統,是美國SolidWorks公司在總結和繼承了大型機械CAD軟體的基礎上,在Windows環境下實現的第一個機械三維CAD軟體,於1995年11月研製成功。它全面採用非全約束的特徵建模技術,其設計過程全相關性,可以在設計過程的任何階段修改設計。同時牽動相關部分的修改。它即提供自底向上的裝配方法,同時還提供自頂向下的裝配方法。自頂向下的裝配方法使工程師能在裝配環境中參考裝配體的其他零件的位置及尺寸設計新的零件,更加符合工程習慣。它具有獨創性的“封裝”功能,可以分塊處理複雜的裝配體。具有產品配置功能,為用戶設計不同構性的產品。它集成了設計、分析、加工和數據管理過程,所獲得的分析和加工模擬結果成為產品模型的屬性,在SolidWorks的特徵管理器中清晰的列出了詳細的數據信息。它還可以動態模擬裝配過程,進行靜態干涉檢查、計算質量特徵,如質心、慣性矩等。它將2D造型繪圖與3D造型技術融為一體,能自動生成零件尺寸、材料明細表(BOM)、具有指引線的零部件編號等技術資料,從而簡化了工程圖樣的生成過程。同時有中英文兩種界面可以選擇,其先進的特徵樹結構使操作更加簡便和直觀。具有交好的開發性介面和功能擴充性。能輕鬆實現各種CAD軟體之間的數據轉換傳送。
    目前,SolidWorks的全球用戶超過20萬,國外大多數製造公司招聘時都要求應聘人具備操作SolidWorks的能力。國際上很多一流的名校都將SolidWorks定為大學本科學生的必修課,如麻省理工學院、英國劍橋大學等。95%的西方企業要求員工回運用SolidWorks軟體,SolidWorks連續幾年被美國一些雜誌評為優秀的CAD軟體。
    但是SolidWorks也並非十全十美,不可能滿足特定企業的特殊要求。例如,由於該軟體是外國人寫的,不適合中國的國標,如標題欄、明細表、放大圖的標註、剖視圖的標註、裝配圖的序號等。也沒有適合我國國標的標準件庫。因此,為了適應特定企業的特殊要求,形成企業自己的特色,使SolidWorks在我國的企業中有效的發揮作用,並使常用的或是重複的任務自動化,提高效率,就必須對其進行本土化和專業化的二次開發工作。

 

SolidWorks 系統具有如下的特點:
 
(1) 具有獨特的特徵管理員,提供的特徵管理員設計歷史樹同具體的實體模型是實時的動態聯接;
(2) 具有強大的實體建模功能和直觀的Windows 用戶界面;
(3) 支持Windows 的DDE 機制和OLE 技術;
(4) 支持Internet 技術,可以共享設計數據;
(5) 雙向關聯的尺寸驅動機制;
(6) 提供了VB ,VC + + 和其他支持OLE 的開發語言介面;
(7) 給基於Windows 的桌面集成賦予了新的含義。
它以Windows 為平台,集成了動態模擬軟體(Motionworks) 、工程分析軟(CosMo- SolidWorksorks) 、數控加工軟體(SurfCAM) 、以及工程數據管理軟(SmarTeamWorks) 等,使它們成為SolidWorks 家族中的一員。這些軟體的數據可以相互傳遞共享。而且SolidWorks 公司還設有網上站點,可方便用戶快速了解此系統的最新發展情況,或獲得最新的技術支持。
 造型功能
SolidWorks 提供了新一代的造型功能,它包括了草圖和實體,參數化特徵造型技術。提供豐富的基本特徵,並且提供用戶自定義特徵的功能。SolidWorks支持強大的三維參數化設計功能,可以方便地在設計的任何階段修改零件.
 繪圖功能
工程繪圖系統Drawing 主要用於三維模型的工程圖紙繪製與輸出,可同時編輯多張圖紙。
當設計人員建圖紙文件時,可以將PART 文件上的特徵歷史樹的總結點用滑鼠點取移動到圖
紙文件上,圖紙文件上自動生成三視圖。繪製的圖紙上可以自動標註尺寸信息。圖紙與模型
是相互關聯的,當模型上的尺寸或造型變化時,圖紙也相應改變。視圖包括標準視圖、投影視圖、一般視圖、局部視圖以及剖面視圖,是零件或裝配體在圖紙上的某種形式的投影。在視圖上可以增加或刪除符合國標的工程標註。本系統隨時維護三維模型與二維繪圖的一致性。註釋及輔助線段、圓註釋和輔助的線段、圓用於給圖紙增加一些視圖中未給出的信息,如加工注意點、材料選擇等。
 裝配功能
SolidWorks 中裝配的功能是由用戶指定裝配體中各零件之間的裝配約束關係,將零件裝配成裝配體。裝配系統不但可以將零件裝配起來,也可以讀入已經裝配好的裝配體,作為子裝配體進行裝配;子裝配體在裝配過程中可以視為一個整體,等效於一個零件。SolidWorks 可以模擬模擬裝配的全過程。
 二次開發
雖然SolidWorks 所提供的功能非常強大,但要使其在我國企業中真正發揮作用,就必須對其進行本地化、專業化的二次開發工作。為了方便用戶進行二次開發,SolidWorks提供了幾百個API函數,這些API是SolidWorks的OLE或COM介面.用戶可以使用高級語言對其進行二次開發,建立適合用戶需要的、專用的SolidWorks功能模塊。SolidWorks 是一個非常開放的系統,提供了VB ,VC + + 和其他支持OLE 的開發語言介面。提供給用戶必要的工具(宏語言、庫函數等) 以開發個人化的應用模塊,並且易於將它集成到系統中去。用VB 或VC + + 調用SolidWorks 的API 函數,可以完成零件的建造、修改;零件各特徵的建立、修改、刪除、壓
縮等各項控制;零件特徵信息的提取,如特徵尺寸的設置與提取,特徵所在面的信息提取及各種幾何和拓撲信息;零件的裝配信息;零件工程圖紙中的各項信息;還可在SolidWorks主菜單上增加按鈕,將自己開發的應用模塊嵌入到它的管理系統中。
1.2 系統開發的目的與意義
 
如前所述,SolidWorks雖然擁有強大的功能,適當的價位,但是也分並非是十全十美。不可能滿足特定企業的特殊要求。例如,由於該軟體是外國人寫的,不適合中國的國標,如標題欄、明細表、放大圖的標註、剖視圖的標註、裝配圖的序號等。也沒有適合我國國標的標準件庫。因此,為了適應特定企業的特殊要求,形成企業自己的特色,使SolidWorks在我國的企業中有效的發揮作用,並使常用的或是重複的任務自動化,提高效率,就必須對其進行本土化和專業化的二次開發工作。
SolidWorks系統提供數據操縱介面函數API,專門讀寫三維零件數據,並提供了一系列的Automation介面(包括對象、屬性和方法),使用戶進行二次開發更加容易。運用Automation技術使得在自己的應用程序中驅動三維CAD系統中的零件變的有可能而且容易。
綜上,SolidWorks沒有適合我國國家標準的標準件庫,在設計工作中在機械設計中,對標準件模型的需求量是相當大的。而標準件是可重用模型,每每需要時可以實時建模,但這顯然是一種資源的浪費。為了提高設計工作的效率,有效利用設計人員人力資源,同時更加強化SolidWorks 的本土化程度,為其開發GB標準件庫將有著非常的意義。
1.3 論文工作的主要內容
本次設計的題目為《螺紋聯接CAD系統的標準件庫開發》,使用VB為SolidWorks系統開發了一個螺紋聯接標準件系統。設計過程中需要熟悉VB、Access資料庫管理系統以及SolidWorks系統和它的二次開發方法等。本次論文工作的主要內容如下:
簡要介紹SolidWorks系統;
SolidWorks系統的二次開發及其API函數;
VB對SolidWorks的二次開發方法;
Access資料庫管理系統在標準件庫開發中的應用;
螺紋聯接標準件庫的開發;
SolidWorks系統插件菜單的開發;
為完善標準件庫系統的功能而為其開發的受力分析模塊;

 

 
第二章 Solidworks的二次開發及其API函數簡介
2.1 相關術語
      
為了方便用戶進行二次開發,SolidWorks提供了幾百個API函數,這些API是SolidWorks的OLE或COM介面,用戶可以使用VB/VC等高級語言對其進行二次開發,建立適合用戶需要的、專用的SolidWorks功能模塊。要順利對SolidWorks進行二次開發,以下的基本術語是需要知道的。
 
OLE技術
    OLE就是對象的嵌入與連接,它使得應用程序之間能夠通過數據的嵌入或連接的方式來共享數據。含有嵌入或連接文檔的應用程序被稱為容器程序,提供文檔數據編輯的應用程序被稱為伺服器程序。OLE2.0推出以後,OLE已經不再是對象的嵌入和連接的縮略詞。不妨認為ActiveX是OLE3.0,事實上ActiveX是OLE在網路上的擴展,它使用了OLE技術並且超過了本地機器的範圍。自動化技術Automation是OLE技術的一個重要內容。直到今天,自動化技術擴充和發展為ActiveX Automation,它適用於OLE對象和ActiveX對象。自動化技術由客戶程序和伺服器程序組成,客戶程序是操縱者與控制者,伺服器程序是被控制者,它包含了一系列的暴露對象。伺服器應用程序通過自身對象的屬性、方法、事件外顯其功能;對象的伺服器程序簡單而抽象的代表。而客戶應用程序則通過操縱伺服器應用程序所暴露的一系列對象來操縱伺服器應用程序。只要伺服器程序提供一定的介面,可以使任何對象實現自動化。對象包含的一些外部介面,它們被稱為方法與屬性。方法是自動化對象的一些函數,它們是提供給客戶程序的外部公共成員函數,屬性是一個對象的一些命名特性,即對象的一些共有數據域。操縱程序被稱為客戶(Client),而被操縱程序稱為伺服器(Server),被操縱的對象是ActiveX對象如果應用程序支持OLE技術,則在不同應用程序之間的切換由OLE自動完成。SolidWoks支持OLE標準,完全實現了OLE自動化,前已提及,SolidWoks具有開放的結構體系,它的這種開放性體現在它所提供的API對象上。API是一個對SolidWoks的應用編程介面(Application Programming Interface),包含了幾百個對象及其屬性、方法和事件,這正是SolidWoks為用戶提供的功能強大的二次開發介面,凡支持OLE編程的開發工具,如 Visual C++、Visual Basic、Dephi等均可從各自本身操作這些對象,從而直接行使SolidWoks的功能,如畫一條直線,拉伸一個凸台,或修改一個表面的參數等。利用這種方法可以完成SolidWoks的二次開發,創建出用戶定製的、專用的SolidWoks功能模塊。在本課題中,我們用VB來控制SolidWoks提供的各種對象,即把VB  作為客戶程序,SolidWoks作為伺服器程序。
 
ActiveX技術
    ActiveX是微軟新近提出的一種技術,它以COM為基礎,其中包括了OLE技術以及應用於internet的多種技術。它使得不同的進程,甚至是網路上的進程之間相互通信,並朝著多媒體方向發展。ActiveX是一種面向對象的組件系統,其中包括了組件軟體的各個方面,有複雜文檔、自定義控制、OLE自動化、交互應用程序腳本、數據傳送及其他分佈軟體的相互作用。這些組件對象為用戶提供了不同的功能,使得不同的軟體供應商提供的組件可以在二進位之間進行相互的連接和通信。對象通過介面實現組件之間以及組件與系統之間的相互作用。在桌面系統進行軟體交互時,除了系統提供的標準控制外,OLE控制項是一個重要的組成部分。ActiveX是一種標準,利用這個標準可以使用通過不同的語言開發的軟體構件在單機或網路環境中相互操作。同時,ActiveX也是以組件對象模型為基礎的開放技術的集合,它代表了應用程序與internet的一種集成策略。
 
OLE Automation技術
自動化技術(Automation)為軟體之間的交互創造了條件,它允許多個應用程序或組件之間進行通訊和交互,而與它們的語言、分佈和原始平台無關。在開發標準件庫時,運用OLE(Object Linking and Embedding)Automation技術,無疑會減小開發的難度,使系統更加穩定可靠。SolidWorks系統提供數據操縱介面函數API,專門讀寫三維零件數據,並提供了一系列的Automation介面(包括對象、屬性和方法),使用戶進行二次開發更加容易。運用Automation技術使得在自己的應用程序中驅動三維CAD系統中的零件變的有可能而且容易。
 
尺寸驅動原理
本論文對標準件建模採用尺寸驅動原理,即標準件的生成也是對相應標準件模板進行尺寸驅動的過程。尺寸驅動即在零件拓撲結構不變的情況下,把零件的尺寸參數定義為尺寸變數,並定義出變數間的關係,當給定不同的尺寸值,就可得到一組結構相同而尺寸不同的零件,每一類標準件對應一個模板文件,在模板文件中定義尺寸變數和變數間的關係。由於三維CAD都採用了參數化的設計方法,在開發標準件庫時沒有必要再做尺寸約束求解,所以零件的最後生成可以依靠系統參數化功能來實現,即通過用新的尺寸值對實現準備好標準件模板進行尺寸驅動來生成一個新的標準件。
在工程實踐中用到的具有系列尺寸的標準件,其尺寸參數可分為獨立參數和非獨立參數,獨立參數中包含了主驅動參數(稱之為基本參數)和自定義特性參數。一般只要給定獨立參數,即可唯一確定零件的全部幾何參數(非獨立參數可由主驅動參數從標準件特性參數庫中取得)。例如GB5780-86,其螺紋規格,螺桿長度,螺紋長度為三個獨立參數,由用戶根據自身需要進行選取。螺紋規格確定之後,螺栓的六角頭厚度,扳手寬,倒角半徑等尺寸即可從特性參數庫中獲得,從而可以對形狀模式庫中的對應的形狀模型進行尺寸驅動,實現零件建模。

 

2.2  SolidWorks的API函數介紹
2.2.1 SolidWorks 的對象模型
 
相關術語
對象類定義了具有相同結構和操作的一組對象,其最基本的特徵是封裝和繼承。作為一種抽象數據,對象把實體的相關特徵和操作封裝在一起,允許人們以自然的方式去模擬外部實體的結構和行為;繼承是對象類實現可復用性和可擴充性的重要特徵。一個對象類可以定義為另一個更一般的特殊情形, 這個對象類是特殊對象類的父類( SuperClass) ,或者說, 特殊對象是這個一般對象的子類(SubClass) ,子類繼承父類的所有屬性和操作,除此以外子類還可以定義自己特有的屬性和操作。繼承是對象類的一種特例化關係,亦即集合包含關係,
類對象實例集合是父類對象實例集合的子集。
                         2.1
 
對象模型
SolidWorks 的對象模型是一個多層次的對象網路,如圖2.1所示。最高級別的對象類是SldWorks ,該對象中封裝了很多方法(Methods) , 如OpenDoc2 、ActivateDoc2 、CloseDoc、ExitApp,下面又創建了許多子類, 如ModelDoc、Environment 、Frame。本文將重點介紹ModelDoc 對象,因為大部分繪圖操作都在ModelDoc 對象中, 如SelectByID (選擇) 、CreateCircle2 ( 畫圓) 、CreateLine2 ( 畫直線)。ModelDoc 中又創建了PartDoc、AssemblyDoc、DrawingDoc 等子類。其中大部分實體建模操作都在PartDoc 對象中,如FeatureExtrusion (拉伸) 、FeatureRevolve (旋轉);而相關的裝配操作如AddComponent (插入零部件) 、AddMate (插入配合) 等都在AssemblyDoc 對象中。
 
2.2.2對象的屬性和方法
SolidWorks 創建的對象中,每個對象都有自己的屬性和方法,通過調用API 函數實現,反過來,應用SolidWorks 的每一步操作都體現在特定的對象類中。下面以VB 為開發平台介紹其一些常用的API 函數。
 
連接SolidWorks
在對SolidWorks 進行二次開發時,首先要建立SolidWorks 的連接,創建SolidWorks 的應用對象:
Dim swApp As Object
Set swApp = CreateObject (″SldWorks.Application″)
通過這個函數,就打開了SolidWorks 的介面,可以調用它的API 函數了。
 
建立新的零件圖、裝配圖
創建零件圖:
Dim Part As Object
Set Part = swApp.newpart
創建裝配圖:
Dim Assem As Object
Set Assem = swapp.NewAssembly
這兩個函數創建了一個新的工作區,使我們能夠進行建模和裝配。
 
選擇
“選擇”可以說是在使用SolidWorks 時用得最多的一個命令,有很多命令在使用時都要選擇操作對象,通過調用ModelDoc 對象中的SelectByID 函數來實現:
ModelDoc.SelectByID(objectName ,object Type ,x , y , z)
這個函數在應用時需要輸入五個參數:objectName 表示要選擇對象的名稱,該名稱是SolidWorks在創建對象時按先後順序自動命名的,如基準面1 、基準面2 、Arc1 、Line3 、D1 @ 草圖1 @Part1.SLDPRT;object Type 要輸入對象的類型,如PLANE (面) 、SKETCHSEGMENT (草圖上的對象如直線、圓弧等) 、DIMENSION (尺寸標註);x , y , z 是平面上任一點的坐標值。
 
插入草圖
在所選平面上插入草圖,調用ModelDoc 中的InsertSketch 函數: ModelDoc.InsertSketch ()
 
基本草圖繪製命令
畫直線調用ModelDoc 對象中的CreateLine2 函數:ModelDoc.CreateLine2 (xStart ,yStart ,zStart ,xEnd , yEnd , zEnd )[.Const ructionGeomet ry =True ]xStart 、yStart 、zStart 、xEnd、yEnd、zEnd 分別是直線的起點和終點坐標; Const ructionGeomet ry =True 時表示畫中心輔助線。畫圓調用ModelDoc 對象中的CreateCircle2函數:ModelDoc.CreateCircle2 (xc ,yc ,zc ,xp ,yp ,zp)xc、yc、zc、xp 、yp 、zp 分別是圓心和圓上一點的坐標值。標註尺寸先通過SelectByID 函數選擇要標註的對象,再調用ModelDoc 中的AddDimension 函數:ModelDoc.AddDimension ( x , y , z)x、y、z 為尺寸文本所要放的位置的坐標值。
 
基本實體建模命令
拉伸調用PartDoc 中的FeatureExtrusion 函數:
PartDoc.FeatureExtrusion(sd ,flip ,dir ,t1 ,t2 , d1 ,d2 ,dchk1 ,dchk2 ,ddir1
,ddir2 ,dang1 ,dang2 ,off setReverse1 ,off setReverse2)sd 為TRUE 時表示單向拉伸,為FALSE 時雙向拉伸,以0 、1 表示;dir 為TRUE 時表示正向拉伸,為真時有效;dir 為TRUE 時表示反向拉伸,為真時有效; t1 、t2 表示終止類型,可取下列值: 0 (給定深度) 、1 (貫穿) 、2 (為貫穿下一個) 、3 (成形到一頂點) 、4 (成形到一面) 、5 (到離指定面指定的距離) 、6 (兩側對稱) ; d1 , d2 表示拉伸的深度; ddir1 、ddir2 為TRUE 時表示帶拔模角拉伸;dang1 、dang2 為TRUE時表示向內拔模,為FALSE 是向外拔模;off setRe2verse1 , off setReverse2 控制到離指定面指定的距離,在t1 、t2 為5 時有效。其中d2 、dchk2 、ddir2 、dang2 、off setReverse2 在雙向拉伸時有效。旋轉調用PartDoc 中FeatureRevolve 函數:PartDoc.FeatureRevolve (angle ,reverseDir ,angle2 ,revType)angle 表示旋轉的角度;reverseDir 控制旋轉的方向,為TRUE 時表示反向, revTyp 為1 時無效; an2gle2 表示旋轉的反向角度,僅當revTyp 為2 時有效;revTyp 表示旋轉類型,為0 時單方向旋轉,為1 時雙向等角度旋轉,為2 時雙向旋轉。倒角調用ModelDoc 中的FeatureChamfer2
Type 函數:ModelDoc.FeatureChamferType(chamfer Type , width ,angle ,flip ,
otherDist ,vertexChamDist1 ,vertexChamDist2 ,vertexChamDist3)chamfer Type 控制倒角的類型,可取下列值: 1(角度- 距離控制) 、2 (距離- 距離控制) 、3 (頂點-倒角控制) 、4 (兩邊等距離控制) ;width 表示倒角邊距;angle 表示倒角角度,僅當chamfer Type1 為1 時有效;otherDist 表示chamfer Type 為2 時的另一邊距; vertexChamDist1、vertexChamDist2 、vertex2ChamDist3 表示chamfer Type 為3 時的三個距離。
 

 

        n = rst.RecordCount
        ReDim l(n)
        cmbl.Text = rst("Lshow").Value
        i = 0
    Do Until rst.BOF Or rst.EOF
將滿足條件的Lshow值添加到下拉框cmbl中,供用戶選擇
         cmbl.AddItem rst("Lshow").Value
將滿足條件的L值存放的數組L中
         l(i) = rst("L").Value
         i = i + 1
         rst.MoveNext
    Loop
當用戶選擇了L后,就可以執行下面的代碼,用來查詢對應的B值,
Lmin,Lmax,b從“螺柱LB關係”中查詢出來,條件是前面選擇的螺柱規格的公稱直徑LZ_d txtSQL = "select Lmin,Lmax,b from 螺柱LB關係 where d = " & LZ_d & " order by b asc"
    Set rst = ExecuteSQL(txtSQL, MsgTxt)
    Do Until rst.EOF
        Lmin = rst("Lmin").Value
        Lmax = rst("Lmax").Value
如果L大於Lmax,就比較下一條。
        If LZ_l > Lmax Then
            rst.MoveNext
        Else
B的值從“螺柱LB關係”表中查詢出來了
            LZ_b = rst("b").Value
            Exit Do
        End If
   上面只是以螺柱為例,簡單的說明資料庫的設計和建立的方法,並並分析了用代碼如何實現查詢工作。下面將分析整個螺紋聯接標準件庫各類零件的數據之間的關係,以及數據表的物理結構。
5.2.3完成全部數據的導入
    不同類型標準零件的數據表結果,部分相似,如圖5.5。
5.5
    螺紋聯接螺栓、螺柱、螺釘、螺母和墊圈五大類零件,從外型結構上看,相互差異較大,但它們都有公稱直徑或是螺紋規格這個欄位,因此,我們應該將所有的零件基本參數表的前兩個欄位創建為一致的數據類型,甚至是相同的欄位名稱。如此在任何零件的查詢中基本上就可以使用相同的代碼,這樣就可以使代碼可重用,提高代碼的書寫效率,同時也可以降低代碼的調試難度,因為各個地方的代碼結構一致,只要將任意一個地方的代碼調試正確,其他地方代碼複製就可以了,如圖5.5。
                                       
5.6
同一類型的零件的數據表,其數據結構一致,同時還要保證它們的欄位名稱也一致,這樣,就可以在不對代碼作出任何修改的情況下,擴充資料庫,如前面所談到的在系統結構中的未來的GB數據。如圖5.6。
 
第六章 標準件模板零件庫的建立
6.1  標準件模板零件庫概述
 
對於一個設計對象,參數十分複雜,而且數量龐大。而獨立變化的參數一般只有幾個,稱之為主參數或者主約束,其他可以由圖形結構特徵確定或者與主參數有確定關係的參數稱為次約束。參數化設計的核心是一種驅動機制即參數驅動機制。當把參數化模型確定下來以
后,為了實現界面關鍵參數(主參數)對參數化模型的控制,必須建立界面參數和參數化模型中的底層參數(次約束)之間邏輯上或者數值上的關係,稱之為參數驅動機制。通過參數驅動機制,可以對圖形的幾何數據進行參數化修改。
參數化設計主要有程序驅動法和尺寸驅動法兩種,程序驅動法是將設計過程的所有關係式融入應用程序中,然後在程序的控制下,順序執行這些設計表達式,通過與用戶的交
互完成設計工作,這一方法的主要特點是:如果要修改圖形;一般要重新運行一遍應用程序,當應用程序輸入不同值,便生成不同的圖形;尺寸驅動是指在保持零件結構不變的情況下,將零件的尺寸標註視為變數,給予不同的尺寸值,便能獲得一系列零件。
外型相同而尺寸不同的相似零件,它允許用戶在定義一個典型零件時,不必考慮零件中幾何元素的準確位置,而只需保證其拓撲結構正確,同時進行必要的尺寸參數標註,通過尺寸參數值的變化來生成結構相同而參數不同的零件族,它在零部件的重新生成與修改方面顯

 

示出極大的方便性。因此,本系統採用尺寸驅動法,不用重複圖形的生成過程,程序代碼量少,便於獲得系列化零件圖形。每一種標準件按要求不同,有一組或多組尺寸系列,但同一種標準件結構基本相同。據此,在標準件建庫過程中,採用參數化方法。其基本思想是:開發人員在SolidWorks環境中,任意選定一個比較方便繪圖的零件型號尺寸,按照正確的設計關係(包括幾何約束和尺寸約束)繪製標準件的模型,當需要生成某一規格的標準件時,可根據用戶給定的相關約束變數參數值,對已定義好的標準件模型的相應約束關係進行修改與求解,使幾何元素和特徵的幾何或拓撲信息發生改變,並引起相關圖形元素及關係的聯動,生成所需要的零件。
6.2  標準件模板零件庫的建立
 
標準件模板零件庫:是參照國家標準,利用SolidWorks的特徵造型技術建立的三維零件庫。每一種標準件按要求不同,有一組或多組尺寸系列,但同一種標準件結構基本相同。每一種形狀的標準零件均建立一個模型,並在造型的過程中完成對標準件圖形的幾何約束和尺寸約束定義,同時對需要尺寸驅動的特徵尺寸定義相應的變數(名字),以便程序訪問,實現尺寸的驅動。該庫中儲存的並不是帶有具體幾何數據的實體模型,而是標準件的概念模型,即描述標準件的幾何形狀的信息。其主要包括以下內容:
1、 標準件的幾何約束關係描述。利用水平、垂直、正交、相切、同心、平行等幾何關係(即拓撲關係)來定義標準件的幾何形狀,從而得到標準件的幾何約束關係描述。
2、 標準件的幾何特徵參數名。此參數名應與標準件特徵性規範中特性名相吻合。一旦確定后,在整個使用過程中應前後保持一致。
3、 標準件的幾何特性參數關係描述。定義標準件的各個特徵要素的基本尺寸之間的參數關係。
4、 零件構形特徵和構形過程描述。對某一類標準件進行分析、抽象出用特徵造型方法構造零件時所用的特徵類型,是零件建庫的一項重要工作,零件構形過程描述包括造型的操作步驟,操作類型和每步操作所參與的特徵引用位置。構形過程並不是構造某一標準件具體的實體模型,而是通過 程序+變數 的方法來記錄標準件建模的過程,從而建立它的概念模型。即通過CAD軟體本身的API函數,利用特徵造型技術,採用上面定義的標準件的尺寸參數名和尺寸參數關係來描述一個實體模型。按照構形的過程,將具有特定參數的構形特徵一步步構造出來,即完了標準件的生成。
       任意選定一個比較方便繪圖的零件型號尺寸,按照正確的設計關係(包括幾何約束和尺寸約束)繪製標準件的模型,如圖6.1,以M36螺栓為例。
 
圖6.1
M36螺栓的尺寸較為方便,在造型過程中,對全部的幾何關係進行全約束。利用水平、垂直、正交、相切、同心、平行等幾何關係(即拓撲關係)來定義標準件的幾何形狀,從而得到標準件的幾何約束關係描述。標註尺寸的時候,從螺栓的數據表中,選擇定一個特定的型號的尺寸參數來標註。
模型建立好了后,在模型中應該盡量使用尺寸鏈和方程,定義標準件的各個特徵要素的基本尺寸之間的參數關係。同時修改每一個標註的幾何特徵參數名為零件的尺寸代號,使該名稱和程序中驅動修改的變數名稱一致,如圖6.2,d@草圖4,其中的d就是螺栓的公稱直徑。
圖6.2
成功建立了模板文件,對模型的全部的幾何關係進行全約束,為每一個特徵參數進行了命名后,就可以在程序代碼中,打開該模型文件,並修改特徵參數,最後重新建模,就可以生成選頂尺寸的特定零件文件了。下面的代碼將簡要說明這個過程。
       打開模板文件
Set Part = swApp.NewDocument(App.Path + "\Res\六角螺栓.SLDPRT", 0, 0, 0)
       省略部分代碼
       選擇 d@草圖4 這個尺寸標註
boolstatus = Part.Extension.SelectByID("d @草圖4@" + fileName + ".SLDPRT", "DIMENSION", 0, 0, 0, False, 0, Nothing)
    修改d@草圖4 的值為LS_d / 1000 ,LS_d就是程序中螺栓的公稱直徑變數,系統運行時將為它賦值
Part.Parameter("d @草圖4").SystemValue = LS_d / 1000
    還有其他的尺寸標註,省略
    重新建模
Part.EditRebuild
這樣就生成了一個用戶選定類型與尺寸的特定標準零件。其他標準件的模板文件和螺栓基本一致,用上面的方法建立后,就建立起了模板零件庫系統。

 

Bookmark the permalink ,來源:
One thought on “solidworks二次開發