PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
& W3 s' |# s0 b4 ~! B8 c// 获得文件指针2 O$ f8 V# C- M
CATDocument * pDoc= NULL;# Q) ~) p/ D( p7 y+ M, M! k
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
6 G% A% L0 c$ k0 B5 |pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
: `+ s4 E  x/ z2 wCATInit_var spInitOnDoc(pDoc);& |: u; I8 I! i* M& W3 x
// 得到零件根容器
" w) \1 P9 s) k% k; |8 w+ ?# y) t1 h# Z5 _
CATIPrtContainer * piPrtCont =4 q* h8 _$ n, F) o. B
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
! I1 y" X, e3 l  h& H: ]3 k// 得到零件指针
4 U+ \( y5 i/ P1 O' S: t" N3 ICATIPrtPart_var spPart = piPrtCont->GetPart();
  O2 n2 l# a0 B# b* V6 ~! }
, l! \) r4 d/ c0 @3 U创建草图
3 ^3 q! M" f; D# y//初始化草图工厂9 `; x$ r% L- u- W6 c% T- G
CATISketchFactory_var spSketchFactory(piPrtCont);
6 n& q+ |; P, n& d6 |0 d$ ]2 w5 H. b//在XY plane 上创建草图: y" c  Z4 S) v' w. P+ @
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
0 ]/ Y3 L1 o% p9 s6 \7 s
  W1 n+ e' m* V/ C创建草图几何
1 U1 J. M- T8 J- f! q; r//首先声明编辑草图
2 j$ U2 V" ^9 \# S1 k& fspSketch->OpenEdition();
8 f, G8 e0 c. ?3 ~" @( S' cCATI2DWFFactory_var sp2DFactory(spSketch);
9 {# G  x1 g7 \  f//这里表示圆心点. ~0 w' b9 u( j# f
double iPoint[2] = {0.,0.};
; @( ^; S" {: _3 ^# i* O( d//下面创建圆圈
* ]3 U- @6 V7 u- c$ ^$ ~CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());! M( ?* P$ M9 P: z" c
CATI2DCurve_var spCurveOnLine(spLine);% ?' E( L: N8 o& @
spCurveOnLine->GetStartPoint();
# A( k5 N# y; ?7 ~8 Z, U  P1 lspCurveOnLine->GetEndPoint();7 H: I! s5 f8 z5 n# L2 z6 |) @
//然后退出草图:
4 R- O. i9 E4 h6 v- K4 pspSketch->CloseEdition();1 L4 z' K  G6 P; l$ [
0 R$ R+ G0 B/ U2 ]
; u8 a5 B4 N# k  P4 ^; X* Z
创建约束
" E$ o  ]3 L- P/ H% [9 K+ M' D3 lCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
# @" c( \4 t2 U//定义spLine1 的半径约束  [+ P1 ~8 E( F
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,4 K7 l2 ?- v% Z, e- K4 @  y% N
NULL, Cst2DType_Radius, 0, 0 );% c9 ?- u* [8 x$ w1 J2 Q6 b
//定义spLine1 与坐标原点的同心约束
+ q8 ^) j3 V* U% g( v4 ^4 b* c4 gCATI2DAxis_var spSupport = NULL_var;
( i! I9 j8 k2 o# y- \& }spSketch->GetAbsolute2DAxis(spSupport);
! h( [" W& b2 B1 _% w! C* n) r
1 P8 L  J, E( b) S' N1 espConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
# s8 N: o+ w1 qNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );. S) V8 W: H' n5 t) ?+ u
" o" y' i  [" R  Y1 f, C
/ B2 P) F2 Q) r# Z7 J
创建凸台( }& f( ^: X- J% P( j
// 从编辑框中获得援助的高度9 \# f; O& s+ Z4 v
double firstLimit = _Editor004->GetFloatValue();
' l- e) T0 W! Y. Fdouble secondLimit = 0.;
) m' ?8 l: ^7 D//圆柱的轴向方向为Z 轴方向
; ?4 Q: I+ h  e: XCATMathDirection dirZ(0., 0., 1.);
$ o' b% Y# E# m( m7 l//初始化零件工厂8 p9 l9 l0 @2 H' ^4 {' C
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
) n2 [4 {) [: e- `//创建凸台; n/ i+ J& l) H# \
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);1 W5 P: ]5 S; Q- m
CATIPad_var spPadOnSpecObj(spSpecObj);/ b: ]) k2 W! k, U: C; O; Y
//设置拉伸方向
! J, P0 u  w8 A' a: G! WspPadOnSpecObj->ModifyDirection(dirZ);
& g! a+ i7 S- G: f% ?) D//设置凸台第一限制类型/ U. ^$ M0 Y* F
spPadOnSpecObj->ModifyEndType(catOffsetLimit);# F; o! M7 ~  V- h0 F$ U/ A3 C
//设置凸台的高度. `& _/ N# Z& L1 Y9 Y( B! _
spPadOnSpecObj->ModifyEndOffset(firstLimit);8 r6 \; N/ h- N" k9 d, b9 F! I
//设置凸台第二限制类型
4 L+ h' u) n9 S" C- H4 U: YspPadOnSpecObj->ModifyStartType(catOffsetLimit);
; l2 k' C; Q- ]0 J- t4 `spPadOnSpecObj->ModifyStartOffset(secondLimit);$ M1 M/ `1 H0 {8 E. R% `
//将凸台添加在结构树中7 P2 K5 K' f7 c7 I: s" d
spSpecObj->Update();
# s3 `  z, h( s, {7 b3 L! G1 SCATIGSMProceduralView_var ispProcView = spSpecObj;1 T  A: l! k( E9 J, K: \. Y+ J
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}' V/ P+ Y; w8 s$ J
7 o4 l  j( r# s! i
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了