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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
& D6 ]( u! c: _  ~7 G7 ~. ^" m9 r// 获得文件指针5 {  O- x! L- r
CATDocument * pDoc= NULL;7 a4 q  l0 e1 R" a7 G
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
- c, ~0 t9 l! ]+ F9 p/ }pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针5 c% o$ l  w7 g: G: Y
CATInit_var spInitOnDoc(pDoc);
8 Q8 o7 c8 q2 J) A8 K( o3 _8 Y: i// 得到零件根容器
$ w7 C* t0 L0 s% g
+ }4 v! U& j4 [6 l  w1 _* [- vCATIPrtContainer * piPrtCont =: M; T. T" G+ A5 `! d$ ~8 O
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
. e! c+ }! b3 G  D8 J; q* ?9 ~// 得到零件指针
/ U, N/ C. D' B5 `CATIPrtPart_var spPart = piPrtCont->GetPart();
8 |& X1 t3 \% H& `; D) |( a3 g7 N! y  }: [1 k) c5 C
创建草图5 H0 V  b( B& o! e% f2 W# B
//初始化草图工厂
  f, @7 B/ y1 S9 i4 B& `CATISketchFactory_var spSketchFactory(piPrtCont);% E6 P3 ~. C$ `# L' Y
//在XY plane 上创建草图
4 Q+ x5 o+ V" g( YCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
! @& b5 d; ^2 b/ ~; K: W9 r* i  A/ u7 T* {' X
创建草图几何- f" W1 P: J2 x* _1 Q8 E9 R
//首先声明编辑草图
0 D) \4 ^: [% m# Z0 X! ~spSketch->OpenEdition();, A9 j6 z: h; a1 F
CATI2DWFFactory_var sp2DFactory(spSketch);2 \/ K( Y# ^. s$ r
//这里表示圆心点; f. X) P8 I' \
double iPoint[2] = {0.,0.};
; A, `- X0 O, C! [" m' G( n8 d, V//下面创建圆圈
1 K8 O$ y; R  K. n# L- |, HCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
2 E& X3 m: n; e0 L; fCATI2DCurve_var spCurveOnLine(spLine);
+ L2 c, E8 l4 S& c# KspCurveOnLine->GetStartPoint();
% Q( B* J. f5 v' B0 u: hspCurveOnLine->GetEndPoint();
( L* g0 P4 {1 B% V1 T//然后退出草图:8 j9 @1 F& K& f$ c+ H
spSketch->CloseEdition();
; p( W9 k. Q, b( O7 y7 v- `4 f7 K- k& j. n5 Y
" ?2 S$ M2 H! V' Q( R0 e6 u  w
创建约束, r8 n( Q7 n. ~8 \5 u2 j: g
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);4 k1 e: V2 ?) r" s
//定义spLine1 的半径约束; G2 `( x% s& s8 E! S  I6 w4 v
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,; o* m* \% K6 w8 G' I0 D2 h
NULL, Cst2DType_Radius, 0, 0 );
! Q3 l" t6 c) U2 U//定义spLine1 与坐标原点的同心约束
) k5 v: `0 O) A- L  o1 ^$ qCATI2DAxis_var spSupport = NULL_var;
( `3 u0 ]' L# ]. F  V! wspSketch->GetAbsolute2DAxis(spSupport);
$ r. \/ R+ j. X1 l3 R
* g6 _5 q& K7 zspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
3 J: Q$ q% y2 S4 z' PNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );4 m1 M) R- G$ A  d2 l8 m$ K
7 ]) L4 Q. |/ v/ N* n1 g; g
6 ]  U( d) L! s: [7 ^1 ]
创建凸台: ?, d" A) r3 |' N( D# Q3 W
// 从编辑框中获得援助的高度
8 Q" i) \& ~3 w7 `double firstLimit = _Editor004->GetFloatValue();: U5 N7 Z0 H/ m& t
double secondLimit = 0.;
9 F" G& [( i+ ?# p  R( C# F' g//圆柱的轴向方向为Z 轴方向
% Q; g9 V8 ]; a, j) \CATMathDirection dirZ(0., 0., 1.);1 H+ y, S! \* J
//初始化零件工厂
6 F. G9 {- \$ i7 m0 PCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
( U' j5 w6 j; D//创建凸台
9 C" a: Y. b3 M4 f% m! C2 pCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);4 d5 U6 x5 |# [# E9 b( u& w3 _
CATIPad_var spPadOnSpecObj(spSpecObj);8 s' I: I$ f: |4 M
//设置拉伸方向
1 r7 \: W! Q1 TspPadOnSpecObj->ModifyDirection(dirZ);: I8 t# j  R' Q6 Y2 q* R
//设置凸台第一限制类型
$ M2 _# M* [1 L6 ^$ m. gspPadOnSpecObj->ModifyEndType(catOffsetLimit);
7 K. x" m& D& c3 a; ?//设置凸台的高度, d8 m8 Y9 y8 Q5 r9 w* W, R7 p
spPadOnSpecObj->ModifyEndOffset(firstLimit);! K! G9 F$ a: ~# v
//设置凸台第二限制类型1 O4 T& t/ J8 G4 l7 j1 D
spPadOnSpecObj->ModifyStartType(catOffsetLimit);; e& d! S: X  l) j* s
spPadOnSpecObj->ModifyStartOffset(secondLimit);' A' Q' s6 p7 P7 F; Y" b
//将凸台添加在结构树中
1 S" J* P5 r* K- EspSpecObj->Update();
. o! X! T' x. j9 [. i5 p- lCATIGSMProceduralView_var ispProcView = spSpecObj;
1 S: ?( a8 M3 X) Zif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}- r7 w$ @3 g  @0 w( z1 `

- M: r  G  h; N* k
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了