最近接触了好几个想做点机加工方面开发的客户。虽然Autodesk有CAM解决方案,甚至云上的CAM 360,但有些用户还是需要自行定制加工过程,尤其走刀的仿真。
Inventor API的Transient Brep和Client Graphics可以帮助得以实现。其实很简单,刀具每走一步,让刀具的实体和基本体进行布尔运算,得到更新的体,然后用Client Graphics体现出来。我尝试做了个小例子,供大家参考。觉得还应有完善的空间。
这个例子,基于附件中的零件,一个体模拟刀具,一个模拟基本体,然后刀具将从处开始向内圆周运动,切削基本体直到圆心。
Inventor.Application oInvApp;
Asset toolAppearance;
Asset baseAppearance;
void CamTest()
{
//get active Inventor process
oInvApp =
System.Runtime.InteropServices.Marshal.
GetActiveObject("Inventor.Application")
as Inventor.Application;
//get active document
PartDocument oPartDoc =
oInvApp.ActiveDocument as PartDocument;
PartComponentDefinition oPartDef =
oPartDoc.ComponentDefinition;
//Transient Brep object
TransientBRep oTBrep =
oInvApp.TransientBRep;
//Transient Geometry
TransientGeometry oTG=
oInvApp.TransientGeometry;
//base body
SurfaceBody oBaseBody =
oPartDef.SurfaceBodies[1];
//tool body
SurfaceBody oToolBody =
oPartDef.SurfaceBodies[2];
//make base body and tool body invisible
//we just show client graphics
oBaseBody.Visible = false;
oToolBody.Visible = false;
//make a copy