PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针7 P% r6 B( `; z1 j4 ~
// 获得文件指针
7 {; w- |, I- b4 [CATDocument * pDoc= NULL;* w- w$ F* Y' ?! m+ Q  Z
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();0 _. l; R5 q# ~
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
; S" w5 _5 u6 q- u' ICATInit_var spInitOnDoc(pDoc);
8 \/ d% C9 ~( z8 q// 得到零件根容器
& z. R$ V1 c2 X' Q3 ?) w
1 p/ X' w/ R2 }' f- ^/ ?+ P1 D" i! ECATIPrtContainer * piPrtCont =
; L+ R2 n4 i" p, T7 x- T" b(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");2 i+ M6 @1 C3 W8 b% H6 j7 q
// 得到零件指针6 F/ ?: S* L" s
CATIPrtPart_var spPart = piPrtCont->GetPart();
' I3 n" S5 c% Q8 h
5 G: \* R2 f$ U4 O& X, E* c创建草图
9 B# R$ h  S+ v//初始化草图工厂! T5 H# B( p5 J$ V' c/ i' [
CATISketchFactory_var spSketchFactory(piPrtCont);. {* n7 [6 ~# z0 K5 Q; `' |
//在XY plane 上创建草图5 b" Q1 O1 Y3 N. u2 b- a) n
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));4 K8 n+ B" j- U) P

6 v4 p$ Z* Z. a8 m/ ^创建草图几何
3 \! `) @1 D0 L. Q//首先声明编辑草图
6 L3 s5 O- h2 a" qspSketch->OpenEdition();' a: A+ v1 o, V9 z* c# e5 t9 Y
CATI2DWFFactory_var sp2DFactory(spSketch);8 I% O* g' B4 V
//这里表示圆心点( o2 v7 R& u# f1 e
double iPoint[2] = {0.,0.};
6 R* ^) i6 o1 |7 Q5 ^//下面创建圆圈7 d3 f3 f; w3 L8 v7 L
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());/ c. K0 L( _! ~% @$ h
CATI2DCurve_var spCurveOnLine(spLine);
" d9 K6 B7 l7 K' Q; \spCurveOnLine->GetStartPoint();
+ e& O& c/ v( P$ LspCurveOnLine->GetEndPoint();8 M- O" L! g) s- v3 Y# u: i9 Y
//然后退出草图:
  Z, k# A: d8 Y6 f+ @7 b9 vspSketch->CloseEdition();0 s$ G8 |; X0 F2 |) ~& X
( T. W% N. ~. I/ Q

8 B3 r3 P* u& L  v创建约束
; r7 u. f9 j/ _0 c* k" [9 l" x& _; wCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);3 C) C& ~+ `, A+ C  y1 M5 E
//定义spLine1 的半径约束  m( X) W# j0 Q7 \1 d5 s
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,- d- h% \5 ~' x0 }  I5 s
NULL, Cst2DType_Radius, 0, 0 );( m9 M1 p$ f5 {
//定义spLine1 与坐标原点的同心约束
4 N" M8 J6 N0 I* q$ `5 JCATI2DAxis_var spSupport = NULL_var;3 j. X( P6 B0 K2 k, D& m/ T+ r& V
spSketch->GetAbsolute2DAxis(spSupport);2 p/ W3 B+ o- u# @5 l. ^- O/ q
) o2 R5 F/ p" ^& A' Y
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),0 T  i1 T, [2 M! l
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
3 Q: P& i' K* f2 c1 `7 N4 L+ f$ r3 j4 u/ k$ W9 V

; p$ o+ F" o) `* W  k0 I/ |创建凸台
6 |+ E; p, d/ D. h. \6 y5 t// 从编辑框中获得援助的高度
6 D7 D% H# ?- f) M6 bdouble firstLimit = _Editor004->GetFloatValue();7 l' ]( Z8 ~8 c5 Z5 v- ]) _) d' _+ E
double secondLimit = 0.;
+ O0 C2 I3 ~, ^$ B//圆柱的轴向方向为Z 轴方向
& O/ A6 r8 c* YCATMathDirection dirZ(0., 0., 1.);
+ y' k0 U# [+ ?! n' U5 Q! j7 ^//初始化零件工厂
$ q" N+ c! u1 f" F1 }CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);( T7 K, s0 ~2 |. O/ X$ e* m
//创建凸台3 R2 [% `+ M% ~! Q/ h
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);" ^0 h9 p7 ^/ J
CATIPad_var spPadOnSpecObj(spSpecObj);
, J8 ~9 ^+ F+ C. Y% f//设置拉伸方向' H: b  x5 U$ ]) ?, P: l) U" R6 @% Y3 ?
spPadOnSpecObj->ModifyDirection(dirZ);, Z- j# I/ x% i1 L
//设置凸台第一限制类型
2 P7 H0 `4 Z# H4 z) \0 s& k( dspPadOnSpecObj->ModifyEndType(catOffsetLimit);9 C2 X( `/ I% M: R  M$ O# z6 Q
//设置凸台的高度
3 {) n; S0 P3 g8 [# HspPadOnSpecObj->ModifyEndOffset(firstLimit);: B# W. }1 ]! \. J) M' e: V
//设置凸台第二限制类型) ]: P2 M" v; B0 p, D* n' q1 y/ C
spPadOnSpecObj->ModifyStartType(catOffsetLimit);
3 m' d; s+ X) a3 {1 t8 M* D* o- O* LspPadOnSpecObj->ModifyStartOffset(secondLimit);' m3 m$ \; {4 Y
//将凸台添加在结构树中
' r( F' k' _+ _% H# ospSpecObj->Update();5 o# @% I$ W3 v( F# y9 G
CATIGSMProceduralView_var ispProcView = spSpecObj;6 `/ c! |" d7 v5 z$ A0 p/ }7 o% |
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
3 [; a' W1 D0 C4 S# e
. a" {0 X/ E+ E/ c7 ?: l  ?! U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了