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

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

admin 楼主

2017-12-22 13:44:56

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

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

x
CATIA二次开发入门教程---20 创建草图+ \5 R1 F) Q. E% o

% O& d( J4 s4 s2 U( n9 i" i" Q! u. ^
[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory1 o4 |& H- n: c) E& J
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();; L. P# s: T" T/ U/ b9 k+ X, a% h
        CATDocument *pDoc = pEditor->GetDocument();- [9 V  R/ V) k1 G
        CATIContainerOfDocument_var spConODocs = pDoc;) C' X# u  \, Z5 x( j. N) ^
6 D; q/ F+ L2 k2 }) N
        CATIContainer*            pContainer;                //Container
2 f+ @2 Q  m( r9 Q9 l' g$ Z$ g        CATIPrtContainer*     pPrtContainer;//PartContainer' j  H; l* w- N: U' S' @
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂
7 C* m' |: Y* b- V( p8 \" {/ T) ~" e- E, v6 \
        CATIPrtPart_var        spPrt   ;//; d* U( T* G( a3 j
        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
: @& p; [9 S0 ^$ B% h
9 k5 _/ c% X3 K) |; E4 y& r        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
; }  s1 l8 g" P* [        spPrt = pPrtContainer->GetPart();
  h0 K9 t( \& q) A        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面% J1 X& y# ?9 |8 _) f
- z- T/ a" E0 [0 |& {: H" ~
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面, U6 w9 |4 H5 S& S3 U# n$ i
        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂
1 h$ ^1 @: u% k+ r8 X        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图& [- V* Q$ ]$ p& I5 H& [3 C# q
        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);
) I9 o7 x7 j8 p( v7 m
. h# D) V; d+ s) M% Y        spSketch->OpenEdition();        //进入草图开始绘图
: T6 D3 \3 `; k- A      7 Z2 J& N( ?- w1 v
        spSketch->CloseEdition();//退出草图环境, Y8 Z: w$ l$ r# n" K
, V- R$ r% D5 S
      4 {, o& I) ^- k8 j9 \, G& C9 ?
[/mw_shl_code]
* J5 Y" U2 R8 b9 Q
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

有两种方式可以创建草图:
3 Y# N( C8 P5 |/ P1 m9 |1)通过参考平面创建
, r9 Y# d, t3 z% M9 E首先获取一个CATIPrtPart变量:
9 C2 A1 ?+ `4 X7 h% u7 D  D+ ~' D3 U5 oCATIPrtPart_var spPart(pIPrtContOnDocument->GetPart());  l% q3 _6 s7 K9 e' J' ]
pIPrtContOnDocument->Release();& d( S+ m4 h( p# ~
有了CATIPrtPart变量就可以利用其方法GetReferencePlanes(),获取参考平面
* {! a7 L8 Q& e' o7 t% cCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
& r$ w5 M4 a! n9 R, x. X  B然后创建XY plane (spRefPlanes[1]); `- ^6 {3 L/ E+ ?: V" x0 r
CATISketchFactory_var spSketchFactory(pSpecContainer);
/ ~& K4 z! z/ k- o0 Iif ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);
) a3 A" i: e9 B4 z+ e6 aCATISketch_var spSketch(spSketchFactory->CreateSketch(spRefPlanes[1]));* v3 b" \2 z; w+ C2 ]$ m
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);- J1 E0 e# j, Z1 Z& l
spSketch->OpenEdition();
' v- X& F/ k5 J1 y1 O' l2) 通过原点和两个矢量方向
6 ]6 U8 F) i% T& q* Q" J该方法是通过定义一个原点和两个方向pH、pV  进行创建。
8 n, A' ?1 q: C% t1 ?& z9 _定义原点和方向:
  [+ v0 q, ?! q& u4 _1 g( Bdouble origin[3]={0.0,0.0,10.0};
) w! v+ [, N1 Zdouble x_dir[3]={1.0,0.0,0.0};" o& M- h; q2 {$ _! e4 r7 p8 x& c
double y_dir[3]={0.0,1.0,0.0};$ j( U6 t, a1 F7 S4 ?' |
CATISketchFactory_var spSketchFactory(pSpecContainer);
# O- X5 Y0 _: u3 Lif ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);
. x- D7 A* Z0 rCATISketch_var spSketch(spSketchFactory->CreateSketch(origin,x_dir,y_dir));
( p' o' i2 C! s3 fif ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);
2 [# ^9 P! ]0 MspSketch->OpenEdition();
+ q0 G7 E/ `' I6 H( @) h到这里,你已经创建了一个Sketch,你可以在上面创建任意的草图了。
# ~2 ], v$ V( Z- y% C  |7 A! \/ i5 C创建好记住要将其关闭:
2 w3 h, M2 o9 G/ A3 ]+ S3 y; \: Y! AspSketch->CloseEdition();
8 G/ ?. h) b2 s! l$ b7 `5 n6 y2 p8 S+ ?3 J$ p! l0 z" A
8 s- ]1 ]. ?9 i/ R( Z: Z& ~
上海点团信息科技有限公司,承接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二次开发如何实现呀
5 C4 E8 O" B" c, f
6 L) L4 B* Y* U! D9 X/ Z' _# L( A0 N& h; y6 m0 [
我的第一个程序运行成功了,但是显示不正常
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了