Пример #1
0
 public ng.WiringNodeCH createNodeCH_wiring(string model)
 {
     ng.WiringNodeCH node = new ng.WiringNodeCH();
     node.Tooltip    = old.NodeType.CHbox.ToString();
     node.IsEditable = false;
     node.Stroke     = System.Windows.Media.Brushes.Transparent;
     node.FontFamily = new System.Windows.Media.FontFamily("Arial");
     node.FontSize   = 11;
     node.Geometry   = new RectangleGeometry(new System.Windows.Rect(0, 0, 0, 0));;
     node.Model      = model;
     return(node);
 }
Пример #2
0
        private void DrawWiringNodes(Node parent, List <ng.WiringNode> nodes, List <ng.WiringNodeIn> myNodeInList, string imgDir, bool isHR)
        {
            bool   prevBrotherNodeIsIndoor = false;
            double sumCurrent = 0.0d;

            ng.WiringNodeIn    lastIn = null;
            drawing.PointF     ptf1, ptf2, ptf3, ptf4, ptf5, ptf6;
            NodeElement_Wiring item_wiring;
            string             imgFile;
            int lastYIndex = 0;
            int index1 = 0;

            drawing.PointF nodeCHPointF = new drawing.PointF();
            drawing.PointF nodeInPointF = new drawing.PointF();
            foreach (ng.WiringNode node in nodes)
            {
                if (node is ng.WiringNodeCH)
                {
                    prevBrotherNodeIsIndoor = false;

                    ng.WiringNodeCH nodeCH = node as ng.WiringNodeCH;
                    item_wiring = utilWiring.GetNodeElement_Wiring_CH(nodeCH.Model, nodeCH.PowerSupply, nodeCH.PowerLineType, nodeCH.PowerCurrent);

                    nodeCH.Location = utilWiring.getLocationChild_wiring(parent, node, index1, isHR);
                    nodeCH.Text     = item_wiring.ShortModel;

                    utilWiring.setNode_wiring(nodeCH, new Size(80, 52), addFlowWiring);

                    utilWiring.createTextNode_wiring("CH Unit", new drawing.PointF(86, -13), nodeCH);

                    DrawWiringNodes(nodeCH, nodeCH.ChildNodes, myNodeInList, imgDir, isHR);

                    double x = parent.Location.X + parent.Size.Width - 1;
                    double y = nodeCH.Location.Y + nodeCH.Size.Height - 2;
                    float  enlargedHeight = 0;
                    if (nodeCH.IsMultiCHBox && nodeCH.ChildNodes.Count > 1)
                    {
                        enlargedHeight = UtilPiping.VDistanceVertical_wiring * (nodeCH.ChildNodes.Count - 1);
                        nodeCH.Size    = new Size(nodeCH.Size.Width, nodeCH.Size.Height + enlargedHeight);
                    }

                    if (nodeCH.IsMultiCHBox)
                    {
                        int newBranchIndex = 0;
                        for (int i = 0; i < nodeCH.ChildNodes.Count; i++)
                        {
                            ng.WiringNodeIn wiringIn = nodeCH.ChildNodes[i] as ng.WiringNodeIn;
                            if (wiringIn != null && wiringIn.IsNewBranchOfParent)
                            {
                                utilWiring.createTextNode_wiring((newBranchIndex * 2 + 3) + " " + (newBranchIndex * 2 + 4)
                                                                 , new drawing.PointF(142, UtilPiping.VDistanceVertical_wiring * i), nodeCH);
                                newBranchIndex++;
                            }
                        }
                    }
                    else
                    {
                        utilWiring.createTextNode_wiring(item_wiring.StrGroup1[0], item_wiring.PtStr1, nodeCH);
                    }

                    utilWiring.createTextNode_wiring(item_wiring.Str1, new drawing.PointF(35, (float)(nodeCH.Size.Height - enlargedHeight - 14)), nodeCH);

                    if (index1 == 0)
                    {
                        ptf1 = new drawing.PointF((float)x, (float)y);
                        ptf2 = new drawing.PointF((float)(nodeCH.Location.X + 1), (float)y);
                        ptArrayList.Add(new drawing.PointF[] { ptf1, ptf2 });
                    }
                    else
                    {
                        x    = nodeCH.Location.X;
                        ptf1 = new drawing.PointF((float)x, (float)y);
                        ptf2 = new drawing.PointF((float)(x - 60), (float)y);
                        ptf3 = new drawing.PointF((float)(x - 60), (float)(y - 15));
                        ptf4 = new drawing.PointF((float)x, (float)(y - UtilityWiring.VDistanceVertical_wiring * (index1 - lastYIndex)));
                        ptArrayList.Add(new drawing.PointF[] { ptf1, ptf2, ptf3, ptf4 });
                    }

                    ptf1 = new drawing.PointF((float)(nodeCH.Location.X + 140 - 60), (float)(nodeCH.Location.Y + 20));
                    ptf2 = new drawing.PointF(ptf1.X + 74, ptf1.Y + 4);
                    ptf3 = new drawing.PointF(ptf2.X - 10, ptf2.Y);
                    ptArrayList_ground.Add(new drawing.PointF[] { ptf1, ptf2, ptf3 });

                    utilWiring.createTextNode_wiring(item_wiring.StrGroup2[0], item_wiring.PtStrGroup2[0], nodeCH);

                    utilWiring.createTextNode_wiring(item_wiring.StrGroup3[0], item_wiring.PtStrGroup3[0], nodeCH);

                    utilWiring.createTextNode_wiring(item_wiring.StrGroup4[0], item_wiring.PtStrGroup4[0], nodeCH, true);

                    nodeCHPointF = utilWiring.convertSystemPointToDrawingPoint(nodeCH.Location);
                    ptf4         = UtilEMF.OffsetLocation(item_wiring.PtStrGroupLine2L[0], nodeCHPointF);
                    ptf5         = UtilEMF.OffsetLocation(item_wiring.PtStrGroupLine2R[0], nodeCHPointF);
                    ptf4.X      -= 60;
                    ptf5.X      -= 60;
                    ptArrayList_power.Add(new drawing.PointF[] { ptf4, ptf5 });

                    lastYIndex = index1;
                    if (nodeCH.ChildNodes.Count > 1)
                    {
                        index1 += nodeCH.ChildNodes.Count - 1;
                    }
                    index1++;
                }
                else if (node is ng.WiringNodeIn)
                {
                    ng.WiringNodeIn nodeIn = node as ng.WiringNodeIn;
                    lastIn = nodeIn;
                    int  powerIndex = 0;
                    bool isNewPower = false;
                    item_wiring = utilWiring.GetNodeElement_Wiring_IDU(nodeIn.RoomIndoorItem.IndoorItem, thisProject.BrandCode, sysItem.OutdoorItem.Type, ref strArrayList_powerType, ref strArrayList_powerVoltage, ref dArrayList_powerCurrent, ref powerIndex, ref isNewPower);
                    double current = nodeIn.RoomIndoorItem.IndoorItem.RatedCurrent;
                    sumCurrent     += current;
                    nodeIn.Location = utilWiring.getLocationChild_wiring(parent, node, index1, isHR);
                    nodeIn.Text     = item_wiring.ShortModel;

                    imgFile = System.IO.Path.Combine(imgDir, item_wiring.KeyName + ".png");
                    utilWiring.setNode_wiring(nodeIn, imgFile, addFlowWiring);


                    string indoorName = nodeIn.RoomIndoorItem.IndoorName;

                    // DOUBT NEED TO CHECK LATER after FER as Room is not functional in FER

                    //if (!string.IsNullOrEmpty(nodeIn.RoomIndoorItem.RoomID))
                    //{
                    //    RoomLoadIndexBLL roomBill = new RoomLoadIndexBLL();
                    //    string floorRoomName = roomBill.getFloorRoomName(nodeIn.RoomIndoorItem, thisProject);
                    //    indoorName = floorRoomName + ":" + indoorName;
                    //}
                    //else
                    //{
                    //    if (!string.IsNullOrEmpty(nodeIn.RoomIndoorItem.DisplayRoom))
                    //    {
                    //        indoorName = nodeIn.RoomIndoorItem.DisplayRoom + ":" + indoorName;
                    //    }
                    //}

                    utilWiring.createTextNode_wiring(indoorName, new drawing.PointF(66, -13), nodeIn);
                    utilWiring.createTextNode_wiring(item_wiring.StrGroup3[0], item_wiring.PtStrGroup3[0], nodeIn);

                    utilWiring.createTextNode_wiring(item_wiring.Str1, item_wiring.PtStr1, nodeIn);
                    utilWiring.createTextNode_wiring(item_wiring.StrGroup1[0], item_wiring.PtStrGroup1[0], nodeIn);
                    utilWiring.createTextNode_wiring(item_wiring.StrGroup2[0], item_wiring.PtStrGroup2[0], nodeIn);
                    utilWiring.createTextNode_wiring(item_wiring.StrGroup4[0], item_wiring.PtStrGroup4[0], nodeIn, true);


                    double x1 = parent.Location.X + parent.Size.Width - 1;
                    double y1 = nodeIn.Location.Y + nodeIn.Size.Height - 2;
                    float  x  = (float)x1;
                    float  y  = (float)y1;
                    if (isHR && parent is ng.WiringNodeOut && !prevBrotherNodeIsIndoor)
                    {
                        x    = (float)nodeIn.Location.X;
                        ptf1 = new drawing.PointF(x, y);
                        ptf2 = new drawing.PointF(x - UtilPiping.HDistanceVertical_wiring - 60, y);
                        ptf3 = new drawing.PointF(x - UtilPiping.HDistanceVertical_wiring - 60, y - 15);
                        ptf4 = new drawing.PointF(x - UtilPiping.HDistanceVertical_wiring, y - UtilPiping.VDistanceVertical_wiring * (index1 - lastYIndex));
                        ptArrayList.Add(new drawing.PointF[] { ptf1, ptf2, ptf3, ptf4 });
                    }
                    else
                    {
                        if (index1 == 0 || nodeIn.IsNewBranchOfParent)
                        {
                            ptf1 = new drawing.PointF(x, y);
                            ptf2 = new drawing.PointF((float)(nodeIn.Location.X + 1), y);
                            ptArrayList.Add(new drawing.PointF[] { ptf1, ptf2 });
                        }
                        else
                        {
                            x    = (float)nodeIn.Location.X;
                            ptf1 = new drawing.PointF(x, y);
                            ptf2 = new drawing.PointF(x, y - 15);
                            ptf3 = new drawing.PointF(x + 60, y - UtilPiping.VDistanceVertical_wiring);
                            ptArrayList.Add(new drawing.PointF[] { ptf1, ptf2, ptf3 });
                        }
                    }

                    ptf1 = new drawing.PointF((float)(nodeIn.Location.X + 140), (float)(nodeIn.Location.Y + 20));
                    ptf2 = new drawing.PointF(ptf1.X + 74, ptf1.Y + 4);
                    ptf3 = new drawing.PointF(ptf2.X - 10, ptf2.Y);
                    ptArrayList_ground.Add(new drawing.PointF[] { ptf1, ptf2, ptf3 });

                    myNodeInList.Add(nodeIn);
                    nodeInPointF = utilWiring.convertSystemPointToDrawingPoint(nodeIn.Location);
                    ptf4         = UtilEMF.OffsetLocation(item_wiring.PtStrGroupLine2L[0], nodeInPointF);
                    ptf5         = UtilEMF.OffsetLocation(item_wiring.PtStrGroupLine2R[0], nodeInPointF);
                    ptf5.X      += (10f * powerIndex) + 55f;
                    ptArrayList_power.Add(new drawing.PointF[] { ptf4, ptf5 });

                    if (isNewPower)
                    {
                        ptf4 = new drawing.PointF(ptf5.X, (float)(nodeIn.Location.Y + (nodeIn.Size.Height / 2)));
                        ptf6 = new drawing.PointF(ptf5.X + 240, ptf4.Y);
                        ptArrayList_mainpower.Add(new drawing.PointF[] { ptf5, ptf4, ptf6 });
                    }
                    else
                    {
                        ptArrayList_mainpower[powerIndex][0] = ptf5;
                    }

                    prevBrotherNodeIsIndoor = true;
                    lastYIndex = index1;
                    index1++;
                }
            }
        }