PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
, g% v) |: |, x  B// 获得文件指针7 h0 V0 ^/ ^0 M+ F, P5 f' o" y
CATDocument * pDoc= NULL;
% i7 x+ [" e0 j. NCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
$ v6 ?7 U) Z; D  Q, QpDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
. {" h; c* e) `CATInit_var spInitOnDoc(pDoc);
5 _5 I  c1 Z# O' G/ e/ U// 得到零件根容器* ?1 g) R2 u" J5 u$ l) J

5 U' Z+ L& @2 G6 O, {CATIPrtContainer * piPrtCont =  r% O+ g- t4 ^  I( V3 g
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");- ], ^& v7 V) z6 F5 @0 p
// 得到零件指针
  }; X. n0 h1 w& @* f( CCATIPrtPart_var spPart = piPrtCont->GetPart();
5 x# ^/ p; e7 S7 e1 ~& \1 Y0 d# d! a; s/ u
创建草图8 C/ R1 h5 N" Z6 Q* I) m& V
//初始化草图工厂4 \/ P0 F+ z9 J/ ~
CATISketchFactory_var spSketchFactory(piPrtCont);/ s9 h  i# j& y1 a, Y
//在XY plane 上创建草图
+ P# d! g! Q8 |6 a; o$ HCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));7 {) y: y; c4 ~. A' o1 Y
& i4 ?2 c6 q1 o5 Q, ^
创建草图几何
& c6 y* _) _0 f1 J8 w/ o- o: h//首先声明编辑草图! U% E* y& }/ t* B0 Y
spSketch->OpenEdition();
1 k) Z( Z' E2 k! F8 l3 n0 eCATI2DWFFactory_var sp2DFactory(spSketch);( X( u" Y. U1 o2 b2 z
//这里表示圆心点
8 M4 A8 e/ V# @+ ?double iPoint[2] = {0.,0.};1 h7 `& e1 a/ p9 H* r, S: n7 s2 v
//下面创建圆圈
' y+ Q/ i! k5 f9 T, MCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
/ f- y- C  N# r$ VCATI2DCurve_var spCurveOnLine(spLine);
3 P) ^4 {  b9 ^, H% T$ m+ L0 [spCurveOnLine->GetStartPoint();
( \4 I! \& T, R- CspCurveOnLine->GetEndPoint();9 Z) b6 p5 X# s! \
//然后退出草图:! Y& ?' K# x8 K- l" a
spSketch->CloseEdition();
3 Z7 T, |; A+ L5 C) _$ l2 Q8 V; c7 [8 l! b9 \: {1 t
1 K) S5 F" O( c$ d/ k& s4 N
创建约束
& ~, b/ Y3 S5 I8 M/ z$ HCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
2 ~! h+ v' @+ a# ]0 ?//定义spLine1 的半径约束# V' A; q" Z/ K- K+ m9 @, B
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,  z9 Z- z' C( |8 }6 s" h, C0 ^
NULL, Cst2DType_Radius, 0, 0 );; z; M$ O+ i: @" L: k' R9 R' E# F
//定义spLine1 与坐标原点的同心约束
* H9 U4 ~( x2 g  N0 ]CATI2DAxis_var spSupport = NULL_var;) y, M3 w( U3 ~
spSketch->GetAbsolute2DAxis(spSupport);1 f+ E" L( b! q1 p5 a

( A2 l* u5 x! W( |1 q) o5 zspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
8 m) L4 ^. I' XNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );( u( G$ z# {2 X! q$ T1 H
% n  K4 u7 S& A1 C  W4 T/ |$ C. p* @
  o7 B; f7 X8 I, O3 Y' B
创建凸台0 l, T# M# o8 z
// 从编辑框中获得援助的高度: p* u* f/ o) s. U6 v- c5 U
double firstLimit = _Editor004->GetFloatValue();
* @& |) n! L9 J; Adouble secondLimit = 0.;
. \% D5 {- @4 Y* V8 a9 X1 C$ ~//圆柱的轴向方向为Z 轴方向$ r7 r, V9 t4 ]& o/ f; U
CATMathDirection dirZ(0., 0., 1.);
4 x! L, F6 C! w1 `. ]8 z$ J+ \//初始化零件工厂
/ ^7 n4 D9 V! q! ^8 f  wCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
0 e- W# p' W7 A- R( k0 q% `//创建凸台) Q; z/ t/ V1 z2 U
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);8 Z) s+ S' U8 R& V4 s
CATIPad_var spPadOnSpecObj(spSpecObj);
& ^8 @! d& i9 z& z2 o//设置拉伸方向6 ]" w: W& y0 M' w/ b
spPadOnSpecObj->ModifyDirection(dirZ);; c9 G1 {# H  w; w
//设置凸台第一限制类型
8 ?2 z; }, Y$ k+ m5 G  f9 ospPadOnSpecObj->ModifyEndType(catOffsetLimit);- J: ?: T, ?9 O& b- ^
//设置凸台的高度8 ]/ u$ y& S: \9 N) q; N) n
spPadOnSpecObj->ModifyEndOffset(firstLimit);
5 q, E7 X# G5 V1 Y//设置凸台第二限制类型
2 _  C+ \5 f5 S* ?9 l, \spPadOnSpecObj->ModifyStartType(catOffsetLimit);% o4 i& p  g7 T8 m9 D/ N
spPadOnSpecObj->ModifyStartOffset(secondLimit);
9 n) j; S( t" p" H, L6 H//将凸台添加在结构树中
& f7 w1 {5 R; ^: C+ S5 BspSpecObj->Update();8 H, C7 T  x/ o  n  i# S! n
CATIGSMProceduralView_var ispProcView = spSpecObj;
; q* }9 W! M9 x/ p  ~9 t' p0 Kif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}& `7 S$ t% P8 F( @/ E8 Z
+ {1 [+ z4 \9 H2 h7 x2 D4 I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了