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

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:6 Y% Z, P9 o$ ]2 U+ R1 `3 k
1.通过参考平面创建2 h8 n0 O! y7 n$ Q/ B. j+ c
//获得参考平面, G: l& O8 ~4 P. O
CATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
, ~% h" t) I7 A" V( k% i5 p//初始化草图工厂
! f* e" W$ m0 \; i' n# aCATISkeTChFactory_var spSketchFactory(spContainer);) A: Y+ u! K% M* q
//在XY plane 上创建草图8 R5 J' ^! \$ V9 E- W9 U5 `
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));) c* b9 e" t+ w  v
2.通过原点和两个矢量方向
, p" _2 Z7 b; n# [该方法通过定义一个原点和两个方向 pH、pV 进行创建。
# D5 c' |0 C) j定义原点和方向:
* w$ T: `% J: i9 |double pOrigin[3]={0,0,10};( d6 V0 J& T: q7 D* K1 u
double pH[3]={1,0,0};% I  b' |$ R( ~4 G
double pV[3]={0,1,0};. s8 [! Q# z4 n/ Y7 q9 d
CATISketchFactory_var spSketchFactory(spContainer);  g/ y) z( T5 L- ^" A
CATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);
4 D; [2 L+ G$ C( s2 {
( \- L  _; h, Y, L  ], @4 ?" F9 J" B! n0 ~& [& O
sp2DFactory(spSketch);& j  `' t$ J; J
//下面创建点
$ ^' _9 l3 y% ^. X& O; xCATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;$ X: n& V" d' k/ ~: Y) Q; E, ]
double pt_bottom_left[2] = {10, 10};
2 n: g( I! r/ J) {) X; sdouble pt_bottom_right[2] = {50, 10};
  [9 U; }" x4 V$ kdouble pt_top_right[2] = {50, 50};
+ h9 n: O. Y: H: {$ r! T/ U1 cdouble pt_top_left[2] = {10, 50};" I) m+ r" z& A! x
spPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);
$ @& a; q1 T: {, `4 e5 v, b% |spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
  k8 J4 J( I; t, X! k+ AspPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);
5 ^8 J5 A$ u# c: k9 J3 hspPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);' m. O4 D. ~% C9 e# C
//开始创建线/ J* u. i8 N* p& K& [& J, ?0 J. t
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;
1 t# f. C5 ]3 B' z7 RspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);) Z9 ]- e- @1 x. Y  g% L0 ^
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
: w4 o' u7 p( l$ h. |+ |9 Z, SspLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
* S" o, d; A% D% ]. N4 _* g3 tspLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);. d# S7 x" W# E
//将线的首尾连接起来
& G5 ]5 |5 g; u* `
5 `4 i& j, y! vCATI2DCurve_var spCurve1 (spLine1);8 u4 t$ t- C: p1 ]( Z
CATI2DCurve_var spCurve2 (spLine2);
$ _# |/ L( g% e: tCATI2DCurve_var spCurve3 (spLine3);
" u2 q8 y5 ]; q) M: p/ xCATI2DCurve_var spCurve4 (spLine4);0 q# `& ~# M. u& J. f
spCurve1->SetStartPoint(spPt_bottom_left);
! S. v5 t$ U3 `spCurve1->SetEndPoint(spPt_bottom_right);  D: Y* a" z$ s& `
spCurve2->SetStartPoint(spPt_bottom_right);
6 P" l/ z8 U8 J6 h. a! `( tspCurve2->SetEndPoint(spPt_top_right);
' p2 h4 o5 Y8 OspCurve3->SetStartPoint(spPt_top_right);9 s5 J' I$ }& ~( z2 t/ ^, l
spCurve3->SetEndPoint(spPt_top_left);6 S- r1 h  x% Q- T. l  S  h
spCurve4->SetStartPoint(spPt_top_left);4 ]. ~& A( Y3 g
spCurve4->SetEndPoint(spPt_bottom_left);2 E0 G3 c7 |/ M- x: f
//然后退出草图:) B9 T: p- r* H3 a) m6 x3 f2 E) U
spSketch->CloseEdition();
) z. h+ n0 @, n6 j$ v% }9 [5 P& z; x( E' r/ f- \* f2 [
8 ?$ p* R5 K  R0 m+ x9 m' l# {8 E
4 A% L% f$ O! F* Y6 Z
创建草图约束- i" V* |6 J8 ?" D
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);& |) Y! }/ _% T" k0 D3 \: P
//定义spLine1 为水平约束
6 n5 r: u8 b8 {6 }4 t; x/ h# W2 xspConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,
6 f. W3 K" e. |NULL, Cst2DType_Horizontal, 0, 0 );  K/ G( V; m, w
//定义spLine2 为垂直约束7 b, ^2 W* L+ Q' ^
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,4 X; V% ^: s0 E" J, g, B6 s
NULL, Cst2DType_Vertical, 0, 0 );& I2 I' R5 ~# w# `$ w( u: u
//定义spLine3 为水平约束
& u" ]9 W/ R, `2 u2 kspConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,2 Y; P- i. ~3 R7 I0 X5 u
NULL, Cst2DType_Horizontal, 0, 0 );
+ {& }0 `9 {, O( P3 _4 T; D//定义spLine4 为垂直约束+ I3 Y' l: ^/ ]9 g9 A' U
spConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,4 A" u& N) Z2 e6 }/ a( V
NULL, Cst2DType_Vertical, 0, 0 );
2 E. W. ^- b4 |. d5 S1 a//定义spLine2 的长度约束$ t/ o$ R# O4 S8 x
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,7 b& A5 F  C  o# z( |
NULL, Cst2DType_Length, 0, 0 );
3 v! }3 h. F% P! h8 p0 N, F
/ P1 ~# g# a% k2 v0 r, F' F0 U9 P//定义spLine2 与spLine4 的距离约束
, T9 T2 O$ l( F; r; A$ }spConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,( N5 X1 K3 W# l+ g' r: D1 r- X
NULL, Cst2DType_Distance, 0, 0 );. {& y' r* u8 N) R3 m2 l. [+ {+ K9 @
//定义spPt_bottom_left 与X 轴的距离约束
8 R  y" ]& P" C, S* D9 a0 DCATI2DAxis_var spSupport = NULL_var;
, z' w" F; i, T& j' QspSketch->GetAbsolute2DAxis(spSupport);. C0 Q2 W8 E* ?" n8 O9 l
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,
0 @8 z9 `% M- D$ T. V4 qspSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
+ N# l* Q8 f) {//定义spPt_bottom_left 与Y 轴的距离约束* L0 I% Y; K% \4 J& G9 k
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,& q6 ?6 D8 e  r1 X, \, J
spSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
! w7 H. }' I! y8 b( v+ n
' j# c5 o6 `, Q: H, ?2 K- z! w6 u" z/ z- \' g5 J! F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了