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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形
) r/ m6 B8 d1 I! _
- t9 Z: _( `! ] QQ截图20171224125201.png
9 K& K1 [: Q2 p/ Q! M7 W0 H1 ~: ?+ x! Q( P) ~7 I! Z3 z  |
[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory
& z, x0 l1 Q% R1 h        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();2 U' D  j- k# k; Q# K( Q9 e
        CATDocument *pDoc = pEditor->GetDocument();
8 u/ u3 B6 J4 u4 J        CATIContainerOfDocument_var spConODocs = pDoc;3 ?3 a: \$ U7 b) p6 c
& A' W' K  m1 c. |% E
        CATIContainer*            pContainer;                //Container  }2 d" c# [1 Q; q' ~2 U
        CATIPrtContainer*     pPrtContainer;//PartContainer# H8 ^1 x, |& R9 B
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂8 q/ g' S# ~  _! t3 G) j
7 S+ s) \, J3 a+ [+ `: l
        CATIPrtPart_var        spPrt   ;//
7 Z' a% S: X8 _0 [  [        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
+ ?: k8 B# c+ ]& G1 S8 T9 H0 T
: S2 D, \1 v& B7 H4 b" I+ R+ ]9 l        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
- K$ ^- T/ O9 h" H) w; O$ m- S        spPrt = pPrtContainer->GetPart();
4 z% f  C$ j7 v4 s/ V        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面7 f1 E+ r/ i! A# I/ x
; }, P" u" P' `: j0 }7 m" g& n
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面; _( \; A9 ]. N, T4 e5 H$ @
        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂
1 W, _9 b0 }, J6 q        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图* L  X  A7 N4 O2 Q5 [; E
        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);8 T; P% @* a$ Z! u' k
1 m5 O" I$ _& p& P+ o% K5 H
        spSketch->OpenEdition();        //进入草图开始绘图
! t) V8 D: b1 ^. H
' g2 c5 p0 p! Q/ d        double p1[2]   = {0,0};! R- @$ ?% t- q% s6 E5 D$ \
   double p2[2]   = {100,0};
