/// <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); } }
/// <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); } } }
/// <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); }