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 2859 0

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
5 b" ~+ l$ u8 Y" R% I; z// 获得文件指针- `8 G! u! G! M$ G+ w; f3 Z2 m5 T
CATDocument * pDoc= NULL;2 I8 W, G6 \2 j
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
& h% e* t' v; F' y& apDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针# i. @) E, S8 V3 g, u
CATInit_var spInitOnDoc(pDoc);4 N- Y; R; t: ~' r2 a* I& U. J6 U
// 得到零件根容器! K5 ?7 t& Y" n2 F. F/ b

5 _0 M6 s# g8 W! aCATIPrtContainer * piPrtCont =( N  ]2 o  y0 M  I
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
( l- x: w3 ]( g/ P* G// 得到零件指针) h* a$ G. v8 S$ }3 D
CATIPrtPart_var spPart = piPrtCont->GetPart();6 d& r0 q! y* l! F6 N
7 a; [! S0 P/ I# ]( [2 T
创建草图
  _5 l: v* @7 I. i" i6 U//初始化草图工厂
' Z+ L2 t5 t; [# j  T1 B4 u9 xCATISketchFactory_var spSketchFactory(piPrtCont);
: _9 S5 a  E2 P0 h( ]//在XY plane 上创建草图# L5 w& U! V: M. [! V0 @, y
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));3 L  C4 v3 h- v

" _/ K1 R3 O2 {4 P/ R) d3 I创建草图几何8 P/ j! R% ^* d6 Z1 M$ P
//首先声明编辑草图
. y# M. g( R7 `3 T+ AspSketch->OpenEdition();$ K" I0 U# x7 k" `
CATI2DWFFactory_var sp2DFactory(spSketch);
  M4 |/ Z" y" H& M$ y- F//这里表示圆心点: g0 w1 c# `( Z1 ^9 i( {
double iPoint[2] = {0.,0.};+ f8 F5 w" A% m, ^+ ?
//下面创建圆圈
8 C; E" d1 I: s2 n+ k' tCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());' l7 H  P+ P- \( Z: {7 ^
CATI2DCurve_var spCurveOnLine(spLine);
; ^: |( h# v% c6 G- {8 NspCurveOnLine->GetStartPoint();4 q7 A" y1 A5 Q% ?# ^- r2 |% I
spCurveOnLine->GetEndPoint();* Y0 r0 u" Z" k& y# S
//然后退出草图:, X7 r0 o8 g. e/ X# P
spSketch->CloseEdition();: i6 [1 D3 z6 s# B  e& U
' }" I( g8 B2 I2 h! h

  B6 e0 i) K" Z- f# o  y2 _' \& A创建约束$ ^3 S+ `) K' k+ f6 ~% C
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
% l6 J& `7 a7 r/ i5 X5 [, p//定义spLine1 的半径约束2 k& W! _4 O! _$ i% ^% X
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,; e# K+ q2 w7 A# x
NULL, Cst2DType_Radius, 0, 0 );. R4 ?( |: v$ c8 i6 b
//定义spLine1 与坐标原点的同心约束7 k. U0 g; R' T2 Y1 l- a% y' j5 h$ w
CATI2DAxis_var spSupport = NULL_var;+ P' ]9 n/ S. W% ^) |# A7 a
spSketch->GetAbsolute2DAxis(spSupport);
7 Q& [" Q" }9 u( E( J" @; {+ T. E# O8 t  W+ I
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),4 s; E" B" o( i5 Q  f& P
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
3 W) s2 G4 A1 E! ?! y3 u5 Y4 @2 @. m0 F, k
* h8 U, M" D: c9 s3 X$ T
创建凸台
: ]# p# g: z' C! _1 t/ G// 从编辑框中获得援助的高度; z' p- h! S" L# z3 }- p8 K5 O( I
double firstLimit = _Editor004->GetFloatValue();: M5 a% n* a1 G
double secondLimit = 0.;- g0 B1 [3 k  F$ O% E: t+ n
//圆柱的轴向方向为Z 轴方向% w$ g" ~* M$ x2 M1 G* h
CATMathDirection dirZ(0., 0., 1.);  @* x6 i* O6 w5 m" q0 m
//初始化零件工厂
7 w; c1 V: X) d: F8 y8 iCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);2 R) _9 T8 n  E( @; i$ T; S+ Q' p
//创建凸台
. P- M; F2 Y$ {5 b) A# Z5 _CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);5 [( b! D/ P- A) K5 _* z( E# ]2 ~
CATIPad_var spPadOnSpecObj(spSpecObj);
9 k/ j$ b0 O7 r; j2 |//设置拉伸方向
% R) M/ ?4 `& p4 R- b  GspPadOnSpecObj->ModifyDirection(dirZ);% m" V; v. q6 h1 L- B7 c% z
//设置凸台第一限制类型
. r3 F# P0 r# u2 ^9 rspPadOnSpecObj->ModifyEndType(catOffsetLimit);5 J  F' {6 H, @' e& A
//设置凸台的高度6 s3 o  D- J" v" a8 c" i, A
spPadOnSpecObj->ModifyEndOffset(firstLimit);
9 R5 t1 C  X5 \2 }9 y4 i3 N) |0 H//设置凸台第二限制类型
( k  X1 ~0 N/ U, o4 a: T7 n# SspPadOnSpecObj->ModifyStartType(catOffsetLimit);! D4 W4 P: e3 M1 P2 J( Y+ i& l
spPadOnSpecObj->ModifyStartOffset(secondLimit);
9 E$ X: L7 z# U1 c4 W- I6 [//将凸台添加在结构树中
  O  X% i! d1 }# R  O1 bspSpecObj->Update();
: _) g# ~1 ?2 s9 i: gCATIGSMProceduralView_var ispProcView = spSpecObj;* x! F0 q8 r0 S* ^/ K' Q: v7 t* U
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}, X0 N2 b" i8 N6 t
: s: s# F0 F" \7 m
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了