프로젝트

일반

사용자정보

개정판 7e4a64a3

ID7e4a64a3c1c6bb761188fab5895941fa9eda1e71
상위 e613d0e8
하위 af0e79f1, 3783c494

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

dev issue #000 : fix bug

Change-Id: Ic0067f9d1e61122a42702392e2bddc79659dad45

차이점 보기:

DTI_PID/SPPIDConverter/AutoModeling.cs
422 422
                            !SPPIDUtil.IsBranchLine(line, connector.ConnectedObject as Line)) 
423 423
                        {
424 424
                            Line connLine = connector.ConnectedObject as Line;
425
                            if (line.SPPID.ModelItemId != connLine.SPPID.ModelItemId)
425
                            if (line.SPPID.ModelItemId != connLine.SPPID.ModelItemId && !string.IsNullOrEmpty(line.SPPID.ModelItemId) && !string.IsNullOrEmpty(connLine.SPPID.ModelItemId))
426 426
                                JoinPipeRun(connLine.SPPID.ModelItemId, line.SPPID.ModelItemId);
427 427
                        }
428 428
                    }
......
847 847
                symbol.SPPID.GraphicOID = _LMSymbol.get_GraphicOID().ToString();
848 848

  
849 849
                foreach (var item in symbol.ChildSymbols)
850
                    CreateChildSymbol(item, _LMSymbol);
850
                    CreateChildSymbol(item, _LMSymbol, symbol);
851 851

  
852 852
                symbol.SPPID.SPPID_X = _LMSymbol.get_XCoordinate();
853 853
                symbol.SPPID.SPPID_Y = _LMSymbol.get_YCoordinate();
......
1025 1025
        private void GetSPPIDSymbolRange(Symbol symbol, ref double[] range)
1026 1026
        {
1027 1027
            LMSymbol _TargetItem = dataSource.GetSymbol(symbol.SPPID.RepresentationId);
1028
            Ingr.RAD2D.Symbol2d symbol2d = radApp.ActiveDocument.ActiveSheet.DrawingObjects[_TargetItem.get_GraphicOID().ToString()];
1029
            double x1 = 0;
1030
            double y1 = 0;
1031
            double x2 = 0;
1032
            double y2 = 0;
1033
            symbol2d.Range(out x1, out y1, out x2, out y2);
1034
            range = new double[] { x1, y1, x2, y2 };
1028
            if (_TargetItem != null)
1029
            {
1030
                Ingr.RAD2D.Symbol2d symbol2d = radApp.ActiveDocument.ActiveSheet.DrawingObjects[_TargetItem.get_GraphicOID().ToString()];
1031
                double x1 = 0;
1032
                double y1 = 0;
1033
                double x2 = 0;
1034
                double y2 = 0;
1035
                symbol2d.Range(out x1, out y1, out x2, out y2);
1036
                range = new double[] { x1, y1, x2, y2 };
1035 1037

  
1036
            foreach (var childSymbol in symbol.ChildSymbols)
1037
                GetSPPIDChildSymbolRange(childSymbol, ref range);
1038
                foreach (var childSymbol in symbol.ChildSymbols)
1039
                    GetSPPIDChildSymbolRange(childSymbol, ref range);
1038 1040

  
1039
            ReleaseCOMObjects(_TargetItem);
1041
                ReleaseCOMObjects(_TargetItem);
1042
            }
1040 1043
        }
1041 1044

  
1042 1045
        private void GetSPPIDSymbolRange(List<Symbol> symbols, ref double[] range)
......
1104 1107
        private void GetSPPIDChildSymbolRange(ChildSymbol childSymbol, ref double[] range)
