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

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

admin 楼主

2017-12-22 13:44:56

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

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

x
CATIA二次开发入门教程---20 创建草图" S: G  g& }7 D1 L% i4 @) J

4 a( a* E4 x8 i3 g7 K
) I" c4 V8 |  S1 ]4 P& S[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory
4 C! c, m& M' j7 z3 O        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();, C9 P/ K) ^& i/ i
        CATDocument *pDoc = pEditor->GetDocument();
1 ]4 r4 h) r8 B3 I        CATIContainerOfDocument_var spConODocs = pDoc;2 {# p* c' v! X$ k" j, r! s5 f
( K% S, S6 f1 V9 d; z, J4 X6 ~/ V
        CATIContainer*            pContainer;                //Container
- F+ B. m* o2 h        CATIPrtContainer*     pPrtContainer;//PartContainer
% E- Q$ W/ d, q; O        CATIGSMFactory_var        spGSMFactory;                //GSM工厂9 F8 c' N, W- Q5 r9 Z5 ?" O# q
8 E5 q. A9 D$ Y" [
        CATIPrtPart_var        spPrt   ;//
$ w2 c5 M; g0 A0 J( ~: i( n: s( k        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container3 C1 [6 U/ p2 Q5 v9 C: c* C9 F( S
. ~0 j9 ~0 Z* E) j) }& C
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
& _, G* z3 K& Z( L' o) B        spPrt = pPrtContainer->GetPart();
- {4 v$ `: }6 U0 F/ q5 [        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面
& o) ^% g% D; n8 u; B" n* ^+ x" \7 \
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面* I) P' j  o+ @! Z& f6 ~
        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂, \9 L# d6 n: ]  |: w
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图$ Q# Q2 I" i8 V# J( E
        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
; s- M/ p' v: {5 B1 D- `
( h  Y; g. A+ e9 b        spSketch->OpenEdition();        //进入草图开始绘图6 i% B& I1 M. ?/ b9 j9 c
      
$ A8 P$ d( [+ ]) K        spSketch->CloseEdition();//退出草图环境4 r/ C; V7 K  h, J$ J5 z- Q
( o8 t* k/ f2 O8 M7 C
      ; O7 M7 [# N. s2 P/ O" k0 }
[/mw_shl_code]" {+ Q& q$ A8 Q2 p. T
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

有两种方式可以创建草图:4 m/ W2 u7 F: X* s% ?
1)通过参考平面创建
+ E. G( b7 F8 A) d5 C首先获取一个CATIPrtPart变量:4 w- q. w/ v+ Z! c& f, t& D2 U' F' p
CATIPrtPart_var spPart(pIPrtContOnDocument->GetPart());
2 q1 G: n0 Z2 f$ p" ?pIPrtContOnDocument->Release();
9 b7 F3 s. a8 F# L* T4 ~有了CATIPrtPart变量就可以利用其方法GetReferencePlanes(),获取参考平面3 \& F: N4 N# ]& Q' L
CATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();% u8 H+ J5 c+ s. y" K2 b/ T6 j1 h
然后创建XY plane (spRefPlanes[1])0 U8 l) w+ r8 B
CATISketchFactory_var spSketchFactory(pSpecContainer);
8 Z( Q7 I  F5 t  i3 N0 Bif ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);2 z; G5 k* B0 _4 Y
CATISketch_var spSketch(spSketchFactory->CreateSketch(spRefPlanes[1]));( o- M8 j1 S2 N; f
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);
7 C( h+ A  ]7 n* M# O8 |spSketch->OpenEdition();
4 a/ ]6 f4 V' Z; c# h4 ^. Z  t2) 通过原点和两个矢量方向
  s- u4 Z; Z  V5 O" Y该方法是通过定义一个原点和两个方向pH、pV  进行创建。, X3 i/ J5 c; f. S: S9 Y
定义原点和方向:7 J0 Y9 G3 j) n- W( W
double origin[3]={0.0,0.0,10.0};
; O6 K0 |; Z/ u. E& U( g8 M5 rdouble x_dir[3]={1.0,0.0,0.0};" G) d* O4 g( V; w! c- ^  t
double y_dir[3]={0.0,1.0,0.0};
5 c4 s) S" G3 b5 e( w. m3 @% lCATISketchFactory_var spSketchFactory(pSpecContainer);
) P) t4 m: d/ K- M  d1 |, iif ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);9 g4 U, L( `1 H/ K% [0 X& F! {" c1 \
CATISketch_var spSketch(spSketchFactory->CreateSketch(origin,x_dir,y_dir));
+ J1 h' k& t2 P9 B: }, hif ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);
- a8 T4 m7 m1 t, |% J- s* x# j+ tspSketch->OpenEdition();; [# J3 v- _# n' d- G1 x  b
到这里,你已经创建了一个Sketch,你可以在上面创建任意的草图了。
! S0 q1 H, p  N4 M7 x创建好记住要将其关闭:. t2 M4 ]- r$ a
spSketch->CloseEdition();
8 r0 m1 u' @+ J. [: c5 e* A& y$ n: v

& J0 m/ ^9 M) Y, g4 h' g  m
上海点团信息科技有限公司,承接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二次开发如何实现呀
0 b. I7 j: x6 T
, T4 r& }8 X( o, k" p
8 Q4 V0 a1 h. P- I! U+ F9 c
我的第一个程序运行成功了,但是显示不正常
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了