CAM(キャム)とは、コンピュータ支援製造 (computer aided manufacturing) の略語です。 製品の製造を行うために、CADで作成された形状データを入力データとして、加工用のNCプログラム作成のための生産準備全般をコンピュータ上で行うためのシステムであり、出力されたデータは、CNC化された工作機械に送られて実際の加工が行われます。 狭義では、CAD/CAMの設計分野CADとの対比で、製造分野のことを指しますが、製造分野に最適化されているCAD/CAMシステムや、テキストベースの自動プログラミング装置など、NCプログラムを出力するシステムを、全てCAMと呼ぶこともあります。 歴史的に見ると、1956年、マサチューセッツ工科大学にて、APT(アプト)と呼ばれるNCプログラム言語が開発されました。 日本では、1972年に純国産のNCプログラム言語が開発されました。(後に、Lanc(ランク)と命名。) 総称して、自動プログラミング装置(自動プロブラム)と呼ばれていました。 これらは、言語専用のプログラムを、工作機械用のNCデータに変換するコンパイラとして実装されていました。 以降のCAMとの最大の違いは、言語ベースのためにWYSIWYGではないことです。 2008年現在でも、APT言語は、いくつかの海外製CAMのCL(カッターロケーション)ファイルとして使用されています。 一方、Lanc言語もCAM同様のインターフェイスを纏って使用され続けています。 CAMシステムのWorkNCは、1988年フランスでリリースされ、1995年、日本でもリリースされました。 CAM運用環境の変遷としては、CAMの分野では、歴史的にUnixが多く利用されてきましたが、これは比較的重い計算を繰り返す為に、安定したマルチタスク性を持つOSが必要なことが主な理由です。 しかし、Windows系コンピュータのCPU性能が飛躍的に向上したために、計算時間短縮とコスト低下を目的としてWindows系OSへの移行が進み、現在では、大部分のCAMシステムがWindows系をプラットホームとしています。 また、UnixからWindowsへの移行の流れの中で、檜舞台から去っていったCAMシステムも数多くあります。 Unixは既にCAMの流れの本流では無くなっていますが、持ち前の安定性とマルチタスク性能を望む声も多く、Linuxへの展開も少なからず始まっています。 これは、数多くのCAMベンダーがWindows上での動作にデュアルCPUを推奨しているのに対し、同等のシステムがUnix上では、シングルCPUで良好なレスポンスを実現していたこととも、無関係ではありません。 加工形状としては、3D CAMがありますが、自由曲面を含む加工のための2軸同時から3軸以上の同時移動データを出力します。 CADで定義可能な形状を全て扱えるため、デザイン性の高い製品に多用されます(身近な例: マウスの筐体)が、工具定義をCAM側で行うため、プログラムは定義した工具専用となり汎用性は低く、また、形状を直線近似で加工するため、精度が低下する場合が多くなります。 形状データはCADからの三次元データを使用します。 一般に2Dと2.5Dの機能を含んでいますが、3D専用の物もあり、また、自由曲面上での輪郭動作に制限のあるCAMを2.8Dと呼ぶ場合もあります。 積層型のラピッドプロトタイピング(RP)に用いられるシステムも、出力は2.5D的ではありますが、このタイプに分類されます。 4/5軸割出し加工、4軸同時制御加工、5軸同時制御加工などは3DCAMのオプションとして用意されています。 複合旋盤にも用いられています。 内部データ形式としては、サーフィス型として3D加工用の形状を曲面として保持しているもので、 曲面からの計算誤差のみを考慮すれば良いので、加工精度を上げやすい反面、計算速度が遅くなります。 ポリゴン型としては、3D加工用の形状を、例えば球面をミラーボールとして近似するように、微細平面の集まりとして近似する手法です。 平面への変換時に誤差が発生するため、高い精度を保つのが難しく、計算時の精度だけを上げると、球面のはずが高精度なミラーボールになります。 反面、計算速度が速い利点があります。  ファセット型とも呼ばれます。 CGモデラーのポリゴンデータを取り込むことが容易なため、CGモデルを直接使用した試作やモックアップ作製に利用されることもあります。 ソフト構成としては、(CADとの構成による分類、)CAD+CAM、多くのソリッドCADシステムが、オプションとして、CAMモジュールを持っています。 CAM部分に重点を置くシステムでは、サーフィス、CAD+CAMの構成もあります。 2D、2.5DCAMもこのタイプとなります。 工具軸の扱いによる分類としては、工具軸固定として、通常、2D~3D CAMといえば、このタイプを指します。 CAM操作としては、形状データの入力として、CAD/CAMタイプのCAD部分で形状を作成した場合は、単にCAMモードへの移行となります。 形状を作成したCADが異なる場合は、データの変換が必要です。 形状の精査として、加工上問題になる箇所を確認します。 不都合がある場合は修正しますが、CAD機能を持っていない場合は、作成元のCADに戻って変更が必要です。 一部、自動で修正出来るCAMもあります。 加工法の検討として、CAMの種類により加工法に制限があるので、CAM毎に異なる加工法になる場合が多いです。 CAMによって、数種類ないし数十種類の加工モードを持ち、その使いこなしのスキルが加工結果に大きく影響します。 加工条件の入力として、CAMが加工条件のデータベースを持っている場合もありますが、千差万別の加工に対応しているわけではないので、大部分は作業者のノウハウによります。 切削工具の移動経路の作成として、カッターパス、又はCL(カッターロケーション)と呼ばれるCAM独自のフォーマットを出力します。 単純に工具中心軌跡を出力するCAMや、同時に工具長さの算出やジグ類との干渉をチェックを行うCAMがあります。 CAMの計算時間といった場合は、この部分の経過時間を指します。 移動経路をシミュレーションなどで確認するものとしては、経路の線画によるものと、加工結果をオブジェクトとして見るものがあります。 NC機械用の加工データとして、POST処理とも呼ばれるものがあります。 NC機械毎に調整されたデータを出力します。 5軸加工用のデータなどで、CAM自体のシミュレーション機能の不備や、POST処理後まで軸移動が確定しない場合などに、出力したNCデータを、さらにシミュレーションソフトにて主軸機構などの干渉チェックを行う場合もあります