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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形$ j0 v" g! R  R  D  J; z' A

2 Y4 R/ ^2 N! @4 U% L% W QQ截图20171224125201.png
) M' H" _8 _5 ^7 Y
3 Z+ A* N) k# `7 g) G$ W6 J4 S[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory1 Q- s( F% r( y' [, h* _; t: R
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
% Y5 b. W4 Y% c6 [        CATDocument *pDoc = pEditor->GetDocument();2 [! h% a' i$ L/ @1 j0 {
        CATIContainerOfDocument_var spConODocs = pDoc;
0 ~: ]/ O" H: ^% d' x, i
) A9 }0 _) w! q" V$ q* x3 l; D        CATIContainer*            pContainer;                //Container) C: Z& `' E& E! [8 @( h
        CATIPrtContainer*     pPrtContainer;//PartContainer
/ b; h' u' H% g. |        CATIGSMFactory_var        spGSMFactory;                //GSM工厂
2 ]7 n; n0 ]8 `
$ l3 g' @: f- y. m3 i' y        CATIPrtPart_var        spPrt   ;//
* X3 w9 z. w  W) _        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container3 Y. ~, ]# a8 D. W) S+ p
+ J$ @" q  e5 l5 Q- y. l# i# q; F
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer7 `/ i( s5 B4 W
        spPrt = pPrtContainer->GetPart();" ]1 x6 N, m5 s# J; n9 w. n1 c( m6 p
        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面
# M* o* h- B4 U" n- R7 |
: ]  N3 _) c& [2 G2 m- j3 w7 ^* |        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
+ C; W) |  F# X7 i9 c$ q0 _6 \2 h1 q4 j        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂
1 s; G  u; P6 r, w        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
; ~& {6 B# [: }7 M9 N        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);7 d/ }- v7 c+ ]2 ~

& M* ?% Y7 @. K( T        spSketch->OpenEdition();        //进入草图开始绘图
8 x4 h7 k8 U7 e& v; {# E$ _5 |8 L: Y. Y4 ]) s/ {- N! |
        double p1[2]   = {0,0};
- n1 w2 D  m* ?! R- Z   double p2[2]   = {100,0};" o+ v0 Q, m( w- j7 k( `: S- \
   double p3[2]   = {100,100};
- p0 y- T3 k5 n1 X   double p4[2]   = {0,100};
+ I% s( ~+ u1 s6 C. q# A2 J
  P) ?0 n1 O: e4 b9 ^   CATI2DPoint_var spP1,spP2,spP3,spP4;6 W9 Z  f* v4 T, x& r/ f! z# y9 U6 ]
6 u% p( T6 b# O5 C5 z& A
spP1 = spWF2DFactOnSketch->CreatePoint(p1);8 L$ W& V1 }5 @* G/ S3 D$ D
spP2 = spWF2DFactOnSketch->CreatePoint(p2);
- k4 [% E  I9 S3 E9 k! `spP3 = spWF2DFactOnSketch->CreatePoint(p3);
  O( W- O! u. \1 [. k* y5 f8 g# HspP4 = spWF2DFactOnSketch->CreatePoint(p4);# `* d5 E, u- E5 ?1 F8 C
& I, F# I+ h5 e9 k
CATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);% c2 ]! r- k+ N5 N; x# y2 F$ B
CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);
7 C% q, z0 r# y! A: l+ _& cCATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);7 C9 b7 R) f/ V6 r
CATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);( [% n1 P* m4 x$ X5 z6 C

& A& P+ @9 b% c, c$ S' cCATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;5 M/ C! i0 |* R9 j
spCurve1 = spLine1;
' I1 X- _& M' b, x( L8 H, m" S- N" uspCurve2 = spLine2;
; K5 }  J: p3 _* T' q4 t1 v5 DspCurve3 = spLine3;1 J% `  N4 ~  ^
spCurve4 = spLine4;: v$ R% z3 Y0 }4 T

7 N4 C& H2 }2 @1 u0 v+ b2 AspCurve1->SetStartPoint(spP1);
* H3 ~5 ]- g! M# p: T$ mspCurve1->SetEndPoint(spP2);
) q4 `$ |2 K. y: ~) P8 ?spCurve2->SetStartPoint(spP2);3 Z7 F- Q; G  N$ o
spCurve2->SetEndPoint(spP3);
3 ~) U2 O7 x; h) t6 I/ h% E! UspCurve3->SetStartPoint(spP3);
2 j5 H- D% C) h& U' Q" U6 AspCurve3->SetEndPoint(spP4);5 e4 D. X% @3 @( f. O: W
spCurve4->SetStartPoint(spP4);
8 |, f7 a. Y  M+ ], v4 KspCurve4->SetEndPoint(spP1);. d: w; d$ [# |, h
* g. P* ~0 r) `0 B5 u7 S

