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

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:, N1 D8 b# q7 A1 J  l& }
1.通过参考平面创建8 q6 `1 R# g! T5 O9 X8 t! U) |! {2 G
//获得参考平面
$ Y/ E4 }. v6 V8 GCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
: ?$ ~7 ^- P& t- M//初始化草图工厂5 L8 ~3 m  S( I( E; M; J
CATISkeTChFactory_var spSketchFactory(spContainer);
' S2 C; |: Z2 n8 W' R//在XY plane 上创建草图# j3 w3 ?; g$ M7 N/ Y, d. G! D
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
8 c. W5 `  R0 H7 E+ t8 E4 r2.通过原点和两个矢量方向
( }3 p4 v& i- @该方法通过定义一个原点和两个方向 pH、pV 进行创建。
& Y( {0 ?; n2 _, G5 t' t定义原点和方向:
0 i6 ?4 q( ?# z$ e+ l0 M. ldouble pOrigin[3]={0,0,10};
2 f* }/ j: K- a* mdouble pH[3]={1,0,0};
) O: C5 e9 H. i$ Ndouble pV[3]={0,1,0};
& ?# o, o4 u8 x: c. k  _3 T. hCATISketchFactory_var spSketchFactory(spContainer);
4 l# r. q4 b- }6 f% [# S- K- ]5 c7 r3 kCATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);
2 `4 `( d* j" \" L  R9 i! |
% o8 X& R0 f1 r! Y; h$ f  s7 j1 C2 Q" R6 z. |0 {
sp2DFactory(spSketch);0 C" g2 P" m8 I9 I8 W- _6 g# T- l
//下面创建点
" D" G' \4 v- D2 RCATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;( E8 V" I! q) P. A7 m# n2 _
double pt_bottom_left[2] = {10, 10};
( b0 ?/ A: l; h$ u( y! T* }8 x2 R3 Sdouble pt_bottom_right[2] = {50, 10};
, C: U+ p; D- p  ~  xdouble pt_top_right[2] = {50, 50};
$ l2 d* r* W$ Y1 t! @double pt_top_left[2] = {10, 50};( e! ~: R' p; o5 N, [7 W  T
spPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);
, Z( }+ Q  o" M% Y, P9 yspPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);2 E, Z1 J! _3 r$ n# `
spPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);3 }. F- d$ V% O0 s+ t' {/ |
spPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);
6 Z4 K5 Z+ H7 ^6 g//开始创建线+ s  k8 @4 Q7 t! E4 j) ~0 }1 X& p
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;
9 t( I- G0 Z5 H" x/ {' M3 S6 @# RspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);2 k: I. x: m7 k# U1 ^' l; m
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
( S% J. p2 q& r3 WspLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
7 v9 o! \; k; o+ Q/ b) @spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);
9 ]7 u# H9 N, a) h, ~//将线的首尾连接起来
# Y5 E8 ^/ V( A  }  O; W# _! e( f' M' f5 ?: P6 d; w% G
CATI2DCurve_var spCurve1 (spLine1);, |- q  n% d: Q2 I  C
CATI2DCurve_var spCurve2 (spLine2);
) _6 [7 ~* D" d, u* C8 z9 Q3 ECATI2DCurve_var spCurve3 (spLine3);) w3 J& ]) s/ S. ^( E1 {6 j$ y
CATI2DCurve_var spCurve4 (spLine4);! W# A4 f0 R  P8 V8 g1 ~! Q
spCurve1->SetStartPoint(spPt_bottom_left);( S6 l3 B% ~& a" l# q  d+ v! u
spCurve1->SetEndPoint(spPt_bottom_right);
( F* r6 Q/ M8 r6 _+ O# sspCurve2->SetStartPoint(spPt_bottom_right);  ?4 M, \% q, u
spCurve2->SetEndPoint(spPt_top_right);
) I& f  i2 ~8 P2 L5 x# p7 aspCurve3->SetStartPoint(spPt_top_right);0 r4 b& h3 K) w6 M  r: I' v( W
spCurve3->SetEndPoint(spPt_top_left);
5 H# X7 k  W3 q0 B# PspCurve4->SetStartPoint(spPt_top_left);% V0 J2 ~- T. Z- K$ J# w2 K
spCurve4->SetEndPoint(spPt_bottom_left);+ y* K# N) |0 ]2 _7 w
//然后退出草图:
* V# h$ W& u" r( W* s3 D4 CspSketch->CloseEdition();& L; Y& {# j) \3 T1 u5 _6 Y5 o
- _7 ?. J+ v0 N* n4 F

; V( A1 Q9 @% ~' T% N
, \$ {) A% Z6 ?创建草图约束
+ o1 u* F# B, g+ e" V+ ~CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);6 u" A5 \9 @; n3 p! |& N, Z
//定义spLine1 为水平约束4 {$ G) d& u4 F, }( W
spConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,2 |1 P+ f/ z" }$ W
NULL, Cst2DType_Horizontal, 0, 0 );: J0 t  B+ p$ N5 _- R$ T! ~3 v
//定义spLine2 为垂直约束
6 I8 a; c1 |, |spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
! ?* m5 G7 m( ?& ?/ C1 NNULL, Cst2DType_Vertical, 0, 0 );. z5 B5 N" |7 T# b) l  Q( b3 N
//定义spLine3 为水平约束! B' @+ {( o; N" b! d
spConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,
8 u2 o( F: G  d' v) Y" H7 J1 uNULL, Cst2DType_Horizontal, 0, 0 );2 _( n% f6 D/ C$ X$ ]+ X
//定义spLine4 为垂直约束
, t2 n6 g  V  r3 M  c% nspConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,4 t1 a: W% e  o) H$ y" ~
NULL, Cst2DType_Vertical, 0, 0 );% R. n. I- Y+ J9 N& f9 D6 g1 A
//定义spLine2 的长度约束
" _  j. F4 q0 `! }; I: yspConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
5 d* j5 J, m9 Q/ g! O& PNULL, Cst2DType_Length, 0, 0 );& L& K! O9 v& v5 J
7 p2 g' B+ p5 V; r! C
//定义spLine2 与spLine4 的距离约束
! ^% V( S0 l5 g; v& k' l- w, W* k" YspConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,
+ T0 {3 B6 p: |- c9 A2 H4 MNULL, Cst2DType_Distance, 0, 0 );
2 }% t. g) [# r! @, h/ U% G//定义spPt_bottom_left 与X 轴的距离约束* E  R' A" C/ T) k1 \) ?
CATI2DAxis_var spSupport = NULL_var;. ^5 F3 j& c. @- C* ]& J$ d
spSketch->GetAbsolute2DAxis(spSupport);  m8 p% Z! \: f: G7 U$ s5 \6 a
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,5 o0 `  a1 |* y0 O
spSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
' g+ P( D# n* I' ]$ S//定义spPt_bottom_left 与Y 轴的距离约束
7 f2 ], s& F8 y# ]2 bspConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,
) D, N% D$ h' ?2 cspSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
9 o( R3 R# H  ]3 I( |
% [4 ?$ T7 |& P( _- I
9 }+ X' R. ]5 s- R+ M0 s/ I- u& Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了