Exemplo n.º 1
0
 public ProcessObject(ProcessCurve curve, Tool tool)
 {
     Curve            = curve;
     ProcessingParams = ProcessingParams.Create();
     Tool             = tool;
     Direction        = 1;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Создать обрабатываемые объекты
        /// </summary>
        /// <param name="dbObjects">Список объектов</param>
        /// <param name="tools">Инструменты</param>
        public static void Create(List <DBObject> dbObjects, IEnumerable <Tool> tools)
        {
            foreach (var tool in tools.OrderBy(p => p.OrderNo))
            {
//                ProcessObject prevProcessObject = null;

                foreach (var dbObject in dbObjects)
                {
                    if (((Entity)dbObject).Layer != "0" && ((Entity)dbObject).Layer != "Камень")
                    {
                        AutocadUtils.ShowError("Объект не в слое \"0\" или \"Камень\"");
                        continue;
                    }
                    if (!(dbObject is Line) && !(dbObject is Arc) && !(dbObject is Polyline) &&
                        !(dbObject is Polyline2d) && !(dbObject is Circle))
                    {
                        AutocadUtils.ShowError("Неподдерживаемый тип кривой: " + dbObject);
                        continue;
                    }
                    //obj.Modified += new EventHandler(ProcessCurveModifiedEventHandler);
                    //obj.Erased += new ObjectErasedEventHandler(ProcessCurveErasedEventHandler);

                    var curve = _processCurves.FirstOrDefault(p => p.ObjectId == dbObject.ObjectId);
                    if (curve == null)
                    {
                        curve = new ProcessCurve(dbObject as Curve, ++_no);
                        _processCurves.Add(curve);
                    }
                    var processObject = new ProcessObject(curve, tool);
                    _processObjects.Add(processObject);

// TODO анализ при добавлении объектов

/*                        if (prevProcessObject != null && ProcessingParams.GetDefault().DepthAll == 0)
 *                  {
 *                      if (curve.StartPoint != prevProcessObject.Curve.StartPoint && curve.StartPoint != prevProcessObject.Curve.EndPoint)
 *                      {
 *                          if (curve.EndPoint != prevProcessObject.Curve.StartPoint && curve.EndPoint != prevProcessObject.Curve.EndPoint)
 *                              prevProcessObject = null;
 *                          else
 *                              processObject.ReverseProcess();
 *                      }
 *
 *                      if (prevProcessObject != null)
 *                      {
 *                          prevProcessObject.ProcessingParams.RetractionType = "Нет";
 *                          processObject.ProcessingParams.FeedType = "Нет";
 *                      }
 *                  }
 *                  prevProcessObject = processObject;*/
                }
            }
        }