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

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:6 O6 J9 P3 B; W- H7 o' ~" _
1.通过参考平面创建
, h, ~  m+ H1 G5 f//获得参考平面  Q  b+ v( w* D/ G7 q
CATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();/ o0 b: m- V5 m+ b& I$ F) K/ X) s
//初始化草图工厂
# x* N  @- U) J9 o7 A9 JCATISkeTChFactory_var spSketchFactory(spContainer);
/ `6 t, p/ Z. w$ v//在XY plane 上创建草图
' `7 ?0 r  N- F1 J6 DCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));$ B9 x5 p* h, N* s( {
2.通过原点和两个矢量方向$ `7 Q5 S% y5 g) D
该方法通过定义一个原点和两个方向 pH、pV 进行创建。
! F8 L# m. [7 f9 |1 k' N0 c# m定义原点和方向:
/ i7 k0 t! h' a1 B* I5 V6 ]double pOrigin[3]={0,0,10};
0 C, ?$ C( X  C" w2 T5 e& ?double pH[3]={1,0,0};
3 l* f. {: h5 P$ ?" T4 L8 hdouble pV[3]={0,1,0};
+ x0 L$ {, p) OCATISketchFactory_var spSketchFactory(spContainer);
0 {+ H: B- ]# E* zCATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);8 u" x' H: x3 S! w9 x8 X
+ u+ a" G1 z& F$ F) h4 B3 _( k7 e

% w% t7 D5 n  E8 B. Osp2DFactory(spSketch);' \- z* f3 t! a; b; q
//下面创建点
* z( d0 P1 {0 `, c- }- u+ K; n8 SCATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
/ P1 ^' l* f: _* d3 bdouble pt_bottom_left[2] = {10, 10};5 K' I5 r& o% y  ?9 k9 R
double pt_bottom_right[2] = {50, 10};3 S( s5 A! }/ p5 k, w
double pt_top_right[2] = {50, 50};
- g! d' U: q0 `- |9 i7 Fdouble pt_top_left[2] = {10, 50};$ `6 L# Q$ U7 g4 i
spPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);
7 V- ^( S+ ?! m- X; w7 t: zspPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
& e, q& ?' U5 m) {* RspPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);% n8 {; Q( _( Q' D4 m8 n0 }/ z
spPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);% p8 A7 w& h+ D- h" p. S8 o& T
//开始创建线
: W8 H. f/ g; i6 k" ^( d# K" K: m! CCATI2DLine_var spLine1, spLine2, spLine3, spLine4;
0 _- I4 Y( J5 Z+ S# PspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);. Z2 P. S+ E: ]" g! ^$ Z
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);; S$ O) G" O/ z; [
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
& t" N9 X% Q/ z$ U2 M* ospLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);
$ A* f* f1 x( W6 W- {& _7 a//将线的首尾连接起来
; n0 G* E6 R2 j% {( C6 a8 `4 D
: u, T: `- r5 Y- z0 Y* ICATI2DCurve_var spCurve1 (spLine1);. |. K, z8 }* A: S. ~& c, l* W
CATI2DCurve_var spCurve2 (spLine2);
# \% n1 N# b! BCATI2DCurve_var spCurve3 (spLine3);! S8 Z( z8 L$ e" S6 I6 w
CATI2DCurve_var spCurve4 (spLine4);+ V7 y2 N- X9 {2 I4 ^; @
spCurve1->SetStartPoint(spPt_bottom_left);4 }/ \# J1 f( E  Y* R! p
spCurve1->SetEndPoint(spPt_bottom_right);* y& N, Q3 |% o; \6 e- z& r1 W
spCurve2->SetStartPoint(spPt_bottom_right);
8 o5 O3 J( O  B3 n' VspCurve2->SetEndPoint(spPt_top_right);# q0 e" F4 x0 v& ?& R8 [+ H
spCurve3->SetStartPoint(spPt_top_right);
, @5 U, Q! ?9 u7 IspCurve3->SetEndPoint(spPt_top_left);
5 f6 J9 e' ^9 X: fspCurve4->SetStartPoint(spPt_top_left);$ |) R! _9 a7 i0 F
spCurve4->SetEndPoint(spPt_bottom_left);* i+ }- }/ r3 n3 v6 R
//然后退出草图:
+ \. Z. Q5 c6 yspSketch->CloseEdition();. C% f" N( }( E% W& w: }
4 L& ?7 H1 j) |1 I* n2 m

! t: z3 s8 e/ e! d6 \( v/ c5 R" r5 t- B- w% {% `; p8 I
创建草图约束
; M/ k- k1 C2 j  R  iCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
* @8 J& i& P# y! U; e9 o- ]//定义spLine1 为水平约束
, u& E8 a- V8 x' q. VspConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,
0 M. O3 `& z" g% aNULL, Cst2DType_Horizontal, 0, 0 );" t* Q# d6 p! E0 a1 {% _! k& W  d' F) |0 J
//定义spLine2 为垂直约束9 c2 _$ C$ c" k0 p# _# f2 o9 e
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,* @: d, @5 a/ r: ?* I
NULL, Cst2DType_Vertical, 0, 0 );9 N8 o- `, n' ]" Y8 l
//定义spLine3 为水平约束' S( L3 Y) E; F) Y0 C
spConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,
5 c& E  [% k$ m* K- {5 ?6 j; SNULL, Cst2DType_Horizontal, 0, 0 );
( w$ B$ a7 U: h) z; |. P, h//定义spLine4 为垂直约束
8 U- r2 d: c8 K, D, \: V* ~  O8 X- a) pspConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,
- @% P; p9 F* c' h& a2 ~NULL, Cst2DType_Vertical, 0, 0 );
+ X3 {& a2 _; r* k, q7 i//定义spLine2 的长度约束3 n6 v0 a# i# Y# A
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
5 g/ }6 [! Q5 e! j" gNULL, Cst2DType_Length, 0, 0 );
! A6 U7 h6 j; L  f( j# B% q: r) @5 }8 k0 B6 k: e) l' v
//定义spLine2 与spLine4 的距离约束
. D9 r5 ]: R) k) N1 espConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,
4 {9 y( g1 I( D  a- ~NULL, Cst2DType_Distance, 0, 0 );
* \# Z: l0 {% B; s//定义spPt_bottom_left 与X 轴的距离约束0 W- c6 {2 }0 g; |# [
CATI2DAxis_var spSupport = NULL_var;
* A) U1 Z3 z- c( E- j* lspSketch->GetAbsolute2DAxis(spSupport);# D6 \8 ?: X1 y: h( S6 ^# b+ f' c
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,
; {9 F) o! e2 u9 P8 A$ }5 k% FspSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );6 I& t3 N7 L. T8 h  w: W: T: H
//定义spPt_bottom_left 与Y 轴的距离约束. J4 K/ q- `3 x5 F8 h6 ?
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,
, q8 A4 `0 K; _6 r/ i' dspSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
! t$ N- @0 u3 o" b0 ~! s  L) O& V8 {$ j. w  l8 w. |
8 W( C1 n, K4 X+ [- S
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了