Пример #1
0
        public static SpeckleObject ToSpeckle(this GSA2DVoid dummyObject)
        {
            var newLines = ToSpeckleBase <GSA2DVoid>();

            var voids = new List <GSA2DVoid>();
            var nodes = Initialiser.GSASenderObjects[typeof(GSANode)].Cast <GSANode>().ToList();

            foreach (var p in newLines.Values)
            {
                var pPieces = p.ListSplit("\t");
                if (!pPieces[4].Is2DMember())
                {
                    // Check if void
                    if (pPieces[4] == "2D_VOID_CUTTER")
                    {
                        try
                        {
                            var v = new GSA2DVoid()
                            {
                                GWACommand = p
                            };
                            v.ParseGWACommand(nodes);
                            voids.Add(v);
                        }
                        catch { }
                    }
                }
            }

            Initialiser.GSASenderObjects[typeof(GSA2DVoid)].AddRange(voids);

            return((voids.Count() > 0) ? new SpeckleObject() : new SpeckleNull());
        }
        public static SpeckleObject ToSpeckle(this GSA2DVoid dummyObject)
        {
            var newLines  = ToSpeckleBase <GSA2DVoid>();
            var voidsLock = new object();
            var voids     = new SortedDictionary <int, GSA2DVoid>();
            var nodes     = Initialiser.GsaKit.GSASenderObjects.Get <GSANode>();
            var keyword   = dummyObject.GetGSAKeyword();

            //Parallel.ForEach(newLines.Keys, k =>
            foreach (var k in newLines.Keys)
            {
                var pPieces = newLines[k].ListSplit(Initialiser.AppResources.Proxy.GwaDelimiter);
                if (!pPieces[4].Is2DMember())
                {
                    // Check if void
                    if (pPieces[4] == "2D_VOID_CUTTER")
                    {
                        var gsaId = pPieces[1];
                        try
                        {
                            var v = new GSA2DVoid()
                            {
                                GWACommand = newLines[k]
                            };
                            v.ParseGWACommand(nodes);
                            lock (voidsLock)
                            {
                                voids.Add(k, v);
                            }
                        }
                        catch (Exception ex)
                        {
                            Initialiser.AppResources.Messenger.Message(MessageIntent.TechnicalLog, MessageLevel.Error, ex,
                                                                       "Keyword=" + keyword, "Index=" + k);
                        }
                    }
                }
            }
            //);

            if (voids.Values.Count() > 0)
            {
                Initialiser.GsaKit.GSASenderObjects.AddRange(voids.Values.ToList());
            }

            return((voids.Keys.Count > 0) ? new SpeckleObject() : new SpeckleNull());
        }
        public static SpeckleObject ToSpeckle(this GSA2DVoid dummyObject)
        {
            var newLines = ToSpeckleBase <GSA2DVoid>();

            var voidsLock = new object();
            var voids     = new List <GSA2DVoid>();
            var nodes     = Initialiser.GSASenderObjects.Get <GSANode>();

            Parallel.ForEach(newLines.Values, p =>
            {
                var pPieces = p.ListSplit("\t");
                if (!pPieces[4].Is2DMember())
                {
                    // Check if void
                    if (pPieces[4] == "2D_VOID_CUTTER")
                    {
                        try
                        {
                            var v = new GSA2DVoid()
                            {
                                GWACommand = p
                            };
                            v.ParseGWACommand(nodes);
                            lock (voidsLock)
                            {
                                voids.Add(v);
                            }
                        }
                        catch { }
                    }
                }
            });

            Initialiser.GSASenderObjects.AddRange(voids);

            return((voids.Count() > 0) ? new SpeckleObject() : new SpeckleNull());
        }