pull/183/head
Franckapik 2021-04-28 22:53:04 +02:00
rodzic b223bd847d
commit 6679aab918
7 zmienionych plików z 395 dodań i 32 usunięć

155
README.md
Wyświetl plik

@ -1,41 +1,130 @@
![BlenderCAM](./static/logo.png)
# BlenderCam - CNC path addon
<center>
![BlenderCAM](images/logo.png)
- - -
### An open source solution for artistic CAM with Blender 3D
<p align="center">
[![Chat on Matrix](https://img.shields.io/matrix/blendercam:matrix.org?label=Chat%20on%20Matrix)](https://riot.im/app/#/room/#blendercam:matrix.org)
[![Chat on Freenode](https://img.shields.io/badge/chat-on%20freenode-brightgreen.svg)](http://webchat.freenode.net/?channels=%23blendercam)
[![Chat on Freenode](https://img.shields.io/github/issues/vilemduha/blendercam)](https://github.com/vilemduha/blendercam)
![Last commit](https://img.shields.io/github/last-commit/vilemduha/blendercam)
![Contributors](https://img.shields.io/github/contributors/vilemduha/blendercam)
![Size](https://img.shields.io/github/repo-size/vilemduha/blendercam)
![License](https://img.shields.io/github/license/vilemduha/blendercam)
</p>
<br>
<p align="center">
[About](#About) • [How to use](#How-to-use-(Wiki)) • [Features](#Features) • [Post-Processors](#Post-processors) • [Contributing](#Contributing) • [License](#Disclaimer)
</p>
<br>
![Blendercam](images/suzanne.png)
</center>
## 👁️ About
Blender CAM is an open source solution for artistic CAM - Computer aided machining - a g-code generation tool.
Blender CAM is an extension for the free open-source Blender 3d package.
It has been used for many milling projects, and is actively developed.
Blender CAM is an add-on for the free open-source [Blender 3d package](https://www.blender.org/).
It has been used for many milling projects, and is actively developed. If you are a developer who would like to help, don't hesistate to fork the project and start generating pull requests.
## 👨‍🎓 How to use (Wiki)
![Linux](https://img.shields.io/badge/Plateform-Linux%20|%20Windows-brightgreen.svg)
BlenderCam is recommended with Linux. BlenderCam can work on Windows but the installation of a dependency (OpenCamlib) is tricky.
* [BlenderCam Installation](./Blendercam_installation.md)
* [Getting started](./Getting_started.md)
* [Panel descriptions](./Blendercam-Panel-Descriptions.md)
* [Tools](./Blendercam-Tools.md)
* [Example of using Profile and Pocket operations](./Profile_and_Pocket_operations.md)
## 👌 Features
| | Blender 2.92 and 2.80
| -------------------------- | :----------------: |
| Several milling strategies for 2D and 3D | ✔️ |
| Cutter types: ball, flat, v-carve with various angles, user definable | ✔️ |
| work with 3d data or depth images | ✔️ |
| Layers and skin for roughing. | ✔️ |
| Inverse milling | ✔️ |
| Various options for ambient around model | ✔️ |
| protection of vertical surfaces | ✔️ |
| Stay low - option for movement | ✔️ |
| Material size setup | ✔️ |
| Simulation of 3d operations | ✔️ |
| Helix entry, arc retract, ramp down for some of the strategies. | ✔️ |
| Automatic bridges for cutout operation | ✔️ |
| Chain export and simulation | ✔️ |
| Background computing of the operations, so you can continue working | ✔️ |
## 💻 Post-processors
* GRBL
* Iso
* LinuxCNC - EMC2
* Fadal
* Heidenhain
* Sieg KX1
* Hafco HM-50
* Centroïd M40
* Anilam Crusader M
* Gravos
* WinPC-NC
* ShopBot MTC
* Lynx Otter o
* ...
## 🔬 Pending features
* motion direction - classic, conventional, meander, are only partially supported
* 4 and 5 axis milling
## 📒 Files organisation
```
.
├── config
├── scripts
│   ├── addons
│   │   ├── cam
│   │   │   ├── nc
│   │   │   └── opencamlib
│   │   ├── GPack
│   │   └── print_3d
│   │   ├── ini
│   │   └── machine_profiles
│   └── presets
│   ├── cam_cutters
│   ├── cam_machines
│   └── cam_operations
└── static
```
## 🤝 Contributing
BlenderCAM has been used for many milling projects, and is actively developed.
If you are a developer who would like to help, fork and open pull requests
[![Chat on Matrix](https://img.shields.io/matrix/blendercam:matrix.org?label=Chat%20on%20Matrix)](https://riot.im/app/#/room/#blendercam:matrix.org)
## Installation and Usage
See the [Wiki](https://github.com/vilemduha/blendercam/wiki).
## Resources
* [Development](https://github.com/vilemduha/blendercam)
* [Documentation](https://github.com/vilemduha/blendercam/wiki)
* [Freenode IRC](http://webchat.freenode.net/?channels=%23blendercam) (#blendercam)
* [The Matrix](https://riot.im/app/#/room/#blendercam:matrix.org) (#blendercam:matrix.org)
* [Issue Tracker](https://github.com/blendercam/blendercam/issues)
## Dependencies
* Blender 2.80 or 2.92
* OpenCamLib (optional but highly recomended - required for ballcone and bullnose cutter support)
* Recomended on Linux.
* No instructions for Mac users (unknown if opencamlib works)
* OpenCamlib can work on Windows but installation is tricky
* Equation python module (~/Apps/blender-2.92/2.92/python/bin/pip3 install Equation)
## DISCLAIMER
## 🤕 DISCLAIMER
THE AUTHORS OF THIS SOFTWARE ACCEPT ABSOLUTELY NO LIABILITY FOR
ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE
@ -47,3 +136,7 @@ codes, and the authors of this software can not, and do not, take
any responsibility for such compliance.
This software is released under the GPLv2.

1
blendercam.wiki 160000

@ -0,0 +1 @@
Subproject commit 0f58262dc397578d83a4d6e451c8d38f7273d187

Wyświetl plik

@ -45,6 +45,9 @@ $ ./pip3 install Equation
**Note:** if you are using a Blender with a bundled Python then shapely and numpy must be installed in the `site-packages` directory of the bundled python. For Blender 2.8 only Shapely is needed. To install it, open terminal, get to Blender directory and use PIP:
`cd 2.80/python/bin/`
@ -95,7 +98,7 @@ Now when ever blender is started, the external blendercam add-on will be enabled
## 4. (Optional) Install Opencamlib
To install OpenCamLib, you can follow this link.
To install OpenCamLib, you can follow [this link](./Opencamlib_Installation.md).
[OpenCAMLib](https://github.com/aewallin/opencamlib) is an open source CAM library created by Anders Wallin. It offers high quality waterline generation and drop cutter sampling algorithms. For drop cutter algorithms it's more reliable than Bullet Physics (Blender's built-in collision detection library) and offers better performance (up to 30 times faster than regular algorithm on 24-core machine).

Wyświetl plik

@ -0,0 +1,142 @@
<center>
![BlenderCAM](images/logo.png)
- - -
### An open source solution for artistic CAM with Blender 3D
<p align="center">
[![Chat on Matrix](https://img.shields.io/matrix/blendercam:matrix.org?label=Chat%20on%20Matrix)](https://riot.im/app/#/room/#blendercam:matrix.org)
[![Chat on Freenode](https://img.shields.io/badge/chat-on%20freenode-brightgreen.svg)](http://webchat.freenode.net/?channels=%23blendercam)
[![Chat on Freenode](https://img.shields.io/github/issues/vilemduha/blendercam)](https://github.com/vilemduha/blendercam)
![Last commit](https://img.shields.io/github/last-commit/vilemduha/blendercam)
![Contributors](https://img.shields.io/github/contributors/vilemduha/blendercam)
![Size](https://img.shields.io/github/repo-size/vilemduha/blendercam)
![License](https://img.shields.io/github/license/vilemduha/blendercam)
</p>
<br>
<p align="center">
[About](#About) • [How to use](#How-to-use-(Wiki)) • [Features](#Features) • [Post-Processors](#Post-processors) • [Contributing](#Contributing) • [License](#Disclaimer)
</p>
<br>
![Blendercam](images/suzanne.png)
</center>
## 👁️ About
Blender CAM is an open source solution for artistic CAM - Computer aided machining - a g-code generation tool.
Blender CAM is an add-on for the free open-source [Blender 3d package](https://www.blender.org/).
It has been used for many milling projects, and is actively developed. If you are a developer who would like to help, don't hesistate to fork the project and start generating pull requests.
## 👨‍🎓 How to use (Wiki)
![Linux](https://img.shields.io/badge/Plateform-Linux%20|%20Windows-brightgreen.svg)
BlenderCam is recommended with Linux. BlenderCam can work on Windows but the installation of a dependency (OpenCamlib) is tricky.
* [BlenderCam Installation](./Blendercam_installation.md)
* [Getting started](./Getting_started.md)
* [Panel descriptions](./Blendercam-Panel-Descriptions.md)
* [Tools](./Blendercam-Tools.md)
* [Example of using Profile and Pocket operations](./Profile_and_Pocket_operations.md)
## 👌 Features
| | Blender 2.92 and 2.80
| -------------------------- | :----------------: |
| Several milling strategies for 2D and 3D | ✔️ |
| Cutter types: ball, flat, v-carve with various angles, user definable | ✔️ |
| work with 3d data or depth images | ✔️ |
| Layers and skin for roughing. | ✔️ |
| Inverse milling | ✔️ |
| Various options for ambient around model | ✔️ |
| protection of vertical surfaces | ✔️ |
| Stay low - option for movement | ✔️ |
| Material size setup | ✔️ |
| Simulation of 3d operations | ✔️ |
| Helix entry, arc retract, ramp down for some of the strategies. | ✔️ |
| Automatic bridges for cutout operation | ✔️ |
| Chain export and simulation | ✔️ |
| Background computing of the operations, so you can continue working | ✔️ |
## 💻 Post-processors
* GRBL
* Iso
* LinuxCNC - EMC2
* Fadal
* Heidenhain
* Sieg KX1
* Hafco HM-50
* Centroïd M40
* Anilam Crusader M
* Gravos
* WinPC-NC
* ShopBot MTC
* Lynx Otter o
* ...
## 🔬 Pending features
* motion direction - classic, conventional, meander, are only partially supported
* 4 and 5 axis milling
## 📒 Files organisation
```
.
├── config
├── scripts
│   ├── addons
│   │   ├── cam
│   │   │   ├── nc
│   │   │   └── opencamlib
│   │   ├── GPack
│   │   └── print_3d
│   │   ├── ini
│   │   └── machine_profiles
│   └── presets
│   ├── cam_cutters
│   ├── cam_machines
│   └── cam_operations
└── static
```
## 🤝 Contributing
BlenderCAM has been used for many milling projects, and is actively developed.
If you are a developer who would like to help, fork and open pull requests
## 🤕 DISCLAIMER
THE AUTHORS OF THIS SOFTWARE ACCEPT ABSOLUTELY NO LIABILITY FOR
ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE
TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of
harming persons must have provisions for completely removing power
from all motors, etc, before persons enter any danger area. All
machinery must be designed to comply with local and national safety
codes, and the authors of this software can not, and do not, take
any responsibility for such compliance.
This software is released under the GPLv2.

Wyświetl plik

@ -0,0 +1,124 @@
# Installation
## Obtaining Blender
Download portable version for linux64 2.83 or 2.92
from a command line as user to download and extract blender
```
$ cd ~/
$ mkdir Apps
$ cd Apps
$ wget https://ftp.nluug.nl/pub/graphics/blender/release/Blender2.92/blender-2.92.0-linux64.tar.xz
$ tar xf blender-2.92.0-linux64.tar.xz
$ cd blender-2.92.0-linux64/2.92/python/bin
$ ./python3.7m -m ensurepip
$ ./pip3 install shapely
$ ./pip3 install vtk
$ ./pip3 install Equation
```
## Obtaining OpenCamLib
installing python and libboost-python headers
```
$ sudo apt install python3-dev libboost-python-dev
```
get the latest aewallin opencamlib sources
```
$ cd ~/Apps
$ git clone https://github.com/aewallin/opencamlib.git
$ cd opencamlib
$ mkdir build
$ cd build
$ cmake -DBUILD_PY_LIB=ON -DBUILD_CXX_LIB=ON -DUSE_PY_3=ON ..
$ make
```
this is optional
```
$ sudo make install
```
at this point opencamlib is compiled
if you ran ```make install```the terminal may show messages similar to this
```
[0/1] Install the project...
-- Install configuration: ""
-- Installing: /usr/lib/python3.8/site-packages/ocl.so
-- Up-to-date: /usr/lib/python3.8/site-packages
-- Up-to-date: /usr/lib/python3.8/site-packages/STLTools.py
-- Up-to-date: /usr/lib/python3.8/site-packages/procmemory.py
-- Up-to-date: /usr/lib/python3.8/site-packages/camvtk.py
-- Up-to-date: /usr/lib/python3.8/site-packages/pyocl.py
```
the python 3 version may depend on your system
## Installing OpenCamLib in Blender
now we need to link some files to the blender python3.7 interpreter
Depending on your base system python files may be in other place
from system if ran ```make install``` files should be here
```
/usr/lib/python3/dist-packages/ocl.so
```
or from opencamlib src dir
```
opencamlib/build/src/ocl.so
opencamlib/src/lib/STLTools.py
opencamlib/src/lib/procmemory.py
opencamlib/src/lib/camvtk.py
opencamlib/src/lib/pyocl.py
```
please change the following instrutions to macth
```
$ ln -s /usr/lib/python3.8/site-packages/ocl.so ~/Apps/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/
$ ln -s /usr/lib/python3.8/site-packages/STLTools.py ~/Apps/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/
$ ln -s /usr/lib/python3.8/site-packages/procmemory.py ~/Apps/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/
$ ln -s /usr/lib/python3.8/site-packages/camvtk.py ~/Apps/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/
$ ln -s /usr/lib/python3.8/site-packages/pyocl.py ~/Apps/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/
```
or
```
$ ln -s /home/blendercam/projects/opencamlib/build/src/ocl.so ~/Apps/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/
$ ln -s /home/blendercam/projects/opencamlib/src/lib/STLTools.py ~/Apps/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/
$ ln -s /home/blendercam/projects/opencamlib/src/lib/procmemory.py ~/Apps/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/
$ ln -s /home/blendercam/projects/opencamlib/src/lib/camvtk.py ~/Apps/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/
$ ln -s /home/blendercam/projects/opencamlib/src/lib/pyocl.py ~/Apps/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/
```
## next steps can be found in this link
https://github.com/vilemduha/blendercam/wiki/Using-Blendercam-from-github
## Tips
### OpenSuSE 15.1
I got an python error, because print was used without () in the cmake file. I changed in the file ~/Apps/opencamlib/src/pythonlib/pythonlib.cmake in line 51 and 57 the python print command:
* old line 51 and 57
```
COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(0,0,\"/usr/local\")"
..
COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(plat_specific=1,standard_lib=0,prefix=\"/usr/local\")"
```
* new
```
COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print( get_python_lib(0,0,\"/usr/local\"))"
..
COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print( get_python_lib(plat_specific=1,standard_lib=0,prefix=\"/usr/local\"))"
```

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 65 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 724 KiB