在Pro/TOOLKIT中,类型ProCsys表示坐标系。ProCsys和ProGeomitem之间可以相互转换:
- ProCsys -> ProGeomitem:ProCsysToGeomitem
- ProGeomitem -> ProCsys:ProGeomitemToCsys
函数ProGeomitemdataGet用于获取坐标系的数据,注意在用完之后要调用ProGeomitemdataFree来释放数据。
示例代码:
// 获取坐标系的数据
int TestGetCsysData(uiCmdCmdId command,
uiCmdValue *p_value,
void *p_push_command_data)
{
ProError err;
// 选择坐标系
ProSelection *sels;
int nSel = 0;
err = ProSelect("csys", 1, NULL, NULL, NULL, NULL, &sels, &nSel);
if (PRO_TK_NO_ERROR != err || 1 != nSel)
{
return -1;
}
// 获取选择的坐标系
ProGeomitem geomCsys;
err = ProSelectionModelitemGet(sels[0], &geomCsys);
// 获取坐标系的数据
ProGeomitemdata* geomdata;
err = ProGeomitemdataGet(&geomCsys, &geomdata);
// 输出坐标系的数据
CStringW cstrOrigin;
cstrOrigin.Format(L"原点坐标: (%.2f, %.2f, %.2f)",
geomdata->data.p_csys_data->origin[0],
geomdata->data.p_csys_data->origin[1],
geomdata->data.p_csys_data->origin[2]);
CStringW cstrXVector;
cstrXVector.Format(L"X轴向量: (%.2f, %.2f, %.2f)",
geomdata->data.p_csys_data->x_vector[0],
geomdata->data.p_csys_data->x_vector[1],
geomdata->data.p_csys_data->x_vector[2]);
CStringW cstrYVector;
cstrYVector.Format(L"Y轴向量: (%.2f, %.2f, %.2f)",
geomdata->data.p_csys_data->y_vector[0],
geomdata->data.p_csys_data->y_vector[1],
geomdata->data.p_csys_data->y_vector[2]);
CStringW cstrZVector;
cstrZVector.Format(L"Z轴向量: (%.2f, %.2f, %.2f)",
geomdata->data.p_csys_data->z_vector[0],
geomdata->data.p_csys_data->z_vector[1],
geomdata->data.p_csys_data->z_vector[2]);
CStringW cstrInfo = L"坐标系数据:\n" + cstrOrigin + L"\n" + cstrXVector + L"\n" + cstrYVector + L"\n" + cstrZVector;
MessageBoxW(NULL, cstrInfo, L"icaxdev: Sample004", MB_OK);
// 释放数据
err = ProGeomitemdataFree(&geomdata);
return 0;
}