Python实现管线建模 - 3.同心变径管

        往期回顾

Python实现管线建模 || 1.圆直管、方管icon-default.png?t=N7T8https://blog.csdn.net/Xxy9426/article/details/138836778?spm=1001.2014.3001.5501

  对依赖库的补充  

        随着后续内容的深入,我发现单纯靠trimesh库已经无法完成后续的建模(涉及到多个几何体拼接或者是创建较复杂的几何体的情况单单用trimesh铁定是搞不定的),所以需要使用 cmd

pip install trimesh[all] 

来安装  trimesh 及其所有必要依赖库 。 主要包括:

numpy:用于数值计算的基础库。

scipy:提供了额外的科学计算功能。

networkx:用于图和网络分析。

pyglet:用于 OpenGL 的图形库。

shapely:用于几何对象的创建和操作。

rtree:用于空间索引和查询。

Pillow:Python Imaging Library,处理图像文件。

lxml:用于解析和处理 XML 和 HTML。

assimp:Open Asset Import Library,用于读取多种 3D 文件格式。

pyrender:用于渲染三维场景。

        变径管件指的是用于连接不同直径管道的管件,主要用于管道系统中从较大管径的管道过渡到较小管径的管道(或相反)。变径管线在城市管网中有着广泛应用,一般来说是特征点当中的一类。通常出现在流量变化、压力调整或设备连接的场景中。

        根据管件形态的不同,可以将其分为两种类型:

        1.同心变径管:这种变径管的中心轴线是相同的,通常用于垂直或水平管道。

        2.偏心变径管:这种变径管的其中一侧是平的,通常用于水平管道,以避免积水。

        咱们把变径管的内容拆分成两篇文章,今天我们先来进行同心变径管的建模(偏心的我还没搞明白)。同心变径管本质上是一边粗一边细的圆台,形状比较规矩,所以建模流程上比较简单。

        上代码~

