コード例 #1
0
 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();
     }
 }
コード例 #2
0
 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;
 }
コード例 #3
0
        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;
            }
        }
コード例 #4
0
        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;
            }
        }