프로젝트

일반

사용자정보

개정판 3783c494

ID3783c49407682c3052a1b3e777e0637e3681beb6
상위 7e4a64a3
하위 51da0952

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

dev issue #000 : fix bug & 안정화

Change-Id: I09b86c0c38781a9408beb6d2172c5b1c81636d16

차이점 보기:

DTI_PID/SPPIDConverter/AutoModeling.cs
1077 1077
        private void GetSPPIDChildSymbolRange(ChildSymbol childSymbol, ref double[] range, List<double[]> points)
1078 1078
        {
1079 1079
            LMSymbol _ChildSymbol = dataSource.GetSymbol(childSymbol.SPPID.RepresentationId);
1080
            Ingr.RAD2D.Symbol2d symbol2d = radApp.ActiveDocument.ActiveSheet.DrawingObjects[_ChildSymbol.get_GraphicOID().ToString()];
1081
            double x1 = 0;
1082
            double y1 = 0;
1083
            double x2 = 0;
1084
            double y2 = 0;
1085
            symbol2d.Range(out x1, out y1, out x2, out y2);
1086
            range[0] = Math.Min(range[0], x1);
1087
            range[1] = Math.Min(range[1], y1);
1088
            range[2] = Math.Max(range[2], x2);
1089
            range[3] = Math.Max(range[3], y2);
1090

  
1091
            for (int i = 1; i < int.MaxValue; i++)
1080
            if (_ChildSymbol != null)
1092 1081
            {
1093
                double connX = 0;
1094
                double connY = 0;
1095
                if (_placement.PIDConnectPointLocation(_ChildSymbol, i, ref connX, ref connY))
1096
                    points.Add(new double[] { connX, connY });
1097
                else
1098
                    break;
1099
            }
1082
                Ingr.RAD2D.Symbol2d symbol2d = radApp.ActiveDocument.ActiveSheet.DrawingObjects[_ChildSymbol.get_GraphicOID().ToString()];
1083
                double x1 = 0;
1084
                double y1 = 0;
1085
                double x2 = 0;
1086
                double y2 = 0;
1087
                symbol2d.Range(out x1, out y1, out x2, out y2);
1088
                range[0] = Math.Min(range[0], x1);
1089
                range[1] = Math.Min(range[1], y1);
1090
                range[2] = Math.Max(range[2], x2);
1091
                range[3] = Math.Max(range[3], y2);
1092

  
1093
                for (int i = 1; i < int.MaxValue; i++)
1094
                {
1095
                    double connX = 0;
1096
                    double connY = 0;
1097
                    if (_placement.PIDConnectPointLocation(_ChildSymbol, i, ref connX, ref connY))
1098
                        points.Add(new double[] { connX, connY });
1099
                    else
1100
                        break;
1101
                }
1100 1102

  
1101
            foreach (var loopChildSymbol in childSymbol.ChildSymbols)
1102
                GetSPPIDChildSymbolRange(loopChildSymbol, ref range, points);
1103
                foreach (var loopChildSymbol in childSymbol.ChildSymbols)
1104
                    GetSPPIDChildSymbolRange(loopChildSymbol, ref range, points);
1103 1105

  
1104
            ReleaseCOMObjects(_ChildSymbol);
1106
                ReleaseCOMObjects(_ChildSymbol);
1107
            }
1105 1108
        }
1106 1109

  
1107 1110
        private void GetSPPIDChildSymbolRange(ChildSymbol childSymbol, ref double[] range)
......
1532 1535
                    NewBranchLines.Add(groupLine);
1533 1536
                    continue;
1534 1537
                }
1538
                if (groupLine.UID == "321c27f0-1a7e-4a4c-81cd-a7a6076e0a3a")
1539
                {
1540

  
1541
                }
1535 1542

  
1536 1543
                _LMAItem _LMAItem = _placement.PIDCreateItem(groupLine.SPPID.MAPPINGNAME);
1537 1544
                LMSymbol _LMSymbolStart = null;
......
1553 1560
                        if (groupLine.CONNECTORS.IndexOf(connector) == 0)
1554 1561
                        {
1555 1562
                            _LMSymbolStart = GetTargetSymbol(targetSymbol, groupLine);
1556
                            placeRunInputs.AddSymbolTarget(_LMSymbolStart, x, y);
1563
                            if (_LMSymbolStart != null)
1564
                                placeRunInputs.AddSymbolTarget(_LMSymbolStart, x, y);
1565
                            else
1566
                                placeRunInputs.AddPoint(x, y);
1557 1567
                        }
1558 1568
                        else
1559 1569
                        {
1560 1570
                            _LMSymbolEnd = GetTargetSymbol(targetSymbol, groupLine);
1561
                            placeRunInputs.AddSymbolTarget(_LMSymbolEnd, x, y);
1571
                            if (_LMSymbolEnd != null)
1572
                                placeRunInputs.AddSymbolTarget(_LMSymbolEnd, x, y);
1573
                            else
1574
                                placeRunInputs.AddPoint(x, y);
1562 1575
                        }
1563 1576
                    }
1564 1577
                    else if (connector.ConnectedObject.GetType() == typeof(Line))
......
3325 3338
            if (text.ASSOCIATION)
3326 3339
            {
3327 3340
                object owner = SPPIDUtil.FindObjectByUID(document, text.OWNER);
3328
                if (owner.GetType() == typeof(Symbol))
3341
                if (owner != null && owner.GetType() == typeof(Symbol))
3329 3342
                {
3330 3343
                    Symbol symbol = owner as Symbol;
3331 3344
                    _LMSymbol = dataSource.GetSymbol(symbol.SPPID.RepresentationId);
......
3354 3367
                        }
3355 3368
                    }
3356 3369
                }
3357
                else if (owner.GetType() == typeof(Line))
3370
                else if (owner != null && owner.GetType() == typeof(Line))
3358 3371
                {
3359 3372
                    Line line = owner as Line;
3360 3373
                    Dictionary<LMConnector, List<double[]>> connectorVertices = GetPipeRunVertices(line.SPPID.ModelItemId);

내보내기 Unified diff

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