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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82172
QQ
发表于 2018-2-22 13:28:03 | 显示全部楼层 |阅读模式

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

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

x
获得零件指针
7 M$ C/ E$ ?+ ?1 {// 获得文件指针4 v+ ~7 f6 Q: z1 B
CATDocument * pDoc= NULL;
5 Z" n1 Z% ^" w- f( |: ?CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
$ [' q8 k* n5 T7 G5 Z. m! o* W# qpDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
. R1 Z1 p" @3 L7 mCATInit_var spInitOnDoc(pDoc);# @" c5 w" `8 r8 k6 v
// 得到零件根容器  q$ O- R. p8 Z0 y$ _6 w9 z0 s

' j2 ]+ S+ @% _8 [0 G0 }+ TCATIPrtContainer * piPrtCont =
! h8 c; x' T+ @4 r3 E& j(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");2 j* u, \, b2 |: z- y
// 得到零件指针" i. X- ]1 S" l! [5 g+ e
CATIPrtPart_var spPart = piPrtCont->GetPart();
9 a: h; A5 g3 l" X0 ~! v) s! q* t" o; l/ n
创建草图& k$ k4 s, @8 U$ J$ @) K8 I/ u
//初始化草图工厂
! d3 @0 Q! x, p) \, s! T5 h7 ]/ sCATISketchFactory_var spSketchFactory(piPrtCont);6 {. \, t+ N- N: _" \1 P
//在XY plane 上创建草图" D7 X( l2 k% U8 O) y6 l. t
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));4 R" ~* X, J: k
( R8 _% j9 Q& z* N4 [
创建草图几何& m/ W6 f& f9 J0 L) S9 x
//首先声明编辑草图
) F, J% c6 l: G+ C1 y6 UspSketch->OpenEdition();
" j5 B/ o; S7 YCATI2DWFFactory_var sp2DFactory(spSketch);1 Y% c. o/ @+ {, Z
//这里表示圆心点+ E$ i& H9 C6 g+ Q" J$ d
double iPoint[2] = {0.,0.};$ e/ U0 Z( N6 N
//下面创建圆圈
8 q: ~# U$ Q% T5 x9 a! ]3 \CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());7 R) \$ `4 m& L* D3 e. B$ ^
CATI2DCurve_var spCurveOnLine(spLine);
8 c+ |( F4 y$ L* L0 D9 YspCurveOnLine->GetStartPoint();
; l7 U8 o+ @& _7 k' u* G7 UspCurveOnLine->GetEndPoint();
4 X+ H! V% a$ w. H" \//然后退出草图:
* n2 p" E; O2 R0 `  UspSketch->CloseEdition();4 p1 c5 c, c  s

2 G5 n2 h, J1 w9 |+ e) {8 t3 H( C: @4 c' F9 L; T& P' K( R! ]# ?
创建约束* S5 ?# F* L+ @7 g1 |- z" Q
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
0 u1 e: B& d4 O, Y& G8 f//定义spLine1 的半径约束8 j% D, m. T, K/ @
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,8 V0 q6 N* N' i. e: p  y
NULL, Cst2DType_Radius, 0, 0 );& r  M" V! H: ~5 z  w
//定义spLine1 与坐标原点的同心约束
5 \- f6 B, k1 x+ x# _% {CATI2DAxis_var spSupport = NULL_var;" @" T" T8 j4 M- c
spSketch->GetAbsolute2DAxis(spSupport);
& B& s  Z# R( ?- ~
/ ~0 u5 t; M! A3 T' fspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
- w! k9 p7 m. Q- w7 Q; K6 INULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );( n- j: s9 u- G2 y6 h! p+ L

' T: V2 D% J( B$ k
2 m  I! O" o! H' P9 h: P  L1 g  u: H. u创建凸台
2 v( V. |3 s3 I, `! U- S6 ^// 从编辑框中获得援助的高度
) b) ^# G; l* t6 A8 ^double firstLimit = _Editor004->GetFloatValue();
7 H! w2 s2 H1 Z. @double secondLimit = 0.;; m1 s' I& R* F% Y. g0 Z& M' N
//圆柱的轴向方向为Z 轴方向
; |" }) Z' b, yCATMathDirection dirZ(0., 0., 1.);9 d" z4 ?4 [- X
//初始化零件工厂
( a0 I9 s; w4 D  i; u/ I: rCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);! ~0 S: L+ h, X$ ]
//创建凸台
  p; L8 S' }2 v. `& ]3 x; X5 QCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
4 E! W( Z, s) n7 O  J4 bCATIPad_var spPadOnSpecObj(spSpecObj);
. [& r8 ~3 O5 b$ Q) }//设置拉伸方向
5 K- i. p6 V- }0 M' W: M% L+ xspPadOnSpecObj->ModifyDirection(dirZ);
, E' v" r+ T6 |8 L; I0 m- c//设置凸台第一限制类型# `6 H# _! B3 \2 K
spPadOnSpecObj->ModifyEndType(catOffsetLimit);: ^; N. k1 W2 ^5 ]" ~
//设置凸台的高度
0 K/ a# D- d( D; M, v8 z4 d: zspPadOnSpecObj->ModifyEndOffset(firstLimit);
( a9 J6 G4 f7 R7 E9 w1 H6 k//设置凸台第二限制类型' k4 }% ~% c1 {; |9 v) E) h
spPadOnSpecObj->ModifyStartType(catOffsetLimit);  Y* s& R/ R2 N  ]; N9 T
spPadOnSpecObj->ModifyStartOffset(secondLimit);
1 n: \8 v2 f+ s# I8 x7 f+ R' P; Z//将凸台添加在结构树中; N4 _" V6 S. Q9 ]
spSpecObj->Update();6 S/ f1 \4 w  X0 L
CATIGSMProceduralView_var ispProcView = spSpecObj;, x( t# z7 L. [5 s% V$ N
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
/ W. p) `1 ~* {+ q/ l
/ I8 i( f8 q0 V( _/ \2 a; [/ W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了