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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
获得零件指针: s" p2 @" k9 ]( o; ~6 x1 L$ b- S* S
// 获得文件指针
2 Z- E- A  Q, a3 f' V- mCATDocument * pDoc= NULL;
$ f1 p' n* \+ iCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
; q: G+ Q1 r6 Z3 h. X% b' p2 wpDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针' V+ x9 w3 b' o+ H
CATInit_var spInitOnDoc(pDoc);
  [# n+ m, \* H+ O, P: L/ x+ m// 得到零件根容器. l7 ?  }: i: |
# ]/ }8 A. {+ B. ?
CATIPrtContainer * piPrtCont =
: B) V7 g- B0 A(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
" {# J5 h% L* T9 k// 得到零件指针3 G6 g; I& j- G4 c0 Q0 ?% e# _
CATIPrtPart_var spPart = piPrtCont->GetPart();' q+ E  q  F3 K

9 |3 D( V4 _3 f  s5 ^: _) H& E创建草图
! ^6 f0 P  X" P/ O7 c/ J( G( H//初始化草图工厂9 Z' S/ H7 a9 [$ F
CATISketchFactory_var spSketchFactory(piPrtCont);
; x6 a! X$ c9 M//在XY plane 上创建草图
* r% F, P4 B$ }& L, r0 O; |: UCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));" T8 s8 z( E" F2 R

) ~# |) o9 c4 h( j' J- t$ Q  i创建草图几何
' @- g% @8 Y$ o1 Z//首先声明编辑草图
$ @: ?9 B: A7 p( C; z* |: HspSketch->OpenEdition();# {, f# q* E' S" t% S
CATI2DWFFactory_var sp2DFactory(spSketch);: I5 G3 _9 w! d9 Q
//这里表示圆心点
+ M( ?) A2 ]* X+ C3 J, ~. S- q0 Fdouble iPoint[2] = {0.,0.};
% X. R* X7 ]- g) n9 L//下面创建圆圈* G; b: G- B0 i  J% V
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
; k2 A' |: n9 l, |5 b+ XCATI2DCurve_var spCurveOnLine(spLine);: H6 b1 ]' q5 c+ q* _1 I5 ^0 n  w  C
spCurveOnLine->GetStartPoint();' g% m" {9 y! r$ g2 Z7 ]8 m% V
spCurveOnLine->GetEndPoint();
7 E) a2 B2 \( `  {) [* z//然后退出草图:, N* u/ ]2 L- ^) B) S. Q/ t/ W
spSketch->CloseEdition();
& C/ m3 M) X( B( L) c1 g! E! M! e
) a* r" r5 s2 U3 S
$ _5 O5 ~& D3 x/ h. A创建约束
; I, W- J8 n* l8 ^CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);; e* j  H; n2 B5 g, y+ W6 }7 S9 `
//定义spLine1 的半径约束
* i6 W# K1 s- [" T) ^: o0 Z1 Y! IspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,! O; h7 q; a$ G! f1 S
NULL, Cst2DType_Radius, 0, 0 );5 r6 P+ J; w& W4 E% [6 H6 F
//定义spLine1 与坐标原点的同心约束1 F2 E. D; D/ z4 o" Q# L
CATI2DAxis_var spSupport = NULL_var;
' i! [8 x4 {) S' wspSketch->GetAbsolute2DAxis(spSupport);# N8 T. j; e* `. `: v0 C

9 p7 ]+ k/ y) d+ i8 q0 M7 _8 ispConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
: n: c4 j" M4 v( u' k% D+ ONULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );9 z3 S/ L1 L- j
& `" w- K5 b1 \9 t- Y6 I6 s: m0 z
" @4 C' a$ S% h6 _3 G
创建凸台7 g9 M. Y2 S2 ^8 j; j# ]& l- [* Z
// 从编辑框中获得援助的高度/ w4 n1 M$ ~- L0 h$ h6 r
double firstLimit = _Editor004->GetFloatValue();
2 [! Z$ a; d" Zdouble secondLimit = 0.;- c: Z7 b7 ~: g5 s. J- D2 N
//圆柱的轴向方向为Z 轴方向
  k/ g( D3 b' l* y  X8 L5 ]% wCATMathDirection dirZ(0., 0., 1.);, v! O4 g. v3 U% R
//初始化零件工厂
' _7 P- Z8 H' b0 \CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);5 I( I  r% O" g/ w4 O& l
//创建凸台, A% F' r" E$ x4 ]6 N3 a4 }
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
" g1 i# y% S# Y) q1 N; \  q" Q9 xCATIPad_var spPadOnSpecObj(spSpecObj);
9 x% x2 {3 P, u/ q- q//设置拉伸方向
1 n) j! W9 z! |9 M% ~  @9 X: OspPadOnSpecObj->ModifyDirection(dirZ);0 e9 F5 k2 k# U4 C. l( ?7 E7 l
//设置凸台第一限制类型; }7 n' I$ f$ Y% b1 F2 F
spPadOnSpecObj->ModifyEndType(catOffsetLimit);  F8 d9 v+ }) a5 o: S% ~9 _$ \7 i
//设置凸台的高度7 U) e1 ?2 U: f- N7 O% F/ N0 q$ s
spPadOnSpecObj->ModifyEndOffset(firstLimit);6 r* x4 q; ^: u. o
//设置凸台第二限制类型
! U: V$ ]+ z& r0 u, P6 H0 yspPadOnSpecObj->ModifyStartType(catOffsetLimit);
' e! O8 h' j# TspPadOnSpecObj->ModifyStartOffset(secondLimit);% \( m/ y/ s3 z# s
//将凸台添加在结构树中, _6 |9 G) h( y8 o) z
spSpecObj->Update();
3 o  F. w8 s, M! zCATIGSMProceduralView_var ispProcView = spSpecObj;
" y/ u5 r) w: w$ I" B7 M" t; Aif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
* e; I4 I7 X+ e) r4 c, R; S7 ?; B( t$ A, C& y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了