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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针: b0 R+ n1 v3 h- F! W
// 获得文件指针! B4 B: m8 Q/ Z* U
CATDocument * pDoc= NULL;
8 r, V9 V$ r3 }5 J& `; TCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
) `* S6 z' I; r0 O: Q! u. h- wpDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针# ^2 m4 W, E& J/ C( P+ e8 ~  B) e
CATInit_var spInitOnDoc(pDoc);8 x6 V2 `+ E$ w, [
// 得到零件根容器2 P% u/ I/ s3 y& y3 [% G

! U3 I2 R7 h! e' R5 `CATIPrtContainer * piPrtCont =
' Y+ N' m' x3 @* J- `6 s% K(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");5 G' A( \5 W. |; d+ C- u/ }
// 得到零件指针
- j2 h' D  t# ~9 q) E% XCATIPrtPart_var spPart = piPrtCont->GetPart();. m0 Y' z: y3 ]* c" ^& @& W

( C8 C6 J% o' `1 V- `1 l创建草图- O: v" y6 Y- @  U
//初始化草图工厂1 `: S. E+ ^$ M2 F' M" W+ o
CATISketchFactory_var spSketchFactory(piPrtCont);
1 ^" q3 Q0 D) w$ K* B! I% E0 ?9 V//在XY plane 上创建草图+ \- [4 I' ~7 \; Q0 Q) Q( n% u; R
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));6 C3 n4 ?8 \  z* w

! T- H1 U* i: t( o- @创建草图几何
& e- B0 r9 K6 t  K* |' D7 Z//首先声明编辑草图
: g/ R* D, h/ }0 e5 k6 Z( BspSketch->OpenEdition();
. k5 y5 F6 G. N1 z  q9 ~8 jCATI2DWFFactory_var sp2DFactory(spSketch);
2 N% n% R: ?4 _//这里表示圆心点% o1 e$ W- t. g3 b
double iPoint[2] = {0.,0.};% `, o, J" l# O" W4 t- Q" b
//下面创建圆圈" u% s) w8 n/ {. p+ C
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());2 ~5 f+ a. L) {" ?0 L0 w
CATI2DCurve_var spCurveOnLine(spLine);
5 o5 K, P7 Y: tspCurveOnLine->GetStartPoint();
, Y% x" _- S1 }* ^% D# IspCurveOnLine->GetEndPoint();
" W: Z6 a. T, f- Z6 ~//然后退出草图:. b3 }) ~4 G! w0 o% |  N* ?5 _
spSketch->CloseEdition();
/ J. O3 w. Y% L' ?, S& N! j* w0 l3 h, B
9 Y8 c. Z1 R- \4 T
创建约束/ a+ f/ x' ?! t2 @
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);  |+ ?( W! s- U9 b! V) ?
//定义spLine1 的半径约束
  ?: A; T2 r1 F9 a9 L7 TspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,% \! }3 W" F% i7 D2 T
NULL, Cst2DType_Radius, 0, 0 );
9 {' B! K2 k; V0 E% N9 w# j  G//定义spLine1 与坐标原点的同心约束
5 g, G- T1 _* P7 K. ]1 qCATI2DAxis_var spSupport = NULL_var;0 U" z- z" I0 D" ~  s& H+ E
spSketch->GetAbsolute2DAxis(spSupport);2 f( g% N* ]1 W. S" R/ b

, s5 e9 ~3 h8 x, N2 VspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),9 q7 @8 t, v6 H4 D3 [
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );+ i! F  U1 [0 \2 d+ j
6 r- U3 h. J& y4 h4 Z9 W

6 O. t. z/ s7 R# y创建凸台$ g5 U) M" q' `& N' T, f! E
// 从编辑框中获得援助的高度" U7 f( k, ~- L* {; N+ f
double firstLimit = _Editor004->GetFloatValue();! y! Y8 n1 _" c. ?" J2 R
double secondLimit = 0.;
! j: q& I2 q. I, @7 I//圆柱的轴向方向为Z 轴方向
; \. r8 A" H3 LCATMathDirection dirZ(0., 0., 1.);
# r8 d4 W4 _7 @//初始化零件工厂1 g6 K- N% @/ y' q& t3 I6 @
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);+ c# T( s' L, }3 J
//创建凸台
& m5 Q; I8 }  d) E3 U# HCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
  b. Z3 A8 i, R6 F- YCATIPad_var spPadOnSpecObj(spSpecObj);" Y) }2 T2 u- i" B1 m
//设置拉伸方向
  v3 M% D! C2 H+ E& O- c7 YspPadOnSpecObj->ModifyDirection(dirZ);# Q% `0 R+ N0 @3 G2 H
//设置凸台第一限制类型! A7 }2 D6 ]& _. a9 v2 R  e, E2 t( g
spPadOnSpecObj->ModifyEndType(catOffsetLimit);: |' A& I* G  S5 k0 Q) N# Z
//设置凸台的高度- M8 f& v. E7 r$ q" l- a- |
spPadOnSpecObj->ModifyEndOffset(firstLimit);: Y3 C6 E! O2 h+ F5 s4 i
//设置凸台第二限制类型
8 z$ X. j0 b4 V  G3 b8 rspPadOnSpecObj->ModifyStartType(catOffsetLimit);- G0 e9 ]0 M( a& N5 ~8 H
spPadOnSpecObj->ModifyStartOffset(secondLimit);% N- T4 O$ C2 J4 g! f
//将凸台添加在结构树中2 F" l% h+ h, W! b; D/ V
spSpecObj->Update();' n4 y5 d/ [' E( ]6 u1 l
CATIGSMProceduralView_var ispProcView = spSpecObj;  a; `- [+ Y6 c) k) F
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}! h" |6 |) b8 ^, `- t6 p0 w
! H5 F  ^, b9 {
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了