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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形9 x( B6 H$ h( i

+ ^& Q# ?2 a2 l- f2 p0 X* ` QQ截图20171224125201.png
% \- |4 P" |: q, }  h6 q/ a
+ v, B! L5 Y* R3 @. S6 k1 S2 {$ ^+ I[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory( ?& b- K$ t2 n4 m6 u
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();! B, j( M: K( O% D1 T! t" S7 T5 e0 I
        CATDocument *pDoc = pEditor->GetDocument();
2 R- p$ Y8 Z. X3 K+ t+ ^. a/ e        CATIContainerOfDocument_var spConODocs = pDoc;
& c3 N; I( I, m$ t' Q3 m) {& l% _8 q8 u
        CATIContainer*            pContainer;                //Container
3 w3 \( @* k6 m3 k/ S9 U        CATIPrtContainer*     pPrtContainer;//PartContainer
9 S+ `" x0 I/ j0 g        CATIGSMFactory_var        spGSMFactory;                //GSM工厂
* p; x4 a7 T6 J+ C% Q/ n- Y0 ^
& K3 K& v6 D+ m( b, ?        CATIPrtPart_var        spPrt   ;//
2 o4 L4 T! o9 ?" i" S2 n/ ~8 e" a        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container" W/ r. T/ [6 i: k( k& \
+ `( g! T# E# S% p0 N3 i4 P. g
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
- }; B6 T: E' N2 b* B; V5 o        spPrt = pPrtContainer->GetPart();
  @( M- q+ v' r, G        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面
& n( x9 |0 o8 D% b! F1 K
* f! }1 ~3 r! O7 b. E        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
; f$ ]9 N) q' T; w, E        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂1 q' N+ M5 `, \$ {
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图/ ]1 G7 P+ T/ Q! U. X( ^2 Y% [/ h
        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);9 |1 U+ h4 Y: W% n$ \% S2 O! D

- d4 |7 v: s; G# q        spSketch->OpenEdition();        //进入草图开始绘图
" N0 b- X: y; r! d. \; ~5 O' i* P& p- m( w( c
        double p1[2]   = {0,0};6 f; j) C4 e8 ~
   double p2[2]   = {100,0};
6 [7 X9 n+ Q$ ~# |2 c   double p3[2]   = {100,100};
* E0 K) g7 W2 F; O( A, r0 l9 N2 o   double p4[2]   = {0,100};
$ v5 |( V5 K* w( s
! @9 S% V" O. N  y   CATI2DPoint_var spP1,spP2,spP3,spP4;/ B8 k1 }) t1 Z6 p

' V8 Y; G& w$ ^! H2 tspP1 = spWF2DFactOnSketch->CreatePoint(p1);7 ?- x) a8 x% ~6 X% {+ \
spP2 = spWF2DFactOnSketch->CreatePoint(p2);
' x3 Y5 g% e2 Q$ F" IspP3 = spWF2DFactOnSketch->CreatePoint(p3);
/ J& K2 Q" ]3 r: SspP4 = spWF2DFactOnSketch->CreatePoint(p4);+ B" _( [# v, X
: M9 ~0 x0 Z  P* @! R
CATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);# v# T$ R. b: J% C
CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);
+ L) v% S2 q$ J% b# O5 ECATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);
# {' W6 k: D' _% S: ?2 {CATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);
0 u! q9 z- Y# N5 _- X( E4 X- U% h( U( W
CATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;+ b/ a/ H1 S0 d6 u
spCurve1 = spLine1;  P) R9 r3 D) [' Q, a. G/ Y; {: F, W
spCurve2 = spLine2;! _  U  K+ M  P+ N, N
spCurve3 = spLine3;
" h4 }- |8 N% `2 ~5 UspCurve4 = spLine4;
6 f. n2 B' O' h: P/ Y6 l9 N
/ h! q$ C) i; M. C" ospCurve1->SetStartPoint(spP1);/ [3 D6 h" R: w2 D3 Z2 C
spCurve1->SetEndPoint(spP2);
$ p* q3 {2 m% W+ o- n; ^spCurve2->SetStartPoint(spP2);* q9 w# t) d# }4 Z. U
spCurve2->SetEndPoint(spP3);9 n$ j+ j! B& ]2 |2 d2 m3 l
spCurve3->SetStartPoint(spP3);
9 ^. E6 ^, h3 c+ C  \2 p  tspCurve3->SetEndPoint(spP4);
& ]# e. v, f' C  z: q* R' G7 VspCurve4->SetStartPoint(spP4);2 ~' ?. K- H7 T+ E- X/ D* v
spCurve4->SetEndPoint(spP1);
  [7 p2 E9 A- ]# u
/ j2 Q: C+ F0 R! S: ~9 f% `, l% d7 a+ N
  spSketch->CloseEdition(); //退出草图9 h; U& n) m. b: D+ d
- i7 \% @$ z, T+ Y1 x. P
+ E% ]# K9 A, ]' c+ f) w4 [1 j
  CATISpecObject_var spObject = spSketch;9 {8 L/ a( q5 j9 d; M/ e
spObject->Update();
/ @  G) V3 C) S  [/mw_shl_code]8 F& f3 U4 R, J/ e% C! }4 D6 r
上海点团信息科技有限公司,承接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

在上一节的基础上,开始创建草图。首先创建草图工厂:
# }* }1 d2 C" t1 w" B  |' f/ OCATI2DWFFactory_var sketch2DFactory(spSketch);
4 v/ _" c7 T% M0 K/ K+ }- E下面创建点:
& ^! K2 e  m# {, j' _9 S( h" tCATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
/ L: p, N! K! r5 r2 I0 L: @& _double pt_bottom_left[2]  = {10., 10.};2 s& I1 A! Y. @
double pt_bottom_right[2] = {50., 10.};1 s$ R! Q$ N2 i4 S
double pt_top_right[2]    = {50., 50.};9 `0 ~& q: c" v$ [  p
double pt_top_left[2]     = {10., 50.};
5 g- U7 c% ~* ^, z, GspPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);( m1 N  q* W& V" D0 \- p+ k2 Y
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
7 d- E/ J6 ]: F2 `spPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);
3 N0 @5 h! i: S- \4 I8 z1 WspPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);) ]( c$ N; S' @# p+ I
开始创建线:' K, x, v' F6 N& O
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;7 G* u; i* @4 _; \  l7 {
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);& D7 K/ I. k7 O& V+ ?( q
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);' c/ ^) ]4 y! `! j4 n7 o& {+ b% m! {
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
% g# D3 Z8 m# _& ~9 f& A" f- `spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);* K$ F/ S: }$ o; i
将线连接起来:5 O6 j# b6 V3 }* o1 s- a4 b. p
CATI2DCurve_var spCurve1 (spLine1);& E% W- J) I8 ^+ l  w# K
CATI2DCurve_var spCurve2 (spLine2);8 e! t6 n( ?; o/ I
CATI2DCurve_var spCurve3 (spLine3);$ `$ B/ Q+ d, ]9 k; [/ }
CATI2DCurve_var spCurve4 (spLine4);
. O  I9 E5 O/ w3 `: bspCurve1->SetStartPoint(spPt_bottom_left); 3 }9 S" d' t  z- d9 A% `( X/ u
spCurve1->SetEndPoint(spPt_bottom_right);
1 S/ }1 r3 K+ x- S/ gspCurve2->SetStartPoint(spPt_bottom_right); . B, S* c/ C: h9 `0 _
spCurve2->SetEndPoint(spPt_top_right);
" W( i; p# A: W2 WspCurve3->SetStartPoint(spPt_top_right); ' z4 X1 N0 \6 C4 I. R' o0 u
spCurve3->SetEndPoint(spPt_top_left);
& l4 }* [% L2 u4 `spCurve4->SetStartPoint(spPt_top_left);
  `) Q6 ~& O; m: ^2 y6 M) k( |  Q* @spCurve4->SetEndPoint(spPt_bottom_left);+ L( N7 b7 {' M  s- I# B! v
然后退出草图:6 y* ]) ?. G7 R2 {
spSketch->CloseEdition();
6 T- i' W' n4 Z( h1 v$ i
. o9 V0 Q8 I: b2 m' V0 t) e0 I- L8 R, }# O, D  X( S
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了