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

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

admin 楼主

2017-12-22 13:44:56

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

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

x
CATIA二次开发入门教程---20 创建草图  X( a" ?( R. G7 j: q/ i

$ n# I1 }5 C: r9 z( ~9 R0 l0 Q0 U' E8 o
% {3 Q; e5 Z& H6 J* G* _6 ~[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory9 ~$ C1 ]  ?, R
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
* }2 _+ t3 }( \6 R$ r        CATDocument *pDoc = pEditor->GetDocument();
# h8 M- ]! P; _% _% v        CATIContainerOfDocument_var spConODocs = pDoc;: [. F% b- C. o( e1 Q# _1 M
3 W+ o3 U5 G+ L. `
        CATIContainer*            pContainer;                //Container
& K0 p6 o0 L* L4 @' l/ P2 x) u        CATIPrtContainer*     pPrtContainer;//PartContainer
( e, J8 G5 y8 t7 x        CATIGSMFactory_var        spGSMFactory;                //GSM工厂, L! }* g. i) @' I' u( J" _5 v( F

4 @% Q2 N' d( I9 a/ @9 b, v! ]        CATIPrtPart_var        spPrt   ;//2 \3 o/ U) f- }5 i. E  ]- }
        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container0 w% _4 M# }+ i9 ?# k+ r: o

2 h. }0 ?& Y  s) E+ N- M2 O6 q        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
# Q  u, e$ {5 a+ r3 Z        spPrt = pPrtContainer->GetPart();
' ?% H* L4 _! w        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面
9 [' B8 {8 ]3 j; \, e
: m5 g0 ~" H5 F0 _. e        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
# n0 b- J# W/ P2 }8 u: g        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂6 h3 U" H! r6 S9 F
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图( r( [6 y( S' o& A+ l* G0 h
        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
9 F- X+ D& m: t' x9 a6 X  g' D+ L
        spSketch->OpenEdition();        //进入草图开始绘图0 e1 s7 G; y+ w" e; ~" ~; j) `
      ) P' `8 w! s4 F) u9 J/ b  B
        spSketch->CloseEdition();//退出草图环境
+ E2 d  q9 K7 N! C7 i7 c8 z& K+ n7 p& E  o
      2 z. }& e8 T9 ^
[/mw_shl_code]
7 r, L& a# u1 d+ s/ W
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

有两种方式可以创建草图:
7 t" ~/ J8 L7 ~) Y- I- ^# W1 d1)通过参考平面创建# M! d: K$ R, V; l
首先获取一个CATIPrtPart变量:
) n; \6 x  c% }CATIPrtPart_var spPart(pIPrtContOnDocument->GetPart());
* Y& a8 Z, H  P- A& xpIPrtContOnDocument->Release();& O- X# e  C" b9 S
有了CATIPrtPart变量就可以利用其方法GetReferencePlanes(),获取参考平面
% \, }  Q/ z  @/ \# F* j! q) bCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();' ~. l6 y1 O4 M+ {; y
然后创建XY plane (spRefPlanes[1])
1 |' f/ K+ |0 r9 y% e' p8 ~: F& [3 iCATISketchFactory_var spSketchFactory(pSpecContainer);
8 b( p. I$ T& L- @6 k; F* @# Hif ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);8 {6 B$ p4 t8 B  O/ {, ^- P5 ]
CATISketch_var spSketch(spSketchFactory->CreateSketch(spRefPlanes[1]));
. Q8 l  E4 {" k: C) M" V- [4 |& L  @if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);% L* F3 c( d: B4 F( L. u  h
spSketch->OpenEdition();& a) c6 _1 `, ^# p0 C
2) 通过原点和两个矢量方向/ M% J0 x% v! |
该方法是通过定义一个原点和两个方向pH、pV  进行创建。8 b* V6 G9 J" r& _$ C! i
定义原点和方向:
5 B6 V" l2 l0 G* j& T. Edouble origin[3]={0.0,0.0,10.0};
. w0 R, `, y' l* o. M3 cdouble x_dir[3]={1.0,0.0,0.0};1 v8 z0 D% h1 r- W2 w
double y_dir[3]={0.0,1.0,0.0};8 z# |4 V5 T, D0 u
CATISketchFactory_var spSketchFactory(pSpecContainer);4 c, o( Z% H% `% Y; ^  g
if ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);
: N6 K( c$ X3 o; _CATISketch_var spSketch(spSketchFactory->CreateSketch(origin,x_dir,y_dir));0 S+ t- w% S& `" A4 Z% H) J9 v
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);. E* i. Q, X  Y7 ~) ~: u0 D
spSketch->OpenEdition();
4 Z% d! D  N0 I9 d0 Y1 [. C到这里,你已经创建了一个Sketch,你可以在上面创建任意的草图了。
8 u2 p& c, B  \, ~$ |创建好记住要将其关闭:
; r. |+ p# i- x! r$ B1 GspSketch->CloseEdition();2 }8 h6 J% A7 J7 k7 V
" N9 ^/ A3 S. a5 d' H; s
" x/ K0 ?1 ^. S  w
上海点团信息科技有限公司,承接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二次开发如何实现呀
+ J( I- S. r+ }* L5 n2 [; Y( h3 j

7 z% G- _2 G/ l. t
我的第一个程序运行成功了,但是显示不正常
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了