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

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

[复制链接]

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

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

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

x
获得零件指针; e, e& n/ G0 Z* I9 F3 ~. w
// 获得文件指针
; @, S7 Z+ X; D4 }, m) j/ ?CATDocument * pDoc= NULL;
- J1 L& I% w: K+ j; G- _CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
9 I8 N- V  i, A( e3 k& G" G% apDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针# w' f9 c  k' z+ i, O
CATInit_var spInitOnDoc(pDoc);0 W/ {8 j. g: [0 O5 C' h
// 得到零件根容器
9 g! z3 ~4 a7 i5 b
  g4 R; b: T% V  b* lCATIPrtContainer * piPrtCont =7 e9 s; l+ a' J8 c( o
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");' B; K7 D) S* q
// 得到零件指针
. }# P, U; n9 j3 u3 vCATIPrtPart_var spPart = piPrtCont->GetPart();6 W$ q7 q8 ]5 K5 T) b2 w
' O, U$ B/ J( k; D5 y
创建草图( L( C- v! v; t- U
//初始化草图工厂7 `/ P$ t! |$ t( ^" U  D7 n7 ]& l
CATISketchFactory_var spSketchFactory(piPrtCont);5 O: d1 ?2 ~1 J4 P# c( ?% F
//在XY plane 上创建草图- A7 \; [8 d8 l- s
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
$ _- R$ Z( f2 F( f2 I/ Y' M3 {. U+ @  ?
创建草图几何
% q% J0 H/ j0 [! d/ V//首先声明编辑草图
+ j1 _; q; @1 l7 i6 o7 c7 uspSketch->OpenEdition();5 Z- E" \! r$ G
CATI2DWFFactory_var sp2DFactory(spSketch);
2 C( ^' I" G7 L9 q//这里表示圆心点
7 n5 A# T: ~% {% ?& g4 d  ?double iPoint[2] = {0.,0.};! ?5 m: m/ F) S  O5 Y+ e
//下面创建圆圈) o& \' |; q7 i+ V
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());4 W6 p9 n: D) L. H/ N0 ?
CATI2DCurve_var spCurveOnLine(spLine);
% q# j7 |" L6 x7 espCurveOnLine->GetStartPoint();
7 i7 V% |. R: w5 q9 o* H  fspCurveOnLine->GetEndPoint();* W, Q% @9 g# l% @$ Y7 a
//然后退出草图:. F: g9 \# j/ \0 T( ~
spSketch->CloseEdition();
0 M4 q: d8 ~: w: v% t* t4 Q; o5 _( [( b7 y1 \

1 x5 e: O; i, N1 w% T创建约束
  R  j; }) y7 L' X# k# v# xCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
5 A2 r) @( I9 M: o6 }! D; y//定义spLine1 的半径约束
  L6 K' U7 b/ I1 }! I5 ^* RspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,. _6 k& F: n. C
NULL, Cst2DType_Radius, 0, 0 );6 G4 r. ?: c) n
//定义spLine1 与坐标原点的同心约束6 L1 n  ?& d! H7 D( f/ ?( S
CATI2DAxis_var spSupport = NULL_var;( H9 S. |# E. e/ {/ Y; b
spSketch->GetAbsolute2DAxis(spSupport);
' n3 C0 o* @* P# L0 S* G) C& r2 [) @7 n+ D6 X+ r/ X3 D: C
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),: B; @" Q3 s$ g/ }2 Q  b
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );- Y0 P9 b7 _: k4 u/ i4 q) K
+ d, f- C2 s, R; r
8 S0 J6 y8 B' M8 Q0 X
创建凸台
( ^+ s9 q9 o5 O1 a// 从编辑框中获得援助的高度  E. p# W) n6 j8 W: Y8 E7 B# @
double firstLimit = _Editor004->GetFloatValue();
' I- z/ r% r4 L8 ?& m% Cdouble secondLimit = 0.;! e( Q& n4 m0 D# D* h# Q  [2 T
//圆柱的轴向方向为Z 轴方向* l* x! r2 \! ~& i+ y% D; A6 r6 `2 Z
CATMathDirection dirZ(0., 0., 1.);
, t! ^9 g, H2 N* r  O//初始化零件工厂- b6 e$ w8 l% U3 F
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
1 C7 D1 V) ^: u//创建凸台0 Y( g4 }$ U# l% h. I0 F
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);+ D4 Y$ B& b" U9 U. k8 A3 B
CATIPad_var spPadOnSpecObj(spSpecObj);% q; y3 \0 {9 A  n) }, z" }
//设置拉伸方向/ ]0 {) u( W6 E/ b/ D
spPadOnSpecObj->ModifyDirection(dirZ);. n$ W* l0 H7 d- h" R* j
//设置凸台第一限制类型
# o, g0 s% Y; c3 ?spPadOnSpecObj->ModifyEndType(catOffsetLimit);
$ ?1 f  H* l  V" n$ h; a+ ]//设置凸台的高度
" ?8 T* e* E+ P2 GspPadOnSpecObj->ModifyEndOffset(firstLimit);
& v* q( f6 }8 n+ Z" i; |3 l//设置凸台第二限制类型
( h4 v6 ^. q" k! k+ Z) H* P3 _* aspPadOnSpecObj->ModifyStartType(catOffsetLimit);8 ?! y6 s. m0 M# ^3 i! a. Q
spPadOnSpecObj->ModifyStartOffset(secondLimit);
6 d: d) z7 |. \' G8 h8 `4 _' J) q6 p//将凸台添加在结构树中# R8 `/ a" C+ `7 i+ m* R
spSpecObj->Update();* ~2 I8 P# c7 `& U( A* K
CATIGSMProceduralView_var ispProcView = spSpecObj;6 N: s' Q! K7 I
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}3 u/ I8 w/ s8 J

9 c! D5 h  b  |' r# Z. [+ 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二次开发专题模块培训报名开始啦

    我知道了