8 h" t/ ?% x& i6 q/ r. L: b* L% N  spSketch->CloseEdition(); //退出草图
" y7 G  X% r9 M; X# E) J7 z- I1 V) I, c' b # |  V) S1 x) @- [0 U6 o: k

6 f- Q8 T4 Q* w  CATISpecObject_var spObject = spSketch;
. B% d- }. W1 v7 v  W0 Z spObject->Update();  p) s6 \& b% U9 i% @7 O' Y0 s
  [/mw_shl_code]. W) k) g+ r9 j! ]% k3 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

在上一节的基础上,开始创建草图。首先创建草图工厂:
9 d9 p) Q( y( e+ LCATI2DWFFactory_var sketch2DFactory(spSketch);: q- p9 m# ~( _7 q) G  _1 F9 O5 ~
下面创建点:7 B& V' |1 y  u3 U) P
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;" B" Y- L( P# I
double pt_bottom_left[2]  = {10., 10.};/ W2 C+ m0 l5 a& P
double pt_bottom_right[2] = {50., 10.};
% e# w7 U& ^0 s0 r! mdouble pt_top_right[2]    = {50., 50.};7 R* {( {9 e% u  \& U) E, ?
double pt_top_left[2]     = {10., 50.};
# C9 c  U5 U9 DspPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);# T, ~. a3 P2 s, Q* P2 L
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
( X+ p& z& P: hspPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);
, L. k4 \' \8 _5 C4 f2 P! u* RspPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);7 \$ F. i: [$ x" Y, K4 @
开始创建线:  L2 C5 m, z+ _) x! f4 w  H
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;3 @: g8 Q8 C1 F; u/ S
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
' ]8 X( k9 j2 z# I; LspLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);# j0 O; W$ q) o% v' t0 b( z+ p6 a
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);4 M% b% a% \# c9 l( a- t& u
spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);
3 N- y& H7 E. h  w2 O% q" n  z- _& k将线连接起来:- R1 A% t+ Z1 m' S/ Y9 s2 _
CATI2DCurve_var spCurve1 (spLine1);, h$ E9 q- b; J) I
CATI2DCurve_var spCurve2 (spLine2);
. |+ x$ N4 a; X" Z# U. `/ u, aCATI2DCurve_var spCurve3 (spLine3);
7 d; b8 w9 O. g' cCATI2DCurve_var spCurve4 (spLine4);
% v4 R1 E9 V5 n; |4 Y" p, D& XspCurve1->SetStartPoint(spPt_bottom_left); ' ]0 p) B* C8 h$ y
spCurve1->SetEndPoint(spPt_bottom_right);
: U) |5 K7 ~$ D8 P. cspCurve2->SetStartPoint(spPt_bottom_right); 7 _6 w8 ?6 \  P$ T( t% M1 }
spCurve2->SetEndPoint(spPt_top_right);
8 k" b7 ^; j! b" P' Q' xspCurve3->SetStartPoint(spPt_top_right); 8 m2 b* f! o7 `  V2 L
spCurve3->SetEndPoint(spPt_top_left);
8 ~* A; k# Z5 G" ^. @: ~spCurve4->SetStartPoint(spPt_top_left);
* M1 f8 n1 D) @$ \, M# SspCurve4->SetEndPoint(spPt_bottom_left);
8 G/ q" B9 L/ n/ _4 P* t然后退出草图:, `! E2 o/ }( V3 x0 b) y% ?. D
spSketch->CloseEdition();# ~- @# {8 c% F8 W* P3 j

7 H. f& M7 N/ A' Y- t
  a' k! {4 ]" o+ @4 K$ @: G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了