PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针% p- N0 Q  l: I
// 获得文件指针
$ N+ q! Z& _2 {CATDocument * pDoc= NULL;$ |# z( M# [0 Z! q& J& ?
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
0 `' w4 _/ \4 X* DpDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
; y. f( z0 U- g9 ICATInit_var spInitOnDoc(pDoc);
& z# l! ^7 c# L( ^6 b% T$ T4 O// 得到零件根容器
- k) V/ f) N! e) Z: b( @. E/ r
5 T, L' O% D" Q) `, z) E( X8 OCATIPrtContainer * piPrtCont =
; u( {  |* B; C" n; x" q$ ^# V(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");1 x" y( ]+ a8 B/ B
// 得到零件指针
1 p1 }9 O+ D. d% l1 P, }! ?7 rCATIPrtPart_var spPart = piPrtCont->GetPart();
, Z1 w  s' R5 H. c! F" R% j( O
' u0 ~* P; D( Y7 i# [创建草图" s$ e9 L# i$ U0 z; ?9 U
//初始化草图工厂
7 z4 y7 B3 }9 s; S0 @  HCATISketchFactory_var spSketchFactory(piPrtCont);7 \5 u- ~7 S3 e1 g
//在XY plane 上创建草图
7 |$ c, o$ z: m: N5 P2 k' aCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));2 K! v7 g# e* Z

) C, T+ T! F' _$ B8 W" {$ v' N3 Q3 w创建草图几何
9 y7 [* f( R' V6 D1 E8 D8 T/ v% }9 {//首先声明编辑草图# H8 o6 |, N) M6 w; I# D
spSketch->OpenEdition();) c' @3 ]! r& f& C: v( O# z
CATI2DWFFactory_var sp2DFactory(spSketch);
/ ?0 w6 }+ F: m2 K, G  ^//这里表示圆心点
" K: i+ `6 ^5 ]2 l4 O% xdouble iPoint[2] = {0.,0.};# _( K2 f" a" e0 F; G; z5 r% E
//下面创建圆圈
4 ]; m! {& R% W' I  N# p$ ACATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());9 ?0 F& A. v+ \
CATI2DCurve_var spCurveOnLine(spLine);! x1 R! W) X* v$ a0 B0 N) P
spCurveOnLine->GetStartPoint();
: r) [, I: H1 w' {6 O. cspCurveOnLine->GetEndPoint();9 }. v9 h6 K2 D4 c% t/ f; A
//然后退出草图:8 I6 {$ L" k1 g
spSketch->CloseEdition();; h; D  b( R( |# u1 h
8 n3 X: i: S4 r2 s3 Q
6 g& Z, u& K8 i( E6 |
创建约束
+ {( [9 d5 d* l; N5 f! r8 r- oCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
3 t" U1 \8 e! m4 d' G' l* p//定义spLine1 的半径约束  T, M9 M5 V  ~( Q% x
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,. j+ |9 F, |' d8 f' s
NULL, Cst2DType_Radius, 0, 0 );, n7 i' K& T) {) b( ]
//定义spLine1 与坐标原点的同心约束
. x, V& c. h+ R; t6 J" uCATI2DAxis_var spSupport = NULL_var;
! K6 n$ F& i5 [% q. v  L0 m7 `spSketch->GetAbsolute2DAxis(spSupport);) @/ C! q+ G* T% S6 s

! M" k5 `" _& P: d  zspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
& o8 }% `" J; E$ t# M( rNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );/ L! \: ]8 }, E" Y' Q2 J+ W
5 A, E2 ~5 G5 ^% Q8 D( N& Z2 o
% f! ?, X/ G( L  S) J
创建凸台4 m# F' O* N" [. T3 v( @; t4 m8 |
// 从编辑框中获得援助的高度
" l# S; k. P! z7 G: x+ y! s5 Zdouble firstLimit = _Editor004->GetFloatValue();
0 H& T5 A6 c8 A2 adouble secondLimit = 0.;/ [6 G- D7 B7 e* H
//圆柱的轴向方向为Z 轴方向0 e5 p3 N1 e1 t
CATMathDirection dirZ(0., 0., 1.);5 h9 c/ N4 _' J2 Q/ O" K5 b- p4 Y
//初始化零件工厂
) y0 b4 ?( ?4 |: f% FCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);: q- j4 |( Y9 Q$ B) q; F
//创建凸台* b0 m  k( ]; N# u' v
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);7 ]( a9 P7 o4 Z4 z+ y& S
CATIPad_var spPadOnSpecObj(spSpecObj);
- N, p3 B5 R- O1 v//设置拉伸方向0 [; e4 w; m: a6 ]* U3 u% U
spPadOnSpecObj->ModifyDirection(dirZ);# g) ~& g: l' p0 n
//设置凸台第一限制类型. S. x8 v) z8 U( L$ U- b; g9 \6 U+ h
spPadOnSpecObj->ModifyEndType(catOffsetLimit);& C) H9 B$ k- n, T& F
//设置凸台的高度
/ L8 O( n' d/ K7 w/ g- gspPadOnSpecObj->ModifyEndOffset(firstLimit);& L  t9 Q: T3 g  J( y
//设置凸台第二限制类型
! U6 M( |$ `. @- qspPadOnSpecObj->ModifyStartType(catOffsetLimit);+ S/ a! g2 W% A3 f( q
spPadOnSpecObj->ModifyStartOffset(secondLimit);
6 |# Y2 O) z' e+ E- c$ j% k4 B3 r//将凸台添加在结构树中
* k8 W, s! y" C9 w0 JspSpecObj->Update();
: [" B2 {  g2 }* }  eCATIGSMProceduralView_var ispProcView = spSpecObj;. M* i( K% \( g
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}* }# r  W" ]- O1 D: {5 B
% @! a. o' Z5 x' e( O
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了