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


2020/10/10

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

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

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


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

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

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

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


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

まずはpyenv公式にしたがって、Linux上にpyenvを導入します。

            $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
        
クローンし終えたら次に.bashrc/.zshrc.bash_profileにpyenvまでの環境パスと立ち上がり時の初期化のコマンドを追加します。なお、手元の環境では.bashrcを利用します。

            $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
$ cat ~/.bashrc
#...中略
#以下が追加されている
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
 eval "$(pyenv init -)"
fi
        
追加したらこの変更の内容を反映させて、pyenvの導入は完了です。

            $ source ~/.bashrc
$ pyenv --version
pyenv 1.2.21
        
次にpyenvから動かすvirtualenvプラグインであるpyenv-virtualenvも導入してみます。

            $ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
        
クローンが終わったらこちらも.bashrc相当のファイルに設定を追加しておきます。

            $ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
$ source ~/.bashrc
        
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
        

Tkinterのインストール

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

            $ sudo apt-get 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の準備は完了です。

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


FlatCAMを動かす

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

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

            $ sudo apt install libspatialindex-dev python-rtree
        
再度pyenvのローカル環境に入り、必要なモジュールをpipインストールします。

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

(venv38)$ pip install pyqt5 simplejson shapely reportlab \
    svglib vispy pyopengl rtree matplotlib rasterio \
    ezdxf svg.path fontTools ortools qrcode dill

#👇もしくはrequirments.txtからインストール
(venv38)pip install -r requirements.txt
        
最後にいよいよFlatCAMが動くかどうかの確認です。

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

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


まとめ

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

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

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

記事の担当:taconocat

ナンデモ系エンジニア

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