PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

[资料] CATIA二次开发入门教程---21 创建草图几何图形

  [复制链接]

2024-3-12 20:17:25 4364 2

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形+ {4 r8 U' V. v. s2 k* S
; I5 L) X0 L( ^: E$ n
QQ截图20171224125201.png : a: F' v" L; u/ r6 ~0 z) j
( T, U6 s$ A2 y' q
[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory
$ T- j9 |* j9 X- o3 g; b        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
, _: N. T( [' j2 A& f% r! k        CATDocument *pDoc = pEditor->GetDocument();
( i  H4 r- c4 t7 }0 r! H( s% J' o        CATIContainerOfDocument_var spConODocs = pDoc;) |5 d$ x& e# _
- j, G3 o2 x- v2 C
        CATIContainer*            pContainer;                //Container
/ C: j0 W% M6 \% q) @& p6 B) k        CATIPrtContainer*     pPrtContainer;//PartContainer9 ?1 e0 X# h% `# z0 h" y
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂6 ~" T8 K+ _: r5 l! G4 d

; b+ K$ ~  b/ G1 _( m2 y; A& R        CATIPrtPart_var        spPrt   ;//# o# T; ]( n3 K& x) l
        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container! f# k. W' c% A' y$ Z- m
- [! \! F# |2 O$ S# i
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
5 |4 a1 s( i# P' h# `        spPrt = pPrtContainer->GetPart();2 ~6 x. h/ C* M! u+ S+ B! {' |6 R2 ]
        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面
( t0 d  C: R) t6 E# g6 k  H/ i& e' K# H& b+ Q3 X- [1 I
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面0 R! n( I, K2 [. m; |+ `# ], |
        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂  U" K! y2 L3 r+ r5 i
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图0 k7 i; u6 F* K' _4 `  x
        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);; r, O# h. w6 d. v' z

# Q4 H- ]/ V! B) r  _5 z        spSketch->OpenEdition();        //进入草图开始绘图
0 m# x* t; C" u6 _: [. u" P
* q: F$ A3 M" l: I" k6 X        double p1[2]   = {0,0};
5 R7 D! C; V3 j, j5 Y1 Z3 |& L   double p2[2]   = {100,0};
* U5 o0 W  w$ d6 C2 ]" V   double p3[2]   = {100,100};2 T& c- K- s( A! D1 T( r" r- H2 D8 s
   double p4[2]   = {0,100};
/ P4 U$ w8 H& \/ @" z1 P% o; ^1 ]( V
   CATI2DPoint_var spP1,spP2,spP3,spP4;
7 J# J; C& S8 k6 M  M0 O
9 X7 i9 Q6 B9 f3 R  u5 k; E2 H: sspP1 = spWF2DFactOnSketch->CreatePoint(p1);3 L! |8 d5 Z; `; x" c7 t4 h; d
spP2 = spWF2DFactOnSketch->CreatePoint(p2);
, M- @( F& F* L4 N3 g% s; gspP3 = spWF2DFactOnSketch->CreatePoint(p3);
; j+ q3 b) t/ w. M5 |# ZspP4 = spWF2DFactOnSketch->CreatePoint(p4);4 h" P# ?% R1 f0 O: R
0 O, H+ |1 T& u
CATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);
+ }5 r2 ]- n1 R! Y5 \' {3 n+ YCATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);3 w) x/ o7 ~! I8 ?
CATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);% f: S, D# G. `6 R: j' X; v
CATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);4 c3 D  _5 ]! X' }0 a7 r" [

) g1 m7 Z$ T: p/ L6 j' UCATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;# G0 D! {! d) U: M1 _/ I3 }$ m
spCurve1 = spLine1;! I0 ?/ x; {  E: n
spCurve2 = spLine2;7 F" d% x9 v3 _! O
spCurve3 = spLine3;+ f$ @* _0 o  g% a" c5 H
spCurve4 = spLine4;( _8 s! ^, D$ G5 J
' c6 U/ Z9 S) J5 L! x
spCurve1->SetStartPoint(spP1);
8 V3 |7 d5 R2 f8 e% Y3 |% GspCurve1->SetEndPoint(spP2);
  k3 p. P6 {: n  Q3 d  VspCurve2->SetStartPoint(spP2);
6 z9 T' V) p( Q! O, T2 Y$ qspCurve2->SetEndPoint(spP3);
* s5 D6 N9 L0 O6 j1 CspCurve3->SetStartPoint(spP3);  {% ~9 u2 z7 _# \& ]) s
spCurve3->SetEndPoint(spP4);) @7 B$ `. {* [+ U! \
spCurve4->SetStartPoint(spP4);: [2 j3 w1 {( O. t& T) ~" Y
spCurve4->SetEndPoint(spP1);
" s1 V  N+ t" V0 X& B1 o5 ~) k" f7 V2 E) Y% \0 o

( o# M+ D1 F; D/ C  spSketch->CloseEdition(); //退出草图6 E9 w" T& o7 T2 G
: z6 Z3 Q, [) r- k
- K' E! B  q. M  X8 T6 Q1 p
  CATISpecObject_var spObject = spSketch;  p1 o" G# P* _" {% _2 [, R
spObject->Update();7 ]5 a3 o3 m3 _2 h9 Y( b8 F
  [/mw_shl_code]
' x, e$ k5 [" X. Y
上海点团信息科技有限公司,承接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 k/ P; M* v" z) ECATI2DWFFactory_var sketch2DFactory(spSketch);, {" @, r. W( `$ |/ ]* C
下面创建点:
, c6 H# f# X8 z1 |1 hCATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;. T- ?+ S) _# ]3 l# Q% D# m7 G' n) ^
double pt_bottom_left[2]  = {10., 10.};
4 ]2 O, q: `) i4 N4 L! R5 {( B( M* {double pt_bottom_right[2] = {50., 10.};
: @6 a" d  F3 I9 cdouble pt_top_right[2]    = {50., 50.};
9 v2 m" e% d  e2 W; ]' e! _double pt_top_left[2]     = {10., 50.};
3 n+ I* O9 i' X+ a) m/ NspPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);
6 d# [7 w, l5 E9 h/ d1 u( LspPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
1 C7 l3 x" r! p- S% T9 [spPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);
+ u# l' E8 M4 ^1 `8 G- A  n) EspPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);& K  }- x: O1 k0 b$ h3 n% W
开始创建线:
6 }% [$ @3 Z( \( }1 Z, v4 \! r) QCATI2DLine_var spLine1, spLine2, spLine3, spLine4;
, i; @, h( {3 l2 l- tspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
# E2 p- B+ E: w# DspLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
) K3 Z2 O5 x1 V2 ?4 x+ V9 H; ospLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
* H( d2 a6 n* f, l8 V# P! o0 Q% M% jspLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);3 {' L1 p, d" M
将线连接起来:& G% F  B7 n9 N1 {' w8 c
CATI2DCurve_var spCurve1 (spLine1);
0 }* E. ?9 x! l6 }4 I: GCATI2DCurve_var spCurve2 (spLine2);
" ~! k& R+ A/ ^' v/ lCATI2DCurve_var spCurve3 (spLine3);  o4 l! ~% w3 o  n9 l7 X
CATI2DCurve_var spCurve4 (spLine4);
7 U) j* m0 y! Z& X- mspCurve1->SetStartPoint(spPt_bottom_left);
% q; i, z1 ]& f  `spCurve1->SetEndPoint(spPt_bottom_right);8 T9 B; s1 b8 E- b$ t
spCurve2->SetStartPoint(spPt_bottom_right); 9 l$ L' O2 j5 q' @' s
spCurve2->SetEndPoint(spPt_top_right);
- {. V% `% Z8 i; ^: a. ZspCurve3->SetStartPoint(spPt_top_right);
! i# Y6 q# ~- U/ i5 vspCurve3->SetEndPoint(spPt_top_left);
- W: x7 k/ Z( n* f4 ?$ ^spCurve4->SetStartPoint(spPt_top_left);
" @- ?" u5 w3 n2 `spCurve4->SetEndPoint(spPt_bottom_left);- E7 ^# i+ d0 {. [, x
然后退出草图:2 z0 x+ h7 B7 V
spSketch->CloseEdition();
& K" @( M' }) U% @, C* c4 Q( C; G" s: t7 h2 z! P2 u$ ^" i1 A
  q8 V+ U& v, b, i( z5 V" I* I' T
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了