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

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

[复制链接]

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

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

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

x
获得零件指针
/ ^7 G+ Y; D6 i$ {2 U0 |; p// 获得文件指针
- F/ u/ W( E: X) S& W- hCATDocument * pDoc= NULL;5 S% b9 e* V8 M+ z! k
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();5 w4 B% w( N" u
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针! Q5 A3 w0 Y* n4 S* }' c
CATInit_var spInitOnDoc(pDoc);4 J) z# E6 X6 q' w& u) z
// 得到零件根容器
' h, A7 O& ^: v8 o( J9 S* \+ e
9 t) `% ?9 [* F) x0 O' G4 VCATIPrtContainer * piPrtCont =
% Z- y5 K  ?: ~% x2 s* K(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
% j$ p. |$ H/ u! f; K// 得到零件指针# Z* }6 E$ u. p' k, z9 ]* U' p
CATIPrtPart_var spPart = piPrtCont->GetPart();
- z2 s# P0 ?9 i7 G* o  V" ~- L+ ^9 ~" j, l
创建草图
$ Q* v  Y4 A0 w//初始化草图工厂
: w" N8 Q. o' i0 g: fCATISketchFactory_var spSketchFactory(piPrtCont);9 S9 @; J" C. b+ S, `% }& L" U% H
//在XY plane 上创建草图" i8 e( c$ F/ l4 k) q
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));/ [8 J5 S( `6 Y' [/ B

6 e1 J" b& s8 k# o/ q; v创建草图几何6 [3 E, G3 c5 |: D) C+ a
//首先声明编辑草图$ D/ f4 C, v5 _. X7 w. m# w5 f! n
spSketch->OpenEdition();. `. ?& p- R( B5 `/ _9 i
CATI2DWFFactory_var sp2DFactory(spSketch);% z' K9 d, _9 t% T
//这里表示圆心点
6 U/ V. E, B3 w8 @% n/ f! idouble iPoint[2] = {0.,0.};( C9 _; K7 B: i- C/ m
//下面创建圆圈
6 S# C# Q: X% vCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());+ y8 L0 E, S. y4 C
CATI2DCurve_var spCurveOnLine(spLine);: i4 M9 B/ b4 D  L1 q
spCurveOnLine->GetStartPoint();8 f8 T! x' Q0 d; I( p2 n
spCurveOnLine->GetEndPoint();
, P3 l) g. @  Z( }/ j//然后退出草图:
5 c/ v6 A' b' P" cspSketch->CloseEdition();
" e+ f+ d) j1 K! x# m* ^9 o3 N, O4 F! \) j$ ~4 p
, N$ |: [. p5 N/ x
创建约束$ T* d8 i* R7 ~) s8 q, \, f) {
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
3 E! X: C: j) b//定义spLine1 的半径约束
, Z7 G+ C- B8 t6 T- t  R0 w: i) fspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
/ c) h3 Z1 l5 @! q; m$ D/ K2 bNULL, Cst2DType_Radius, 0, 0 );
. U. J* i  k4 B/ Z; s! _- N//定义spLine1 与坐标原点的同心约束
% e% S" ?' h) y: u; `CATI2DAxis_var spSupport = NULL_var;
# {! F+ ^( Y/ l* X/ Y% L5 CspSketch->GetAbsolute2DAxis(spSupport);
' j. D7 d4 M! d/ m8 h: A- ?2 I: w  i- L& \$ X8 I
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
) h  t5 ?. H( B7 gNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
7 H$ J5 x/ G: k) E$ V0 r
' f/ v$ Z7 u" [5 s2 m( y- W0 F- Y& Z, _2 S" ^  V& \' p8 p2 ^
创建凸台
1 x; M' l- L4 j" _// 从编辑框中获得援助的高度  n. M7 N6 {5 f0 d) n
double firstLimit = _Editor004->GetFloatValue();# f2 |& m& j8 r( g$ }$ s
double secondLimit = 0.;6 d5 P' j2 G# U- `7 b  E
//圆柱的轴向方向为Z 轴方向* T/ a0 J# q' n+ L3 |( @! c
CATMathDirection dirZ(0., 0., 1.);
1 R6 ~$ r- E2 N. M$ V3 R//初始化零件工厂
7 k5 @( z( T$ E0 e2 N0 W" V3 rCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);9 \- r- h* I- k, R* g$ E
//创建凸台3 U- l# P% w' G% Z; E* R+ p
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);* q! X2 G3 P, F, \# ], ?6 P
CATIPad_var spPadOnSpecObj(spSpecObj);, x+ J+ }/ e4 r: U
//设置拉伸方向6 R3 {% A3 c4 W, R! q1 R1 Z( J  k
spPadOnSpecObj->ModifyDirection(dirZ);* y- m6 [2 ~, J. a# q, j! d% @0 {
//设置凸台第一限制类型0 O* L$ v) V8 v
spPadOnSpecObj->ModifyEndType(catOffsetLimit);
- c/ n! ~1 {+ f( T4 ^$ U//设置凸台的高度1 k$ X% z1 ?2 ^
spPadOnSpecObj->ModifyEndOffset(firstLimit);
, X$ u- T4 u1 B- V//设置凸台第二限制类型
; @  O2 P: |# w$ p+ I" uspPadOnSpecObj->ModifyStartType(catOffsetLimit);  w, e& f: t) C9 ?
spPadOnSpecObj->ModifyStartOffset(secondLimit);
3 [% v0 N1 @" C- ^3 T//将凸台添加在结构树中
( g: B2 O5 l( h9 M4 qspSpecObj->Update();: Q8 H, e9 w- ], `
CATIGSMProceduralView_var ispProcView = spSpecObj;; K) l" c1 k5 s; k
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}  f2 @/ i) r2 ~9 c* n

  ^" l. 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二次开发专题模块培训报名开始啦

    我知道了