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二次开发入门教程---20 创建草图

  [复制链接]

2018-3-25 10:10:36 4213 2

admin 发表于 2017-12-22 13:44:56 |阅读模式

admin 楼主

2017-12-22 13:44:56

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

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

x
CATIA二次开发入门教程---20 创建草图% c9 z( _' g) f8 E

7 ?6 x" O$ f7 w9 x, W) r' o" i3 W
[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory* r4 I* N, p. \( y7 G$ S
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
0 r. f2 x. j! U        CATDocument *pDoc = pEditor->GetDocument();( F* s" z$ d. i& \1 B2 u7 N' |
        CATIContainerOfDocument_var spConODocs = pDoc;
7 E$ P2 X1 I* t6 B( p* T4 t9 n, G; [: K
        CATIContainer*            pContainer;                //Container
  w3 \6 _( E7 w* |        CATIPrtContainer*     pPrtContainer;//PartContainer$ y9 [  p0 Z! G' V7 X6 u  n& n6 b
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂* T4 x: ?$ d9 G4 S. l/ T6 h& ?) o2 i
  C) K3 a7 V7 P
        CATIPrtPart_var        spPrt   ;//. a& H# H- L( v0 m& Y5 |# C
        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
* j  s7 E8 D1 J! m
$ U9 f. s: o, z0 M0 M0 r        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
5 |3 O2 E, Z& e/ b" c        spPrt = pPrtContainer->GetPart();
3 i- b" k! K: ]5 f1 w        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面7 h1 K8 Y% L7 k% m4 z" r7 w

; V' G% G' N" @1 J        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面  A& \0 N$ l1 w/ E2 y$ V3 N$ R
        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂7 o8 g! ~0 R2 ^) T, T9 ~" ]' `9 ~# ^; E
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
6 l+ B& }( A9 @# h9 O        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);; x% E8 U7 }, y+ `# N& E
. D* {/ Y, F5 g5 j$ n( k- Y
        spSketch->OpenEdition();        //进入草图开始绘图' Z- w$ I1 t7 n$ h
      1 K0 U0 Q7 O5 i7 p  b( {
        spSketch->CloseEdition();//退出草图环境! X- l0 K3 J# V$ ~6 L# p

5 i( W; f% \; w. ]4 Z0 v- B4 `5 F      ( V6 o7 Z4 {+ }8 B; w+ n/ M
[/mw_shl_code]1 ~! S; W8 |4 I% ?8 s: |+ X
QQ截图20171224112147.png
上海点团信息科技有限公司,承接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:45:19

admin 沙发

2017-12-22 13:45:19

有两种方式可以创建草图:$ U5 b" K/ c- v0 c' X' G- H
1)通过参考平面创建
1 N2 U' z3 R: g" S* e2 O$ m首先获取一个CATIPrtPart变量:- H: r' X# S; D  u
CATIPrtPart_var spPart(pIPrtContOnDocument->GetPart());  [8 t0 I* l+ z( j
pIPrtContOnDocument->Release();
0 W$ |" A! I$ S有了CATIPrtPart变量就可以利用其方法GetReferencePlanes(),获取参考平面
# Q  R! B0 v2 MCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
7 s8 D% G4 l- ~' E- M/ t然后创建XY plane (spRefPlanes[1])# n/ E1 ?# D; ~' n9 P# f+ F
CATISketchFactory_var spSketchFactory(pSpecContainer);! [/ V3 n/ I( M& P: X$ o
if ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);- n; U( B( i4 C( B
CATISketch_var spSketch(spSketchFactory->CreateSketch(spRefPlanes[1]));
1 |0 E8 ]% k" P* P+ @$ `3 ?if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);
3 P4 v5 A8 w9 E; B9 q2 n7 j& FspSketch->OpenEdition();
0 t' t; w* s; [: l# k6 g7 e3 x  O, v2) 通过原点和两个矢量方向
* E' v1 E1 i. H8 j6 q9 E' T2 \该方法是通过定义一个原点和两个方向pH、pV  进行创建。( d9 H% n) M* i& U: a
定义原点和方向:
; K' z( P' v/ s  k. K4 |5 F0 m! Udouble origin[3]={0.0,0.0,10.0};
& v7 }7 V8 D8 X6 d2 @double x_dir[3]={1.0,0.0,0.0};
! b) _/ e  T+ {1 \- Z" J# ]double y_dir[3]={0.0,1.0,0.0};  ~- c) I5 I5 F  Z  h  ~
CATISketchFactory_var spSketchFactory(pSpecContainer);
/ @, [4 g9 e' P6 o7 T! y6 {if ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);
* }% f, R. ]$ m7 q- [0 d( XCATISketch_var spSketch(spSketchFactory->CreateSketch(origin,x_dir,y_dir));: j4 R( V  m1 K
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);
. x, ^; `- F6 ]$ sspSketch->OpenEdition();( U) {9 W3 o: ?* p8 }, O& r0 ?9 s
到这里,你已经创建了一个Sketch,你可以在上面创建任意的草图了。
; `& P) }  G% x创建好记住要将其关闭:
0 C9 z9 L9 w& ^! b8 @3 Z) j: LspSketch->CloseEdition();
  ]0 S0 M% `# ~! H% d, J: v0 l" e7 X

, B) S9 [" H. f$ g: [% Q
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

cwp86 发表于 2018-3-25 10:10:36

cwp86 板凳

2018-3-25 10:10:36

在设计产品是不可能只选择XY,XZ,YZ这三个参九参考面,哪么问题就来了,例如用户选择实体上某个平面特征为参考面,进行下步的设计,这个在产品设计过程中经常使用,CAA二次开发如何实现呀3 I% L  [( K  B& D; W/ z! E9 l( Q" ~

- N5 H+ z& W7 w. t! o! k' O; Z
! D) z5 j2 ^0 g( U0 s: E# Z
我的第一个程序运行成功了,但是显示不正常
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了