面透明和设置装配体着色类似,通过设置面的ProSurfaceAppearanceProps.transparency即可。transparency是一个double类型的数据,取值范围在1-0之间,值越高,透明度越大。直接给出代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ProError status;
ProModelitem modelitem;
ProSurfaceAppearanceProps appearanceProperties;
ProSelection *sel_array;
int i, n_size;

status = ProMessageDisplay(MSGFILE, "IMI_PrompSetTransparent");
status = ProSelect((char *)"sldsurface,surface", -1, NULL, NULL, NULL, NULL, &sel_array, &n_size);
status = ProArraySizeGet((ProArray *)sel_array, &n_size);
if (status != PRO_TK_NO_ERROR || n_size < 1)
{
return;
}
for (i = 0; i < n_size; i++)
{
status = ProSelectionModelitemGet(sel_array[i], &modelitem);
status = ProSurfaceAppearancepropsGet(&modelitem, &appearanceProperties);
appearanceProperties.transparency = 0.7;
status = ProSurfaceAppearancepropsSet(&modelitem, &appearanceProperties);
}

完整代码可在Github.com下载。代码在VS2010,Creo 2.0 M060 X64下编译通过。