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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形+ i& }' [+ k. X2 X6 h
% p1 {# d8 b* A" H6 }: c; f
QQ截图20171224125201.png
- a. ]2 y# b; U' u: C1 L# \8 s! }& |) V% G) j8 T  y' o
[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory! c. F# l8 B* i: w
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
/ F( @# n& u6 u        CATDocument *pDoc = pEditor->GetDocument();, S. p$ a+ X% E# i/ @! y- T! B
        CATIContainerOfDocument_var spConODocs = pDoc;  ?$ d! L; K7 }. Y3 u

+ b. l7 g, ?; s6 O6 ^6 r        CATIContainer*            pContainer;                //Container! k& q5 A- D: I, j4 R+ E* ^3 E
        CATIPrtContainer*     pPrtContainer;//PartContainer" K- o( W! o- ?" ?, `4 E* g
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂" l3 K; \2 l+ k$ O5 R( w/ u
6 G+ _% d" k/ e7 \  B5 w
        CATIPrtPart_var        spPrt   ;//
' a/ f3 g  n1 x9 [4 L5 ?        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container2 R. R2 B8 o" \2 y7 w; u7 i
, k1 ]' A) L8 o2 N
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
7 ~- b2 {0 k# d* _: y! I1 J# v# k        spPrt = pPrtContainer->GetPart();
& B  I* y! _) j5 x8 l( X8 K/ A0 M5 ]        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面
2 C; g. C# t) {& a9 i  r0 V# z) D  i' R* r% Y
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
8 k3 M  |' L" Y- R: ^1 v        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂' e' d) V/ ^0 d" W1 W) r
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
" I: m) J0 p- C2 G: m# o1 L" E        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
# c5 N' }( }* g6 t9 V9 S  `
7 {4 R6 g. g+ n1 a        spSketch->OpenEdition();        //进入草图开始绘图. A+ h! [3 D- E: A' v2 ?6 M& [
; y8 F& W. m0 s8 T
        double p1[2]   = {0,0};+ V/ k1 g5 G$ \( S$ I
   double p2[2]   = {100,0};0 r' Z: k- B' f
   double p3[2]   = {100,100};4 }- W! Z0 M9 @) _" s
   double p4[2]   = {0,100};
  Y6 v9 l0 B6 {4 k4 Z: e* r4 P# e
4 }3 o! D" C* s. _8 g* n7 w   CATI2DPoint_var spP1,spP2,spP3,spP4;
8 i0 s: J, Y" b5 H
: u, f) I0 I5 q4 K% N1 i7 _spP1 = spWF2DFactOnSketch->CreatePoint(p1);
% a  y! c& S1 w. ]1 aspP2 = spWF2DFactOnSketch->CreatePoint(p2);1 m: D, a' @2 t$ x
spP3 = spWF2DFactOnSketch->CreatePoint(p3);2 `  Y+ _  h' [
spP4 = spWF2DFactOnSketch->CreatePoint(p4);
& S- \. D, k8 {' b6 x. ?( U! O  C9 S$ z; r2 q" v# C' p1 W* C
CATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);* S) t% h2 p. Y
CATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);5 g2 Y2 w) U2 c! A, T6 y1 C1 x# @
CATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);3 R, }1 ]+ ^9 R2 K
CATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);# `  [& _% ~7 v3 s3 f

) h5 i/ |; p  N4 ^CATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;
8 E" W2 j4 _4 qspCurve1 = spLine1;. h- p% i7 W3 S' O
spCurve2 = spLine2;
. W& P' `! _2 \5 L9 S7 ^+ m* VspCurve3 = spLine3;
* z1 \+ _5 o. HspCurve4 = spLine4;
: t& T; Q& m$ x! H4 I) a' \  U7 i+ Z
spCurve1->SetStartPoint(spP1);
2 z: Q5 F. K5 z  E# x& d1 S, \" y+ QspCurve1->SetEndPoint(spP2);
: I5 X# p* h: m9 a, H3 m6 QspCurve2->SetStartPoint(spP2);( Z8 K% l- a) ]; e" }
spCurve2->SetEndPoint(spP3);
# u: ]- P1 ?% ~2 G5 X) UspCurve3->SetStartPoint(spP3);
2 p* T2 A  ]5 o3 {7 ]spCurve3->SetEndPoint(spP4);
# [! @4 I* i, L7 TspCurve4->SetStartPoint(spP4);
( X% e9 O2 Y% q5 d2 B& {2 u3 \spCurve4->SetEndPoint(spP1);% y. G) I4 r; f- q) l5 R  C4 @

