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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形
* D7 `: h4 B9 f/ }) s
, h5 P3 v" ]' u6 H QQ截图20171224125201.png 3 P2 p" ^* j0 e- m0 Q5 }& q
$ K; r$ J/ I4 o% e: y
[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory* ^. L# M' J. c% m
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
+ U, }  W- C3 J        CATDocument *pDoc = pEditor->GetDocument();: G+ f# w4 ~' m" Y. ~
        CATIContainerOfDocument_var spConODocs = pDoc;0 P, V6 I8 z! e# n( H- W; W0 P9 C

2 e+ r, v2 ~: W        CATIContainer*            pContainer;                //Container
5 V+ N. k! f1 L' {8 c        CATIPrtContainer*     pPrtContainer;//PartContainer
& x( k# v8 R* y9 R3 _        CATIGSMFactory_var        spGSMFactory;                //GSM工厂5 Q7 ?, E5 o3 K% X# o
' }: J7 g; l. n
        CATIPrtPart_var        spPrt   ;//, v4 `2 ]$ I! n. c( x% i; ]  S# X
        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
/ A' E; f/ u( c7 Q5 z
0 S+ Y1 w; }7 {0 J( x- m. _3 A        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
( W. @: v, S. D        spPrt = pPrtContainer->GetPart();  C9 K2 r- _- A: c! d, n
        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面: f$ M3 P* G: }1 |: C: q: v
; X8 r% s2 X4 Z6 a
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
3 H' [6 k* p: B& @' j9 u0 f  d: q        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂
- X& v5 H0 B6 F' p. V$ T        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图7 D# }; ]# K5 v8 G$ s3 t
        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);/ ?7 M& N% N9 [
$ M9 R! s" {& V( Y
        spSketch->OpenEdition();        //进入草图开始绘图. U+ m1 m4 ]# N( m5 z0 ]

7 O. {1 b$ s$ `$ |/ q5 w        double p1[2]   = {0,0};  S2 {0 Q4 v9 q$ E/ @
   double p2[2]   = {100,0};
2 L, R) H. ?/ \' k   double p3[2]   = {100,100};
& N0 H2 X( j8 L/ [( j   double p4[2]   = {0,100};: I$ Y; D; t- s
- B' q; s8 ~! c8 R1 o+ |- l0 c
   CATI2DPoint_var spP1,spP2,spP3,spP4;5 t! Y7 O1 M0 l1 X/ V

% I( F5 [" v! @" }spP1 = spWF2DFactOnSketch->CreatePoint(p1);
; f, O& ?* a2 \: s' `: b+ }spP2 = spWF2DFactOnSketch->CreatePoint(p2);& m/ x4 v, f8 {4 V' y) V
spP3 = spWF2DFactOnSketch->CreatePoint(p3);
* q( g' i# Y: h- J8 q! XspP4 = spWF2DFactOnSketch->CreatePoint(p4);3 b8 W! ^  _4 J3 \

% r' s/ D) E. f6 bCATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);
6 x: o, m6 u3 B: }1 n# dCATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);
: c  n! a* T; Q0 z8 y2 f! mCATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);
. Q7 y: c2 j0 eCATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);! a" h! V! k8 n: K
3 k* |- B0 ~, M* a+ D4 A% H
CATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;' b8 t: p! b$ E1 C% j* V: `( s
spCurve1 = spLine1;" B; h, p5 z# B
spCurve2 = spLine2;4 T0 X  N/ {: ~1 G4 A! U
spCurve3 = spLine3;
, y: {( \: O, w- @, ~; F4 BspCurve4 = spLine4;
8 Q' M& ~! X! g2 N( h; ?
+ E7 I/ [2 e" r4 V. }2 X( t3 RspCurve1->SetStartPoint(spP1);' P3 H9 Y7 \; C
spCurve1->SetEndPoint(spP2);/ H5 E7 T; }3 R8 S& T, u
spCurve2->SetStartPoint(spP2);
2 w# Q  z# c" hspCurve2->SetEndPoint(spP3);8 E# \) y( o  E# l; r
spCurve3->SetStartPoint(spP3);
6 r6 x/ u& }  p3 }# G& YspCurve3->SetEndPoint(spP4);( Z  c0 y# R8 f0 O' H& u# I, T8 x: C
spCurve4->SetStartPoint(spP4);2 k5 u# H% B4 X( c7 E9 D0 Z
spCurve4->SetEndPoint(spP1);' N# }) {, T* r$ u5 q* Z
9 m% b* R. x/ X8 Y. k
; M. g9 A5 {/ P3 e  j* D9 J2 }
  spSketch->CloseEdition(); //退出草图1 _* |) E- f' B- A* l0 w) \

4 {& ^7 \  N+ `! R$ I% Z$ I
2 B! V  \! B. O  CATISpecObject_var spObject = spSketch;, Z! Y3 K% [7 t. P1 b, w( l. _% a
spObject->Update();6 i# K- ~# o8 f5 Q+ [; @/ k% ?
  [/mw_shl_code]
# @1 z' K/ i* E5 T  n- P
上海点团信息科技有限公司,承接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

在上一节的基础上,开始创建草图。首先创建草图工厂:7 T) \) O7 C; G# \) D
CATI2DWFFactory_var sketch2DFactory(spSketch);
2 W' N, ?( ?4 C1 c下面创建点:% @% D2 P+ G) F0 `
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
9 q* x# B  Z( @8 }double pt_bottom_left[2]  = {10., 10.};" T4 x- c3 T. ?
double pt_bottom_right[2] = {50., 10.};. y/ q8 i$ ^2 A6 R) u$ ^- a7 `
double pt_top_right[2]    = {50., 50.};
* w2 ]& Q" M! c/ w. G* L& V. pdouble pt_top_left[2]     = {10., 50.};+ b0 l* p! o, s0 s
spPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);
; u; x+ Z8 q4 |2 AspPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);, z& G2 G- a( |: Q: K
spPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);6 q0 A  `& C0 u) ]' D4 x
spPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);8 ]* _0 l, T3 q& S& j* f+ g
开始创建线:# A$ Q( Q* L& s3 x. h
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;
( |  r# ?& x2 {: nspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
% N3 u9 c0 Z; ~; Q% w2 L1 |4 `3 wspLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
, `0 L- |$ D% _2 f! B4 lspLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);0 T8 J# h, E- G. V7 U( v1 V
spLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);
( s3 ?. j: f. n; _, @$ Q7 W% a将线连接起来:) Q  X% _2 w' P. D
CATI2DCurve_var spCurve1 (spLine1);
4 L/ Q7 V2 E0 L  X' t6 d  iCATI2DCurve_var spCurve2 (spLine2);6 V5 e$ m& Y. V: @; T7 A
CATI2DCurve_var spCurve3 (spLine3);: N" g8 p) q2 f& b8 V
CATI2DCurve_var spCurve4 (spLine4);- i% e2 t; B% S8 b, q7 v
spCurve1->SetStartPoint(spPt_bottom_left);
8 a3 l5 G$ J& n2 \( o' s7 \spCurve1->SetEndPoint(spPt_bottom_right);+ _$ g' U; \. B4 ~9 S) [
spCurve2->SetStartPoint(spPt_bottom_right); 6 D9 G) o, m; j
spCurve2->SetEndPoint(spPt_top_right);
! F# @/ e8 h  H) {! zspCurve3->SetStartPoint(spPt_top_right);
: O' S" m+ r8 M$ TspCurve3->SetEndPoint(spPt_top_left);
9 X3 g2 @! E% a) [* ?spCurve4->SetStartPoint(spPt_top_left); 7 r& C8 I6 q4 r* o8 O6 f
spCurve4->SetEndPoint(spPt_bottom_left);
# H7 q8 W5 U' w; _$ x# d1 |然后退出草图:
; J% E; {' b# V4 ^# X7 @spSketch->CloseEdition();
" ^7 |5 g5 f8 e4 T( G2 j! E# X& b" o
; \5 F7 e% J4 i+ q  c  ^
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了