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 3037 0

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:$ D9 v" P& N2 l0 Y
1.通过参考平面创建( h5 ]- y+ b2 f! g  R
//获得参考平面/ R8 ?/ t; ^# s: ^! d
CATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
/ S2 W$ v. u* K. J. _6 n//初始化草图工厂
" Y: \0 n. l: D0 QCATISkeTChFactory_var spSketchFactory(spContainer);
2 i/ {: k8 U+ I/ _% ^4 o//在XY plane 上创建草图. L$ Q' Y: U" C! m4 m
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));: s1 t4 C! j3 e; m
2.通过原点和两个矢量方向
* g2 Q6 q" ?" M8 j7 J该方法通过定义一个原点和两个方向 pH、pV 进行创建。
2 k" E4 |2 J6 e定义原点和方向:
$ `3 w/ D" _2 ?+ R/ t% A- qdouble pOrigin[3]={0,0,10};8 g- B) g! }- B
double pH[3]={1,0,0};
1 X: U" g3 q* x( }  U! Gdouble pV[3]={0,1,0};$ L; B5 c' A" L0 x  G
CATISketchFactory_var spSketchFactory(spContainer);9 j7 \3 R; h" [. s/ |
CATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);
0 T/ ~. L' r2 l, }4 n% s2 Z  A
1 V1 Y& y) D, |9 R1 V) t* L' P3 j1 h/ u) I
sp2DFactory(spSketch);! d! u  l6 `+ I; _1 y
//下面创建点( ]2 w0 L: ^# r, t2 h! @
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;5 X$ y0 i: E% J
double pt_bottom_left[2] = {10, 10};2 M7 X+ Z" W, |3 X: Q
double pt_bottom_right[2] = {50, 10};
! L4 {( N1 o1 C, c% h* W# |double pt_top_right[2] = {50, 50};2 B+ V& H3 F# _: Q5 f, {4 m
double pt_top_left[2] = {10, 50};; }, @6 [! I8 T% \& ]1 q/ g
spPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);% }* j5 E+ o( n7 u4 D8 ]
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
4 U$ R. E. E8 J( i! r$ T+ q0 GspPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);' s3 \5 u5 q8 O
spPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);
& `$ e) N5 v* y, r& L//开始创建线
  f8 A& ~3 M7 f; ACATI2DLine_var spLine1, spLine2, spLine3, spLine4;! y( R+ v; Q" O/ m" V- R$ X" e! h( q8 u
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
( Y( Z) O. ?0 A9 I) _0 X1 \' G+ q6 ^spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
: K/ [$ D' s0 b$ K  aspLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);3 l! w9 K. u2 W! q- N6 H
spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);
- B# l+ M, F4 {3 l- j( C//将线的首尾连接起来/ t: e8 C1 I4 Y. z* [& x, k5 r* |* R. `
6 A: D1 u. w  i$ d
CATI2DCurve_var spCurve1 (spLine1);1 {* L3 O  o7 l! p" r2 Q. \) ?+ A
CATI2DCurve_var spCurve2 (spLine2);' I6 E$ s5 a9 V; T" Q& u
CATI2DCurve_var spCurve3 (spLine3);
2 i. H) F9 Q8 H- \CATI2DCurve_var spCurve4 (spLine4);  \" d, Z. \9 A& A" `+ I% f
spCurve1->SetStartPoint(spPt_bottom_left);* q' i/ u  b% F+ ^+ f( R
spCurve1->SetEndPoint(spPt_bottom_right);" @  L6 T- r" g- \" I" b
spCurve2->SetStartPoint(spPt_bottom_right);. w# {  L; m) D# W# u" M1 U
spCurve2->SetEndPoint(spPt_top_right);
  e$ i0 F! _- D5 k0 e3 p, d! J( MspCurve3->SetStartPoint(spPt_top_right);
; |, Y" E2 X) MspCurve3->SetEndPoint(spPt_top_left);
6 j+ ~6 K3 N! L- E9 P7 FspCurve4->SetStartPoint(spPt_top_left);2 C! t$ P9 M$ T+ y5 b
spCurve4->SetEndPoint(spPt_bottom_left);5 p/ z6 j2 o* p/ b" p# k8 M
//然后退出草图:
" \4 L  m! ~, ispSketch->CloseEdition();
  g% ?! B6 ]0 r8 k& K7 d5 O7 L3 J* u' {! b# |6 Y+ E
6 |" A$ N% A  E) ?. }4 h* m: ~5 t# a
- T7 q# N* Z& [
创建草图约束
+ m# ^% [1 u# D/ F7 N$ NCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);1 f" Y' M. {4 ~/ ?
//定义spLine1 为水平约束
$ }* S& r, k; d2 W& a# `$ K) l1 xspConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,/ m9 a, D3 k: w) j% V4 \
NULL, Cst2DType_Horizontal, 0, 0 );
& B- Z$ m! F3 q1 n0 _* G//定义spLine2 为垂直约束% B/ d2 i( u0 b2 D+ O
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
. S4 Y5 _* `* rNULL, Cst2DType_Vertical, 0, 0 );4 k" ^/ g( w" w: j0 W: Z
//定义spLine3 为水平约束6 k8 W$ j) J' F3 E7 [. V
spConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,7 A% J; z: ?5 p, {. f% ~
NULL, Cst2DType_Horizontal, 0, 0 );/ O$ s' q/ ]2 r8 q8 |' i
//定义spLine4 为垂直约束4 T8 ^; E4 G6 m9 W* V
spConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,
1 V7 X" P# ]' XNULL, Cst2DType_Vertical, 0, 0 );
: v. x, ^( x. n) N' j//定义spLine2 的长度约束) R" E  l% [) a& G+ Y
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
* b  k- |$ ?/ I7 O7 e, M7 lNULL, Cst2DType_Length, 0, 0 );
% W6 e' m  q, A5 ^1 n5 L
4 z: R8 x1 u7 u0 M# F//定义spLine2 与spLine4 的距离约束
+ p$ N5 q5 J( @8 w% p& s* V; f$ mspConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,
" P& v1 a; R/ |3 A/ oNULL, Cst2DType_Distance, 0, 0 );* o8 H4 e& T2 U) y' J9 Q/ e4 d- j
//定义spPt_bottom_left 与X 轴的距离约束
  u) e% }0 H5 a, B% OCATI2DAxis_var spSupport = NULL_var;. W" x4 P  X! |; M7 _
spSketch->GetAbsolute2DAxis(spSupport);
( ^! |( }* z; O3 Y, `. cspConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,: @6 O6 U! i  B; f+ D
spSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );  y1 X) h1 E* e; t
//定义spPt_bottom_left 与Y 轴的距离约束: n2 g' i4 J+ q( e5 F7 M* V
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,
* S# F0 O9 n0 U9 E3 {; JspSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
- |8 @" o' T- }$ K' `. d8 }; S1 x: Z0 f! Y8 e* L/ m

! ]8 [* A# e6 b6 c$ Y8 S6 Z% t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了