NXopenC++ NewDistance测量距离 open c UF_VEC3_distance

以点为例,测量两点之间的最小距离

//1、模板文件添加头文件*
#include <NXOpen/PointCollection.hxx>
#include <NXOpen/Features_PointFeatureBuilder.hxx>
#include <NXOpen/Features_BaseFeatureCollection.hxx>
#include <NXOpen/Unit.hxx>
#include <NXOpen/UnitCollection.hxx>
#include <NXOpen/GenericMeasure.hxx>
#include <NXOpen/Measure.hxx>
#include <NXOpen/MeasureDistance.hxx>
#include <NXOpen/MeasureDistanceBuilder.hxx>
#include <NXOpen/MeasureManager.hxx>
#include <NXOpen/Point.hxx>
#include <uf_vec.h>
//**2、函数声明**
NXOpen::Point* pointcreat(double PTcoordinates[3], NXOpen::Part* part);
//**3、函数定义**
NXOpen::Point* MyClass::pointcreat(double PTcoordinates[3], NXOpen::Part* part)
{
	NXOpen::Point3d coordinates(PTcoordinates[0], PTcoordinates[1], PTcoordinates[2]);
	NXOpen::Point* point;
	point = part->Points()->CreatePoint(coordinates);
	return point;
}
//**4、主程序**
	NXOpen::Session* theSession = NXOpen::Session::GetSession();
	NXOpen::Part* part1(theSession->Parts()->Work());
	NXOpen::Part* displayPart(theSession->Parts()->Display());
    //NXOPEN NewDistance方法测量两点距离
	double PTcoordinates1[3] = { 0.0,0.0,0.0 };
	NXOpen::Point* point1 = pointcreat(PTcoordinates1, part1);

	double PTcoordinates2[3] = { 10.0,10.0,10.0 };
	NXOpen::Point* point2 = pointcreat(PTcoordinates2, part1);

	NXOpen::Unit* unit1(dynamic_cast<NXOpen::Unit*>(workPart->UnitCollection()->FindObject("MilliMeter")));
	NXOpen::MeasureDistance* measureDistance1;
	measureDistance1 = workPart->MeasureManager()->NewDistance(unit1, NXOpen::MeasureManager::MeasureTypeMinimum, point1, point2);
	double distance1 = measureDistance1->Value();

	char msg[256];
	sprintf(msg, "距离1:%f", distance1);
	theSession->ListingWindow()->WriteLine(msg);
	 //open c  UF_VEC3_distance方法测量两点距离
	double distance2;
	UF_VEC3_distance(PTcoordinates1, PTcoordinates2, &distance2);
	sprintf(msg, "距离2:%f", distance2);
	theSession->ListingWindow()->WriteLine(msg);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值