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

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

admin 楼主

2017-12-22 13:44:56

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

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

x
CATIA二次开发入门教程---20 创建草图
9 p2 g+ F, Y" P" S7 ]
5 S7 p! m2 j( W$ j! p" O( f3 l( Z+ n' t# `' p, y5 A0 a
[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory
( N) G' x5 t* q4 o3 A4 h        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();0 l1 I1 b8 i& s& G5 e- _/ y' C
        CATDocument *pDoc = pEditor->GetDocument();" z: O1 z& W. c0 Y+ g) Y; K" |6 a' u
        CATIContainerOfDocument_var spConODocs = pDoc;5 R, d2 g3 [& D

# g, H. d  j) I( n4 S9 I        CATIContainer*            pContainer;                //Container6 K+ @8 p; G* Y( I* {9 ~$ {% u) X
        CATIPrtContainer*     pPrtContainer;//PartContainer& j) }% q' L9 F: s* T, S
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂
2 I* B0 l( F0 Z0 l4 H
. p: i4 z- d/ H- ]6 j5 c9 {        CATIPrtPart_var        spPrt   ;//
* A. p* T' o) F, f/ b" ~; l        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container( U: n% U3 Y' x9 P

* s8 S* u/ d# b4 `6 K        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer
+ o- Q5 G8 }: s+ u7 O9 q$ G9 @        spPrt = pPrtContainer->GetPart();
( O. E$ |- N/ @  ~8 Q        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面$ J. _+ M, H- q( l! K3 D5 K
. y) p( u* E# b4 c: c5 r
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面8 Y0 D; [% r9 t, s
        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂. c3 S- u4 a+ Z8 t% f! m  y
        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
# I8 V( Z2 i- c0 j: l1 _        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);* w6 G3 w0 _+ w
, l& m$ N" N- v
        spSketch->OpenEdition();        //进入草图开始绘图* Q$ A+ g$ c/ T& i8 A% l; A
      
2 E& D. @6 {/ u5 L' e        spSketch->CloseEdition();//退出草图环境
7 t" \: i7 F: O/ k
$ \$ D+ i0 Z$ p7 }2 n      
. a$ i# Q& y( f6 I6 X. j[/mw_shl_code]( `( J) i: N3 u3 O( B$ 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

有两种方式可以创建草图:  C/ @: A8 w; x6 S5 E/ ^
1)通过参考平面创建
6 {( H$ P: s; e& f/ Z首先获取一个CATIPrtPart变量:8 S8 W' n: B1 {, e( L
CATIPrtPart_var spPart(pIPrtContOnDocument->GetPart());" t% z1 n9 d3 k1 R7 G; z
pIPrtContOnDocument->Release();8 d0 u7 z6 p' g  k
有了CATIPrtPart变量就可以利用其方法GetReferencePlanes(),获取参考平面) H4 w# Z, x" `( k: h  [
CATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();2 t/ c& Y. O2 U- ?
然后创建XY plane (spRefPlanes[1])
5 T$ O8 w/ Y$ Q, H7 a% s0 N. s7 LCATISketchFactory_var spSketchFactory(pSpecContainer);5 o, g# l% @, v
if ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);) ], U" @# f, B1 ^: c' O
CATISketch_var spSketch(spSketchFactory->CreateSketch(spRefPlanes[1]));5 I* s8 i' d* E# s( \  _" A4 B
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);9 H! y* U. G7 h9 d& f4 H
spSketch->OpenEdition();
, d* A$ B( \3 S9 u/ K2) 通过原点和两个矢量方向: _% G8 T, }/ ~9 q; m
该方法是通过定义一个原点和两个方向pH、pV  进行创建。
! e: q3 _* F' h$ e) {; Z定义原点和方向:3 N! B, {( \4 `7 C* m: ]
double origin[3]={0.0,0.0,10.0};/ Y0 t% L4 i- E) O7 i+ E
double x_dir[3]={1.0,0.0,0.0};+ i+ I9 S& _: G) J
double y_dir[3]={0.0,1.0,0.0};- G; F2 `" Y: D8 @( m# g+ H& q
CATISketchFactory_var spSketchFactory(pSpecContainer);
3 p% y5 N) I8 ]6 d' xif ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);
( q/ M: m8 \) v! R- V" ECATISketch_var spSketch(spSketchFactory->CreateSketch(origin,x_dir,y_dir));4 _, z. K8 A3 p1 ~) J* r! r, G; Y
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);; _8 c0 z, Z; b/ X" Y
spSketch->OpenEdition();4 g  N. ]# [; M0 ?% B/ B) Q7 t+ I
到这里,你已经创建了一个Sketch,你可以在上面创建任意的草图了。! X. R( `8 v% k' A8 a: E: Q0 _
创建好记住要将其关闭:/ [7 G# O5 h5 I. ^* y2 l1 }0 N
spSketch->CloseEdition();0 |1 h) ~/ N9 U7 B, C* E# _9 Q
% t) ~- T( M$ Q) p% j/ x* \1 {

9 S6 Q, x3 ^! j5 U
上海点团信息科技有限公司,承接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二次开发如何实现呀! |% n( B5 H3 V7 I  J6 F& G
- E& z) S* S' V5 @% \( N
9 j8 X! _+ _# }" s1 ?# U7 f
我的第一个程序运行成功了,但是显示不正常
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了