[原创视频] PLM之家-NX9.0 二次开发实例视频31 NXOpen C++创建草图基本特征

2014-4-14 09:48:42 24583 185

  [复制链接]
admin 发表于 2014-2-19 20:30:21 | 显示全部楼层 |阅读模式

admin 楼主

2014-2-19 20:30:21

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

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

x
PLM之家-NX9.0 二次开发实例视频31 NXOpen C++创建基本特征 <1>-草图的创建
内容:

草图作为参数化建模的基础,使用代码实现草图的创建过程,主要是对草图环境的初始化,以及草图约束的添加等问题。
目的:

在NX中,使用NXOpen C++可以很方便的进行JA的录制,从而发掘草图约束中尺寸约束和几何约束的规律,通过这种方式,可以快速的完成开发。

NXOpen C++创建草图基本特征

NXOpen C++创建草图基本特征

31 NXOpen C++创建基本特征-草图的创建(1)项目介绍
31 NXOpen C++创建基本特征-草图的创建(2)UI设计
31 NXOpen C++创建基本特征-草图的创建(3)项目创建
31 NXOpen C++创建基本特征-草图的创建(4)草图特征创建
31 NXOpen C++创建基本特征-草图的创建(5)添加几何到草图
31 NXOpen C++创建基本特征-草图的创建(6)添加草图几何约束
31 NXOpen C++创建基本特征-草图的创建(7)添加草图尺寸约束
31 NXOpen C++创建基本特征-草图的创建(8)尺寸和UI关联





