예제 #1
0
        /// <summary>
        /// Записать параметры технологического объекта в узел дерева
        /// </summary>
        /// <param name="parameters">Узел дерева параметров</param>
        /// <param name="techObject">Технологический объект</param>
        private static void WriteObjectParametersInNode(ref TreeNode parameters,
                                                        TechObject.TechObject techObject)
        {
            bool parameterTitleisWrited = false;

            for (int i = 0; i < techObject.GetParams().Items.Length; i++)
            {
                var parameter = techObject.GetParams().Items[i] as Param;
                if (parameterTitleisWrited == false)
                {
                    var titleNode = new TreeNode();
                    titleNode.Tag = new string[]
                    {
                        "Имя параметра",
                        "Значение",
                        "Размерность",
                        "Операция",
                        "Lua имя"
                    };
                    parameters.Nodes.Add(titleNode);
                    parameterTitleisWrited = true;
                }

                string parameterName = (i + 1).ToString() + ". " +
                                       parameter.EditText[0];
                var parameterNode = new TreeNode();
                parameterNode.Tag = new string[]
                {
                    parameterName,
                    parameter.GetValue(),
                    parameter.GetMeter(),
                    parameter.GetOperationN(),
                    parameter.GetNameLua()
                };
                parameters.Nodes.Add(parameterNode);
            }
        }
예제 #2
0
        /// <summary>
        /// Формирование узлов для операций, шагов и параметров объектов.
        /// </summary>
        /// <param name="rootNode">корневой узел</param>
        public void GetObjectForXML(TreeNode rootNode)
        {
            GenerateSystemNode(rootNode);
            for (int num = 1; num <= Objects.Count; num++)
            {
                TechObject item = Objects[num - 1];

                var objNode = new TreeNode($"{item.NameBC}{item.TechNumber}");

                var objModesNode = new TreeNode(item.NameBC +
                                                item.TechNumber.ToString() + "_Операции");
                var objOperStateNode = new TreeNode(item.NameBC +
                                                    item.TechNumber.ToString() + "_Состояния_Операций");
                var objAvOperNode = new TreeNode(item.NameBC +
                                                 item.TechNumber.ToString() + "_Доступность");
                var objStepsNode = new TreeNode(item.NameBC +
                                                item.TechNumber.ToString() + "_Шаги");
                var objSingleStepsNode = new TreeNode(item.NameBC +
                                                      item.TechNumber.ToString() + "_Одиночные_Шаги");
                var objParamsNode = new TreeNode(item.NameBC +
                                                 item.TechNumber.ToString() + "_Параметры");

                string objName = GenerateObjectName(item, num);
                GenerateCMDTags(objName, objNode, objModesNode);
                GenerateSTTags(item, objName, objNode, objModesNode);
                GenerateModesOpersAvsStepsTags(item, objName, objNode,
                                               objModesNode, objOperStateNode, objAvOperNode,
                                               objStepsNode);

                GenerateSingleStepsTags(item, objName, objNode,
                                        objSingleStepsNode);

                string sFl   = objName + ".S_PAR_F";
                int    count = item.GetParams().Items.Length;
                GenerateParametersTags(count, objNode, objParamsNode, sFl);

                var singleNodes = new TreeNode[] { objModesNode,
                                                   objOperStateNode, objAvOperNode, objStepsNode,
                                                   objSingleStepsNode, objParamsNode };
                GenerateRootNode(rootNode, objNode, singleNodes);

                if (item.BaseTechObject.IsPID)
                {
                    GeneratePIDNode(rootNode, item.GlobalNumber);
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Копировать параметры операции
        /// </summary>
        /// <param name="clone">Клонированная операция</param>
        /// <returns></returns>
        public OperationParams Clone(Mode clone)
        {
            var        clonedOperationParams = new OperationParams();
            TechObject clonedObject          = clone.Owner.Owner;
            Params     objectParameters      = clonedObject.GetParams();

            foreach (Editor.ITreeViewItem item in Items)
            {
                var    operationParam = item as OperationParam;
                string luaName        = operationParam.Param.GetNameLua();
                Param  searchedParam  = objectParameters.GetParam(luaName);
                if (searchedParam != null)
                {
                    clonedOperationParams.AddParam(searchedParam);
                }
            }

            return(clonedOperationParams);
        }