点击查看详细介绍

计算两个坐标系的原点距离C++代码 精华帖

nxopen 7年前 2245 0

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


//计算两个坐标系的距离
int CalculationCsysDistance(tag_t csysTag1, tag_t csysTag2, double *dis&#118alue)
{
	if(csysTag1 == NULL_TAG || csysTag2 == NULL_TAG)
	{
		//HuBase::print("传入的坐标系为:NULL_TAG");
		return -1;
	}
 	int tagType1 = 0, tagType2 = 0, tagsubType = 0;
	UF_OBJ_ask_type_and_subtype(csysTag1, &tagType1, &tagsubType);
	UF_OBJ_ask_type_and_subtype(csysTag2, &tagType2, &tagsubType);
	if(tagType1 != 45 || tagType2 != 45)
	{
		//HuBase::print("传入的TAG不是坐标系");
		return -1;
	}
 	tag_t workPartTag = UF_ASSEM_ask_work_part();
	tag_t csysmatrix_id = NULL_TAG;

●●●请先 登陆注册 后查看●●●

        tag_t refCsysOwningPart2 = NULL_TAG;
	UF_OBJ_ask_owning_part(csysTag2, &refCsysOwningPart2);
	if(refCsysOwningPart2 == NULL_TAG)
	{
		//HuBase::print("设置工作部件失败 refCsysOwningPart2");
		return -1;
	}
	UF_ASSEM_set_work_part(refCsysOwningPart2);
	double csysOrigin2[3]= { 0.0, 0.0, 0.0 };
	UF_CSYS_ask_csys_info(csysTag2, &csysmatrix_id, csysOrigin2);
	UF_CSYS_map_point(UF_CSYS_WORK_COORDS, csysOrigin2, UF_CSYS_ROOT_COORDS, csysOrigin2);

	UF_ASSEM_set_work_part(workPartTag);
 	UF_VEC3_distance(csysOrigin1, csysOrigin2, dis&#118alue);//计算两点间的距离
 	return 0;
}


0

最新回复 (0)
请登录后发表新帖