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

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:
( b# V+ n/ K% g" d4 g2 T1.通过参考平面创建8 Y2 H- ~" w8 D: b2 C
//获得参考平面
4 p9 w2 G3 C4 G% FCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
* z( H: W2 _6 r3 n//初始化草图工厂' h  y  @$ Y+ \$ o4 M1 Z7 M
CATISkeTChFactory_var spSketchFactory(spContainer);
2 o% r% h( i6 T' p//在XY plane 上创建草图* R0 C) p/ u% [6 n" d5 f& \
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));, M2 ~0 {  l& ^
2.通过原点和两个矢量方向. r& I1 E- N, Y; f& Y
该方法通过定义一个原点和两个方向 pH、pV 进行创建。& e7 A* D* T' k) O7 z8 \6 T
定义原点和方向:
7 ]  u! y( \% j) Gdouble pOrigin[3]={0,0,10};
2 W1 o' K) f6 J( ~8 Odouble pH[3]={1,0,0};' i/ W1 a7 i% J; \# Z5 C$ q
double pV[3]={0,1,0};
( |& F  f3 [/ t1 rCATISketchFactory_var spSketchFactory(spContainer);. [& u3 B* I1 E" h. n
CATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);# M) s2 E4 h' P) A6 z. Y
0 x) U& {  T7 P! K

& S7 d  t& J% \  `4 q( h- s* ssp2DFactory(spSketch);+ ?$ u" ^5 M4 N- y) i) ]$ Y
//下面创建点
: x$ C0 Z# I' b4 o, O! _CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;! ^, ]4 i2 C; g4 O
double pt_bottom_left[2] = {10, 10};+ o4 _, a$ M& V; v
double pt_bottom_right[2] = {50, 10};
! p- @' q& M( Y* F" [double pt_top_right[2] = {50, 50};. V$ M+ k2 y0 j) W- O$ Y# L1 C
double pt_top_left[2] = {10, 50};
: a1 E7 s( A# P! A2 e1 n2 EspPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);! k# a: e% E+ O7 @) k' J
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
9 s1 X1 N4 Q5 p$ ^8 `spPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);
6 ~1 a" x  t1 z( H6 C  m! w% ~spPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);7 G; D' Y) u- M7 g3 m6 d8 t- I
//开始创建线
% w* ~5 w2 E: GCATI2DLine_var spLine1, spLine2, spLine3, spLine4;  l/ P) l; {6 a# a0 P' _* O' d$ s
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);- I/ A; R1 D  D& Q) |! R
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);3 g: c6 x; H% F8 q. U
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
! y* _1 }8 r+ F0 |3 Y& O! U7 WspLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);$ ?. e- T+ b. z8 I
//将线的首尾连接起来
2 p' h& d3 p7 g- k! ~
/ N+ P) W. M7 \  G% }2 ZCATI2DCurve_var spCurve1 (spLine1);3 s+ n: J6 ^$ s5 G; v+ t
CATI2DCurve_var spCurve2 (spLine2);
: F2 [" z) ]: z  l+ U) x- L/ FCATI2DCurve_var spCurve3 (spLine3);
5 H4 Q$ E3 S* z# o  M- C/ ^  \CATI2DCurve_var spCurve4 (spLine4);
3 L# t$ i7 ~- fspCurve1->SetStartPoint(spPt_bottom_left);" v  w. Y, K+ @# {/ p" y4 ?: ?
spCurve1->SetEndPoint(spPt_bottom_right);
/ }% W4 R" l: x% v9 ispCurve2->SetStartPoint(spPt_bottom_right);9 B: O6 B+ \: @' h) Y" T
spCurve2->SetEndPoint(spPt_top_right);4 r/ r$ ?4 U6 c! M* Y) V& X( r
spCurve3->SetStartPoint(spPt_top_right);
: s3 g/ m  N& l4 ~* g( B4 UspCurve3->SetEndPoint(spPt_top_left);( K4 H& Z9 d+ t' C* \$ P) o
spCurve4->SetStartPoint(spPt_top_left);
' K- A3 r% k& j5 t; @1 d9 EspCurve4->SetEndPoint(spPt_bottom_left);
; ]2 P) C3 C  H, J+ ~//然后退出草图:# z% l+ F% I" M
spSketch->CloseEdition();9 s: a7 ~+ t; I( P  A0 q% m

! w! ^# C* v8 ~" C) V/ c: W% O# w/ P# L: h# p7 \0 t/ N# H4 ~
5 }7 D( @7 Z# [  ]& S3 e
创建草图约束
( ?, K9 t- G$ }CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
& h1 K- L' J0 F& O  Z3 x//定义spLine1 为水平约束% n! T! c, a0 |$ ^: i8 s4 q
spConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,
  `& v' Z: ~0 ~# j* G$ a% f& d( @NULL, Cst2DType_Horizontal, 0, 0 );# v9 X- e( V6 I
//定义spLine2 为垂直约束
" d! T9 ]  e( _5 F- zspConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
/ v  T7 O3 y$ S4 A- oNULL, Cst2DType_Vertical, 0, 0 );) @4 C5 P, q" X
//定义spLine3 为水平约束9 c( V5 y5 k( Y9 O" A
spConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,. G9 M( V) @% O# a0 I1 }; x7 |
NULL, Cst2DType_Horizontal, 0, 0 );
5 ?  y) |; p  e$ }" p4 C, ^* j7 V//定义spLine4 为垂直约束" ]  l2 S) j, b! i
spConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,
1 H0 b6 B+ j7 P  s3 BNULL, Cst2DType_Vertical, 0, 0 );
! D3 ~1 U9 r5 R9 L) ~//定义spLine2 的长度约束
2 T' H# u. g4 p( @2 r' QspConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
- T# Q5 d( m% U+ LNULL, Cst2DType_Length, 0, 0 );! k" P2 M2 J4 ]& X  N
+ \* @. J) t5 R7 t) C1 l3 x
//定义spLine2 与spLine4 的距离约束" Y' b2 t! A% ~) \# K" A
spConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,' K/ R4 C5 Z" c9 j$ m
NULL, Cst2DType_Distance, 0, 0 );
( [8 j/ Y& l6 A  L0 o7 c2 B: r" p//定义spPt_bottom_left 与X 轴的距离约束5 D- K8 l3 l- P
CATI2DAxis_var spSupport = NULL_var;
, e% G: G3 T5 X* S7 X3 @/ |spSketch->GetAbsolute2DAxis(spSupport);4 o2 l* M  c7 _1 A* b
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,. z! j6 C+ v0 w% ^9 c; C' W# Y6 V
spSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );2 A! i4 `. ?6 T5 O/ G
//定义spPt_bottom_left 与Y 轴的距离约束' W, ]" k' O3 g- O
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,* o% V1 k# i9 N) F
spSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
/ c2 A0 {- \- q7 f- f; @
( V* R9 c4 C# @5 r4 s  y. y5 C' q
. J6 p" a- N5 }; {
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了