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 4270 2

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形
( D, V& @2 x% d" l9 r$ e! E0 S/ O! B' S  D1 ]
QQ截图20171224125201.png ! V4 ^, Y* |4 z

$ B3 \4 e) G8 T4 y" V[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory2 q3 L$ p& ]" {$ }* e, q5 p! j
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
! X8 M" L. c2 [' A! i2 |9 g        CATDocument *pDoc = pEditor->GetDocument();) p1 S! c, d& J9 c: i
        CATIContainerOfDocument_var spConODocs = pDoc;1 Y8 e* k; u! [1 b) {& w

6 ]& C9 Q  d/ y; h        CATIContainer*            pContainer;                //Container
; i9 V4 ?" C0 J- _1 i: A0 ?5 \; |        CATIPrtContainer*     pPrtContainer;//PartContainer
8 E! ^2 B  b* {% m9 S' i% N        CATIGSMFactory_var        spGSMFactory;                //GSM工厂
5 B1 }2 ~3 t; o; p1 B: v( F. J
$ R, S, y' e; F/ [( B        CATIPrtPart_var        spPrt   ;//
5 \  {$ A5 x2 }4 l        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
5 b* N7 y8 V) {$ k3 Q) ~/ v1 ~, n6 q' e" {* y" p
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer4 N+ ~& I% m& l+ F! f
        spPrt = pPrtContainer->GetPart();5 Q* D, ~2 a- J$ @5 ^. j7 N
        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面
