コード例 #1
0
ファイル: LibGerberVS.cs プロジェクト: caoweisir/GerberVS
        private static void AddFileToProject(GerberProject project, GerberImage parsedImage, string fullPathName, bool reloading)
        {
            int fileIndex           = project.FileInfo.Count - 1;
            int colorIndex          = 0;
            GerberVerifyError error = GerberVerifyError.ImageOK;

            //Debug.WriteLine("Integrity check on image....\n");
            error = parsedImage.GerberImageVerify();
            if (error != GerberVerifyError.ImageOK)
            {
                project.FileInfo.RemoveAt(fileIndex);   // Image has errors, remove it from the file list.
                if ((error & GerberVerifyError.MissingNetList) > 0)
                {
                    throw new GerberImageException("Missing image net list.");
                }

                if ((error & GerberVerifyError.MissingFormat) > 0)
                {
                    throw new GerberImageException("Missing format information in file.");
                }

                if ((error & GerberVerifyError.MissingApertures) > 0)
                {
                    throw new GerberImageException("Missing apertures/drill sizes.");
                }

                if ((error & GerberVerifyError.MissingImageInfo) > 0)
                {
                    throw new GerberImageException("Missing image information.");
                }
            }

            project.FileInfo[fileIndex].Image = parsedImage;
            if (reloading) // If reload, just exchange the image and return.
            {
                return;
            }

            project.FileInfo[fileIndex].FullPathName = fullPathName;
            project.FileInfo[fileIndex].FileName     = Path.GetFileName(fullPathName);
            colorIndex = defaultColorIndex % NumberOfDefaultColors;
            project.FileInfo[fileIndex].Color     = Color.FromArgb(defaultColors[colorIndex, 1], defaultColors[colorIndex, 2], defaultColors[colorIndex, 3]);
            project.FileInfo[fileIndex].Alpha     = defaultColors[colorIndex, 0];
            project.FileInfo[fileIndex].IsVisible = true;
            defaultColorIndex++;
        }
コード例 #2
0
ファイル: GerberImage.cs プロジェクト: caoweisir/GerberVS
        /// <summary>
        /// Perform some basic integrity tests on the gerber image.
        /// </summary>
        /// <returns>error status</returns>
        public GerberVerifyError GerberImageVerify()
        {
            GerberVerifyError errorStatus = GerberVerifyError.ImageOK;
            int numberOfNets = 0;

            if (this.GerberNetList == null)
            {
                errorStatus |= GerberVerifyError.MissingNetList;
            }

            if (this.Format == null)
            {
                errorStatus |= GerberVerifyError.MissingFormat;
            }

            if (this.ImageInfo == null)
            {
                errorStatus |= GerberVerifyError.MissingImageInfo;
            }

            if (this.GerberNetList != null)
            {
                numberOfNets = this.GerberNetList.Count;
            }

            // If we have nets but no apertures are defined, then complain.
            if (numberOfNets > 0)
            {
                if (this.ApertureArray.Length == 0)
                {
                    errorStatus |= GerberVerifyError.MissingApertures;
                }
            }

            return(errorStatus);
        }