PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

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

x
获得零件指针
0 Z6 _0 `2 E4 L9 _// 获得文件指针
; H! ]: D% x* n" O0 XCATDocument * pDoc= NULL;* i, S0 P3 n' v$ a/ J' I% U
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
/ q9 L/ |! I4 spDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针3 _8 j, O9 Q; H: ^- |3 N* Y! f
CATInit_var spInitOnDoc(pDoc);' l3 l7 p2 n& z3 y
// 得到零件根容器
$ i9 E: Z' @+ P/ ~) j9 b/ K- w( c
) a- x) U; e2 v$ I& uCATIPrtContainer * piPrtCont =# |3 h! n) F( K1 `$ `3 y1 K
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
2 ?' {  q5 ^% D- u// 得到零件指针, |3 }3 r* Q# c  y6 r! R
CATIPrtPart_var spPart = piPrtCont->GetPart();1 S6 [3 g  n8 ]: Z( T5 x

3 u: H+ \8 `5 |* T' v' d- z( ~) K创建草图" S& h* K6 e- G6 q
//初始化草图工厂5 o2 g- ~. ]7 I4 b( W' M! v
CATISketchFactory_var spSketchFactory(piPrtCont);5 e8 R# E' C$ w1 w
//在XY plane 上创建草图
' W- ?: c; B5 P0 u% N7 JCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));6 W& [& h0 ^/ Q  V
- [( R+ g! y7 v: v9 m
创建草图几何
6 b2 |- ?! k8 C) f1 A//首先声明编辑草图' B1 d+ n9 a* J9 l' ]4 R' e
spSketch->OpenEdition();: D% y( g( o. D$ n( A; F* V+ l
CATI2DWFFactory_var sp2DFactory(spSketch);3 B8 r# Z: B% g- c0 u& e: N4 {. f
//这里表示圆心点; c; i, C; l; X: H9 n( J
double iPoint[2] = {0.,0.};% X2 [$ @4 T( @
//下面创建圆圈
7 M# [, v& F7 c. z4 @, k% f# dCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());. a5 G# {3 N3 F! p
CATI2DCurve_var spCurveOnLine(spLine);
0 R! M- @  q9 H" |" p% n0 jspCurveOnLine->GetStartPoint();, X6 t9 f& V) {- G5 ?
spCurveOnLine->GetEndPoint();
! k& I3 {- n9 u  u//然后退出草图:0 m3 ]- V. ^$ N8 P6 @( H$ l5 S
spSketch->CloseEdition();, Z( ~! T3 r, k' o

; E9 T$ ~0 f4 P6 q
# ]! ?# O" T, C0 A创建约束" `' ?4 f$ q+ O& r7 u; q
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);% W; |  \) D% g" V2 h5 s
//定义spLine1 的半径约束
* J) E) _8 l) l9 N) AspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,- l& P, k; l8 [2 ?5 p( |) r6 f
NULL, Cst2DType_Radius, 0, 0 );
: E! h4 N0 e# o! [//定义spLine1 与坐标原点的同心约束
# z& {/ ?: b+ V: y: q5 i8 t* uCATI2DAxis_var spSupport = NULL_var;0 P0 z. g% P  q5 j& j
spSketch->GetAbsolute2DAxis(spSupport);
8 m9 A# a% V: B% r' s% T, G# h" k; Q4 g: ^+ M5 V1 O8 T3 B
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
, T+ l" v& N+ K) }+ k; I! s7 rNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );* }. A4 o+ Z/ t# k& @+ H: c

7 B) O3 u2 ]0 z0 `, |. k% J$ R2 t) k
创建凸台1 t' u2 S+ X3 T& @9 G" t& p
// 从编辑框中获得援助的高度. k$ I) _4 |/ o$ H! u7 n6 `
double firstLimit = _Editor004->GetFloatValue();; l# l% z9 A6 @/ B$ D* G$ ?  w
double secondLimit = 0.;
; v/ b( x; k; n* O2 @3 m//圆柱的轴向方向为Z 轴方向
* a" G# V; }9 v- f: H- F) @* pCATMathDirection dirZ(0., 0., 1.);/ ?. t: l* u2 t
//初始化零件工厂
& t% f7 }: G  f! l! mCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
; q6 q- g1 P; g$ b% i* F" E% b//创建凸台
5 L$ m9 x8 G  R; \( F) BCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);; `  e% C/ E. L4 n# x
CATIPad_var spPadOnSpecObj(spSpecObj);8 ]0 D0 h4 ^6 M
//设置拉伸方向- ?5 |7 {+ h2 D
spPadOnSpecObj->ModifyDirection(dirZ);
) `: m7 |0 q  S  Z1 ^//设置凸台第一限制类型, N/ L9 H- G, _* q
spPadOnSpecObj->ModifyEndType(catOffsetLimit);
) B2 R8 N4 D# S% M; U2 L) Q7 }//设置凸台的高度
0 `7 F7 e/ b! I) b8 Z( P$ h& _spPadOnSpecObj->ModifyEndOffset(firstLimit);' T. C  f- c! ~3 k
//设置凸台第二限制类型
! y* A) ^9 }1 R( v6 kspPadOnSpecObj->ModifyStartType(catOffsetLimit);
: o8 t3 `; H3 v# ^" }% V: k% v) SspPadOnSpecObj->ModifyStartOffset(secondLimit);2 R7 `$ ^0 Y7 ~" C  h/ c
//将凸台添加在结构树中
7 Z* M" ]8 I. ?spSpecObj->Update();( H  D& r. V. u0 o4 V, W' a1 h( Y# o1 D
CATIGSMProceduralView_var ispProcView = spSpecObj;: N% P! {# B2 C- r, ]' A  N- n+ G
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
9 d2 t- F( U: O7 R* t" G: }
/ P6 ~" x$ H* b6 Z( G  q! ?* q  \5 y  Q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了