" l+ w( {+ K6 @
+ ^) |$ h; f$ O! u        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
9 n, l6 d8 q+ ^* [# [3 J0 M        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂; ]4 D* U* I) v0 j! Q$ A7 Z
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
& x8 Z8 ^; U& [# a8 X        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
5 h' R, [/ m2 u6 j* x2 [# C  y4 O
8 ?& z7 S$ I; O( T) `3 p        spSketch->OpenEdition();        //进入草图开始绘图
! n- F- ]6 F: s, c  }" l( I4 U1 ~# i9 R: I( ]' g
        double p1[2]   = {0,0};
$ _1 `' W4 P/ ^! d  }2 _1 s, \   double p2[2]   = {100,0};* Q2 ^+ ~6 D2 |- U& r+ U/ P; Q* _
   double p3[2]   = {100,100};0 o# x7 c5 L& m
   double p4[2]   = {0,100};- @2 t, k6 k4 D, \
+ G% v+ a4 P# V7 ~1 ^+ k% Z9 e
   CATI2DPoint_var spP1,spP2,spP3,spP4;
# j. z& b2 A  V* B% A+ {5 q: X( _% x' ]  X! _! y- w$ {
spP1 = spWF2DFactOnSketch->CreatePoint(p1);: ^6 p' n9 ?9 V: r
spP2 = spWF2DFactOnSketch->CreatePoint(p2);. `& `% Q& H6 w4 g8 F
spP3 = spWF2DFactOnSketch->CreatePoint(p3);9 [% p( ?. l6 @, I& M
spP4 = spWF2DFactOnSketch->CreatePoint(p4);
; `5 k' u2 P1 Z' g& Q6 h- }# \* k# P$ b0 B
CATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);5 ]( w3 ~' @% m+ |9 }
CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);- \; T3 n# @$ O- W* I: R
CATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);
' ?# i0 F! d/ OCATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);7 r% E8 C6 S1 v$ a

; d9 F7 d" K6 }$ f7 A5 B  DCATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;
6 Z+ E0 B: p  P" U7 ~spCurve1 = spLine1;/ @' [( D2 x; k: H4 g
spCurve2 = spLine2;# k) K- n$ S! T! \/ q2 \
spCurve3 = spLine3;- M  T9 @7 x6 P1 P8 ^
spCurve4 = spLine4;
3 K2 g9 i# g& w2 `/ T8 ]8 o( E
& g1 ~' Z1 p1 O* L1 aspCurve1->SetStartPoint(spP1);
/ u7 w; @5 ]: m3 S, ^; S3 WspCurve1->SetEndPoint(spP2);
; C: B! _7 C' ?& w" X2 HspCurve2->SetStartPoint(spP2);/ Q, P8 T2 Y7 l
spCurve2->SetEndPoint(spP3);  y6 X; ~' ~4 d8 q( o
spCurve3->SetStartPoint(spP3);
- W: S4 Z1 r1 f! h3 W; VspCurve3->SetEndPoint(spP4);8 V5 z4 D! D# b
spCurve4->SetStartPoint(spP4);  l+ k  u" b0 D6 J- B
spCurve4->SetEndPoint(spP1);1 f" y1 [* c; B
8 p2 C& _: }4 h& b" l

7 I3 `8 ^3 M6 N% o0 s& i  spSketch->CloseEdition(); //退出草图
: |: _  ^9 a8 x; K9 j- c6 S- t! v! ]
% b- g9 v" `0 V* P4 U* i. o! F. @! `( z4 U8 w. ^1 o, M
  CATISpecObject_var spObject = spSketch;3 E4 J; @. n. g1 s+ \' _
spObject->Update();
; l3 I8 y2 U4 S: A3 x4 Y/ k& y3 }  [/mw_shl_code]2 }' v" x# M! G# J" S
上海点团信息科技有限公司,承接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

在上一节的基础上,开始创建草图。首先创建草图工厂:" m1 c/ Y7 w. J" P
CATI2DWFFactory_var sketch2DFactory(spSketch);7 s' V) C0 ^$ I' V) v$ v
下面创建点:7 m: G" k+ N- x- d( C$ A4 z3 C
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
* U* Z/ N: D" P# b; |) S7 hdouble pt_bottom_left[2]  = {10., 10.};
# I7 ?: J) R5 b4 zdouble pt_bottom_right[2] = {50., 10.};
. q1 n8 @/ N- @4 d* a3 z: E( odouble pt_top_right[2]    = {50., 50.};
$ ~4 |  {1 ~% _' V% Jdouble pt_top_left[2]     = {10., 50.};
9 u: _5 c% F( q. o8 B2 p- pspPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);  \. z+ |: G- Z! f: r, d
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);" B3 |! d3 v0 G  p3 G4 S: o
spPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);) y4 h# q, k8 Y! b* E; W7 D# r& L, _
spPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);
- F" V+ p3 J+ W  ]' {开始创建线:
7 P8 X' o2 z4 Y' I* z0 C$ x$ PCATI2DLine_var spLine1, spLine2, spLine3, spLine4;
2 w9 G) N* _8 F* V5 z) [" e4 ]; BspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
( A; F, j2 [7 p/ [- D+ WspLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
' p; S3 l  D8 d- W8 XspLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
6 |( z0 \! n" T% z! e3 \* u7 c6 nspLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);: c( @) }, n$ }- m8 O9 S  ?
将线连接起来:3 ~( [: G1 k# h
CATI2DCurve_var spCurve1 (spLine1);/ l0 s# V% `+ u6 q) M2 X
CATI2DCurve_var spCurve2 (spLine2);7 @$ f# Z! j1 _* r3 q) Y- c
CATI2DCurve_var spCurve3 (spLine3);# s+ L* c* I6 S
CATI2DCurve_var spCurve4 (spLine4);
" V% J) X( n. L. wspCurve1->SetStartPoint(spPt_bottom_left);
- P; N# J/ F- r2 PspCurve1->SetEndPoint(spPt_bottom_right);
5 i6 e4 l; C/ v: D7 V4 G$ O! NspCurve2->SetStartPoint(spPt_bottom_right); ' `8 ^5 M7 s! w' F7 k" e" E+ h
spCurve2->SetEndPoint(spPt_top_right);1 b1 d  W+ `5 L
spCurve3->SetStartPoint(spPt_top_right); + _$ S9 V: d- o% P
spCurve3->SetEndPoint(spPt_top_left);) `0 l& z( s  R1 d: a5 Y
spCurve4->SetStartPoint(spPt_top_left); ' K2 p. m8 x% @( S7 e; O3 f
spCurve4->SetEndPoint(spPt_bottom_left);
1 l! `' a9 Q1 |- h6 p- g" J1 G然后退出草图:% V+ T1 e+ m4 v) j/ \) V9 H" O1 b
spSketch->CloseEdition();8 }$ ~  Z, O$ c$ ^7 ^
/ Q% G- `, z0 A& _  Z" j6 ?3 g

! x; _; ?+ n& Z) l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了