Beschreibung
OpenCamLib (OCL) ist eine Open-Source-Bibliothek, die Algorithmen für die computergestützte Fertigung (CAM) bereitstellt. FreeCAD verwendet OCL in den experimentellen CAM Oberfläche-Pfadoperationen und anderen experimentellen Funktionen.
GitHub: https://github.com/aewallin/opencamlib
Homepage: http://www.anderswallin.net/CAM/
Installieren
Windows
Hinweis: Ab FreeCAD Version 0.19 sollte OCL in allen Windows-Distributionspaketen enthalten sein.
Diese Anweisungen befolgen, um OCL unter Windows zu installieren.
- Die neueste Python-Version von OpenCamLib (OCL) besorgen.
- Aus source erstellen unter Verwendung der Python-Version, die von der FreeCAD-Version verwendet wird. Peter Lamas Fork derselben Quelle enthält Projektdateien für eine MSVC-Erstellung.
- Python 2.7 x86/x64 binary von sgrogan auf GitHub herunterladen.
- Python 3.6 x64 binary von sgrogan auf GitHub herunterladen.
- Zum OCL-Build- oder Binärordner navigieren
- Die ocl.pyd-Bibliotheksdatei kopieren
- Mit einer der folgenden vier (4) Optionen fortfahren:
- Zum Ordner FreeCAD\lib navigieren und dort die Datei ocl.pyd einfügen. (Dies ist die bevorzugte Option.)
- Zum Ordner FreeCAD\bin navigieren, und die Datei ocl.pyd dort einfügen.
- Zum Ordner FreeCAD\Mod navigieren. Einen neuen Ordner OCL erstellen. Den Ordner OCL und die Datei ocl.pyd einfügen.
- Zum Ordner %USERPROFILE%\AppData\Roaming\FreeCAD navigieren. Einen neuen Ordner Mod erstellen. In den Ordner Mod wechseln. Einen neuen Ordner OCL erstellen. In den Ordner OCL wechseln und die Datei ocl.pyd einfügen. (Dies ist die am wenigsten bevorzugte Option.)
- FreeCAD neu starten
- Die ordnungsgemäße Installation überprüfen
- Klicke Ansicht → Fenster → Python-Konsole.
- Tippe "import ocl" in die Python-Konsole und drücke die Enter-Taste.
- Wenn kein Fehler auftritt, wurde OCL korrekt installiert
- Wenn ein Fehler auftritt:
- Die Platzierung und den Namen der ocl.pyd-Datei wie oben beschrieben überprüfen
- Den richtigen Architekturtyp der installierten OCL-Bibliothek überprüfen – x86 oder x64
- Überprüfen, ob die zum Erstellen der OCL-Bibliothek verwendete Python-Version mit der der eingesetzten FreeCAD-Software übereinstimmt – derzeit 2.7 oder 3.6
- Wenn ein Fehler auftritt:
Linux
Das Repository befindet sich hier und enthält grundlegende Installationsanweisungen.
Vor Beginn der Installation oder während des Installationsvorgangs wird man wahrscheinlich feststellen, dass man einige zusätzliche Pakete installieren muss:
Ubuntu/Debian
Zum Beispiel:
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
Hinweis: "libboost-program-options-dev" kann durch "libboost-all-dev" ersetzt werden.
Wenn man Probleme hat, überprüft man sorgfältig alle Fehlermeldungen, die man während der cmake- und make-Phasen erhält, da man möglicherweise zusätzliche Pakete installieren muss.
Archlinux
- Man installiert OpenCamLib aus dem AUR-Paket.
- Dann führt man den folgenden Codeausschnitt in der Python-Konsole von FreeCAD aus.
import sys
sys.path.append('/usr/opencamlib/')
import ocl
Python 3
Die Version von cmake mit cmake --version identifizieren, die man installiert hat.
Für cmake >= 3.12 fügt man diese Markierungen (flags) hinzu:
cmake -DBUILD_PY_LIB=ON -DUSE_PY_3=ON -DCMAKE_BUILD_TYPE=Release ../src -Wno-dev
Für cmake < 3.12 (wie in Ubuntu 18.04, das 3.10 hat) muss man zunächst src/pythonlib/pythonlib.cmake bearbeiten und diesen Patch anwenden:
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
)
Damit Python 3 korrekt erkannt wird, muss man der cmake-Zeile zwei weitere Markierungen (flags) hinzufügen:
cmake -DBUILD_PY_LIB=ON -DUSE_PY_3=ON -DPYTHON_EXECUTABLE="$(which python3)" -DPYTHON_VERSION_SUFFIX=3 -DCMAKE_BUILD_TYPE=Release ../src -Wno-dev
Siehe das FreeCAD-Forum unter Re: How to activate openCamLib after compiling it, und einige nachfolgende Beiträge.
Mac
git clone https://github.com/aewallin/opencamlib
cd opencamlib
mkdir build
cd build
cmake -DBUILD_PY_LIB=ON -DUSE_PY_3=ON -DCMAKE_BUILD_TYPE=Release .. -Wno-dev
make -j4
make install
Um den Build zu testen, gibt man Folgendes in die Python-Konsole ein:
import area
import ocl
dir(ocl)
Der Rückgabewert sollte lauten:
['AdaptivePathDropCutter', 'AdaptivePathDropCutter_base', 'AdaptiveWaterline', 'AdaptiveWaterline_base', 'Arc', 'ArcSpanType', 'BallConeCutter', 'BallCutter', 'BatchDropCutter', 'BatchDropCutter_base', 'BatchPushCutter', 'BatchPushCutter_base', 'Bbox', 'BullConeCutter', 'BullCutter', 'CCPoint', 'CCType', 'CLPoint', 'CompBallCutter', 'CompCylCutter', 'ConeConeCutter', 'ConeCutter', 'CutterLocationSurface', 'CylConeCutter', 'CylCutter', 'Ellipse', 'EllipsePosition', 'Fiber', 'Fiber_base', 'Interval', 'Line', 'LineCLFilter', 'LineCLFilter_base', 'LineSpanType', 'MillingCutter', 'Path', 'PathDropCutter', 'PathDropCutter_base', 'Path_base', 'Point', 'STLReader', 'STLSurf', 'STLSurf_base', 'SpanType', 'Triangle', 'Triangle_base', 'Waterline', 'Waterline_base', 'WeaveVertexType', 'ZigZag', 'ZigZag_base', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'eps', 'epsD', 'epsF', 'version']
Im Falle eines Fehlers lautet der Rückgabewert:
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__']
Für cmake ist die Option Release sehr wichtig, da es bei Verwendung des Debug-Bereichs zu Konflikten mit ocl kommt und eine der beiden Bibliotheken nicht geladen wird (je nachdem, welche zuerst geladen wurde).
Weitere Hilfe
Falls man auf Schwierigkeiten stößt, findet man zusätzliche Hilfe in diesen Forenbeiträgen:
Danksagungen
Dank an Dr. Anders Wallin für die Bereitstellung von OCL für die Öffentlichkeit.
Diese Seite wird abgerufen von https://wiki.freecad.org/OpenCamLib