예제 #1
0
        /// <summary>
        /// Mb3ファイルの読み込み時のメンバーの解釈を行う
        /// </summary>
        /// <param name="str1">変数名または"+"で始まるブロックタグ</param>
        /// <param name="str2">変数値</param>
        /// <param name="readCE3">ブロック読み込み時に使うReadCE3クラス</param>
        /// <returns>
        /// 正常終了時にReadCE3.RdStatus.NoErrorを返す。
        /// ただし現時点では本メソッドは常にReadCE3.RdStatus.NoErrorを返す。
        /// </returns>
        protected ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            int n;

            switch (str1)
            {
            case "HEIGHT":
                try { n = Convert.ToInt32(str2); }
                catch (Exception) { n = MbeDoc.WORK_AREA_DEFAULT_HEIGHT; }
                SetWorkAreaHeight(n);
                return(ReadCE3.RdStatus.NoError);

            case "WIDTH":
                try { n = Convert.ToInt32(str2); }
                catch (Exception) { n = MbeDoc.WORK_AREA_DEFAULT_WIDTH; }
                SetWorkAreaWidth(n);
                return(ReadCE3.RdStatus.NoError);

            case "DATAVERSION":
                try { fileDataVersion = Convert.ToInt32(str2); }
                catch (Exception) { fileDataVersion = DATA_VERSION; }
                return(ReadCE3.RdStatus.NoError);

            //case "VISIBLE":
            //    VisibleLayer |= (ulong)MbeLayer.GetLayerValue(str2);
            //    return ReadCE3.RdStatus.NoError;
            default:
                return(ReadCE3.RdStatus.NoError);
            }
        }
예제 #2
0
        /// <summary>
        /// このクラスのMb3ファイルの読み込み
        /// </summary>
        /// <param name="readCE3">読み込み対象のReadCE3クラス</param>
        /// <returns>正常終了時に ReadCE3.RdStatus.NoErrorを返す</returns>
        public override ReadCE3.RdStatus RdMb3(ReadCE3 readCE3)
        {
            string str1;
            string str2;

            while (readCE3.GetRecord(out str1, out str2))
            {
                if (str1[0] == '-')
                {
                    if (str1 != "-MBE_PINSMD" && str1 != "-MBE_FLASHMARK")
                    {
                        return(ReadCE3.RdStatus.FormatError);
                    }
                    else
                    {
                        if (no_ResistMask)
                        {
                            no_MM = true;
                        }
                        return(ReadCE3.RdStatus.NoError);
                    }
                }
                else
                {
                    ReadCE3.RdStatus result = RdMb3Member(str1, str2, readCE3);
                    if (result != ReadCE3.RdStatus.NoError)
                    {
                        return(result);
                    }
                }
            }
            return(ReadCE3.RdStatus.FileError);
        }
예제 #3
0
        /// <summary>
        /// このクラスのMb3ファイルの読み込み
        /// </summary>
        /// <param name="readCE3">読み込み対象のReadCE3クラス</param>
        /// <returns>正常終了時にReadCE3.RdStatus.NoError を返す</returns>
        public ReadCE3.RdStatus RdMb3(ReadCE3 readCE3)
        {
            //VisibleLayer = 0L;
            string str1;
            string str2;

            ReadCE3.RdStatus result = ReadCE3.RdStatus.NoError;
            while (readCE3.GetRecord(out str1, out str2))
            {
                if (str1[0] == '-')
                {
                    if (str1 != "-MBE_DOCINFO")
                    {
                        result = ReadCE3.RdStatus.FormatError;
                    }
                    break;
                }
                else
                {
                    result = RdMb3Member(str1, str2, readCE3);
                    if (result != ReadCE3.RdStatus.NoError)
                    {
                        break;
                    }
                }
            }
            return(result);
        }
