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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
& N: ?) ?+ q2 m/ Z( D( @% ~// 获得文件指针
2 V$ ?0 s. O! t4 C/ uCATDocument * pDoc= NULL;  G, n' c* E  {% [: M3 q
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
: X' Z$ \! N6 N+ V# i4 ~0 B/ z- [pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针/ a( b" J* g! z+ P
CATInit_var spInitOnDoc(pDoc);) w5 R! R% a! `# q( l
// 得到零件根容器0 L' I6 {  G. l$ w& ~& X% D' {

& e$ w3 Y6 d# C& }0 d0 W, w8 R1 B+ {CATIPrtContainer * piPrtCont =
. T6 w' g; H4 l5 `1 q9 t(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");0 s- E1 M9 k% i# y5 l! V0 h9 `: m
// 得到零件指针
% g5 k/ E+ f8 Q' f/ sCATIPrtPart_var spPart = piPrtCont->GetPart();* A& W/ x5 r6 ]  e) J& {
* l$ @, @: y( z& _9 x1 d
创建草图
: y* P/ P! `! V4 s4 U, b& W//初始化草图工厂) @4 T0 N  R9 d
CATISketchFactory_var spSketchFactory(piPrtCont);
. J  h6 ~/ s7 h% j) P1 ~5 a//在XY plane 上创建草图- C. z/ ?" ?2 G" E: Q1 [' f; b+ \
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
0 f& z* W" S. y' S+ j5 V. W; F7 D* n7 _
创建草图几何
. b! ]) f, y0 Y7 a* G: B, a//首先声明编辑草图! O1 f+ v9 g( j& d; l1 x
spSketch->OpenEdition();
( b4 }/ n, I, n7 u" Z8 `; a/ ECATI2DWFFactory_var sp2DFactory(spSketch);
. a: X4 b4 K3 P7 g- a# S3 A//这里表示圆心点" v2 r* P' }, m9 L1 H  B
double iPoint[2] = {0.,0.};; U4 t0 x! G' [' N+ H
//下面创建圆圈; x1 P" o; C6 G1 g
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());9 ^# O  c; k% m$ o6 f: g, o6 d
CATI2DCurve_var spCurveOnLine(spLine);' z; C& @/ m& \5 \" R% N
spCurveOnLine->GetStartPoint();
( Y- v# w  Q) d* kspCurveOnLine->GetEndPoint();5 o: }2 `: t, _+ Y
//然后退出草图:
; ?+ K8 o/ E. m+ k; R. v3 gspSketch->CloseEdition();
# \/ h1 s: h5 |5 {' F4 v( E9 A' B$ P- y$ `, }" h/ K. p
7 p7 [+ R/ E- b
创建约束
7 j' [. P) Y3 D1 nCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);' g5 s& _4 @% G5 F- l
//定义spLine1 的半径约束
7 V0 L# |" A5 TspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
7 `* {* F0 C, [) XNULL, Cst2DType_Radius, 0, 0 );
2 ~5 _0 v5 E) E0 L* k$ U- u//定义spLine1 与坐标原点的同心约束, d. C6 C% C+ E" N
CATI2DAxis_var spSupport = NULL_var;
4 r' ?' L# S, R) i  Q) `" d: sspSketch->GetAbsolute2DAxis(spSupport);
' m0 A; o+ H, j; b2 y# V, d: t, D2 Q+ \# z& @) e; z* c) n
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
& R6 n; H! c' T0 F5 y# z( WNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );# R* n6 B1 O% i8 k0 }
) J7 u* {: d% G4 M4 H
5 R* w  ~% k6 ?' e3 b# s
创建凸台
# M7 W; |* z  C, w$ r& y// 从编辑框中获得援助的高度
* Y6 x) S, B" k4 I! @7 Sdouble firstLimit = _Editor004->GetFloatValue();) L! S% G  S9 |* u; E4 E
double secondLimit = 0.;: u5 l9 m8 K, i1 _; n
//圆柱的轴向方向为Z 轴方向+ K/ Y/ |+ O; V1 W1 P
CATMathDirection dirZ(0., 0., 1.);
" ~% [; P1 m" Y//初始化零件工厂' P4 A, I5 L! R& C5 C
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);. [# g3 g2 o0 q7 R. ?  {8 w. _$ E
//创建凸台4 {- D3 q; v# O' T1 @0 g2 A; `
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);. ?# \& Y& n6 u! K" w
CATIPad_var spPadOnSpecObj(spSpecObj);
2 Z& n" w) c8 z) D8 {//设置拉伸方向5 N; p1 i  {  E4 T: Y6 ]7 `' ^: a; @
spPadOnSpecObj->ModifyDirection(dirZ);) W9 O8 G2 t# S0 w3 I* j. H
//设置凸台第一限制类型# M" p" x" |' ]
spPadOnSpecObj->ModifyEndType(catOffsetLimit);+ b: s* n; K, n& T! `- p
//设置凸台的高度$ b6 v4 b9 h: k* _/ G, ]
spPadOnSpecObj->ModifyEndOffset(firstLimit);
7 C+ o+ f$ H3 N//设置凸台第二限制类型
' z, ^  ?+ A% F) j9 ]spPadOnSpecObj->ModifyStartType(catOffsetLimit);
  M- V; O" {! k0 c. j8 C. _spPadOnSpecObj->ModifyStartOffset(secondLimit);4 X  u* r# ^0 q. B6 n
//将凸台添加在结构树中( Q- p7 g9 z; N# @: y
spSpecObj->Update();7 L0 R& Y1 C$ f1 F
CATIGSMProceduralView_var ispProcView = spSpecObj;
, N9 B! I( W! T+ v  f/ Iif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}% ^. n8 m0 e4 s. r
  K, |9 y4 b' v9 Y" S1 I
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了