pymadcad


Namepymadcad JSON
Version 0.18.1 PyPI version JSON
download
home_pagehttps://github.com/jimy-byerley/pymadcad
SummarySimple yet powerful CAD (Computer Aided Design) library, written with Python
upload_time2024-11-13 19:23:52
maintainerNone
docs_urlNone
authorYves Dejonghe
requires_python>=3.8
licenseGNU LGPL v3
keywords cad 3d parametric mesh kinematic solid solver part design
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![madcad-logo](docs/logo.png)

# Py-MADCAD

*>>> it's time to throw parametric softwares out !*

Simple yet powerful CAD (Computer Aided Design) library, written with Python.

- [Official website](https://madcad.netlify.app)
- [Installation](https://pymadcad.readthedocs.io/en/latest/installation.html)
- [Documentation](https://pymadcad.readthedocs.io/)
- [Repository](https://github.com/jimy-byerley/pymadcad)
- [Matrix community](https://matrix.to/#/#madcad:matrix.org)

[![support-version](https://img.shields.io/pypi/pyversions/pymadcad.svg)](https://img.shields.io/pypi/pyversions/pymadcad)
[![PyPI version shields.io](https://img.shields.io/pypi/v/pymadcad.svg)](https://pypi.org/project/pymadcad/)
[![Documentation Status](https://readthedocs.org/projects/pymadcad/badge/?version=latest)](https://pymadcad.readthedocs.io/en/latest/?badge=latest)
[![#madcad:matrix.org](https://img.shields.io/matrix/madcad:matrix.org.svg)](https://matrix.to/#/#madcad:matrix.org)

## Features

- surface generation (3D sketch primitives, extrusion, revolution, inflation, tubes, ...)
- fast boolean operations
- common mesh file format import/export
- kinematic manipulation
- implicit geometry definition through the constraint/solver system
- objects display with high-quality graphics

![example-bearing](examples/bearing.png)

Checkout some [complete examples](examples)


## Sample usage

```python
from madcad import *

# define points
O = vec3(0)
A = vec3(2,0,0)
B = vec3(1,2,0)
C = vec3(0,2,0)

# create a list of primitives
line = [
	Segment(O, A),          
	ArcThrough(A, B, C),
	Segment(C,O),           
	]

# create and solve constraints
solve([
		Tangent(line[0], line[1], A),   
		Tangent(line[1], line[2], C),   
		Radius(line[1], 1.5),           
	], fixed=[O])

# generate surfaces
part = extrusion(line, vec3(0,0,1))

# display in a 3D scene
show([part])
```

The result will be this window
![example-window](docs/screenshots/readme-example.png)


## About

MADCAD is born from the idea that the current approach of parametric CADs for mechanical engineering is not the best possible. This library is part of a project targeting the best possible mechanical design tool for both engineers and handymen. See the 
[comparison](https://pymadcad.readthedocs.io/en/latest/concepts.html#comparison-with-existing-cad-softwares) 
for more details.

## License   ![LGPL logo](https://www.gnu.org/graphics/lgplv3-88x31.png)

Copyright 2019-2023 Yves Dejonghe <jimy.byerley@gmail.com>

This library is distributed under the LGPL-v3 license. A copy of that license is provided with this software.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/jimy-byerley/pymadcad",
    "name": "pymadcad",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "CAD 3D parametric mesh kinematic solid solver part design",
    "author": "Yves Dejonghe",
    "author_email": "jimy.byerley@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/1f/4b/c8cf09d2e72de2c102861cfe98747ab7edbfce52953625d2f07f752c5df9/pymadcad-0.18.1.tar.gz",
    "platform": null,
    "description": "![madcad-logo](docs/logo.png)\n\n# Py-MADCAD\n\n*>>> it's time to throw parametric softwares out !*\n\nSimple yet powerful CAD (Computer Aided Design) library, written with Python.\n\n- [Official website](https://madcad.netlify.app)\n- [Installation](https://pymadcad.readthedocs.io/en/latest/installation.html)\n- [Documentation](https://pymadcad.readthedocs.io/)\n- [Repository](https://github.com/jimy-byerley/pymadcad)\n- [Matrix community](https://matrix.to/#/#madcad:matrix.org)\n\n[![support-version](https://img.shields.io/pypi/pyversions/pymadcad.svg)](https://img.shields.io/pypi/pyversions/pymadcad)\n[![PyPI version shields.io](https://img.shields.io/pypi/v/pymadcad.svg)](https://pypi.org/project/pymadcad/)\n[![Documentation Status](https://readthedocs.org/projects/pymadcad/badge/?version=latest)](https://pymadcad.readthedocs.io/en/latest/?badge=latest)\n[![#madcad:matrix.org](https://img.shields.io/matrix/madcad:matrix.org.svg)](https://matrix.to/#/#madcad:matrix.org)\n\n## Features\n\n- surface generation (3D sketch primitives, extrusion, revolution, inflation, tubes, ...)\n- fast boolean operations\n- common mesh file format import/export\n- kinematic manipulation\n- implicit geometry definition through the constraint/solver system\n- objects display with high-quality graphics\n\n![example-bearing](examples/bearing.png)\n\nCheckout some [complete examples](examples)\n\n\n## Sample usage\n\n```python\nfrom madcad import *\n\n# define points\nO = vec3(0)\nA = vec3(2,0,0)\nB = vec3(1,2,0)\nC = vec3(0,2,0)\n\n# create a list of primitives\nline = [\n\tSegment(O, A),          \n\tArcThrough(A, B, C),\n\tSegment(C,O),           \n\t]\n\n# create and solve constraints\nsolve([\n\t\tTangent(line[0], line[1], A),   \n\t\tTangent(line[1], line[2], C),   \n\t\tRadius(line[1], 1.5),           \n\t], fixed=[O])\n\n# generate surfaces\npart = extrusion(line, vec3(0,0,1))\n\n# display in a 3D scene\nshow([part])\n```\n\nThe result will be this window\n![example-window](docs/screenshots/readme-example.png)\n\n\n## About\n\nMADCAD is born from the idea that the current approach of parametric CADs for mechanical engineering is not the best possible. This library is part of a project targeting the best possible mechanical design tool for both engineers and handymen. See the \n[comparison](https://pymadcad.readthedocs.io/en/latest/concepts.html#comparison-with-existing-cad-softwares) \nfor more details.\n\n## License   ![LGPL logo](https://www.gnu.org/graphics/lgplv3-88x31.png)\n\nCopyright 2019-2023 Yves Dejonghe <jimy.byerley@gmail.com>\n\nThis library is distributed under the LGPL-v3 license. A copy of that license is provided with this software.\n",
    "bugtrack_url": null,
    "license": "GNU LGPL v3",
    "summary": "Simple yet powerful CAD (Computer Aided Design) library, written with Python",
    "version": "0.18.1",
    "project_urls": {
        "Homepage": "https://github.com/jimy-byerley/pymadcad"
    },
    "split_keywords": [
        "cad",
        "3d",
        "parametric",
        "mesh",
        "kinematic",
        "solid",
        "solver",
        "part",
        "design"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1f4bc8cf09d2e72de2c102861cfe98747ab7edbfce52953625d2f07f752c5df9",
                "md5": "f01f679435380a221c1e1381e4596485",
                "sha256": "2bab084daa8340fb2473e1dc0debbfc0761e2dd34f86424da778df61fffa2447"
            },
            "downloads": -1,
            "filename": "pymadcad-0.18.1.tar.gz",
            "has_sig": false,
            "md5_digest": "f01f679435380a221c1e1381e4596485",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 1319341,
            "upload_time": "2024-11-13T19:23:52",
            "upload_time_iso_8601": "2024-11-13T19:23:52.840765Z",
            "url": "https://files.pythonhosted.org/packages/1f/4b/c8cf09d2e72de2c102861cfe98747ab7edbfce52953625d2f07f752c5df9/pymadcad-0.18.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-13 19:23:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jimy-byerley",
    "github_project": "pymadcad",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pymadcad"
}
        
Elapsed time: 4.10302s