/ s8 e  f; X3 x4 r8 Q; n) {   double p3[2]   = {100,100};4 g" J  L1 c+ Z/ b1 T
   double p4[2]   = {0,100};
  _! O: p. |. s6 D, U/ l3 `* G! A; z/ ^  ?3 i
   CATI2DPoint_var spP1,spP2,spP3,spP4;
0 }, P0 `( t5 G; T. U
2 M' ~- ?' A. H/ G* KspP1 = spWF2DFactOnSketch->CreatePoint(p1);' j# T% [& U; C
spP2 = spWF2DFactOnSketch->CreatePoint(p2);  T$ m7 |3 q$ _9 O8 O; q
spP3 = spWF2DFactOnSketch->CreatePoint(p3);
* B3 }4 o5 g" r0 q( dspP4 = spWF2DFactOnSketch->CreatePoint(p4);
' n: u& r  W+ O7 {2 ^; T; w( V2 M, S8 u# j: M0 G. S
CATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);" w6 }) w. G: n" @
CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);
  s7 y( B% D# Z+ }: DCATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);
( O) v) N/ G0 l, BCATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);; s# A0 \6 y# [; [1 Y. Q
5 p) m1 U" ~- w
CATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;
2 r) L! G, W- l' T1 U5 s* bspCurve1 = spLine1;
7 X1 S0 k0 Z1 E& a5 @spCurve2 = spLine2;
% Y+ l! j0 b; H/ U9 Z3 JspCurve3 = spLine3;$ J* l2 X5 p; g# j
spCurve4 = spLine4;
" V% n# P) N1 _$ i
. [0 M) f- I4 v0 {$ j/ w* I$ q  WspCurve1->SetStartPoint(spP1);; N: c  [; v# t2 ]) f
spCurve1->SetEndPoint(spP2);
3 f  A7 k+ B& x/ e& t- d" zspCurve2->SetStartPoint(spP2);
6 U7 g* R! V/ ~% e% k: ZspCurve2->SetEndPoint(spP3);- s# d, g! v4 a. l( B! O( j
spCurve3->SetStartPoint(spP3);
# W- S0 h/ b  B6 g/ N$ rspCurve3->SetEndPoint(spP4);4 K& E! P" x/ ?# k6 H
spCurve4->SetStartPoint(spP4);/ h1 x- d7 W: f* E
spCurve4->SetEndPoint(spP1);
# p8 \: H" Z/ p# W& F& R, f1 e/ g* ?1 a) S" Y
+ E* C+ f$ Z( \# W! @2 T
  spSketch->CloseEdition(); //退出草图
; I7 ]( J) F: `: X; N. l. `6 p8 j   w4 I1 `" ?# b5 e
* h, _1 w& E7 Z% V
  CATISpecObject_var spObject = spSketch;) v$ _5 \1 M, Y1 O6 X/ ?
spObject->Update();/ D$ c; {: Q0 y/ P& }% R
  [/mw_shl_code]6 G" N& }! Y* v7 u
上海点团信息科技有限公司,承接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

在上一节的基础上,开始创建草图。首先创建草图工厂:
" J1 l( j! l* M8 b( ICATI2DWFFactory_var sketch2DFactory(spSketch);
: m, x) o5 I5 x  q# q下面创建点:$ C; R4 u) R$ q7 p( ^, O
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;- d8 O8 e% Y( i% F! n  O
double pt_bottom_left[2]  = {10., 10.};6 \. n- o' |& p" x/ C8 ?% Z
double pt_bottom_right[2] = {50., 10.};
) m$ d. _- Q4 \  `8 tdouble pt_top_right[2]    = {50., 50.};
# {, T) F; C' Z7 E# e" H1 y0 adouble pt_top_left[2]     = {10., 50.};2 A5 t' [- z3 _9 G
spPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);
- i' p8 {, g- Z9 \0 FspPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);: I4 O1 n6 U0 l, A9 W1 y
spPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);) u$ ^6 @: D; m6 `4 H
spPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);) H3 S1 U4 G# [" @
开始创建线:& b  Z8 o# `/ Z3 P3 ^9 Q
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;
1 i/ K3 E: G! x% Y' G* g7 F8 A- Z: PspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
  Y0 i& F$ {, X9 V: ~8 gspLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);( M# C) V( w  E
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);) n" v* M4 v5 s- D) E
spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);+ Q. z# d' _4 r6 A; d# k/ Q% Z
将线连接起来:
5 v" @8 ?8 N0 ]1 qCATI2DCurve_var spCurve1 (spLine1);( G$ \- q8 c* W; q/ a2 M, i6 ]
CATI2DCurve_var spCurve2 (spLine2);
; e; u; o$ f$ P  f' r, J+ kCATI2DCurve_var spCurve3 (spLine3);! u+ F) u4 _# ~+ f* N6 v. f
CATI2DCurve_var spCurve4 (spLine4);9 B. \$ h% P1 r
spCurve1->SetStartPoint(spPt_bottom_left);
, o9 u: P1 p" W: j3 I' HspCurve1->SetEndPoint(spPt_bottom_right);+ `( z, L1 n5 e8 n: e
spCurve2->SetStartPoint(spPt_bottom_right);
4 r  b) s- D1 |( k* k/ s1 n$ VspCurve2->SetEndPoint(spPt_top_right);
/ ~' B4 m: A$ Y, t# Z! OspCurve3->SetStartPoint(spPt_top_right);
( S* U( z( G. r( N/ V; ZspCurve3->SetEndPoint(spPt_top_left);
6 j  R8 [0 n+ j4 I; P! JspCurve4->SetStartPoint(spPt_top_left);
0 N+ \( D: l& a% D/ B0 WspCurve4->SetEndPoint(spPt_bottom_left);
5 k2 A# w0 r% T4 v4 q  X: n然后退出草图:
! Z* {: f( ?: @6 {spSketch->CloseEdition();
) d) J! k2 ?/ k+ L- l, B
0 }1 h: R$ }2 ?/ ?7 r
$ ?4 e+ v8 h' q3 W" Y- q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了