使用相对坐标 创建圆弧 用NXOPEN 三点画圆需要计算点

    /// <summary>
	/// 根据相对坐标创建圆弧
	/// </summary>
	/// <param name="wcsTag">输入相对坐标</param>
	/// <param name="ori">绝对坐标圆心</param>
	/// <param name="r"> 半径</param>
	/// <param name="color"> 颜色</param>
	/// <returns> 圆弧</returns>
	tag_t MODL::Create_ArcFull_by_wcs_UF(tag_t wcsTag, double ori[3], double r, double beginAngle, double endAngle, int color)
	{

		double point[3] = { 0,0,0};

		tag_t mtxTag = 0;

		UF_CSYS_ask_csys_info(wcsTag, &mtxTag, point);

		tag_t wcsK = 0;

		double xyz[3] = { 0 };

		UF_CSYS_create_temp_csys(xyz, mtxTag, &wcsK);
		UF_CSYS_set_wcs(wcsK);

		UF_CSYS_map_point(UF_CSYS_WORK_COORDS, ori, UF_CSYS_ROOT_WCS_COORDS, ori);// UF_CSYS_ROOT_WCS_COORDS UF_CSYS_WORK_COORDS

		tag_t arcTag = 0;
		UF_CURVE_arc_t arcData;
		arcData.start_angle = beginAngle * DEGRA;
		arcData.end_angle = endAngle * DEGRA;
		arcData.matrix_tag = mtxTag;
		arcData.arc_center[0] = ori[0];
		arcData.arc_center[1] = ori[1];
		arcData.arc_center[2] = ori[2];
		arcData.radius = r;

		UF_CURVE_create_arc(&arcData, &arcTag);

		UF_OBJ_set_color(arcTag, color);

		UF_CSYS_set_wcs(wcsTag);


		return arcTag;
	}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值