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

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:/ C: h+ f4 [+ {+ H) Z$ q: H
1.通过参考平面创建
2 @0 o: {+ h2 S1 B//获得参考平面
8 ?2 P1 ?) {( s0 T& p4 _) UCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
7 w6 z) z5 p& q+ R//初始化草图工厂
# Y% U) c% C* M+ f& S5 ^& W* sCATISkeTChFactory_var spSketchFactory(spContainer);
9 S: M* d) o: t2 Y& F9 _; B! |6 J//在XY plane 上创建草图3 b4 m$ U+ D2 H& h" S& c9 V7 ?
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
+ U8 |: M" P! O' j' b( O2.通过原点和两个矢量方向/ i: W$ p+ ?) l- W
该方法通过定义一个原点和两个方向 pH、pV 进行创建。# n6 \5 |+ {  g! _4 D8 P0 i- X# {
定义原点和方向:
) u6 R9 p+ C$ f0 m6 {/ F! c# M/ J  fdouble pOrigin[3]={0,0,10};
$ V# }6 [! e/ Qdouble pH[3]={1,0,0};
& t& d  J% o% T9 Xdouble pV[3]={0,1,0};
* |8 H9 M7 i: ], |- {* D# S1 w* G' nCATISketchFactory_var spSketchFactory(spContainer);
  e( ^' ?0 U! A  ?CATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);3 u6 C! i% N1 P0 r$ K$ v) i  _
  j6 e2 _8 v' @- T. {( D4 @' l

+ f3 K& w! b( \) z7 tsp2DFactory(spSketch);' G" w7 o5 v7 F0 u3 _) S
//下面创建点
3 h" H2 R* d# N3 E% s/ hCATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
& k1 e, d" _' T" j9 h7 p' rdouble pt_bottom_left[2] = {10, 10};9 J3 M) S% G& A: @; O0 u9 M
double pt_bottom_right[2] = {50, 10};
& ]3 B( x7 {/ J& b4 {9 wdouble pt_top_right[2] = {50, 50};
: A6 P3 S, W: v1 L; e- Jdouble pt_top_left[2] = {10, 50};0 c. N/ I. d% H
spPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);% a* v# E' i1 S$ T* J
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);0 {, v  u6 \1 z1 X+ r7 E
spPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);7 p3 I4 x( f% z3 v! ]
spPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);
" l1 g& B" F/ B6 q& Z! s//开始创建线
" s( l* ]2 l3 q5 iCATI2DLine_var spLine1, spLine2, spLine3, spLine4;
( Y/ B# x. f) N# A: |) ~spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
1 k: Y( d) `, Q1 b9 T/ XspLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
& A' s* y2 V3 d1 w9 b) |spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
* d+ S* v* N2 j' {9 F: G9 _spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);6 \* u' ^# i2 ~* f+ `
//将线的首尾连接起来
& j* V  v7 n3 k* `( I% ]; U$ ?
; n! P* v4 t+ I% I4 H# }CATI2DCurve_var spCurve1 (spLine1);
+ W9 _! o/ d* v+ ?# V) |' G) z, O( ]CATI2DCurve_var spCurve2 (spLine2);
* {) n9 o& p) L. |CATI2DCurve_var spCurve3 (spLine3);
- Y' C: q& t3 A2 eCATI2DCurve_var spCurve4 (spLine4);
7 l0 |" z& Q. k' o4 z8 SspCurve1->SetStartPoint(spPt_bottom_left);
; W$ c: a7 Y) h8 U$ w+ ^: _spCurve1->SetEndPoint(spPt_bottom_right);, O  F  o2 R3 c% F- U% M+ r0 A
spCurve2->SetStartPoint(spPt_bottom_right);# d9 I; i5 }2 o; O. Q# b7 D
spCurve2->SetEndPoint(spPt_top_right);7 O8 J0 P1 {# J2 n
spCurve3->SetStartPoint(spPt_top_right);
( N9 Y' n. x9 x+ N. i/ w+ I6 JspCurve3->SetEndPoint(spPt_top_left);
/ C$ x& w' C' Q; S( N3 u1 a6 r/ X3 pspCurve4->SetStartPoint(spPt_top_left);% z' F! k/ u% J4 K* z
spCurve4->SetEndPoint(spPt_bottom_left);7 }- U7 M) a! Y2 S
//然后退出草图:
+ [* {+ n/ v4 ?0 hspSketch->CloseEdition();4 A5 M$ Q' N4 Z8 m& d  t7 C
; B6 R/ `4 J9 D3 O; Y
  z9 V3 D" }1 \. G8 ]

3 F6 i2 W& ?+ R创建草图约束
$ {* `1 j& e+ `7 zCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);. d3 W( x9 O- ?7 y$ u
//定义spLine1 为水平约束6 u3 \' o! v. O! j# x
spConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,
# l- M5 `+ A) @0 y6 w' \: u9 H1 wNULL, Cst2DType_Horizontal, 0, 0 );; b' T, }% N3 ~: Z' o
//定义spLine2 为垂直约束
/ ^. O, w. u$ C( AspConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
; m9 m* `* }! q2 [7 n9 X( INULL, Cst2DType_Vertical, 0, 0 );: d% P* @& o4 q/ `" A1 V  @
//定义spLine3 为水平约束: p; l: {/ h( \: V+ I  @' U- f5 i
spConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,
) M/ y1 l0 e- N' j/ H$ \% J& {8 M- zNULL, Cst2DType_Horizontal, 0, 0 );
: ]1 U  m' x  N1 n//定义spLine4 为垂直约束
8 M3 n! ~& Q% _# FspConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,
' `7 F" A+ `) V: y. kNULL, Cst2DType_Vertical, 0, 0 );6 T' A% I" B' H* t+ i
//定义spLine2 的长度约束( e8 P& o7 H2 Z0 x; k+ Z) K4 p/ d
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
- D6 A2 J$ H! {5 S" [NULL, Cst2DType_Length, 0, 0 );# _' U0 L6 h: ?( I6 S7 Q
' i6 ?$ {0 O+ p: u% P& ?$ i
//定义spLine2 与spLine4 的距离约束5 ^2 h! W2 F8 G$ @/ G, X6 I5 M
spConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,) u2 Y7 [" G+ Q  F' h- ^
NULL, Cst2DType_Distance, 0, 0 );3 {: \9 p# J1 E* E" l% H8 G+ b
//定义spPt_bottom_left 与X 轴的距离约束
  Q- Z. U6 j; L$ h( N: m8 S% mCATI2DAxis_var spSupport = NULL_var;
. C  c1 _! o1 X' cspSketch->GetAbsolute2DAxis(spSupport);) {3 K9 f$ [$ B1 z( U6 _: ~# G
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,8 a# N1 y6 N1 `1 h
spSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
" B( O/ E4 ^. A  I- ~: L& P- x//定义spPt_bottom_left 与Y 轴的距离约束" p2 K* v# y+ J+ B( m0 |( L
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,! U6 N) v# j" T  F
spSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
6 s. g& U+ _, k2 o  t  A
9 K. a& J/ A- p& f9 n
1 y7 m. f" S6 u* X
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了