예제 #1
0
        internal override void BuildPlan(PlanBuilder3D builder, MillingWorkspacePanel workspace)
        {
            /*
             * for (var i = 0; i < 100; ++i)
             * {
             *  builder.AddRampedLine(new Point3Dmm(PositionX , PositionY, builder.ZeroLevel + 5));
             *  builder.AddRampedLine(new Point3Dmm(PositionX, PositionY, builder.ZeroLevel));
             * }
             * return;
             */

            var maxZ = _toolPath.Targets.Select(t => t.End.Z).Max();
            var minZ = _toolPath.Targets.Select(t => t.End.Z).Min();

            foreach (var target in _toolPath.Targets)
            {
                var p     = target.End;
                var p3Dmm = new Point3Dmm(p.X + PositionX, -p.Y + PositionY, -p.Z + builder.ZeroLevel);
                if (target.MotionMode == MotionMode.IsLinearRapid)
                {
                    //builder.AddRampedLine(new Point3Dmm(p3Dmm.X, p3Dmm.Y, builder.ZeroLevel));
                    builder.AddRampedLine(p3Dmm);
                    //builder.AddCuttingLine(p3Dmm);
                }
                else
                {
                    builder.AddCuttingLine(p3Dmm);
                }
            }
            builder.AddRampedLine(getEntryPoint());
        }