qsketchmetric


Nameqsketchmetric JSON
Version 1.7.1 PyPI version JSON
download
home_pagehttps://github.com/MadScrewdriver/qsketchmetric
SummaryPython 2D parametric DXF rendering engine.
upload_time2023-11-06 10:15:57
maintainer
docs_urlNone
authorFranciszek Łajszczak
requires_python>=3.9
licenseMIT
keywords cad qcad 2d parametric drawing renderer python renderer python cad python 2d cad ppython 2d drawing python parametric drawing python parametric cad python qcad qcad python parametric qcad python parametric qcad qcad parametric qcad python parametric qcad python 2d
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![QSketchMetric logo](https://raw.githubusercontent.com/MadScrewdriver/qsketchmetric/main/docs/_static/Media/logo_QSM.png)

[![CI](https://github.com/MadScrewdriver/qsketchmetric/actions/workflows/tests.yml/badge.svg)](https://github.com/MadScrewdriver/qsketchmetric/actions/workflows/tests.yml)
[![Documentation Status](https://readthedocs.org/projects/qsketchmetric/badge/?version=latest)](https://qsketchmetric.readthedocs.io/en/latest/?badge=latest)
[![codecov](https://codecov.io/gh/MadScrewdriver/qsketchmetric/graph/badge.svg?token=OBMRQRRHUQ)](https://codecov.io/gh/MadScrewdriver/qsketchmetric)
![PyPI - Downloads](https://img.shields.io/pypi/dm/qsketchmetric)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![PyPI](https://img.shields.io/pypi/v/qsketchmetric.svg)](https://pypi.org/project/qsketchmetric/)
[![Python 3](https://img.shields.io/badge/python-3.9_|_3.10_|_3.11_|_3.12_-blue.svg)](https://www.python.org/downloads/release/python-3114/)
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)

**QSketchMetric** is a Python 2D **parametric DXF** CAD rendering engine. Parametrization is done using 
[**QCAD Professional software**](https://qcad.org/en/download)

## ⚡️ Quickstart

```python

from qsketchmetric.renderer import Renderer
from ezdxf import new
from ezdxf import units

output_dxf = new()
output_dxf.units = units.MM

input_parametric_dxf_path = 'tutorial.dxf'
input_variables = {"h": 50}

renderer = Renderer(input_parametric_dxf_path, output_dxf,
                    variables=input_variables)
renderer.render()

output_dxf.saveas('tutorial_rendered.dxf')
```

## 📷 Demo showcase

![Demo GIF](https://raw.githubusercontent.com/MadScrewdriver/qsketchmetric/main/docs/_static/Media/readme.gif)

## ⚙️ Installation

The most common case is the installation by [**pip package manager**](https://pip.pypa.io/en/stable/installation/):

```bash
  pip install qsketchmetric
```

##  📐 DXF Parametrization
Parametrization is done using [**QCAD Professional software**](https://qcad.org/en/download). 
You can download the [**free trial**](https://qcad.org/en/download) version of the software and use it for parametrization of your DXF files.
We need to use it because it is the only software that supports adding custom data to DXF entities. 
[**See docs to learn more...**](https://qsketchmetric.readthedocs.io/en/latest/how_to_guide/Manual%20parametrization.html)

## ✅ QSketchMetric Validator
To verify the proper parametrization of a DXF file during parametrization process, use the 
[**QSketchMetric Validator**](https://qsketchmetricvalidator.eu.pythonanywhere.com/). It is a web application that
allows you to upload DXF file and check if it is properly parametrized. 
In the event of an error, the app will give you full debug report. Including
place where the error occurred in the DXF file and the error message.
[**See docs to learn more...**](https://qsketchmetric.readthedocs.io/en/latest/how_to_guide/Validating%20a%20parameterized%20DXF%20file.html)


<table>
<tr>
<td>
<img src="https://raw.githubusercontent.com/MadScrewdriver/qsketchmetric/main/docs/_static/Media/success.gif" alt="success" width="100%"/>
</td>
<td>
<img src="https://raw.githubusercontent.com/MadScrewdriver/qsketchmetric/main/docs/_static/Media/error.gif" alt="error" width="100%"/>
</td>
</tr>
</table>

## 🎯 Features

-  Parametric **DXF** rendering
-  Easy dxf files parametrization using [**QCAD Professional software**](https://qcad.org/en/download)
-  Explicit support for parametrization of `LINE`,`CIRCLE`,`ARC`, `POINT` entities
-  Support for parametrization of `LWPOLYLINE`, `POLYLINE`, `SPLINE`, `ELLIPSE`, `MTEXT`, `TEXT` **etc.** entities using `INSERT` entity.
-  Open source and daily maintained

## 📚 Documentation
Documentation is available at [**QSketchMetric docs**](https://qsketchmetric.readthedocs.io/en/latest/)

## 📈 Roadmap
Explicit support for more entities is planned in the future. If you have any suggestions, please create an issue.
If you want to contribute, see 
[**How to contribute**](https://qsketchmetric.readthedocs.io/en/latest/How%20to%20contribute.html) 
section in the documentation. I am open to any suggestions
and waiting for your pull requests!

## ⚠️ License
QSketchMetric is licensed under the [**MIT**](https://opensource.org/licenses/MIT) license. 
When using the QSketchMetric in your open-source project I would be grateful for a reference to the repository.

## 🏆 Hall of fame
This project exists thanks to all the people who contribute. Thank you!

![GitHub Contributors Image](https://contrib.rocks/image?repo=MadScrewdriver/qsketchmetric)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/MadScrewdriver/qsketchmetric",
    "name": "qsketchmetric",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "CAD,QCAD,2D,parametric,drawing,renderer,python renderer,python CAD,python 2d CAD,ppython 2d drawing,python parametric drawing,python parametric CAD,python QCAD,QCAD python,parametric QCAD python,parametric QCAD,QCAD parametric,QCAD python parametric,QCAD python 2d,",
    "author": "Franciszek \u0141ajszczak",
    "author_email": "franciszek@lajszczak.dev",
    "download_url": "https://files.pythonhosted.org/packages/da/fb/c2a6d4a3cea79d13bc6670394cb65f1cf3746256043e755c78b3707d6ed8/qsketchmetric-1.7.1.tar.gz",
    "platform": null,
    "description": "![QSketchMetric logo](https://raw.githubusercontent.com/MadScrewdriver/qsketchmetric/main/docs/_static/Media/logo_QSM.png)\n\n[![CI](https://github.com/MadScrewdriver/qsketchmetric/actions/workflows/tests.yml/badge.svg)](https://github.com/MadScrewdriver/qsketchmetric/actions/workflows/tests.yml)\n[![Documentation Status](https://readthedocs.org/projects/qsketchmetric/badge/?version=latest)](https://qsketchmetric.readthedocs.io/en/latest/?badge=latest)\n[![codecov](https://codecov.io/gh/MadScrewdriver/qsketchmetric/graph/badge.svg?token=OBMRQRRHUQ)](https://codecov.io/gh/MadScrewdriver/qsketchmetric)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/qsketchmetric)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![PyPI](https://img.shields.io/pypi/v/qsketchmetric.svg)](https://pypi.org/project/qsketchmetric/)\n[![Python 3](https://img.shields.io/badge/python-3.9_|_3.10_|_3.11_|_3.12_-blue.svg)](https://www.python.org/downloads/release/python-3114/)\n[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n\n**QSketchMetric** is a Python 2D **parametric DXF** CAD rendering engine. Parametrization is done using \n[**QCAD Professional software**](https://qcad.org/en/download)\n\n## \u26a1\ufe0f Quickstart\n\n```python\n\nfrom qsketchmetric.renderer import Renderer\nfrom ezdxf import new\nfrom ezdxf import units\n\noutput_dxf = new()\noutput_dxf.units = units.MM\n\ninput_parametric_dxf_path = 'tutorial.dxf'\ninput_variables = {\"h\": 50}\n\nrenderer = Renderer(input_parametric_dxf_path, output_dxf,\n                    variables=input_variables)\nrenderer.render()\n\noutput_dxf.saveas('tutorial_rendered.dxf')\n```\n\n## \ud83d\udcf7 Demo showcase\n\n![Demo GIF](https://raw.githubusercontent.com/MadScrewdriver/qsketchmetric/main/docs/_static/Media/readme.gif)\n\n## \u2699\ufe0f Installation\n\nThe most common case is the installation by [**pip package manager**](https://pip.pypa.io/en/stable/installation/):\n\n```bash\n  pip install qsketchmetric\n```\n\n##  \ud83d\udcd0 DXF Parametrization\nParametrization is done using [**QCAD Professional software**](https://qcad.org/en/download). \nYou can download the [**free trial**](https://qcad.org/en/download) version of the software and use it for parametrization of your DXF files.\nWe need to use it because it is the only software that supports adding custom data to DXF entities. \n[**See docs to learn more...**](https://qsketchmetric.readthedocs.io/en/latest/how_to_guide/Manual%20parametrization.html)\n\n## \u2705 QSketchMetric Validator\nTo verify the proper parametrization of a DXF file during parametrization process, use the \n[**QSketchMetric Validator**](https://qsketchmetricvalidator.eu.pythonanywhere.com/). It is a web application that\nallows you to upload DXF file and check if it is properly parametrized. \nIn the event of an error, the app will give you full debug report. Including\nplace where the error occurred in the DXF file and the error message.\n[**See docs to learn more...**](https://qsketchmetric.readthedocs.io/en/latest/how_to_guide/Validating%20a%20parameterized%20DXF%20file.html)\n\n\n<table>\n<tr>\n<td>\n<img src=\"https://raw.githubusercontent.com/MadScrewdriver/qsketchmetric/main/docs/_static/Media/success.gif\" alt=\"success\" width=\"100%\"/>\n</td>\n<td>\n<img src=\"https://raw.githubusercontent.com/MadScrewdriver/qsketchmetric/main/docs/_static/Media/error.gif\" alt=\"error\" width=\"100%\"/>\n</td>\n</tr>\n</table>\n\n## \ud83c\udfaf Features\n\n-  Parametric **DXF** rendering\n-  Easy dxf files parametrization using [**QCAD Professional software**](https://qcad.org/en/download)\n-  Explicit support for parametrization of `LINE`,`CIRCLE`,`ARC`, `POINT` entities\n-  Support for parametrization of `LWPOLYLINE`, `POLYLINE`, `SPLINE`, `ELLIPSE`, `MTEXT`, `TEXT` **etc.** entities using `INSERT` entity.\n-  Open source and daily maintained\n\n## \ud83d\udcda Documentation\nDocumentation is available at [**QSketchMetric docs**](https://qsketchmetric.readthedocs.io/en/latest/)\n\n## \ud83d\udcc8 Roadmap\nExplicit support for more entities is planned in the future. If you have any suggestions, please create an issue.\nIf you want to contribute, see \n[**How to contribute**](https://qsketchmetric.readthedocs.io/en/latest/How%20to%20contribute.html) \nsection in the documentation. I am open to any suggestions\nand waiting for your pull requests!\n\n## \u26a0\ufe0f License\nQSketchMetric is licensed under the [**MIT**](https://opensource.org/licenses/MIT) license. \nWhen using the QSketchMetric in your open-source project I would be grateful for a reference to the repository.\n\n## \ud83c\udfc6 Hall of fame\nThis project exists thanks to all the people who contribute. Thank you!\n\n![GitHub Contributors Image](https://contrib.rocks/image?repo=MadScrewdriver/qsketchmetric)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python 2D parametric DXF rendering engine.",
    "version": "1.7.1",
    "project_urls": {
        "Documentation": "https://qsketchmetric.readthedocs.io/",
        "Homepage": "https://github.com/MadScrewdriver/qsketchmetric"
    },
    "split_keywords": [
        "cad",
        "qcad",
        "2d",
        "parametric",
        "drawing",
        "renderer",
        "python renderer",
        "python cad",
        "python 2d cad",
        "ppython 2d drawing",
        "python parametric drawing",
        "python parametric cad",
        "python qcad",
        "qcad python",
        "parametric qcad python",
        "parametric qcad",
        "qcad parametric",
        "qcad python parametric",
        "qcad python 2d",
        ""
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "237c1d5ea68b12eb94e924caf770df17fb0299cb5b17470b6a4c555151630adf",
                "md5": "7b52395c2ef7032cfd331beb1c9e5dd4",
                "sha256": "b519772d0c30d968a408810fd553fc63dba17dbc20cb54d1115729fc0292dd99"
            },
            "downloads": -1,
            "filename": "qsketchmetric-1.7.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7b52395c2ef7032cfd331beb1c9e5dd4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 17674,
            "upload_time": "2023-11-06T10:15:55",
            "upload_time_iso_8601": "2023-11-06T10:15:55.969479Z",
            "url": "https://files.pythonhosted.org/packages/23/7c/1d5ea68b12eb94e924caf770df17fb0299cb5b17470b6a4c555151630adf/qsketchmetric-1.7.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dafbc2a6d4a3cea79d13bc6670394cb65f1cf3746256043e755c78b3707d6ed8",
                "md5": "47f57645853e7132d1b7702a1f123df3",
                "sha256": "720ecc79477c29f55087b3e3828914b9002ac8c42bd9805e3160efcc6311a350"
            },
            "downloads": -1,
            "filename": "qsketchmetric-1.7.1.tar.gz",
            "has_sig": false,
            "md5_digest": "47f57645853e7132d1b7702a1f123df3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 17668,
            "upload_time": "2023-11-06T10:15:57",
            "upload_time_iso_8601": "2023-11-06T10:15:57.103339Z",
            "url": "https://files.pythonhosted.org/packages/da/fb/c2a6d4a3cea79d13bc6670394cb65f1cf3746256043e755c78b3707d6ed8/qsketchmetric-1.7.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-11-06 10:15:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MadScrewdriver",
    "github_project": "qsketchmetric",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "qsketchmetric"
}
        
Elapsed time: 0.18552s