[FlatCAM導入] FlatCAM 8.9(Beta)をLinuxにインストールする


※ 当ページには【広告/PR】を含む場合があります。
2020/10/10
2024/03/14

卓上CNCを楽しむのに欠かせないのが基板のCADから切削加工用のg-codeを出力してくれるCAMソフトです。

今回は高性能でありながら無償で利用できるCAMソフト・FlatCAMのベータ版をDebainLinuxへ導入する手順をまとめてみます。

FlatCAMのベータ版のmacOSへの導入手順はこちらの記事を参考にしてください。

合同会社タコスキングダム|タコツボの中の工作室
[FlatCAM導入] FlatCAM 8.9(Beta)をmacOSXにインストールする

高性能でありながら無償で利用できるCAMソフト・FlatCAMのベータ版をmacOSXへ導入する手順をまとめてみます。


CNC 3018-PROルーターキットGRBLコントロール3軸

PCB基板用超硬マイクロドリルビット

uxcell 先端直径0.3mm 超硬マイクロPCBドリルビット 10本セット

Crenova デジタルマルチメーター

uxcell 超硬PCBエンドミル3.175シャンク 5本セット

SainSmart Genmitsu エンドミルCNCルータービット10個入り

PCB彫刻 vビット エンドミル 15度 0.1mmヒント 3.175mm軸

RATTMMOTOR CNC 1310 3轴 GRBL Control

いまからはじめるNC工作 Jw_cadとNCVCでかんたん切削(第2版)

Betaブランチからプロジェクトをクローン

まずは適当な作業フォルダを作って、その中に入ってFlatCAMのプロジェクトのBetaブランチからソースコードをいただきましょう。

            $ git clone -b Beta https://bitbucket.org/jpcgt/flatcam
        
現在のBetaはv8.993のようです。ちなみにBeta版の最大の利点はpython3とpyQt5で動作していますので、既に時代遅れになって多くの環境で動かすことが困難になったpyQt4からの脱却できます。

とりあえずflatCAMプログラムの本体はそのまましばらく置いておいて、先にpython周りの設定をしていきます。


CNC 3018-PROルーターキットGRBLコントロール3軸

PCB基板用超硬マイクロドリルビット

uxcell 先端直径0.3mm 超硬マイクロPCBドリルビット 10本セット

Crenova デジタルマルチメーター

uxcell 超硬PCBエンドミル3.175シャンク 5本セット

SainSmart Genmitsu エンドミルCNCルータービット10個入り

PCB彫刻 vビット エンドミル 15度 0.1mmヒント 3.175mm軸

RATTMMOTOR CNC 1310 3轴 GRBL Control

いまからはじめるNC工作 Jw_cadとNCVCでかんたん切削(第2版)

pyenvとvirtualenvプラグインをインストール

まずはpyenv公式にしたがって、Linux上にpyenvを導入するところから開始します。

Debian Linuxにpyenvを導入する方法を別の記事にまとめていますので、環境をセットアップするために一旦そちらの方を参照してください。

合同会社タコスキングダム|タコツボの中の工作室
DebianからでもLinuxbrew(Homobrew on Linux)でサクッとpyenvを導入してPython環境を整える

Linuxへpython開発環境を整える上でオススメの「LinuxBrew(HomeBrew on Linux)」を使ったpyenvの導入方法を紹介します。

pyenvの導入が完了すると、コマンドで利用することができるようになります。

            $ pyenv --version
pyenv 2.3.24
        
次にpyenvから動かすvirtualenvプラグインであるpyenv-virtualenvも導入してみます。

なおこちらも、さきほどのpyenvのインストールのとき同様に、LinuxBrewから一発インストール可能です。

            $ brew update && brew upgrade
$ brew install pyenv-virtualenv
$ pyenv virtualenvs
        
pyenvからpythonをインストールするのに必要なライブラリ群を導入します。

場合によっては既に入っているものもあるかもしれませんが、その場合には作業がスキップされるだけなので下のコマンドを叩きます。

            $ sudo apt install -y build-essential libffi-dev libssl-dev zlib1g-dev liblzma-dev libbz2-dev libreadline-dev libsqlite3-dev
#👇利用可能なpythonプログラムを一覧
$ pyenv install --list
Available versions:
#...中略
  3.8.6
#...以下略
#👇今回は3.8.6をインストール
$ pyenv install 3.8.6
#👇インストールされたか確認
$ pyenv versions
* system (set by /home/****/.pyenv/version)
  3.8.6
        

CNC 3018-PROルーターキットGRBLコントロール3軸

PCB基板用超硬マイクロドリルビット

uxcell 先端直径0.3mm 超硬マイクロPCBドリルビット 10本セット

Crenova デジタルマルチメーター

uxcell 超硬PCBエンドミル3.175シャンク 5本セット

SainSmart Genmitsu エンドミルCNCルータービット10個入り

PCB彫刻 vビット エンドミル 15度 0.1mmヒント 3.175mm軸

RATTMMOTOR CNC 1310 3轴 GRBL Control

いまからはじめるNC工作 Jw_cadとNCVCでかんたん切削(第2版)

Tkinterのインストール

Linuxのディストリビューションごとに多少の作法の違いはありますが、Debian系Linuxの場合にtcl-tkをインストールするには以下を叩きます。

            $ sudo apt install tk-dev python3-tk
        
それでは上の節で放置していたFlatCAMのプロジェクトフォルダ内に入り、pyenvでpython3のローカル環境を構築し、Tkinterが動作するかを確認します。

            $ cd ~/(FlatCAMのプロジェクトを置いたどこか)