1105 1108
        {
1106 1109
            LMSymbol _ChildSymbol = dataSource.GetSymbol(childSymbol.SPPID.RepresentationId);
1107
            Ingr.RAD2D.Symbol2d symbol2d = radApp.ActiveDocument.ActiveSheet.DrawingObjects[_ChildSymbol.get_GraphicOID().ToString()];
1108
            double x1 = 0;
1109
            double y1 = 0;
1110
            double x2 = 0;
1111
            double y2 = 0;
1112
            symbol2d.Range(out x1, out y1, out x2, out y2);
1113
            range[0] = Math.Min(range[0], x1);
1114
            range[1] = Math.Min(range[1], y1);
1115
            range[2] = Math.Max(range[2], x2);
1116
            range[3] = Math.Max(range[3], y2);
1117

  
1118
            foreach (var loopChildSymbol in childSymbol.ChildSymbols)
1119
                GetSPPIDChildSymbolRange(loopChildSymbol, ref range);
1110
            if (_ChildSymbol != null)
1111
            {
1112
                Ingr.RAD2D.Symbol2d symbol2d = radApp.ActiveDocument.ActiveSheet.DrawingObjects[_ChildSymbol.get_GraphicOID().ToString()];
1113
                double x1 = 0;
1114
                double y1 = 0;
1115
                double x2 = 0;
1116
                double y2 = 0;
1117
                symbol2d.Range(out x1, out y1, out x2, out y2);
1118
                range[0] = Math.Min(range[0], x1);
1119
                range[1] = Math.Min(range[1], y1);
1120
                range[2] = Math.Max(range[2], x2);
1121
                range[3] = Math.Max(range[3], y2);
1120 1122

  
1121
            ReleaseCOMObjects(_ChildSymbol);
1123
                foreach (var loopChildSymbol in childSymbol.ChildSymbols)
1124
                    GetSPPIDChildSymbolRange(loopChildSymbol, ref range);
1125
                ReleaseCOMObjects(_ChildSymbol);
1126
            }
1122 1127
        }
1123 1128

  
1124 1129
        /// <summary>
......
1488 1493
        /// </summary>
1489 1494
        /// <param name="childSymbol"></param>
1490 1495
        /// <param name="parentSymbol"></param>
1491
        private void CreateChildSymbol(ChildSymbol childSymbol, LMSymbol parentSymbol)
1496
        private void CreateChildSymbol(ChildSymbol childSymbol, LMSymbol parentSymbol, Symbol parent)
1492 1497
        {
1493 1498
            Ingr.RAD2D.Symbol2d symbol2d = radApp.ActiveDocument.ActiveSheet.DrawingObjects[parentSymbol.get_GraphicOID().ToString()];
1494 1499
            double x1 = 0;
......
1502 1507
            {
1503 1508
                childSymbol.SPPID.RepresentationId = _LMSymbol.AsLMRepresentation().Id;
1504 1509
                foreach (var item in childSymbol.ChildSymbols)
1505
                    CreateChildSymbol(item, _LMSymbol);
1510
                    CreateChildSymbol(item, _LMSymbol, parent);
1506 1511
            }
1512
            else
1513
                Log.Write("Fail Child Symbol Modeling UID : " + parent.UID);
1507 1514

  
1508 1515

  
1509 1516
            ReleaseCOMObjects(_LMSymbol);
......
2444 2451
        /// <param name="modelItemID2"></param>
2445 2452
        private void JoinPipeRun(string modelItemID1, string modelItemID2)
2446 2453
        {
2447
            LMModelItem modelItem1 = dataSource.GetModelItem(modelItemID2);
2454
            LMModelItem modelItem1 = dataSource.GetModelItem(modelItemID1);
2448 2455
            _LMAItem item1 = modelItem1.AsLMAItem();
2449
            LMModelItem modelItem2 = dataSource.GetModelItem(modelItemID1);
2456
            LMModelItem modelItem2 = dataSource.GetModelItem(modelItemID2);
2450 2457
            _LMAItem item2 = modelItem2.AsLMAItem();
2451 2458

  
2452 2459
            // item2가 item1으로 조인

내보내기 Unified diff

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