Beispiel #1
0
        /// <summary>
        /// Plot with override plot configuration
        /// </summary>
        /// <param name="pConfig"></param>
        public void Plot(AcadApplication acApp, EPlotConfig pConfig)
        {
            // Sort sheetset
            object[] sets = new object[m_sets.Count];

            foreach (object obj in m_sets)
            {
                if (obj is Sheet)
                {
                    Sheet s = obj as Sheet;
                    sets[s.Handle.Order] = obj;
                }
                else
                {
                    SheetSet s = obj as SheetSet;
                    sets[s.Handle.Order] = obj;
                }
            }

            // Plot without override config
            foreach (object obj in sets)
            {
                if (obj is Sheet)
                {
                    Sheet s = obj as Sheet;
                    s.Plot(acApp, pConfig);
                }
                else
                {
                    SheetSet s = obj as SheetSet;
                    s.Plot(acApp, pConfig);
                }
            }
            System.GC.Collect();
        }
Beispiel #2
0
 /// <summary>
 /// Check whether sheetset contains sheet/sheetset
 /// </summary>
 /// <param name="obj">A Sheet or Sheetset</param>
 /// <returns></returns>
 public bool Contains(object ss)
 {
     if (this == (ss as SheetSet))
     {
         return(true);
     }
     foreach (object obj in m_sets)
     {
         if (ss is Sheet && obj is Sheet)
         {
             if ((Sheet)ss == (Sheet)obj)
             {
                 return(true);
             }
         }
         if (ss is SheetSet && obj is SheetSet)
         {
             SheetSet sSet = obj as SheetSet;
             if (sSet.Contains(ss))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Beispiel #3
0
 /// <summary>
 /// Add another sheet set to this (= sheet set)
 /// </summary>
 /// <param name="ss">Is sheet or sheetSet</param>
 public void Add(object ss)
 {
     if (ss is Sheet || ss is SheetSet)
     {
         if (ss is SheetSet && this.Contains(ss))
         {
             SheetSet sSet = (SheetSet)(ss as SheetSet).Clone();
             sSet.Handle = new EHandle(
                 this.Handle.Grade + 1, this.Handle.Order, m_sets.Count
                 );
             m_sets.Add(sSet);
         }
         else
         {
             if (ss is Sheet)
             {
                 Sheet s = ss as Sheet;
                 s.Handle = new EHandle(
                     this.Handle.Grade + 1, this.Handle.Order, m_sets.Count
                     );
                 m_sets.Add(s);
             }
             else
             {
                 SheetSet s = ss as SheetSet;
                 s.Handle = new EHandle(
                     this.Handle.Grade + 1, this.Handle.Order, m_sets.Count
                     );
                 m_sets.Add(s);
             }
         }
     }
 }
Beispiel #4
0
        /// <summary>
        /// Create a copy of this
        /// Fix error: if a sheetset is added to itself, plot will be performed forever
        /// </summary>
        /// <returns></returns>
        public object Clone()
        {
            SheetSet clone = (SheetSet)this.MemberwiseClone();

            clone.m_sets = new List <object>();
            foreach (object obj in this.Items)
            {
                clone.m_sets.Add(obj);
            }
            clone.Title  = this.Title;
            clone.Handle = this.Handle;

            return(clone);
        }