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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
( ^1 w0 g& B& p3 r! f# z// 获得文件指针
* b: k( C: D: H* {" U6 F! I1 `CATDocument * pDoc= NULL;
+ m0 B6 W3 k2 oCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();  o7 C% t- O5 O/ W- ?  Q
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
4 G- K* n/ z0 `1 F$ R8 Y5 Z+ aCATInit_var spInitOnDoc(pDoc);% u% B# r$ n. q6 r7 j
// 得到零件根容器' j0 U( Z& p! H6 R

' v. V3 Z# N: D. FCATIPrtContainer * piPrtCont =
9 K! Q4 l' E0 N& T9 y0 n(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");* u8 P" L; B! C% H4 b6 P
// 得到零件指针0 M% D/ G% A( K" W% L! U
CATIPrtPart_var spPart = piPrtCont->GetPart();
# h# t6 h! L1 f2 j' d9 r7 p: @( }# z) `" J
创建草图, j& t  o" e2 t, j1 s1 l1 T
//初始化草图工厂
- d6 X* {# A+ f7 I% O8 u  t' XCATISketchFactory_var spSketchFactory(piPrtCont);
' p. Z5 H2 q5 v# D" y" Y//在XY plane 上创建草图- E* \7 ?0 C4 z$ @
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));/ z# Q3 G- o1 @. F

* U2 q: X0 K1 z; B8 c: A创建草图几何
+ ^+ u. Q( ^7 |7 R+ d% H9 S6 v* M//首先声明编辑草图
3 i6 p% v3 k$ b: L8 x+ l$ MspSketch->OpenEdition();
- X# D4 \; [& yCATI2DWFFactory_var sp2DFactory(spSketch);
. H* @4 d7 M' g//这里表示圆心点( Z7 R7 G+ W( s8 U% o
double iPoint[2] = {0.,0.};2 P, q- ^2 q( s/ q
//下面创建圆圈
- Q- V9 H! ^: ?: b+ `2 k1 r, oCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());- y& R$ ?+ x) ?7 T1 q8 Y8 Y
CATI2DCurve_var spCurveOnLine(spLine);9 K, C& S/ c* G! p' V
spCurveOnLine->GetStartPoint();
8 E' k# ~; y* `% E- q0 l9 SspCurveOnLine->GetEndPoint();
0 z& s* i7 R- g9 u//然后退出草图:/ J; I* }7 f: a* J9 i
spSketch->CloseEdition();
& m# k* m& w+ x3 L( o
/ ]* {6 F1 ?2 f) n7 {6 r% [2 u8 ?, x  W6 u
创建约束
  Q. u% \* N9 ~: s9 ECATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
. \1 I6 G7 [7 G4 f* ?2 F//定义spLine1 的半径约束
! d; D* N0 _- GspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,& ?9 {1 M( e* o9 U6 q7 A
NULL, Cst2DType_Radius, 0, 0 );
2 {8 y9 y' _9 p, i0 Q//定义spLine1 与坐标原点的同心约束0 ]& t/ ?3 _4 t# N+ q
CATI2DAxis_var spSupport = NULL_var;
, L8 q: ]1 B- TspSketch->GetAbsolute2DAxis(spSupport);
8 U0 Y" y# }4 T3 b  `
/ g. k  V  k0 D: o6 rspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
& f4 v! x- @. k% ]NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );+ o- M" {2 e) `2 O0 ^. c# ^6 I4 A

+ f) r6 k0 f+ d" v$ F1 K8 N' A; S5 Y. G
创建凸台' w% l$ v: F/ R3 y$ m' N
// 从编辑框中获得援助的高度3 ~0 T; Z( ?' h
double firstLimit = _Editor004->GetFloatValue();  k  m" f$ J7 U# G$ i* G6 y! l
double secondLimit = 0.;8 c1 c. o6 ?4 [' g1 Z4 O  k! p
//圆柱的轴向方向为Z 轴方向0 ^2 Q% g! c/ L4 x
CATMathDirection dirZ(0., 0., 1.);3 B0 W3 u# P8 f* W
//初始化零件工厂
9 }- w" a" ~. A4 ^+ yCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);  H# e! W/ C( H5 {! N
//创建凸台( z* L6 w9 f9 t/ S- {' m
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);3 U) B- G1 O5 W/ c6 M" }9 H
CATIPad_var spPadOnSpecObj(spSpecObj);
+ r0 P! N- ]6 S# s, U//设置拉伸方向
9 h0 z9 _* c9 n% z( Y6 CspPadOnSpecObj->ModifyDirection(dirZ);
. Y6 e7 k% @% t  i7 Z//设置凸台第一限制类型& [4 X- E% c& H  S; P# v3 M4 ~
spPadOnSpecObj->ModifyEndType(catOffsetLimit);
. ]" Q/ _( i8 E0 B9 u5 J//设置凸台的高度
1 F  F' }) k# ]; _spPadOnSpecObj->ModifyEndOffset(firstLimit);6 S/ F7 ?0 ?' `  y
//设置凸台第二限制类型
4 H) p4 r" R* C5 s' d0 E8 B# Z( z8 AspPadOnSpecObj->ModifyStartType(catOffsetLimit);
  u/ x* `2 D+ l& D) w) KspPadOnSpecObj->ModifyStartOffset(secondLimit);
4 r* [$ v( ~7 W$ U//将凸台添加在结构树中* d4 @: t) \% X  G) J* ?3 @
spSpecObj->Update();+ D2 Z/ t) `- T" U; ]
CATIGSMProceduralView_var ispProcView = spSpecObj;% Q) o5 v& V0 R( S
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}% |. B( T) F* u" }/ ^. w. r

) Z' E8 O9 h! Q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了