CAM
CAM（キャム）とは、コンピュータ支援製造 () の略語。製品の製造を行うために、CADで作成された形状データを入力データとして、加工用のNCプログラム作成などの生産準備全般をコンピュータ上で行う為のシステムであり、出力されたデータは、CNC化された工作機械に送られて実際の加工が行われる。
狭義では、CAD/CAMの設計分野CADとの対比で製造分野の事をさすが、製造分野に最適化されているCAD/CAMシステムや、テキストベースの自動プログラミング装置など、NCプログラムを出力するシステムをすべてCAMと呼ぶ事もある。
1956年マサチューセッツ工科大学にてAPT(アプト)と呼ばれるNCプログラム言語が開発された。日本では1972年に純国産のNCプログラム言語が開発された（後にLanc(ランク)と命名）。また、APT言語から派生したFAPT言語やHAPT言語、MINIAPT言語も実用化されている。総称して自動プログラミング装置(自動プロ)と呼ばれていた。これらは、言語専用の命令を記述したプログラムを工作機械用のNCデータに変換する、コンパイラとして実装されていた。以降のCAMとの最大の違いは言語ベースのためにWYSIWYGではないことである。2008年現在でも、APT言語は、いくつかの海外製CAMのCL(カッターロケーション)ファイルとして使用されている。一方、Lanc言語もCAM同様のインターフェースを纏って使用され続けている。
CAMの分野では、歴史的にUnixが多く利用されてきたが、これは比較的重い計算を繰り返す為に、安定したマルチタスク性を持つOSが必要な事が主な理由である。しかし、Windows系コンピュータのCPU性能が飛躍的に向上したために、計算時間短縮とコスト低下を目的としてWindows系OSへの移行が進み、現在では大部分のCAMシステムがWindows系をプラットホームとしている。また、UnixからWindowsへの移行の流れの中で檜舞台から去っていったCAMシステムも数多くある。
Unixは既にCAMの流れの本流では無くなっているが、持ち前の安定性とマルチタスク性能を望む声も多く、Linuxへの展開も少なからず始まっている。これは、数多くのCAMベンダーがWindows上での動作にデュアルCPUを推奨しているのに対し、同等のシステムがUnix上では、シングルCPUで良好なレスポンスを実現していたこととも無関係ではない。
加工形状による分類
CADは2Dを使用するタイプと3Dを使用するタイプがある。
平面的なポケット加工や輪郭加工及び穴あけ加工のための2軸同時移動データを出力する。 加工機側で工具径補正(G41,G42)が可能であり、プログラムの汎用性に優れ、輪郭の直線(G01)と円弧(G02/G03)をそのまま使用するので、精度が高い加工が可能なため、機械部品加工などに多用されている。形状データはCADからの2次元図面データを使用する。NC制御器に内蔵されている対話型は、ほとんどこのタイプである。
NC旋盤、ワイヤーEDM、レーザー加工機、プラズマ加工機などにも使用される。
2Dに加えて、平面輪郭に断面を付加した加工及び、側面から見た輪郭形状加工のための2軸同時移動データを出力する。自由曲面以外のあらゆる形状が加工可能(身近な例: キーボードのキートップ)であり、2D同様に精度が高い加工が可能である反面、作業者のスキルによって形状に差違がでる場合がある。
ワイヤーEDMの上下任意形状加工も、これに分類される。この場合は、断面ではなく上面と下面の双方の輪郭を用いて形状定義をして、4軸以上の同時移動データを出力する。
自由曲面を含む加工のための2軸同時から3軸以上の同時移動データを出力する。CADで定義可能な形状をすべて扱えるため、デザイン性の高い製品に多用される(身近な例: マウスの筐体)が、工具定義をCAM側で行う為、プログラムは定義した工具専用となり汎用性は低く、また、形状を直線近似で加工する為、精度が低下する場合が多い。
形状データはCADからの3次元データを使用する。
一般に2Dと2.5Dの機能を含んでいるが、3D専用の物もあり、また、自由曲面上での輪郭動作に制限のあるCAMを2.8Dと呼ぶ場合もある。
積層型のラピッドプロトタイピング(RP)に用いられるシステムも、出力は2.5D的ではあるが、このタイプに分類される。
4/5軸割出し加工、4軸同時制御加工、5軸同時制御加工などは3DCAMのオプションとして用意されている。
複合旋盤にも用いられている。
形状の保持方法による分類
形状の幾何情報と意図情報を併せ持ち、加工方法や加工条件の決定に利用する物で、主に穴あけ加工を含む2D加工を中心に、複雑な工程を必要とする部品加工などに用いられている。
多くの場合はソリッドCADのフィーチャ情報を引き継ぐことが多いが、
独自のフィーチャ型形状入力をするタイプもある。
3D加工用の形状を曲面として保持している物で、
曲面からの計算誤差のみを考慮すれば良いので、加工精度を上げやすい反面、計算速度が遅くなる。
3D加工用の形状を、例えば球面をミラーボールとして近似するように、微細平面の集まりとして近似する手法。平面への変換時に誤差が発生するため高い精度を保つのが難しく、計算時の精度だけを上げると、球面のはずが高精度なミラーボールになる。反面、計算速度が速い利点がある。
ファセット型とも呼ばれる。
CGモデラーのポリゴンデータを取り込むことが容易なため、CGモデルを直接使用した試作やモックアップ作製に利用されることもある。
CADとの構成による分類
多くのソリッドCADシステムが、オプションとして、CAMモジュールを持っている。
CAM部分に重点を置くシステムでは、サーフィスCAD+CAMの構成もある。
2D、2.5DCAMもこのタイプとなる。
多くの場合は、全自動タイプとなる。
CAD部分を持たないために、データコンバートが前提となり、ポリゴン変換を行ってパス計算に利用するものが多い。
工具軸の扱いによる分類
通常、2D～3D CAMと言えば、このタイプを指す。
固定5軸,傾斜軸,3D+2などと呼ばれ、位置決め動作のみに5軸同時動作を行い、切削時には2軸同時から3軸同時データを出力する。
加工物の高さによって、側面又は斜め方向からの方が加工し易い場合に使用し、斜め方向の穴あけなどにも使用される。
回転軸の移動を伴わないために、リニアライゼーションによる精度低下が起こらないので、同時5軸制御の工作機でも、あえて傾斜固定を使用する場合もある。
同時5軸などと呼ばれ、3軸同時移動データに加え、工具軸を傾斜させるための回転軸のデータを出力する。
連続した曲面のアンダーカットがある形状を加工する場合や側面などの加工をする場合に有効。
主な用途は、プロペラやタービン形状の加工だが、一部金型業界でも利用されている。
3軸ツールパスを自動で同時5軸ツールパスに変換するソフトウェアもある。
複合旋盤に代表される、複数の工具を複数加工軸で並列的に制御して加工するデータを出力する。
切削系のCAM作業の流れ
CAD/CAMタイプのCAD部分で形状を作成した場合は、単にCAMモードへの移行となる。
形状を作成したCADが異なる場合は、データの変換が必要。
加工上問題になる箇所を確認する。
不都合がある場合は修正するが、CAD機能を持っていない場合は、作成元のCADに戻って変更が必要。
一部自動で修正出来るCAMもある。
CAMの種類により加工法に制限があるので、CAMごとに異なる加工法になる場合が多い。
CAMによって、数種類ないし数十種類の加工モードを持ち、その使いこなしのスキルが加工結果に大きく影響する。
CAMが加工条件のデータベースを持っている場合もあるが、千差万別の加工に対応しているわけではないので、大部分は作業者のノウハウによる。
カッターパス又はCL(カッターロケーション)と呼ばれるCAM独自のフォーマットを出力する。
単純に工具中心軌跡を出力するCAMや、同時に工具長さの算出やジグ類との干渉をチェックを行うCAMがある。
CAMの計算時間と言った場合は、この部分の経過時間を指す。
経路の線画による物と、加工結果をオブジェクトとして見る物がある。
POST処理とも呼ばれる。NC機械ごとに調整されたデータを出力する。
5軸加工用のデータなどで、CAM自体のシミュレーション機能の不備や、POST処理後まで軸移動が確定しない場合などに、出力したNCデータを、さらにシミュレーションソフトにて主軸機構などの干渉チェックを行う場合もある。
形状を作成したCADとCAMが異なるシステムの場合は、データの変換による精度の低下や形状情報の欠落が問題となる。
幾何データの変換にはIGESや STEPなどが使用されるが、問題がある場合はダイレクトコンバータが使用される。また、異なるシステムでも、同じカーネル（内部データベース方式)を持つ物なら、カーネル形式を使用して、精度の落ちないデータの受け渡しが可能である。(parasolidやacisなど)
2015年の直接収益により、上位20位のCAMソフトウェア企業は、世界的な収益によって分類されています。