예제 #4
0
        /// <summary>
        /// Mb3ファイルの読み込み時のメンバーの解釈を行う
        /// </summary>
        /// <param name="str1">変数名または"+"で始まるブロックタグ</param>
        /// <param name="str2">変数値</param>
        /// <param name="readCE3">ブロック読み込み時に使うReadCE3クラス</param>
        /// <returns>正常終了時にReadCE3.RdStatus.NoErrorを返す</returns>
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "WIDTH":
                try { LineWidth = Convert.ToInt32(str2); }
                catch (Exception) { LineWidth = DEFAULT_LINE_WIDTH; }
                return(ReadCE3.RdStatus.NoError);

            case "HEIGHT":
                try { TextHeight = Convert.ToInt32(str2); }
                catch (Exception) { TextHeight = DEFAULT_TEXT_HEIGHT; }
                return(ReadCE3.RdStatus.NoError);

            case "DIR":
            {
                //int n = 0;
                try { Dir = Convert.ToInt32(str2); }
                catch (Exception) { Dir = 0; }
                //Vertical = (n != 0);
                return(ReadCE3.RdStatus.NoError);
            }

            default:
                return(base.RdMb3Member(str1, str2, readCE3));
            }
        }
예제 #5
0
        public override ReadCE3.RdStatus RdMb3(ReadCE3 readCE3)
        {
            string str1;
            string str2;

            while (readCE3.GetRecord(out str1, out str2))
            {
                if (str1[0] == '-')
                {
                    if (str1 != "-LINE_INFO")
                    {
                        return(ReadCE3.RdStatus.FormatError);
                    }
                    else
                    {
                        return(ReadCE3.RdStatus.NoError);
                    }
                }
                else
                {
                    ReadCE3.RdStatus result = RdMb3Member(str1, str2, readCE3);
                    if (result != ReadCE3.RdStatus.NoError)
                    {
                        return(result);
                    }
                }
            }
            return(ReadCE3.RdStatus.FileError);
        }
예제 #6
0
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "R":
                try { Radius = Convert.ToInt32(str2); }
                catch (Exception) { Radius = MbeObjArc.DEFAULT_RADIUS; }
                return(ReadCE3.RdStatus.NoError);

            case "S":
                try { StartAngle = Convert.ToInt32(str2); }
                catch (Exception) { StartAngle = MbeObjArc.DEFAULT_START_ANGLE; }
                return(ReadCE3.RdStatus.NoError);

            case "E":
                try { EndAngle = Convert.ToInt32(str2); }
                catch (Exception) { EndAngle = MbeObjArc.DEFAULT_END_ANGLE; }
                return(ReadCE3.RdStatus.NoError);

            case "W":
                try { Width = Convert.ToInt32(str2); }
                catch (Exception) { Width = MbeObjLine.DEFAULT_LINE_WIDTH; }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(ReadCE3.RdStatus.NoError);
            }
        }
예제 #7
0
        /// <summary>
        /// Mb3ファイルの読み込み時のメンバーの解釈を行う
        /// </summary>
        /// <param name="str1">変数名または"+"で始まるブロックタグ</param>
        /// <param name="str2">変数値</param>
        /// <param name="readCE3">ブロック読み込み時に使うReadCE3クラス</param>
        /// <returns>正常終了時にReadCE3.RdStatus.NoErrorを返す</returns>
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            int n;

            switch (str1)
            {
            //case "MMREDUCE":
            //    try { MmReduce = Convert.ToInt32(str2); }
            //    catch (Exception) { MmReduce = DEFAULT_MMREDUCE; }
            //    return ReadCE3.RdStatus.NoError;
            //case "NO_RM":
            //    try {
            //        n = Convert.ToInt32(str2);
            //        no_ResistMask = (n != 0);
            //    }
            //    catch (Exception) { no_ResistMask = false; }
            //    return ReadCE3.RdStatus.NoError;
            case "NO_MM":
                try {
                    n     = Convert.ToInt32(str2);
                    no_MM = (n != 0);
                }
                catch (Exception) { no_MM = false; }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(base.RdMb3Member(str1, str2, readCE3));
            }
            //return true;
        }
