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

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

admin 楼主

2018-2-22 13:25:32

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

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

x
有两种方式可以创建草图:
, e1 N- i! E! S* `" p9 [* {9 n! |, q( p1.通过参考平面创建
4 L' p, z4 p  ?2 s//获得参考平面2 U9 p  ]. B6 a: A/ D
CATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
6 l: o- I% f0 e: _' d" D* {: [* i7 b//初始化草图工厂5 V0 S3 a7 i' O) l  d; e
CATISkeTChFactory_var spSketchFactory(spContainer);
" P2 B0 L9 B+ ?//在XY plane 上创建草图5 t* V  A5 u+ P) N' c# V# `  n1 ^5 n
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));# Z% W( a; n% G
2.通过原点和两个矢量方向
) U  _$ d4 G! `3 J该方法通过定义一个原点和两个方向 pH、pV 进行创建。7 E! W6 W* v  \7 v! v
定义原点和方向:- Y# H5 R6 X( F* }8 J1 g9 `1 m# p
double pOrigin[3]={0,0,10};, D  a' D% e. X  `& L
double pH[3]={1,0,0};
: P( ?% b) j6 edouble pV[3]={0,1,0};
( j: I/ ~* H1 y0 [CATISketchFactory_var spSketchFactory(spContainer);
& x! v7 ]' S& J1 q, m8 qCATISketch_var spSketch = spSketchFactory->CreateSketch(pOrigin, pH, pV);' s/ h9 r$ ^2 D1 q2 ]1 p* Q: P
( `$ I% R7 s6 y( J* m
# I: ^4 P* h+ V+ z$ |' u6 K$ w5 y
sp2DFactory(spSketch);
# |5 S5 Q: E. `2 Q' {. D6 ^//下面创建点/ e  P( `  T# c
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
( r, ]0 t9 ?/ o" r; P" Vdouble pt_bottom_left[2] = {10, 10};
+ F7 G$ }4 ^9 udouble pt_bottom_right[2] = {50, 10};7 W; ~) C  ~5 {4 b# s; z, z
double pt_top_right[2] = {50, 50};9 J) Z9 ^4 l8 S9 u
double pt_top_left[2] = {10, 50};
* b+ x0 p7 P' d5 I* cspPt_bottom_left = sketch2DFactory->CreatePoint(pt_bottom_left);
. u: F! H& Q4 TspPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
* I% Z5 c1 p1 A% M; W9 dspPt_top_right = sketch2DFactory->CreatePoint(pt_top_right);
! n2 n5 n1 ~1 _# v, N- ?spPt_top_left = sketch2DFactory->CreatePoint(pt_top_left);
' R$ S& D9 B. e! M( |; J//开始创建线! k. T# {9 v" z& c7 Z0 [
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;% Q* u6 p0 X8 K6 j# `- j0 [/ m
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);9 b) y$ S- D2 W, ^1 ~
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);8 \! r/ f" F/ m/ L% B
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);1 e8 v; Z$ i, D( g, n- Y' g' S
spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);: r" w  a" B; o% ]  E9 @
//将线的首尾连接起来( X6 ], q! v( G( b% a/ b* c  U2 i
$ {# d3 {  r: C. l: E! d
CATI2DCurve_var spCurve1 (spLine1);# D2 V( j% {- _  w& R0 |
CATI2DCurve_var spCurve2 (spLine2);# w( Y. u  ?( r6 c" U; \
CATI2DCurve_var spCurve3 (spLine3);
) J. t+ D7 V) z  L: K/ `: tCATI2DCurve_var spCurve4 (spLine4);  h! Y$ J* G/ x# i
spCurve1->SetStartPoint(spPt_bottom_left);
: n: c7 Y& F' K4 e7 G. r2 L6 f9 aspCurve1->SetEndPoint(spPt_bottom_right);2 f, H& V4 W: \5 K% z# P' f$ E
spCurve2->SetStartPoint(spPt_bottom_right);
5 w0 w! O6 S5 J0 kspCurve2->SetEndPoint(spPt_top_right);$ T0 l( `  i( x" L
spCurve3->SetStartPoint(spPt_top_right);0 p6 B3 p# g' Q$ o6 \+ y+ p6 O
spCurve3->SetEndPoint(spPt_top_left);
1 x# l/ u) V, V* z7 `1 R: ZspCurve4->SetStartPoint(spPt_top_left);& X3 e/ Q6 e- [9 h! G/ f
spCurve4->SetEndPoint(spPt_bottom_left);
4 v4 r& }) B- o( t' j. _3 _" f//然后退出草图:
7 U) C. ~* Q8 M  Q7 V& JspSketch->CloseEdition();
8 M$ d1 Q$ p4 e. R! ^$ i- w- O* @% o: w
" c  A- \) G. V
9 ]  X7 K& M4 ?9 S
创建草图约束. A# ~1 S) L8 [1 }# T
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
' o* p# j/ B  l' Z& Z//定义spLine1 为水平约束
* O) o1 \6 a- @, |spConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL,) Q$ ]) c: e% Q" J
NULL, Cst2DType_Horizontal, 0, 0 );# K. h- G  ]. [( c' d) B" x
//定义spLine2 为垂直约束" o: x! R; `. R" ~2 Q
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,
: j, T' G* a1 z, U4 S' qNULL, Cst2DType_Vertical, 0, 0 );
, p4 _, W0 C; Y) p: ]. ^# M//定义spLine3 为水平约束
( t$ N$ W/ F( lspConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL,
4 X$ v% U( h9 o( p3 GNULL, Cst2DType_Horizontal, 0, 0 );8 p" \; f5 n+ r
//定义spLine4 为垂直约束: t4 {# M2 ~1 x* s/ n
spConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL,
+ s5 u' g, L% a- s9 B& S% uNULL, Cst2DType_Vertical, 0, 0 );
% E; p( q' Q1 @' q, [2 m//定义spLine2 的长度约束9 @) A, q. q- N4 Y8 ?/ u& [
spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL,6 t  E* l9 Z3 x  @( v* V- [* `
NULL, Cst2DType_Length, 0, 0 );
7 G$ |, ^1 U! ~7 b6 R8 E  l* F% v5 N- S" u( G
//定义spLine2 与spLine4 的距离约束8 X  |2 z; \- g- `2 G7 c, K8 h
spConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL,0 g0 v0 y0 ~2 u9 r
NULL, Cst2DType_Distance, 0, 0 );1 q/ u) ^5 J3 T5 c5 u0 t8 M6 y1 Z: U
//定义spPt_bottom_left 与X 轴的距离约束
* R8 z- t9 F$ H$ wCATI2DAxis_var spSupport = NULL_var;
/ K& j7 g2 V& Y, V" {spSketch->GetAbsolute2DAxis(spSupport);6 j$ i6 w# P% R5 w9 G8 F$ k+ r
spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,
; r5 O* r4 w( ^4 h6 o( zspSupport->GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );
7 d! o* S, M5 ?6 }; ^0 |4 M" V//定义spPt_bottom_left 与Y 轴的距离约束
! v3 P* S$ z$ x5 w' SspConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL,
( X3 K( H; w0 K2 p7 p, ]spSupport->GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );/ Q5 Q( s% S2 m' t- g2 z+ K# m7 D
. ]: ]8 q( w' L

& {! ^% o5 F2 ?2 C6 R+ n" E
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了