//DEFAULT CONSTRUCTORS - create movements from different kinds of curves public SilkwormMovement(Dictionary <string, string> Settings, Curve curve) { Polyline pline = new Polyline(); PolylineCurve plinec = new PolylineCurve(); if (curve.TryGetPolyline(out pline)) { } else { plinec = curve.ToPolyline(0, 0, 0.05, 0.1, 0, 0, 0.1, 0, true); //List<Curve> lines = plinec.DuplicateSegments().ToList(); List <Curve> lines = DuplicateSegments(plinec); List <Point3d> points = new List <Point3d>(); points.Add(lines[0].PointAtStart); foreach (Curve line in lines) { points.Add(line.PointAtEnd); } pline = new Polyline(points); } SilkwormMovement s_Movement = new SilkwormMovement(Settings, pline); sMovement = s_Movement.sMovement; Length = s_Movement.Length; Time = s_Movement.Time; ZDomain = s_Movement.ZDomain; complete = true; Configuration = Settings; //Add Lift Delimiter sDelimiter = new Type.Delimiter( double.Parse(Settings["retract_lift"]), double.Parse(Settings["retract_length"]), double.Parse(Settings["retract_restart_extra"]), double.Parse(Settings["retract_speed"]), double.Parse(Settings["travel_speed"])); }
public SilkwormMovement(Dictionary <string, string> Settings, Polyline polyline) { List <Line> lines = polyline.GetSegments().ToList(); SilkwormMovement s_Movement = new SilkwormMovement(Settings, lines); sMovement = s_Movement.sMovement; Length = s_Movement.Length; Time = s_Movement.Time; ZDomain = s_Movement.ZDomain; complete = true; Configuration = Settings; //Add Lift Delimiter sDelimiter = new Type.Delimiter( double.Parse(Settings["retract_lift"]), double.Parse(Settings["retract_length"]), double.Parse(Settings["retract_restart_extra"]), double.Parse(Settings["retract_speed"]), double.Parse(Settings["travel_speed"])); }