private void AddNewLinear() { // Добавляем элемент в модель // Если в модели уже были узлы начала и конца этого нового элемента // то новые узлы не добавляем. В противном случае - добавляем и узлы if (EditedComp?.CompType == ComponentTypes.ctLinear) { ComponentLinear lin = (ComponentLinear)EditedComp; ComponentNode node1 = modelVM.GetNodeAtPoint(lin.Start); ComponentNode node2 = modelVM.GetNodeAtPoint(lin.End); if (node1 == null) { RModel.CompsList.Add(lin.StartNode); node1 = lin.StartNode; } if (node2 == null) { RModel.CompsList.Add(lin.EndNode); node2 = lin.EndNode; } EditedComp = new ComponentLinear(node1, node2, RModel); RModel.EnableChangeTracking(); RModel.CompsList.Add(EditedComp); RModel.DisableChangeTracking(); } }
private void DimensionLinePlace(IssoPoint2D pt1) { // Завершение ввода нового линейного компонента if (EditedComp?.CompType != ComponentTypes.ctBinding) { return; } ((IssoBinding)EditedComp).LinePlace = pt1; RModel.EnableChangeTracking(); RModel.CompsList.Add(EditedComp); RModel.DisableChangeTracking(); EditorAction = EditorActions.None; }
private void CreateForce(IssoPoint2D pt1) { ComponentNode node = GetLoadStartNode(pt1, ComponentTypes.ctForce); if (node != null) { ComponentLoad load = new ComponentLoad(ComponentTypes.ctForce, -100, node); RModel.EnableChangeTracking(); RModel.CompsList.Add(load); RModel.DisableChangeTracking(); EditedComp = load; } else { EditedComp = null; } }
private void SetDistLoad(IssoPoint2D pt1) { if (EditedComp?.CompType == ComponentTypes.ctDistributedLoad) { ComponentLoad load = (ComponentLoad)EditedComp; IssoPoint2D p1 = load.AppNodes[0].Location; IssoPoint2D p2 = load.AppNodes[1].Location; ComponentLinear lin = modelVM.GetLinear(p1, p2); if (lin != null) { modelVM.SplitLinearAt(lin, p1); lin = modelVM.GetLinear(p1, p2); modelVM.SplitLinearAt(lin, p2); lin = modelVM.GetLinear(p1, p2); RModel.EnableChangeTracking(); RModel.CompsList.Add(new ComponentLoad(ComponentTypes.ctDistributedLoad, -10, lin)); RModel.DisableChangeTracking(); } EditorAction = EditorActions.None; } }