下載app免費領(lǐng)取會員
Parasolid內(nèi)核的功能可以總結(jié)為對實體和非實體對象的增(創(chuàng)建)刪改查、校驗修復(fù)、管理(場景,內(nèi)存)、文件導(dǎo)入導(dǎo)出等,本節(jié)內(nèi)容以創(chuàng)建基本三維實體作為開始,后續(xù)更新章節(jié)將逐步由淺入深涉及各部分內(nèi)容。
Parasolid提供現(xiàn)成、簡單、易用的API來創(chuàng)建以下幾種基本三維Solid實體:
三維實體的創(chuàng)建結(jié)果均保存在PK_BODY_t中。 basis_set可控制立方體底部中心點位置以及長寬高三條邊的朝向,basis_set如果為空(nullptr),則直接使用世界坐標(biāo)系進行創(chuàng)建。
可控制長方體長寬高的尺寸以及長寬高三條邊的朝向。
PK_ERROR_code_t PK_BODY_create_solid_block
(
--- received arguments ---
double x, --- block extent in local x direction (>0)
double y, --- block extent in local y direction (>0)
double z, --- block extent in local z direction (>0)
const PK_AXIS2_sf_t *basis_set, --- position and orientation (may be NULL)
--- returned arguments ---
PK_BODY_t *const body --- solid body returned
)
PK_AXIS2_sf_t axis;
axis.location = { -15, 10, 0 };
axis.axis = { 0,0,1};
axis.ref_direction = { 1,0,0 };
PK_BODY_t cube = PK_ENTITY_null;
PK_ERROR_code_t err = PK_BODY_create_solid_block(7,10,15, &axis, &cube);
圓錐和圓臺的創(chuàng)建使用同一個接口,radius控制圓臺上底面的半徑,當(dāng)radius為0時為圓錐。
PK_ERROR_code_t PK_BODY_create_solid_cone
(
--- received arguments ---
double radius, --- cone radius (may be 0)
double height, --- cone height (>0)
double semi_angle,--- semi-vertex angle (>0, <Pi/2)
const PK_AXIS2_sf_t *basis_set, --- position and orientation (may be NULL)
--- returned arguments ---
PK_BODY_t *const body --- solid body returned
)
PK_AXIS2_sf_t axis;
axis.location = { 20, 10, 10 };
axis.axis = { 0, 0, -1 };
axis.ref_direction = { 0, 1, 0 };
PK_BODY_t cone = PK_ENTITY_null;
PK_ERROR_code_t err = PK_BODY_create_solid_cone(5, 10, 3.1415926 / 8, &axis, &cone);
PK_ERROR_code_t PK_BODY_create_solid_cyl
(
--- received arguments ---
double radius, --- cylinder radius (>0)
double height, --- cylinder height (>0)
const PK_AXIS2_sf_t *basis_set, --- position and orientation (may be NULL)
--- returned arguments ---
PK_BODY_t *const body --- solid body returned
)
PK_AXIS2_sf_t axis;
axis.location = { 0, 10, 0 };
axis.axis = { 0, 0, 1 };
axis.ref_direction = { 0, 1, 0 };
PK_BODY_t cly = PK_ENTITY_null;
PK_ERROR_code_t err = PK_BODY_create_solid_cyl(6, 15, &axis, &cly);
radius為棱臺底面輪廓外接圓的半徑。
PK_ERROR_code_t PK_BODY_create_solid_prism
(
--- received arguments ---
double radius, --- prism radius (>0)
double height, --- prism height (>0)
int n_sides, --- number of sides (>2)
const PK_AXIS2_sf_t *basis_set, --- position and orientation (may be NULL)
--- returned arguments ---
PK_BODY_t *const body --- solid body returned
)
PK_AXIS2_sf_t axis;
axis.location = { -15, -10, 0 };
axis.axis = { 0, 0, -1 };
axis.ref_direction = { 0, 1, 0 };
PK_BODY_t prism = PK_ENTITY_null;
PK_ERROR_code_t err = PK_BODY_create_solid_prism(4, 5, 6, &axis, &prism);
PK_ERROR_code_t PK_BODY_create_solid_sphere
(
--- received arguments ---
double radius, --- sphere radius (>0)
const PK_AXIS2_sf_t *basis_set, --- position and orientation (may be NULL)
--- returned arguments ---
PK_BODY_t *const body --- solid body returned
)
PK_AXIS2_sf_t axis;
axis.location = { 20, -10, 0 };
axis.axis = { 0, 0, -1 };
axis.ref_direction = { 0, 1, 0 };
PK_BODY_t sphere = PK_ENTITY_null;
PK_ERROR_code_t err = PK_BODY_create_solid_sphere(5, &axis, &sphere);
major_radius為圓環(huán)中心線的半徑 minor_radius為環(huán)寬的一半
PK_ERROR_code_t PK_BODY_create_solid_torus
(
--- received arguments ---
double major_radius, --- torus major radius
double minor_radius, --- torus minor radius (> 0)
const PK_AXIS2_sf_t *basis_set, --- position and orientation (may be NULL)
--- returned arguments ---
PK_BODY_t *const body --- solid body returned
)
PK_AXIS2_sf_t axis;
axis.location = { 0, -10, 0 };
axis.axis = { 0, 0, -1 };
axis.ref_direction = { 0, 1, 0 };
PK_BODY_t torus = PK_ENTITY_null;
PK_ERROR_code_t err = PK_BODY_create_solid_torus(8, 3, &axis, &torus);
本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
上一篇:專家征集 | 涉及BIM,湖南省住建廳官方征集全省城市更新和住房保障專家?guī)鞂<覍<艺骷?| 涉及BIM,湖南省住建廳官方征集全省城市更新和住房保障專家?guī)鞂<?/a >
下一篇:行業(yè)新聞 | 科技創(chuàng)新 平臺賦能 產(chǎn)業(yè)集群 長沙推動智能建造產(chǎn)業(yè)高質(zhì)量發(fā)展
推薦專題