Solidworks 二次開發第10課:類層次結構

SolidWorksAPI是由組成SolidWorks 軟體的COM元件提供的。

物件模型結構簡介:

SldWorks物件最為根本,有他可以直接或間接的訪問多有其他物件

部分物件只能間接地被訪問,比如SketchSpline不能獨自出現,只能存在於某種物件中,只能藉助上一級來呼叫。

另一部分API只能單獨呼叫,因為使用者介面中沒有用於互動的物件

SolidWorks類層次結構

與MFC或。NET的層次結構不盡相同,因為它們十分依賴類的繼承等,可以從類體系獲得很多好處,而SolidWorks則基於COM的API,使用介面,介面繼承,方法庫返回已知或新建的物件的介面

透過QueryInterface在介面間跳躍

QueryInterface:

IAssemblyDoc, IDrawingDoc, or IPartDoc can QueryInterface to IModelDoc2。

IEdge, IFace2, IFeature, ILoop2, or IVertex can QueryInterface to IEntity。

IBomTableAnnotation, IHoleTableAnnotation, IRevisionTableAnnotation, or IWeldmentCutListAnnotation can QueryInterface to ITableAnnotation。

IAttribute also can QueryInterface to IFeature。

ISketchArc, ISketchEllipse, ISketchLine, ISketchParabola, ISketchPoint, ISketchSpline, or ISketchText can QueryInterface to ISketchSegment。

PropertyManagerPage controls, such as IPropertyManagerPageActiveX, IPropertyManagerPageBitmap, IPropertyManagerPageBitmapButton, IPropertyManagerPageButton, etc。, can QueryInterface to IPropertyManagerPageControl。

每個SolidWorks 的物件都採用COM技術構造的,與一般COM物件有同樣的性質,都是由介面/屬性/方法/事件組成

如 PartDoc物件——管理零件文件的物件

提供的SolidWorks API介面為IPartDoc。

屬性3個 MaterialIdName,MaterialPropertyValues和MaterialUserName,對應PartDoc物件的材質ID,材質值和材質名稱

方法 很多 比如 FirstFeature() GetMaterialPropertyName2() 訪問這些方法的唯一途徑是就是透過介面IPartDoc

事件 filesaveNotify(檔案儲存事件) DestroyNotify(檔案退出事件)

SolidWorks物件結構

透過面向物件組織所有介面物件

@應用程式物件

SldWorks ModelDoc2 PartDoc(零件) AssemblyDoc(裝配圖) DrawingDoc(工程圖) -對應三種檔案型別

ModelDoc2物件提供了這三種檔案型別共有的供能 比如列印檔案儲存 包含後三者

所以這幾個介面可以透過QueryInterface查詢

PartDoc AssemblyDoc DrawingDoc 又是多個其他SolidWorks物件組成

PartDoc 由 LightDialog物件(描述燈光環境) Body2物件以及隸屬於Body2的多個物件(用於描述幾何資料)組成

AssemblyDoc 由 LightDialog 物件 Component2物件(描述裝配體的組成部件) Mate2物件(描述裝配關係)組成

DrawingDoc 由 LightDialog 物件 Sheet物件(描述Bom表-物料清單-母件與所有子件的從屬關係、單位用量及其他屬性。) View物件及下面的多個物件(描述工程圖內容)

@配置檔案物件

管理零件中不同模組(零件文件模式)與裝配體中不同零件(裝配體文件模式)的狀態。

零件文件模式下,可將複雜特徵設定成壓縮模式

在裝配體文件模式下,可將其中一個或多個零件設定成壓縮模式

@事件物件

2008支援的物件事件型別有

AssemblyDoc事件 DrawingDoc事件 FeatMgrView事件 ModelView事件 PartDoc事件 SldWorks事件 SWPropertySheet事件

開發人員可截獲事件並根據需要加入相應的功能

@註解物件

管理文件的註解,如在程式中給零件新增文字註釋由Note物件管理

@模型物件

描述SolidWorks內部資料結構,模型檔案由點 線 面 體 等元素組成

分別由Body2 CoEdge Face2 Vertex 等物件管理

@特徵物件

描述程式提供的特徵操作,與相應操作對應

@草圖物件

管理所有草圖元素 如 圓弧 長方形 樣條曲線等 草圖由以下物件表示,透過這些物件可以獲取和修改草圖資料

物件體系

SldWorks 根類 所有物件父類 訪問其他介面都要透過它

功能:

程式操作:退出

文件操作:建立新檔案,開啟,關閉,退出

互動介面管理:命令,工具欄,屬性頁,

程式視窗管理:切換當前活動文件,修改視窗顯示模式

建立開發人員自定義屬性

最重要的物件,透過它才能建立聯絡,都應該在入口函式中獲取指向當前SolidWorks應用程式的SolidWorks指標,以訪問其他介面。