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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形
! J: B: V' M) i' l+ Y8 u2 s8 H+ L' A% q6 @' H& p2 D$ x
QQ截图20171224125201.png
9 I+ S: P0 q9 |: D% m& G: t# G; q+ v
[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory  E2 I. o. U# }/ m9 s
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();5 f- b  a% x9 ~+ R' Z
        CATDocument *pDoc = pEditor->GetDocument();
: t& B  N7 w3 d; `7 ]7 B$ X" a1 V        CATIContainerOfDocument_var spConODocs = pDoc;
' ?% L' O1 ]7 f! T# z! h  v
: \' r; T, r4 l' k* d8 m& S        CATIContainer*            pContainer;                //Container
/ m0 _, y1 i3 F. ^$ b/ K        CATIPrtContainer*     pPrtContainer;//PartContainer, ?5 C, @; M! O+ J* S: I
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂
% R4 Y4 T. j3 [3 P/ f* H  ]" q* b8 Q! ]2 j, ]# }4 r
        CATIPrtPart_var        spPrt   ;//
4 E0 k" u' Q1 e9 O3 P% _5 m* y        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container  D& n# N1 |( H# l9 \. V

2 ^' _$ h4 t1 k; e: j. b        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
9 e8 U5 E) v- `$ Q/ F        spPrt = pPrtContainer->GetPart();3 `: f& b1 N* @  x' p
        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面" S9 O+ z# z) M& n1 }7 V$ {6 }, J

+ C$ U; H( F, }- D6 m& w        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面3 Z, i7 C6 }, {
        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂( ~1 N$ }( [. z4 W6 i$ ]
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图( P( o. h# g, Z* e& K+ e9 ]$ @  B5 c
        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);5 Q7 n, s8 K( `: f; B& O
' C  D. c! a) o0 e, e1 j
        spSketch->OpenEdition();        //进入草图开始绘图
# O- V# r/ O# C# R
; Y5 J) O& C: _        double p1[2]   = {0,0};4 T5 W+ ?/ I9 C% Y1 c
   double p2[2]   = {100,0};
! G  P8 [# @* {7 [* ?9 T( ^/ a+ P   double p3[2]   = {100,100};
4 {, L9 q9 s  V, i6 _0 k" o   double p4[2]   = {0,100};
: x8 X. y, \* W! L# S7 e; f/ i4 P: H
   CATI2DPoint_var spP1,spP2,spP3,spP4;% H! b2 W, j- v% ?  g1 o

) _4 b7 H% Q/ O1 l3 k% c' _spP1 = spWF2DFactOnSketch->CreatePoint(p1);2 A7 `. b# Z9 x" ^) S3 {
spP2 = spWF2DFactOnSketch->CreatePoint(p2);
- N) |5 l& K/ o. YspP3 = spWF2DFactOnSketch->CreatePoint(p3);
# p3 L. J: N3 U% K# e) o) xspP4 = spWF2DFactOnSketch->CreatePoint(p4);( ]2 R/ y) M  D9 \

