SolidWorks API 對象模型和對象關(guān)系
SolidWorks?API 對象模型包含數(shù)百個接口和數(shù)千個方法和屬性。所有接口都有允許通過另一個對象方法或?qū)傩栽L問某些對象。
本節(jié)包含解釋 SolidWorks?API 中的類和接口之間的關(guān)系、名稱約定和可訪問性的文章。有關(guān)詳細(xì)信息,請按照本節(jié)中的文章進(jìn)行操作。
SolidWorks API 對象模型類層次結(jié)構(gòu)圖
請訪問網(wǎng)站(https://www.codestack.net/solidworks-api/getting-started/api-object-model/class-diagram/)以獲得更好的使用體驗,本文只為翻譯,并不提供文中所述圖片上的交互式操作和超級鏈接跳轉(zhuǎn)(重定向)功能。
下圖顯示了 SolidWorks API 對象模型中接口之間的關(guān)系。這不是一個完整的類層次結(jié)構(gòu),而是最常用的方法和接口的表示。
圖表是交互式的,可以使用鼠標(biāo)滾輪放大和縮小,也可以使用鼠標(biāo)右鍵或左鍵平移。右下角的導(dǎo)航控件允許放大和縮小以及縮放以適應(yīng)。

所有框和箭頭都是可點擊的,并將重定向到有關(guān)特定方法、屬性或接口的信息頁面。


圖例

如何使用SolidWorks?API 幫助中的“訪問器”(Accessors)
某些接口的可訪問性可以在 SolidWorks API 幫助文檔中特定接口的“訪問器”部分找到。
例如,下面的快照是 IAnnotation 接口的訪問器部分。https://help.solidworks.com/2023/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IAnnotation.html

這意味著可以通過 IAnnotation::GetNext3 方法或 IAnnotationView::Annotations 屬性或此列表中的其他屬性或方法訪問?IAnnotation 接口。
某些接口可以顯式或隱式地從一個接口強制轉(zhuǎn)換為另一個接口。例如,IModelDoc2 表示 IPartDoc、IAssemblyDoc、IDrawingDoc 接口的“父接口”(盡管沒有直接繼承)。
這意味著父對象和特定對象都將指向內(nèi)存中的同一對象。
VBA
VB.NET
C#
C++
帶 I 和不帶 I 的 SolidWorks?API 方法、屬性與對象之間的區(qū)別
SolidWorks API 幫助中的方法、屬性和對象(接口)存在 2 個版本:
開頭是I(例如ISldWorks,IModelDoc2,IAnnotation,ISldWorks::IActiveDoc)
開頭沒有I(例如SldWorks,ModelDoc2,Annotation,SldWorks::ActiveDoc)
這兩個可替代項對應(yīng)于相同的對象或方法。主要區(qū)別在于:
帶 I 版本的方法、屬性和對象不公開事件Events。
以下快照顯示聲明為 SldWorks 的變量的可用成員,其中事件Events(閃電符號)可用。

以下快照顯示聲明為 ISldWorks 的變量的可用成員。其中沒有可用的事件。

帶 I 版本的方法通常返回類型安全的接口,而不是對象或 IDispatch。這意味著在編譯時強類型安全的語言(如 C#)不需要顯式強制轉(zhuǎn)換:
在 SolidWorks API 中方法、屬性和接口的命名
SolidWorks API(和 SolidWorks?)都是向后兼容的,這意味著舊版本的 API 與較新版本的 SolidWorks?兼容。這意味著在發(fā)布新版本時,不應(yīng)更改 API 方法的簽名和行為。為此,SolidWorks?引入了方法和接口名稱的修訂系統(tǒng)。每當(dāng)新版本的 API 可用時,方法名的取名規(guī)則為【方法名 + 最新版本?+ 1】。例如,ISldWorks::OpenDoc6 是 ISldWorks::OpenDoc5 方法的較新版本。而IModelDoc2是IModelDoc接口的較新(和當(dāng)前)版本。
過時的(Obsolete)方法和接口
盡管 SolidWorks?是向后兼容的,并且該方法的所有版本都應(yīng)該有效,但建議使用與 SolidWorks?目標(biāo)程序應(yīng)支持的最低版本兼容的最新版本。
主要原因是:
過時的方法(或任何備注和說明)可能在 API 文檔中不可用。因此,可能需要查看以前版本的 API 幫助文檔。

并不總是知道官方添加新版本替換方法的原因是什么。這可能是由于舊版本方法中存在某些錯誤(或行為)而發(fā)生的,如果使用此方法,可能會給程序帶來未知的副作用。
在出現(xiàn)問題的情況下,向支持人員請求幫助可能會有問題,因為第一個明顯的建議是將方法升級到新版本,因為舊方法可以被視為“保修無效”。
文章翻譯自https://www.codestack.net/
僅供學(xué)習(xí)使用。?