Pro/TOOLKIT示例程序(六)获取几何元素:坐标系

在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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值