查看: 4023|回复: 1

[资料] CATIA二次开发入门教程---19 创建一条线

[复制链接]

4

主题

3

回帖

44

积分

管理员

积分
44
发表于 2017-12-22 11:05:33 | 显示全部楼层 |阅读模式

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

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

×
CATIA二次开发入门教程---19 创建一条线# l. q" J' z7 N4 |# N- v
2 W3 T* [% X% z' M) X9 |: P
[mw_shl_code=c,true]
5 w' `& {, z0 E( o' A        CATFrmEditor *pEditor = CATFrmEditor::GeTCurrentEditor();
) Z1 Y- P7 H* V& [  y7 R- J% b, n        CATDocument *pDoc = pEditor->GetDocument();
* y: r: j9 j! I7 I1 U+ Y        CATIContainerOfDocument_var spConOfDoc = pDoc;( B$ s; D- ?5 h5 d1 x# s
        if (spConOfDoc == NULL_var)
4 e8 \0 x  S# @1 j7 j        {# r7 t0 J$ p+ D3 t( o8 V
                popUpNotifyDialog("No spConainer of document");% y8 f/ p3 h" m
        }$ h& |- i( A- o: c! s
        CATIContainer *pCon = NULL;6 Y4 D5 }5 T" ~* d! u' |; p  y
        HRESULT hr = spConOfDoc->GetSpecContainer(pCon);: ~" R, Z. T. f" p. h& M# g+ I
$ ]0 C. r' e6 J
        //get GSM factory
. {4 O. n  p" A  v
$ S- u% E9 Y0 }  f$ ~    CATMathPoint p1,p2;
6 ?9 w( z; r4 g7 d6 R/ e4 L        p1.SetCoord(0,0,0);7 h- o$ {% C& ]8 y% k- J  I
        p2.SetCoord(10,10,10);
7 u2 l/ Q. P( C3 p       
# I2 l5 M9 a- q$ p' `  p& C6 M8 L* I* Q* L3 e7 z" S2 B
     CATIGSMFactory_var spGSMFactory = pCon;" B" E. S7 \, h/ H! u8 F
  
6 ?  w# T+ R( p( P$ Z# R8 y* @+ r         CATIGSMPoint_var  spP1 = spGSMFactory->CreatePoint(p1,"");
+ _5 c4 c+ n! W+ s# o8 @         CATIGSMPoint_var  spP2 = spGSMFactory->CreatePoint(p2,"");
1 U* V& E5 P" P) e7 J+ D0 ^7 G6 b     
$ j7 ~1 `  g% `/ e& u' P  CATIGSMLinePtPt_var spLine =  spGSMFactory->CreateLine(spP1,spP2,NULL_var);
' Y$ r6 P: g. d
* [. D. T/ z; }9 |( L  CATISpecObject_var spSpecObject = spLine;
8 E7 x3 b. K6 ?' c! A# E9 ]  CATIGSMProceduralView_var spGSMProceduralView = spSpecObject;$ ]# w) j1 I9 t1 `
$ @: D- u% f: c1 z3 L( Q
  spGSMProceduralView->InsertInProceduralView();
* h# `+ O$ R. O1 Q8 k* U% J
- z7 b4 [7 |& l2 g$ Q  spSpecObject->Update();[/mw_shl_code]
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

4

主题

3

回帖

44

积分

管理员

积分
44
 楼主| 发表于 2017-12-22 11:06:27 | 显示全部楼层
在此基础上,创建线的步骤如下:
1)创建两个点并将其转换为CATISpecObjects。
double Coords[3];
Coords[0] = 0;
Coords[1] = 0;
Coords[2] = 0;
CATIGSMPoint_var spPoint1 = spGSMFactory->CreatePoint(Coords); CATISpecObject_var spSpecPoint1 = spPoint1;                  
Coords[0] = 8;
Coords[1] = 6;
Coords[2] = 7;
CATIGSMPoint_var spPoint2 = spGSMFactory->CreatePoint(Coords);
CATISpecObject_var spSpecPoint2 = spPoint2;
2) 利用创建的点创建一条线,并将其转换为CATISpecObject
CATISpecObject_var  spSupport = NULL_var;
CATIGSMLinePtPt_var spLine1 = spGSMFactory->CreateLine(spSpecPoint1, spSpecPoint2, spSupport);
CATISpecObject_var spSpecLine1 = spLine1;
3) 更新创建的线,并将其添加到视图中。
spSpecLine1->Update();
CATIGSMProceduralView_var spCurObj = spLine1;
spCurObj->InsertInProceduralView();

' W2 ?: h/ v, A4 J# g1 f4 q
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部