点击查看详细介绍

[UFUN函数] 获取产品曲面上多个点对应的面的垂直矢量!(附源码) 精华帖

王牌飞行员 VIP会员 6年前 5811 55

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


说明:

选择一个产品面,选择面上的点,生成点在此面上的法线反向。

生成直线

生成矢量的起点坐标,和矢量方向信息。可用于三坐标测量,如果需要可以自己编个插件用!


效果图:

效果.gif


源码:

//------------------------------------------------------------------------------  
   //Callback Name: update_cb  
   //------------------------------------------------------------------------------  
  
  
   int Test003::update_cb(NXOpen::BlockStyler::UIBlock* block)  
   {  
    static tag_t face_tag = 0;  
    char msg[132] = "";  
       try  
       {  
           if(block == face_select0)  
           {  
           //---------Enter your code here-----------  
            std::vector<TaggedObject*>objects = face_select0->GetSelectedObjects(); //选面,得到的TAG赋给objects  
            face_tag = objects[0]->Tag();//将C++的TAG转换成C的TAG  
           }  
        else if (block == point0)  
        {  
            //---------Enter your code here-----------  
            double ref_pnt[3] = { 0,0,0 }; //输入一个点  
            Point3d originPt = this->point0->GetProperties()->GetPoint("Point");  
            ref_pnt[0] = originPt.X;  
            ref_pnt[1] = originPt.Y;  
            ref_pnt[2] = originPt.Z;  
              
            double parm1[2];            
            double face_pnt[3] = { 0,0,0 };        
            UF_MODL_ask_face_parm(face_tag, ref_pnt, parm1, face_pnt); //分析点在面上U,V方向的位置  
              
            double point[3];     
            double u1[3];        
            double v1[3];        
            double u2[3];       
            double v2[3];        
            double unit_norm[3] = { 0.0, 0.0, 0.0 }; 
            double radii[2];     
            UF_MODL_ask_face_props(face_tag, parm1, point, u1, v1, u2, v2, unit_norm, radii);

●●●请先 登陆注册 后查看●●●

            line_coords.end_point[0] = ref_pnt[0] + unit_norm[0];  
            line_coords.end_point[1] = ref_pnt[1] + unit_norm[1];  
            line_coords.end_point[2] = ref_pnt[2] + unit_norm[2];  
            UF_CURVE_create_line(&line_coords, &line);  
        }  
    }  
       catch(exception& ex)  
       {  
           //---- Enter your exception handling code here -----  
           Test003::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());  
       }  
       return 0;  
   }


5

最新回复 (55)
  • king_chinese VIP会员 6年前
    1

    谢谢分享!!!!

  • tianmu1972 VIP会员 6年前
    2

    学习学习 谢谢分享

  • 小妹酱 6年前
    3

    来学习了,谢谢分享

  • 然数年 6年前
    4

    学习一下,谢谢分享

  • xudongsong 6年前
    5

    来学习了,谢谢分享

  • wujiang11198 6年前
    6

    学习 学习 感谢分享

  • 狙击兴 VIP会员 6年前
    7

    感谢楼主分享,多向楼主学习!楼主最棒!

  • xb39004101 6年前
    8

    来学习来学习 感谢分享

  • tianlong556 6年前
    9

    学习 学习 非常 感谢

  • zwk76204989 6年前
    10

    谢谢分享!!!!

  • gaomigaojun VIP会员 6年前
    11

    xiexie 666666

  • Zhaoyw 5年前
    12

    刚开始学习,谢谢分享!

  • boyue 5年前
    13

    学习学习 谢谢分享

  • 桃花一笑 5年前
    14

    好资料,慢慢看,感谢分享

  • hedg VIP会员 5年前
    15

    学习学习 谢谢分享

请登录后发表新帖