public AbmachSimModel2D(AbmachSurface modelSurf, ModelPath path, AbMachParameters parms) { this.surf = modelSurf; this.path = path; this.abmachParams = parms; this.runInfo = parms.RunInfo; }
internal AbMachParameters(AbMachOperation op, RunInfo runInfo, RemovalRate removalRate, Material mat, AbMachJet abmachJet, DepthInfo depthInfo, double meshSize) { Operation = op; RunInfo = runInfo; RemovalRate = removalRate; Material = mat; AbMachJet = abmachJet; DepthInfo = depthInfo; _meshSize = meshSize; }
internal AbMachParameters() { _meshSize = .005; AbMachJet = new AbMachJet(); RunInfo = new RunInfo(); RemovalRate = new RemovalRate(); Material = new Material(); Operation = AbMachOperation.OTHER; DepthInfo = new DepthInfo(); }
public static AbMachParameters Build() { double meshSize = .001; AbMachOperation op = AbMachOperation.OTHER; RunInfo runInfo = new RunInfo(); RemovalRate removalRate = new RemovalRate(); Material mat = new Material(); AbMachJet abmachJet = new AbMachJet(); DepthInfo depthInfo = new DepthInfo(); return(new AbMachParameters(op, runInfo, removalRate, mat, abmachJet, depthInfo, meshSize)); }
public AbmachSimModel3D(ISurface <AbmachPoint> initialSurface, ISurface <AbmachPoint> targetSurface, ModelPath path, AbMachParameters parms) { surface = initialSurface; this.targetSurface = targetSurface; this.initialSurface = initialSurface.Clone(); this.path = path; abmachParams = parms; runInfo = parms.RunInfo; jetRadius = abmachParams.AbMachJet.Diameter / 2.0; currentRemovalRate = parms.RemovalRate; depthInfo = abmachParams.DepthInfo; }
RemovalRate adjustMRR(double currentDepth, RemovalRate currentMrr, RunInfo runInfo, double targetDepth) { //TODO calc adjust mrr double targetMrr = Math.Abs(targetDepth / runInfo.Runs); double actualMrr = Math.Abs(currentDepth / runInfo.CurrentRun); var newMrr = new RemovalRate(currentMrr.NominalSurfaceSpeed, currentMrr.DepthPerPass); if (actualMrr != 0) { newMrr.DepthPerPass = currentMrr.DepthPerPass * targetMrr / actualMrr; } return(newMrr); }
public AbmachSimModel2D(Abmach2DSurface surface, ModelPath path, AbMachParameters parms) { debugData = new List <string>(); _surface = surface; _initialSurf = surface.Clone(); _tempSurf = new Abmach2DSurface(surface.BoundingBox, surface.MeshSize, surface.Border); _path = path; abmachParams = parms; runInfo = parms.RunInfo; jetRadius = abmachParams.AbMachJet.Diameter / 2.0; jetR = (int)Math.Round(.5 * abmachParams.AbMachJet.Diameter / surface.MeshSize); meshSize = surface.MeshSize; }
private RemovalRate newRemovalRate(ModelPath path, RunInfo runInfo, RemovalRate oldRemovalRate, DepthInfo depthInfo) { var newRemovalRate = new RemovalRate(); ModelPathEntity mpeDepth = nearestPathEntity(path, depthInfo.LocationOfDepthMeasure); double currentDepth = getDepth(mpeDepth, depthInfo); double currentDepthPerRun = currentDepth / runInfo.CurrentRun; double currentTargetDepthPerRun = depthInfo.TargetDepth / runInfo.CurrentRun; depthInfo.CurrentDepth = currentDepth; if (currentDepth != 0) { double newMrr = oldRemovalRate.DepthPerPass * (currentTargetDepthPerRun / currentDepthPerRun); return(newRemovalRate); } else { return(oldRemovalRate); } }
RemovalRate adjustMRR(double currentDepth, RemovalRate currentMrr, RunInfo runInfo) { //TODO calc adjust mrr return(currentMrr); }
public static AbMachParameters Build(AbMachOperation op, RunInfo runInfo, RemovalRate removalRate, Material mat, AbMachJet abmachJet, DepthInfo depthInfo, double meshSize) { return(new AbMachParameters(op, runInfo, removalRate, mat, abmachJet, depthInfo, meshSize)); }