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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形
4 q3 u0 p6 n% E$ D2 Q  U7 w6 Q) d8 r- q, ^4 |
QQ截图20171224125201.png # q3 h- u3 T: A5 t. n* s/ v
6 M+ E8 L& X  c8 B% h
[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory" b0 h$ V9 \! V' a: i5 [3 D1 m; d
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
5 Z9 O* N! |3 P/ `% m        CATDocument *pDoc = pEditor->GetDocument();
* A/ B9 I" r- q& }        CATIContainerOfDocument_var spConODocs = pDoc;2 M1 u; A' P( d, J+ ?* @

( `! I3 F6 K/ n        CATIContainer*            pContainer;                //Container/ ^8 n% y* W$ c) }3 O4 o7 Y
        CATIPrtContainer*     pPrtContainer;//PartContainer
! P" y+ A0 J2 Z+ L# M        CATIGSMFactory_var        spGSMFactory;                //GSM工厂* \4 k( R3 G/ ?- f; b& j

/ o! U) l. ]. i# W. n+ E# D        CATIPrtPart_var        spPrt   ;//
! G$ j9 J# |. ?; b% u: y        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
4 e. ~6 m. [9 N% y2 q& H: i: u7 j: e/ Z3 g' V4 U3 J* L
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
& e4 q. ^9 n: Q- D# X$ t9 z        spPrt = pPrtContainer->GetPart();
+ m; q3 i& J, {4 O7 t) F. v8 C/ |        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面
* J  T1 Y( `4 G" i+ d' D! V* {, r) o# M, O( t$ F, v; V
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
& x- Y% r  I/ S        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂, M, U) b, J" v
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
$ p2 `6 `; z9 {4 m        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
( ?( k9 R/ U/ V- A
6 D7 w9 q& b+ i* o! |1 |        spSketch->OpenEdition();        //进入草图开始绘图" [7 R. Z0 Y  `
7 n* ^( }. @; P/ v) o: ~) P
        double p1[2]   = {0,0};' z! Z8 d0 e- q" W( F
   double p2[2]   = {100,0};- z: L3 n4 k' S( _6 T1 S5 u" ]* {
   double p3[2]   = {100,100};6 Y8 x  k) A) J( x; z+ p
   double p4[2]   = {0,100};
) l! c7 Q% O6 c' N) c" z- \! p! P/ S; R- N
   CATI2DPoint_var spP1,spP2,spP3,spP4;