예제 #8
0
        /// <summary>
        /// Mb3ファイルの読み込み時のメンバーの解釈を行う
        /// </summary>
        /// <param name="str1">変数名または"+"で始まるブロックタグ</param>
        /// <param name="str2">変数値</param>
        /// <param name="readCE3">ブロック読み込み時に使うReadCE3クラス</param>
        /// <returns>正常終了時にReadCE3.RdStatus.NoErrorを返す</returns>
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "STYLE":
                if (str2 == lineStyleName[(int)MbeLineStyle.Bending1])
                {
                    lineStyle = MbeLineStyle.Bending1;
                }
                else if (str2 == lineStyleName[(int)MbeLineStyle.Bending2])
                {
                    lineStyle = MbeLineStyle.Bending2;
                }
                else
                {
                    lineStyle = MbeLineStyle.Straight;
                }
                return(ReadCE3.RdStatus.NoError);

            case "WIDTH":
                try { LineWidth = Convert.ToInt32(str2); }
                catch (Exception) { LineWidth = DEFAULT_LINE_WIDTH; }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(base.RdMb3Member(str1, str2, readCE3));
            }
        }
예제 #9
0
        /// <summary>
        /// Mb3ファイルの読み込み時のメンバーの解釈を行う
        /// </summary>
        /// <param name="str1">変数名または"+"で始まるブロックタグ</param>
        /// <param name="str2">変数値</param>
        /// <param name="readCE3">ブロック読み込み時に使うReadCE3クラス</param>
        /// <returns>正常終了時にReadCE3.RdStatus.NoErrorを返す</returns>
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            int n;

            switch (str1)
            {
            case "POSCOUNT":
                try { n = Convert.ToInt32(str2); }
                catch (Exception) { n = 1; }
                posCount   = n;
                posArray   = new Point[n];
                selectFlag = new bool[n];
                return(ReadCE3.RdStatus.NoError);

            case "PTNGAP":
                try { n = Convert.ToInt32(str2); }
                catch (Exception) { n = DEFAULT_PATTERN_GAP; }
                PatternGap = n;
                return(ReadCE3.RdStatus.NoError);

            case "TRACEWIDTH":
                try { n = Convert.ToInt32(str2); }
                catch (Exception) { n = DEFAULT_TRACE_WIDTH; }
                TraceWidth = n;
                return(ReadCE3.RdStatus.NoError);

            case "FILLPRIORITY":
                try { n = Convert.ToInt32(str2); }
                catch (Exception) { n = DEFAULT_PRIORITY; }
                FillingPriority = n;
                return(ReadCE3.RdStatus.NoError);

            case "REMOVEFLOAT":
                try { n = Convert.ToInt32(str2); }
                catch (Exception) { n = 0; }
                removeFloating = (n != 0);
                return(ReadCE3.RdStatus.NoError);

            case "RESTRICTMASK":
                try { n = Convert.ToInt32(str2); }
                catch (Exception) { n = 0; }
                restrictMask = (n != 0);
                return(ReadCE3.RdStatus.NoError);


            //    if (str2 == lineStyleName[(int)MbeLineStyle.Bending1]) {
            //        lineStyle = MbeLineStyle.Bending1;
            //    }
            //    return ReadCE3.RdStatus.NoError;
            //case "WIDTH":
            //    try { LineWidth = Convert.ToInt32(str2); }
            //    catch (Exception) { LineWidth = DEFAULT_LINE_WIDTH; }
            //    return ReadCE3.RdStatus.NoError;
            default:
                return(base.RdMb3Member(str1, str2, readCE3));
            }
        }
