Skip to main content

Python 2D parametric DXF rendering engine.

Project description

QSketchMetric logo

CI Documentation Status codecov PyPI - Downloads License: MIT PyPI Python 3 Checked with mypy

QSketchMetric is a Python 2D parametric DXF CAD rendering engine. Parametrization is done using QCAD Professional software

⚡️ Quickstart

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

⚙️ Installation

The most common case is the installation by pip package manager:

  pip install qsketchmetric

📐 DXF Parametrization

Parametrization is done using QCAD Professional software. You can download the free trial 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...

✅ QSketchMetric Validator

To verify the proper parametrization of a DXF file during parametrization process, use the QSketchMetric Validator. 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...

success error

🎯 Features

  • Parametric DXF rendering
  • Easy dxf files parametrization using QCAD Professional software
  • 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

📈 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 section in the documentation. I am open to any suggestions and waiting for your pull requests!

⚠️ License

QSketchMetric is licensed under the 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

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

qsketchmetric-1.7.2.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

qsketchmetric-1.7.2-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file qsketchmetric-1.7.2.tar.gz.

File metadata

  • Download URL: qsketchmetric-1.7.2.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for qsketchmetric-1.7.2.tar.gz
Algorithm Hash digest
SHA256 75ad8b17931c393e98119accf078d46a25f5b1a8545d646cabb668299cde9fba
MD5 bc2d5d5ab771688c07f26cfe7c35fec9
BLAKE2b-256 909167d48ec5a6d7821c5c85e97b36fe9e9f7db6e05ca4a05a1970349d146f5b

See more details on using hashes here.

File details

Details for the file qsketchmetric-1.7.2-py3-none-any.whl.

File metadata

File hashes

Hashes for qsketchmetric-1.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7d1378b5b3aa5b401b959280cd957c8bab76b5c1730a6fd0225328e4d409fe1c
MD5 e16e533c824e9fb11c4b8366303b8cef
BLAKE2b-256 d57fdc0b1ca97fc22b1adc35ed1ae18a57578887f9574f258a1dc3a8b8c5a276

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