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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
- V; s. @7 f: T. V3 ?: O) t* Q// 获得文件指针/ j! ?9 ]/ H+ y
CATDocument * pDoc= NULL;
/ L, a2 C" Z' z: BCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();; o/ z8 m* ?4 G- h: V
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
' w0 k3 _5 b( m% ?$ H- Y+ u/ M: VCATInit_var spInitOnDoc(pDoc);1 s1 Z2 J! E+ Y3 J
// 得到零件根容器8 R) w) |( p2 D  @
3 A( K8 f" C5 \( k& ~% D5 W; t/ Y
CATIPrtContainer * piPrtCont =
" G' N% D0 G7 Q9 x) i) j(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
9 ?+ t8 G# C) s+ q// 得到零件指针' }4 C( E. X+ G( C: _
CATIPrtPart_var spPart = piPrtCont->GetPart();
' V0 Y: b  C2 r" @; P0 u" h" i9 Z9 D- b/ j
创建草图
  x& \  n4 p$ p8 ^% _+ v, |4 X//初始化草图工厂4 R5 E3 T) h/ v0 i- k
CATISketchFactory_var spSketchFactory(piPrtCont);" D$ s) T' y# Y* b9 N
//在XY plane 上创建草图- E8 S* |( `/ k
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));  I6 Y% |) x. `* J- }* q6 I

0 }5 D1 W/ e% {, B0 a8 [创建草图几何8 r- r* i" m  ~5 u3 T4 t' s. L, E
//首先声明编辑草图9 a. E* G' I, h! l) E1 k8 N* M0 i
spSketch->OpenEdition();: ], X2 b3 `* b( }  S
CATI2DWFFactory_var sp2DFactory(spSketch);0 J/ e0 u4 m- e; C. w8 z
//这里表示圆心点
4 ~1 e6 e7 m! wdouble iPoint[2] = {0.,0.};
3 o8 e  Z9 L) o2 |5 ~7 _) \( T( ~//下面创建圆圈2 _$ {$ g3 p) Y3 L2 n
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());* k  h- A5 b+ V
CATI2DCurve_var spCurveOnLine(spLine);
7 L% t- [2 i' a9 D) ospCurveOnLine->GetStartPoint();3 l0 s& Q7 W3 o- H. C' q
spCurveOnLine->GetEndPoint();5 g- ^6 i8 R, z1 U2 H8 S
//然后退出草图:. g8 }4 m/ b% ]1 r
spSketch->CloseEdition();
9 Q9 a$ n1 T% r$ S- B5 o6 ~$ b* H* T& ?

: j7 e2 o8 ~3 n创建约束
, \) C. }4 U+ VCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);! `+ m( ^" _7 u' ^- C2 [2 k3 ^
//定义spLine1 的半径约束6 G& l3 ?4 d7 C. R: h
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,! i5 Z0 s& z% \5 v
NULL, Cst2DType_Radius, 0, 0 );$ e7 y  @, @7 A9 C. M# L
//定义spLine1 与坐标原点的同心约束
5 u+ g3 B9 b, q- _! y4 v1 J& I$ G4 MCATI2DAxis_var spSupport = NULL_var;9 M3 P4 K$ v; D1 r4 u
spSketch->GetAbsolute2DAxis(spSupport);
' B8 H/ m# T& D: O' t8 l+ w
" |& w- q+ H6 F3 s0 i5 r- {4 I3 I1 rspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),: i4 R' {! L- k4 e0 C" @' I
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );8 w& q3 s- f8 m% U
: G8 r8 ?' k. c( }

( I" H( M8 ?" c' J创建凸台
4 ]' C2 G2 P! Y* f/ k! X3 D  C// 从编辑框中获得援助的高度- ~: s7 i' m) [, Y9 m
double firstLimit = _Editor004->GetFloatValue();
. n' S- X1 F6 g: p: R) sdouble secondLimit = 0.;' C: e3 R5 R( d! v
//圆柱的轴向方向为Z 轴方向
4 v2 [) _3 C; M0 R2 pCATMathDirection dirZ(0., 0., 1.);1 }$ z, g& N" @5 H$ d  @5 L/ P) i5 k
//初始化零件工厂5 }$ M2 v: n, I) s) Q
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);+ L/ @/ T* L) c' x
//创建凸台
- N! a; R3 n. KCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
2 o1 o3 i+ d( Q2 cCATIPad_var spPadOnSpecObj(spSpecObj);# r; f) a; M) v/ H0 F; A5 |
//设置拉伸方向# L1 s) c8 m8 T  G1 k9 |* T( y6 q
spPadOnSpecObj->ModifyDirection(dirZ);
/ x3 z+ W7 R( V" Q//设置凸台第一限制类型0 S. O: m: {* Z+ R5 m7 t
spPadOnSpecObj->ModifyEndType(catOffsetLimit);1 J+ |% Z* l+ z" C4 c" B
//设置凸台的高度: @. F3 y" e: i" }5 r0 r8 L
spPadOnSpecObj->ModifyEndOffset(firstLimit);
6 A+ h7 g. e6 [/ b7 m6 ~//设置凸台第二限制类型
- W/ l. A: O4 I+ |& r  `" @& cspPadOnSpecObj->ModifyStartType(catOffsetLimit);' f5 c5 {5 v# L6 v0 W
spPadOnSpecObj->ModifyStartOffset(secondLimit);7 c+ \3 _& X# z. t; w; ^
//将凸台添加在结构树中
% U8 Y- d% k. @# Y& [6 J* J$ VspSpecObj->Update();9 ]/ r1 \/ ^1 w. Y
CATIGSMProceduralView_var ispProcView = spSpecObj;
# B$ S9 X4 e+ p6 P: X7 c& Cif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
( f" N8 \' k1 R: O. u
) A. O5 G0 X# ]. \1 z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了