最近JAVAのお勉強をしているので、JAVAからSolidWorksを制御出来るか試してみました
JAVAからSolidWorks API(COM)を利用するには、JAVA-COMブリッジというものが必要らしく、
今回は、
JCom(Java-COMブリッジ)を利用してみました。
以下、サンプルです。
import jp.ne.so_net.ga2.no_ji.jcom.*;
class testSldWorks {
public static void main(String[] args) throws Exception {
// ReleaseManagerを利用すると、COMのプロセスを管理してくれる。
// これを利用しない場合、COMオブジェクト(IDispatch)を適切にreleace()する必要がある。
ReleaseManager rm = new ReleaseManager();
try {
// SldWorksに接続
IDispatch swApp = new IDispatch(rm, "SldWorks.Application");
// IDispatch::getにて、SldWorks::GetProccessIDプロパティ取得・表示
System.out.println(swApp.get("GetProcessID"));
// IDispatch::methodにて、SldWorks::Visibleメソッドを実行
swApp.method("Visible", new Object[] { true });
// SldWorks::NewDocumentで新規ドキュメント作成
IDispatch swModel = (IDispatch) swApp.method("NewDocument",
new Object[] { "C:\\part.prtdot", 0, 0, 0 });
// SldWorks::CloseDocで、作成したドキュメントを閉じる
swApp.method("CloseDoc", new Object[] { swModel.get("GetTitle") });
// SldWorks::ExitAppで、SolidWorks終了
swApp.method("ExitApp", null);
} catch (Exception e) {
e.printStackTrace();
} finally {
rm.release();
}
}
}