M1 Apple Silicon MacにFlatCAMをインストールする

注意点

後述しているが、ortoolsをコメントアウトしてしまっているので、なんらかの機能に影響はあるかもしれないが、自分の場合はIsolation Routingだけ使いたいので良しとしている。

今の所は問題なく動作している。

手順

  1. Terminalをコピーして"Rosettaを使用して開く"をON
    これでこのターミナル上ではIntelをエミュレーションするようにする

  2. MinicondaのIntel版Macインストールシェルをダウンロードする

    https://github.com/conda-forge/miniforge

    Miniforge3-MacOSX-x86_64

  3. Miniforgeをインストールする

> bash Mambaforge-MacOSX-x86_64.sh
  1. python3.9仮想環境を作成
> conda create -n x64 python=3.9
> conda activate x64
  1. FlatCAMのソースをダウンロード

https://bitbucket.org/jpcgt/flatcam/downloads/

https://bitbucket.org/jpcgt/flatcam/downloads/FlatCAM_beta_8.994_sources.zip

  1. Python3.9仮想環境で必要なパッケージをインストールする

    FlatCAMのRequirements.txtを参照

    ※ただし、ortoolsだけパッケージが存在しない。それはスキップする。

  2. FlatCAMのソースを修正する

    実行すると以下のエラーが出るので修正する

File "/Applications/FlatCAM_beta_8.994/appParsers/ParseDXF.py", line 10, in <module>
    from ezdxf.math.vector import Vector as ezdxf_vector
ModuleNotFoundError: No module named 'ezdxf.math.vector'

ezdxf.mathに修正

# from ezdxf.math.vector import Vector as ezdxf_vector
from ezdxf.math import Vector as ezdxf_vector
File "/Applications/FlatCAM_beta_8.994/camlib.py", line 57, in <module>
    from ortools.constraint_solver import pywrapcp
ModuleNotFoundError: No module named 'ortools'

ortoolsのimportをコメントアウト

#if platform.architecture()[0] == '64bit':
#    from ortools.constraint_solver import pywrapcp
#    from ortools.constraint_solver import routing_enums_pb2
  1. FlatCAMの起動

condaの仮想環境が利いている状態で以下を実行してアプリケーションが起動することを確認する。

> python FlatCAM.py

スクリプトの起動アプリを作成する

以下を参考させていただきました。

Macでシェルスクリプトを.appアイコン化する
https://qiita.com/KurosawaTsuyoshi/items/425cd484e8d7759af460

シェルの内容は、

  1. condaの環境設定(.bash_profileの内容)
  2. condaでrosetta2+python3.9環境へのActivate実行
  3. FlatCAM.py実行

という流れになる

__conda_setup="$('/Users/${USER}/mambaforge/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/${USER}/mambaforge/etc/profile.d/conda.sh" ]; then
        . "/Users/${USER}/mambaforge/etc/profile.d/conda.sh"
    else
        export PATH="/Users/${USER}/mambaforge/bin:$PATH"
    fi
fi
unset __conda_setup

conda activate x64
cd /Applications/FlatCAM_beta_8.994
python FlatCAM.py

アプリアイコンから起動できることを確認

flatcam001

flatcam002

ポイントはconda-forgeでIntel環境(Rosetta2)のPythonモジュールを揃えることですかね。Armのネイティブ環境だと、PyQT6はサポートしてますが、FlatCAMはPyQT5のままなのと、ほかのPythonモジュールで対応してないものがたくさんあります。

去年の11月に購入して、ほかのよく使うアプリはだいたいネイティブ化されて快適に使えてますが、FlatCAMだけ起動できずに困ってました。

やっと起動できた。長かった。。