프로젝트

일반

사용자정보

개정판 f7e09e14

IDf7e09e145dd8c4641ee0af6165d719c174fa5a55
상위 b3aacf73
하위 4f7b69a8

gaqhf 이(가) 5년 이상 전에 추가함

dev issue #1230 : Line의 연장선 추가

Change-Id: I1beae81ae9cd6a198e285b43202839407bf7e18e

차이점 보기:

DTI_PID/APIDConverter/AutoModeling.cs
460 460
            {
461 461
                Model.Line line = groupLine[i];
462 462
                if (i == 0)
463
                    points.Add(line.Aveva.Start_X + "," + line.Aveva.Start_Y);
463
                {
464
                    object connObj = line.CONNECTORS[0].ConnectedObject;
465
                    if (connObj != null && connObj.GetType() == typeof(Symbol))
466
                    {
467
                        Symbol connSymbol = connObj as Symbol;
468
                        Connector connector = connSymbol.CONNECTORS.Find(x => x.ConnectedObject == line);
469

  
470
                        SlopeType slopeType = APIDUtils.CalcSlope(connSymbol.X, connSymbol.Y, connector.X, connector.Y);
471
                        if (slopeType == SlopeType.HORIZONTAL)
472
                            points.Add(connSymbol.X + "," + line.Aveva.Start_Y);
473
                        else if (slopeType == SlopeType.VERTICAL)
474
                            points.Add(line.Aveva.Start_X + "," + connSymbol.Y);
475
                        else
476
                            points.Add(line.Aveva.Start_X + "," + line.Aveva.Start_Y);
477
                    }
478
                    else
479
                        points.Add(line.Aveva.Start_X + "," + line.Aveva.Start_Y);
480
                }
464 481
                else
465 482
                {
466 483
                    Model.Line prevLine = groupLine[i - 1];
......
475 492
                }
476 493

  
477 494
                if (i == groupLine.Count - 1)
478
                    points.Add(line.Aveva.End_X + "," + line.Aveva.End_Y);
495
                {
496
                    object connObj = line.CONNECTORS[1].ConnectedObject;
497
                    if (connObj != null && connObj.GetType() == typeof(Symbol))
498
                    {
499
                        Symbol connSymbol = connObj as Symbol;
500
                        Connector connector = connSymbol.CONNECTORS.Find(x => x.ConnectedObject == line);
501

  
502
                        SlopeType slopeType = APIDUtils.CalcSlope(connSymbol.X, connSymbol.Y, connector.X, connector.Y);
503
                        if (slopeType == SlopeType.HORIZONTAL)
504
                            points.Add(connSymbol.X + "," + line.Aveva.End_Y);
505
                        else if (slopeType == SlopeType.VERTICAL)
506
                            points.Add(line.Aveva.End_X + "," + connSymbol.Y);
507
                        else
508
                            points.Add(line.Aveva.End_X + "," + line.Aveva.End_Y);
509
                    }
510
                    else
511
                        points.Add(line.Aveva.End_X + "," + line.Aveva.End_Y);
512
                }
479 513
            }
480 514
        }
481 515
        private bool IsExistEndBreak(object item1, object item2)
DTI_PID/APIDConverter/Model/PlantItem/Other/Connector.cs
15 15
        private string _SCENECONNECTPOINT;
16 16
        private object _ConnectedObject;
17 17

  
18

  
18 19
        public string UID { get => _UID; set => _UID = value; }
19 20
        public int CONNECTED_AT { get => _CONNECTED_AT; set => _CONNECTED_AT = value; }
20 21
        public string CONNECTEDITEM { get => _CONNECTEDITEM; set => _CONNECTEDITEM = value; }
21 22
        public string CONNECTPOINT { get => _CONNECTPOINT; set => _CONNECTPOINT = value; }
22
        public string SCENECONNECTPOINT { get => _SCENECONNECTPOINT; set => _SCENECONNECTPOINT = value; }
23
        public string SCENECONNECTPOINT
24
        {
25
            get
26
            {
27
                return _SCENECONNECTPOINT;
28
            }
29
            set
30
            {
31
                _SCENECONNECTPOINT = value;
32
                double x = 0, y = 0;
33
                APIDUtils.ConvertPointBystring(_SCENECONNECTPOINT, ref x, ref y);
34
                X = x;
35
                Y = y;
36
            }
37
        }
23 38

  
24 39
        public int Index { get; set; }
25 40
        public object ConnectedObject { get => _ConnectedObject; set => _ConnectedObject = value; }
41
        public double X { get; set; }
42
        public double Y { get; set; }
26 43
    }
27 44
}

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)