PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

Catia二次开发源码分享:创建草图 Sketch,约束,曲线等

  [复制链接]

2018-2-22 13:25:32 2719 0

admin 发表于 2018-2-22 13:25:32 |阅读模式

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:
% U5 M; ~% [+ E2 v; o+ k3 @/ G% W1.通过参考平面创建( P, o+ i+ l. R
//获得参考平面, t* q4 R/ c8 N1 g) Q: {: A
CATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
8 Z* x) H/ q! O1 |/ e+ l1 H//初始化草图工厂2 S* H2 u$ O1 F( B( e8 g2 w
CATISkeTChFactory_var spSketchFactory(spContainer);
5 x) f* q$ j- `2 J/ b6 E: ^0 D2 B8 K//在XY plane 上创建草图$ \9 }" Z% b" Z* Y9 W
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));  T; e2 L' d$ j6 a* J
2.通过原点和两个矢量方向
6 r' u' V  f5 j  t" u该方法通过定义一个原点和两个方向 pH、pV 进行创建。
: N8 v. N9 |+ V+ p9 M+ a8 i$ t- `  \定义原点和方向:( T0 y0 l: ]) G8 M
double pOrigin[3]={0,0,10};
" @6 F* z0 g, F/ F* u8 g5 A9 O$ xdouble pH[3]={1,0,0};% @7 B  Y0 `: o' i- S8 S
double pV[3]={0,1,0};0 n) z1 P, e3 f- J
CATISketchFactory_var spSketchFactory(spContainer);* _- V  R9 O. q- C+ S% V, ~
CATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);9 Z& \3 Y2 n3 _' w; h& ]0 q. [5 O
  a' E$ H) A' `: ^$ h/ Z

' J( t5 B  J) _sp2DFactory(spSketch);
2 m" K* A; v, O3 m//下面创建点
7 I, Y1 n$ S6 w" B! E/ g% \. \& _CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
4 w( ^. S# c: u" K- x/ Ldouble pt_bottom_left[2] = {10, 10};
' j5 `$ C' {: F! C; b+ Pdouble pt_bottom_right[2] = {50, 10};
0 ~5 H7 o( `* h9 D" b4 udouble pt_top_right[2] = {50, 50};' L: W" f. S& H: M% t
double pt_top_left[2] = {10, 50};
8 Y) @/ z* q4 d4 V6 R+ @spPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);# C- a% j! }7 @9 W% o- W0 `
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);+ j$ ^7 _- z3 c( [  r) ?
spPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);
" @  M% l8 z0 e0 X# bspPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);
8 j8 v( W0 c2 u+ i4 Q5 |//开始创建线  q* k5 V2 k8 [3 O
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;6 ~! G5 t, U$ ?' M# w: H
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);5 N) n7 `; m  ^* z2 R6 e
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
! `! j# ^1 q+ n' @+ s+ EspLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);& s/ h) D: C1 Q1 R; J( p2 f
spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);
" X" Z6 j! a6 {# Q( L, E//将线的首尾连接起来
2 }9 w; a6 f/ w: w& y# \- Q$ c  [& e; p/ K' j
CATI2DCurve_var spCurve1 (spLine1);
! M8 `& S: z' \* ]CATI2DCurve_var spCurve2 (spLine2);3 [2 N, B3 g* Z
CATI2DCurve_var spCurve3 (spLine3);
3 j5 E7 ~3 r2 n$ tCATI2DCurve_var spCurve4 (spLine4);' H9 ]8 p# v- z9 M! l* K9 j) ]
spCurve1->SetStartPoint(spPt_bottom_left);
6 k4 S6 s* a8 o7 y& D, KspCurve1->SetEndPoint(spPt_bottom_right);
% R# b. a0 Y; g2 m8 dspCurve2->SetStartPoint(spPt_bottom_right);
- {! P' z' f5 c  l  w7 BspCurve2->SetEndPoint(spPt_top_right);6 K* l) s* X4 A, a$ q7 q
spCurve3->SetStartPoint(spPt_top_right);' P8 X# b$ s2 X( e* S, \5 U6 m
spCurve3->SetEndPoint(spPt_top_left);
, v/ t1 r6 K* T8 L) ~, x3 n( FspCurve4->SetStartPoint(spPt_top_left);
0 {$ B# k+ V# r# }spCurve4->SetEndPoint(spPt_bottom_left);
' [. U' b5 l- q! z2 e3 J' c//然后退出草图:4 Y2 h3 \- T, }. a
spSketch->CloseEdition();
* n# a2 A+ ]: `6 {% i) L) V8 J* u+ |( S
) }' K2 N1 Z6 [0 q; x: y4 p$ D, o
! i) _- f! {1 s* m" x; D
创建草图约束
4 Q3 J, P# X8 x/ O3 }0 X0 CCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
% m0 U2 z, H; W0 G7 x, Q3 G6 Z7 U5 q//定义spLine1 为水平约束
- H' X! W2 Y. Y& [  VspConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,- q1 D7 J& D' l0 N
NULL, Cst2DType_Horizontal, 0, 0 );
% L2 w4 e( ^. _0 `9 O8 [& c//定义spLine2 为垂直约束
2 N# ?! g% m& o  T* mspConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
: C) I1 @  s4 f, mNULL, Cst2DType_Vertical, 0, 0 );
& b8 I  e8 W0 c) d! W$ o//定义spLine3 为水平约束+ r) q; o2 Q; m* O. x
spConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,& C4 _# z3 A+ \+ Q; R, I. m
NULL, Cst2DType_Horizontal, 0, 0 );2 G: e: B7 u% O: d% j$ Q2 [" W
//定义spLine4 为垂直约束  N" P1 [/ Q) J7 ?- m
spConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,9 o# J, w4 _* U
NULL, Cst2DType_Vertical, 0, 0 );
! [) C" a$ Y0 a6 X//定义spLine2 的长度约束
4 w0 _& c" G  }! r5 _+ nspConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
* L+ S3 }+ R. h" D& V6 N  w9 T2 uNULL, Cst2DType_Length, 0, 0 );% h  ^8 F$ Q1 a1 v& O& W9 i# d

# _4 \1 z3 q& k//定义spLine2 与spLine4 的距离约束  h2 _( T" F7 T3 K9 \- D7 D
spConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,+ L7 v- n6 l+ t2 W  `
NULL, Cst2DType_Distance, 0, 0 );
) E2 A5 c" C; [; s4 |//定义spPt_bottom_left 与X 轴的距离约束6 e" D% F3 t0 d: J* `9 z4 ]& A) ]
CATI2DAxis_var spSupport = NULL_var;* x) w7 y7 M1 q6 M0 o
spSketch->GetAbsolute2DAxis(spSupport);" X1 m9 a, @! @7 h! B6 w8 @# \
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,# B  B9 \; K! {' Z0 v: X. y
spSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
: ]" K% R1 `1 u% y//定义spPt_bottom_left 与Y 轴的距离约束6 m0 j* v1 t% S' Y; j
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,2 [$ Z& L/ [0 U7 m" |9 B6 A
spSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
+ |: C2 T  f9 e0 u* v+ ~; O) y' F, w1 b( Q& Z
! v: D: @+ {+ K6 |( @6 u# n  M
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了