当前位置:   article > 正文

【NX二次开发——创建样条曲线(NXOpen)】_nxopen 文本曲线

nxopen 文本曲线

通过指定点的方式构造样条曲线

1、初始化样条曲线构造器

	NXOpen::Features::FitCurve *nullNXOpen_Features_FitCurve(NULL);   
	NXOpen::Features::FitCurveBuilder *fitCurveBuilder1;   
	fitCurveBuilder1 = workPart->Features()->CreateFitCurveBuilder(nullNXOpen_Features_FitCurve);   
  • 1
  • 2
  • 3

2、设置所构建样条曲线的参数

	fitCurveBuilder1->SetTolerance(0.001);                  //设置拟合精度
  • 1
2.1 将构造方式设置为指定点

在这里插入图片描述

	fitCurveBuilder1->SetTargetSourceType(NXOpen::Features::FitCurveBuilder::TargetSourceTypesSpecifiedPoints);   //指定样条构造方式
	fitCurveBuilder1->Radius()->SetRightHandSide("50");   
  • 1
  • 2
2.2 指定曲线的类型 <按照自己拟合点的特点选取,自己试试>

在这里插入图片描述

fitCurveBuilder1>SetFittingParameters(NXOpen::Features::FitCurveBuilder::FittingParametersOptionsDegreeAndTolerance);
  • 1
2.3 指定拟合曲线次数
fitCurveBuilder1->SetDegree(2);            //样条曲线拟合次数,必须小于输入点数   
fitCurveBuilder1->Extender()->StartValue()->SetRightHandSide("0");   
fitCurveBuilder1->Extender()->EndValue()->SetRightHandSide("0");   
fitCurveBuilder1->RejectionThreshold()->SetRightHandSide("10");   
  • 1
  • 2
  • 3
  • 4

//将收集的点添加到拟合曲线里
//其中Poicollection是vecor动态数组,其中保存了构造的点(std::vector< NXOpen::Point*> Poicollection )

	for (int i = 0; i < Poicollection.size(); i++)   
	{   
		bool Isok;   
		Isok= fitCurveBuilder1->Target()->Add(Poicollection[i]);  //添加拟合点 
	}   
  • 1
  • 2
  • 3
  • 4
  • 5

3、执行

	NXOpen::NXObject *nXObject1;   
	nXObject1 = fitCurveBuilder1->Commit();   
	fitCurveBuilder1->Destroy();   
  • 1
  • 2
  • 3

4、拟合效果

206个拟合点
拟合完成

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/40339
推荐阅读
相关标签
  

闽ICP备14008679号