QQ登录

只需一步,快速开始

快捷登录

登录 或者 注册 请先

UG爱好者

查看: 32972|回复: 274
打印 上一主题 下一主题

[原创] 利用NXOpen C++方式创建智能点的方法!

  [复制链接]

贵宾

Rank: 9Rank: 9Rank: 9

14

主题

270

帖子

8361

积分

论坛技术员论坛贡献

跳转到指定楼层
楼主
发表于 2016-9-1 09:49:54 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在NX二次开发里面,有一种对象,在部件导航器上,它没有特征,
但它仍然可以与其它对象,有父子关系;
比如:我创建了一条非参的直线,然后再在这条直线的中点位置,创建一个点。
当非参直线被移动了,这个点,也要跟着动,仅这个点在部件导航器上没有特征。
这就是智能对象,在二次开发的时候,应用很广。

源代码如下:
  1. //创建非参直线
  2. NXOpen::Point3d startPoint1(10.0, 10.0, 3.0);
  3. NXOpen::Point3d endPoint1(50.0,40.0,20.0);
  4. NXOpen::Line *line1;
  5. line1 = workPart->Curves()->CreateLine(startPoint1, endPoint1);

  6.        
  7. //创建标量
  8. NXOpen::Scalar  *scalarT;       
  9. scalarT = workPart->Scalars()->CreateScalar( 50.0, Scalar::DimensionalityTypeNone, SmartObject::UpdateOptionWithinModeling );

  10. //创建智能点(过直线的中点)
  11. NXOpen::Point *sopint = workPart->Points()->CreatePoint( line1, scalarT, PointCollection::PointOnCurveLocationOptionPercentParameter, SmartObject::UpdateOptionWithinModeling );
  12. sopint->SetVisibility( NXOpen::SmartObject::VisibilityOptionVisible );

  13. //设置点为红色
  14. NXOpen::DisplayModification *displayModification1;
  15. displayModification1 = theSession->DisplayManager()->NewDisplayModification();   
  16. displayModification1->SetNewColor(186);

  17. std::vector<NXOpen::DisplayableObject *> objects1(1);
  18. objects1[0] = sopint;
  19. displayModification1->Apply(objects1);   
  20. delete displayModification1;
复制代码

版权声明  
本人声明此帖为本人原创帖,未经允许,不得转载!

有奖推广贴子: 

回复

使用道具 举报

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

本版积分规则

 
 
QQ:1359218528
工作时间:
9:00-17:00
 
微信公众号
手机APP
机械社区
微信小程序

手机版|UG爱好者论坛 ( 京ICP备10217105号-2 )    论坛管理员QQ:1359218528

本站信息均由会员发表,不代表本网站立场,如侵犯了您的权利请联系管理员,邮箱:1359218528@qq.com  

Powered by UG爱好者 X3.2  © 2001-2014 Comsenz Inc. GMT+8, 2024-6-8 06:47

返回顶部