3 y9 D4 y/ V! j, v1 ^8 r( p0 j) q: |$ ~( H! R
spP1 = spWF2DFactOnSketch->CreatePoint(p1);$ A, ]" u4 V$ t2 }$ i3 q* f( x0 |
spP2 = spWF2DFactOnSketch->CreatePoint(p2);
; d! A7 A, F2 e( u4 kspP3 = spWF2DFactOnSketch->CreatePoint(p3);/ t% R; w) _; Y: {+ k; X% [" M
spP4 = spWF2DFactOnSketch->CreatePoint(p4);( r8 S, ]* I( b9 B( Q5 }& f

' E' m' o0 n" j) Y% @+ B) r  sCATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);! a. V  d) A* @+ B
CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);  n6 J$ L0 }: M' D
CATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);9 ?7 K7 \+ F0 s: \& K3 ]3 N0 ?
CATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);
) ?4 V' |& e0 ~. G9 C
8 W" n) R$ l* J) GCATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;
5 o8 u9 l' z. sspCurve1 = spLine1;
7 i( Q) c6 c5 JspCurve2 = spLine2;
* C; M" e. p1 t% UspCurve3 = spLine3;
) M0 r7 O: Y" b( tspCurve4 = spLine4;
2 Q  i. }+ N. M) ~' |! {& J9 W7 [( l: E( D( }' {7 `) m
spCurve1->SetStartPoint(spP1);" e5 r# {7 r2 X+ S' K5 O
spCurve1->SetEndPoint(spP2);
/ @) Q  O1 W- s5 GspCurve2->SetStartPoint(spP2);3 A' I2 U( t8 M/ |3 ^
spCurve2->SetEndPoint(spP3);, J' x, |. e% Q# w
spCurve3->SetStartPoint(spP3);
7 Y+ }+ B% w  A" y( U! pspCurve3->SetEndPoint(spP4);
, `2 ]- T% r6 P- E6 gspCurve4->SetStartPoint(spP4);. H* u- [) \' I4 c
spCurve4->SetEndPoint(spP1);
4 j: H0 z  U  x0 n3 g. c' f1 T# o. x
4 i8 {" C$ O  T- i' d2 ]: V& B3 D4 @$ n# s/ A% U: o1 \( f
  spSketch->CloseEdition(); //退出草图
! g" W: ~5 ~1 u2 ^ . e9 n2 G& P4 t, u

9 k1 |# g  B! r  CATISpecObject_var spObject = spSketch;
9 U, w6 w  I: _7 d2 O# {; A spObject->Update();% q( _4 _2 [# U
  [/mw_shl_code]
: k' S; [+ J* {3 i8 ^- a
上海点团信息科技有限公司,承接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

在上一节的基础上,开始创建草图。首先创建草图工厂:
( M7 D# e. c9 i& kCATI2DWFFactory_var sketch2DFactory(spSketch);% `6 A3 c- ?3 e; ^
下面创建点:# v; ]+ |3 R" P, k- f
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;: V! C" x2 @% w, B
double pt_bottom_left[2]  = {10., 10.};4 G6 q- n  }% p# |
double pt_bottom_right[2] = {50., 10.};- D/ R$ o4 t* e8 n! g9 W- U
double pt_top_right[2]    = {50., 50.};! B" X3 I/ x  w
double pt_top_left[2]     = {10., 50.};
  U3 H) P1 k0 v0 Y( ?spPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);
& ]+ y, i* |3 C' F0 pspPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
9 {: c6 j' h+ T1 U6 ]$ I1 ~spPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);
- S/ w7 u6 v0 U& ~spPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);
' H* l3 z  Y3 {/ w8 x+ x开始创建线:
! I! J8 \& r. f  ~9 uCATI2DLine_var spLine1, spLine2, spLine3, spLine4;
/ T( B4 z' G- A0 f. @0 ^( CspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);4 }1 K" w0 K* n$ b
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
! F; {, R2 v% i, SspLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
- U6 P8 X; T6 h$ GspLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);
  S5 {* ]+ W( Y: F0 m: z/ M, P( [. B将线连接起来:1 V# `# u: Z5 z% ~: u
CATI2DCurve_var spCurve1 (spLine1);
( l4 P$ C# G" l; F! Y9 zCATI2DCurve_var spCurve2 (spLine2);
, w' |, ~$ q* m; aCATI2DCurve_var spCurve3 (spLine3);3 N+ R9 v( B- B1 U4 A/ j* N/ G
CATI2DCurve_var spCurve4 (spLine4);" D8 }! m+ a2 a: Z; J3 W6 ~: g  i. V
spCurve1->SetStartPoint(spPt_bottom_left); 6 `" i- E$ o- W
spCurve1->SetEndPoint(spPt_bottom_right);
" S3 q, i3 S1 N  R5 y& G: ZspCurve2->SetStartPoint(spPt_bottom_right); : f# V5 b  R1 C% _3 R' U" U" @
spCurve2->SetEndPoint(spPt_top_right);
1 a! x. Y1 R5 K6 U, @- J: _spCurve3->SetStartPoint(spPt_top_right);
9 G9 h; r. _% j2 `4 WspCurve3->SetEndPoint(spPt_top_left);- H! X7 I$ B  y- V* m
spCurve4->SetStartPoint(spPt_top_left); * v- A7 b0 l. d' M( C5 m. _+ M3 W
spCurve4->SetEndPoint(spPt_bottom_left);) i7 {' N% c( C& S: h, _( S
然后退出草图:
; G) W8 _) t4 x4 B  X! R; YspSketch->CloseEdition();
, ?$ S4 [: o# x: }* C/ a' E) Z8 i% w+ m" p

' w3 f; W: H) i# g' i
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了