PLM之家 UG NX10.0二次开发(ufun和NXOpen C++)网络培训火热报名

PLM之家-上海点团信息科技有限公司工业4.0数字化软件官方知识管理平台

查看: 17284|回复: 185

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

  [复制链接]
  • TA的每日心情

    5 天前
  • 签到天数: 77 天

    [LV.6]常住居民II

    1834

    主题

    3494

    帖子

    5万

    积分

    管理员

    PLM之家mildcat

    Rank: 9Rank: 9Rank: 9

    积分
    56717
    发表于 2014-2-19 20:30:21 | 显示全部楼层 |阅读模式
    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. }
    复制代码




    PLM之家,专业的NX,Teamcenter学习视频网。PLM之家科技,承接二次开发,视频定制,实施培训等业务。www.plmhome.com; && www.plmhome.net-->-->点团信息科技-->-->欢迎联系我们--QQ 939801026
    回复

    使用道具 举报

  • TA的每日心情

    5 天前
  • 签到天数: 77 天

    [LV.6]常住居民II

    1834

    主题

    3494

    帖子

    5万

    积分

    管理员

    PLM之家mildcat

    Rank: 9Rank: 9Rank: 9

    积分
    56717
     楼主| 发表于 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]
    PLM之家,专业的NX,Teamcenter学习视频网。PLM之家科技,承接二次开发,视频定制,实施培训等业务。www.plmhome.com; && www.plmhome.net-->-->点团信息科技-->-->欢迎联系我们--QQ 939801026
    回复 支持 2 反对 0

    使用道具 举报

  • TA的每日心情

    5 天前
  • 签到天数: 77 天

    [LV.6]常住居民II

    1834

    主题

    3494

    帖子

    5万

    积分

    管理员

    PLM之家mildcat

    Rank: 9Rank: 9Rank: 9

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



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

    PLM之家,专业的NX,Teamcenter学习视频网。PLM之家科技,承接二次开发,视频定制,实施培训等业务。www.plmhome.com; && www.plmhome.net-->-->点团信息科技-->-->欢迎联系我们--QQ 939801026
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    5 天前
  • 签到天数: 77 天

    [LV.6]常住居民II

    1834

    主题

    3494

    帖子

    5万

    积分

    管理员

    PLM之家mildcat

    Rank: 9Rank: 9Rank: 9

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


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

    PLM之家,专业的NX,Teamcenter学习视频网。PLM之家科技,承接二次开发,视频定制,实施培训等业务。www.plmhome.com; && www.plmhome.net-->-->点团信息科技-->-->欢迎联系我们--QQ 939801026
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    23

    帖子

    98

    积分

    注册会员

    Rank: 2

    积分
    98
    发表于 2014-2-20 09:37:02 | 显示全部楼层
    支持,不过今天没视频啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    111

    帖子

    606

    积分

    高级会员

    Rank: 4

    积分
    606
    发表于 2014-2-26 08:55:50 | 显示全部楼层
    老大,您的教程很给力哟,什么时候才能膜拜呢??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    57

    帖子

    231

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    231
    发表于 2014-2-27 10:55:13 | 显示全部楼层
    视频呢,我在等啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    5 天前
  • 签到天数: 77 天

    [LV.6]常住居民II

    1834

    主题

    3494

    帖子

    5万

    积分

    管理员

    PLM之家mildcat

    Rank: 9Rank: 9Rank: 9

    积分
    56717
     楼主| 发表于 2014-3-30 21:32:04 | 显示全部楼层
    这部分先更新到这里
    PLM之家,专业的NX,Teamcenter学习视频网。PLM之家科技,承接二次开发,视频定制,实施培训等业务。www.plmhome.com; && www.plmhome.net-->-->点团信息科技-->-->欢迎联系我们--QQ 939801026
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    103

    帖子

    456

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    456
    发表于 2014-4-3 21:57:53 | 显示全部楼层

    学习一下谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    85

    帖子

    309

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    309
    发表于 2014-4-11 10:07:00 | 显示全部楼层
    想要看看啊
    回复 支持 反对

    使用道具 举报

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

    本版积分规则



    <

    QQ|小黑屋|手机版|Archiver|PLM之家-工业4.0数字化驱动之家 ( 沪ICP备13003373-3

    GMT+8, 2017-12-11 08:42 , Processed in 0.155453 second(s), 36 queries .

    Powered by PLM之家科技! X3.2

    © 2001-2013 PLMHome Inc.

    快速回复 返回顶部 返回列表