import trimesh
import numpy as npdef create_tapered_cylinder(radius_base=0.5, radius_top=1.5, height=3.0, segments=32):"""创建一个圆台形状的三维模型。参数:radius_base: 圆台底部半径,默认为0.5。radius_top: 圆台顶部半径,默认为1.5。height: 圆台的高度,默认为3.0。segments: 圆台侧面的分段数,默认为32。返回:cylinder_mesh: 圆台的三维网格模型。"""# 创建圆台的底部和顶部圆theta = np.linspace(0, 2 * np.pi, segments)  # 生成从0到2π的等差数列,用于计算圆的点base_circle = np.column_stack((np.cos(theta) * radius_base, np.sin(theta) * radius_base, np.zeros_like(theta)))  # 底部圆的坐标top_circle = np.column_stack((np.cos(theta) * radius_top, np.sin(theta) * radius_top, np.full_like(theta, height)))  # 顶部圆的坐标# 将底部和顶部圆的坐标合并,形成圆台的顶点vertices = np.vstack([base_circle, top_circle])# 定义圆台的面faces = []for i in range(segments - 1):  # 循环创建侧面的面faces.append([i, i + 1, i + segments])  # 定义侧面的三角形面faces.append([i + 1, i + 1 + segments, i + segments])# 闭合圆台的底部和顶部,形成完整的圆台形状faces.append([segments - 1, 0, 2 * segments - 1])faces.append([0, segments, 2 * segments - 1])# 使用trimesh库创建三维网格模型cylinder_mesh = trimesh.Trimesh(vertices=vertices, faces=faces)return cylinder_mesh# 创建圆台模型
tapered_cylinder = create_tapered_cylinder()# 导出圆台模型到OBJ文件
tapered_cylinder.export('output/tapered_cylinder.obj')

        之后本系列文章会继续更新偏心变径管(等我学会、三通、四通、法兰结构等等管线的建模。需要的朋友可以点点关注不迷路~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/29533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全域外卖系统源码在哪搭建?哪家公司的系统源码最值得推荐

随着全域外卖的兴起,全域外卖系统源码搭建逐渐在众多全域外卖赛道的入局方式中脱颖而出。但是,就目前多个创业者社群就这一话题的讨论程度来看,绝大多数创业者对于全域外卖系统源码搭建模式的了解都仅仅停留在“是什么”层面,而对…

Conmi的正确答案——Vue默认加载方式设置为Yarn后怎么修改

Vue版本:3 1和2主要是搜索文件所在位置,Windows的这个文件一般在“C:\User{当前用户}”下,linux的非root情况下一般在“/home/{当前用户}”下。 1、打开“Everything”; 2、搜索“vuerc”; 3、打开“.vuerc”&#xf…

Boom3D软件下载-Boom3D音效增强工具下载附加详细安装步骤

Boom3D音效增强工具是一款便捷的为用户们进行音频处理和编辑的软件,支持用户们轻松的进行音频的使用,支持超多的音频格式让你可以轻松的进行使用,Boom3D音效增强工具拥有多种音频特效的功能,让你可以在Boom3D音效增强工具轻松的进…

Linux时间子系统5:timekeeper、timecountercyclecounter

1. 前言 前面我们介绍了用户态获取时间的接口clock_gettime,时钟的种类posix_clocks以及时钟源clocksource。那么我们思考这样一个问题,无论clock_gettime或者posix_clock定义的时间都是相对于某个起始点的时间,即相对于Linux Epoch的秒数&am…

pytorch安装----CPU版本

在安装之前,需要先配置GPU环境(安装CUDA和CudaNN) 命令行输入nvidia-smi,查看驱动信息 安装相应的CUDA 和CUDANN 验证:输入nvcc --version 或者nvcc -V 进行检查 在anaconda里创建环境 conda create -n py39gpu python3.9激活环…

丰臣秀吉-读书笔记二

“啊!平凡的一生,想来也够长了。不过也短。究竟长还是短?或许只有这一刹那是永恒的吧,死亡的一刹那。生命若是永恒,也就取决于那一刹那。” 如果我死了,我的愿望只有这个: “无论多么黑暗&#…

【STC8A8K64D4开发板】第3-1讲:温度传感器DS18B20

第3-1讲:温度传感器DS18B20 学习目的了解DS18B20数字温度传感器的基本原理及其数据格式。掌握STC8A8K64D4与DS18B20单总线通信的程序设计,通信步骤,数据校验等。 硬件电路设计 DS18B20简介 DS18B20主要特性 DS18B20是Dallas 半导体公司推出的…

KernelFuzzer部署、使用与原理分析

文章目录 前言1、概述1.1、整体架构1.2、工作流程1.2.1、环境配置流程1.2.2、计划任务执行流程1.2.3、Fuzz测试流程1.2.3.1、整体资源调度1.2.3.2、选取Fuzz测试目标1.2.3.3、生成Fuzz测试参数1.2.3.4、进行Fuzz测试 2、安装与使用2.1、源码安装2.1.1、部署系统依赖组件2.1.1.1…

硫碳复合材料可用作固态电池正极材料 锂硫电池是重要下游

硫碳复合材料可用作固态电池正极材料 锂硫电池是重要下游 硫碳复合材料,是半固态电池、固态电池的正极材料,主要用于金属硫电池制造领域,在锂硫电池应用中研究热度最高。 锂硫电池,一种二次电池,以硫元素为正极&#x…

HarmonyOS 页面路由(Router)

1. HarmonyOS页面路由(Router) 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。HarmonyOS提供了Router模块,通过不同的url地址,可以方便地进行页面路由,轻松地访问不同的页面。本文将从页面跳转、页面返回和页面返回前增加一个询问…

VBA学习(9):按指定名单一键删除工作表

今天继续给大家聊VBA编程中工作表对象的常用操作,主要内容是如何批量删除工作表;也就是删除单个工作表、删除全部工作表和删除指定名单内的工作表。 1.删除单个工作表 删除工作表需要使用到工作表对象的delete方法,语法格式如下&#xff1a…

聚类分析 #数据挖掘 #Python

聚类分析(Cluster Analysis)是一种无监督机器学习方法,主要用于数据挖掘和数据分析中,它的目标是将一组对象或观测值根据它们之间的相似性或相关性自动分组,形成不同的簇或类别。聚类分析并不预先知道每个观测值的具体…

可燃气体报警器:户外工地安全预警先锋,定期检定保障安全无忧

在现代化的建设进程中,户外工地作为城市发展的重要推动力,其安全问题一直备受关注。 工地现场往往涉及多种易燃易爆气体,一旦发生泄漏,后果不堪设想。因此,如何有效预警并防范可燃气体泄露,成为户外工地安…

新手小白从Windows转Linux,或许manjaro更适合你!

网管小贾 / sysadm.cc 野生动物园里有一块并不怎么大的水塘,一群火烈鸟就生活在这里。 它们在水塘里悠闲地漫步,饿了就找些小鱼小虾,困了就伸个懒腰、打个盹。 就这样日复一日,过着百无聊赖的日子,直到有一天…… 这…

easyexcel和poi版本冲突报错深入解析v2

easyexcel报错解决 问题 项目由poi改用easyexcel,报错如下: java.lang.NoSuchMethodError: ‘org.apache.poi.ss.usermodel.CellType org.apache.poi.ss.usermodel.Cell.getCellType()’ 原因 easyexcel中的poi和项目原本的poi版本冲突问题。 由于之前做…

数据结构---排序算法

个人介绍 hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的…

数据中心机房建设标准

数据中心机房是专门设计用于存放、管理和维护计算机服务器、网络设备、存储设备以及其他IT基础设施的物理空间。它们是信息化社会的基石,为各种在线服务提供硬件和网络支持。数据中心机房的主要功能包括数据存储、处理、传输以及提供计算资源。 数据中心机房建设涉及…

用python绘制三维条形图

用python绘制三维条形图 三维条形图特点与用途 效果代码 三维条形图 三维条形图是一种在三维空间中表示数据的方法,它通过垂直或水平的条形长度来显示类别之间的差异。与传统的二维条形图相比,三维条形图增加了深度或高度的维度,使得数据可视…

数理化解题研究杂志社数理化解题研究编辑部2024年第12期目录

教学设计与教学策略研究 聚焦数学思想 贯彻核心素养——以“函数的奇偶性”的教学设计为例 宋方宁;李硕; 2-4 高中数学课堂案例研究——探讨“教-学-评”一体化模式的应用 赖琰媛;曹小燕; 5-7 漫谈体验式教学在高中数学教学中的运用策略 林素珍; 15-17《数理化解题…