史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2004-12-11, 11:47 AM   #1
mic64
註冊會員
 
mic64 的頭像
榮譽勳章
UID - 582
在線等級: 級別:16 | 在線時長:330小時 | 升級還需:27小時級別:16 | 在線時長:330小時 | 升級還需:27小時級別:16 | 在線時長:330小時 | 升級還需:27小時級別:16 | 在線時長:330小時 | 升級還需:27小時級別:16 | 在線時長:330小時 | 升級還需:27小時級別:16 | 在線時長:330小時 | 升級還需:27小時
註冊日期: 2002-12-06
VIP期限: 2007-04
住址: MIB總部
文章: 412
精華: 0
現金: 499 金幣
資產: 499 金幣
預設 用VB對SolidEdge二次開發技術研究

用VB對SolidEdge二次開發技術研究
摘 要:SolidEdge提供了多種二次開發的途徑,可以方便地開發出自己的應用程序來擴展SolidEdge的功能。兩種最常用的途徑是:採用SolidEdge數據在SolidEdge環境中進行開發,或者利用ActiveXAutomation技術擴展SolidEdge的功能。本文主要介紹採用VisualBasic開發SolidEdge的基本原理和方法,以及自定義事件驅動的Solid-Edge命令的過程。

關鍵詞:SolidEdge;VB;二次開發
中圖分類號:TP391  文獻標識碼:A
SolidEdge是由美國UGS公司開發的基於Windows環境的中端CAD軟件包,它具有強大的二維和三維繪圖功能,界面友好,廣泛應用於機械設計行業。
1 SolidEdge的基本特性
SolidEdge具有以下主要特性:
1) 具有強大的實體建模功能和直觀的Windows用戶界面;
2) 全面應用STREAM技術,通過改善用戶交互速度和效率,從而全面優化工作效率;
3) 具有強大的特徵管理器,提供的特徵設計樹同具體的實體建模是實時的動態聯接;
4) 支持Internet技術,實現數據共享;
5) 雙向並聯的尺寸驅動機制;
6) 採用標準的WindowsOLE自動化和組件對像模型(COM)技術,SolidEdge提供的應用程序接口(API)可使用戶和軟件開發者能夠以VB,VC++或其他標準程序語言對SolidEdge進行二次開發。
2 ActiveXAutomation技術與SolidEdge的對象層次結構
2.1 ActiveXAutomation技術
ActiveXAutomation是Microsoft公司提出的基於COM的技術標準,以前又被稱為OLE技術,其宗旨是在Windows系統的統一管理下,協調不同的應用程序,使這些應用程序之間相互溝通、相互控制。每個應用程序可以決定自己的哪些信息可以暴露出來,這些暴露出來的信息可以被其他程序操縱。
ActiveXAutomation技術通過在兩個程序間安排對話,達到一個程序控制另一個程序的目的;但這種對話不是雙向的,對話雙方也不是平等的。客戶程序(client)是開始要求對話的應用程序,服務程序(server)是響應client的應用程序。ActiveXAutomation的代碼在客戶程序上運行,而這些代碼所控制的動作由服務程序執行。
用VB開發SolidEdge時,可將SolidEdge理解為一個服務程序,而二次開發出來的程序為客戶程序。用戶只要在客戶程序上進行操作,客戶程序就會驅動SolidEdge完成相關的工作,用戶無需全面掌握SolidEdge。
2.2 SolidEdge的對象層次結構
對像之間一般通過被稱為對像模型或者對像層次結構的形式互相聯繫。只有很好地理解各種構成自動操作界面的層次結構,才能順利地進行SolidEdge的二次開發工作。SolidEdge的對象層次結構可以描述為自上而下的樹結構,其根節點對像通常是一個應用。SolidEdge擁有4種工作環境:零件(Part)、鈑金(SheetMetal)、裝配(Assembly)和工程圖(Draft),其中,零件和鈑金共用一個對像層次結構,而裝配和工程圖分別擁有各自獨立的層次結構。
3 用VB創建SolidEdge命令
3.1 引用SolidEdge類型庫
首先必須在VB的環境中引用SolidEdge有關類型庫,才能通過ActiveXAutomation訪問SolidEdge提供的主要對象。引用類型庫的方法:在VB的集成環境中,在「工程」菜單中選擇「引用」命令,彈出如圖1所示的對話框,將所需要用的庫選中即可。

