Pro/TOOLKIT示例程序(八)获取几何元素:面
2018-01-14 15:59
232 查看
在Pro/TOOLKIT中,类型ProSurface表示面。ProSurface和ProGeomitem之间可以相互转换:
ProSurface -> ProGeomitem:ProSurfaceToGeomitem
ProGeomitem -> ProSurface:ProGeomitemToSurface
ProSurfaceTypeGet用于获取面的类型,面的类型有以下几种:
PRO_SRF_PLANE:平面。
PRO_SRF_CYL:圆柱面。
PRO_SRF_CONE:圆锥面
PRO_SRF_TORUS:圆环面
...等等
函数ProGeomitemdataGet用于获取面的数据,注意在用完之后要调用ProGeomitemdataFree来释放数据。
ProGeomitemdata下的ProSurfacedata用于存储面的数据,而其下 ProSurfaceshapedata srf_shape 则用于表达不同类型面的具体数据。
示例代码:
ProSurface -> ProGeomitem:ProSurfaceToGeomitem
ProGeomitem -> ProSurface:ProGeomitemToSurface
ProSurfaceTypeGet用于获取面的类型,面的类型有以下几种:
PRO_SRF_PLANE:平面。
PRO_SRF_CYL:圆柱面。
PRO_SRF_CONE:圆锥面
PRO_SRF_TORUS:圆环面
...等等
函数ProGeomitemdataGet用于获取面的数据,注意在用完之后要调用ProGeomitemdataFree来释放数据。
ProGeomitemdata下的ProSurfacedata用于存储面的数据,而其下 ProSurfaceshapedata srf_shape 则用于表达不同类型面的具体数据。
typedef struct geom_item_data_struct { ProType obj_type; union { ProCurvedata *p_curve_data; ProSurfacedata *p_surface_data; ProCsysdata *p_csys_data; } data; } ProGeomitemdata; typedef struct ptc_surf { ...... ProSurfaceshapedata srf_shape; ...... } ProSurfacedata; typedef union ptc_srfshape { ProPlanedata plane; // 平面 ProCylinderdata cylinder; // 圆柱面 ProConedata cone; // 圆锥面 ProTorusdata torus; // 圆环面 ProSrfrevdata srfrev; ...... } ProSurfaceshapedata;
示例代码:
// 获取面的数据 int TestGetSurfaceData(uiCmdCmdId command, uiCmdValue *p_value, void *p_push_command_data) { ProError err; // 选择面 ProSelection *sels; int nSel = 0; err = ProSelect("surface,datum", 1, NULL, NULL, NULL, NULL, &sels, &nSel); if (PRO_TK_NO_ERROR != err || 1 != nSel) { return -1; } // 获取选择的面 ProGeomitem geomSurface; err = ProSelectionModelitemGet(sels[0], &geomSurface); ProSurface surface; err = ProGeomitemToSurface(&geomSurface, &surface); ProSrftype srfType; err = ProSurfaceTypeGet(surface, &srfType); // 获取面的数据 ProGeomitemdata* geomdata; err = ProGeomitemdataGet(&geomSurface, &geomdata); // 根据面的类型获取具体的数据 CStringW cstrInfo; switch (srfType) { case PRO_SRF_PLANE: { cstrInfo = L"面的类型: 平面\n"; CStringW cstrPlaneNormalVector; cstrPlaneNormalVector.Format(L"平面的法向量: (%.2f, %.2f, %.2f)", geomdata->data.p_surface_data->srf_shape.plane.e3[0], geomdata->data.p_surface_data->srf_shape.plane.e3[1], geomdata->data.p_surface_data->srf_shape.plane.e3[2]); cstrInfo += cstrPlaneNormalVector; } break; case PRO_SRF_CYL: { cstrInfo = L"面的类型: 圆柱面\n"; CStringW cstrRadius; cstrRadius.Format(L"圆柱面的半径为: %.2f", geomdata->data.p_surface_data->srf_shape.cylinder.radius); cstrInfo += cstrRadius; } break; default: cstrInfo = L"面的数据:亲,试试自己完成!"; break; } MessageBoxW(NULL, cstrInfo, L"icaxdev: Sample004", MB_OK); // 释放数据 err = ProGeomitemdataFree(&geomdata); return 0; }
相关文章推荐
- Pro/TOOLKIT示例程序(七)获取几何元素:边
- JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸
- RevitAPI之获取元素的几何数据
- JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸
- Pro/TOOLKIT示例程序(四)获取几何元素:基准点
- JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸
- Pro/TOOLKIT示例程序(五)获取几何元素:基准轴
- Pro/TOOLKIT示例程序(六)获取几何元素:坐标系
- JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸
- 原生JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸名
- 获取元素name和id
- 用jquery如何获取select元素中当前选择的文本内容
- 用Javascript获取元素在页面中的绝对位置
- 总结的一些jquery获取更改dom元素常用方法
- 关于FORM表单元素NAME和ID的获取问题
- js+jquery动态设置/添加/删除/获取元素属性的两种方法集锦对照(动态onclick属性设置+动态title设置)
- jquery清空file值 获取元素个数
- 分答项目_知识点:如何获取jquery选择器生成的input元素数组中的每个input元素的值?
- jquery判断显示的元素并获取显示元素数据
- js获取下拉列表的值和元素个数示例