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 ...
随机推荐
- 安卓Unity3d游戏的逆向破解
使用到的工具 ApkToolBox .NET Reflector Reflexil(.NET程序编辑器) 怎么判定它是Unity游戏呢 一般的路径格式是这样的assets\bin\Data\Manag ...
- Vue学习笔记【21】——Vue中的动画(v-for 的列表过渡)
定义过渡样式: <style> .list-enter, .list-leave-to { opacity: 0; transform: translat ...
- 欧拉降幂,基本计算定理——cf615D
用基本算数定理求约数和的思想来计算, 首先用pi,ci来表示第i个质数,指数为i,然后对于每个pi,pi^2...都有指数为mul{(c_1+1)(c_2+1)(c_i-1+1)(c_i+1+1).. ...
- SP8222 NSUBSTR - Substrings(后缀自动机+dp)
传送门 解题思路 首先建出\(sam\),然后把\(siz\)集合通过拓扑排序算出来.对于每个点只更新它的\(maxlen\),然后再从大到小\(dp\)一次就行了.因为\(f[maxlen-1]&g ...
- mysql笔试题大餐---2、exists加一些查询
mysql笔试题大餐---2.exists加一些查询 一.总结 一句话总结: 实践:我之前的mysql真的学的太浅了,这种情况下,依据实践(做题)才是唯一能把它学好的方式 1.MySQL中EXISTS ...
- 基于VMWare配置VxWorks开发环境
常规VxWorks的开发环境都是基于目标开发板或目标机来构建的,但并非所有人都具备这样的条件,所以本文主要介绍如何基于vmware来构建VxWorks开发环境. Step 1. 安装vmware ...
- Codeforce 1182B Plus from Picture
题目链接:http://codeforces.com/problemset/problem/1182/B 题意:检查图中 * 形成的是否是唯一的十字. 思路:dfs找到十字的中心,反向消除十字,最后检 ...
- xshell6 远程连接时提示 WARNING! The remote SSH server rejected X11 forwarding request.
1.输入命令 vi /etc/ssh/sshd_config ,修改配置文件 2.将UserLogin no 的注释解除 3.执行yum install -y xorg-x11-font xorg ...
- hbase启动的时候报:cat: /home/hadoop/hbase-0.94.6-cdh4.5.0/target/cached_classpath.txt: 没有那个文件或目录
启动hbase的时候: -cdh4.5.0/bin$ hbase shell cat: /home/hadoop/hbase--cdh4.5.0/target/cached_classpath.txt ...
- 尝试修改源码需要用到git存一下
git reflog查看本地记录 git reset --hard 02a3260