예제 #10
0
        /// <summary>
        /// ReadCE3のストリームから、startWordで始まるMbeObjを読み取る
        /// </summary>
        /// <param name="readMb3"></param>
        /// <param name="startWord"></param>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static ReadCE3.RdStatus ReadMbeObj(ReadCE3 readMb3, string startWord, out MbeObj obj)
        {
            ReadCE3.RdStatus result = ReadCE3.RdStatus.NoError;
            obj = null;
            if (startWord == "+MBE_HOLE")
            {
                obj = new MbeObjHole();
            }
            else if (startWord == "+MBE_PTH")
            {
                obj = new MbeObjPTH();
            }
            else if (startWord == "+MBE_PINSMD")
            {
                obj = new MbeObjPinSMD(true);
            }
            else if (startWord == "+MBE_FLASHMARK")
            {
                obj = new MbeObjPinSMD(false);
            }
            else if (startWord == "+MBE_LINE")
            {
                obj = new MbeObjLine();
            }
            else if (startWord == "+MBE_POLYGON")
            {
                obj = new MbeObjPolygon();
            }
            else if (startWord == "+MBE_TEXT")
            {
                obj = new MbeObjText();
            }
            else if (startWord == "+MBE_ARC")
            {
                obj = new MbeObjArc();
            }
            else if (startWord == "+MBE_COMPONENT")
            {
                obj = new MbeObjComponent();
            }
            else
            {
                string strSkipTo = "-" + startWord.Substring(1);
                readMb3.SkipTo(strSkipTo);
            }

            if (obj != null)
            {
                result = obj.RdMb3(readMb3);
                if (result != ReadCE3.RdStatus.NoError)
                {
                    obj = null;
                }
            }
            return(result);
        }
예제 #11
0
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "P":
                libPath = ReadCE3.DecodeCE3String(str2);
                return(ReadCE3.RdStatus.NoError);

            default:
                return(ReadCE3.RdStatus.NoError);
            }
        }
예제 #12
0
        /// <summary>
        /// Mb3ファイルの読み込み時のメンバーの解釈を行う
        /// </summary>
        /// <param name="str1">変数名または"+"で始まるブロックタグ</param>
        /// <param name="str2">変数値</param>
        /// <param name="readCE3">ブロック読み込み時に使うReadCE3クラス</param>
        /// <returns>正常終了時にReadCE3.RdStatus.NoErrorを返す</returns>
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case  "HEIGHT":
                try { Height = Convert.ToInt32(str2); }
                catch (Exception) { Height = DEFAULT_HEIGHT; }
                return(ReadCE3.RdStatus.NoError);

            case "WIDTH":
                try { Width = Convert.ToInt32(str2); }
                catch (Exception) { Width = DEFAULT_WIDTH; }
                return(ReadCE3.RdStatus.NoError);

            case "SHAPE":
                shape = GetPadShapeValue(str2);
                if (shape == PadShape.ERR)
                {
                    shape = PadShape.Obround;
                }
                return(ReadCE3.RdStatus.NoError);

            case "THMLRLF":
                thermalRelief = GetThermalReliefTypeValue(str2);
                if (thermalRelief == PadThermalRelief.ERR)
                {
                    thermalRelief = PadThermalRelief.ThmlRlfInComp;
                }
                return(ReadCE3.RdStatus.NoError);

            case "PINNUM":
                PinNum = ReadCE3.DecodeCE3String(str2);
                return(ReadCE3.RdStatus.NoError);

            case "SRMARGIN":
                try { SrMargin = Convert.ToInt32(str2); }
                catch (Exception) { SrMargin = DEFAULT_SRMARGIN; }
                return(ReadCE3.RdStatus.NoError);

            case "NO_RM":
                try {
                    int n = Convert.ToInt32(str2);
                    no_ResistMask = (n != 0);
                }
                catch (Exception) { no_ResistMask = false; }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(base.RdMb3Member(str1, str2, readCE3));
            }
            //return true;
        }
예제 #13
0
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "W":
                try { Width = Convert.ToInt32(str2); }
                catch (Exception) { Width = MbeObjLine.DEFAULT_LINE_WIDTH; }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(ReadCE3.RdStatus.NoError);
            }
        }
예제 #14
0
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "D":
                try { Dia = Convert.ToInt32(str2); }
                catch (Exception) { Dia = MbeObjPTH.DEFAULT_DIA; }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(base.RdMb3Member(str1, str2, readCE3));
            }
        }
