PLM之家PLMHome

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

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

[复制链接]
admin 发表于 2018-2-22 13:28:03 |阅读模式

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针- _% W7 x4 r$ ~0 h7 Z7 T2 }
// 获得文件指针5 C( A2 x3 I0 q! S" G- Q! `2 P
CATDocument * pDoc= NULL;
/ g" h* V# P( [% |9 u8 F$ XCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();8 {  j5 m8 }- j5 I, s, \- V  g
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
- v* V1 k( g' X  u- n- eCATInit_var spInitOnDoc(pDoc);/ n" y  Q4 Y8 _' Z
// 得到零件根容器
5 v! n1 i3 D7 D3 E  e6 F; f2 b- o4 U9 v/ A
CATIPrtContainer * piPrtCont =, {+ u% w! T) b; [
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
2 t+ F/ |" e: M3 P4 S// 得到零件指针4 |3 |# E, y6 I) C
CATIPrtPart_var spPart = piPrtCont->GetPart();6 h/ _& h2 _, t9 l9 J9 a
  Z& U' K( S7 P$ _: l- N
创建草图
, }8 `  k9 ~$ K& J7 h/ e( Y7 Q7 Y9 g//初始化草图工厂, `- i0 i) W% O* m# [; s
CATISketchFactory_var spSketchFactory(piPrtCont);
/ T, T  z6 O, ^8 _- t//在XY plane 上创建草图! o( O! L$ x+ F/ b7 `
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
* \- v' S4 s9 p; V% i/ ^7 K3 U( D; k) M1 {6 |  T
创建草图几何: P2 u8 P$ w+ C5 g0 p
//首先声明编辑草图
5 ^2 l+ E/ B3 aspSketch->OpenEdition();  T1 D% o7 V6 R/ B, K! L
CATI2DWFFactory_var sp2DFactory(spSketch);( }! ]9 W" t& Z) w! o" m
//这里表示圆心点
7 Q; f$ A  u/ Ldouble iPoint[2] = {0.,0.};) E- T; u; x% e) y+ I6 U
//下面创建圆圈' F& s! h7 p/ I- Q) a7 j: i
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
; c0 M0 D; F# x" Z- \/ n# J  SCATI2DCurve_var spCurveOnLine(spLine);
$ o' Q1 P( j3 V, U0 |spCurveOnLine->GetStartPoint();
/ G. {. X" M$ u" M" A3 E9 F1 @$ hspCurveOnLine->GetEndPoint();9 a0 H% n( ^) G! q
//然后退出草图:
; V$ }+ Z- _4 J& u, J0 f  w+ bspSketch->CloseEdition();" ~0 h% u0 s2 F# @" K

- B9 X# C+ ~. V* X3 n1 [) M9 g7 D2 T2 y* t4 L$ ]% F
创建约束' ?0 x; q$ {: I1 ^7 u1 F2 C
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);3 P# B( ^0 o/ w& Q/ y% u
//定义spLine1 的半径约束  r! q0 F: u; w0 g. c
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
; Z7 j6 l( n. D$ T6 A8 s; j* g+ iNULL, Cst2DType_Radius, 0, 0 );
8 s( ~" x. c: r8 j6 f//定义spLine1 与坐标原点的同心约束3 ~( g0 I! r& v" k& u
CATI2DAxis_var spSupport = NULL_var;
  b" M& A$ I" j+ i/ P+ U$ pspSketch->GetAbsolute2DAxis(spSupport);  Z, s" w9 G. U+ p2 U

1 r4 }8 e" }0 c1 R4 m/ s$ T& ]spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),2 H9 Q8 O9 y% Q  Z; F: I7 G1 U
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );/ {% I, f( H) \+ r
3 v" E- }: i1 T

  T9 L9 m% B0 I4 ?创建凸台
$ N7 h. }% J! [' m, v* H- W5 d// 从编辑框中获得援助的高度1 t. x) z% ?5 q* W  V1 ]
double firstLimit = _Editor004->GetFloatValue();% R& I& M3 d" z+ U9 l9 r) O: J
double secondLimit = 0.;5 K  j8 z  n6 G- ~
//圆柱的轴向方向为Z 轴方向( w, R3 a9 y8 C' k% V" B/ O3 |; `6 T7 \
CATMathDirection dirZ(0., 0., 1.);
5 D& F( |. x9 h& _0 K! @% Z4 {//初始化零件工厂
/ I9 ^/ {1 R' T7 YCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
( _) D2 l% `% b. D, ^0 @//创建凸台( b6 y2 o5 C* I, r' l7 A
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);+ g) U9 w& D  Z* B& {: w
CATIPad_var spPadOnSpecObj(spSpecObj);
/ b" ?  p9 f+ L$ w3 K- Y//设置拉伸方向
' i5 L6 p6 i# M. U- N  Y, L" o- DspPadOnSpecObj->ModifyDirection(dirZ);
7 D" x+ P' s4 v. q) r$ \5 I//设置凸台第一限制类型5 }2 h& a6 D8 n: r. B, V6 H
spPadOnSpecObj->ModifyEndType(catOffsetLimit);
( O! ^$ g6 G! C  l& x9 P//设置凸台的高度5 u# V6 ?$ N4 |2 ^) S" i
spPadOnSpecObj->ModifyEndOffset(firstLimit);
, q, ~: K& I0 {! x7 r" v! ^) ^( H//设置凸台第二限制类型
9 ]8 [1 z/ S. X' E1 c: E6 fspPadOnSpecObj->ModifyStartType(catOffsetLimit);
# ^! N: |" I5 {! Y9 |spPadOnSpecObj->ModifyStartOffset(secondLimit);
+ F& s1 r9 g  [3 S//将凸台添加在结构树中
7 ~* o4 k- B& v3 W0 U& TspSpecObj->Update();
8 ^: l0 v$ k9 TCATIGSMProceduralView_var ispProcView = spSpecObj;
( ]- r7 w/ A9 B8 N8 Z- |1 zif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}! _" T8 @4 Q0 |; V9 P# m

9 a7 m1 D& b1 u1 p8 D) i4 A
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

关闭

站长推荐上一条 /1 下一条

  • 发布新帖
  • 在线客服1
  • 在线客服2
  • 微信
  • 客户端
  • 返回顶部
  • x
    火热推荐

    PLM之家(plmhome.com)提供专业的实施开发培训

    NX二次开发基础培训 | 已 80 学员 参加

    NX二次开发高级培训 | 最高性价比

    CAA二次开发 | 值的一试

    Teamcenter用户基础入门 | 虚拟机赠送

    限时优惠,原价3000,现价888

    哥已知晓