NX11+VS2013

     #include <NXOpen/Line.hxx>
#include <NXOpen/NXException.hxx>
#include <NXOpen/PartCollection.hxx>
#include <NXOpen/Session.hxx>
#include <uf.h>
#include <uf_curve.h>
#include <uf_ui.h>
#include <NXOpen/Edge.hxx>
#include <NXOpen/NXObjectManager.hxx>
#include <uf_eval.h> NXOpen::Session *theSession = NXOpen::Session::GetSession();
NXOpen::Part *workPart(theSession->Parts()->Work());
NXOpen::Part *displayPart(theSession->Parts()->Display()); UF_initialize(); //创建一条直线
UF_CURVE_line_t Line_Coords;
Line_Coords.start_point[] = 10.0;
Line_Coords.start_point[] = 0.0;
Line_Coords.start_point[] = 0.0;
Line_Coords.end_point[] = 100.0;
Line_Coords.end_point[] = 0.0;
Line_Coords.end_point[] = 0.0;
tag_t LineTag = NULL_TAG;
UF_CURVE_create_line(&Line_Coords, &LineTag); //方法1:UFUN方法
//获得一条直线两个端点坐标、直线长度、向量方向 //函数1(UF_CURVE_ask_line_data)
UF_CURVE_line_t AskLinePoint;
UF_CURVE_ask_line_data(LineTag, &AskLinePoint);
double UF1LinePoint1[] = { AskLinePoint.start_point[], AskLinePoint.start_point[], AskLinePoint.start_point[] };//获得直线起点坐标
double UF1LinePoint2[] = { AskLinePoint.end_point[], AskLinePoint.end_point[], AskLinePoint.end_point[] };//获得直线终点坐标 //函数2(UF_EVAL_ask_line)
UF_EVAL_p_t evaluator;
UF_EVAL_initialize(LineTag, &evaluator); UF_EVAL_line_t line;
UF_EVAL_ask_line(evaluator, &line);
double UFLineLength = line.length;//获得直线长度
double UF2LinePoint1[] = { line.start[], line.start[], line.start[] };//获得直线起点坐标
double UF2LinePoint2[] = { line.end[], line.end[], line.end[] };//获得直线终点坐标
double UFLineVec[] = { line.unit[], line.unit[], line.unit[] };//获得直线向量方向 char msg[];
sprintf_s(msg, "直线的长度为:%.3f\n直线的起点坐标X为:%.3f 直线的起点坐标Y为:%.3f 直线的起点坐标Z为:%.3f\n直线的终点坐标X为%.3f 直线的终点坐标Y为:%.3f 直线的终点坐标Z为:%.3f\n直线的向量方向为:%.0f,%.0f,%.0f",
UFLineLength, UF2LinePoint1[], UF2LinePoint1[], UF2LinePoint1[], UF2LinePoint2[], UF2LinePoint2[], UF2LinePoint2[], UFLineVec[], UFLineVec[], UFLineVec[]); lw->Open();
lw->WriteLine(msg); UF_EVAL_free(evaluator); //方法2:NXOpen方法
//获得一条直线两个端点坐标、直线长度
std::vector<Line*> LineVector;
LineVector.push_back(dynamic_cast<Line*>(NXObjectManager::Get(LineTag))); for (int i = ; i < LineVector.size(); i++)
{
double NXLineLength = LineVector[i]->GetLength();//获得直线长度
Point3d NXLinePoint1 = LineVector[i]->StartPoint();//获得直线起点坐标
//char msg[200];
//sprintf_s(msg, "%.3f,%.3f,%.3f", NXLinePoint1.X, NXLinePoint1.Y, NXLinePoint1.Z);
//uc1601(msg, 1);
Point3d NXLinePoint2 = LineVector[i]->EndPoint();//获得直线终点坐标
//sprintf_s(msg, "%.3f,%.3f,%.3f", NXLinePoint2.X, NXLinePoint2.Y, NXLinePoint2.Z);
//uc1601(msg, 1);
} UF_terminate();

最新文章

  1. 死去活来,而不变质:Domain Model(领域模型) 和 EntityFramework 如何正确进行对象关系映射?
  2. Django--全文检索功能
  3. Xcopy命令参数
  4. Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置
  5. QQServer_update
  6. .NET特性-Attribute
  7. css背景图片、隐藏、指针、垂直居中、去除下划线、缩进、列表类型
  8. codeforces 755D. PolandBall and Polygon
  9. python web环境相关
  10. IIS 服务无法在此时接受控制信息
  11. laravel5.5解决小程序登陆态的问题
  12. 【译】索引进阶(六):SQL SERVER索引书签
  13. pyCharm编辑器激活使用
  14. L2-008. 最长对称子串
  15. Priority Queue
  16. 用JQuery 判断某个属性是否存在hasAttr的解决方法
  17. Eclipse_生成webservice客户端
  18. linux 系统文件的特殊权限
  19. 线程访问ui,使用委托方式
  20. 编译可移植的python

热门文章

  1. loj2573[TJOI2018]数字计算
  2. mysql 日期函数大全
  3. sql delete语句
  4. BZOJ 3159: 决战 解题报告
  5. 「ZJOI2019」线段树 解题报告
  6. 【LeetCode 27】移除元素
  7. STL————bitset
  8. windows server2012r2 安装NET Framework 3.5
  9. 记录解决java.io.IOException: Server returned HTTP response code: 500 for URL:xxxxxxxx
  10. IIS身份验证和文件操作权限(二、匿名身份验证)