101 |
101 |
SplashScreenManager.ShowForm(typeof(SPPIDSplashScreen), true, true);
|
102 |
102 |
SplashScreenManager.Default.SendCommand(SPPIDSplashScreen.SplashScreenCommand.SetAllStep, AllCount);
|
103 |
103 |
SplashScreenManager.Default.SendCommand(SPPIDSplashScreen.SplashScreenCommand.SetDocumentName, DocumentLabelText);
|
104 |
|
//Thread.Sleep(1000);
|
105 |
|
//SplashScreenManager.Default.SendCommand(SPPIDSplashScreen.SplashScreenCommand.SetParent, (IntPtr)radApp.HWnd);
|
106 |
|
//Thread.Sleep(1000);
|
107 |
104 |
|
108 |
105 |
SplashScreenManager.Default.SendCommand(SPPIDSplashScreen.SplashScreenCommand.SetStep, "Group Symbol Modeling");
|
109 |
106 |
List<List<Symbol>> symbolGroups = SPPIDUtil.GetThreeConnectedSymbolGroup(document);
|
... | ... | |
200 |
197 |
{
|
201 |
198 |
application.ActiveWindow.Fit();
|
202 |
199 |
|
203 |
|
if (newDrawing != null)
|
|
200 |
if (radApp.ActiveDocument != null)
|
204 |
201 |
{
|
205 |
|
radApp.ActiveDocument.SaveOnClose = false;
|
206 |
|
radApp.ActiveDocument.Save();
|
|
202 |
//radApp.ActiveDocument.Save();
|
|
203 |
//radApp.ActiveDocument.SaveOnClose = false;
|
|
204 |
//radApp.ActiveDocument.Close(false);
|
|
205 |
|
207 |
206 |
ReleaseCOMObjects(newDrawing);
|
208 |
207 |
}
|
209 |
208 |
|
... | ... | |
220 |
219 |
/// </summary>
|
221 |
220 |
private void CreateDocument()
|
222 |
221 |
{
|
223 |
|
newDrawing = application.Drawings.Add(document.Unit, document.Template, document.DrawingNumber, document.DrawingName);
|
|
222 |
string drawingName = document.DrawingName;
|
|
223 |
string drawingNumber = document.DrawingNumber;
|
|
224 |
|
|
225 |
GetDrawingNameAndNumber(ref drawingName, ref drawingNumber);
|
|
226 |
|
|
227 |
newDrawing = application.Drawings.Add(document.Unit, document.Template, drawingNumber, drawingName);
|
224 |
228 |
application.ActiveWindow.Fit();
|
225 |
229 |
Thread.Sleep(1000);
|
226 |
230 |
application.ActiveWindow.Zoom = 2000;
|
227 |
231 |
Thread.Sleep(2000);
|
|
232 |
|
|
233 |
|
|
234 |
}
|
|
235 |
|
|
236 |
private void GetDrawingNameAndNumber(ref string drawingName, ref string drawingNumber)
|
|
237 |
{
|
|
238 |
LMDrawings drawings = new LMDrawings();
|
|
239 |
drawings.Collect(dataSource);
|
|
240 |
|
|
241 |
List<string> drawingNameList = new List<string>();
|
|
242 |
List<string> drawingNumberList = new List<string>();
|
|
243 |
|
|
244 |
foreach (LMDrawing item in drawings)
|
|
245 |
{
|
|
246 |
drawingNameList.Add(item.Attributes["Name"].get_Value().ToString());
|
|
247 |
drawingNumberList.Add(item.Attributes["DrawingNumber"].get_Value().ToString());
|
|
248 |
}
|
|
249 |
|
|
250 |
int nameLength = drawingName.Length;
|
|
251 |
while (drawingNameList.Contains(drawingName))
|
|
252 |
{
|
|
253 |
if (nameLength == drawingName.Length)
|
|
254 |
drawingName += "-1";
|
|
255 |
else
|
|
256 |
{
|
|
257 |
int index = Convert.ToInt32(drawingName.Remove(0, nameLength + 1));
|
|
258 |
drawingName = drawingName.Substring(0, nameLength + 1);
|
|
259 |
drawingName += ++index;
|
|
260 |
}
|
|
261 |
}
|
|
262 |
|
|
263 |
int numberLength = drawingNumber.Length;
|
|
264 |
while (drawingNameList.Contains(drawingNumber))
|
|
265 |
{
|
|
266 |
if (numberLength == drawingNumber.Length)
|
|
267 |
drawingNumber += "-1";
|
|
268 |
else
|
|
269 |
{
|
|
270 |
int index = Convert.ToInt32(drawingNumber.Remove(0, numberLength + 1));
|
|
271 |
drawingNumber = drawingNumber.Substring(0, numberLength + 1);
|
|
272 |
drawingNumber += ++index;
|
|
273 |
}
|
|
274 |
}
|
|
275 |
|
|
276 |
ReleaseCOMObjects(drawings);
|
228 |
277 |
}
|
229 |
278 |
|
230 |
279 |
/// <summary>
|
... | ... | |
963 |
1012 |
SlopeType slopeType = SPPIDUtil.CalcSlope(line.SPPID.START_X, line.SPPID.START_Y, line.SPPID.END_X, line.SPPID.END_Y);
|
964 |
1013 |
// Symbol일 경우 바로 Input Point
|
965 |
1014 |
if (item.Item1 == "SYMBOL")
|
966 |
|
{
|
967 |
1015 |
placeRunInputs.AddSymbolTarget(item.Item3 as LMSymbol, x, y);
|
968 |
|
prevX = x;
|
969 |
|
prevY = y;
|
970 |
|
prevSlopeType = slopeType;
|
971 |
|
continue;
|
972 |
|
}
|
973 |
|
|
974 |
|
SPPIDUtil.ConvertGridPoint(ref x, ref y);
|
975 |
|
// i == 0은 그대로 사용
|
976 |
|
if (i != 0)
|
|
1016 |
else
|
977 |
1017 |
{
|
978 |
|
Tuple<string, Line, object, double, double> prevItem = linePointInfo[i - 1];
|
979 |
|
// y 좌표가 같아야함
|
980 |
|
if (prevSlopeType == SlopeType.HORIZONTAL)
|
981 |
|
y = prevY;
|
982 |
|
else if (prevSlopeType == SlopeType.VERTICAL)
|
983 |
|
x = prevX;
|
984 |
|
|
985 |
|
if (i + 1 == linePointInfo.Count - 1 && linePointInfo[i + 1].Item1 == "SYMBOL")
|
|
1018 |
SPPIDUtil.ConvertGridPoint(ref x, ref y);
|
|
1019 |
// i == 0은 그대로 사용
|
|
1020 |
if (i != 0)
|
986 |
1021 |
{
|
987 |
|
Line nextLine = linePointInfo[i + 1].Item2;
|
988 |
|
SlopeType nextSlopeType = SPPIDUtil.CalcSlope(nextLine.SPPID.START_X, nextLine.SPPID.START_Y, nextLine.SPPID.END_X, nextLine.SPPID.END_Y);
|
989 |
|
if (slopeType == SlopeType.HORIZONTAL)
|
990 |
|
y = linePointInfo[i + 1].Item5;
|
991 |
|
else if (slopeType == SlopeType.VERTICAL)
|
992 |
|
x = linePointInfo[i + 1].Item4;
|
|
1022 |
Tuple<string, Line, object, double, double> prevItem = linePointInfo[i - 1];
|
|
1023 |
// y 좌표가 같아야함 및 Symbol 좌표가 정확하지 않으므로 한번더 보정
|
|
1024 |
if (prevSlopeType == SlopeType.HORIZONTAL)
|
|
1025 |
{
|
|
1026 |
y = prevY;
|
|
1027 |
SPPIDUtil.ConvertGridPointOnlyOnePoint(ref y);
|
|
1028 |
}
|
|
1029 |
else if (prevSlopeType == SlopeType.VERTICAL)
|
|
1030 |
{
|
|
1031 |
x = prevX;
|
|
1032 |
SPPIDUtil.ConvertGridPointOnlyOnePoint(ref x);
|
|
1033 |
}
|
|
1034 |
|
|
1035 |
// 마지막이 Symbol일 경우는 Symbol의 좌표를 따라감
|
|
1036 |
if (i + 1 == linePointInfo.Count - 1 && linePointInfo[i + 1].Item1 == "SYMBOL")
|
|
1037 |
{
|
|
1038 |
Line nextLine = linePointInfo[i + 1].Item2;
|
|
1039 |
SlopeType nextSlopeType = SPPIDUtil.CalcSlope(nextLine.SPPID.START_X, nextLine.SPPID.START_Y, nextLine.SPPID.END_X, nextLine.SPPID.END_Y);
|
|
1040 |
if (slopeType == SlopeType.HORIZONTAL)
|
|
1041 |
y = linePointInfo[i + 1].Item5;
|
|
1042 |
else if (slopeType == SlopeType.VERTICAL)
|
|
1043 |
x = linePointInfo[i + 1].Item4;
|
|
1044 |
}
|
993 |
1045 |
}
|
994 |
|
}
|
995 |
1046 |
|
996 |
|
if (item.Item1 == "LINE")
|
997 |
|
placeRunInputs.AddConnectorTarget(item.Item3 as LMConnector, x, y);
|
998 |
|
else
|
999 |
|
placeRunInputs.AddPoint(x, y);
|
|
1047 |
if (item.Item1 == "LINE")
|
|
1048 |
placeRunInputs.AddConnectorTarget(item.Item3 as LMConnector, x, y);
|
|
1049 |
else
|
|
1050 |
placeRunInputs.AddPoint(x, y);
|
|
1051 |
}
|
1000 |
1052 |
|
1001 |
1053 |
prevX = x;
|
1002 |
1054 |
prevY = y;
|
... | ... | |
1101 |
1153 |
private void BranchLineModeling(Tuple<string, Line, Line> branch)
|
1102 |
1154 |
{
|
1103 |
1155 |
List<Line> lines = SPPIDUtil.FindLinesByModelId(document, branch.Item1);
|
|
1156 |
|
1104 |
1157 |
Dictionary<LMConnector, List<double[]>> connectorVertices = GetPipeRunVertices(branch.Item1);
|
1105 |
1158 |
|
1106 |
1159 |
LMConnector _StartConnector = null;
|