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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
3 W8 t6 d+ s6 v  q// 获得文件指针
' b# H) L  ?; p3 i: V2 a' l$ xCATDocument * pDoc= NULL;0 j% o- t" i# V/ ?5 X
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();% T( i" J" ~5 p( V: m* T# C
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针; r% M$ [. n6 A
CATInit_var spInitOnDoc(pDoc);- t1 y' c  m6 T6 {
// 得到零件根容器% l! }' `1 G  e" ?! J9 T
$ v5 D6 g3 Q/ s7 i2 z2 `
CATIPrtContainer * piPrtCont =/ N3 x' ]' e) h
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");! x3 V" W/ ~; l0 R! u- W# P9 [
// 得到零件指针" K- c( K* o% F0 |; T- {" f- ^; ?
CATIPrtPart_var spPart = piPrtCont->GetPart();
' v( g; L- F% g% o5 U' g  d( H8 ~2 K) q% o" }5 C9 e. w. k
创建草图$ _* e$ n0 ~+ l5 z
//初始化草图工厂
0 [% ?+ R/ G  ^% J! l0 FCATISketchFactory_var spSketchFactory(piPrtCont);
+ u! [$ |/ V! a" f+ f//在XY plane 上创建草图
; f$ y. ?8 C' XCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));# `/ M4 s2 c6 Z* l2 y

+ a% b5 B1 y% {9 t创建草图几何& X4 B- }; l, `" K* X" W6 n
//首先声明编辑草图1 [% \  Y' h, R, s7 S' a4 Y: c
spSketch->OpenEdition();7 B3 a1 \; g1 Q- t" J3 f
CATI2DWFFactory_var sp2DFactory(spSketch);
* K# x$ R" Q& E! c8 ]# h//这里表示圆心点! _, K2 j" Z5 p: U- o
double iPoint[2] = {0.,0.};
- O6 r4 f/ E; M% y* E, L. u& ~2 x//下面创建圆圈' X- w. ^3 d* l9 t8 z% t1 [8 w: k( D
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());/ M- X3 ]- `* x7 ]8 ^3 z) r
CATI2DCurve_var spCurveOnLine(spLine);! Y( x1 W, J3 x; K
spCurveOnLine->GetStartPoint();
) ]! @! M  B7 O) ^spCurveOnLine->GetEndPoint();
$ ^  F7 a. O5 ~8 e5 m- _9 E! h( S//然后退出草图:
! L+ c6 R3 J" ^/ \spSketch->CloseEdition();
: y5 Z1 }- u8 ?4 M0 J
. @* r7 N, @4 {( i2 [; K8 g6 l. Q4 u+ z" R
创建约束+ V- c4 d- s' \2 p+ H8 w( C
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
8 R7 \! J6 ], r6 Y0 _, Q8 ~//定义spLine1 的半径约束
! U1 g3 P1 G2 d0 l! aspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,- P+ ?6 Z! I4 }8 b
NULL, Cst2DType_Radius, 0, 0 );
0 P5 N6 e3 f! Q; a//定义spLine1 与坐标原点的同心约束
/ m8 @/ m+ L1 @( t6 r3 FCATI2DAxis_var spSupport = NULL_var;1 @8 J  r, Z* N
spSketch->GetAbsolute2DAxis(spSupport);
) @2 U& K& d% H' h! h( N- |4 u+ P+ s1 v3 V
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
* `8 M& B9 x# }* x2 S/ A+ N, eNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );: N2 d' H  M' R: m
& b# ^' Z" S, U: ~( l: s- V

, b! Z% I1 U! E! O$ z创建凸台8 f" T/ ~; J3 |" p
// 从编辑框中获得援助的高度- e! A9 X; s' u' q2 v6 g, r
double firstLimit = _Editor004->GetFloatValue();) k6 ~  ]& ]; Y- t4 ^
double secondLimit = 0.;
5 l% ?1 D4 f, l# V. a+ w//圆柱的轴向方向为Z 轴方向# s; Q) I& s( z' Q* n' Z
CATMathDirection dirZ(0., 0., 1.);
0 j# j- G/ w( S( \6 r- ?  N//初始化零件工厂8 h) }1 N1 O% h/ X7 V+ T3 B( P
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
9 N2 ]0 W8 P: b# {, G//创建凸台5 C3 x: d% v& t9 h1 o
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
* `' P* S: H# x4 g4 S) pCATIPad_var spPadOnSpecObj(spSpecObj);4 V* Y# P2 p1 V2 j3 r+ c% U. L
//设置拉伸方向
. h+ D1 Z* k# {) q6 |7 A# Q) espPadOnSpecObj->ModifyDirection(dirZ);0 V. g- N1 C" v' L! G8 j
//设置凸台第一限制类型6 X6 I, C. k4 Y+ w5 d% E
spPadOnSpecObj->ModifyEndType(catOffsetLimit);3 f0 Q; I- i# y/ z& W3 f
//设置凸台的高度
# c- s$ Y! u7 x: w  p' J0 \spPadOnSpecObj->ModifyEndOffset(firstLimit);& {) y& F. ]" S) l4 `/ W; W( j# y
//设置凸台第二限制类型
" r( x$ N4 g( pspPadOnSpecObj->ModifyStartType(catOffsetLimit);' S  ^' T8 K" R* V
spPadOnSpecObj->ModifyStartOffset(secondLimit);! l' H* c9 H$ U+ U# U* I, ]2 F
//将凸台添加在结构树中! F9 h+ y( M& [  \1 B8 D
spSpecObj->Update();
7 d6 ?  _, E4 ~CATIGSMProceduralView_var ispProcView = spSpecObj;
$ A% D5 K  x) Lif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
' E2 M7 |" {9 C% Y, `% l8 |; `( E1 ^8 `3 H  e& v0 J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了