PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针" ~/ t; N) z+ Z$ {6 j) m
// 获得文件指针5 o6 L( i' L( w% U4 W3 x
CATDocument * pDoc= NULL;
4 B+ Z0 K  A: R5 T, p5 mCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();4 G, R- h- ^( Z
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
- m+ H& L$ [6 P& s- {# L$ yCATInit_var spInitOnDoc(pDoc);
1 w6 D, \. R4 W8 w& P// 得到零件根容器6 a# M& E' b2 v# D! L

/ V' i1 P9 |+ J% p: X/ N1 {% }CATIPrtContainer * piPrtCont =
( o5 O8 p. \1 k/ u+ d(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");7 ?, q. Z2 [0 q: O6 ^( b0 D
// 得到零件指针
/ K4 _7 _) c( n+ UCATIPrtPart_var spPart = piPrtCont->GetPart();& _$ r3 F9 p1 s3 ]
1 `, B+ J1 i8 R& \3 P
创建草图, O; l! v/ i- s9 x4 }+ c; @
//初始化草图工厂
; ]/ E1 x, D6 ^3 Y+ D3 UCATISketchFactory_var spSketchFactory(piPrtCont);1 A4 C: _) J, P5 M
//在XY plane 上创建草图, S8 ?5 `+ ?1 n& M( Q) u
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));! y+ [3 l0 \, P* C0 a* e# k8 x' D2 Z
' K3 u) U9 E( W% D7 m. \( L
创建草图几何, x+ d9 |$ r1 l" T* k0 R, h
//首先声明编辑草图
4 h2 X0 ?% ~6 ^# A; c$ HspSketch->OpenEdition();$ U# A$ i8 w: Q6 T) n3 A
CATI2DWFFactory_var sp2DFactory(spSketch);
- m4 _$ o/ U3 A  K/ }3 ~+ D7 c) G6 E//这里表示圆心点, |: E) \: l1 k# i" \
double iPoint[2] = {0.,0.};
0 F" B* A' u  u1 p//下面创建圆圈
6 k& A; V! ~9 y4 W, w9 RCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());  I% s- E& O# ]& b/ ~6 H
CATI2DCurve_var spCurveOnLine(spLine);
2 A1 W1 e. }( ?' C3 }0 _# ^spCurveOnLine->GetStartPoint();
& r" c2 w2 N" ^6 UspCurveOnLine->GetEndPoint();
- Z* S  ~" p! p7 D- \//然后退出草图:- O1 Z- g5 @# ?* v) d0 A( k8 ^
spSketch->CloseEdition();
; p8 [3 A3 P" \4 X$ L9 i1 V2 v) F8 X/ L) t* w1 e: q# ?- e7 L" N1 a

0 ~8 L. d7 L- H' F2 t( k创建约束
: I( Z+ x5 F  X/ MCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
% P( s) Z+ R6 k//定义spLine1 的半径约束7 g2 d5 V( Z4 _5 [6 g
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
# s1 C& J( B$ C% JNULL, Cst2DType_Radius, 0, 0 );3 i; N& M2 R# K7 C: n6 L7 f+ q! ^# ~
//定义spLine1 与坐标原点的同心约束# p! }0 J' t* d; W- a7 w. b2 ^
CATI2DAxis_var spSupport = NULL_var;
; e+ X; b" W( C) a$ M! {  ispSketch->GetAbsolute2DAxis(spSupport);
# U, M* U3 P, W5 V3 y0 x- d
! h% v1 T- R5 U) JspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
; t6 H+ w+ T1 M% l  Q1 P7 S& CNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );4 u5 s. E) ^2 {8 F

  A% q. H  ^4 |) O( h. ~, @3 L/ M) n$ n- _( ~
创建凸台! n! L* I8 w" S- m# k% P
// 从编辑框中获得援助的高度
% p1 A. C$ z  @double firstLimit = _Editor004->GetFloatValue();3 y2 {6 x/ w& M0 B- a" J. C# m
double secondLimit = 0.;( e# c4 W2 N( k- |1 U7 C7 {
//圆柱的轴向方向为Z 轴方向& E5 d; v/ Y- a
CATMathDirection dirZ(0., 0., 1.);- M6 Z) Q; e, \3 m  \
//初始化零件工厂
1 [" M; z* `: ?; W  E4 |CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
+ a2 L$ y9 F1 T! L7 Q//创建凸台
. r3 `, l. |/ M: u+ _/ S% {+ c  a; yCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
# `7 L+ h9 U6 B- P2 ?CATIPad_var spPadOnSpecObj(spSpecObj);# u- Z$ d8 s& {0 U; H2 Y
//设置拉伸方向: Y$ C4 Z9 S. S0 |  O- b
spPadOnSpecObj->ModifyDirection(dirZ);! o: A7 W- x/ ]. Y, Y
//设置凸台第一限制类型
/ \! R1 \! W: y0 OspPadOnSpecObj->ModifyEndType(catOffsetLimit);
+ }( `3 a6 E0 f& r//设置凸台的高度# T6 K# d5 Q$ h. h1 ~4 W
spPadOnSpecObj->ModifyEndOffset(firstLimit);
7 l1 @5 S+ t! u//设置凸台第二限制类型
( z4 r: X% U) bspPadOnSpecObj->ModifyStartType(catOffsetLimit);. |- j8 R$ T5 O6 c0 z. Q
spPadOnSpecObj->ModifyStartOffset(secondLimit);% X3 a; e9 @- p
//将凸台添加在结构树中7 D  j! @, z7 o
spSpecObj->Update();/ j$ O6 G, L* E- B5 P
CATIGSMProceduralView_var ispProcView = spSpecObj;
/ A. m! N1 l# |) W8 Pif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
6 p7 I& i( _( O+ H6 C& S5 }/ {
/ V1 V! D5 ]# E' v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了