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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形
) b7 n: O& b! M& y4 B
" u3 {0 t! u0 J0 L% P8 u' f QQ截图20171224125201.png
7 N* a6 F  w* R& R/ I' w$ ~
" c, ~2 j1 c2 W+ p[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory
& q& b$ A  |# x9 i7 _& i+ S" l! C; C        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
; W; W- z5 e* ?8 Z0 C7 J9 _( l+ }        CATDocument *pDoc = pEditor->GetDocument();
- X& t0 V9 W+ d& g4 R% C+ }        CATIContainerOfDocument_var spConODocs = pDoc;+ k3 W- ~. U" C2 L/ R2 i

' Y: n0 q4 H+ @; A0 p) Q) r        CATIContainer*            pContainer;                //Container
+ L, J/ L( m4 Z0 l0 a        CATIPrtContainer*     pPrtContainer;//PartContainer
. I+ |; x1 Q$ ?4 g8 }3 c5 X0 `        CATIGSMFactory_var        spGSMFactory;                //GSM工厂
; Y+ w7 |- x* |) r* x
8 `/ I, G! n4 p! B5 P        CATIPrtPart_var        spPrt   ;//
8 \' S2 H0 H: A        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
& `" A6 s0 E8 u, w& O* ]7 G
# F8 ~6 }! a+ c; i        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer8 j( z9 h& I5 d+ x6 q
        spPrt = pPrtContainer->GetPart();% G7 Y4 {* A  ^. {3 g
        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面* I- L$ o0 B( ~

+ y$ j3 H0 ]7 h! u2 v        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
6 P" O. a6 t( N% g- g2 d        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂
: A+ U- P# E% h. k8 P# l3 y2 k        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
6 m: \  s" b) G+ Z/ K        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
+ f5 v+ f- H1 e, x9 [, E' \# ~# R) y! L& {
        spSketch->OpenEdition();        //进入草图开始绘图
% G" y0 @: Y5 t4 S% R7 L
/ P1 N1 D+ w- s+ [% M2 X        double p1[2]   = {0,0};
- k. I7 J9 Q1 F2 s& ~   double p2[2]   = {100,0};
) v5 A, B6 |+ r$ \. T- V   double p3[2]   = {100,100};
. E! A- e. Z  j3 S4 `& T6 E   double p4[2]   = {0,100};
4 u/ c( Q) L! ?/ _" r: p8 I0 ]$ s3 @- ]( p+ L9 p3 d$ k. }
   CATI2DPoint_var spP1,spP2,spP3,spP4;