9 E, [" i7 w. v9 {' I7 V& ]  @  G
  spSketch->CloseEdition(); //退出草图
. c* y+ K7 B' j, A: N
2 @% j0 |2 f5 X" q/ K; Q
$ g( q, t0 B  N/ K% A  u  CATISpecObject_var spObject = spSketch;! F+ L" ?+ S, U
spObject->Update();
+ i+ T: O4 Z* \- O  [/mw_shl_code]8 M9 l4 E0 A/ x$ k4 d9 p2 f
上海点团信息科技有限公司,承接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

在上一节的基础上,开始创建草图。首先创建草图工厂:+ F" ?( s7 ~  S: N4 k
CATI2DWFFactory_var sketch2DFactory(spSketch);/ {& L7 R+ {/ _4 x) P) k) u7 b& h2 t
下面创建点:
) ^* s  L4 y" a$ q  q, N* y3 |CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
& O6 G) `- T2 ?$ ]double pt_bottom_left[2]  = {10., 10.};, }3 D. P' Y9 [% B
double pt_bottom_right[2] = {50., 10.};* E/ ?+ F6 `/ p: Z! F; \
double pt_top_right[2]    = {50., 50.};; l( I% L, R( @; _
double pt_top_left[2]     = {10., 50.};$ ?; G' C- v; @" e% c
spPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);* u( A# C% l& u. D
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);
# X& r  F* t9 `7 J: S$ E: K# a9 {spPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);
6 e! s' z3 l% \  lspPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);
" W0 ]- t& m, a/ t* I/ G- P开始创建线:
- ~  z8 K7 {; L/ {; d+ p3 w9 rCATI2DLine_var spLine1, spLine2, spLine3, spLine4;2 U1 ]. I8 \) j5 T
spLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);
  C/ D- f: W! M8 O6 |spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);
* r. j( n: t4 x% G) z: z# o# EspLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
4 n4 C/ v" K$ N- I/ U# gspLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);' o2 Q2 F* q+ B: J. N; ^
将线连接起来:
' |  J  \8 U3 @# n/ ?3 }CATI2DCurve_var spCurve1 (spLine1);
3 _% b9 B" Y$ pCATI2DCurve_var spCurve2 (spLine2);
2 [) M7 h! ?+ q4 \4 N$ m/ ]0 kCATI2DCurve_var spCurve3 (spLine3);
3 \0 Q+ E( T; J9 I3 k! O) tCATI2DCurve_var spCurve4 (spLine4);
- \! _) q# Q+ `( EspCurve1->SetStartPoint(spPt_bottom_left); 7 ?. q* u+ J" Y
spCurve1->SetEndPoint(spPt_bottom_right);
/ [) \1 ^! y% U) aspCurve2->SetStartPoint(spPt_bottom_right);
1 d9 E* M2 i: s7 YspCurve2->SetEndPoint(spPt_top_right);
4 F) a% `$ q7 t! z0 mspCurve3->SetStartPoint(spPt_top_right);
! F/ B" ?' \* ]& {spCurve3->SetEndPoint(spPt_top_left);
" O. ]) H) W* \  X6 I- ]# @6 wspCurve4->SetStartPoint(spPt_top_left); & n1 m: m3 z: @; l4 U  k. G* L
spCurve4->SetEndPoint(spPt_bottom_left);7 W( a% k% C% ~. {3 F
然后退出草图:
+ |; K' t- i( |2 U) H! uspSketch->CloseEdition();
! E2 |5 x* f! T2 C3 M7 J5 ~( G" V+ m/ \9 M  A

* M& h% s0 F3 P1 n* A4 |# d
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了