暢談SOLIDWORKS與API 二次開發

日期:2022-05-24 11:54:29 發布者: ICT-Vincent 瀏覽次數:

API為Application Program Interface英文縮寫, 意為應用編程接口,它的意思其實在網上很容易查得。我的理解是: 和操作使用軟件本身的功能一樣,屬於應用手法的一種。一般的操作是:通過鼠標點擊,鍵盤鍵入數字操作它現有的按鈕,命令;而API 則是通過編程語言代碼,對現有的功能進行一定的控制,形成新的命令或功能,即利用編程代碼來操控軟件的現有功能,也屬於一種應用的方法。例如:沿著長度(250mm)方向, 間隔為50mm均布4個孔,桌面木板的打孔,我們用SOLIDWORKS的建模,非常的簡單。

【什麼是API 】
API為Application Program Interface英文縮寫, 意為應用編程接口,它的意思其實在網上很容易查得。我的理解是: 和操作使用軟件本身的功能一樣,屬於應用手法的一種。一般的操作是:通過鼠標點擊,鍵盤鍵入數字操作它現有的按鈕,命令;而API 則是通過編程語言代碼,對現有的功能進行一定的控制,形成新的命令或功能,即利用編程代碼來操控軟件的現有功能,也屬於一種應用的方法。例如:沿著長度(250mm)方向, 間隔為50mm均布4個孔,桌面木板的打孔,我們用SolidWorks的建模,非常的簡單。

 

圖1

 步驟:1. 繪制孔的草圖,標尺寸,大小以及定位;2.產生開孔特征:拉伸切除;3.陣列,按照長度250mm, 間隔50mm, 算出需要四個孔。
掌握其中的數學和邏輯,利用數學的方法表達邏輯,就可以把以上3個步驟合成1個步驟。通過指定長度值和方向,孔徑,就能一次過產生所需要的孔,並且可以應對更多的情況,免除重復而瑣碎的工作。

【有什麼好處 】
由於SolidWorks是市場上主流的三維參數化工業設計軟件之一,它的功能是通用的,是面向廣大的市場用戶而開發和更新的,而我們深入探討具體某些行業,某些企業的特殊的行業規範,行業習慣,人們的行為習慣(同一公司也好,中國人跟美國人,習慣上也會有很大的差異),為了讓SolidWorks更加貼近這些習慣和規範,應用起來更加得心應手,效率更高,往往就可以考慮通過API的手段來強化這一點。例如:我們為了強化SolidWorks在塑膠模具和衝壓模具的設計習慣,便有了廣為大家所認識的:3DQuickMold, 3DQuickPress ,基於SolidWorks 平台的插件工具(百度一下便可了解詳細)。又或者例如辦公家具的設計,屬於規則化的設計,常見的工作便是重復瑣碎的基本建模,則可以通過API開發出專門的設計界面,加快和規範設計的工作,提高效率。

 

圖2 基於SolidWorks開發的智能辦公桌設計界面


【如何判斷有沒有API 的可能性】

1. 前段提到,API就是利用編程代碼來操控軟件的現有功能,也屬於一種應用的方法。我們判斷是否可以利用API來實現,首先就要看通過手動的方法,評估現有的功能,是否能做出最終的結果。簡單地說,就是手動操作SW能實現的結果,中間會有較多的直接或間接的方法,都很有可能通過API將其自動的實現。最常見的是使用API進行規則化的建模自動化設計,把手動操作的工作變為自動,規範化。

2. 對於一般的SW操作,而無法實現的呢?也一定程度上,通過調入外部其他程序的計算核心或技術嵌入至SW中進行API。這種API手法,極為少見,對編程技術的要求非常高。例如,3DQuickPress 則是調用了OpenGL圖形顯示技術,在SW中開發出專屬的衝壓件展開和排帶排布設計的圖形,而這種圖形,一般的操作SolidWorks是怎麼做也無法做出來的。

【誤區】
1. 以為錄制宏是用來記錄建模過程的,錄屏幕視頻差不多?
錄制宏,其實是將鼠標點擊的動作通過代碼的形式記錄下來,讓開發人員從中編輯以及加入其他的代碼進行開發和擴充。屬於API常用的方法。

 

圖3 SolidWorks自帶的VBA編程界面


2. 以為API就是錄制宏而已?
錄制宏,其實只是其中一種方法,而且較為簡單,很多入門的人士都會采用。我個人認為單靠錄制宏的API,其實屬於比較淺層的開發。真正的API, 關鍵在於“I”, Interface接口, 理解SolidWorks的接口方法,函數以及相關的成員。需要深入了解SolidWorks API幫助文件。

3. 編程寫代碼就是API 了?
曾經有個朋友來信問到:“我有二次開發的經驗,你告訴我怎麼在SW宏裡讀取TXT數據就好,我以前的軟件上可以,不知道SW怎麼弄?”

回答:其實二次開發的概念,什麼軟件都一樣。唯一不同,就在於Interface接口的差異。而那位兄台自以為天下間的二次開發都一樣的,而讀取TXT數據,其實就是一般的編程技術,跟SolidWorks一點關系都沒有。

【如何學習和入門】

a) 授課培訓?
答:國內很少看到面向一般民眾的SolidWorks 二次開發培訓課程。筆者覺得,API二次開發這個東西是沒法培訓的,主要在於查幫助,查函數,不斷的測試而已。

b) SolidWorks二次開發之前,具備編程的知識和對SolidWorks有相當的了解。不然沒法評估是否可以進行API,或者API所要控制的SolidWorks現有功能的“行為”不了解。

c) 入門:自帶的在線指導教程,可以先入門了解一下。只要有SolidWorks軟件,你就能初步了解它的API了。 

 

圖4 入門API的最快捷的資料


d) 購買書籍學習入門和見識範例。百度一下,就能找到很多書面的教材,或者聯系SolidWorks具備資格的代理商,購買官方API教程。

e) 學會查幫助,找到API 中,I=Interface, 所謂的接口。這才是真正的API二次開發。要懂得查詢SolidWorks中各個對像,層次的Member/Method/Properties等接口。幫助文件裡還有很多線程的API Sample範例,可以參考其做法,結合你的實際需要,對其進行改寫,方便你的學習和開發。

f) 正版用戶,可以在www.SolidWorks.com 注冊門戶登陸:Customer Portal,然後進入官方的API 論壇,進行提問,這裡有來自全世界的SolidWorks API高手回應你的提問,並以郵件的方式提醒答復,時效性非常好(當有任何人回復你的帖子的時候,論壇的服務器會發送郵件通知你,這也是正版用戶專屬得到的好處之一)。甚至有時候,還會直接有現成的代碼可以引用,相當不錯的。當然,你需要具備一定的英文書寫和表達能力,老外可不認什麼中文。筆者很喜歡使用這裡的資源,而且幫助解決了不少的API問題。

  •  SolidWorks正版序列號注冊用戶賬號(使用一個電子郵箱),然後登入(必須是正版序列號才可以)。
  •  進入API forum(API論壇)
  •  然後就可以在此和來自全世界的SW API高手交流了。


最後,有以下的截圖詳細告訴大家如何進入SolidWorks 的二次開發論壇:

 

圖5 

 

圖6

 

圖7

 

圖8

 

圖9

 

圖10

  • 點贊
  • 收藏