日本黄色无码视频|国产精品无码高清|欧美日韩亚洲乱伦|国产久草全部视频|人妻二区无码不卡|日韩美女精品视频|五月婷婷在线观看|asmr无码一区|午夜视频熟女久久|KK福利AV导航

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學(xué)歷
* 工作性質(zhì)
請先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領(lǐng)完即止!

下載app免費領(lǐng)取會員

NULL

ad.jpg

arasolid建模算法-創(chuàng)建基本三維拓撲實體

發(fā)布于:2025-07-20 22:15:44

網(wǎng)友投稿

更多

Parasolid內(nèi)核的功能可以總結(jié)為對實體和非實體對象增(創(chuàng)建)刪改查、校驗修復(fù)、管理(場景,內(nèi)存)、文件導(dǎo)入導(dǎo)出等,本節(jié)內(nèi)容以創(chuàng)建基本三維實體作為開始,后續(xù)更新章節(jié)將逐步由淺入深涉及各部分內(nèi)容。

一、Parasolid中的基本三維拓撲實體

Parasolid提供現(xiàn)成、簡單、易用的API來創(chuàng)建以下幾種基本三維Solid實體:

  • 長方體
  • 圓錐
  • 圓柱
  • 棱臺
  • 圓球
  • 圓環(huán) 

基本三維實體本質(zhì)也可以通過其他方式來創(chuàng)建,如將一個矩形、正多邊形、圓形輪廓的薄板進行拉伸可創(chuàng)建一個立方體、棱臺、圓柱;將一個圓形薄板繞某個軸進行旋轉(zhuǎn)可創(chuàng)建球體或圓環(huán),但這些接口操作起來稍微有些繁瑣,因此對于一些常見的基本三維實體,大部分幾何內(nèi)核 (ACIS,CGM,OCC)都會直接提供簡單的接口以供使用。

二、基本三維實體的創(chuàng)建方法

三維實體的創(chuàng)建結(jié)果均保存在PK_BODY_t中。 basis_set可控制立方體底部中心點位置以及長寬高三條邊的朝向,basis_set如果為空(nullptr),則直接使用世界坐標(biāo)系進行創(chuàng)建。

2.1 長方體

可控制長方體長寬高的尺寸以及長寬高三條邊的朝向。

  • 接口描述
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
)
  • 創(chuàng)建方法
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);

2.2 圓錐

圓錐和圓臺的創(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
)

  • 創(chuàng)建方法
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);

2.3 圓柱

  • 接口描述
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
)

  • 創(chuàng)建方法
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);

2.4 棱臺

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
)
  • 創(chuàng)建方法
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);

2.5 球體

  • 接口描述
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
)

  • 創(chuàng)建方法
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);

2.6 圓環(huán)

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
)

  • 創(chuàng)建方法
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);

2.7 創(chuàng)建結(jié)果預(yù)覽

image.png

本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

上一篇:專家征集 | 涉及BIM,湖南省住建廳官方征集全省城市更新和住房保障專家?guī)鞂<覍<艺骷?| 涉及BIM,湖南省住建廳官方征集全省城市更新和住房保障專家?guī)鞂<?/a >

下一篇:行業(yè)新聞 | 科技創(chuàng)新 平臺賦能 產(chǎn)業(yè)集群 長沙推動智能建造產(chǎn)業(yè)高質(zhì)量發(fā)展

60acb4e0ef112.png