2 J/ j$ i* B( {7 Y. B
6 A/ Y) P- J" z1 l& s4 |' gspP1 = spWF2DFactOnSketch->CreatePoint(p1);
; A7 a% ]4 l1 n' Y) [9 ]spP2 = spWF2DFactOnSketch->CreatePoint(p2);5 d6 R1 m3 U& q+ l
spP3 = spWF2DFactOnSketch->CreatePoint(p3);
+ |* K( R, K) `: z/ p+ a4 s4 RspP4 = spWF2DFactOnSketch->CreatePoint(p4);
; W/ M" o! M& J# S$ z% ]! L4 Q7 }: v9 ^* r" C# U% I% l- e8 s
CATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);# k5 s: _# Y# @  X1 o2 l* |
CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);) L9 n; v+ G7 U8 L6 @- U4 p
CATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);
( D- J. j4 q# q( L8 GCATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);% N+ H) F9 W3 K& H! }3 \

; k4 X* U: B) ?3 k3 qCATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;: h/ A* G1 H. H! m+ c& y, K
spCurve1 = spLine1;, |# w! ?. E; q( d+ q& X
spCurve2 = spLine2;
/ X/ x+ ^7 E' V! e( U. I. z) DspCurve3 = spLine3;! U+ v. k( o1 E/ z* G" G+ y) I
spCurve4 = spLine4;
: S  J, V% V) S( r, f9 o0 |! j  N+ m, z: j6 i6 I% Y5 L, @2 u$ F
spCurve1->SetStartPoint(spP1);4 S! E7 {- c. @& l
spCurve1->SetEndPoint(spP2);' d5 I0 h1 `, w  h0 K* ?
spCurve2->SetStartPoint(spP2);
% i* Y! R" X7 N  s5 @* B7 g$ jspCurve2->SetEndPoint(spP3);6 N3 {, Z9 A; [
spCurve3->SetStartPoint(spP3);; e: R0 ]3 w& z* L8 ?0 s4 i6 X( W
spCurve3->SetEndPoint(spP4);' G1 z* s' x- S& s( q. _) \
spCurve4->SetStartPoint(spP4);
( T# [$ v& `9 O, w0 yspCurve4->SetEndPoint(spP1);- p1 X& @  x8 Y* u8 s9 f  n
5 b. A# V$ j& |4 `$ A: _( t
8 q; X, ^3 l! q1 Y' `
  spSketch->CloseEdition(); //退出草图
$ J* E4 ~5 y8 S) X1 B 7 ~- \1 N" I+ a) o8 B

# ~. n2 u" N4 x1 r4 w) o+ |  CATISpecObject_var spObject = spSketch;, S8 f  k& H6 A; Z
spObject->Update();
1 g9 x" q. c9 Y  [/mw_shl_code]/ f( W" D. ]. U- H( G0 B
上海点团信息科技有限公司,承接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

在上一节的基础上,开始创建草图。首先创建草图工厂:
0 N4 h  `- K* g( o/ u% ?7 O1 xCATI2DWFFactory_var sketch2DFactory(spSketch);( K) }3 V7 ~  _' W) B+ V
下面创建点:
  s6 D* K7 t: GCATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;# _: ?; }1 y7 V( T
double pt_bottom_left[2]  = {10., 10.};
" J! V% R9 v, v( h) r& T& ]double pt_bottom_right[2] = {50., 10.};# r; \& `9 g' D! p! f" s' P/ q
double pt_top_right[2]    = {50., 50.};' R3 F  ?" M, Y! e# @# P
double pt_top_left[2]     = {10., 50.};3 E# x: {4 o! X6 c
spPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);6 w) }# w6 ]3 P, }' P9 _/ j% j; C5 P
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
9 w/ O. h0 p9 C; H! Y. QspPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);6 L( O( n4 O6 W5 U" }$ o' O7 |# W
spPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);
5 e( m2 Z% r9 w6 X( x开始创建线:3 Q1 @+ c0 g  ]
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;
. O3 P# y7 @) |+ RspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);! ]5 A* Z7 m4 l# z- l
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);. L1 O" P" m5 k' M) z& k) q
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);9 F( Y/ Z$ u6 ?; e9 {9 U# Q
spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);7 ^9 g- c6 j9 j( G: t7 ^
将线连接起来:- r5 o8 k0 ?$ d9 S5 ]2 d5 m
CATI2DCurve_var spCurve1 (spLine1);9 l7 V3 I, j$ m" U( ?7 ^6 U8 k4 M
CATI2DCurve_var spCurve2 (spLine2);4 {# x+ o. ?9 f1 N* s
CATI2DCurve_var spCurve3 (spLine3);
( ?4 N( l! f7 kCATI2DCurve_var spCurve4 (spLine4);
! n8 F1 \1 @4 hspCurve1->SetStartPoint(spPt_bottom_left);
- S2 Y2 W8 e, a# N, jspCurve1->SetEndPoint(spPt_bottom_right);  N- J/ h  A1 k% e. K" e
spCurve2->SetStartPoint(spPt_bottom_right); - V7 x% D0 g; f2 C* K8 [
spCurve2->SetEndPoint(spPt_top_right);
$ Z2 V  C' Y; n$ m) W) v0 p7 Y1 XspCurve3->SetStartPoint(spPt_top_right);
& B/ l7 x) y9 W" \7 ^spCurve3->SetEndPoint(spPt_top_left);
( |, f( s( w/ b- x  ~* gspCurve4->SetStartPoint(spPt_top_left);
/ }( {4 C; {! P0 M8 qspCurve4->SetEndPoint(spPt_bottom_left);
" G, H; t5 o# |' ]9 Z然后退出草图:
6 I7 H1 O, A$ J* C: V6 LspSketch->CloseEdition();3 \# i( u8 E0 @3 O
/ O. A. T3 Y& X5 C
5 x8 ^; p9 s' _) z3 j' y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了