关键代码分享:



  1. void lesson31_createSkeTCh::createIPSketch()
  2. {

  3.         Sketch *nullSketch(NULL);
  4.     SketchInPlaceBuilder *sketchInPlaceBuilder1;
  5.         sketchInPlaceBuilder1 = workPart->Sketches()->CreateNewSketchInPlaceBuilder(nullSketch);
  6.         sketchInPlaceBuilder1->SetPlaneOption(Sketch::PlaneOptionNewPlane);

  7.         //sketchInPlaceBuilder1->Plane()->SetMethod(PlaneTypes::MethodTypeFixedZ);


  8.         // add preference

  9.         theSession->Preferences()->Sketch()->SetContinuousAutoDimensioning(false);

  10.         Drafting::PreferencesBuilder *preferencesBuilder1;
  11.     preferencesBuilder1 = workPart->SettingsManager()->CreatePreferencesBuilder();
  12.         preferencesBuilder1->AnnotationStyle()->DimensionStyle()->SetAngularDimensionValuePrecision(3);
  13.         preferencesBuilder1->AnnotationStyle()->DimensionStyle()->SetDimensionValuePrecision(3);
  14.         preferencesBuilder1->Commit();

  15.         preferencesBuilder1->Destroy();


  16.         NXObject *nXObject1;
  17.         nXObject1 = sketchInPlaceBuilder1->Commit();

  18.         Sketch *sketch1(dynamic_cast<Sketch *>(nXObject1));
  19.     Features::Feature *feature1;
  20.     feature1 = sketch1->Feature();
  21.         feature1->SetName("XY-Plane-Sketch");
  22.         
  23.         sketchInPlaceBuilder1->Destroy();

  24.         //1  active sketch

  25.         sketch1->Activate(Sketch::ViewReorientFalse);
  26.         
  27.          double height1 = this->expressionHeight1->GetProperties()->GetDouble("Value");
  28.          double height2 = this->expressionHeight2->GetProperties()->GetDouble("Value");
  29.          double length = this->expressionLength->GetProperties()->GetDouble("Value");
  30.         // 2.1  create geometry

  31.         Point3d startPoint1(0.0, 0.0, 0.0);
  32.     Point3d endPoint1(0, height1, 0.0);
  33.     Point3d endPoint2(length, height1, 0.0);
  34.         Point3d endPoint3(length, height1-height2, 0.0);
  35.         Point3d origin = sketch1->Origin();
  36.         Point *originPoint = workPart->Points()->CreatePoint(origin);

  37.         Line *line1,*line2,*line3,*line4;
  38.         line1 = workPart->Curves()->CreateLine(startPoint1, endPoint1);
  39.         line2 = workPart->Curves()->CreateLine(endPoint1, endPoint2);
  40.         line3 = workPart->Curves()->CreateLine(endPoint2, endPoint3);
  41.         line4 = workPart->Curves()->CreateLine(endPoint3, startPoint1);
  42.         // 2.2 add geometry

  43.         sketch1->AddGeometry(line1,Sketch::InferConstraintsOptionInferCoincidentConstraints);
  44.         sketch1->AddGeometry(line2,Sketch::InferConstraintsOptionInferCoincidentConstraints);
  45.         sketch1->AddGeometry(line3,Sketch::InferConstraintsOptionInferCoincidentConstraints);
  46.         sketch1->AddGeometry(line4,Sketch::InferConstraintsOptionInferCoincidentConstraints);

  47.         //3  add constraints ( gemo)

  48.         Sketch::ConstraintGeometry geomline1;
  49.         geomline1.Geometry = line1;
  50.         geomline1.PointType = Sketch::ConstraintPointTypeNone;
  51.         geomline1.SplineDefiningPointIndex = 0;
  52.         sketch1->CreateVerticalConstraint(geomline1);

  53.         Sketch::ConstraintGeometry geomline2;
  54.         geomline2.Geometry = line2;
  55.         geomline2.PointType = Sketch::ConstraintPointTypeNone;
  56.         geomline2.SplineDefiningPointIndex = 0;
  57.         sketch1->CreateHorizontalConstraint(geomline2);

  58.         Sketch::ConstraintGeometry geomline3;
  59.         geomline3.Geometry = line3;
  60.         geomline3.PointType = Sketch::ConstraintPointTypeNone;
  61.         geomline3.SplineDefiningPointIndex = 0;
  62.         sketch1->CreateVerticalConstraint(geomline3);

  63.         Sketch::ConstraintGeometry geomline1_startPoint;
  64.         geomline1_startPoint.Geometry = line1;
  65.         geomline1_startPoint.PointType = Sketch::ConstraintPointTypeStartVertex;
  66.         geomline1.SplineDefiningPointIndex = 0;
  67.         Sketch::ConstraintGeometry geomline2_originPoint;
  68.         geomline2_originPoint.Geometry = originPoint;
  69.         geomline2_originPoint.PointType = Sketch::ConstraintPointTypeNone;
  70.         geomline2_originPoint.SplineDefiningPointIndex = 0;
  71.         sketch1->CreateCoincidentConstraint(geomline1_startPoint,geomline2_originPoint);

  72.         //4  add constraints (dimension)

  73.          NXObject *nullNXObject(NULL);


  74.          stringstream s_height1,s_height2,s_length;
  75.          s_height1 <<height1;
  76.          s_height2 <<height2;
  77.          s_length <<length;

  78.          Expression *expression1,*expression2,*expression3;
  79.          expression1 = workPart->Expressions()->CreateSystemExpression(s_height1.str());
  80.     expression2 = workPart->Expressions()->CreateSystemExpression(s_length.str());
  81.         expression3 = workPart->Expressions()->CreateSystemExpression(s_height2.str());

  82.         // line1 dimension

  83.         Sketch::DimensionGeometry dimLine1_startPoint;
  84.     dimLine1_startPoint.Geometry = line1;
  85.     dimLine1_startPoint.AssocType = Sketch::AssocTypeStartPoint;
  86.     dimLine1_startPoint.AssocValue = 0;
  87.     dimLine1_startPoint.HelpPoint.X = 0.0;
  88.     dimLine1_startPoint.HelpPoint.Y = 0.0;
  89.     dimLine1_startPoint.HelpPoint.Z = 0.0;
  90.     dimLine1_startPoint.View = nullNXObject;

  91.     Sketch::DimensionGeometry dimLine1_endPoint;
  92.     dimLine1_endPoint.Geometry = line1;
  93.     dimLine1_endPoint.AssocType = Sketch::AssocTypeEndPoint;
  94.     dimLine1_endPoint.AssocValue = 0;
  95.     dimLine1_endPoint.HelpPoint.X = 0.0;
  96.     dimLine1_endPoint.HelpPoint.Y = 0.0;
  97.     dimLine1_endPoint.HelpPoint.Z = 0.0;
  98.     dimLine1_endPoint.View = nullNXObject;

  99.         Point3d dimOrigin1(-100, height1/2, 0.0);

  100.         sketch1->CreateDimension(Sketch::ConstraintTypeParallelDim, dimLine1_startPoint, dimLine1_endPoint, dimOrigin1, expression1, Sketch::DimensionOptionCreateAsDriving);


  101.         
  102.         // line2 dimension

  103.         Sketch::DimensionGeometry dimLine2_startPoint;
  104.     dimLine2_startPoint.Geometry = line2;
  105.     dimLine2_startPoint.AssocType = Sketch::AssocTypeStartPoint;
  106.     dimLine2_startPoint.AssocValue = 0;
  107.     dimLine2_startPoint.HelpPoint.X = 0.0;
  108.     dimLine2_startPoint.HelpPoint.Y = 0.0;
  109.     dimLine2_startPoint.HelpPoint.Z = 0.0;
  110.     dimLine2_startPoint.View = nullNXObject;

  111.     Sketch::DimensionGeometry dimLine2_endPoint;
  112.     dimLine2_endPoint.Geometry = line2;
  113.     dimLine2_endPoint.AssocType = Sketch::AssocTypeEndPoint;
  114.     dimLine2_endPoint.AssocValue = 0;
  115.     dimLine2_endPoint.HelpPoint.X = 0.0;
  116.     dimLine2_endPoint.HelpPoint.Y = 0.0;
  117.     dimLine2_endPoint.HelpPoint.Z = 0.0;
  118.     dimLine2_endPoint.View = nullNXObject;

  119.         Point3d dimOrigin2(length /2,100 + height1, 0.0);

  120.         sketch1->CreateDimension(Sketch::ConstraintTypeParallelDim, dimLine2_startPoint, dimLine2_endPoint, dimOrigin2, expression2, Sketch::DimensionOptionCreateAsDriving);


  121.                
  122.         // line3 dimension

  123.         Sketch::DimensionGeometry dimLine3_startPoint;
  124.     dimLine3_startPoint.Geometry = line3;
  125.     dimLine3_startPoint.AssocType = Sketch::AssocTypeStartPoint;
  126.     dimLine3_startPoint.AssocValue = 0;
  127.     dimLine3_startPoint.HelpPoint.X = 0.0;
  128.     dimLine3_startPoint.HelpPoint.Y = 0.0;
  129.     dimLine3_startPoint.HelpPoint.Z = 0.0;
  130.     dimLine3_startPoint.View = nullNXObject;

  131.     Sketch::DimensionGeometry dimLine3_endPoint;
  132.     dimLine3_endPoint.Geometry = line3;
  133.     dimLine3_endPoint.AssocType = Sketch::AssocTypeEndPoint;
  134.     dimLine3_endPoint.AssocValue = 0;
  135.     dimLine3_endPoint.HelpPoint.X = 0.0;
  136.     dimLine3_endPoint.HelpPoint.Y = 0.0;
  137.     dimLine3_endPoint.HelpPoint.Z = 0.0;
  138.     dimLine3_endPoint.View = nullNXObject;

  139.         Point3d dimOrigin3( 100 + length, height1-height2+ height2 /2 , 0.0);
  140.          
  141.         sketch1->CreateDimension(Sketch::ConstraintTypeParallelDim, dimLine3_startPoint, dimLine3_endPoint, dimOrigin3, expression3, Sketch::DimensionOptionCreateAsDriving);



  142.         //5 update & deactive
  143.         sketch1->Update();

  144.         sketch1->Deactivate(Sketch::ViewReorientFalse,Sketch::UpdateLevelModel);

  145.         delete expression1;
  146.         delete expression2;
  147.         delete expression3;
  148.         
  149. }
