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

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:" n7 m/ y2 p* Y; Z: W
1.通过参考平面创建
; d3 N5 i3 C0 B8 I9 j//获得参考平面
, O- ~; q$ C4 X" ]6 f* YCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
; j# f7 }# @% z' {' ?( w0 k& Q8 ?//初始化草图工厂3 l1 f) e1 g: V+ P% U
CATISkeTChFactory_var spSketchFactory(spContainer);" |/ w8 T6 ?* S7 r$ C& b, Y1 ?% h0 p
//在XY plane 上创建草图( c* L/ J4 ~' U: ^" b/ e. h: _# W
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
) x0 y6 E" B- T  A, i% I* A6 U2.通过原点和两个矢量方向
+ ?3 {( M' C' U$ m2 j6 }- O该方法通过定义一个原点和两个方向 pH、pV 进行创建。' Z  ]& M9 C3 d! Z  y$ Q+ a
定义原点和方向:5 h+ q/ `. ~; M
double pOrigin[3]={0,0,10};  L% `) ^5 L; U  w- ^, V& U
double pH[3]={1,0,0};) J6 c/ r  {5 a. P( a
double pV[3]={0,1,0};
; g) ?' r1 J2 w+ mCATISketchFactory_var spSketchFactory(spContainer);
2 V3 ?7 y4 K/ l  c0 mCATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);: f5 a. y: d' ~) I! X" V

$ |9 H4 V* ]4 j8 [: W0 C, K- }! f; p. {
sp2DFactory(spSketch);6 D8 p, V2 K$ D, ?' [* d
//下面创建点: d5 d1 W8 w# }1 v' o( a$ j8 X* c
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
- ^# F! j$ a3 \0 `+ Ldouble pt_bottom_left[2] = {10, 10};
8 u" s4 U5 Z0 }* sdouble pt_bottom_right[2] = {50, 10};) B" C7 U* J: [. h$ d/ W
double pt_top_right[2] = {50, 50};
3 q: X; q8 u0 w* ]5 u9 Qdouble pt_top_left[2] = {10, 50};* X5 n+ Y( J, y1 A
spPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);# ]  \- h8 O- W, K, N3 V( ?
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);9 i6 n# _9 X- A( f0 N7 o
spPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);0 ~+ U; ~8 M% b8 ~5 Z* t
spPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);" e* W0 X8 p& A- i' ^
//开始创建线  s  r% U" X/ k
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;& V% V# L0 W* C. j: a2 u/ q& w. M
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
# _4 q  U* e$ T. [- v  v: S' ]' ~spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
# H$ X( D+ [( P% q$ BspLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);5 q5 }2 h5 c3 x( P. J
spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);
. G/ G/ x5 r2 s  ^( E//将线的首尾连接起来
; u8 b/ q  \7 }
/ S& Q# o5 k  O" z: _( XCATI2DCurve_var spCurve1 (spLine1);$ y. k$ F0 [0 ^) h. K
CATI2DCurve_var spCurve2 (spLine2);
* m. z0 b2 A* p( O( o+ r: F" g0 hCATI2DCurve_var spCurve3 (spLine3);2 G+ n% P0 N( |( M' n" C4 H
CATI2DCurve_var spCurve4 (spLine4);( Q8 ?+ d, G4 Y5 ?
spCurve1->SetStartPoint(spPt_bottom_left);6 D5 u8 Q: i4 H5 W" M
spCurve1->SetEndPoint(spPt_bottom_right);
9 S- t& b# Y& B6 V. f) ~  d& _: l# LspCurve2->SetStartPoint(spPt_bottom_right);
# B- E; [2 K8 ]8 r4 HspCurve2->SetEndPoint(spPt_top_right);$ ], x& V4 m- r' A7 ]+ E+ l
spCurve3->SetStartPoint(spPt_top_right);
5 j7 m5 ~. B. p9 M" r2 aspCurve3->SetEndPoint(spPt_top_left);
% S% W4 |4 N0 t- g5 MspCurve4->SetStartPoint(spPt_top_left);
* {: F2 w- U3 c; p; ]" C" [spCurve4->SetEndPoint(spPt_bottom_left);& p: _8 @5 |+ U0 q' ^9 l5 E
//然后退出草图:
' X  N3 E$ K& |7 X7 ^spSketch->CloseEdition();
( M6 u+ D. N) K5 P* l5 e% q, @0 ]% W( C9 T' f" X: D6 F

! Z5 H2 v- g/ d9 D! V: N! s, g% d: i" w. M, C- N( T# p1 B
创建草图约束
5 ]7 N) L: k4 d4 Y- Z. k8 l* nCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
/ v1 B6 _5 g9 I+ Y//定义spLine1 为水平约束* i7 e# R$ ]* V
spConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,
' B$ m3 e! B# p) u( |; u! N1 rNULL, Cst2DType_Horizontal, 0, 0 );7 g/ V  m& y& M
//定义spLine2 为垂直约束
% ]0 q: b6 p: ]6 w0 y; |$ F8 m( l8 xspConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
2 P* [; i/ u% d$ J' gNULL, Cst2DType_Vertical, 0, 0 );6 W2 Z& Q" {  S, Q- r# _
//定义spLine3 为水平约束
9 a0 y/ c& Q, f5 G; z# k% XspConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,7 x: }: I9 ?* k9 {1 m# @/ m! _
NULL, Cst2DType_Horizontal, 0, 0 );
" q" r# o; H* h0 G8 }: F0 D$ }//定义spLine4 为垂直约束
2 j0 p" a' P2 o9 m* b- N* O' X- Y* mspConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,) D* g4 k) H0 |; J8 w  v* k, i
NULL, Cst2DType_Vertical, 0, 0 );
6 p; s- C1 T" R& K5 l: G//定义spLine2 的长度约束
& t; \7 Z; j$ D% m; LspConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,- w. P4 @' n' C+ N; O# \3 [9 |
NULL, Cst2DType_Length, 0, 0 );
" ^* O+ ~$ k. U" D" k+ R6 G1 X7 Q9 R+ C! E" J  ]
//定义spLine2 与spLine4 的距离约束, m7 |: }( f& x; A
spConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,
5 L7 x, D, t2 K- A( v) d# xNULL, Cst2DType_Distance, 0, 0 );# z) G( q8 D/ |( L0 V
//定义spPt_bottom_left 与X 轴的距离约束4 t! Z/ U$ _3 k! t5 H
CATI2DAxis_var spSupport = NULL_var;( u3 B* }2 T1 i% G' B
spSketch->GetAbsolute2DAxis(spSupport);
8 R% H" m3 t7 B% J% WspConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,
- @$ a! ]; A6 X4 U" yspSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
1 J+ b6 A: j( ?; ~1 U2 t  K//定义spPt_bottom_left 与Y 轴的距离约束$ Q5 W) }  s0 h0 }6 }% X
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,2 t/ S2 r% P( ]+ M' e# Z, _
spSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );: Y' H  u: l, y$ w$ K0 P
- ~" t# g2 ^1 U/ ?. i6 E

  g/ P% j+ F9 n/ g
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了