Ejemplo n.º 1
0
        public PanelProperties(GerberLibrary.GerberPanel ThePanel)
        {
            InitializeComponent();
            ParentPanel = ThePanel;

            WidthBox.Value              = (decimal)ParentPanel.TheSet.Width;
            HeightBox.Value             = (decimal)ParentPanel.TheSet.Height;
            MarginBox.Value             = (decimal)ParentPanel.TheSet.MarginBetweenBoards;
            ClipToOutlines.Checked      = ParentPanel.TheSet.ClipToOutlines;
            filloffsetbox.Value         = (decimal)ParentPanel.TheSet.FillOffset;
            smoothoffsetbox.Value       = (decimal)ParentPanel.TheSet.Smoothing;
            ExtraTabDrillDistance.Value = (decimal)ParentPanel.TheSet.ExtraTabDrillDistance;
            FillEmpty.Checked           = ParentPanel.TheSet.ConstructNegativePolygon;
        }
Ejemplo n.º 2
0
        public PanelProperties(GerberLibrary.GerberPanel ThePanel)
        {
            InitializeComponent();
            ParentPanel = ThePanel;

            WidthBox.Value                     = (decimal)ParentPanel.TheSet.Width;
            HeightBox.Value                    = (decimal)ParentPanel.TheSet.Height;
            MarginBox.Value                    = (decimal)ParentPanel.TheSet.MarginBetweenBoards;
            ClipToOutlines.Checked             = ParentPanel.TheSet.ClipToOutlines;
            filloffsetbox.Value                = (decimal)ParentPanel.TheSet.FillOffset;
            smoothoffsetbox.Value              = (decimal)ParentPanel.TheSet.Smoothing;
            ExtraTabDrillDistance.Value        = (decimal)ParentPanel.TheSet.ExtraTabDrillDistance;
            FillEmpty.Checked                  = ParentPanel.TheSet.ConstructNegativePolygon;
            noMouseBites.Checked               = ParentPanel.TheSet.DoNotGenerateMouseBites;
            mergebyfiletypebox.Checked         = ParentPanel.TheSet.MergeFileTypes;
            copyOutlineToTopSilkscreen.Checked = ParentPanel.TheSet.CopyOutlineToTopSilkscreen;
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            GerberLibrary.GerberPanel GP = new GerberLibrary.GerberPanel();
            PanelSettings             S  = new PanelSettings();

            string SettingsFile = "";
            string InputFile    = "";

            if (args.Count() < 2)
            {
                Console.WriteLine("Usage:");
                Console.WriteLine("AutoPanelBuilder.exe  [--settings {file}]");
                Console.WriteLine("\t[--files {filewithfolders}]");
                Console.WriteLine("\t[--dumpsample]");
                Console.WriteLine("\toutput_directory");

                return;
            }

            Arguments NextArg = Arguments.None;

            for (int i = 0; i < args.Count() - 1; i++)
            {
                switch (NextArg)
                {
                case Arguments.SettingsFile: SettingsFile = args[i]; NextArg = Arguments.None; break;

                case Arguments.InputList: InputFile = args[i]; NextArg = Arguments.None; break;

                case Arguments.None:
                    switch (args[i].ToLower())
                    {
                    case "--settings": NextArg = Arguments.SettingsFile; break;

                    case "--files": NextArg = Arguments.InputList; break;

                    case "--dumpsample":
                    {
                        XmlSerializer SerializerObj   = new XmlSerializer(typeof(PanelSettings));
                        TextWriter    WriteFileStream = new StreamWriter("SettingDump.xml");
                        SerializerObj.Serialize(WriteFileStream, S);
                        WriteFileStream.Close();
                    }
                    break;
                    }
                    break;
                }
            }

            if (SettingsFile.Length > 0)
            {
                XmlSerializer SettingsSerialize = new XmlSerializer(typeof(PanelSettings));
                FileStream    ReadFileStream    = null;
                try
                {
                    ReadFileStream = new FileStream(SettingsFile, FileMode.Open, FileAccess.Read, FileShare.Read);

                    // Load the object saved above by using the Deserialize function
                    PanelSettings newset = (PanelSettings)SettingsSerialize.Deserialize(ReadFileStream);
                    if (newset != null)
                    {
                        S = newset;
                    }
                }
                catch (Exception)
                {
                }
            }

            if (InputFile.Length > 0)
            {
                foreach (var a in File.ReadAllLines(InputFile))
                {
                    var A = GP.AddGerberFolder(a);
                    GP.AddInstance(a, new GerberLibrary.Core.Primitives.PointD(0, 0));
                }
            }

            GP.TheSet.Width  = S.Width;
            GP.TheSet.Height = S.Height;
            GP.TheSet.MarginBetweenBoards      = S.MarginBetweenBoards;
            GP.TheSet.ConstructNegativePolygon = S.ConstructNegativePolygon;
            GP.TheSet.FillOffset            = S.FillOffset;
            GP.TheSet.Smoothing             = S.Smoothing;
            GP.TheSet.ExtraTabDrillDistance = S.ExtraTabDrillDistance;

            if (GP.MaxRectPack(GerberLibrary.MaxRectPacker.FreeRectChoiceHeuristic.RectBestAreaFit, 0, true))
            {
                GerberLibrary.GerberArtWriter GAW2 = new GerberLibrary.GerberArtWriter();
                GerberLibrary.GerberArtWriter GAW  = new GerberLibrary.GerberArtWriter();

                GP.BuildAutoTabs(GAW, GAW2);


                string basepath = args[args.Count() - 1];
                Directory.CreateDirectory(Path.Combine(basepath, "output"));
                GP.SaveFile(Path.Combine(basepath, "panel.gerberset"));
                GP.SaveOutlineTo(basepath, "paneloutline");

                GAW.Write(Path.Combine(basepath, "delaunay.gbr"));
                GAW2.Write(Path.Combine(basepath, "points.gbr"));
                //    Console.ReadKey();
            }
        }