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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针% E( V) m$ `7 V5 ~* {) T
// 获得文件指针
# I% C8 L, E* Y; \! K* FCATDocument * pDoc= NULL;
; s, R+ ]0 I) @5 n/ u! Q" y; yCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
; @, {1 U: s' _# F: T! \- U6 H: [pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
8 n* o3 D1 o, Q' q, _( K* ^6 fCATInit_var spInitOnDoc(pDoc);7 I6 Y4 q$ a8 K; P" l. N
// 得到零件根容器
" P: o9 d& `3 ~) Z& x/ y5 P5 {5 E/ f
CATIPrtContainer * piPrtCont =2 J& f: G( V* A6 v( h
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
8 U& ~& Q3 ]+ U) p& t// 得到零件指针
# R. S3 |- e8 U5 \" {% P# ]CATIPrtPart_var spPart = piPrtCont->GetPart();
; l) D  I  f; M, k* L# S2 K! l: \) e. M3 s
创建草图! O, _: z# Z1 a) J
//初始化草图工厂
# |+ L) J# ?- G: h/ YCATISketchFactory_var spSketchFactory(piPrtCont);
9 {. q) p  m7 h; u//在XY plane 上创建草图
( i2 k' {9 \' }" T" H# ~CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));' |3 ?, V$ w! e! ?8 t' \
# w6 W$ R2 u- H0 p  p
创建草图几何9 O2 J9 F5 V  }6 w& r8 C
//首先声明编辑草图
9 c( W8 Z! B) @! {spSketch->OpenEdition();
: T$ a! s2 b5 r' m+ {CATI2DWFFactory_var sp2DFactory(spSketch);# e" T6 K, |+ P* @  s
//这里表示圆心点
7 w  W6 t. [* j# vdouble iPoint[2] = {0.,0.};
+ ~7 U, o  Y1 U9 M2 |//下面创建圆圈
4 e4 ]4 _3 u: o) kCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
. ~& I1 \1 P9 n) `. L1 dCATI2DCurve_var spCurveOnLine(spLine);
! O" z7 F5 A* X6 S( b* mspCurveOnLine->GetStartPoint();
& Y" l8 h8 y5 V( p$ \spCurveOnLine->GetEndPoint();
! M( R1 ?' b! I9 f//然后退出草图:
& X% F) X1 |8 z) yspSketch->CloseEdition();
$ ~4 V/ |) d1 ?8 P7 Y- ~) ^6 G
' m! I# y8 n/ x* z- {& @: i( K* }
( h+ V$ d7 i5 Y, ]6 c1 s2 h7 W- ~创建约束- J6 W# j; m6 h: N3 x0 r) z6 c
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
# M/ ?) i' g/ C' _0 G. C# ^# x' m//定义spLine1 的半径约束# S8 n! S- `. R& l' e, o0 C/ h
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,* Q+ D4 \: l* R: w& T* i: |
NULL, Cst2DType_Radius, 0, 0 );, L( A9 Q) }; v% ?7 z" _
//定义spLine1 与坐标原点的同心约束
: s4 S+ b: P* L4 _CATI2DAxis_var spSupport = NULL_var;/ P' l6 p* O+ \$ E: j- U
spSketch->GetAbsolute2DAxis(spSupport);  C) n2 V, {  C- e# X: u

, g; j7 u. P0 ~/ h( rspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
/ v7 a' T9 e  N# F/ |NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
2 ~- W9 N3 n( g0 _( v5 A) }; [: O2 V* j9 a, }' U
' R: r8 ^$ D/ h- B% P
创建凸台8 H- U/ M( k: ?  j% Y4 J& B8 t
// 从编辑框中获得援助的高度
% q8 c6 o" [+ P- mdouble firstLimit = _Editor004->GetFloatValue();( d  |, i, u5 E! z# z: z$ n
double secondLimit = 0.;
5 w) B. y1 _- z% M  O! p9 I- P* s//圆柱的轴向方向为Z 轴方向& J/ ]. e' s  q' R
CATMathDirection dirZ(0., 0., 1.);
' P- p( T( M" @8 e//初始化零件工厂6 R2 s9 c. V1 B
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
( d& F4 Q( `( j& H: l! T1 k//创建凸台; Y; B/ `9 d5 k! Q% s
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
( i6 H( b7 x; t! J# W* N. y/ ACATIPad_var spPadOnSpecObj(spSpecObj);# {% y" [' N  {* [
//设置拉伸方向: r3 K/ ]3 S% Q/ A/ A1 c# C
spPadOnSpecObj->ModifyDirection(dirZ);$ u; W. U7 _4 ]" Y; Q* w
//设置凸台第一限制类型; P: X1 Z+ r7 _; @( r
spPadOnSpecObj->ModifyEndType(catOffsetLimit);1 s- _* }3 x4 D; p7 c/ t
//设置凸台的高度
# b$ ~$ t5 ^& c) pspPadOnSpecObj->ModifyEndOffset(firstLimit);; Q9 k$ \) u" t! W4 X. l
//设置凸台第二限制类型
+ b; _5 _0 K9 z* R4 Q* s4 sspPadOnSpecObj->ModifyStartType(catOffsetLimit);: i% M- x9 G- f9 s' {
spPadOnSpecObj->ModifyStartOffset(secondLimit);5 B) q, r' h3 H/ n4 N9 s% a7 F/ k
//将凸台添加在结构树中
/ P: K( l4 Q) k3 kspSpecObj->Update();
, p: B: I+ V6 ?  UCATIGSMProceduralView_var ispProcView = spSpecObj;
; K0 Z" {6 g: J' aif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
9 C" @! Z! p' D* p( V  d3 B0 P% K; Z- W0 u
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了