我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > Solidworks

基于ActiveX自定義屬性插件的開發與應用

時間:2011-04-08 14:04:49 來源:未知

 0 引言

  SolidWorks是基于Windows平臺的三維機械設計軟件,在國內已得到廣泛使用。該軟件具有全面的實體建模功能,可快速生成完整的工程圖,其尺寸驅動功能使圖樣的修改更加方便,此外還可以進行模具設計、工程分析以及產品數據管理等。總之,SolidWorks功能強大、技術創新,且易學、易用。為了更好地使用軟件,以VB為開發工具,利用SolidWorks OLE應用程序開發接口API函數,實現了SolidWorks中自定義屬性插件的開發,方便了SolidWorks用戶的設計工作,提高了設計效率。

  大多數工程圖的標題欄中應該包括一些基本的設計信息,如零件名稱、零件代號、材料以及設計者等,其中零件名稱、零件代號、備注等信息還要出現在裝配圖的材料明細表中,這些內容若在工程圖中一一進行編寫和修改,其工作量大且不利于保證零件三維圖與工程圖設計信息的一致性。

  SolidWorks是一個全相關的機械設計軟件。其三維模型文件中的設計數據,如尺寸、注釋和文件屬性等內容與工程圖相關。因此,在處理工程圖標題欄和材料明細表中的設計數據時,可以將這些內容保存在三維模型文件中,使其自動顯示在工程圖相應的位置上,當需要對工程圖中的內容進行修改時,直接修改三維模型文件中的相應數據即可實現,這樣不僅保證了設計信息的一致性,還可以提高設計效率。然而即使這樣,也十分繁瑣,如果能開發一個控件,與solidWorks軟件融為一體,則可以達到事半功倍的效果。

  1 Active Ocx控件的開發

  為了提高效率,以VB為開發工具,筆者開發了一個Active Ocx控件,并用SolidWorks“宏”操作來引用該控件,從而在SolidWorks中生成一個Properymanagerpage,并利用其中的控件添加自定義屬性。程序運行界面如圖1所示。

   

 

  圖1 程序運行界面

  該程序可實現的功能如下。

  1)如果文件只有一個默認配置“Default”,則自定義屬性添加在文件的“自定義”欄,如果文件有兩個及以上配置,則屬性根據配置不同添加在“配置特定”欄。

  2)添加的項目包括作者、序號和名稱等,具體如圖1所示。

  3)選擇不同的配置名稱,則相應屬性信息顯示在對應的文本框內。

  Active Ocx控件的開發步驟為:首先在VB中,新建工程,選擇ActiveX控件,然后“確定”,并引用SolidWorks類和SolidWorks常數類,修改工程名稱為propertymgr,并設置此項目為工程兼容,在名稱欄輸入“shuxing.ocx”,之后如圖1所示在用戶控件UserControll上添加各個控件。

  1.1獲得SolidWorks對象

  獲得SolidWorks對象,即獲得與SolidWorks的接口,這是SolidWorksAPI最高級別的對象,可以控制SolidWorks文件的建立、打開和關閉等操作。代碼如下:

  

 

  1.2獲得文件名稱與配置名稱

  SolidWorks API提供了按照配置名稱訪問自定義屬性的方法CustomInfO2(讀取自定義屬性的值)、DeleteCustomInfo2(刪除指定的自定義屬性)、AddCustomInfo3(添加自定義屬性的名稱和參數值),這些方法都要求指定文件的配置名稱。因此為了對當前模型文件和當前配置設定自定義屬性,必須首先要獲得當前配置的名稱,利用GetConfiguration-Names()方法可以獲得當前模型文件配置的名稱,并利用GetConfigurationCount()方法獲得當前配置的數量。代碼如下:

  

 

  1.3訪問自定義屬性

  本程序設計根據配置不同而分別添加不同的自定義屬性。主要屬性配置方法如下。

  1)CustomInfo:如果只有一個默認配置,將獲取當前文檔自定義欄中的自定義屬性的值。

  

 

  其中,“序號”為自定義屬性的名稱(以下同)。

  2)DeleteCustomInfo:如果只有一個默認配置,將刪除當前文檔自定義欄中的自定義屬性的值。

  

 

  3)CustomInfo2:如果有兩個及以上配置,將獲取當前文檔指定配置的自定義屬性的值。

  

 

  其中,configname為配置名稱。

  4)DeleteCustomInfo3:如果有兩個及以上配置,刪除當前文檔指定配置的自定義屬性的值。

  

 

  5)AddCustomInfo3:如果有兩個及以上配置,向當前文檔中指定的配置添加自定義屬性及值。

  

 

  其中,swCustomInfoNumber為自定義屬性的類型;UserControl.Text2.Text為自定義屬性的具體值。

  主程序代碼完成后,就可以點擊“文件→生成shuxing.ocx”,完成Active Ocx控件的開發。

  2 在SolidWorks中運行

  要在SolidWorks中運行上面生成的控件,需要由“宏”程序調用。利用“宏”在solidWorks界面中添加指定的應用程序后,就如同S0lidWorks調用了自身的功能一樣。

  2.1建立“宏”程序

  建立“宏”程序,首先建立與solidWorks的連接,并判別當前文檔是不是零件或者裝配文件,如果是,則調用shuxing.ocx;如果是工程圖文件,則顯示錯誤。

  部分代碼如下:

  

 

  其中CreateFeatureMgrControl為創建特性管理器視圖方法,”propertymgr.UserControll”為對8huxing.ocx控件的調用。

  2.2指定“宏”操作

  在SolidWorks中可以指定宏命令的文件位置,并定制工具欄,將所執行的宏操作按鈕添加到指定的位置上。具體步驟如下。

  點擊菜單“工具→自定義→命令→宏”,選擇“新建宏按鈕”,拖動圖標到SolidWorks任意工具欄,再按照圖2所示的設置即可。

   

 

  圖2 指定“宏”操作

  設置完成后,點擊設置好的圖標,就可以在SolidWorks運行該程序(運行界面見圖1)。

  3 結語

  筆者開發的Active Ocx控件,可以用“宏”程序調用。以特性管理器頁面的方式來顯示程序,可以使程序與SolidWorks界面結合緊湊,方便使用。