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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形0 Y' [# R- u: B8 c
% K2 p( p7 t; F
QQ截图20171224125201.png
2 @7 q1 e' Q4 H9 T% F+ p
0 V) y$ S4 V- z, a9 }5 u[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory' ]5 l+ a- B7 _- i
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
# q* o0 A$ H$ \; G$ B        CATDocument *pDoc = pEditor->GetDocument();! @" O) `) Y: ?
        CATIContainerOfDocument_var spConODocs = pDoc;& j7 m% A/ P+ p
0 e" ~8 l$ P) Q5 T. P" S: T
        CATIContainer*            pContainer;                //Container1 J4 b' h" l# {# i4 Q
        CATIPrtContainer*     pPrtContainer;//PartContainer% v4 D6 x4 F2 Q* t% A. _  A8 P
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂) ]" `, p9 b: P/ \" F1 [5 V

1 T0 u  J* A% N7 {, c        CATIPrtPart_var        spPrt   ;//: H2 L& l5 y! M( w
        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container/ I1 V( D$ O: d' G
# Y; _1 P- K" F0 H& i" p$ l
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
& [' U- W& {: j8 t# c# y        spPrt = pPrtContainer->GetPart();
% A/ E0 z- ^2 L" ~        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面' H0 [" `: D0 D/ H* b
8 I& z( P! I! M8 L' c) q
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面; r! ~$ x/ B! b
        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂
9 \6 V$ ]" S% N  c" s9 y2 o        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
0 x9 j; j2 m! Y# o- Q2 ~        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);! z# C" K/ `2 {' |- w5 E* ?* |
, M( e% \& z% o0 v2 d% w3 K& D
        spSketch->OpenEdition();        //进入草图开始绘图
  F: p# k( P! Z
/ u  t5 s0 x* _( o7 Z( z! g: A        double p1[2]   = {0,0};5 y1 @% R( ]/ r/ ^$ [8 p
   double p2[2]   = {100,0};( ]% W' a5 D% \# D( A: G
   double p3[2]   = {100,100};
9 M6 w, h6 p$ f" q! {5 r7 |# W. K   double p4[2]   = {0,100};
" a; D0 M, k" z; W# C8 F7 N  I* d4 Q2 E/ N+ J. T  {& r
   CATI2DPoint_var spP1,spP2,spP3,spP4;( o" ?8 o$ s. p  |' p# K
+ @, r9 n0 R, S# Y) i5 C2 I
spP1 = spWF2DFactOnSketch->CreatePoint(p1);
, w( b: d0 z" Z3 I; R; U5 {$ O0 uspP2 = spWF2DFactOnSketch->CreatePoint(p2);
" B8 L2 j8 B/ M1 JspP3 = spWF2DFactOnSketch->CreatePoint(p3);
7 x: N6 i% c5 ]; kspP4 = spWF2DFactOnSketch->CreatePoint(p4);4 d: {  ?- {0 {; ]8 I

& q2 W" Z# b3 h( T" b; v: a$ GCATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);) M& L/ H7 I) O, G- e3 G, t7 A
CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);
4 }! [' s* x* K4 _CATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);5 W( T5 r& j$ C+ W
CATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);
& {* W$ ~! B9 q6 {4 p
& O2 m3 R; @- JCATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;
" J' n$ ~6 t% z$ _' g( ^7 A  PspCurve1 = spLine1;* L2 v* d; w0 y- h! c4 |
spCurve2 = spLine2;$ }/ |9 q+ U5 N" _; i
spCurve3 = spLine3;3 m$ z% u  q3 d: h3 p
spCurve4 = spLine4;. M) p3 x8 A$ _- X) E5 q' _

) L) f1 T! Z; C) fspCurve1->SetStartPoint(spP1);
2 I8 n. \1 L8 R" ?% {9 vspCurve1->SetEndPoint(spP2);$ `( M! r) I" u/ X- o- q+ W
spCurve2->SetStartPoint(spP2);1 D# n, Z5 \$ O
spCurve2->SetEndPoint(spP3);# q! S+ A# a/ L" \4 @
spCurve3->SetStartPoint(spP3);
; D; x5 D& u, }- E0 G3 X. WspCurve3->SetEndPoint(spP4);
" v; L6 s+ ^& a. ?! TspCurve4->SetStartPoint(spP4);6 Y' y+ E0 t2 w, U; o
spCurve4->SetEndPoint(spP1);/ z; |/ {3 S7 E# u

6 _0 f  O3 W0 a) g* e. c) L- M
0 Q# g, E4 I" v  spSketch->CloseEdition(); //退出草图- e2 d6 }/ t( X2 p$ ~
5 ]" B" H7 h& Q5 c! n6 t
# h" M& z( n! {+ q- G/ |
  CATISpecObject_var spObject = spSketch;