예제 #15
0
        /// <summary>
        /// Mb3ファイルの読み込み時のメンバーの解釈を行う
        /// </summary>
        /// <param name="str1">変数名または"+"で始まるブロックタグ</param>
        /// <param name="str2">変数値</param>
        /// <param name="readCE3">ブロック読み込み時に使うReadCE3クラス</param>
        /// <returns>正常終了時にReadCE3.RdStatus.NoErrorを返す</returns>
        public virtual ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            //ReadCE3.RdStatus result = ReadCE3.RdStatus.NoError;

            switch (str1)
            {
            case "LAYER":
                Layer = MbeLayer.GetLayerValue(str2);
                return(ReadCE3.RdStatus.NoError);

            case "SIGNAME":
                SigName = ReadCE3.DecodeCE3String(str2);
                return(ReadCE3.RdStatus.NoError);
            }

            if ((str1.Substring(1, 3) == "POS") && (str1.Length > 4))
            {
                string strIndex = str1.Substring(4);
                int    index;
                int    value;
                try {
                    index = Convert.ToInt32(strIndex);
                    value = Convert.ToInt32(str2);
                }
                catch (Exception) {
                    return(ReadCE3.RdStatus.FormatError);
                }
                if (str1[0] == 'X')
                {
                    SetXPos(value, index);
                    return(ReadCE3.RdStatus.NoError);
                }
                else if (str1[0] == 'Y')
                {
                    SetYPos(value, index);
                    return(ReadCE3.RdStatus.NoError);
                }
            }


            if (str1[0] == '+' && str1.Length >= 2)
            {
                string strSkipTo = "-" + str1.Substring(1);
                if (!readCE3.SkipTo(strSkipTo))
                {
                    return(ReadCE3.RdStatus.FileError);
                }
            }

            return(ReadCE3.RdStatus.NoError);
        }
예제 #16
0
        /// <summary>
        /// このクラスのMb3ファイルの読み込み
        /// </summary>
        /// <param name="readCE3">読み込み対象のReadCE3クラス</param>
        /// <returns>正常終了時にReadCE3.RdStatus.NoError を返す</returns>
        public override ReadCE3.RdStatus RdMb3(ReadCE3 readCE3)
        {
            string str1;
            string str2;

            AngleX10 = -1;
            while (readCE3.GetRecord(out str1, out str2))
            {
                if (str1[0] == '-')
                {
                    if (str1 != "-MBE_COMPONENT")
                    {
                        return(ReadCE3.RdStatus.FormatError);
                    }
                    else
                    {
                        //layer = refNum.Layer;


                        //foreach (MbeObj obj in contentsObj) {
                        //    if (obj.Id() == MbeObjID.MbeLine) {
                        //        if (obj.Layer == MbeLayer.LayerValue.PLC || obj.Layer == MbeLayer.LayerValue.PLS) {
                        //            ((MbeObjLine)obj).LineWidth = 2000;
                        //        }
                        //    }
                        //    if (obj.Id() == MbeObjID.MbeArc) {
                        //        if (obj.Layer == MbeLayer.LayerValue.PLC || obj.Layer == MbeLayer.LayerValue.PLS) {
                        //            ((MbeObjArc)obj).LineWidth = 2000;
                        //        }
                        //    }

                        //}



                        return(ReadCE3.RdStatus.NoError);
                    }
                }
                else
                {
                    ReadCE3.RdStatus result = RdMb3Member(str1, str2, readCE3);
                    if (result != ReadCE3.RdStatus.NoError)
                    {
                        return(result);
                    }
                }
            }

            return(ReadCE3.RdStatus.FileError);
        }
예제 #17
0
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "G":
                try { PatternGap = Convert.ToInt32(str2); }
                catch (Exception) { PatternGap = MbeObjPolygon.DEFAULT_PATTERN_GAP; }
                return(ReadCE3.RdStatus.NoError);

            case "T":
                try { TraceWidth = Convert.ToInt32(str2); }
                catch (Exception) { TraceWidth = MbeObjPolygon.DEFAULT_TRACE_WIDTH; }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(ReadCE3.RdStatus.NoError);
            }
        }
