PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

Catia二次开发源码分享:创建圆柱体实例

[复制链接]

2018-2-22 13:28:03 2825 0

admin 发表于 2018-2-22 13:28:03 |阅读模式

admin 楼主

2018-2-22 13:28:03

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
获得零件指针2 `+ z" ~3 l! w4 T# h
// 获得文件指针
7 b5 R. C5 [5 y7 g1 OCATDocument * pDoc= NULL;
. }3 k+ d, s# A7 d9 C2 |CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();, w+ D1 G- N; F5 i2 N2 I  ^
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
- `, U' Q5 I3 v3 hCATInit_var spInitOnDoc(pDoc);4 h( R; P7 q8 N
// 得到零件根容器
7 x7 I% X" p, F+ L
3 n3 }% D8 h% z% ?2 o6 J# i1 bCATIPrtContainer * piPrtCont =* i. [6 {+ D, D. M
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");  ^! i3 w' @0 K- N; s; g1 {
// 得到零件指针
+ F# Q8 D! P$ ~. ?4 L* S- KCATIPrtPart_var spPart = piPrtCont->GetPart();
* u0 A8 t/ J0 O" x4 _: u& g) q, I; Y
/ y3 H/ P. M: O创建草图
" y4 _( n8 |) @- k1 g* i//初始化草图工厂
1 H& ~, m+ g. y9 t# y* lCATISketchFactory_var spSketchFactory(piPrtCont);  m2 _3 ?( D8 a, k$ R  ^
//在XY plane 上创建草图
8 K1 d! T; d  R3 y: B# YCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));8 q. B" J0 j  B' M
- y# f* A9 L2 h" X, @
创建草图几何
' }3 j" {! h; I* [//首先声明编辑草图
9 Q+ J& _% j4 P1 @$ T, m% r4 Z! `: ospSketch->OpenEdition();
, e" \: r* k: _5 g8 sCATI2DWFFactory_var sp2DFactory(spSketch);
# W# z& I5 M0 ^4 W& x. J//这里表示圆心点
/ _* o% g/ N9 j: B, i: Xdouble iPoint[2] = {0.,0.};
8 r3 n' j. F& p& w. M2 u//下面创建圆圈' l, i5 _2 h" @- E
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
2 h  Z5 L, z1 X: P/ g; D+ pCATI2DCurve_var spCurveOnLine(spLine);
; K4 f- g3 s" `1 ?) C, k1 qspCurveOnLine->GetStartPoint();
. _" z& u4 J$ s9 uspCurveOnLine->GetEndPoint();
, }9 ~5 Z, V! U& `* C//然后退出草图:5 y# `5 b+ B4 g  B
spSketch->CloseEdition();
; [* N; N( G& U3 g( C: Y8 a' w: R; k# y& t/ v. }: Q/ m1 x' M/ v
  T% |9 c; X2 o; e6 w8 e; |" p' n
创建约束
; e+ h. S/ T" K. u- P: V7 VCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);2 _  a# j! j* B5 z/ I
//定义spLine1 的半径约束$ M3 H: u, W$ i
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
7 X! m+ J1 b  ?. U' lNULL, Cst2DType_Radius, 0, 0 );
0 A9 m* z. o/ U//定义spLine1 与坐标原点的同心约束
9 b( k2 {' r: OCATI2DAxis_var spSupport = NULL_var;
* s; `* T5 B  L" Q3 E7 L. u2 C! cspSketch->GetAbsolute2DAxis(spSupport);
+ h/ x/ C( x. \1 u' B# [
) l# K  |9 r' \" {/ l6 i1 V! espConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
: }- q, O% D9 zNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
' Q7 X) s1 a( e  r$ ~& g  v+ p( ^" T3 j0 x
) i6 }, R0 d. h
创建凸台4 E4 p3 _$ e( b! i" f
// 从编辑框中获得援助的高度
0 w; V, c/ l1 f6 o8 {4 Zdouble firstLimit = _Editor004->GetFloatValue();1 `& z! c* ~! k# n5 y7 R
double secondLimit = 0.;" [, A8 L! p' J7 K
//圆柱的轴向方向为Z 轴方向3 R, A* n* P; Y6 h& M0 {3 i3 Z
CATMathDirection dirZ(0., 0., 1.);8 W2 A9 ?# F% f* ~" W, ]1 s
//初始化零件工厂( U4 N& w' p; P. ]; C5 q7 ?4 }
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
6 z# R$ Y/ `5 B6 Y8 [//创建凸台* V' i# t+ x: ^$ E& l
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
0 h8 C. g+ D# a+ I. `$ a" M9 M1 xCATIPad_var spPadOnSpecObj(spSpecObj);
9 Q, t+ }! `3 V; N2 Z& d( |, g! T//设置拉伸方向' N/ K! j4 }3 O' Y
spPadOnSpecObj->ModifyDirection(dirZ);
$ z2 X3 F- s+ @, a5 a//设置凸台第一限制类型
- S5 c4 Y3 h6 B" s1 S. J# ?+ {spPadOnSpecObj->ModifyEndType(catOffsetLimit);
- V8 y- b8 a; ~9 h. j. I$ N9 S, r//设置凸台的高度
% [8 n( P' x/ g2 C5 EspPadOnSpecObj->ModifyEndOffset(firstLimit);
0 @0 [. y/ @# S9 K; e' D//设置凸台第二限制类型+ |" W+ |( V: p" @2 [
spPadOnSpecObj->ModifyStartType(catOffsetLimit);
, t* V2 U; C% E' RspPadOnSpecObj->ModifyStartOffset(secondLimit);
5 ?( Q# U+ _+ G//将凸台添加在结构树中
# u+ P7 U3 o6 c5 @( H8 i8 RspSpecObj->Update();
+ J& t, r) n" xCATIGSMProceduralView_var ispProcView = spSpecObj;. U+ c9 F  N* x) G+ G
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}$ F2 E! v. T1 v; u6 d3 u2 C

" `5 q0 c' ^5 F" U% `, n
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了