ocp-freecad-cam


Nameocp-freecad-cam JSON
Version 0.9.4 PyPI version JSON
download
home_page
SummaryOCP FreeCAD CAM
upload_time2023-07-03 19:07:03
maintainer
docs_urlNone
author
requires_python>=3.10
licenseApache License 2.0
keywords cadquery viewer
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![image](https://github.com/voneiden/ocp-freecad-cam/assets/437576/79a0247a-c28c-43b0-b324-b71881ba3d96)


# Overview

oc-freecad-cam exposes FreeCAD's Path workbench in a fluent python API that takes
OCP TopoDS_Shape objects and their wrappers from CadQuery and Build123d to enable generating
parametric tool paths from the comfort of your keyboard.

![image](https://github.com/voneiden/ocp-freecad-cam/assets/437576/48264cf9-6155-4f24-8094-0bb9aab00777)


⚠ NOTE ⚠
--------

This project is fairly experimental at this stage. Expect bugs and always
double-check the generated gcode for naughty surprises.
# Usage

See documentation at 
https://ocp-freecad-cam.readthedocs.io/en/latest/

# Installation
ocp-freecad-cam does not attempt to install runtime dependencies. Your environment must have available
CadQuery and/or Build123d, or just OCP if you're feeling raw.

ocp-freecad-cam is available on pypi: https://pypi.org/project/ocp-freecad-cam/

ocp-freecad-cam requires currently a relatively fresh build of FreeCAD, ie. weekly build from
https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds

The Path module of FreeCAD has seen major refactorings in 2023 so older versions are not compatible.

## Runtime dependencies summary
* FreeCAD weekly 2023-06-04 or newer
* [OCP](https://github.com/CadQuery/OCP)
  * [CadQuery](https://github.com/CadQuery/cadquery)
  * [Build123d](https://github.com/gumyr/build123d)

## Dev dependecies

Dev dependencies are listed in requirements-dev.txt, generated from requirements-dev.in with `pip-compile`

## Using FreeCAD AppImage

Weekly AppImage is an easy way to get started. Download the AppImage, place it in a suitable empty folder
and extract it.

```bash
mkdir ~/freecad
cp ~/Downloads/FreeCAD_weekly-builds-33345-2023-06-04-conda-Linux-x86_64-py310.AppImage ~/freecad
cd ~/freecad
chmod +x ./FreeCAD_weekly-builds-33345-2023-06-04-conda-Linux-x86_64-py310.AppImage
./FreeCAD_weekly-builds-33345-2023-06-04-conda-Linux-x86_64-py310.AppImage --appimage-extract
```

## Configuring FreeCAD paths
For this module to work, it needs to be able to find 

1) FreeCAD C libraries
2) FreeCAD Path python libraries
3) (AppImage only?) Some other Python modules located in FreeCAD's site-packages

This can be done by updating your virtual environment PYTHONPATH or by creating a pth file in site-packages.

The three paths (also contents of the .pth file) for the above AppImage example are

```bash
/home/user/freecad/squashfs-root/usr/lib
/home/user/freecad/squashfs-root/usr/Mod/Path
/home/user/freecad/squashfs-root/usr/lib/python3.10/site-packages/
```

in a file like 

`/home/user/miniconda3/envs/cq/lib/python3.10/site-packages/freecad.pth`


# Limitations

Pocket3D does not work, possibly related to https://github.com/FreeCAD/FreeCAD/issues/6815 - shouldn't be a big loss
though, Surface3D can get the same things done IMO.

VCarve can produce unstable toolpaths, but that is probably a bug in the underlying openvoronoi library. Tweaking the 
job params may help.

# Contributing

Contributions are welcome.

* Missing params, fixes
* Tests
* Documentation

## PR's

Apply black and isort and ensure that tests pass. Preferably also include test coverage for new code.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "ocp-freecad-cam",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "cadquery,viewer",
    "author": "",
    "author_email": "Matti Eiden <snaipperi@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/86/c7/3825a3a1bc639bf428fa6f6bcaa009ddcf147db928ca34bc943491735500/ocp-freecad-cam-0.9.4.tar.gz",
    "platform": null,
    "description": "![image](https://github.com/voneiden/ocp-freecad-cam/assets/437576/79a0247a-c28c-43b0-b324-b71881ba3d96)\n\n\n# Overview\n\noc-freecad-cam exposes FreeCAD's Path workbench in a fluent python API that takes\nOCP TopoDS_Shape objects and their wrappers from CadQuery and Build123d to enable generating\nparametric tool paths from the comfort of your keyboard.\n\n![image](https://github.com/voneiden/ocp-freecad-cam/assets/437576/48264cf9-6155-4f24-8094-0bb9aab00777)\n\n\n\u26a0 NOTE \u26a0\n--------\n\nThis project is fairly experimental at this stage. Expect bugs and always\ndouble-check the generated gcode for naughty surprises.\n# Usage\n\nSee documentation at \nhttps://ocp-freecad-cam.readthedocs.io/en/latest/\n\n# Installation\nocp-freecad-cam does not attempt to install runtime dependencies. Your environment must have available\nCadQuery and/or Build123d, or just OCP if you're feeling raw.\n\nocp-freecad-cam is available on pypi: https://pypi.org/project/ocp-freecad-cam/\n\nocp-freecad-cam requires currently a relatively fresh build of FreeCAD, ie. weekly build from\nhttps://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds\n\nThe Path module of FreeCAD has seen major refactorings in 2023 so older versions are not compatible.\n\n## Runtime dependencies summary\n* FreeCAD weekly 2023-06-04 or newer\n* [OCP](https://github.com/CadQuery/OCP)\n  * [CadQuery](https://github.com/CadQuery/cadquery)\n  * [Build123d](https://github.com/gumyr/build123d)\n\n## Dev dependecies\n\nDev dependencies are listed in requirements-dev.txt, generated from requirements-dev.in with `pip-compile`\n\n## Using FreeCAD AppImage\n\nWeekly AppImage is an easy way to get started. Download the AppImage, place it in a suitable empty folder\nand extract it.\n\n```bash\nmkdir ~/freecad\ncp ~/Downloads/FreeCAD_weekly-builds-33345-2023-06-04-conda-Linux-x86_64-py310.AppImage ~/freecad\ncd ~/freecad\nchmod +x ./FreeCAD_weekly-builds-33345-2023-06-04-conda-Linux-x86_64-py310.AppImage\n./FreeCAD_weekly-builds-33345-2023-06-04-conda-Linux-x86_64-py310.AppImage --appimage-extract\n```\n\n## Configuring FreeCAD paths\nFor this module to work, it needs to be able to find \n\n1) FreeCAD C libraries\n2) FreeCAD Path python libraries\n3) (AppImage only?) Some other Python modules located in FreeCAD's site-packages\n\nThis can be done by updating your virtual environment PYTHONPATH or by creating a pth file in site-packages.\n\nThe three paths (also contents of the .pth file) for the above AppImage example are\n\n```bash\n/home/user/freecad/squashfs-root/usr/lib\n/home/user/freecad/squashfs-root/usr/Mod/Path\n/home/user/freecad/squashfs-root/usr/lib/python3.10/site-packages/\n```\n\nin a file like \n\n`/home/user/miniconda3/envs/cq/lib/python3.10/site-packages/freecad.pth`\n\n\n# Limitations\n\nPocket3D does not work, possibly related to https://github.com/FreeCAD/FreeCAD/issues/6815 - shouldn't be a big loss\nthough, Surface3D can get the same things done IMO.\n\nVCarve can produce unstable toolpaths, but that is probably a bug in the underlying openvoronoi library. Tweaking the \njob params may help.\n\n# Contributing\n\nContributions are welcome.\n\n* Missing params, fixes\n* Tests\n* Documentation\n\n## PR's\n\nApply black and isort and ensure that tests pass. Preferably also include test coverage for new code.\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "OCP FreeCAD CAM",
    "version": "0.9.4",
    "project_urls": {
        "Bug Tracker": "https://github.com/voneiden/ocp-freecad-cam/issues/",
        "Documentation": "https://github.com/voneiden/ocp-freecad-cam/",
        "Source Code": "https://github.com/voneiden/ocp-freecad-cam/"
    },
    "split_keywords": [
        "cadquery",
        "viewer"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0f6587ab75c2c310f97f0f3cdc5df51877b9f9e3f9b7e0707f8326c3737da765",
                "md5": "ae838a902e72f814a0f5f9db78047d0c",
                "sha256": "65ecfb60e44ea25d295b764ee9c375031d8a2b305c50051731a1b6e77240e4df"
            },
            "downloads": -1,
            "filename": "ocp_freecad_cam-0.9.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ae838a902e72f814a0f5f9db78047d0c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 31200,
            "upload_time": "2023-07-03T19:07:01",
            "upload_time_iso_8601": "2023-07-03T19:07:01.707995Z",
            "url": "https://files.pythonhosted.org/packages/0f/65/87ab75c2c310f97f0f3cdc5df51877b9f9e3f9b7e0707f8326c3737da765/ocp_freecad_cam-0.9.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "86c73825a3a1bc639bf428fa6f6bcaa009ddcf147db928ca34bc943491735500",
                "md5": "94bbc0cb0e87e09851b643edddf4f023",
                "sha256": "e29582f5542244ab605b51612e32445f3fa2dd5b7aa6b8a12e2428b804e20de5"
            },
            "downloads": -1,
            "filename": "ocp-freecad-cam-0.9.4.tar.gz",
            "has_sig": false,
            "md5_digest": "94bbc0cb0e87e09851b643edddf4f023",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 124612,
            "upload_time": "2023-07-03T19:07:03",
            "upload_time_iso_8601": "2023-07-03T19:07:03.136839Z",
            "url": "https://files.pythonhosted.org/packages/86/c7/3825a3a1bc639bf428fa6f6bcaa009ddcf147db928ca34bc943491735500/ocp-freecad-cam-0.9.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-03 19:07:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "voneiden",
    "github_project": "ocp-freecad-cam",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "ocp-freecad-cam"
}
        
Elapsed time: 0.08459s