复制代码




上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

 楼主| admin 发表于 2014-2-19 20:30:29 | 显示全部楼层

admin 来自 2#

2014-2-19 20:30:29

PLM之家NX9.0二次开发视频教程 31 NXOpen C++草图的创建(1)项目介绍 [flash] [/flash] PLM之家NX9.0二次开发视频教程 31 NXOpen C++草图的创建(2)对话框UI设计 [flash] [/flash] PLM之家NX9.0二次开发视频教程 31 NXOpen C++草图的创建(3)项目创建 [flash] [/flash] PLM之家NX9.0二次开发视频教程 31 NXOpen C++草图的创建(4)草图特征创建 [flash] [/flash] PLM之家NX9.0二次开发视频教程 31 NXOpen C++草图的创建(5)添加几何到草图 [flash] [/flash] PLM之家NX9.0二次开发视频教程 31 NXOpen C++草图的创建(6)添加草图几何约束 [flash] [/flash]
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 2 反对 0

使用道具 举报

 楼主| admin 发表于 2017-10-18 20:07:01 | 显示全部楼层

admin 来自 4#

2017-10-18 20:07:01



PLM之家NX9.0二次开发视频教程 31 NXOpen C++草图的创建(7)添加草图尺寸约束

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

使用道具 举报

 楼主| admin 发表于 2017-10-18 20:08:07 | 显示全部楼层

