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二次开发入门教程---21 创建草图几何图形

  [复制链接]

2024-3-12 20:17:25 4318 2

admin 发表于 2017-12-22 13:51:55 |阅读模式

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形+ w8 a1 j/ y; E
: g. m0 w% C% b
QQ截图20171224125201.png
- a* X% K' u2 ^- M/ r9 i' J9 J1 {( c/ ]8 T
[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory4 I% E9 Y0 ]7 h0 d7 ?4 l
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
  {9 H4 @/ ~: g* c5 M& k; {" B        CATDocument *pDoc = pEditor->GetDocument();
0 s$ h; I2 c- y        CATIContainerOfDocument_var spConODocs = pDoc;
3 h$ e9 y: D/ j, ?0 x6 \* R8 f$ H3 v( y! n( V( i. J0 z" ]
        CATIContainer*            pContainer;                //Container
: [6 W" ^+ f: \1 I6 z$ C- {        CATIPrtContainer*     pPrtContainer;//PartContainer6 p' d- C/ W4 W; d: l3 Y
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂
, f) r0 k& }. h" H5 S1 P
, }; d' Z' H  E: w4 k        CATIPrtPart_var        spPrt   ;//4 {/ Q1 M5 s4 O) y" h+ A( h8 M
        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
4 J1 t8 {& j4 W0 Z+ p8 v$ a
. v0 _6 z9 G. l  i4 r$ e1 Q        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer) A: n1 B( d: _. b: F, S
        spPrt = pPrtContainer->GetPart();
+ U2 y3 L. B( P" {) \$ B        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面( Q5 j/ H. G- v/ d, E8 o+ I

$ Z2 r: p/ B* D        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面4 c$ L. p8 f1 o* {* y
        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂; _# |; U  z/ M. J; R: c
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图4 T) i4 \6 Q2 J7 K3 E
        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
1 ~: @2 [! I% J: t! h* i
& J( t" y2 F8 w/ c; y2 p# D        spSketch->OpenEdition();        //进入草图开始绘图' O' z+ p( ?5 G9 k" I6 f2 ?3 @
! L7 A/ X# \, a. V: a+ I
        double p1[2]   = {0,0};
' B2 \8 {, \0 a; E5 Q7 h! U" x   double p2[2]   = {100,0};
4 M+ j/ E7 r9 V4 d   double p3[2]   = {100,100};( C5 j' x0 @5 O; Q8 z
   double p4[2]   = {0,100};
8 W( L+ ?- _4 a2 @8 S8 n1 `. k- r$ t- f# l  G
   CATI2DPoint_var spP1,spP2,spP3,spP4;, S0 d9 e# N0 `8 C9 [. f! B

# }4 u  a9 ]/ z8 p: T) F0 ospP1 = spWF2DFactOnSketch->CreatePoint(p1);
  D( j! M) V: L9 SspP2 = spWF2DFactOnSketch->CreatePoint(p2);
" q+ L( l( Y; S- y& {$ JspP3 = spWF2DFactOnSketch->CreatePoint(p3);  X+ @9 F9 ^! X6 z7 b
spP4 = spWF2DFactOnSketch->CreatePoint(p4);) U9 `6 W7 J; @0 U: K  k, `' S

" ?' ~5 _+ I) J6 X1 W2 oCATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);% o7 d) U+ |2 }. @0 @
CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);  j$ N* q% v, f9 G
CATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);$ H7 g0 {' }' o: ^1 r, I1 }
CATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);- h3 r8 R0 H: \' k0 b  @

# o* _2 n  z* Z' h+ WCATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;8 L/ _- B$ d* p) {
spCurve1 = spLine1;" F9 a+ D/ a7 x2 Z6 G
spCurve2 = spLine2;
( L0 h) c+ J3 y  VspCurve3 = spLine3;
1 N; t% D- N4 C/ b0 _( ?spCurve4 = spLine4;6 v+ A6 a) R4 l! N  M2 L

& M4 M- a! \: i1 V* zspCurve1->SetStartPoint(spP1);
0 _! c: L# T  t+ e3 \spCurve1->SetEndPoint(spP2);, z% I% B( T6 x* v+ v; v' A
spCurve2->SetStartPoint(spP2);: O1 ^" S" }* q, }' f& ]4 o7 _4 ]
spCurve2->SetEndPoint(spP3);) ~3 T. Y2 I4 ]( ~8 `" }
spCurve3->SetStartPoint(spP3);
5 f  _2 a; ?$ jspCurve3->SetEndPoint(spP4);
/ }- n+ L% F5 g7 k. A4 Y" BspCurve4->SetStartPoint(spP4);4 @: W$ F: m; }9 R/ D0 t
spCurve4->SetEndPoint(spP1);. A1 o6 p2 z8 K2 U, u

) C" b6 w, B5 r- N1 F/ Y
1 l! d: I; }* U6 y; g/ Z  spSketch->CloseEdition(); //退出草图0 A8 |" z: d7 I7 N9 K" n9 K4 o

1 X. K) s/ S( e* ~+ y8 Y3 T# f2 N) m+ C# {8 ?- w( Q
  CATISpecObject_var spObject = spSketch;3 d$ d' V+ [  {% \
spObject->Update();
1 x/ a% ]/ v% M) }, V  [/mw_shl_code]9 y/ `# j% V( }
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复2

admin 发表于 2017-12-22 13:52:59

admin 沙发

2017-12-22 13:52:59

在上一节的基础上,开始创建草图。首先创建草图工厂:
. m3 ?9 h- L, Y( @" y( nCATI2DWFFactory_var sketch2DFactory(spSketch);
5 ?+ D: t* t5 [7 P9 C下面创建点:) W$ y6 a) m% j% k% F: o! B$ b
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;! R4 |, S* j- q  }
double pt_bottom_left[2]  = {10., 10.};
2 b) v8 f5 t+ b3 Adouble pt_bottom_right[2] = {50., 10.};
( a- A3 T" c" |- f2 S* k. }double pt_top_right[2]    = {50., 50.};' Y& N! y* i2 F" t* q
double pt_top_left[2]     = {10., 50.};" r- \! W  S0 |% A& D9 c
spPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);, B4 ]# }# \. a
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
# b3 x. V# w7 j+ X( X- Q) QspPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);( G: R$ {. {; O! ^, S
spPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);
8 D1 b5 \* G; m1 c开始创建线:, P6 W8 k2 k0 F
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;
1 H' G4 `9 r; k9 aspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);4 ^) g4 q: t) y1 M* ?- D6 q
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
: K" w: ]; D' R4 qspLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
2 C: }) p7 J/ Q3 [9 \spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);7 h, ~' M" G8 r6 ^2 h
将线连接起来:
) k- Y$ H8 |* h: U& D9 V* cCATI2DCurve_var spCurve1 (spLine1);- s2 Q8 J4 H2 Q2 Z8 F
CATI2DCurve_var spCurve2 (spLine2);! n3 x4 Q+ g# a6 \
CATI2DCurve_var spCurve3 (spLine3);$ K% Q, R1 c! R" U- b
CATI2DCurve_var spCurve4 (spLine4);
. i/ Y/ A  B  ~* O, w$ ospCurve1->SetStartPoint(spPt_bottom_left);
% x9 ?+ G' |9 t7 E! g$ x" Z, `spCurve1->SetEndPoint(spPt_bottom_right);
! R  p5 F3 [( NspCurve2->SetStartPoint(spPt_bottom_right);
# l2 |& |2 n2 ^  Q: O5 ]$ x& V- ~spCurve2->SetEndPoint(spPt_top_right);* {) I3 t7 u2 P& f
spCurve3->SetStartPoint(spPt_top_right); ; c1 P; {+ N2 V* b- o& r0 D: r
spCurve3->SetEndPoint(spPt_top_left);
9 r* P7 t  e2 C7 n# {, g8 b) s( ospCurve4->SetStartPoint(spPt_top_left); . ~% _( S  j/ Z! H
spCurve4->SetEndPoint(spPt_bottom_left);# M/ o& M' Y5 {7 A( k
然后退出草图:, L( l0 l5 v: K9 Z, _8 U4 K
spSketch->CloseEdition();
$ |! V+ i6 n3 S2 Q+ b
- s9 s' K! c$ E& J7 S$ q. U, x% c1 g4 `& p, G6 L, o$ }) ~
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

visionace 发表于 2024-3-12 20:17:25

visionace 板凳

2024-3-12 20:17:25

非常棒,有没有接口之间的关系导图呀
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了