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 2891 0

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针9 d4 J$ ~6 V3 {# V+ H! t
// 获得文件指针
/ G4 ]: j. V& [6 i/ }CATDocument * pDoc= NULL;- _  j% n8 Z" ?3 C
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
# x1 ^) q5 k" h4 e. I  d3 e, U# `+ ^pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针4 ?- s/ O$ i/ W; W+ K
CATInit_var spInitOnDoc(pDoc);6 r3 J0 H/ f1 z8 C; ?. c9 w2 B
// 得到零件根容器
+ C" |6 x4 C+ c
) @) K( \; c5 o* f3 n( |& [: h0 I1 bCATIPrtContainer * piPrtCont =5 k3 |% n5 \* R, K
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
8 G8 ?6 U3 t1 S  }" ]3 G) a// 得到零件指针) n0 n7 h" R9 p$ z7 e: B
CATIPrtPart_var spPart = piPrtCont->GetPart();
) M- Z$ p. p7 E* F5 Q+ U( R+ v. q5 {8 q
创建草图
% {. M0 p, U* z2 G5 @//初始化草图工厂5 |! r. d, p, ?+ u0 Z' I  @) E
CATISketchFactory_var spSketchFactory(piPrtCont);
+ L& v5 |8 P, _6 T' w; O3 r//在XY plane 上创建草图
) W( d" d4 o+ `. r' O6 N' P! zCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));7 H# C+ K% |& N9 |' j- I  a! x6 U

3 `. k# H" L7 C创建草图几何
! i8 n' @: A% `$ u. g1 j$ u//首先声明编辑草图
- M3 j* B4 _! ?0 mspSketch->OpenEdition();" S6 B2 a" ]! G- u5 Z
CATI2DWFFactory_var sp2DFactory(spSketch);" |2 k4 V9 T' G" ?5 Z# \
//这里表示圆心点5 ?6 p/ d# |( S, T  w, V
double iPoint[2] = {0.,0.};3 l/ ]4 b: K- o+ D
//下面创建圆圈  S. A! ^/ T7 `9 j# A
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());3 M; H& w  c" u. ?7 Z0 D4 g
CATI2DCurve_var spCurveOnLine(spLine);
, z* M' u9 {. i' f! G9 {spCurveOnLine->GetStartPoint();- M+ j- t7 z9 {' @
spCurveOnLine->GetEndPoint();& L( H1 ^% w9 ^  v7 w& D$ W
//然后退出草图:7 U& c4 t/ l1 q' |2 s* W  ^' p+ X: h
spSketch->CloseEdition();
4 ~0 A$ P6 l8 h$ Y/ w* ?1 x
) Y1 b( ?; s% C6 G$ R+ O4 R* f% B% w3 m, ~. {9 J
创建约束
0 o0 ~+ @3 p' J0 x  JCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
' H$ U, f* X7 ]  i5 a8 o, d7 I//定义spLine1 的半径约束
8 G" C3 k$ \  n) ^3 j& RspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,# v2 P! N& H, ~- n, w/ K' v
NULL, Cst2DType_Radius, 0, 0 );
' B8 z' o! Y7 P! ]$ `//定义spLine1 与坐标原点的同心约束0 u& H. |# o5 q, E  }
CATI2DAxis_var spSupport = NULL_var;5 L' a" W8 N( T( S6 H3 b# X6 ]
spSketch->GetAbsolute2DAxis(spSupport);# H' P$ K( }, A

- `4 J. u) N& ]spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
$ V  u" B2 a* r" pNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
* ^* }3 @4 _/ d+ k
) n) `9 P# H4 Y$ c. [5 ^* d/ n
0 r. y" ?5 y8 i. g3 U% {创建凸台7 D! Q5 k" @  Q+ h- D+ F+ s
// 从编辑框中获得援助的高度
) D9 S( f: e/ h0 L& S* l9 Wdouble firstLimit = _Editor004->GetFloatValue();
$ a( s* F; y& u$ e5 jdouble secondLimit = 0.;
; d& w9 t+ O4 \//圆柱的轴向方向为Z 轴方向
; |. [9 e+ h% p* d! TCATMathDirection dirZ(0., 0., 1.);
( X& J: r, Y1 D. w" C$ U//初始化零件工厂
& O& E& F. u; J2 FCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);: X5 E  U& H: U- \* |4 C' h# l
//创建凸台: H. f8 x6 \+ F% h4 f/ B1 _" c
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);; E5 L1 {+ `, M- z
CATIPad_var spPadOnSpecObj(spSpecObj);
9 V) E. V, T- V//设置拉伸方向3 ^/ j) e) [/ v, m3 i5 _
spPadOnSpecObj->ModifyDirection(dirZ);5 a; c+ I% l2 b- V
//设置凸台第一限制类型
$ S' v. ~- M2 Z" y+ T# H" e( OspPadOnSpecObj->ModifyEndType(catOffsetLimit);$ ~! Q9 }4 d* `* I" f0 k: r8 ?4 x
//设置凸台的高度2 \+ O- l, o4 S$ L( s: ?6 E
spPadOnSpecObj->ModifyEndOffset(firstLimit);
+ p2 l( k. Z, w' [6 {, _3 H+ c//设置凸台第二限制类型
! F3 b0 {+ n4 s- K" Q* zspPadOnSpecObj->ModifyStartType(catOffsetLimit);& C. ]% B# b, n' [  V- q2 u
spPadOnSpecObj->ModifyStartOffset(secondLimit);
# v* M4 Y- s+ k* f8 j//将凸台添加在结构树中
' S) K$ K( P& o: tspSpecObj->Update();
7 `" m: w; w8 q! }( h  KCATIGSMProceduralView_var ispProcView = spSpecObj;3 Y& Z. I, j% F4 c! g7 g, [
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
: N7 n; i/ |% ]- t2 F
) @! o) K5 M  S1 c/ @
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了