NX二次开发-直线分析函数UF_EVAL_ask_line与NXOpen::Line直线分析的用法
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();

NX二次开发-直线分析函数UF_EVAL_ask_line与NXOpen::Line直线分析的用法的更多相关文章
- NX二次开发-NX11创建表达式组NXOpen::ExpressionGroup
NX11+VS2013 #include <uf.h> #include <uf_modl.h> #include <uf_part.h> #include < ...
- NX二次开发-UDO用户自定义对象(UFUN)【持续完善】
每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看 ...
- NX二次开发-UFUN拉伸函数UF_MODL_create_extruded
NX9+VS2012 //NX二次开发中常用拉伸函数为UF_MODL_create_extruded2,但是此函数不能拉伸片体, //想要拉伸片体用函数UF_MODL_create_extruded. ...
- NX二次开发-UFUN拉伸函数UF_MODL_create_extruded2
NX9+VS2012 //NX二次开发中常用拉伸函数为UF_MODL_create_extruded2,但是此函数不能拉伸片体, //想要拉伸片体用函数UF_MODL_create_extruded. ...
- NX二次开发-UFUN发射线函数UF_MODL_trace_a_ray的用法
今天是国庆节,放假休息懒得动,没有出去玩,在家研究一下发射线函数UF_MODL_trace_a_ray.小弟以前在软件公司混的时候,当时我做的那个项目就用到了UF_MODL_trace_a_ray,当 ...
- NX二次开发-Block UI C++界面关于 在Block UI中UF_initialize();和UF_terminate();的使用
关于 在Block UI中UF_initialize();和UF_terminate();的使用 用Block UI作NX二次开发的时候,不需要在使用UFUN函数的时候加UF_initialize() ...
- NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))
NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...
- NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))
在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...
- NX二次开发-基于MFC界面对话框与NX交互的开发
打开VS2013 点击新建,选择MFC DLL 点击确定 点下一步 什么都不改,直接点完成 进来之后先编译一下,看是否编译成功 打开项目属性,更改这几处 $(UGII_BASE_DIR)\ugopen ...
随机推荐
- vue组件参数校验与非props特性
组件参数校验 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...
- vue 条件渲染v-if v-show
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Shiro学习(21)授予身份及切换身份
在一些场景中,比如某个领导因为一些原因不能进行登录网站进行一些操作,他想把他网站上的工作委托给他的秘书,但是他不想把帐号/密码告诉他秘书,只是想把工作委托给他:此时和我们可以使用Shiro的RunAs ...
- docker 网络和/etc/docker/daemon.json文件详情
/etc/docker/daemon.json(没有就创建) [root@master ~]# /etc/docker/deamon.json { "registry-mirrors&quo ...
- SSM项目启动报错:Failed to read candidate component class
SSM项目启动报错:Failed to read candidate component class 换成3.1又没有问题,换成3.2又不行,查看编译环境用的是1.8,将1.8降为1.7,问题解决,服 ...
- Gerrit(1): Manage Projects
1) Register an openid account https://login.ubuntu.com/+login 2) Custom settings set SSH pubkey set ...
- Zabbix监控搭建
目录 Zabbix概述 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 ( 基于 GPL V2 )zabbix由 2 部分构成,zabbix ...
- layui的选项卡(tab)的问题
当页面打开单个tab时,操作栏显示: 当页面打开多个tab时,会发现操作栏与下面第一个tab显示的操作栏类型一样,并且操作栏的按钮无作用 第一个标签操作栏显示: 产生这样的原因:使用layui时,每个 ...
- 二维RMQ hdu 2888
题目:点这里 题意:给出一个n*m的矩阵,然后又Q个询问:每个询问有x1,y1,x2,y2,x1,y1为子矩阵的左上角坐标,x2,y2为右上角的坐标.求此子矩阵中元素最大值,判断最大值是否在子矩阵四个 ...
- hdu6396 /// fread()快速读入挂
题目大意: 给定n k 给定主角具有的k种属性 给定n个怪兽具有的k种属性和打死该怪兽后能得到的k种属性对应增幅 求主角最多能打死多少怪兽和最终主角的k种属性 k最大为5 开5个优先队列贪心 快速读入 ...