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

  [复制链接]

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

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

admin 楼主

2017-12-22 13:44:56

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

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

x
CATIA二次开发入门教程---20 创建草图" Q5 u8 L% l4 e
! f% R% {+ A) a( D6 J0 J

# E3 I9 o# d& e) u, {# N. t5 D5 f[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory5 U; p+ {  V7 U  g
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();8 Q1 c: u8 [% R
        CATDocument *pDoc = pEditor->GetDocument();: g' p0 }) _- D6 S/ `. D. s9 u
        CATIContainerOfDocument_var spConODocs = pDoc;9 A9 K. x5 w1 Y5 v0 _, t" x5 S# _

0 B; h- P7 X+ l        CATIContainer*            pContainer;                //Container
% D( d& e8 H+ m. W        CATIPrtContainer*     pPrtContainer;//PartContainer
+ {# z7 Y4 N; r; y# F* ^/ D        CATIGSMFactory_var        spGSMFactory;                //GSM工厂4 M% s3 A0 g: v0 B/ Y
" N0 A) x! f2 X( y2 N5 N/ J8 C
        CATIPrtPart_var        spPrt   ;//
* ~& [  V2 ~0 H$ B' _. p        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
% _& S$ C* H& l; X- E$ v+ X2 i4 [4 C  v( F* e( [6 x
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer0 Q& a. \) M# b5 x
        spPrt = pPrtContainer->GetPart();
& J5 T; q. k) ~* S        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面
" `8 o  T& ^) W3 B. ]5 k  u1 t8 j! j* [
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
1 [, q; d- }! @8 v$ l3 e: K        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂# f: r7 p* s9 F; T# G& q9 w9 U
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图$ O9 z. b* j6 N" b$ V" b# w+ u
        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
5 Z5 m  M0 k* Z  n
; K* Q; F! p/ H1 \        spSketch->OpenEdition();        //进入草图开始绘图
# o7 x4 B. N3 O8 y% b3 q% c      : P  B- J: B7 v7 N
        spSketch->CloseEdition();//退出草图环境
) l8 C6 {9 Y6 [9 E  E' l# C; K4 z8 d
      
! Y9 ], q* R# R# s" [+ O- c- G[/mw_shl_code]! U! |' D4 Y9 S2 S, j
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

有两种方式可以创建草图:  P9 D  n' L" t* H* R
1)通过参考平面创建# N; e7 I1 k/ m3 K4 m
首先获取一个CATIPrtPart变量:
& l9 U8 p2 ]3 GCATIPrtPart_var spPart(pIPrtContOnDocument->GetPart());' t( U* G3 W$ {: b9 ?  O: [
pIPrtContOnDocument->Release();
; @6 q1 U9 u  M2 n6 y0 ]有了CATIPrtPart变量就可以利用其方法GetReferencePlanes(),获取参考平面
6 U0 [7 {; e4 L% ]9 i; v- m( DCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();" J7 a1 @  V( ]; ^: r% {. _. d
然后创建XY plane (spRefPlanes[1])
; c' Z0 f: j2 R1 q/ r7 RCATISketchFactory_var spSketchFactory(pSpecContainer);! s* d! x  i8 k, Z) T1 l% u2 m6 @
if ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);, H/ B2 f+ ~% k  f' F; b- ?4 [. p
CATISketch_var spSketch(spSketchFactory->CreateSketch(spRefPlanes[1]));
0 U( s: A+ m3 _9 f6 j% O! zif ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);% v9 N2 x$ f$ [6 E- p
spSketch->OpenEdition();; ^9 i4 U* d# Q* y/ d
2) 通过原点和两个矢量方向
- u/ x5 D1 A; Q1 f该方法是通过定义一个原点和两个方向pH、pV  进行创建。
4 v% n0 _; N2 [& H* \定义原点和方向:
" G( }" L+ ]: A+ v0 p  r  adouble origin[3]={0.0,0.0,10.0};& K$ N0 {" f9 `0 J0 M. r4 I
double x_dir[3]={1.0,0.0,0.0};' u! p- M* {# O
double y_dir[3]={0.0,1.0,0.0};
, r, D, Q2 r( n% {1 M6 _& r6 {5 ~  {CATISketchFactory_var spSketchFactory(pSpecContainer);
$ Q4 D; s6 s( x0 t% D3 hif ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);8 ^" _- M' Y1 C' f4 @/ M' j" s
CATISketch_var spSketch(spSketchFactory->CreateSketch(origin,x_dir,y_dir));# Z0 z4 s: D$ J/ z
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);5 x) G4 S9 M8 u6 X4 r+ Q
spSketch->OpenEdition();0 ~' h- ?7 d, d( a2 `% E' t# m
到这里,你已经创建了一个Sketch,你可以在上面创建任意的草图了。
  k2 q' Q$ Q$ n/ q4 W创建好记住要将其关闭:
5 j+ O: t% R4 Y" C: a0 nspSketch->CloseEdition();* q3 S0 g+ `$ p9 V3 x) }

9 Q  {" O$ F, O- I
# t6 ]+ ^# q$ n. A, G$ I
上海点团信息科技有限公司,承接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二次开发如何实现呀
- I2 R2 P1 W, i0 t9 @" ]$ `7 Y3 r, p1 G4 b7 e8 p
% m$ o$ R0 ]6 B1 a# R9 H
我的第一个程序运行成功了,但是显示不正常
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了