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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针! A" J, s# S, h7 d
// 获得文件指针
  Z: X0 @+ l+ j! yCATDocument * pDoc= NULL;
0 F( N1 _7 G( L( i- `( M7 dCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();8 ]. K4 D5 J- S8 C( g+ O
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针4 Z/ [- R' X- C/ |2 v. g
CATInit_var spInitOnDoc(pDoc);: J0 Q- o$ c) S) P- ^
// 得到零件根容器
6 }  U- z" w4 f* j1 B% {
6 _0 U" x& s5 K- M$ A" J" f) r; `CATIPrtContainer * piPrtCont =9 U7 v+ B! u+ }% Y! H, @
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
/ x- O$ |' n- {& U/ H// 得到零件指针/ ]% e- d5 d" x( R
CATIPrtPart_var spPart = piPrtCont->GetPart();. O0 {4 [- G5 h; e) S5 y

7 Y3 j5 n$ ?# U/ `. G6 V* \创建草图
% r  A8 {6 M, B& x' G//初始化草图工厂
; q# d0 t& E2 U& C; rCATISketchFactory_var spSketchFactory(piPrtCont);! u  B; {, x0 _, V4 u+ h
//在XY plane 上创建草图4 y( _& G7 S* h& X& b" P& i" F, q* K
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
2 b5 I) _" _7 O+ ^& k
( d8 L7 j  ?7 P7 k. }# k创建草图几何
8 r  I6 }% C6 [) z//首先声明编辑草图6 s! n/ h9 v6 V" Q; P
spSketch->OpenEdition();
7 e, H# n: K! W9 i: b* h! N) X: mCATI2DWFFactory_var sp2DFactory(spSketch);1 s- \5 ?' W2 [3 Q" y0 F
//这里表示圆心点9 @6 Y1 r  M' O, u6 M
double iPoint[2] = {0.,0.};
8 j8 B3 W0 n7 b  G+ Y//下面创建圆圈+ R: o$ L2 B2 Q: ~) R1 E" l, x
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
8 u5 i+ @" P9 ^* H1 v0 MCATI2DCurve_var spCurveOnLine(spLine);: Z: ]$ G' H1 g& y5 `* t
spCurveOnLine->GetStartPoint();4 }+ A# {4 h4 ]
spCurveOnLine->GetEndPoint();& C) T9 S+ o$ ?; I( y* v) ~" r
//然后退出草图:) x1 h3 C. c% |/ s
spSketch->CloseEdition();
; g* d3 X! @: r) X; ]8 }* [& [7 s  K' W

1 d. q3 y, }' C创建约束
9 n) `0 r) H3 A5 g! U3 K0 e) m  fCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
$ Z- A# k$ }; @//定义spLine1 的半径约束
; G$ V4 r% L3 l. B! LspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,2 v- k4 q' `5 @3 U+ k) Y
NULL, Cst2DType_Radius, 0, 0 );
  T$ y2 j$ F# L//定义spLine1 与坐标原点的同心约束: @( B' B+ u# d4 \1 H" D* d
CATI2DAxis_var spSupport = NULL_var;* `& C7 X+ v) J+ |1 |
spSketch->GetAbsolute2DAxis(spSupport);6 V7 I  [6 i+ i  f3 U+ g

( v3 l8 Y9 G9 `4 ]% U" x) f/ K5 ispConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),3 X( F( d6 L6 {4 j4 D
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
- X; w& f7 J2 G
1 j# t8 t3 ?, Q- j
8 Y8 [3 x. Y7 C4 R0 p创建凸台
7 u$ ~" z1 ]* F8 ^" A5 L// 从编辑框中获得援助的高度
5 D# R7 ?# {0 a+ _, _7 Tdouble firstLimit = _Editor004->GetFloatValue();
2 M/ S/ g* M" Y+ Y# u# |double secondLimit = 0.;
! o( ^, a0 b% I//圆柱的轴向方向为Z 轴方向
- {7 S4 y- w( }CATMathDirection dirZ(0., 0., 1.);0 _2 a, E8 E/ B/ s; w. ]
//初始化零件工厂* a6 F" L1 ?2 [
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);! n" s! f- k8 b4 g
//创建凸台8 B5 v& N2 B( ^# q: J% J" n' [
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);& ^  s. ]% R6 @8 e- f* i* u
CATIPad_var spPadOnSpecObj(spSpecObj);3 F1 U1 u% ]) J& C0 t' c0 Z0 ]6 C5 S
//设置拉伸方向# r" ~( u9 ^) }
spPadOnSpecObj->ModifyDirection(dirZ);
  W7 |$ f7 J$ B6 R6 O/ `//设置凸台第一限制类型
' |  f$ C  [* i+ zspPadOnSpecObj->ModifyEndType(catOffsetLimit);
- W1 B0 C6 U, D" ?2 V9 M6 R, C6 c//设置凸台的高度
- p3 R. o6 i4 E6 aspPadOnSpecObj->ModifyEndOffset(firstLimit);7 [1 \: \4 O9 H7 c
//设置凸台第二限制类型* W' N: U& z8 o& K: a
spPadOnSpecObj->ModifyStartType(catOffsetLimit);2 x# F* Y/ p" C/ U( j! x
spPadOnSpecObj->ModifyStartOffset(secondLimit);0 h6 @$ s. [% v6 ]5 Z1 @
//将凸台添加在结构树中! I6 {$ s, f' G- z* T
spSpecObj->Update();1 h7 s; o) T. N& c4 }, B2 }) B
CATIGSMProceduralView_var ispProcView = spSpecObj;
7 T: s; v) u/ m( L7 a* b( p7 L" oif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
# Q- @2 J# i1 Q- V8 l0 l- Q9 j" m& e' R+ N& o
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了