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

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

admin 楼主

2017-12-22 13:51:55

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

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

x
CATIA二次开发入门教程---21 创建草图几何图形
) V7 Y. y/ A; R4 y2 V" M6 ~# Y6 x1 H5 ~, u
QQ截图20171224125201.png + [: O7 C- t6 `& s" Q. {; z: h5 z

  U- \5 T, |+ `- s[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory0 m/ M8 g7 H5 m: G) o% y5 d4 ~
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();* N$ O  N0 {+ i" i
        CATDocument *pDoc = pEditor->GetDocument();
: f/ e1 @/ E8 ^$ P; V% s4 D; y, \        CATIContainerOfDocument_var spConODocs = pDoc;2 z' j: Q6 J& @
$ _( d# [' x& A( x! f
        CATIContainer*            pContainer;                //Container! F$ ^* y' p$ ^6 |
        CATIPrtContainer*     pPrtContainer;//PartContainer
* f5 D6 [4 H+ \) }0 H$ j        CATIGSMFactory_var        spGSMFactory;                //GSM工厂3 T$ m9 P% @9 n1 D( i  U) ]/ P- P* D  P

4 B4 l% v  u$ ^# E; q- m+ |" _        CATIPrtPart_var        spPrt   ;//9 y% G# ~( x0 f' |& q
        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
  o, h" Z9 ~& l; d; r. Z, k
& q' {* w3 n3 |) b) Q4 v  Z. j# O7 N        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer( K$ Q: y5 \3 B: q2 Y5 \7 J
        spPrt = pPrtContainer->GetPart();. H, K1 L2 W1 _4 F/ Z
        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面
* ^1 x& s% ^9 o' l6 {. x$ X& n7 ^; p
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
( p; P4 k7 V/ z" H+ v3 a        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂8 x1 }6 k) w7 c
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
* [$ P8 ]2 `' g) ~; Z/ U( H        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);1 Z0 g6 F, ^, l) m2 p
( p3 L: D  V( Z& i
        spSketch->OpenEdition();        //进入草图开始绘图* `7 ^9 y+ v, r
8 m% H, c' d- |3 ]
        double p1[2]   = {0,0};
; u7 K+ W- D0 I# R9 P% u) ~9 z- Y5 h   double p2[2]   = {100,0};: F3 {- n" [% k2 `  k/ U) O
   double p3[2]   = {100,100};# C" V: M3 |' V6 A5 B+ e9 M
   double p4[2]   = {0,100};( z: U5 \7 h2 ~. I
$ R% Y2 w9 b/ p. F  f& p
   CATI2DPoint_var spP1,spP2,spP3,spP4;2 N3 b; H7 Y3 B) e1 I# Z1 p

. B& O# L, r. L& bspP1 = spWF2DFactOnSketch->CreatePoint(p1);4 m2 Z& F/ p+ G2 h
spP2 = spWF2DFactOnSketch->CreatePoint(p2);
0 ~$ B1 Y. t$ x' YspP3 = spWF2DFactOnSketch->CreatePoint(p3);$ r) P. d3 s3 _, U- F1 b
spP4 = spWF2DFactOnSketch->CreatePoint(p4);$ M. [+ G2 ?& q1 A1 U- U9 E
7 _; ~" S; D, z3 E) g' u9 z3 E, {
CATI2DLine_var spLine1 = spWF2DFactOnSketch->CreateLine(p1,p2);
/ L$ U7 b3 g7 m: tCATI2DLine_var spLine2 = spWF2DFactOnSketch->CreateLine(p2,p3);
) @) D( w! P9 M- j  QCATI2DLine_var spLine3= spWF2DFactOnSketch->CreateLine(p3,p4);
* k" K' E8 l; O* T# a2 I, WCATI2DLine_var spLine4 = spWF2DFactOnSketch->CreateLine(p4,p1);
; d6 q  c9 M8 S  J7 B
4 |- g4 i6 ?" H1 _' _9 z1 {# k' h. eCATI2DCurve_var spCurve1,spCurve2,spCurve3,spCurve4;
+ k* I6 L' o6 {" }0 j' uspCurve1 = spLine1;
' {; D: v9 `7 KspCurve2 = spLine2;8 R  I4 H2 q% z+ h; A
spCurve3 = spLine3;
7 T0 g0 g" F! m7 f; h0 ~spCurve4 = spLine4;# b9 J  P; @% U. e. t
2 q! q: w6 u+ j" s) {0 C8 o7 Z
spCurve1->SetStartPoint(spP1);% R6 _$ j- x& `6 Q3 I
spCurve1->SetEndPoint(spP2);7 k3 F( g. f; X5 T! F
spCurve2->SetStartPoint(spP2);6 L7 ?9 |. d" ?9 t  ^& l! F) j
spCurve2->SetEndPoint(spP3);
6 I/ |, ]$ i9 x3 ]spCurve3->SetStartPoint(spP3);7 ~9 F* _3 ]4 V4 l
spCurve3->SetEndPoint(spP4);
  k8 x4 t7 _1 |; ^spCurve4->SetStartPoint(spP4);
5 ~+ }0 g' e8 dspCurve4->SetEndPoint(spP1);
6 p5 K) A- m  j) U; ?# Z2 |2 S& W. T
# l! z3 f7 S& }
. b0 \& x% W: @* C( V  spSketch->CloseEdition(); //退出草图
+ {  K6 z8 d' L3 c, u$ z- U 7 `: d5 z9 r" s% }0 a. X! Z# u
, H7 [4 N+ s! B: _# c
  CATISpecObject_var spObject = spSketch;7 H; U* i, _; t* K/ _. C
spObject->Update();0 Z7 T7 S0 }; q1 o$ F, [6 u8 |
  [/mw_shl_code]
  N5 Y( I% W  p2 K6 {
上海点团信息科技有限公司,承接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

在上一节的基础上,开始创建草图。首先创建草图工厂:
- Z2 T3 B! P* {7 l& BCATI2DWFFactory_var sketch2DFactory(spSketch);0 w9 G8 i) t! q7 U. E
下面创建点:. y3 I: ~' a* G  R6 S
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;1 D* T! ^( ^, {! J- i
double pt_bottom_left[2]  = {10., 10.};
: F* i( Q$ Q3 p- W$ \3 b/ [double pt_bottom_right[2] = {50., 10.};
% j/ ?. w6 }8 |9 U( e& O9 M2 d. e( I( }double pt_top_right[2]    = {50., 50.};
  ~; Z& a/ m( ?" mdouble pt_top_left[2]     = {10., 50.};
2 R3 s! p; o5 Q: U2 ispPt_bottom_left  = sketch2DFactory->CreatePoint(pt_bottom_left);% r0 |5 w+ L$ J# l6 {8 l- y1 \% m  D
spPt_bottom_right = sketch2DFactory->CreatePoint(pt_bottom_right);* q( w3 l% V8 _3 S
spPt_top_right    = sketch2DFactory->CreatePoint(pt_top_right);
$ G8 S. @) W% m# NspPt_top_left     = sketch2DFactory->CreatePoint(pt_top_left);
* U# s. u8 H8 U6 \( m6 ~开始创建线:0 U" v. J0 a. Y2 e( g* Q# }
CATI2DLine_var spLine1, spLine2, spLine3, spLine4;
, }+ Y8 B& z$ e) N5 hspLine1 = sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);) L) q7 i! p7 `2 h$ }
spLine2 = sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);' {- {. g. a( {
spLine3 = sketch2DFactory->CreateLine(pt_top_right,pt_top_left);
: G" x8 {+ ^5 h/ i7 EspLine4 = sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);7 H* y" n9 A1 C5 y7 o; V
将线连接起来:
% h; x- ?* D* \  t+ ]  fCATI2DCurve_var spCurve1 (spLine1);+ @$ j6 k: e# o" g1 o) ?9 o$ t7 _: D
CATI2DCurve_var spCurve2 (spLine2);$ F  x3 P* Q; T8 ]3 `3 P- F0 D
CATI2DCurve_var spCurve3 (spLine3);
% B* I" u% a0 y/ k+ n4 Z% xCATI2DCurve_var spCurve4 (spLine4);
7 C% B1 S7 i  O  A8 ^spCurve1->SetStartPoint(spPt_bottom_left); 0 f4 s) Z4 w) k+ J; d- Z8 }, G
spCurve1->SetEndPoint(spPt_bottom_right);
& d3 t6 y  z. v: \* ispCurve2->SetStartPoint(spPt_bottom_right);   q' r% K9 ~/ I! \% Y5 e) @
spCurve2->SetEndPoint(spPt_top_right);* z. N. A0 r: ]/ u
spCurve3->SetStartPoint(spPt_top_right); 7 Y, K8 U# O- z3 _
spCurve3->SetEndPoint(spPt_top_left);( U5 g; x: t! G7 h" ]! {5 w
spCurve4->SetStartPoint(spPt_top_left);
9 s4 T' m' i8 G8 a/ ^spCurve4->SetEndPoint(spPt_bottom_left);/ }0 R+ C6 U- c/ j- Q& U
然后退出草图:
+ I' f+ }! `( f# [spSketch->CloseEdition();
; k" k2 J$ l$ t! `- c0 A* h. l3 h( |2 s" B$ N$ c  N# [' a& l
2 ]4 o1 Q- P+ {6 L
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了