Esempio n. 1
0
 private void Abort()
 {
     ModelPrint     = Visibility.Collapsed;
     ModelPrintDone = Visibility.Collapsed;
     if (RotateX != 0 || RotateY != 0 || RotateZ != 0)
     {
         CurrentModelPath = CurrentModelPath.Substring(0, CurrentModelPath.IndexOf("_rotated.stl")) + ".stl";
     }
 }
Esempio n. 2
0
        private void GenerateGCODE()
        {
            rotatorManipulatorX.Visibility = Visibility.Collapsed;
            rotatorManipulatorY.Visibility = Visibility.Collapsed;
            rotatorManipulatorZ.Visibility = Visibility.Collapsed;
            ScaleXYZ.Visibility            = Visibility.Collapsed;

            adp.HasFinished = false;
            ModelPrint      = Visibility.Visible;
            ProgressString  = adp.ProgressOutput = "";
            ProgressValue   = adp.ProgressValue = 0;
            AllowUIToUpdate();

            adp.Config = PrintConfig;
            PrintConfig.ExtraConfiguration["scale"] = (ScaleFactor / 100).ToString();
            if (RotateX == 0 && RotateY == 0 && RotateZ == 0)
            {
            }
            else
            {
                AdmeshAdapter.Rotate(CurrentModelPath, RotateX, RotateY, RotateZ);
                CurrentModelPath = CurrentModelPath.Substring(0, CurrentModelPath.IndexOf('.')) + "_rotated.stl";
            }



            ThreadPool.QueueUserWorkItem((state) =>
            {
                Thread.Sleep(200);
                while (adp.HasFinished == false)
                {
                    ProgressString = adp.ProgressOutput;
                    ProgressValue  = adp.ProgressValue;
                    AllowUIToUpdate();
                }
                ProgressString = adp.ProgressOutput;
                ProgressValue  = adp.ProgressValue;
                AllowUIToUpdate();
            });
            ThreadPool.QueueUserWorkItem((state) =>
            {
                adp.GenerateGcode();
                ModelPrintDone = Visibility.Visible;
            });
        }
Esempio n. 3
0
        protected virtual string GetDefinitionFullPath(bool asHash)
        {
            var result = string.Empty;

            // get site -> web -> list -> so on
            var currentDefinitions = CurrentModelPath.Reverse().Select(p => p.Value).ToList();

            // always remove the root definition as
            // 1) they may not have identity key (farm definition)
            // 2) definition path should always be 'root' relative
            currentDefinitions.RemoveAt(0);

            if (asHash)
            {
                result = string.Join(DefaultDefinitionFullPathSeparator, currentDefinitions.Select(p => GetHashString(GetDefinitionIdentityKey(p))).ToArray());
            }
            else
            {
                result = string.Join(DefaultDefinitionFullPathSeparator, currentDefinitions.Select(p => GetDefinitionIdentityKey(p)).ToArray());
                // full path is 'hash(identitykey)/hash(identitykey)/hash(identitykey)'
            }

            return(result);
        }
Esempio n. 4
0
        private void Prontercae()
        {
            CurrentGcodePath = currentModelPath.Substring(0, CurrentModelPath.IndexOf('.')) + ".gcode";
            GcodeString      = System.IO.File.ReadAllText(CurrentGcodePath);
            var LineList = GcodeString.Split('\n');

            double         currentX = 0;
            double         currentY = 0;
            double         currentZ = 0;
            MeshGeometry3D mesh     = new MeshGeometry3D();
            MeshBuilder    builder  = new MeshBuilder(false, false);
            List <Point3D> vrt      = new List <Point3D>();

            foreach (var item in LineList)
            {
                Point3D?point = GParser.getPoint(item.ToString());
                if (point != null)
                {
                    Point3D Point_XYZ = (Point3D)point;
                    if (Point_XYZ.X == -1)
                    {
                        Point_XYZ.X = currentX;
                    }
                    else
                    {
                        currentX = Point_XYZ.X;
                    }
                    if (Point_XYZ.Y == -1)
                    {
                        Point_XYZ.Y = currentY;
                    }
                    else
                    {
                        currentY = Point_XYZ.Y;
                    }

                    if (Point_XYZ.Z == -1)
                    {
                        Point_XYZ.Z = currentZ;
                    }
                    else
                    {
                        currentZ = Point_XYZ.Z;
                    }

                    vrt.Add(Point_XYZ);

//                    builder.AddNode(Point_XYZ, Point_XYZ.ToVector3D(),new Point(Point_XYZ.X,Point_XYZ.Y));
//                  builder.a
                }
            }

            //int pos = 0;
            //for (int i = 0; i < vrt.Count; i += 5, pos++)
            //{
            //    vrt[pos] = vrt[i];
            //}
            //vrt.RemoveRange(pos, vrt.Count - pos);

            for (int i = 0; i < vrt.Count - 1; i++)
            {
                builder.AddPipe(vrt[i], vrt[i + 1], 0.25, 0.25, 18);
            }

            //builder.AddPolygon(vrt);

            // builder.AddRectangularMesh(vrt);
            //builder.AddBox(new Point3D(10, 10, 10), 20, 20, 20);
            CurrentMesh = new GeometryModel3D(builder.ToMesh(), Materials.Hue);
            RaisePropertyChanged("CurrentMesh");
        }