SolidWorks二次开发类层次结构

SolidWorks 2008 API是由组成组成SolidWorks 2008软件的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 2008的对象都采用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内部数据结构,2008中模型文件由点 线 面 体 等元素组成
                               分别由Body2 CoEdge Face2 Vertex 等对象管理
@特征对象
    描述程序提供的特征操作,与相应操作对应

@草图对象
    管理所有草图元素 如 圆弧 长方形 样条曲线等 草图由以下对象表示,通过这些对象可以获取和修改草图数据

对象体系


        
SldWorks 根类 所有对象父类 访问其他接口都要通过它
功能:
    程序操作:退出
    文档操作:创建新文件,打开,关闭,退出
    交互界面管理:命令,工具栏,属性页,
    程序窗口管理:切换当前活动文档,修改窗口显示模式
    创建开发人员自定义属性
'最重要的对象,通过它才能建立联系,都应该在入口函数中获取指向当前SolidWorks2008应用程序的SolidWorks指针,以访问其他接口

SldWorks 
--------------------------------------------------------|CustomPropertyManager    /*一般属性*/
Environment        /*环境*/                                |MathPoint                /*数学点*/
Frame            /*框架*/                                |MathTransform            /*数学变换*/
AttributeDef    /*属性定义*/                            |MathUtility            /*数学效应?*/
Modeler            /*模型*/                                |MathVector                /*矢量*/
SWPropertySheet /*属性表单*/                            |PropertyManagerPage2    /*属性表2*/
ModelDoc2
    |---------------------------'所有文档模型父类 封装了通用的 属性 方法--文档打开,关闭,打印,保存,提供了直接访问三种文档对象的方法
    |---------------
    |--PartDoc        /*零件文档*/
    |--AssemblyDoc    /*装配体文档*/
    |--DrawingDoc    /*工程图文档*/
    |---------------
        |
        |Feature        /*特征*/ 
            |Annotation        /*注释*/
                |FeatMgrView    /*特征管理器视图*/
         ModelView        /*模型视图*/
         Dimension        /*尺寸 特征 标注?*/
         Sketch            /*草图*/
         DesignTable    /*设计表格目录?*/
         Attribute        /*属性*/
         SelectionMgr    /*选择管理器*/-----------'选择管理对象,用于管理用户的管理造作,通过它可以获得指向选择的元素
         LayerMgr        /*图层管理器*/
         Configuration    /*构造轮廓*/
         ModelDocExtension        /*模型延展?*/
         ConfigurationManager    /*模型管理*/
         ModelViewManager        /*模型视图管理*/
         SketchManager            /*草图管理*/

    PartDoc /*零件对象*/*---------------'创建实体或特征/执行零部件压缩解压/获取零部件的三角片数据/获取实体指针
    |--LightDialog /*光照*/
    |--Body2------------------------------/*模型对象*/
        |--Face2
            |--Surface
            |--Loop2              /*环?*/
            |    |--CoEdge
            |    |    |--Edge          /*边*/
            |    |        |--Curve  /*曲线*/    
            |    |        |--Vertex /*顶点*/
            |    |--Edge
            |        |--Curve
            |        |--Vertex
            |--Edge
                |--Curve
                |--Vertex

    AssemblyDoc/*装配对象*/--------------------'导入零部件/添加/取消装配关系/隐藏/显示零部件
    |
    |--LightDialog
    |--Component2    /*元件*/
    |    |--Body2    /*实体*/
    |--Mate2
    |    |--MateEntity2    /*链接实体*/
    |    |--MateLoadReference /*链接装配?*/
    |--AdvacedSelectionCriteria /*高级选择标准?*/

    DrawingDoc/*工程图文档*/--------------------'工程图文档的创建 删除 对齐等
        |--LightDialog
        |--Sheet
        |    |--BomTable    /*bom表*/
        |--View
            |--Annotation /*注释*/
            |--Gtol            
            |--Note            /*管理文本注释--标记?*/
            |--DatumTag        /*数据标签?*/
            |--DatumTargetSym /*...数据目标..?*/

Feature /*特征对象*/
|--MidSurface2 /*中间表面*/
|--RefAxis/*...轴线*/
|--ReferenceCurve/*引用曲面*/
|--RefPlan/*...面*/
|--ChamferFeatureData2/*斜面特征数据*/
|--CircularPatternFeatureData/*环形样式特征数据*/
|--DraftFeatureData2/*草图特征数据*/
|--DomeFeatureData2/*圆顶特征数据*/
|--ExtrudeFeatureData2/*挤压特征数据*/
|--LinearPatternFeatureData/*线性样式特征数据*/
|--LoftFeatureData/*顶层特征数据*/
|--MirrorPatternFeatureData/*镜像样式特征数据*/
|--MirrorSolidFeatureData/*镜像固体特征样式*/

Sketch/*草图对象*/
|--SketchHatch/*草图入口?*/
|--SketchText/*草图文本*/
|--SketchPoint/*草图点*/
|--SketchSegment/*草图片段*/


Other Object        
Parameter        /*参数*/                    
Entity            /*实体*/
EnumBodies2        /*实体数*/    
EnumCoEdges        /*特殊?边数*/
EnumFaces2        /*面数*/
EnumEdges        /*边数*/
EnumDocuments    /*文档数*/
Enumloops2        /*环数*/
EnumComponents2 /*部件数*/
EnumDrSections    /*选择数*/
EnumSketchHathes/*草图数?*/
EnumSketchSegments        /*草图部分数*/
EnumDisplayDimensions    /*陈列规模数*/
EnumModelViews            /*模型视图数*/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_38220914

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值