以前紹介したCADデータのライブラリについて。
元々はLinux用途に設計されたライブラリ「STEPCode」について、それなりに調査をし始めている。
相当マニアックな内容でありながらも、意外と需要ありそうで、独自性のあるテーマでもあるので、改めてインストールの方法から整理して記事にする
でも、メカ設計者や部品業者を含めても、実はSTEPを取り扱うのはハードルが高いと言われている。それは、その仕様が複雑なだけでなく、STEPファイルの読み取りは基本有償のものが多いためでもある。
と言っても、STLデータは計算しやすく扱いは容易だが、互換性には苦労させられる。
製造業全体の課題でもあるのだ。
STEPCodeは無償でありながらもBSDライセンスであり、企業が商用利用しても妨げにならないようなライブラリだ。
ただし、コードは全体的にレガシーなものが多く、一癖あるので使い慣れるには結構大変な部分もある。
ある程度私も使ってきたが、色々これで遊んでみたいのでこのQiitaなどで記事として紹介したい
環境
言語
- C++
- 言語: Visual C++ (ISO C++ 14 Standard)
- IDE: Visual Studio 2019 Professional (Version 16.11.3)
- cmake gui 3.19.0-rc3
cmake guiはちょっと古いもの使っていますが、最新版が出ているようです(3.21.1)
ライブラリ
STEPCode v0.8.1
つい先日、python3への対応が出来るようになったようだ。
VC++移植
1. Githubからリポジトリをクローン
※自分用に色々アレンジする場合は、事前に自分のアカウントでgitリポジトリをforkするなりして、
管理出来るようにしておきましょう。
git clone https://github.com/stepcode/stepcode
2. cmake
cmakeの作業は結構時間がかかるので、
他のタスクをするなど余裕があるときにやると良いです
Visual Studio 2019を使用する方法
単純ですが、ちょっと進捗が分かりにくい方法.
Visual Studio 2019を開いてOpen a local folder(ローカルフォルダを開く)をクリックします。
ファイルディレクトリが開くので、クローンしたディレクトリを指定してフォルダを選択します。
するとVisual Studioの方で勝手にcmakeをしてくれるので、あとは待つだけ。
CMake guiを使用する方法
しかし実際のところエラーメッセージなどが出たりして、
VSの画面では情報量が多すぎて、「きついなあ」と思ったときはこちらの方法を適用する。
Configureを押すと、C++ Generatorの種類やプラットフォームを選択するように指示が出るので、欲しいものを使う
とりあえず特にこだわりがなければそのまま実行しても良い
Finishを押すとCMakeのConfigureが行なわれ、"Where to build the binaries"にConfigureされた状態でディレクトリデータが生成される。
メッセージのところに「Configuring Done」と表示されたら、Configureが終了した状態になる。
画面が変わったら「Generate」を指定してビルドデータを生成しよう
そして、「Generate」を押したら、エラーがなければ「Generating Done」と表示される。
インストール完了。
3. テストプログラムの作成&cmake
exampleフォルダのプログラムは正常に動きますが、注意点がいくつか必要のようです。
ディレクトリ構成
StepCodeのインストール先に"example"フォルダがあるので、「ap203min」というファイルを新規で作成する。
構成は以下のようにする。
どうやら、includeフォルダを追加して、その中にconfig.h.inを入れないと、
cmakeが正常にConfigurationしてくれない。
プログラム
CMakeLists.txtは原本のものを使うが、一点注意が必要で、
cmakeをすると
message(FATAL_ERROR "STEPCODE_ROOT_DIR is not defined! Set via cmake-gui or on command line:\n cmake .. -DSTEPCODE_ROOT_DIR=/path/to/sc")
の行でエラーが出てしまう。
これを回避するためには、cmakeを展開するときにSTEPCODE_ROOT_DIRを指定する必要があり
set(STEPCODE_ROOT_DIR "C:/StepCode/")
などと書く必要がある。私はWindowsの環境変数を使って
set(STEPCODE_ROOT_DIR "$ENV{STEPCODE_INSTALL_DIR}")
と書いておいた。こちらの方が何かと都合が良い。
main.cppは
instance_list->DeleteInstances();
の行でメモリエラーが発生したのでこの部分をコメントアウト。
ビルド
exampleフォルダに対して、cmakeを実施すると、以下のようなフォルダ構成になる。
buildがcmakeによって新しくできたフォルダで、
中身は次のようになっている。
AP203Minimum.slnを開いてビルドする。
実行成功だ。おめでとう。