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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
2 v6 B4 q& c2 o+ A3 q9 F3 G+ `// 获得文件指针1 o4 Y3 a  Z5 |
CATDocument * pDoc= NULL;, h: n: U2 w8 z$ t! ?+ J0 g8 H
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();5 C& S8 G& I2 _: r, u
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
; @$ a4 c/ Z. @6 d" \% m& {: P, GCATInit_var spInitOnDoc(pDoc);* ~& _8 m, A; s" Z5 [4 q7 C
// 得到零件根容器$ B3 O; J# v5 L8 `  ~* Z

  x. S! n" _; h) U, J1 sCATIPrtContainer * piPrtCont =
1 e$ S- p1 B. {; x9 c(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");2 V! G: Y. h2 U3 T% O' v- S
// 得到零件指针
& s0 V" p1 g3 _2 \+ O4 q2 Z0 zCATIPrtPart_var spPart = piPrtCont->GetPart();+ p( y9 u0 K7 v" G* n
! D) t" C. G$ @
创建草图* p. W, N! Y6 p" C. y* @, h
//初始化草图工厂
& G6 {# Y2 A1 ZCATISketchFactory_var spSketchFactory(piPrtCont);
! k3 h- }$ m1 [' U: G/ q; D//在XY plane 上创建草图
8 ~/ q: [, V" x  b. r# \CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));* L4 n1 v* l# v- Q

5 N3 h  C: j4 c2 O9 \创建草图几何
: p# M6 j6 f' _4 o7 ^0 j+ Z5 h//首先声明编辑草图- T# s! k6 X1 I& E/ a& n/ u
spSketch->OpenEdition();# ?, t" G0 v0 I  w4 f) k
CATI2DWFFactory_var sp2DFactory(spSketch);
2 d' c/ a* G. |5 }//这里表示圆心点
4 }- E) ~: E# I1 c9 T" Q) Xdouble iPoint[2] = {0.,0.};
7 x9 y$ ]) i: \- `& _. o//下面创建圆圈4 J* Z% O! [4 F+ Y4 V' l, `
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
$ [: b: x3 v! X  TCATI2DCurve_var spCurveOnLine(spLine);
" }; I  c+ z: _3 p( _8 t  f! T$ ]spCurveOnLine->GetStartPoint();# H/ d1 Z6 l4 `3 Y
spCurveOnLine->GetEndPoint();
" Q) F' O9 Y+ U  Z2 P//然后退出草图:
2 J8 z4 @  t* O2 b  x& QspSketch->CloseEdition();, m% k  F* p+ Q: k1 E* Q

+ E+ z7 M) g4 A9 ^+ a& [7 A7 J) u1 l- w+ f9 C/ E
创建约束
) T* u1 E: M8 V1 A: K: V- QCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
) d- c1 j  e# r+ [- M//定义spLine1 的半径约束
! ~+ c0 V: [) o- u3 c- OspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
- P2 G0 d" H! x5 |( G+ ^  LNULL, Cst2DType_Radius, 0, 0 );( I6 n/ T0 w. L1 e% m2 a# n' y
//定义spLine1 与坐标原点的同心约束
, {4 S, F; W+ x6 u5 w; kCATI2DAxis_var spSupport = NULL_var;+ g  j  [9 }* L
spSketch->GetAbsolute2DAxis(spSupport);
( r* c4 F6 @7 r% T8 c8 f# q2 t" `0 [( f+ o5 B5 C! Y
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),0 ^: Q5 {% }  p7 t
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );- \. k3 G% i4 C8 c6 z9 _
8 d( K$ \- w# Z7 L$ W& a

  c8 u. Z; m' e- P3 i9 Q2 J创建凸台
+ D4 H% [; _- x4 ?/ j+ |" a% i// 从编辑框中获得援助的高度
6 T6 T- T( k3 x+ e. g3 a! udouble firstLimit = _Editor004->GetFloatValue();+ B! s, f; H2 K3 ]: \" {# K+ X
double secondLimit = 0.;
$ {3 Y& a6 e2 D- A* E//圆柱的轴向方向为Z 轴方向
; H3 ^% U9 E. D' p6 RCATMathDirection dirZ(0., 0., 1.);
  @- c8 R* R" e# U//初始化零件工厂% U- y1 M* A4 H. y8 e7 M
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);3 ^( ?. D! M. n+ `( L+ Y+ l
//创建凸台" X1 ?) s3 i: P% x/ c+ y7 S3 V+ ^
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
  S1 N2 G* a6 [6 X" b) GCATIPad_var spPadOnSpecObj(spSpecObj);# R: A6 s' J  b8 j& m
//设置拉伸方向
2 g  ?0 y! b% [- RspPadOnSpecObj->ModifyDirection(dirZ);4 d1 v1 c  q' _" ^1 [
//设置凸台第一限制类型
! m/ T) U3 j; L( sspPadOnSpecObj->ModifyEndType(catOffsetLimit);; o; p' r9 E/ `/ I. V" b
//设置凸台的高度
4 s" m! Q% N* y( Z. K" y1 _spPadOnSpecObj->ModifyEndOffset(firstLimit);$ @7 ^( e8 ?1 _4 P
//设置凸台第二限制类型2 M- A! `, w  |. q8 _1 u
spPadOnSpecObj->ModifyStartType(catOffsetLimit);$ M; R6 f6 t8 C3 Y& Z  p- c
spPadOnSpecObj->ModifyStartOffset(secondLimit);
2 F: I+ e& L7 {# U8 U  L//将凸台添加在结构树中# R; F8 ^. L% l/ @- R$ d- q  w
spSpecObj->Update();# B+ i$ `1 m: }' q  y: c  J4 K% _
CATIGSMProceduralView_var ispProcView = spSpecObj;' v) m# ~/ a7 @  W
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}4 Y' W, C) W; r5 B

, V4 a+ q) H( f* h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了