PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

Catia二次开发源码分享:创建草图 Sketch,约束,曲线等

  [复制链接]

2018-2-22 13:25:32 3086 0

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:! _  |, S* _+ ^6 o
1.通过参考平面创建$ [$ ]- {0 k" p  a' P4 D$ J0 L
//获得参考平面
: g7 k! A7 o  b! J1 C) hCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
0 m9 X9 }% U& a' |/ K4 S! u//初始化草图工厂) T, H. F" E# S+ r, y- H
CATISkeTChFactory_var spSketchFactory(spContainer);9 R  o  P* |6 d- d& o, ]# Q
//在XY plane 上创建草图
2 K4 q. C- \6 _2 t+ _" N. S* A6 @CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));( q6 u. e$ O2 h/ D- k8 Q5 u+ t8 b
2.通过原点和两个矢量方向
7 e& I+ F4 T4 S3 ~6 W# i该方法通过定义一个原点和两个方向 pH、pV 进行创建。- k* e/ K4 F. I& U4 _+ k
定义原点和方向:
; w8 _1 w8 R+ v1 z, T/ {$ y) f5 Z& a8 C0 sdouble pOrigin[3]={0,0,10};' i$ r# X0 w: M: @/ |' M  z
double pH[3]={1,0,0};
. _7 _1 `' V: W# Gdouble pV[3]={0,1,0};/ Z9 o5 {1 r3 }" T7 T
CATISketchFactory_var spSketchFactory(spContainer);; Q! ]( R3 P8 U0 t. u2 r4 H- Z
CATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);
! Z# Z6 t( B' \5 m. O) O5 O. [$ v; r4 g7 T2 j5 D

; @1 W0 U3 E! T  o: h5 Tsp2DFactory(spSketch);
6 u! D( o9 K9 D" _# ^% @. r//下面创建点; w, D9 L( }; g1 E" Q1 C& u
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;( b- [1 J3 W3 I) a" E
double pt_bottom_left[2] = {10, 10};8 r, s; {, R5 }+ `' z6 o
double pt_bottom_right[2] = {50, 10};
% i" E0 s) C( x$ o9 ?+ \+ c2 Kdouble pt_top_right[2] = {50, 50};+ Z- l5 F6 w+ U! `/ v2 d& g
double pt_top_left[2] = {10, 50};* `& Z. ~4 x% s/ s
spPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);
; X6 o. [) a% o5 CspPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
5 K" w; l" }0 n4 T5 q) S  GspPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);$ M  C0 a# n$ P/ ~# U1 `: a
spPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);
4 s: x  O+ G! F//开始创建线
( O. O$ K7 Y* P4 o) [CATI2DLine_var spLine1, spLine2, spLine3, spLine4;  U; p0 F4 X, c
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);+ C0 a- r, k+ T  L
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);* r  L( C$ |( k1 R" D! J. Q
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
/ p1 c2 U# j; w" R" ~& @, }, R  [spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);5 J' A) L) F5 c& L' b
//将线的首尾连接起来0 J1 b" |  X  ]0 H2 G

2 ]  u1 P  e- b9 \+ ~4 X: R2 \CATI2DCurve_var spCurve1 (spLine1);8 u3 a4 Z( F. Y; V+ \9 H/ k7 o
CATI2DCurve_var spCurve2 (spLine2);
0 L. a3 i" K8 t: ?CATI2DCurve_var spCurve3 (spLine3);0 w8 P; e2 e  o3 O& ]# D" Q) I  q
CATI2DCurve_var spCurve4 (spLine4);1 H! o2 x" j3 W- G  Q  e# w. B
spCurve1->SetStartPoint(spPt_bottom_left);
/ ~* p0 t$ s. s* jspCurve1->SetEndPoint(spPt_bottom_right);
! `; V  b! ]! p) u% v  AspCurve2->SetStartPoint(spPt_bottom_right);
7 u+ J. ?- O. NspCurve2->SetEndPoint(spPt_top_right);' P% S) l2 S' P4 r1 }
spCurve3->SetStartPoint(spPt_top_right);
# F/ D5 t0 \2 I. r! l! MspCurve3->SetEndPoint(spPt_top_left);+ L1 l5 x3 @, s- ?
spCurve4->SetStartPoint(spPt_top_left);- ]7 M" n2 C2 H/ l. e
spCurve4->SetEndPoint(spPt_bottom_left);
+ K6 C; `3 T! {: l2 U+ B( K//然后退出草图:
* `3 g2 Y" u" Q& @: sspSketch->CloseEdition();: r5 Q" b2 n' ?" S5 V
' o: c4 M& V; r! {0 o
" M6 j% d3 [1 W
1 k) |8 u. G) J9 O: g/ a, F
创建草图约束
' c% \4 I: \' s6 ~, ^! LCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);0 |, t. b' R% _0 ?  m
//定义spLine1 为水平约束: X7 _, L2 U4 w+ \" I  u2 s
spConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,
- L- r# i1 e. G: X% M. S3 n: dNULL, Cst2DType_Horizontal, 0, 0 );, l/ E4 j/ [1 R
//定义spLine2 为垂直约束' i& M+ d7 L7 E; g+ H1 ]
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,( k! u- l( F5 N/ V8 G
NULL, Cst2DType_Vertical, 0, 0 );& e& ~$ S" c2 G3 C  F" c# L
//定义spLine3 为水平约束
. Q* B7 }/ T* S( W  e1 }, \spConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,  n5 D9 b$ ]! A1 X
NULL, Cst2DType_Horizontal, 0, 0 );4 v5 }2 N5 W* D) D8 |, M9 m/ p
//定义spLine4 为垂直约束
& J3 i- ^5 [- N$ n6 Q$ u- `spConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,2 H: d2 r" W2 U- `9 \
NULL, Cst2DType_Vertical, 0, 0 );2 H! M3 j/ i% z, I# }
//定义spLine2 的长度约束
2 o6 b! ~% u; `" fspConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,. T) o1 z; i0 K
NULL, Cst2DType_Length, 0, 0 );! y8 s& f) X6 r. |. E3 }- K
9 z, y/ T! [/ R( K+ u' H
//定义spLine2 与spLine4 的距离约束
4 Q+ g  j3 `4 s7 A2 g% K1 a. XspConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,7 M! m1 F3 y, E, u: L
NULL, Cst2DType_Distance, 0, 0 );
9 J9 O. K& W1 ?* H  K/ I& @//定义spPt_bottom_left 与X 轴的距离约束9 _0 t: Z3 c, |
CATI2DAxis_var spSupport = NULL_var;
( y( k; h( e5 A" c9 F; z4 |spSketch->GetAbsolute2DAxis(spSupport);
& H; a* t2 l% S* z' G5 RspConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,6 p  f' [9 y# E! k% B" h% N0 F" v
spSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );- W% Z% N( s2 Y) G  C) u8 q
//定义spPt_bottom_left 与Y 轴的距离约束% h3 b6 c4 b( q  x+ Z  K
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,+ Z+ B4 l  _$ ]& X+ y2 ]# P0 q
spSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
. l9 c% t1 D4 \& Q% Z# I2 L8 s$ Y' V  s* Y( G

: x; [! d! ^; v( b/ C" H
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了