admin 来自 5#

2017-10-18 20:08:07


PLM之家-NX9.0二次开发实例31 NXOpen C++草图的创建(8)尺寸和UI关联

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

使用道具 举报

guojie123 发表于 2014-2-20 09:37:02 | 显示全部楼层

guojie123 6#

2014-2-20 09:37:02

支持,不过今天没视频啊
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

smthan 发表于 2014-2-26 08:55:50 | 显示全部楼层

smthan 7#

2014-2-26 08:55:50

老大,您的教程很给力哟,什么时候才能膜拜呢??
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

加持 发表于 2014-2-27 10:55:13 | 显示全部楼层

加持 8#

2014-2-27 10:55:13

视频呢,我在等啊
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

 楼主| admin 发表于 2014-3-30 21:32:04 | 显示全部楼层

admin 9#

2014-3-30 21:32:04

这部分先更新到这里
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

45guop 发表于 2014-4-3 21:57:53 | 显示全部楼层

45guop 10#

2014-4-3 21:57:53


学习一下谢谢
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

璀璨の樱之雨 发表于 2014-4-11 10:07:00 | 显示全部楼层

璀璨の樱之雨 12#

2014-4-11 10:07:00

想要看看啊
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

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

返回列表 本版积分规则

用户组 : 管理员
邮   箱 :xduniverse@qq.com
手   机 :VIP用户可查看[申请]
Q   Q : 点击这里给我发消息
性别 : 就不告诉你
主页 :http://www.plmhome.com
个人介绍 :原西门子NX高级教务员,10多年NX培训,开发咨询,Teamcenter培训实施等

主题2127

帖子3335

积分62978

  • Tecnomatix 二次开发

    Tecnomatix 二次开发入门教程 6 实现打开PLM之家

  • Tecnomatix 二次开发

    Tecnomatix 二次开发入门教程 3 第一个hello plm

  • NX二次开发--一个好用

    NX二次开发--一个好用的树列表调换次序功能-很赞

  • NX12.0.1 mp02 焊接新

    NX12.0.1 mp02 焊接新增强功能 简易焊接 Easy Sp

  • 使用Block Styler 创

    使用Block Styler 创建对话框 和 MFC 的创建对话

  • 发布新帖
  • 在线客服1
  • 在线客服2
  • 微信
  • 客户端
  • 返回顶部
  • NX讨论
    Catia
    TC讨论
    Tecno
    云课堂
    业务合作
    快速回复 返回顶部 返回列表