8 Q' z8 Z/ O3 \  F- b( FCATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);1 d8 `7 w) x5 ~/ d$ ]; s
CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);
# b: i2 z4 u! ?' u/ r% ?CATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);1 U+ O3 s8 a* n8 K- ~/ \' P& }
CATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);
4 r/ L$ \/ B) _& b
' O6 S3 r( b' _8 ACATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;4 ~6 M4 l; x% G8 N  b0 v
spCurve1 = spLine1;
2 _* F4 z+ _/ g( [9 L$ rspCurve2 = spLine2;
7 n- R# l  P; w" U) S" i1 OspCurve3 = spLine3;9 d- ?  d, g0 H  F1 ], [# M
spCurve4 = spLine4;2 p' P$ o( I; |0 I+ I# J5 n$ M0 z

; _& t8 E& b0 x  |; r& z0 [/ espCurve1->SetStartPoint(spP1);4 A: a$ O" t8 G3 S$ p
spCurve1->SetEndPoint(spP2);7 t/ x' j7 u$ B2 a8 z
spCurve2->SetStartPoint(spP2);
+ g& j0 \* P7 z! S( U) G  pspCurve2->SetEndPoint(spP3);
: U( w& B8 t, x' \3 espCurve3->SetStartPoint(spP3);
" ?) N* ]; t0 \1 Q) lspCurve3->SetEndPoint(spP4);
# W( p% S6 [/ |0 X3 L+ O& sspCurve4->SetStartPoint(spP4);/ F/ T& \: l5 S6 s
spCurve4->SetEndPoint(spP1);
& O7 \$ V2 c: \# M- e  a" Z) L, H9 U2 x* C0 S* J" i
' K0 n" o  T5 A5 c6 l% u# F+ h9 g
  spSketch->CloseEdition(); //退出草图
& o* j' b6 j  Z% e9 r0 ^
* q. j& w# X" x, V+ O- [2 b. Z/ \2 }5 v  Z5 ]' D$ l& W/ V
  CATISpecObject_var spObject = spSketch;) ^9 o- E; ]8 @4 Q) Z& L
spObject->Update();
. q. X& b% I; |  [/mw_shl_code]) K2 X! h. }  Q8 T# Y8 ~
上海点团信息科技有限公司,承接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 \# R2 ]/ X9 N. Y, ?- ?  H
CATI2DWFFactory_var sketch2DFactory(spSketch);
* [$ B2 s" J  P下面创建点:" R$ x2 x! X% k& v& u
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;* b- H+ N$ G9 {1 H
double pt_bottom_left[2]  = {10., 10.};
0 d& e5 _. O# X0 _1 o$ }' odouble pt_bottom_right[2] = {50., 10.};
( C3 r4 b; r+ h0 cdouble pt_top_right[2]    = {50., 50.};1 k. P) p/ v. z- e: ]6 Q% Q/ }4 _
double pt_top_left[2]     = {10., 50.};
( u" J- [! @8 f' J5 e% k, bspPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);) c, c* _" |/ j: Z
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
9 y3 ~7 E  v" J6 _% |9 TspPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);! @. H5 E( c: _+ `
spPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);$ U& p5 Z9 ]' J8 s! J# N
开始创建线:& K/ F0 ]* z, X% k$ ]
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;5 x. L, [& l2 C' w% _/ @; t) r7 o
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
& z2 K6 I: j( ^* ]2 X2 F) espLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);* o' l- t" y" _4 k6 [
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
" \/ }  [+ w& I" o1 T7 C  L/ Y1 EspLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);5 T. ?0 m# U7 o5 e0 p! m. F  V+ }
将线连接起来:
6 b  C* p: Y; M$ z. jCATI2DCurve_var spCurve1 (spLine1);/ [) q3 G4 i  t: O" _4 {
CATI2DCurve_var spCurve2 (spLine2);
4 S8 n: ?& u( M, {9 Z' T, WCATI2DCurve_var spCurve3 (spLine3);
% ?( q: Y4 `9 y8 A: O$ T5 ICATI2DCurve_var spCurve4 (spLine4);
* j7 h3 u8 C/ q/ FspCurve1->SetStartPoint(spPt_bottom_left);
4 j9 U. F- O# R9 vspCurve1->SetEndPoint(spPt_bottom_right);# w( {" N, w0 K* [( }
spCurve2->SetStartPoint(spPt_bottom_right);
2 V* ~9 v  V% e! d# FspCurve2->SetEndPoint(spPt_top_right);
2 X6 g/ Z5 ?& K3 r- S2 ispCurve3->SetStartPoint(spPt_top_right); & n" |7 e. T5 ~4 Q9 r
spCurve3->SetEndPoint(spPt_top_left);
6 u4 y+ y7 @" y* o) [spCurve4->SetStartPoint(spPt_top_left); / T2 t  d) S8 u7 M: z0 N- j
spCurve4->SetEndPoint(spPt_bottom_left);
; K% {" P5 M# U9 v/ g然后退出草图:, W4 \; ^3 T: p: R0 u
spSketch->CloseEdition();
. {4 ]; M0 W: q" ~$ b* f1 f: k/ G+ ]1 O

7 g) Q0 D4 k. 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二次开发专题模块培训报名开始啦

    我知道了