3.2 添加SolidEdge命令
如果需要創建一個自定義的命令,可以在VB中使用SolidEdge提供的自定義命令控件。方法:從「工程」菜單中選擇「部件」選項,將SolidEdge的有關控件引入到工程中。SolidEdge提供以下3種控件。1)SolidEdgeCommandControl:命令控件;2)SolidEdgeMouseControl:鼠標控件;3)SolidEdgePartViewerControl:零件瀏覽控件。
當在工程中加入上述控件後,在VB的工具箱中會加入對應控件的圖標。
3.3 添加SolidEdge命令例程
下面以創建一個用於顯示當前光標所在位置的坐標的簡單命令為例,說明創建命令的過程。
1) 製作主對話框,在窗體中分別放置文本框、標籤、命令按鈕以及SolidEdge命令控件,如圖2所示。
2) 從「工程」菜單中選擇「添加模塊」選項,添加一個模塊。
3) 從「工具」菜單中選擇「添加過程」選項,在剛建立的模塊中加入一個過程,並命名為Main,如圖3所示,點擊「確定」生成程序框架。
4) 從「工程」菜單中選擇「工程屬性」,彈出工程屬性對話框,如圖4。所以在「通用」標籤中,將工程類型設為ActiveXEXE,啟動對像設為SubMain.
5)修改命令控件igConnand1的Activate事件,程序代碼為
PrivateSubigConnand1Activate()
CoordinateForm.show
EndSub
6)修改命令控件igConnand1的Deactivate事件,程序代碼為
PrivateSubigConnand1Deactivate()
CoordinateForm.Hide
EndSub
7)從「工程」菜單中選擇「添加類模塊」用於創建一個新類,這個類允許SolidEdge連接到程序。
8)修改新類的Terminte事件用於卸載程序主對話框,程序代碼為
PrivateSubClassTerminte()
UnloadCoordnateForm
EndSub
9)在新建的類中加入一個過程:從「工具」菜單中選擇「添加過程」用於創建一個新的子程序,將其命名為CommandInitialize,加入下面代碼,設置命令控件的命令特性為BasicCmd。
PublicSubCommandInitialize(BasicCmdAsObject)  SetCoodinateForm.igCommand1.Command=BasicCmd
EndSub
10)從「文件」菜單中選擇「製作.exe」,編譯生成ActiveXAutomation程序。
11)程序測試:在SolidEdge中,選擇「Tool」菜單的「Macro」選項。在彈出的對話框中,打開並運行剛才編譯好的EXE程序,結果如圖5。


4 結 語
SolidEdge二次開發的編程工具通過使用ActiveXAutomation技術使用戶快速地自定義或自動操作SolidEdge。使用這些工具,可以修改或增加一些標準的命令以使SolidEdge能夠適應用戶的需求,還可以減少很多重複性的工作,從而節省時間,提高工作效率和設計質量。
mic64 目前離線  
送花文章: 0, 收花文章: 21 篇, 收花: 61 次
回覆時引用此帖
舊 2004-12-17, 11:08 AM   #2 (permalink)
長老會員
榮譽勳章
UID - 18176
在線等級: 級別:27 | 在線時長:890小時 | 升級還需:6小時級別:27 | 在線時長:890小時 | 升級還需:6小時級別:27 | 在線時長:890小時 | 升級還需:6小時級別:27 | 在線時長:890小時 | 升級還需:6小時級別:27 | 在線時長:890小時 | 升級還需:6小時級別:27 | 在線時長:890小時 | 升級還需:6小時級別:27 | 在線時長:890小時 | 升級還需:6小時
註冊日期: 2002-12-27
住址: 桃園
文章: 369
精華: 0
現金: 1018799 金幣
資產: 1038940 金幣
預設

thanks for sharing
mach12 目前離線  
送花文章: 46, 收花文章: 26 篇, 收花: 37 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 01:34 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1