* o0 r8 B4 N, w spObject->Update();$ G6 q6 I0 R, W* S" u9 W. e
  [/mw_shl_code]( p8 t9 v: n9 d2 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

在上一节的基础上,开始创建草图。首先创建草图工厂:$ t- K, M) b5 E" i6 L3 @
CATI2DWFFactory_var sketch2DFactory(spSketch);7 y$ n( [. P1 ?
下面创建点:
! [* `5 Y4 u" v( H: G, hCATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;6 b1 c! W) a" m& R0 `# c
double pt_bottom_left[2]  = {10., 10.};
3 ?4 e8 @: G% h0 _/ O; F; X8 X, xdouble pt_bottom_right[2] = {50., 10.};
" N+ {8 r$ p# v  Jdouble pt_top_right[2]    = {50., 50.};
# X) s1 m- c* G9 h6 r8 `' ]double pt_top_left[2]     = {10., 50.};
4 D' i4 ]7 \0 P3 Q1 T3 L: c5 TspPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);% l1 O$ @7 {2 L0 M
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);+ a( x5 b) [7 w- `
spPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);4 g& {; ^% M/ ?' F3 h
spPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);
) y9 w0 i1 }6 V5 k8 ~开始创建线:
6 a/ \. c" G  w7 I% uCATI2DLine_var spLine1, spLine2, spLine3, spLine4;8 ^$ h  ?# e9 {. [8 e9 G' \7 y3 \# i
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
7 S9 x' e8 _, ~* W! j! y: bspLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);' V. Q; q2 I! g
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
4 c* s3 D0 ?/ v7 PspLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);  W- K5 ]8 X) t8 r0 K$ I
将线连接起来:
" u: W6 Z3 S# D# Q0 b1 ~9 vCATI2DCurve_var spCurve1 (spLine1);! L+ q* F" F1 H
CATI2DCurve_var spCurve2 (spLine2);
& _* n( o4 \) f- ?  a& B2 t- pCATI2DCurve_var spCurve3 (spLine3);- r, m. S4 \1 |3 o/ l" h$ X" I
CATI2DCurve_var spCurve4 (spLine4);& m/ Y& k; k: _( I
spCurve1->SetStartPoint(spPt_bottom_left);
/ f5 `! e8 O; a% E8 hspCurve1->SetEndPoint(spPt_bottom_right);
9 h& ^0 o! V8 i5 r6 }spCurve2->SetStartPoint(spPt_bottom_right);
5 \  G2 k# E/ AspCurve2->SetEndPoint(spPt_top_right);, i; |6 q0 C( b; m5 D; ~
spCurve3->SetStartPoint(spPt_top_right);
+ ~) s8 }" l, ^! d& t. PspCurve3->SetEndPoint(spPt_top_left);$ Q4 T+ @( _! C6 a3 n0 b- l
spCurve4->SetStartPoint(spPt_top_left);
3 p& z3 Q. D: I5 G! VspCurve4->SetEndPoint(spPt_bottom_left);% }7 r! B5 {+ x- M
然后退出草图:% `) Z# M6 T6 P3 n6 p8 E
spSketch->CloseEdition();
% e4 d: p' |; Q2 s
7 e6 D6 U6 d9 t- |9 {7 @' v: Z+ {8 }! V* T
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了