개정판 3783c494
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