PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针8 ^) K$ q! G; @1 }" T  F0 K# c
// 获得文件指针+ ^6 v3 d# j& L$ ~0 |: n* D
CATDocument * pDoc= NULL;
9 P% M+ \% n! R; M# LCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();) E- ]. L, d8 B& d" T
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针, V9 {5 t2 W7 N6 i3 {
CATInit_var spInitOnDoc(pDoc);
8 E. Q$ }# U6 ~2 c) _- j6 k// 得到零件根容器
+ z# L' k$ ^. }6 n: x3 i+ _5 Q* T1 x* f
CATIPrtContainer * piPrtCont =
" z5 y. E. `0 u- g& I# c(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
7 |1 j- U9 j! N1 i* z7 J: B9 N* C// 得到零件指针
, s  n7 w2 |% H0 X" z& [0 cCATIPrtPart_var spPart = piPrtCont->GetPart();
5 a0 h/ Q. s7 Z' c% h
0 h; `* J4 y2 s+ T8 l& q创建草图
& B/ f8 Q$ }2 y6 X3 U" t//初始化草图工厂
+ ]' R: p. f8 l3 u" j0 Q2 L% T5 kCATISketchFactory_var spSketchFactory(piPrtCont);, Y0 R- N  r+ r5 ^
//在XY plane 上创建草图
& k, @) `$ a8 HCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
3 b3 J, L# J/ n! [  n
1 I" F$ x1 `, {+ d( x. n9 A( k0 S7 P创建草图几何3 k  w" A1 `- Y4 N) F% |7 a
//首先声明编辑草图
2 ^8 M/ O: v+ a8 AspSketch->OpenEdition();
! e; R, T! D# W2 iCATI2DWFFactory_var sp2DFactory(spSketch);
3 u$ d# b4 u. F$ U1 E: i; b//这里表示圆心点
( Y0 S) v6 M8 V" z! M5 k& _double iPoint[2] = {0.,0.};
4 d4 X2 }* }  A//下面创建圆圈
3 K) `9 d2 Y% ]/ [CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());7 {- F) i8 m0 C4 c& i/ ]
CATI2DCurve_var spCurveOnLine(spLine);
8 x0 U) s8 ^1 Q0 S1 N  U* \spCurveOnLine->GetStartPoint();/ r% ^0 Y6 I6 U4 g( q
spCurveOnLine->GetEndPoint();
2 j$ S% T4 c4 m//然后退出草图:
& G; O) o% u  P$ Q2 c8 M- \$ cspSketch->CloseEdition();- J1 ?6 w$ }4 ?* T- R2 C; h
4 o" c# Q7 a8 \/ V! D7 k+ W7 m
$ |' B4 Z: I; T# d! Y- r
创建约束; h/ h0 `/ O  k' ?
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
/ n: u& K3 ?  P) ?3 H1 W//定义spLine1 的半径约束* }! `  c  o  Y; W! t8 F
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
& \* T' G" n+ C' c5 ENULL, Cst2DType_Radius, 0, 0 );9 _& |: L: s" p* b! v
//定义spLine1 与坐标原点的同心约束
% R0 T4 ?: I' V( l; A( }- nCATI2DAxis_var spSupport = NULL_var;9 J, T5 o) ?* w4 ?
spSketch->GetAbsolute2DAxis(spSupport);, a+ t$ ]7 \0 H, E, r) x. _
9 N. Z" R# W/ [% q& h* F- [" \
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),4 d7 Y6 |8 `9 B8 q  V
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );4 K. ~4 G4 ~" m" L% Q

) |  z, X3 r% T2 I9 @& @$ p( g. C& J# j1 N: y1 F: ~7 {& p
创建凸台) d! R4 R& D' _3 u, g/ A
// 从编辑框中获得援助的高度
6 ~7 I2 m/ G7 N  q$ ?+ a$ I2 P% s/ rdouble firstLimit = _Editor004->GetFloatValue();
% p1 ]( A, S$ xdouble secondLimit = 0.;4 P( ?. U! \5 ~% R9 W0 V7 p# n9 g
//圆柱的轴向方向为Z 轴方向. {) m& R# b8 S0 X( E! P4 v( K- M1 v
CATMathDirection dirZ(0., 0., 1.);
, `: K4 L: l$ L- C: Q4 R; N7 J//初始化零件工厂
  T9 c7 D& d; z8 d% |CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
3 j2 q4 t5 w: \, A" ~8 t- a  i8 B//创建凸台
9 g8 M/ }. c  l9 k  w" |: J+ E0 ~CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
1 d* P( F) |3 C; D1 }$ z4 hCATIPad_var spPadOnSpecObj(spSpecObj);
) b5 a$ Q8 n) Q7 I1 T. J& \//设置拉伸方向
1 E4 O7 O; W3 n- BspPadOnSpecObj->ModifyDirection(dirZ);
( r# @; {: Q. J+ T- D0 ?//设置凸台第一限制类型
! }% u7 D0 q$ f, _& X4 U" JspPadOnSpecObj->ModifyEndType(catOffsetLimit);. ^9 g: p1 ^+ e; H; y  G. F- }$ z
//设置凸台的高度# R1 Z( U' |& H
spPadOnSpecObj->ModifyEndOffset(firstLimit);
5 s& A+ H! u: d//设置凸台第二限制类型' b# u- k5 Z8 d# c' o& Z/ b. y
spPadOnSpecObj->ModifyStartType(catOffsetLimit);7 n" n$ Q# y; v( h. H
spPadOnSpecObj->ModifyStartOffset(secondLimit);
1 P$ `7 v: S9 Y7 R//将凸台添加在结构树中
% i# r) w6 }% t4 @: LspSpecObj->Update();
6 G2 R" E. A0 @( v0 k. HCATIGSMProceduralView_var ispProcView = spSpecObj;
; E" W6 `" d7 ~if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}9 I  L( E' o. l+ E% _8 |! A2 y

) K- k! q/ I7 m( z+ x
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了