public List <Point2D> GetDrillPointList() { if (PatternDrilling == null) { throw new NullReferenceException(); } var pntList = PatternDrilling.GetPointList(); return(pntList); }
protected override List <IEntity3D> GetFinalPreview() { var rslt = new List <IEntity3D>(); if (PatternDrilling != null) { var diameter = DiametroPreview;// fare proprieta comuine iun modo da personalizzare diametro per ogni lavorazione if (diameter == 0) { diameter = 1; } var pntList = PatternDrilling.GetPointList(); foreach (var point2D in pntList) { var arc = new Arc3D { Radius = diameter / 2, Center = new Point3D(point2D.X, point2D.Y, 0) }; arc.Start = new Point3D(arc.Center); arc.Start.X += arc.Radius; arc.End = new Point3D(arc.Center); arc.End.X += arc.Radius; rslt.Add(arc); } } foreach (var entity2D in rslt) { entity2D.PlotStyle = EnumPlotStyle.Element; } return(rslt); }
/// <summary> /// Ritorna anteprima della lavorazione /// </summary> /// <returns></returns> protected override List <IEntity3D> GetFinalPreview() { try { var rslt = new List <IEntity3D>(); if (PatternDrilling != null) { var diameter = DiametroMetricoFinale; if (diameter == 0) { diameter = 1; } var pntList = PatternDrilling.GetPointList(); foreach (var point2D in pntList) { var arc = new Arc3D { Radius = diameter / 2, Center = new Point3D(point2D.X, point2D.Y, 0) }; arc.Start = new Point3D(arc.Center); arc.Start.X += arc.Radius; arc.End = new Point3D(arc.Center); arc.End.X += arc.Radius; rslt.Add(arc); } foreach (var entity3D in rslt) { entity3D.PlotStyle = EnumPlotStyle.Element; } } return(rslt); } catch (Exception) { throw new Exception("FresaturaFilettatura.GetPreview"); } return(null); //var cerchio = new Arc2D //{ // Center = new Point2D(CentroX, CentroY), // Radius = Raggio, // ClockWise = false, // Start = { X = CentroX + Raggio }, // End = { X = CentroX + Raggio }, //}; //cerchio.Start.Y = CentroY; //cerchio.End.Y = CentroY; //var profile2D = new Profile2D(); //profile2D.AddEntity(cerchio); //cerchio.PlotStyle = EnumPlotStyle.Element; //return profile2D; //try //{ // if (Pattern != null) // { // var preview = Pattern.GetClosedProfile().Source; // return Entity3DHelper.Get3DProfile(preview).ToList(); // } //} //catch (Exception ex) //{ //} return(null); }
protected override void CreateSpecificProgram(ProgramOperation programPhase, Operazione operazione) { /* * utensile e parametro lo prendo all'interno del cambio switch.. */ var fresa = operazione.Utensile as FresaCandela; var parametro = operazione.Utensile.ParametroUtensile as ParametroFresaCandela; if (fresa == null || parametro == null) { throw new NullReferenceException(); } if (PatternDrilling == null) { return; } var diameter = DiametroMetricoFinale; var pntList = PatternDrilling.GetPointList(); if (pntList == null || pntList.Count <= 0) { return; } var diaFresa = fresa.Diametro; var moveCollection = new MoveActionCollection(); var workUp = InizioLavorazioneZ; var workDown = InizioLavorazioneZ - ProfonditaLavorazione; foreach (var point2D in pntList) { switch (operazione.OperationType) { case LavorazioniEnumOperazioni.Smussatura: { var profile = Profile2D.CreateCircle(DiametroMetricoFinale / 2, point2D); MillProgrammingHelper.GetInternChamfer(moveCollection, profile, ProfonditaSvasatura, diaFresa, 0, false, InizioLavorazioneZ, SicurezzaZ); } break; case LavorazioniEnumOperazioni.FresaturaFilettare: { var helicalRadius = (diameter - diaFresa) / 2; if (FilettaturaSinistra && !FilettaturaEsterna) { //MillProgrammingHelper.GetInternThreadSx(moveCollection, ); MillProgrammingHelper.GetInternThreadSx(moveCollection, workUp, workDown, SicurezzaZ, point2D, PassoMetrico, DiametroMetricoFinale / 2, true); } else if (!FilettaturaSinistra && !FilettaturaEsterna) { MillProgrammingHelper.GetInternThreadDx(moveCollection, workUp, workDown, SicurezzaZ, point2D, PassoMetrico, DiametroMetricoFinale / 2, true); } else if (!FilettaturaSinistra && FilettaturaEsterna) { var extracorsa = diaFresa / 2 + ExtraCorsa; MillProgrammingHelper.GetExternThreadDx(moveCollection, workUp, workDown, SicurezzaZ, point2D, PassoMetrico, DiametroMetricoFinale / 2, true, extracorsa); } else if (FilettaturaSinistra && FilettaturaEsterna) { var extracorsa = diaFresa / 2 + ExtraCorsa; MillProgrammingHelper.GetExternThreadSx(moveCollection, workUp, workDown, SicurezzaZ, point2D, PassoMetrico, DiametroMetricoFinale / 2, true, extracorsa); } } break; default: throw new Exception("FresaturaFilettatura.CreateSpecificProgram"); break; } } var mm = base.GetFinalProgram(moveCollection); foreach (var variable in mm) { programPhase.AggiungiAzioneMovimento(variable); } }