2。1。4 宏
宏是指一系列语言命令的集合,相当于 AutoCAD 中的脚本文件。在绘制图 形之前,可以打开 SolidWorks 中的宏录制,生成的宏代码中包括了用户在执行
界面中的动作操作,其中有很多对 API 的调用,然后可以使用 SolidWorks 宏重 新执行这些操作[7]。我们也可以通过简单修改宏代码,以实现自己预期的功能, 可以减少编译量。在写任何代码前,都可以记录宏代码来作为程序的基础,即使 是对最先进的程序编译也是有用的。
2。2SolidWorks 的 API 函数介绍
2。2。1SolidWorks 的对象模型相关术语
SolidWorks 的对象都是用类定义封装和继承了具有相同结构和操作的一组 对象。类是一种抽象数据,利用对象把实体模型的相关特征和属性操作封装在一 起,使用者可以根据实体的外部特征用自然的方式模仿其结构和行为;继承体现 了对象类实现可重复使用和可扩充性的重要特征。一个对象类可以派生出另一个 含特定因素的子类(SubClass),这个对象类也被称为是特定对象类的父类
(SuperClass)。子类可以定义自己特有的操作属性,也继承了来自父类的所有 属性与操作。继承性体现了集合包含关系,即子类对象是父类对象实例集合的自 己,是对相类的特例化关系的体现。
2。2。2SolidWorks API 对象介绍
SolidWorks 完全支持 OLE 标准,实现了 OLE 自动化。在这个 OLE 服务器 中,SolidWorks 为用户提供了众多 OLE 对象。用户可以查看 SolidWorks API 帮 助来了解这些对象所拥有的方法、属性和事件,并在相关应用程序中使用这些 OLE 对象操作功能,实现自己在开发的应用软件中生成线形、建立实体、访问 表面性质等几乎所有的 SolidWorks 的软件功能。
图 2-1 中所示 SolidWorks API 对象模型的一个多层次对象网络[17]。SldWorks 对象是 SolidWorks API 中最高级别的对象,它可以直接或间接地访问所有其他的 对象。其中封装的方法众多,例如 OpenDoc2、CloseDoc、ExitApp,其下面还有 很多子类,例如 Environment、ModelDoc、Frame、ModelDoc 下面又派生了 PartDoc、 DrawingDoc、AssemblyDoc 等子类[18] 。 本文中主要应用了 ModelDoc 对象和 PartDoc 对象,因绘图操作和实体建模操作大部分都寄存在这两个对象中。如 ModelDoc 中的 CreateLine2(画直线)、SelectByID(选择)、CreateCircle2(画 圆),PartDoc 中的 FeatureExtrusion(拉伸)、FeatrueRevolve(旋转)[19]。上述文献综述
命 令 既可 以 直 接调 用 , 也可 以 间 接通 过 SkechManager ( 草 图管 理 器 )、
FeatureManager(特征管理器)调用。
图 2-1 SolidWorks API 对象结构
Environment 对象:用于查看文本与几何关系,并将几何关系转换成符号;
Frame 对象:与 SolidWorks 下拉菜单操作有关,用来修改、查看、增添弹出
菜单;
Modeler 对 象 : 通 常 使 用 下 属 命 令 CreatBodyFromFaces 生 成 临 时 体
(Temporary Body),为临时体对象提供便于显示的界面;
AttributeDef 对象:为实体生成附加属性,生成文件在 SolidWorks 文件夹下;
SwpropertySheet 对象:允许应用程序在某些由 SolidWorks 生成的属性表格 中添加使用记录;
ModelDoc 对象:由 Sldworks 直接派生的子对象,存在于模型层。ModelDoc 对象的下面包括了 PartDoc(零件对象)、Assemblydoc(装配体对象)、Drawingdoc
(工程图对象),这三种是主要的零件类型,其余还包括 Feature、Annotation、 FeatMgView、Sketch、DesignTable 等对象;
PartDoc 对象:零件对象提供了一系列与零件生成命令相关的函数,如:生 成零件体特征、获得零件范围、根据输入的名称查询实体等;