コード例 #1
0
 public AbmachSimModel2D(AbmachSurface modelSurf, ModelPath path, AbMachParameters parms)
 {
     this.surf         = modelSurf;
     this.path         = path;
     this.abmachParams = parms;
     this.runInfo      = parms.RunInfo;
 }
コード例 #2
0
 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;
 }
コード例 #3
0
 internal AbMachParameters()
 {
     _meshSize   = .005;
     AbMachJet   = new AbMachJet();
     RunInfo     = new RunInfo();
     RemovalRate = new RemovalRate();
     Material    = new Material();
     Operation   = AbMachOperation.OTHER;
     DepthInfo   = new DepthInfo();
 }
コード例 #4
0
        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));
        }
コード例 #5
0
 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;
 }
コード例 #6
0
        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);
        }
コード例 #7
0
 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;
 }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
 RemovalRate adjustMRR(double currentDepth, RemovalRate currentMrr, RunInfo runInfo)
 {
     //TODO calc adjust mrr
     return(currentMrr);
 }
コード例 #10
0
 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));
 }