Skip to main content

Generate helixes that can optionally taper to a point at each end.

Project description

https://img.shields.io/pypi/v/taperable_helix.svg Documentation Status

Generate helixes that can optionally taper to a point at each end.

Examples

def helical_line(
    radius: float = 5, pitch: float = 2, height: float = 6, num_points: int = 100
) -> List[Tuple[float, float, float]]:
    h: Helix = Helix(radius=radius, pitch=pitch, height=height)
    f = h.helix()
    points = list(map(f, linspace(start=0, stop=1, num=num_points, dtype=float)))
    # print(f"helical_line: points={points}")
    return points
https://raw.githubusercontent.com/winksaville/py-taperable-helix/master/data/helical_line.webp
def helical_triangle(
    radius: float = 1,
    pitch: float = 2,
    height: float = 4,
    num_points: int = 100,
    tri_height: float = 0.2,
    tri_width: float = 0.2,
) -> Tuple[
    List[Tuple[float, float, float]],
    List[Tuple[float, float, float]],
    List[Tuple[float, float, float]],
]:

    # Create three helixes that taper to a point

    # Create the base Helix
    h: Helix = Helix(
        radius=radius, pitch=pitch, height=height, taper_out_rpos=0.1, taper_in_rpos=0.9
    )

    # The Upper points, horz_offset defaults to 0
    fU = h.helix(HelixLocation(vert_offset=tri_height / 2))
    points_fU = list(map(fU, linspace(h.first_t, h.last_t, num=100, dtype=float)))

    # The Lower points, again horz_offset defaults to 0
    fL = h.helix(HelixLocation(vert_offset=-tri_height / 2))
    points_fL = list(map(fL, linspace(h.first_t, h.last_t, num=100, dtype=float)))

    # The Middle point, change vert_offset to 0
    fM = h.helix(HelixLocation(horz_offset=tri_width))
    points_fM = list(map(fM, linspace(h.first_t, h.last_t, num=100, dtype=float)))

    return (points_fU, points_fM, points_fL)
https://raw.githubusercontent.com/winksaville/py-taperable-helix/master/data/helical_tri.webp

Prerequisites

Using

  • python >= 3.7

Development and Examples

See dev-requirements.in for most up to date list:

  • pip-tools

  • bump2version

  • wheel

  • isort

  • black

  • flake8

  • tox

  • tox-conda

  • coverage

  • Sphinx~=3.2

  • sphinx-autodoc-typehints~=1.11

  • sphinx-prompt~=1.3

  • sphinx_substitution_extensions>=2020.09.30, <2021.12.00

  • twine

  • pytest

  • pytest-runner

Credits

This code originated from a post by Adam Urbanczyk to the CadQuery forum and this package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

taperable_helix-0.8.9.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

taperable_helix-0.8.9-py2.py3-none-any.whl (7.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file taperable_helix-0.8.9.tar.gz.

File metadata

  • Download URL: taperable_helix-0.8.9.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.8

File hashes

Hashes for taperable_helix-0.8.9.tar.gz
Algorithm Hash digest
SHA256 0ad23795deb373f6550ed9fcabd2c911d311fa234b8d71be8cd9996b1e6dbc0f
MD5 b7935bd205d8ca23c85799267c5488cb
BLAKE2b-256 a0467fbe62a2dffddaf2aab78824b88201d82d416bd193730436396c6157e77b

See more details on using hashes here.

File details

Details for the file taperable_helix-0.8.9-py2.py3-none-any.whl.

File metadata

  • Download URL: taperable_helix-0.8.9-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.8

File hashes

Hashes for taperable_helix-0.8.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9319441995b90accab3a91b14613ea4b28444f0e81a3d84d8c8b55d623bcb46e
MD5 85945c122e8fa9118747e47ccc86ce51
BLAKE2b-256 f3996738c4b05bcc0ce197431b8c3a0bcc261e9f56d4f8e08b0805b201a555dc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page