예제 #18
0
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "H":
                try { TextHeight = Convert.ToInt32(str2); }
                catch (Exception) { TextHeight = MbeObjText.DEFAULT_TEXT_HEIGHT; }
                return(ReadCE3.RdStatus.NoError);

            case "W":
                try { LineWidth = Convert.ToInt32(str2); }
                catch (Exception) { LineWidth = MbeObjText.DEFAULT_LINE_WIDTH; }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(ReadCE3.RdStatus.NoError);
            }
        }
예제 #19
0
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "S":
                shape = MbeObjPin.GetPadShapeValue(str2);
                return(ReadCE3.RdStatus.NoError);

            case "W":
                try { Width = Convert.ToInt32(str2); }
                catch (Exception) { Width = MbeObjLine.DEFAULT_LINE_WIDTH; }
                return(ReadCE3.RdStatus.NoError);

            case "H":
                try { Height = Convert.ToInt32(str2); }
                catch (Exception) { Height = MbeObjLine.DEFAULT_LINE_WIDTH; }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(ReadCE3.RdStatus.NoError);
            }
        }
예제 #20
0
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "H":
                try { horizontal = Convert.ToInt32(str2); }
                catch (Exception) { horizontal = GridInfo.INITIAL_GRID_VALUE; }
                return(ReadCE3.RdStatus.NoError);

            case "V":
                try { vertical = Convert.ToInt32(str2); }
                catch (Exception) { vertical = GridInfo.INITIAL_GRID_VALUE; }
                return(ReadCE3.RdStatus.NoError);

            case "HD":
                try { displayEvery = Convert.ToInt32(str2); }
                catch (Exception) { displayEvery = GridInfo.INITIAL_GRID_DISPLAY_EVERY; }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(ReadCE3.RdStatus.NoError);
            }
        }
예제 #21
0
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            switch (str1)
            {
            case "A": {
                int n = 0;
                try { n = Convert.ToInt32(str2); }
                catch (Exception) { n = 0; }
                active = (n != 0);
            }
                return(ReadCE3.RdStatus.NoError);

            case "M": {
                int n = 0;
                try { n = Convert.ToInt32(str2); }
                catch (Exception) { n = 0; }
                mirror = (n != 0);
            }
                return(ReadCE3.RdStatus.NoError);

            case "N":
                name = ReadCE3.DecodeCE3String(str2);
                return(ReadCE3.RdStatus.NoError);

            case "L": {
                ulong u = 0;
                try { u = Convert.ToUInt64(str2); }
                catch (Exception) { u = 0; }
                checkvalue = u;
            }
                return(ReadCE3.RdStatus.NoError);

            default:
                return(ReadCE3.RdStatus.NoError);
            }
        }
