catia二次开发_CATIA零件设计二次开发:创建和修改机械设计特征

创建和修改机械设计特征

使用机械设计工厂和零件设计接口

摘要

T他的文章讨论了CAAPriCreateModify用例。本用例说明如何创建和修改机械设计特征。

  • 您将从这个案例中学到什么
  • CAAPriCreateModify案例
    • CAAPriCreateModify实现了什么
    • 如何启动CAAPriCreateModify
    • 在哪可以找到CAAPriCreateModify代码
  • 步骤
  • 总之
  • 引用

您将从这个用例中学到什么

本用例旨在帮助您在编程CATIA零件设计[1]时迈出第一步。其主要目的是创建机械设计特征。

CAAPriCreateModify 案例

CAAPriCreateModify是http://caPartInterfaces.edu说明PartInterfaces框架功能的框架。

CAAPriCreateModify实现了什么

CAAPriCreateModify用例的目标是展示如何使用机械设计工厂来实例化机械设计特征,以及如何使用零件设计的接口来修改机械设计特征。我们通过创建和修改pad特性来说明这一点。创建的零件和修改的零件保存在两个不同的文档中。更准确地说,CAAPriCreateModify:

  • 创建空的 CATPart 文档
  • 创建矩形草图
  • 基于草图创建凸台,并定义两个偏移限制值
  • 将凸台保存在CATPart文档中,该文档的路径是启动CAAPriCreateModify时传递的第一个参数
  • 修改拉伸方向并设置对称延伸特性
  • 更新凸台
  • 将修改后的凸台保存在另一个CATPart文档中,该文档的路径在启动CAAPriCreateModify时作为第二个参数传递。

如何启动 CAAPriCreateModify

要启动CAAPriCreateModify,您需要设置构建时环境,然后编译CAAPriCreateModify及其先决条件,设置运行时环境,然后执行用例[2]。

启动用例,如下所示:

  • 在Windows中

e:>CAAPriCreateModify outputDirectoryPartCM1.CATPart outputDirectoryPartCM2.CATPart

  • 在UNIX中

$ CAAPriCreateModify outputDirectory/PartCM1.CATPart outputDirectory/PartCM2.CATPart

其中:

outputDirectory

将PartCM1.CATPart和 PartCM2.CATPart 存储到的目录

PartCM1.CATPart

包含创建的凸台的文件

PartCM2.CATPart

修改后包含凸台的文件

在哪可以找到CAAPriCreateModify代码

CAAPriCreateModify用例由一个名为CAAPriCreateModify的类组成,该类位于http://CAAPartInterfaces.edu框架:

Windows

InstallRootDirectoryhttp://CAAPartInterfaces.eduCAAPriCreateModify.m

Unix

InstallRootDirectory/http://CAAPartInterfaces.edu/CAAPriCreateModify.m/

其中 InstallRootDirectory 是安装 CAA CD-ROM 的目录。

步骤

在CAACreateModify中有七个主要步骤:

1. 序言

2. 检索草图工厂和参考平面列表

3. 创建草图

4. 创建凸台

5. 检查和保存创建的凸台

6. 修改创建的凸台

7. 保存修改后的凸台和退出

现在,我们将通过查看代码来注释这些部分的每个部分。

[Top]

序言

CAAPriCreateModify 首先检查命令行是否包含三个参数。 然后,它创建一个会话,并创建一个新的 CATPart 文档,重新访问到指向名为 pDoc的CATDocument类的指针,以及指向名为 spiInitOnDoc的CATInit接口的智能指针。这是创建 CATIA 文档的通常顺序 [3]

[Top]

检索草图工厂和参考平面列表

...

// 检索草图工厂以实例化对象

CATISketchFactory_var spSketchFactOnPrtCont(piPrtCont);

// 创建草图平面

// 检索零件的参考平面

CATIPrtPart_var spPart = piPrtCont->GetPart();

CATListValCATISpecObject_var spListRefPlanes = spPart->GetReferencePlanes();

...

使用指向CATInit的智能指针,由于GetRootContainer方法作为CATIPrtContainer接口指针,可以检索文档的根容器。根容器实现创建草图对象所需的工厂接口,并允许访问文档的参照平面。

CATISketchFactory 草图对象工厂拉口

[Top]

创建草图

...

// 将 xy 平面定义为第一个草图平面

CATISpecObject_var spSketchPlane = spListRefPlanes[1];

// 使用平面实例化草图

CATISketch_var spSketch =

spSketchFactOnPrtCont->CreateSketch(spSketchPlane);

// 检索 2D 工厂以创建草图的线条和点

CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);

// 创建草图的元素

double pt1[2] = { 10., 5.},

pt2[2] = {-10., 5.},

pt3[2] = {-10., -5.},

pt4[2] = { 10., -5.};

// 编辑草图并绘制线条和端点。

spSketch->OpenEdition();

CATISpecObject_var spLine1 = spWF2DFactOnSketch->CreateLine(pt1,pt2);

CATISpecObject_var spLine2 = spWF2DFactOnSketch->CreateLine(pt2,pt3);

CATISpecObject_var spLine3 = spWF2DFactOnSketch->CreateLine(pt3,pt4);

CATISpecObject_var spLine4 = spWF2DFactOnSketch->CreateLine(pt4,pt1);

CATI2DCurve_var spCurveOnLine1(spLine1);

spCurveOnLine1->GetStartPoint();

spCurveOnLine1->GetEndPoint();

CATI2DCurve_var spCurveOnLine2(spLine2);

spCurveOnLine2->GetStartPoint();

spCurveOnLine2->GetEndPoint();

CATI2DCurve_var spCurveOnLine3(spLine3);

