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

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:' Y; R# ^( t" e# o- J2 o0 f
1.通过参考平面创建: G& o3 z) K( S+ K" L! F
//获得参考平面
$ R) V. M9 E$ C  o) q7 U) cCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();9 P' f1 W. l! ~6 n$ i
//初始化草图工厂, F- w  o. t% D: j" ~1 U! V3 @
CATISkeTChFactory_var spSketchFactory(spContainer);
8 l$ Z+ H, g+ D" z//在XY plane 上创建草图
. w, ]% P  r) H1 p1 l) T( WCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));3 e" e5 o) T+ c
2.通过原点和两个矢量方向  W) |- Q- k- d+ [& X7 z4 m; W
该方法通过定义一个原点和两个方向 pH、pV 进行创建。
9 R6 B3 @; Y, D4 A* q; B2 }1 y( U定义原点和方向:( R' b$ i5 A) i3 i4 e
double pOrigin[3]={0,0,10};
3 ~- B! n1 j: ~) `/ edouble pH[3]={1,0,0};
' ~0 y! q* D. y3 M6 ^* X) \; `0 Rdouble pV[3]={0,1,0};$ ?6 i3 p" u/ ?" n  P0 N
CATISketchFactory_var spSketchFactory(spContainer);
) l( W  H' e1 `4 d. ECATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);
# w% `0 {9 V, X8 a8 c- l  W) y
0 u" R/ H, I! x) C% x& Q; {, s5 P# Y& L5 z' z# _8 k
sp2DFactory(spSketch);1 B. ]+ U' p+ \/ r6 |. k
//下面创建点. N* n. R! O/ [5 i9 a
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;+ o' R$ T% H1 ]$ `$ \
double pt_bottom_left[2] = {10, 10};# j& C) c0 t/ y/ q9 _
double pt_bottom_right[2] = {50, 10};
# L. j/ _; @9 y/ d6 d- ndouble pt_top_right[2] = {50, 50};
; U8 W1 q/ |# z/ Q$ Y* Adouble pt_top_left[2] = {10, 50};+ y% y6 D/ F4 K: n: J# w
spPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);9 X. g1 v* `" Z
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);9 N% F) u$ E" V! r3 p( Z: S- I" c
spPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);
8 Y. h' M+ A2 i: G: Z! ZspPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);7 K! h0 W1 D& t& O6 z5 |  ]
//开始创建线
! M9 Z- D, V. M* VCATI2DLine_var spLine1, spLine2, spLine3, spLine4;
. ^" o7 e" `; _5 w1 O+ I3 mspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);) V3 H5 G$ D; j' @9 Y
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);* H4 N9 D) R* F" G
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
: l: ^* h5 g0 O- E7 F7 LspLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);
8 w, m% _6 k7 ^8 d/ F6 b//将线的首尾连接起来3 {( l: w; Q: y$ Q6 B; r

# \4 B  _9 ^: ?' ?- T! {CATI2DCurve_var spCurve1 (spLine1);" ]# [( k1 o" [3 ^0 S
CATI2DCurve_var spCurve2 (spLine2);
, t7 t: [2 x5 |+ kCATI2DCurve_var spCurve3 (spLine3);8 s, \' r) S/ A8 Y
CATI2DCurve_var spCurve4 (spLine4);3 A# e: J6 g) ~$ y' |* O7 U0 G
spCurve1->SetStartPoint(spPt_bottom_left);2 w% d+ ^6 i& D0 e' {4 G$ C
spCurve1->SetEndPoint(spPt_bottom_right);
9 ~# i2 t8 [5 w% {spCurve2->SetStartPoint(spPt_bottom_right);
7 M; z4 N& B/ nspCurve2->SetEndPoint(spPt_top_right);8 c5 w$ M$ e. x+ B
spCurve3->SetStartPoint(spPt_top_right);3 O) L4 J( e3 m9 f. K4 i
spCurve3->SetEndPoint(spPt_top_left);2 g4 p  b2 ~1 @, E, o6 t
spCurve4->SetStartPoint(spPt_top_left);
$ W+ ]& G5 V8 \2 `! SspCurve4->SetEndPoint(spPt_bottom_left);
8 U6 B, K3 F4 Q# E//然后退出草图:. U4 D* I3 M6 b% Z( O( W
spSketch->CloseEdition();9 K  u7 e! E6 A' ]. E

# p) M; P* Q! O' N  b; n  r' {! u/ p) [, B
  [+ e  [3 B) J
创建草图约束' R0 N3 ]0 S3 Y( L" u# K7 O, M
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
) C9 S5 N4 X7 x4 J  {/ b9 \1 D/ [//定义spLine1 为水平约束, H+ g; U9 ]2 |# {+ o. k4 L+ G
spConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,; s3 ]* O! c2 {* c/ T4 c
NULL, Cst2DType_Horizontal, 0, 0 );; ?3 _) B0 ~. m+ ^8 I, v7 J
//定义spLine2 为垂直约束# e9 j8 {2 b! B: U& \1 O+ o/ ~
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,7 p9 ]9 M; b3 b0 y: `6 h$ G
NULL, Cst2DType_Vertical, 0, 0 );
+ ^3 o" x& R' g//定义spLine3 为水平约束
4 `' `3 ~- W. W4 C0 k3 a; y. }spConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,
4 y" Y/ `$ H! u* _5 u9 I! HNULL, Cst2DType_Horizontal, 0, 0 );# _. i$ C$ T5 ]- u$ f/ ~- |9 t
//定义spLine4 为垂直约束
: U% Q" y8 t1 R& a& S1 uspConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,, h1 o5 S. s% T; _4 p
NULL, Cst2DType_Vertical, 0, 0 );, E2 ?, A, g/ D3 B$ u
//定义spLine2 的长度约束
& v  j8 K& p/ M3 c1 N) SspConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
! V/ x( G: h7 \& FNULL, Cst2DType_Length, 0, 0 );% J; x1 F* a& K3 p4 m3 r( S
9 k5 t1 {2 n  G# T5 Y1 F
//定义spLine2 与spLine4 的距离约束4 k/ b! P  y, e) \  @/ r" `, b  Z
spConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,
+ v5 ?! ?: `9 B7 J' u5 S) B1 \1 pNULL, Cst2DType_Distance, 0, 0 );2 h) g! z# ~) z9 Z8 l5 M  g  a4 J
//定义spPt_bottom_left 与X 轴的距离约束
) [; ?. e8 a6 f, ^; S. I1 RCATI2DAxis_var spSupport = NULL_var;
$ |# Z# c, V+ s: Z$ M& B+ S$ KspSketch->GetAbsolute2DAxis(spSupport);
: ?& r8 \$ j2 X! J* H  G2 S) d+ GspConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,! H' R/ t7 m8 F5 M& ]. O
spSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );3 e! {; J! n4 X6 B
//定义spPt_bottom_left 与Y 轴的距离约束
# o4 h, M$ }* e3 RspConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,2 _  c" I; `" J% F( f4 J
spSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );7 `$ R- g6 `0 a4 h0 c/ ~" [

/ Y  C2 @) l5 z* N* h  O( _) O9 s, \% W6 k0 }
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了