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

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:
# p5 \" O7 b# B: w! T$ D! t1.通过参考平面创建
* b, t' R; X+ E! U//获得参考平面4 ]& M" p' k! [  ]! F- M
CATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();) n" }4 T: B, S# ?6 i# P5 G2 h
//初始化草图工厂6 p& j; `, j# B; }* A' W) v
CATISkeTChFactory_var spSketchFactory(spContainer);! H& H: E% g2 R; w( P1 \* a7 a
//在XY plane 上创建草图& l1 F# Z1 \+ X) i. E
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));: g1 T& c) @+ E7 C# a7 o
2.通过原点和两个矢量方向" J5 v( O" Z" h9 z
该方法通过定义一个原点和两个方向 pH、pV 进行创建。
: v! V8 g/ E+ F定义原点和方向:2 S7 s3 r9 [& u" q3 H+ }5 s1 V9 @
double pOrigin[3]={0,0,10};
0 A$ E" ]1 Z' v" I; Tdouble pH[3]={1,0,0};
, `# E( b# A7 L; {: j: fdouble pV[3]={0,1,0};0 Z' P( |& g; h' S
CATISketchFactory_var spSketchFactory(spContainer);' T0 l. i( X$ q2 a0 p
CATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);
# l0 q' ]5 B5 v  n3 i
( `/ l/ {  W% ~$ r5 u9 r7 A6 `6 v2 j3 V% A0 |6 y% \1 r% v
sp2DFactory(spSketch);
9 @/ E2 |, \% x! W5 ~//下面创建点
$ Z! g$ N4 q2 c$ BCATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
' D! o2 {7 n' B4 y2 ^+ ~double pt_bottom_left[2] = {10, 10};
9 b( W  S9 }/ R* f5 Cdouble pt_bottom_right[2] = {50, 10};
, e) L1 @( }4 idouble pt_top_right[2] = {50, 50};, h% M; N; J/ w4 ?5 I
double pt_top_left[2] = {10, 50};3 t* o9 c/ T) Y# P8 A5 `7 P
spPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);
& R6 Q8 n3 Y7 @% D* espPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);% n) @6 U& H: ~  O; d. o$ F6 Z
spPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);8 X+ D1 [# ]6 S7 z9 k$ k
spPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);
9 H+ x( S# P- A: {! U//开始创建线
& m" d2 T- h$ F4 f/ O! J8 R+ oCATI2DLine_var spLine1, spLine2, spLine3, spLine4;1 v$ o- |0 F3 e
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);& |1 T- y# I4 s4 s9 N1 U
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);4 J- e1 \7 ~  f( v/ q
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);' h2 E! C/ ?& g4 O8 d! w. o7 j
spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);$ p: C. q8 |/ b& J
//将线的首尾连接起来
* s& \1 G# E1 Z, U& l. j5 n9 m6 \, W& B" X, O+ _1 t  m$ ~4 ^
CATI2DCurve_var spCurve1 (spLine1);* Z" `: x( g' q1 P
CATI2DCurve_var spCurve2 (spLine2);
1 Y2 y. M8 O- b( @CATI2DCurve_var spCurve3 (spLine3);
8 Q+ P' c$ n5 Y. ]; O. ZCATI2DCurve_var spCurve4 (spLine4);
3 A, R8 Q& A$ T  K' N! u" h8 y8 K. o) cspCurve1->SetStartPoint(spPt_bottom_left);; }, M) m" \1 a% y
spCurve1->SetEndPoint(spPt_bottom_right);. E& y) n' s/ ?; Q( }
spCurve2->SetStartPoint(spPt_bottom_right);) ?& u- E. h7 _, R
spCurve2->SetEndPoint(spPt_top_right);8 |% n& k. m  ?
spCurve3->SetStartPoint(spPt_top_right);
  x; S- x) ~! q8 h1 kspCurve3->SetEndPoint(spPt_top_left);4 v* k. W( Z* U  E! X
spCurve4->SetStartPoint(spPt_top_left);" A+ [! v; T* }7 ?  j# E! Q
spCurve4->SetEndPoint(spPt_bottom_left);
3 m! U. p; a3 a1 [$ D//然后退出草图:: {0 f# U8 c) f
spSketch->CloseEdition();
1 S3 C- x/ n+ z2 g" D4 y- o4 E- N2 N, r! M$ e

4 [8 M' f. R1 L( i& n) Q5 v$ y: D, l+ i4 d0 M! P2 p
创建草图约束
$ ?) u; |/ p% j8 u$ D8 k1 oCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
% R: |0 M& A7 ?3 B( q//定义spLine1 为水平约束
  |, p/ K9 R9 E' |* j, yspConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,
/ k2 s, [9 D. j. x2 P3 J/ ?; }NULL, Cst2DType_Horizontal, 0, 0 );
$ e1 Y3 m! l; R) @- W9 y//定义spLine2 为垂直约束( L) z# G  N" x: y$ X
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,. A. O& h% g% H4 A- q: V0 P( A
NULL, Cst2DType_Vertical, 0, 0 );; v, V8 K3 i: M% X8 L
//定义spLine3 为水平约束
4 h- ?% s3 y1 Y& Q5 `spConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,& z" m+ R$ e) U4 Q6 Z9 i
NULL, Cst2DType_Horizontal, 0, 0 );2 c6 D8 m- R5 K' w
//定义spLine4 为垂直约束/ r4 Z, L* W; x
spConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,
0 T& c6 f* B2 _& l  cNULL, Cst2DType_Vertical, 0, 0 );
: b3 b6 O% [2 }9 \8 S$ P4 Z//定义spLine2 的长度约束# m- Q/ Y1 D( L) u
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
% w4 Z1 b9 v# I. a3 \5 g' `: gNULL, Cst2DType_Length, 0, 0 );8 k+ X7 E& U# `
+ @( j/ J* T2 b$ n) T' e
//定义spLine2 与spLine4 的距离约束
7 u( p. \7 [! A" E5 B" D4 cspConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,+ h/ a% w0 k1 g6 D7 z
NULL, Cst2DType_Distance, 0, 0 );: W3 C' Q% X9 P; Z" B
//定义spPt_bottom_left 与X 轴的距离约束/ d1 e% _9 \9 L, L$ v9 @8 O
CATI2DAxis_var spSupport = NULL_var;' o( A2 }1 v% y5 P/ ?
spSketch->GetAbsolute2DAxis(spSupport);
" Q: @) k& T7 Z7 V& s0 rspConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,! h& j) g, b/ |$ h
spSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );9 q5 l$ n( e) Z: M! `. f
//定义spPt_bottom_left 与Y 轴的距离约束
3 G$ E% K3 f! H6 t7 n3 z- gspConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,: T7 ]) {2 z$ `0 P0 B1 Z, B% D
spSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
5 w8 G5 K' o$ [: U0 V6 D" D6 R0 T. m

% ~  w# R0 l, g) r8 l0 b7 i( i
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了