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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形7 c. e- P% }! W2 n

3 n8 \9 S  W2 \ QQ截图20171224125201.png ; I. F2 {1 j# r  E8 I

. L# F9 F9 Y5 ^# ?9 r[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory0 w( \  Z7 ~! @5 |
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
& u! [# k6 ^. }) r        CATDocument *pDoc = pEditor->GetDocument();) v0 F' _9 m5 w9 N* [; y8 X9 |
        CATIContainerOfDocument_var spConODocs = pDoc;
6 l! ^' X7 G  Z' i3 \# J- \3 E% r- A: {! N( f
        CATIContainer*            pContainer;                //Container& G% C4 F3 j& @5 g3 A
        CATIPrtContainer*     pPrtContainer;//PartContainer' L8 |  [- S$ W
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂- X6 o9 n/ m* n

# \% Z) i" T( M( u" P* @: ]' v. Z        CATIPrtPart_var        spPrt   ;//
8 S. H& d: j: m3 l- U, t        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container) ]% D: @+ }$ U1 _2 d
* V# q1 `% x5 |$ m2 Z
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer- p0 Q' p0 }8 J* f  P, P4 l
        spPrt = pPrtContainer->GetPart();
  K, v& ^) T# l1 [+ e  C8 S        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面; f# j4 i$ F3 v, W; A$ Q
