PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针: b" o  [$ n3 Z# q1 R3 D
// 获得文件指针1 m6 i, {, k# }
CATDocument * pDoc= NULL;
" c( h6 X  p* s9 tCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();. X4 P( }7 D7 E/ Z- F
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针! d* m( p8 g$ A& |. l7 b7 F
CATInit_var spInitOnDoc(pDoc);
- F# P; F& e. Q& @& B# b% L// 得到零件根容器
  |9 N0 W' M: a2 s5 E- V
% `9 w; c! u( `4 d1 ~CATIPrtContainer * piPrtCont =
- I* K( C! `6 @" X  L(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
: N3 e0 \. Z0 v) k  Q" U// 得到零件指针7 C/ F- F! q* `# L( ~
CATIPrtPart_var spPart = piPrtCont->GetPart();
* @5 E! M/ w5 C% j) z0 _! L
  v, Y% P2 c6 [7 X- c/ ]创建草图( R5 j5 ~5 ~7 ?# [/ d: A$ t4 z4 d
//初始化草图工厂0 ~2 O* o( `$ M5 m
CATISketchFactory_var spSketchFactory(piPrtCont);! I( U& \* o: U$ a0 L: O
//在XY plane 上创建草图8 V% ^2 _! [* U0 L# `
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));6 w. Q5 s6 ~; Z5 Q, U

1 F& h6 z4 c+ N7 t. [( a' S3 \创建草图几何' b/ M1 T0 u# c0 r
//首先声明编辑草图3 k; S/ }. _+ ~& }
spSketch->OpenEdition();
# e6 m! B( o! i3 ]CATI2DWFFactory_var sp2DFactory(spSketch);+ t; V/ l  b& u( h; k
//这里表示圆心点
0 Z7 K" N% ~. }double iPoint[2] = {0.,0.};
2 ^- A, ^& |, [( S//下面创建圆圈, s6 O. ?3 o) [: K0 I! p) C
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
7 j% O) U& I9 q# O' D9 p0 JCATI2DCurve_var spCurveOnLine(spLine);
- \  W& w5 _2 CspCurveOnLine->GetStartPoint();
. {% j, G5 _& SspCurveOnLine->GetEndPoint();2 A8 l7 B; ~" N0 V0 s& Y1 G
//然后退出草图:9 M/ H" _# I  \+ X. `% H
spSketch->CloseEdition();
. l% d; l) k: H6 D8 C" H
1 j( |9 D0 X  B& d
4 o, t/ r' b( n" f% ^& J2 D6 ]创建约束
% }! i' I. T3 o& R/ LCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
5 Y! R7 z9 N, W9 A4 q//定义spLine1 的半径约束1 S4 e0 ]8 [+ h2 ?8 h& `/ ]! {5 L
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
3 C; U: {* c, a- G, MNULL, Cst2DType_Radius, 0, 0 );
  U( ^$ \3 @8 ?& w. k//定义spLine1 与坐标原点的同心约束3 B; v" Y3 s  |' @' c% W" K
CATI2DAxis_var spSupport = NULL_var;
/ D, ]  J/ {) b, QspSketch->GetAbsolute2DAxis(spSupport);8 |3 B/ q$ b" d; |! n
* q. v4 ^; o# T& |
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
1 u- v1 ^( y, c# ANULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );$ W5 v8 G; _& Y  d; U. C
, n" C6 l$ s  w( @. P" z

& A/ Q& e  K: m8 b( _! ?创建凸台
" w+ e, g7 L/ G. i7 B2 W( |// 从编辑框中获得援助的高度
! T  B) u# [; odouble firstLimit = _Editor004->GetFloatValue();
) A6 [' E0 E+ z1 U2 {5 Adouble secondLimit = 0.;7 x. S4 x! F9 ~$ q. \7 V
//圆柱的轴向方向为Z 轴方向' Z% d1 {* |. R% D8 y" ^7 s! X
CATMathDirection dirZ(0., 0., 1.);$ e5 Z) ^1 Q3 ?6 `
//初始化零件工厂
7 v% b- Z$ N+ h  ]CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);; Y: E; D' `; Z& B
//创建凸台
; B2 i9 O& [: C! ECATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);; C4 I9 Q: w4 w- O* F! _) p, ]
CATIPad_var spPadOnSpecObj(spSpecObj);
; N' C" t& B9 _! f& @1 `1 [//设置拉伸方向
; G5 m1 \  W- [  N/ dspPadOnSpecObj->ModifyDirection(dirZ);
  n( n5 A, h8 M- k4 G4 o//设置凸台第一限制类型
$ _1 u: a+ v; V3 B  T8 O0 kspPadOnSpecObj->ModifyEndType(catOffsetLimit);
$ C. l9 `5 S. j- s. I. D//设置凸台的高度) |  ~( [' u. |% V/ _
spPadOnSpecObj->ModifyEndOffset(firstLimit);" B' D: V* p3 Y- y. m. g+ S
//设置凸台第二限制类型
/ I) A* ]8 d! {1 hspPadOnSpecObj->ModifyStartType(catOffsetLimit);2 f- o9 F' e- D) V
spPadOnSpecObj->ModifyStartOffset(secondLimit);
  J& _. Q+ A' M% D5 C/ U5 G//将凸台添加在结构树中* I# v, Q, l3 w7 V2 Q8 _
spSpecObj->Update();4 b4 t( Y# U0 G7 a* t$ [/ E* v
CATIGSMProceduralView_var ispProcView = spSpecObj;
. r, W; t; Q0 N1 h1 ~: U. |0 Eif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}1 q7 z9 y3 n2 A
& B# K9 E- D4 O4 v) t2 V* u' k( \" m
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了