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

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

admin 楼主

2017-12-22 13:44:56

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

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

x
CATIA二次开发入门教程---20 创建草图
3 i9 n# A; E: m% C
2 U* Y# [+ l1 \& n/ P* }
& \% R* u7 Z8 U9 I1 m[mw_shl_code=c,true]////////获得Editor、Document、Container、设置GSMFactory' @7 l8 {* ^& s& @+ g
        CATFrmEditor* pEditor = CATFrmEditor::GeTCurrentEditor();
8 \9 c# ^* x, a" }: X+ I7 |! H* X        CATDocument *pDoc = pEditor->GetDocument();# y1 P& T" X0 g. d
        CATIContainerOfDocument_var spConODocs = pDoc;
5 C" o/ e" K+ {5 q: n# S  V% X0 m4 }  H
        CATIContainer*            pContainer;                //Container8 d7 L4 g' R! J  Z
        CATIPrtContainer*     pPrtContainer;//PartContainer* h* v/ ^0 ]( w' A1 Y" I% q
        CATIGSMFactory_var        spGSMFactory;                //GSM工厂+ f& h5 S$ m/ r

+ ~3 h! @$ e. Q        CATIPrtPart_var        spPrt   ;//
7 {. S, r5 \! W+ ~) I4 g2 S" D        HRESULT hr = spConODocs->GetSpecContainer(pContainer);//获取Container
0 N1 Y- g' m: ^4 f/ v; f( @% \* J/ S3 m+ ]! |
        hr =pContainer->QueryInterface(IID_CATIPrtContainer,(void **)&pPrtContainer);//获取PrtContainer& a9 ~$ f4 {, x3 F1 u
        spPrt = pPrtContainer->GetPart();1 p+ ]9 v8 u' }9 W
        CATListValCATISpecObject_var spListRefPlanes = spPrt->GetReferencePlanes();//获取3个参考平面/ f' a. ^+ I# M# l( K1 W
& U7 y# T% K! [, H" J" ]
        CATISpecObject_var spSketchPlane = spListRefPlanes[3];//第三个平面
/ F2 V2 p6 `* f( ~$ I9 V        CATISketchFactory_var spSketchFactOnPrtCont(pPrtContainer);//草图工厂
* b2 _9 e+ B2 U# b        CATISketch_var spSketch = spSketchFactOnPrtCont->CreateSketch( spSketchPlane );        //创建草图
' d0 J# V" T  V        CATI2DWFFactory_var spWF2DFactOnSketch(spSketch);8 _3 y5 E' M; O/ F

& n* V" V6 v8 o, E! y  z        spSketch->OpenEdition();        //进入草图开始绘图& N8 Q( x; e( Z1 Y' f
      0 j3 B6 @; C  j
        spSketch->CloseEdition();//退出草图环境9 }: N/ X* c0 @
% f. i" T- C2 ?9 w
      & l5 o+ B5 y( e0 T0 \% g' U1 |
[/mw_shl_code]( C7 @" |( n% g; `  o
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 g3 t  |9 x. [
1)通过参考平面创建
% Z- y& E9 k3 E  t3 |! P) @首先获取一个CATIPrtPart变量:
, J4 k3 D2 E+ O. y) kCATIPrtPart_var spPart(pIPrtContOnDocument->GetPart());! ^  V8 B3 q6 v* G9 h# \/ v+ j6 b
pIPrtContOnDocument->Release();
+ @6 u" C' n- b- j- g- d有了CATIPrtPart变量就可以利用其方法GetReferencePlanes(),获取参考平面
8 O7 a. A- \; hCATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
4 G$ J2 F% b$ S+ I然后创建XY plane (spRefPlanes[1])" c& `4 x2 |7 Q0 K, t2 B& V
CATISketchFactory_var spSketchFactory(pSpecContainer);
+ n* T. _8 ~2 J# aif ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);7 L$ S" e8 F) ]5 n4 [/ z
CATISketch_var spSketch(spSketchFactory->CreateSketch(spRefPlanes[1]));" d, [% N$ X* i! h& j
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);/ b- Z) i3 ?; m, G& `' p+ Q* P. r0 L
spSketch->OpenEdition();* G, q, k0 \' B- d0 F8 }7 r0 m
2) 通过原点和两个矢量方向3 \+ z* S/ o7 Z, S" F
该方法是通过定义一个原点和两个方向pH、pV  进行创建。& |3 N  r# i. j$ n
定义原点和方向:9 k" j1 r0 F; e* @; b1 Y
double origin[3]={0.0,0.0,10.0};5 x  B6 u. F9 ]5 M! N
double x_dir[3]={1.0,0.0,0.0};
" Y4 s; d; c2 ]  v3 Odouble y_dir[3]={0.0,1.0,0.0};7 r# }/ F! ?, d" m3 @% C: y
CATISketchFactory_var spSketchFactory(pSpecContainer);1 m6 s6 F: y& E( U! v- d
if ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);
" a3 D2 F  u1 j5 QCATISketch_var spSketch(spSketchFactory->CreateSketch(origin,x_dir,y_dir));1 Y9 k1 w/ ^, f3 M; S. i$ f+ Q( [
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted);6 n8 ~/ Z6 J+ g1 o. Y/ b
spSketch->OpenEdition();9 N# i) g0 ]. H0 T" Z
到这里,你已经创建了一个Sketch,你可以在上面创建任意的草图了。8 N( r& ^# d/ c5 l# ^
创建好记住要将其关闭:
% [, [; ^  [, \) wspSketch->CloseEdition();
$ |, t/ Z* I# e. c$ d) ?
0 u/ u, c4 o% E) w- T- E3 T
' k) w) V% R( |: |. A& r8 N7 T
上海点团信息科技有限公司,承接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二次开发如何实现呀4 J% l# G" \& J6 A

3 p& E- j2 j% a2 E2 A% |, w6 e# l6 u5 g
我的第一个程序运行成功了,但是显示不正常
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了