$ v& I# l0 m0 |# r
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面% G1 [8 O. A' [" ~+ w
        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂
9 E, h7 ]& A- U0 p1 @/ Q1 |        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
. g* I1 c4 N& \& `- W7 I& b$ o        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
6 g# W: Q) U0 T6 a& r7 V( {" {+ m8 w% ?6 G$ M
        spSketch->OpenEdition();        //进入草图开始绘图
1 b+ z3 X; _5 l
8 d  \( G: b1 C5 s, T        double p1[2]   = {0,0};: K: K8 J8 v7 ~  y' M
   double p2[2]   = {100,0};8 g0 Z# \# `3 e1 M7 B0 q3 d
   double p3[2]   = {100,100};* c0 t( U0 i5 m0 v- i* }8 I/ X5 O
   double p4[2]   = {0,100};
  F2 R. D# E7 Y4 a. w, n- D# _' x* B$ L- I
   CATI2DPoint_var spP1,spP2,spP3,spP4;
) i; a  }2 W% B
9 c) ]. {) n% u% bspP1 = spWF2DFactOnSketch->CreatePoint(p1);
/ Q" N( I  k8 E/ C$ q! v" kspP2 = spWF2DFactOnSketch->CreatePoint(p2);
! J9 i( ~; Y3 w8 E4 PspP3 = spWF2DFactOnSketch->CreatePoint(p3);1 D7 v/ E* _0 p5 F' M
spP4 = spWF2DFactOnSketch->CreatePoint(p4);
0 g0 i' d0 O2 l( Q& Q( ?
  r- `6 d+ z/ |5 n0 p0 [CATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);
/ e- P( Z: {' D1 C$ |CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);2 G2 X7 T% V( V+ O5 r: s2 [" L; Z
CATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);$ K$ j3 A. X7 ?; n
CATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);
9 \$ Y8 x6 @' i# L0 ]& y. i. G" Q
# R0 h9 o$ g0 b  _+ {/ DCATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;$ z. y0 X/ l2 V% N- {
spCurve1 = spLine1;" E! u" H+ t' c6 q- f0 I
spCurve2 = spLine2;. {; X+ ]# R: P& M/ Y! N. K/ a
spCurve3 = spLine3;' ]$ N7 h! @' m
spCurve4 = spLine4;; X2 Q1 _" u9 z
8 \. u7 Z" |) K+ ~7 G$ ^
spCurve1->SetStartPoint(spP1);9 F1 K( w, h6 x* L  k' |
spCurve1->SetEndPoint(spP2);
& I* I1 A0 c5 h2 GspCurve2->SetStartPoint(spP2);
- y# h- o* `0 XspCurve2->SetEndPoint(spP3);. G  s9 i8 Q7 X) n" G% w
spCurve3->SetStartPoint(spP3);, ?! b  y! [$ E' H+ a
spCurve3->SetEndPoint(spP4);
- ^8 K! G# A5 J& X9 UspCurve4->SetStartPoint(spP4);
7 ?6 t9 J* m. E6 `; y) O4 Q+ D, H- ~spCurve4->SetEndPoint(spP1);1 `  \  K" g' d4 M1 J# A# ^7 ^

7 B% T3 U6 F, S: o/ E+ `* P, I3 e
  spSketch->CloseEdition(); //退出草图
+ C, G  l6 N7 s' ?' m8 B. ]' L6 [, i 8 Q' m3 f( H" N) Y% z% @! u

+ N( f) z7 H' n5 M5 A) g) v9 t  CATISpecObject_var spObject = spSketch;
# g, o( _" m4 A* y" Q" @% Z) U+ v7 _ spObject->Update();
6 P0 [6 P2 r) g" W4 u# o* ]  [/mw_shl_code]9 X; {* s: ?5 c- N' V. t
上海点团信息科技有限公司,承接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

在上一节的基础上,开始创建草图。首先创建草图工厂:
+ m" l: L  d" Y5 Y( ]CATI2DWFFactory_var sketch2DFactory(spSketch);
, L" ~$ b# v8 {. n8 S( ~下面创建点:
0 I/ z" T( s; r: u& }CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;: r: E9 j- p2 W% ]* m( F
double pt_bottom_left[2]  = {10., 10.};/ O2 M5 b- R1 L
double pt_bottom_right[2] = {50., 10.};3 M' d4 z+ I  T1 i8 `
double pt_top_right[2]    = {50., 50.};+ H1 V  |- h' H( `+ V( x
double pt_top_left[2]     = {10., 50.};
* ]; A! e( h. E' p, Q9 r/ mspPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);! V) \8 a; p4 m* \( b( t
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
9 Y( J8 r. U* [: U0 j3 UspPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);" N# T+ d# w3 k% w
spPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);
/ o8 u" C4 _- G% L6 {+ h开始创建线:
6 k& q; Z1 i% S; n* `: gCATI2DLine_var spLine1, spLine2, spLine3, spLine4;
9 K, n( q" g5 b- N8 I0 }& r% LspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);! K. o0 I+ ~* H' C
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);: Q$ G6 f* Y' G9 b) f3 m! V" [
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);5 t3 J4 n. l* Y5 }% n; z
spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);
9 q* ]& l0 Z' Q$ V8 |% E% W将线连接起来:
0 G) Z( E# \0 P% k9 j- z' D3 v% nCATI2DCurve_var spCurve1 (spLine1);
- n& L0 v' {" g  \1 w( ]1 k" lCATI2DCurve_var spCurve2 (spLine2);
) j) d! D1 _( n  @! @$ [  ?CATI2DCurve_var spCurve3 (spLine3);
/ ]$ I" x' w, W6 k/ v* m# PCATI2DCurve_var spCurve4 (spLine4);, [5 d# r$ _# a1 K: i0 G! {; \
spCurve1->SetStartPoint(spPt_bottom_left); 8 Y; K1 _# Y: L, k5 A
spCurve1->SetEndPoint(spPt_bottom_right);. t& E3 T% W( h0 y/ Z" I
spCurve2->SetStartPoint(spPt_bottom_right);
) ^/ a& \' K% ^spCurve2->SetEndPoint(spPt_top_right);8 q5 r$ l9 h, ~. I, g- y9 c" x
spCurve3->SetStartPoint(spPt_top_right);
9 c8 t. K& a  s8 z/ a! kspCurve3->SetEndPoint(spPt_top_left);; i% N" R; @) S: |/ N. s
spCurve4->SetStartPoint(spPt_top_left);
0 E! w2 \  D7 x# ~# WspCurve4->SetEndPoint(spPt_bottom_left);
% j& s; d- F0 t& Y然后退出草图:
+ Y2 N/ f5 I& ]+ Q! n8 B' E( uspSketch->CloseEdition();0 E0 ~: z% w$ o" L
3 B& a- e; l4 M' X+ R0 y8 o

" q5 k& i1 b! _. t( i; [" f  Z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了