OpenCamLib

Description
OpenCamLib (OCL) is an open source library aiming to provide computer aided manufacturing (CAM) algorithms. FreeCAD uses OCL in the experimental path operations and other experimental features.

Github: https://github.com/aewallin/opencamlib

Website: http://www.anderswallin.net/CAM/

Windows
Note: Beginning with FreeCAD version 0.19, OCL should be included with all Windows distribution packages.

To install OCL on Windows, follow these instructions.
 * 1) Obtain the Python version of OpenCamLib (OCL).
 * 2) * Build from source using the Python version used by your FreeCAD version. Peter Lama's fork of the same source has project files for a MSVC build.
 * 3) * Download the Python 2.7 x86/x64 binary by sgrogan on GitHub.
 * 4) * Download the Python 3.6 x64 binary by sgrogan on GitHub.
 * 5) Navigate to your OCL build or binary folder
 * 6) Copy the ocl.pyd library file
 * 7) Proceed with one of the following four(4) options:
 * 8) * Navigate to your FreeCAD\lib folder, and paste the ocl.pyd file there.
 * 9) * Navigate to your FreeCAD\bin folder, and paste the ocl.pyd file there.
 * 10) * Navigate to your FreeCAD\Mod folder. Create a new folder, OCL. Enter the OCL folder and paste the ocl.pyd file.
 * 11) * Navigate to your %USERPROFILE%\AppData\Roaming\FreeCAD folder. Create a new folder, Mod. Enter the Mod folder. Create a new OCL folder. Enter the OCL folder and paste the ocl.pyd file.
 * 12) Restart FreeCAD
 * 13) Verify proper installation
 * 14) Click View → Panels → Python console.
 * 15) Type "import ocl" into the Python console and press the enter key.
 * 16) If no error appears, you have correctly installed OCL
 * 17) * If you receive an error:
 * 18) ** Check the placement and name of the ocl.pyd file as instructed above
 * 19) ** Verify the correct architecture type of the OCL library you installed - x86 or x64
 * 20) ** Verify the Python version used to build the OCL library is the same as that of your FreeCAD software - 2.7 or 3.6 currently

Linux
The repository is here and contains basic installation instructions.

Before beginning installation, or during the installation process, you will probably find you need to install some additional packages:

For example: sudo apt install cmake sudo apt install libboost-program-options-dev # Optional, for documentation sudo apt-get install doxygen sudo apt-get install texlive-full

Note: the "libboost-program-options-dev" may be substituted with "libboost-all-dev".

If you are struggling, carefully review any error messages you get during the cmake and make phases as you may need to install additional packages.

Python 3
Identify the version of cmake you have installed with

For cmake >= 3.12, add these flags:

cmake -DBUILD_PY_LIB=ON -DUSE_PY_3=ON -DCMAKE_BUILD_TYPE=Release ../src -Wno-dev

For cmake < 3.12 (like in Ubuntu 18.04, which has 3.10), first you'll need to edit, and apply this patch:

Index: opencamlib-2019.07/src/pythonlib/pythonlib.cmake =================================================================== --- opencamlib-2019.07.orig/src/pythonlib/pythonlib.cmake +++ opencamlib-2019.07/src/pythonlib/pythonlib.cmake @@ -48,13 +48,13 @@ if(${CMAKE_VERSION} VERSION_LESS "3.12.0     message("Python not found")    endif    execute_process( -    COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(0,0,\"/usr/local\")" +    COMMAND ${PYTHON_EXECUTABLE} -c "import site; print(site.getsitepackages[-1])"      OUTPUT_VARIABLE PYTHON_SITE_PACKAGES      OUTPUT_STRIP_TRAILING_WHITESPACE    ) # on Ubuntu 11.10 this outputs: /usr/local/lib/python2.7/dist-packages    execute_process( -    COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(plat_specific=1,standard_lib=0,prefix=\"/usr/local\")" +    COMMAND ${PYTHON_EXECUTABLE} -c "import site; print(site.getsitepackages[-1])"      OUTPUT_VARIABLE PYTHON_ARCH_PACKAGES      OUTPUT_STRIP_TRAILING_WHITESPACE    )

Then, in order for python3 to be detected correctly you'll need to add 2 more flags to the cmake line:

cmake -DBUILD_PY_LIB=ON -DUSE_PY_3=ON -DPYTHON_EXECUTABLE="$(which python3)" -DPYTHON_VERSION_SUFFIX=3 -DCMAKE_BUILD_TYPE=Release ../src -Wno-dev

See the FreeCAD forum at Re: How to activate openCamLib after compiling it, and a few posts following.

Mac
(No entry)

More help
In case you run into difficulties, you may find additional help at these forum posts:


 * Windows
 * Linux

Acknowledgments
Thank you to Dr. Anders Wallin for providing OCL to the public.