#👇プロジェクト専用のpyenv環境をvenv38という名前で作成
$ pyenv virtualenv 3.8.6 venv38
$ pyenv versions
  system
* 3.8.6
  3.8.6/envs/venv38
  venv38
#👇作成した環境でローカルに切り替え
$ pyenv local venv38
#👇以下仮想pyenv環境内で作業
(venv38)$ pyenv versions
  system
  3.8.6
  3.8.6/envs/venv38
* venv38 (set by /home/taconocat/freecad_work/flatcam/flatcam/.python-version)
(venv38)$ python -V
Python 3.8.6
(venv38)$ python -m tkinter
#👇はエラーの例
Traceback (most recent call last):
  File "/****/.pyenv/versions/3.8.6/lib/python3.8/runpy.py", line 185, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/****/.pyenv/versions/3.8.6/lib/python3.8/runpy.py", line 144, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/****/.pyenv/versions/3.8.6/lib/python3.8/runpy.py", line 111, in _get_module_details
    __import__(pkg_name)
  File "/****/.pyenv/versions/3.8.6/lib/python3.8/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'
        
...なにかエラーが発生しています。

どうやらtcl-tkの設定が上手くいっていないようです。

これはtkパッケージインストールより先にpyenvでpythonを入れてしまったのが原因で、一度pythonをアンインストールして再度入れ直すと動くようです。

            $ pyenv uninstall 3.8.6
pyenv: remove /****/.pyenv/versions/3.8.6? [y|N]y
pyenv: 3.8.6 uninstalled
$ pyenv install 3.8.6
Downloading Python-3.8.6.tar.xz...
-> https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz
Installing Python-3.8.6...
python-build: use readline from homebrew
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
Installed Python-3.8.6 to /****/.pyenv/versions/3.8.6
$ python -m tkinter
        
以下のように空のtkアプリケーションが動作するとtcl-tkの準備は完了です。

合同会社タコスキングダム|蛸壺の中の工作室


CNC 3018-PROルーターキットGRBLコントロール3軸

PCB基板用超硬マイクロドリルビット

uxcell 先端直径0.3mm 超硬マイクロPCBドリルビット 10本セット

Crenova デジタルマルチメーター

uxcell 超硬PCBエンドミル3.175シャンク 5本セット

SainSmart Genmitsu エンドミルCNCルータービット10個入り

PCB彫刻 vビット エンドミル 15度 0.1mmヒント 3.175mm軸

RATTMMOTOR CNC 1310 3轴 GRBL Control

いまからはじめるNC工作 Jw_cadとNCVCでかんたん切削(第2版)

FlatCAMを動かす

それではFlatCAM.pyを動かしてみます。

まず、不足しているライブラリをaptインストールしておきます。

            $ sudo apt install libspatialindex-dev
        
FlatCAMはもう何年もメンテナンスされていないため、直近のLinuxディストーションによっては、必要パッケージが提供されてないか、古いバージョンのライブラリを要求される場合があります。

例えば、久しぶりに著者の環境でインストール作業をしていると、
gdal-configが探せないというエラーがでます。

            gdal_config_error: [Errno 2] No such file or directory: 'gdal-config'
      
      Could not find gdal-config. Make sure you have installed the GDAL native library and development headers.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.
        
最近のDebianからはGDALがなさそうということで、別途パッケージインストールします。

            $ sudo apt install libgdal-dev
        
これで使えるかというと、実際にはGDALのパッケージインストールしたバージョンが進みすぎていて、そのままだとエラーがでます。

            Python bindings of GDAL 3.8.4 require at least libgdal 3.8.4, but 3.6.2 was found
        
ということで、GDALに関しては、レガシー(確認時点では3.6.2)をインストールします。

再度pyenvのローカル環境に入り、必要なモジュールをpipインストールします。

            #👇作業をローカルに切り替え
$ pyenv local venv38

#👇レガシーGDALをインストール
$ pip install numpy==1.19
$ pip install GDAL==3.6.2

#👇numpyの事情でmatplotlibもレガシーインストール
$ pip install matplotlib==3.2

#👇requirments.txtから残りのモジュールをインストール
$ pip install -r requirements.txt
        
最後にいよいよFlatCAMが動くかどうかの確認です。

            (venv38)$ python FlatCAM.py
        
合同会社タコスキングダム|蛸壺の中の工作室

無事起動することができました。


CNC 3018-PROルーターキットGRBLコントロール3軸

PCB基板用超硬マイクロドリルビット

uxcell 先端直径0.3mm 超硬マイクロPCBドリルビット 10本セット

Crenova デジタルマルチメーター

uxcell 超硬PCBエンドミル3.175シャンク 5本セット

SainSmart Genmitsu エンドミルCNCルータービット10個入り

PCB彫刻 vビット エンドミル 15度 0.1mmヒント 3.175mm軸

RATTMMOTOR CNC 1310 3轴 GRBL Control

いまからはじめるNC工作 Jw_cadとNCVCでかんたん切削(第2版)

まとめ

今回はなかなかFlatCAMのアルファ版がpython3とpyqt5に対応しないので、ベータ版を利用して早めにそちらに移行したい人向けの内容になりました。

すこし設定が多かったりインストール手順が分かりにくいところもありますが、無事LinuxでもFlatCAM8.9-Betaが動作することが分かりました。

これからBeta版がきちんと問題なく動作するかを少しずつ検証していきたいといます。
記事を書いた人

記事の担当:taconocat

ナンデモ系エンジニア

電子工作を身近に知っていただけるように、材料調達からDIYのハウツーまで気になったところをできるだけ細かく記事にしてブログ配信してます。