spCurveOnLine3->GetStartPoint();

spCurveOnLine3->GetEndPoint();

CATI2DCurve_var spCurveOnLine4(spLine4);

spCurveOnLine4->GetStartPoint();

spCurveOnLine4->GetEndPoint();

// 关闭草图编辑器

spSketch->CloseEdition();

...

正如我们稍后将看到的那样,凸台的规格之一是草图。它是一个由位于 3D 空间平面中的曲线和点的 2D 对象。 因此,为了实例化草图,我们使用表示平面 (0,x,y)的spSketchPlane,该平面从CATMathPlane创建,由于 CATIGSMFactory的 CreatePlane方法,它作为CATISpecObject检索。 . 此平面为SketchPlane 标识符。然后使用CATISketchFactory的CreateSketch方法创建草图。草图实现了CATI2DWFFactory 接口,该接口对创建 2D 几何对象的所有方法进行分组,并且为此从草图中检索到此接口的智能指针spWF2DFactOnSketch。, and 使用pt1、pt2、pt3 pt2 pt3pt1和pt4设置坐标的四个点的矩形组成草图。 CATISketch 界面定义了一组编辑草图的方法。任何草图编辑序列都以OpenEdition开始,以CloseEdition结束。 CATI2DWFFactory的CreateLine方法创建线路,CATICurve2D接口上的GetStartPoint 和 GetEndPoint 方法允许创建端点。

[Top]

创建凸台

...

CATMathDirection dirZ(0., 0., 1.); // 凸台的拉伸方向

double firstLimit = 20.;

double secondLimit = 0.;

// 检索机械设计工厂以创建凸台

CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);

piPrtCont->Release();

CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);

CATIPad_var spPadOnSpecObj(spSpecObj);

spPadOnSpecObj->ModifyDirection(dirZ);

spPadOnSpecObj->ModifyEndType(catOffsetLimit);

spPadOnSpecObj->ModifyEndOffset(firstLimit);

spPadOnSpecObj->ModifyStartType(catOffsetLimit);

spPadOnSpecObj->ModifyStartOffset(secondLimit);

spSpecObj->Update(); //生成凸台

...

现在,将创建凸台所依赖的草图。 凸台的剩余规格是草图的拉伸方向及其两个限制。CATIPrtFactory接口也由根容器实现,现在不再需要根容器。使用CreatePad方法创建键盘,草图作为参数传递给该方法,并使用该板实现自己的 CATIPad接口方法设置其规范:

  • ModifyDirection,将焊盘拉伸方向设置到 z 轴。请注意,默认值,即省略调用 ModifyDirection,是要将此方向设置为草图平面的法线
  • ModifyEndType,它使用CatLimitMode枚举的catOffsetLimit值设置要使用与草图平面的偏移设置的凸台端
  • ModifyEndOffset,用于设置此偏移量,也被命名为凸台编辑器对话框中的第一个限制
  • ModifyStartType和ModifyStartOffset,对于凸台第二个限制也是如此。因为firstLimit等于0,所以焊盘从草图平面开始。

Update方法在构建凸台时考虑了这些规范。

[Top]

检查和保存已创建凸台

...

// 检查所创建凸台的限制

if (spPadOnSpecObj->GetEndOffset() != firstLimit ||

spPadOnSpecObj->GetStartOffset() != secondLimit)

return 3;

// 将创建的焊盘保存在第一个输入路径中

char * pNomPart1 = iArgv[1];

CATDocumentServices::SaveAs(*pDoc, pNomPart1);

...

cdf6d2cc6960bacd0e4bda27f576e5ec.png

使用GetEndOffset 和 GetStartOffset的方法对凸台的实际偏移量进行简单检查,分别检索第一个限制和第二个限制的值。如果其中一个值与为创建而定义的值不同,则CAAPriCreateModify将以代码3停止,否则启动CAAPriCreateModify时,pad将保存在目录集中的CATPart文档中,作为第一个参数。这是保存文档的常见顺序[3]。

[Top]

下图显示了图形查看器和规格树中的凸台,其中使用其名称Pad.1显示该凸台。它依赖于名为 Sketch.1的草图。

[Top]

修改已创建的凸台

...

// 修改凸台改变拉伸方向并应用符号

CATMathDirection dir2(0., 1., 1.); // 凸台的方向

// 修改第一个限制类型

spPadOnSpecObj->ModifySym(1);

// 修改第一个限制

spPadOnSpecObj->ModifyDirection(dir2);

spSpecObj->Update(); // 生成凸台

...

现在,让我们修改凸台的一个规范: 使用ModifySym方法,我们设置了对称拉伸特性,并使用方法ModifyDirection dir2作为新的拉伸方向来修改方向。

[Top]

保存修改的凸台并退出

...

// 将修改后的凸台保存在第二个输入路径中

char * pNomPart2 = iArgv[2];

CATDocumentServices::SaveAs(*pDoc, pNomPart2);

// 关闭会话

::Delete_Session("SampleSession");

return rc;

}

68d886176d0d17ddf3e256dfa69345fc.png

修改后的凸台保存在存储在文件中的 CATPart 文档中,该文件的路径是启动 CAAPriCreateModify 时传递的第二个参数。下图显示经过修改的凸台,其高度现在是初始高度的两倍,并且拉伸方向不再垂直于草图平面。 然后删除会话。这是保存文档和关闭会话的通常顺序 [ 33]

总之

此用例演示了创建和修改机械特征的方法。

引用

[1]

表单特征和上下文特征概念

[2]

构建和启动 CAA V5 用例

[3]

创建新文档

历史版本

版本: 1 [2000年4月]

创建文档

[Top]


版权所有 © 2000, 达索系统. 保留所有权利.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值