예제 #22
0
        public static MbeMyStd[] LoadMyStdInfoArray(string str)
        {
            LinkedList <MbeMyStd> infoLList = new LinkedList <MbeMyStd>();

            if (str != null)
            {
                StringReader     stringReader = new StringReader(str);
                ReadCE3.RdStatus result       = ReadCE3.RdStatus.NoError;
                try {
                    ReadCE3 readMb3 = new ReadCE3(stringReader);
                    string  str1;
                    string  str2;
                    while (readMb3.GetRecord(out str1, out str2))
                    {
                        if (str1[0] == '-')
                        {
                            break;
                        }
                        else
                        {
                            MbeMyStd info = null;
                            if (str1 == "")
                            {
                                continue;
                            }
                            else if (str1 == "+PAD_INFO")
                            {
                                info = new PadInfo();
                            }
                            else if (str1 == "+PTH_INFO")
                            {
                                info = new PthInfo();
                            }
                            else if (str1 == "+LINE_INFO")
                            {
                                info = new LineInfo();
                            }
                            else if (str1 == "+ARC_INFO")
                            {
                                info = new ArcInfo();
                            }
                            else if (str1 == "+HOLE_INFO")
                            {
                                info = new HoleInfo();
                            }
                            else if (str1 == "+GRID_INFO")
                            {
                                info = new GridInfo();
                            }
                            else if (str1 == "+TEXT_INFO")
                            {
                                info = new TextInfo();
                            }
                            else if (str1 == "+POLYGON_INFO")
                            {
                                info = new PolygonInfo();
                            }
                            else if (str1 == "+LIB_INFO")
                            {
                                info = new LibInfo();
                            }
                            else if (str1 == "+PPAGE_INFO")
                            {
                                info = new PrintPageLayerInfo();
                            }
                            if (info != null)
                            {
                                result = info.RdMb3(readMb3);
                                if (result == ReadCE3.RdStatus.NoError)
                                {
                                    infoLList.AddLast(info);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
                catch {
                }
                finally {
                    stringReader.Dispose();
                }
            }
            MbeMyStd[] infoArray = new MbeMyStd[infoLList.Count];
            int        index     = 0;

            foreach (MbeMyStd info in infoLList)
            {
                infoArray[index] = info;
                index++;
            }

            return(infoArray);
        }
예제 #23
0
 public abstract ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3);
예제 #24
0
        /// <summary>
        /// Mb3ファイルの読み込み時のメンバーの解釈を行う
        /// </summary>
        /// <param name="str1">変数名または"+"で始まるブロックタグ</param>
        /// <param name="str2">変数値</param>
        /// <param name="readCE3">ブロック読み込み時に使うReadCE3クラス</param>
        /// <returns>正常終了時にReadCE3.RdStatus.NoErrorを返す</returns>
        public override ReadCE3.RdStatus RdMb3Member(string str1, string str2, ReadCE3 readCE3)
        {
            string _str1;
            string _str2;

            ReadCE3.RdStatus result = ReadCE3.RdStatus.NoError;
            switch (str1)
            {
            case "PACKAGE":
                packageName = ReadCE3.DecodeCE3String(str2);
                return(ReadCE3.RdStatus.NoError);

            case "REMARKS":
                remarksText = ReadCE3.DecodeCE3String(str2);
                return(ReadCE3.RdStatus.NoError);

            case "ANGLEX10":
                try { AngleX10 = Convert.ToInt32(str2); }
                catch (Exception) {
                    AngleX10 = -1;
                }
                return(ReadCE3.RdStatus.NoError);

            case "+REFNUM": {
                while (readCE3.GetRecord(out _str1, out _str2))
                {
                    if (_str1[0] == '-')
                    {
                        break;
                    }
                    else
                    {
                        if (_str1 == "")
                        {
                            continue;
                        }
                        MbeObj obj;
                        result = MbeObjIO.ReadMbeObj(readCE3, _str1, out obj);
                        if (obj != null && obj.Id() == MbeObjID.MbeText)
                        {
                            refNum = (MbeObjText)obj;
                        }
                    }
                }
                return(result);
            }

            case "+CONTENTS": {
                LinkedList <MbeObj> objLList = new LinkedList <MbeObj>();
                while (readCE3.GetRecord(out _str1, out _str2))
                {
                    if (_str1[0] == '-')
                    {
                        break;
                    }
                    else
                    {
                        if (_str1 == "")
                        {
                            continue;
                        }
                        MbeObj obj;
                        result = MbeObjIO.ReadMbeObj(readCE3, _str1, out obj);
                        if (obj != null)
                        {
                            objLList.AddLast(obj);
                        }
                    }
                }
                int nCount = objLList.Count;
                if (nCount == 0)
                {
                    contentsObj = null;
                    return(result);
                }
                SetContentsWithLinkedList(objLList);
                return(result);
            }

            default:
                return(base.RdMb3Member(str1, str2, readCE3));
            }
        }
예제 #25
0
 /// <summary>
 /// このクラスのMb3ファイルの読み込み
 /// </summary>
 /// <param name="readCE3">読み込み対象のReadCE3クラス</param>
 /// <returns>正常終了時にReadCE3.RdStatus.NoErrorを返す</returns>
 public abstract ReadCE3.RdStatus RdMb3(ReadCE3 readCE3);