예제 #1
0
 /// <summary>
 /// WriteCE3クラスへメンバーの書き込み
 /// </summary>
 /// <param name="writeCE3">書き込み対象WriteCE3クラス</param>
 /// <param name="origin">書き込み時の原点</param>
 /// <returns>正常終了でtrue</returns>
 public override bool WrMb3Member(WriteCE3 writeCE3, Point origin)
 {
     base.WrMb3Member(writeCE3, origin);
     writeCE3.WriteNewLine();
     writeCE3.WriteRecordString("PACKAGE", packageName);
     writeCE3.WriteNewLine();
     writeCE3.WriteRecordString("REMARKS", remarksText);
     writeCE3.WriteNewLine();
     writeCE3.WriteRecordInt("ANGLEX10", AngleX10);
     writeCE3.WriteNewLine();
     writeCE3.WriteRecord("+REFNUM");
     writeCE3.WriteNewLine();
     refNum.WrMb3(writeCE3, origin);
     writeCE3.WriteRecord("-REFNUM");
     writeCE3.WriteNewLine();
     writeCE3.WriteRecord("+CONTENTS");
     writeCE3.WriteNewLine();
     if (contentsObj != null)
     {
         foreach (MbeObj obj in contentsObj)
         {
             obj.WrMb3(writeCE3, origin);
         }
     }
     writeCE3.WriteRecord("-CONTENTS");
     writeCE3.WriteNewLine();
     return(true);
 }
예제 #2
0
        /// <summary>
        /// Mb3ファイルへの書き込み
        /// </summary>
        /// <param name="writeCE3"></param>
        /// <returns></returns>
        public override bool WrMb3(WriteCE3 writeCE3, Point origin)
        {
            writeCE3.WriteRecord("+MBE_POLYGON");

            //ポリゴンが禁止マスクとして使われるときに、過去のバージョンで読み込んだときにトラブルになることをできるだけ避ける
            //以下の処理を行うことで、完全にコンパチブルではないが、不要な接続が発生するリスクは低減できる。
            if (restrictMask)
            {
                //posArray[0]は接続点。これを図面外に置く
                if (posArray.Length > 1)
                {
                    posArray[0] = new Point(posArray[1].X + 10000000, posArray[1].Y + 10000000);
                }
                //パターンギャップ、トレース幅は最小。フローティングパターンを削除する。プライオリティは最高。
                patternGap      = MIN_PATTERN_GAP;
                traceWidth      = MIN_TRACE_WIDTH;
                removeFloating  = true;
                fillingPriority = MAX_PRIORITY;
            }


            WrMb3Member(writeCE3, origin);
            writeCE3.WriteRecord("-MBE_POLYGON");
            writeCE3.WriteNewLine();
            return(true);
        }
예제 #3
0
 /// <summary>
 /// Mb3ファイルへの書き込み
 /// </summary>
 /// <param name="writeCE3"></param>
 /// <returns></returns>
 public override bool WrMb3(WriteCE3 writeCE3, Point origin)
 {
     writeCE3.WriteRecord("+MBE_COMPONENT");
     WrMb3Member(writeCE3, origin);
     writeCE3.WriteRecord("-MBE_COMPONENT");
     writeCE3.WriteNewLine();
     return(true);
 }
예제 #4
0
        /// <summary>
        /// Mb3ファイルへの書き込み
        /// </summary>
        /// <param name="writeCE3"></param>
        /// <returns></returns>
        public override bool WrMb3(WriteCE3 writeCE3, Point origin)
        {
            string tagString;

            if (layer == MbeLayer.LayerValue.CMP || layer == MbeLayer.LayerValue.SOL)
            {
                tagString = "MBE_PINSMD";
            }
            else
            {
                tagString = "MBE_FLASHMARK";
            }
            writeCE3.WriteRecord("+" + tagString);
            WrMb3Member(writeCE3, origin);
            writeCE3.WriteRecord("-" + tagString);
            writeCE3.WriteNewLine();
            return(true);
        }
예제 #5
0
 /// <summary>
 /// このクラスのMb3ファイルへの書き出し
 /// </summary>
 /// <param name="writeCE3"></param>
 /// <returns></returns>
 public virtual bool WrMb3(WriteCE3 writeCE3)
 {
     writeCE3.WriteRecord("+MBE_DOCINFO");
     writeCE3.WriteRecordInt("HEIGHT", sizeWorkArea.Height);
     writeCE3.WriteRecordInt("WIDTH", sizeWorkArea.Width);
     writeCE3.WriteRecordInt("DATAVERSION", DATA_VERSION);
     //writeCE3.WriteNewLine();
     //int count = MbeLayer.valueTable.Length;
     //for (int i = 0; i < count; i++) {
     //    if ((VisibleLayer & (ulong)MbeLayer.valueTable[i] )!=0) {
     //        writeCE3.WriteRecordString("VISIBLE", MbeLayer.nameTable[i]);
     //        writeCE3.WriteNewLine();
     //    }
     //}
     writeCE3.WriteRecord("-MBE_DOCINFO");
     writeCE3.WriteNewLine();
     return(true);
 }