{ "info": { "author": "Matt Pewsey", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# XSect\n\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/xsect.svg)\n![PyPI](https://img.shields.io/pypi/v/xsect.svg)\n[![Build Status](https://travis-ci.com/mpewsey/xsect.svg?branch=master)](https://travis-ci.com/mpewsey/xsect)\n[![Documentation Status](https://readthedocs.org/projects/xsect/badge/?version=latest)](https://xsect.readthedocs.io/en/latest/?badge=latest)\n[![codecov](https://codecov.io/gh/mpewsey/xsect/branch/master/graph/badge.svg)](https://codecov.io/gh/mpewsey/xsect)\n\n## About\nThis package contains tools for calculating structural member cross sectional\nproperties in Python. In addition, it contains a SQLite database of standard\ncross sectional properties for which data can be acquired via query functions\nor instantiated directly into a new `CrossSection` object.\n\nCalculable cross sectional properties include:\n\n* Cross sectional area\n* Centroid\n* Second moment of the area (moment of inertia)\n* Radius of gyration\n* Section modulus\n* Principal angles\n* Values about the principal axes for the above properties\n\nComposite sections that consist of multiple shapes are also supported, such as those shown below. Here, the shapes shown in blue are added to the cross section, while those shown in red are subtracted cutouts.\n\n![Composite Section Example](docs/_static/multi_sect_ex1.png)\n\n\n## Installation\nThe package may be installed via `pip` by running the below command:\n\n```\npip install xsect\n```\n\n\n## Examples Usages\nThe following sections outline some possible uses for this package.\n\n\n### Quick Access to Properties\nWhether you are performing quick calculations, perhaps through the use of\na Jupyter notebook, or a more complex calculation, you can use `XSect` to\nreduce the amount of input required for calculations. Rather than turning\nto references to lookup and manually input properties for members, you\ncan create cross sections simply by passing the name of the member into\nthe appropriate initializer. For example:\n\n```\n>>> xsect.CrossSection.from_aisc('L8x8x1-1/8')\nCrossSection(name='L8X8X1-1/8', area=16.8, ...)\n```\n\n\nIf a property is not contained in the database, you can rapidly calculate\nthe properties given a series of (x, y) boundary points or use one of the\nbuilt-in cross section summary functions to calculate the properties\nfor a specific shape. For example:\n\n```\n>>> odict = xsect.cruciform_summary(8, 8, 1.125)\n>>> odict\n{'area': 66.9375,\n 'x': 0.0,\n 'y': 0.0,\n 'width': 16.0,\n 'height': 16.0,\n 'inertia_x': 781.0517578125,\n 'inertia_y': 781.0517578125,\n 'inertia_j': 1562.103515625,\n 'inertia_xy': 0.0,\n 'inertia_z': 781.0517578125,\n 'gyradius_x': 3.415900115553699,\n 'gyradius_y': 3.415900115553699,\n 'gyradius_z': 3.415900115553699,\n 'elast_sect_mod_x': 97.6314697265625,\n 'elast_sect_mod_y': 97.6314697265625,\n 'elast_sect_mod_z': 97.6314697265625}\n```\n\n\nThis can be used to quickly generate a cross section by unwrapping the\ndictionary within the `CrossSection` initializer:\n\n```\n>>> xsect.CrossSection('4L8x8x1.125', **odict)\nCrossSection(name='4L8x8x1.125', area=66.9375, ...)\n```\n\n### Design Optimization\nIf you are creating a Python application for analyzing and optimizing\nstructures, you could use `XSect` to pull various cross sections from the\nstandard sections database to perform analysis via an iterative scheme.\nYou could also calculate some required properties for the member and use\na database filter to acquire the lightest cross section of a particular shape\ngiven that criteria. For example, if you were designing a member for a known\nmaximum tensile force, you could calculate its required cross sectional area\nand perform a filter similar to the below to get the lightest member:\n\n```\n>>> xsect.filter_aisc([\"type='L'\", 'area>28'], order=['unit_weight'])\n type name T_F unit_weight area d\n0 L L12X12X1-1/4 F 96.4 28.4 12.0\n1 L L12X12X1-3/8 F 105.0 31.1 12.0\n```\n\nThis returns a data frame of all \"L\" shape sections with areas greater\nthan 28 in ascending order of unit weight. The first row is, naturally,\nthe lightest member available meeting those conditions.\n\nLikewise, if you are designing a brand new cross section, you could use\none of the provided shape functions or create your own custom function\nto generate its boundary points, then calculate the requisite properties\nfor your design.\n\n## Database Sources\n\nThe properties contained in the SQLite database are acquired from the following\nsources:\n\n### AISC Shapes\n\nThe database includes steel shapes from the American Institute of Steel\nConstruction (AISC), which were taken from the below publicly available\nlocations. For variable descriptions, please consult the README included\nwith their data.\n\n* [AISC Shapes Database v15.0](https://www.aisc.org/globalassets/aisc/manual/v15.0-shapes-database/aisc-shapes-database-v15.0.xlsx)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mpewsey/xsect", "keywords": "civil-engineering", "license": "BSD 3-Clause License", "maintainer": "", "maintainer_email": "", "name": "xsect", "package_url": "https://pypi.org/project/xsect/", "platform": "", "project_url": "https://pypi.org/project/xsect/", "project_urls": { "Homepage": "https://github.com/mpewsey/xsect" }, "release_url": "https://pypi.org/project/xsect/1.1.2/", "requires_dist": [ "numpy (>=1.14.5)", "pandas (>=0.23.0)", "matplotlib (>=2.2.2)", "docutils (==0.14) ; extra == 'docs'", "numpydoc (>=0.8.0) ; extra == 'docs'", "pytest (>=3.5.1) ; extra == 'test'", "pytest-cov (>=2.5.1) ; extra == 'test'", "codecov (>=2.0.15) ; extra == 'test'" ], "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3,!=3.4", "summary": "Contains tools for calculating structural member cross sectional properties and databases of standard cross sectional properties.", "version": "1.1.2" }, "last_serial": 4891812, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "eda599a9e121d146d30fc47de86da787", "sha256": "07d1ad6ddc4e7e8797c82a38237ce622744a22279568c407007554df56481401" }, "downloads": -1, "filename": "xsect-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eda599a9e121d146d30fc47de86da787", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 305465, "upload_time": "2019-01-06T05:44:08", "url": "https://files.pythonhosted.org/packages/76/18/669dfc4b7c7bc56d612a598b431c13b8bd9255c45b881b92dd42fc28582d/xsect-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5515399bdfe0e0647b60aa08bd887edc", "sha256": "5cdeea8ee5e3af46e01ac1b7d1b194e079ae25f4ffabece9bd72362b548bf24e" }, "downloads": -1, "filename": "xsect-1.0.0.tar.gz", "has_sig": false, "md5_digest": "5515399bdfe0e0647b60aa08bd887edc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 296709, "upload_time": "2019-01-06T05:44:12", "url": "https://files.pythonhosted.org/packages/1f/21/c0ab395a1f8c8e374d5c8f8cb88ce0e739012ddf541706151a7ef8bfaaae/xsect-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "2d88d0a0e00129894204896ae9e0bdee", "sha256": "da9660846a65740633cdc476c406852d7b8948fffa70f966b0f2aff0180dad93" }, "downloads": -1, "filename": "xsect-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2d88d0a0e00129894204896ae9e0bdee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3,!=3.4", "size": 307258, "upload_time": "2019-01-26T00:21:23", "url": "https://files.pythonhosted.org/packages/cb/a8/3eed255cabbeab519fa3d74090d86cd390a20039d4f41031872a609ad0f0/xsect-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1481000943ce969ce905ea27f88253a", "sha256": "e1a886dea599f499e4e8140fd94c172cfb17eca7f6cb763408da410c3f68e100" }, "downloads": -1, "filename": "xsect-1.1.0.tar.gz", "has_sig": false, "md5_digest": "d1481000943ce969ce905ea27f88253a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3,!=3.4", "size": 297532, "upload_time": "2019-01-26T00:21:27", "url": "https://files.pythonhosted.org/packages/a6/28/0cbd86ecf129f240c7a8f90070ca4a33482dfe1ca14b9ae0ded649e921ea/xsect-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "5df1978665e0d5f20f8aaab88cdccb46", "sha256": "6067c2838b87890dfe19494f24313e8f47324852c946bdbb65d8f2d42e98715a" }, "downloads": -1, "filename": "xsect-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5df1978665e0d5f20f8aaab88cdccb46", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3,!=3.4", "size": 307634, "upload_time": "2019-02-21T03:27:58", "url": "https://files.pythonhosted.org/packages/27/5b/3ab4aa2a6bf01700e72c3b6db3dfcdb43096768f4856e64b74924596a264/xsect-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1eac6083b0745ff9f27c26fdea732ef8", "sha256": "19d3ab0e4577e4923bb479f521559aeeb8c690abe560e20ce8e32334b95c72f9" }, "downloads": -1, "filename": "xsect-1.1.1.tar.gz", "has_sig": false, "md5_digest": "1eac6083b0745ff9f27c26fdea732ef8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3,!=3.4", "size": 297918, "upload_time": "2019-02-21T03:28:05", "url": "https://files.pythonhosted.org/packages/2d/88/90f9bad5f3bd142366bb2cd173a24ee7e1c8ab3ddd10d8f162dd033ed423/xsect-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "c15e9f7985336d0b968c29699d11a66c", "sha256": "b4da8df9c43dbf08cb0254d7b47e8a120f84735d2fbf7bf9f934138a404cd506" }, "downloads": -1, "filename": "xsect-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c15e9f7985336d0b968c29699d11a66c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3,!=3.4", "size": 309370, "upload_time": "2019-03-03T20:58:14", "url": "https://files.pythonhosted.org/packages/3b/b5/27e4860db3ed29506764342c43fc8652554b7cf42a415f471b2b8a9e98f3/xsect-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4a1e9ef7a05b1670f1b1dfa099c3550", "sha256": "81bf5aafbd4485d758dbccb286be470476dc1919da9339c3fac433462a04e2d2" }, "downloads": -1, "filename": "xsect-1.1.2.tar.gz", "has_sig": false, "md5_digest": "c4a1e9ef7a05b1670f1b1dfa099c3550", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3,!=3.4", "size": 300175, "upload_time": "2019-03-03T20:58:16", "url": "https://files.pythonhosted.org/packages/c3/ff/381f145ded6710a78ec04da411893afc3a22b212ff55af16d2718ecd4484/xsect-1.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c15e9f7985336d0b968c29699d11a66c", "sha256": "b4da8df9c43dbf08cb0254d7b47e8a120f84735d2fbf7bf9f934138a404cd506" }, "downloads": -1, "filename": "xsect-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c15e9f7985336d0b968c29699d11a66c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3,!=3.4", "size": 309370, "upload_time": "2019-03-03T20:58:14", "url": "https://files.pythonhosted.org/packages/3b/b5/27e4860db3ed29506764342c43fc8652554b7cf42a415f471b2b8a9e98f3/xsect-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4a1e9ef7a05b1670f1b1dfa099c3550", "sha256": "81bf5aafbd4485d758dbccb286be470476dc1919da9339c3fac433462a04e2d2" }, "downloads": -1, "filename": "xsect-1.1.2.tar.gz", "has_sig": false, "md5_digest": "c4a1e9ef7a05b1670f1b1dfa099c3550", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3,!=3.4", "size": 300175, "upload_time": "2019-03-03T20:58:16", "url": "https://files.pythonhosted.org/packages/c3/ff/381f145ded6710a78ec04da411893afc3a22b212ff55af16d2718ecd4484/xsect-1.1.2.tar.gz" } ] }