包含用于计算结构杆件横截面特性的工具和标准横截面特性的数据库。

xsect的Python项目详细描述


xsect

PyPI - Python VersionPyPIBuild StatusDocumentation Statuscodecov

关于

此包包含计算结构构件横截面的工具 python中的属性。此外,它还包含一个标准的SQLite数据库 可通过查询功能获取数据的横截面属性 或者直接实例化为新的CrossSection对象。

可计算的横截面特性包括:

  • 横截面积
  • 质心
  • 面积的二阶矩(惯性矩)
  • 回转半径
  • 截面模量
  • 主角
  • 关于上述特性主轴的值

还支持由多个形状组成的组合截面,如下图所示在这里,用蓝色显示的图形被添加到横截面,而用红色显示的图形被减去切口

Composite Section Example

安装

通过运行以下命令,可以通过pip安装包:

pip install xsect

示例用法

以下各节概述了此软件包的一些可能用途

快速访问属性

无论您是否正在执行快速计算,可能是通过使用 一个Jupyter笔记本,或者一个更复杂的计算,您可以使用XSect 减少计算所需的输入量。而不是转身 要引用成员的查找和手动输入属性,请 只需将成员的名称传入 合适的初始值设定项。例如:

>>> xsect.CrossSection.from_aisc('L8x8x1-1/8')
CrossSection(name='L8X8X1-1/8', area=16.8, ...)

如果数据库中不包含属性,则可以快速计算 给定一系列(x,y)边界点或使用 用于计算特性的内置横截面汇总函数 对于特定形状例如:

>>> odict = xsect.cruciform_summary(8, 8, 1.125)
>>> odict
{'area': 66.9375,
 'x': 0.0,
 'y': 0.0,
 'width': 16.0,
 'height': 16.0,
 'inertia_x': 781.0517578125,
 'inertia_y': 781.0517578125,
 'inertia_j': 1562.103515625,
 'inertia_xy': 0.0,
 'inertia_z': 781.0517578125,
 'gyradius_x': 3.415900115553699,
 'gyradius_y': 3.415900115553699,
 'gyradius_z': 3.415900115553699,
 'elast_sect_mod_x': 97.6314697265625,
 'elast_sect_mod_y': 97.6314697265625,
 'elast_sect_mod_z': 97.6314697265625}

这可用于通过展开 初始值设定项中的字典:

>>> xsect.CrossSection('4L8x8x1.125', **odict)
CrossSection(name='4L8x8x1.125', area=66.9375, ...)

设计优化

如果要创建用于分析和优化的Python应用程序 结构,可以使用XSect从 通过迭代方案执行分析的标准节数据库。 您还可以计算成员的一些必需属性并使用 获取特定形状最轻横截面的数据库筛选器 考虑到这个标准例如,如果您正在为已知的 最大拉力,可以计算其所需的横截面积。 并执行类似于以下的筛选以获得最轻的成员:

>>> xsect.filter_aisc(["type='L'", 'area>28'], order=['unit_weight'])
  type          name T_F  unit_weight  area     d
0    L  L12X12X1-1/4   F         96.4  28.4  12.0
1    L  L12X12X1-3/8   F        105.0  31.1  12.0

这将返回区域大于 单位重量的升序大于28第一排自然是, 最轻的成员可以满足这些条件

同样,如果你正在设计一个全新的横截面,你可以使用 提供的形状函数之一或创建自己的自定义函数 生成它的边界点,然后计算必要的属性 为了你的设计

数据库源

sqlite数据库中包含的属性从以下位置获取 来源:

AISC形状

数据库包括美国钢铁学会的钢构件 建筑(AISC),从下面公开获取 位置。有关变量说明,请参阅随附的自述文件 他们的数据

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
尝试运行JFLAP。戴软呢帽的罐子23。Java正在抛出异常   无引用的java数组布尔复制   hibernate如何在java SE应用程序中使用JPA EntityManager   java如何使用ORMLite在SQLite中持久化JavaFX属性?   java无法将项目部署到GAE   java:谷歌地图维基百科层   java Resultset(getter/setter类)对象在第二次执行时未删除旧值   s中的java struts2:选择列表>请求的列表键“”作为集合/数组/映射/枚举/迭代器类型   java如何在Karaf 4.0.5中获得BaseDao中的entityManager?   java VSCode未从控制台读取西里尔文   java字体。createFromAsset()返回字体的空指针异常   java错误:将Android Studio从0.6.1更新到0.8.9后,没有合适的构造函数