개정판 8aa6f2db
dev issue #000 : add flow direction logic
Change-Id: Ifb1915357b5b2178b0e2614169ff504e65b64b1b
DTI_PID/SPPIDConverter/AutoModeling.cs | ||
---|---|---|
5 | 5 |
using System.Threading.Tasks; |
6 | 6 |
using Llama; |
7 | 7 |
using Plaice; |
8 |
using Ingr.RAD2D.Interop.RAD2D; |
|
9 |
using Ingr.RAD2D.Internal; |
|
10 |
using Ingr.RAD2D.Helper; |
|
8 | 11 |
using Converter.BaseModel; |
9 | 12 |
using Converter.SPPID.Model; |
10 | 13 |
using Converter.SPPID.Properties; |
... | ... | |
35 | 38 |
{ |
36 | 39 |
_placement = new Placement(); |
37 | 40 |
dataSource = _placement.PIDDataSource; |
38 |
|
|
39 | 41 |
//dynamic application = Interaction.GetObject("", "PIDAutomation.Application"); |
40 | 42 |
//dynamic newDrawing = application.Drawings.Add(document.Unit, document.Template, document.DrawingNumber, document.DrawingName); |
41 | 43 |
//application.ActiveWindow.Fit(); |
... | ... | |
50 | 52 |
|
51 | 53 |
foreach (LineNumber lineNumber in document.LINENUMBERS) |
52 | 54 |
{ |
53 |
foreach (LineNumberRun run in lineNumber.RUNS)
|
|
55 |
foreach (LineRun run in lineNumber.RUNS) |
|
54 | 56 |
{ |
55 | 57 |
SymbolModelingByRun(run); |
58 |
} |
|
59 |
} |
|
60 |
|
|
61 |
|
|
62 |
foreach (TrimLine trimLine in document.TRIMLINES) |
|
63 |
{ |
|
64 |
foreach (LineRun run in trimLine.RUNS) |
|
65 |
{ |
|
66 |
SymbolModelingByRun(run); |
|
67 |
} |
|
68 |
} |
|
69 |
|
|
70 |
foreach (LineNumber lineNumber in document.LINENUMBERS) |
|
71 |
{ |
|
72 |
foreach (LineRun run in lineNumber.RUNS) |
|
73 |
{ |
|
56 | 74 |
LineModelingByRun(run); |
75 |
} |
|
76 |
} |
|
57 | 77 |
|
58 |
//bool IsFirst = true; |
|
59 |
//// Run 별로 Modeling |
|
60 |
//Symbol prevSymbol = null; |
|
61 |
//object prevItem = null; |
|
62 |
|
|
63 |
|
|
64 |
|
|
65 |
//// Symbol 먼저 |
|
66 |
//foreach (var item in run.RUNITEMS) |
|
67 |
//{ |
|
68 |
// if (item.GetType() == typeof(Symbol)) |
|
69 |
// { |
|
70 |
// Symbol symbol = item as Symbol; |
|
71 |
// SymbolModeling(symbol, prevSymbol, prevItem, IsFirst); |
|
72 |
// prevSymbol = symbol; |
|
73 |
// } |
|
74 |
// IsFirst = false; |
|
75 |
// prevItem = item; |
|
76 |
//} |
|
77 |
|
|
78 |
|
|
79 |
//Line prevLine = null; |
|
80 |
//prevSymbol = null; |
|
81 |
//prevItem = null; |
|
82 |
//List<Line> lines = new List<Line>(); |
|
83 |
//foreach (var item in run.RUNITEMS) |
|
84 |
//{ |
|
85 |
// // Line일 경우 |
|
86 |
// if (item.GetType() == typeof(Line)) |
|
87 |
// { |
|
88 |
// Line line = item as Line; |
|
89 |
// if (prevLine == null) |
|
90 |
// lines.Add(line); |
|
91 |
// else if (prevLine != null) |
|
92 |
// { |
|
93 |
// if (prevLine.SPPID.MAPPINGNAME == line.SPPID.MAPPINGNAME) |
|
94 |
// lines.Add(line); |
|
95 |
// else |
|
96 |
// { |
|
97 |
// LineModeling(lines); |
|
98 |
// lines.Clear(); |
|
99 |
// lines.Add(line); |
|
100 |
// } |
|
101 |
// } |
|
102 |
|
|
103 |
// prevLine = line; |
|
104 |
// } |
|
105 |
// // Symbol 일 경우 |
|
106 |
// else if (item.GetType() == typeof(Symbol)) |
|
107 |
// { |
|
108 |
// if (lines.Count > 0) |
|
109 |
// { |
|
110 |
// LineModeling(lines); |
|
111 |
// lines.Clear(); |
|
112 |
// } |
|
113 |
// } |
|
114 |
// prevItem = item; |
|
115 |
//} |
|
116 |
|
|
117 |
//if (lines.Count > 0) |
|
118 |
// LineModeling(lines); |
|
78 |
foreach (TrimLine trimLine in document.TRIMLINES) |
|
79 |
{ |
|
80 |
foreach (LineRun run in trimLine.RUNS) |
|
81 |
{ |
|
82 |
LineModelingByRun(run); |
|
119 | 83 |
} |
120 | 84 |
} |
121 | 85 |
|
... | ... | |
125 | 89 |
System.Windows.Forms.MessageBox.Show("end"); |
126 | 90 |
} |
127 | 91 |
|
128 |
private void LineModelingByRun(LineNumberRun run)
|
|
92 |
private void LineModelingByRun(LineRun run) |
|
129 | 93 |
{ |
130 | 94 |
Line prevLine = null; |
131 | 95 |
List<Line> lines = new List<Line>(); |
... | ... | |
166 | 130 |
LineModeling(lines); |
167 | 131 |
} |
168 | 132 |
|
169 |
private void SymbolModelingByRun(LineNumberRun run)
|
|
133 |
private void SymbolModelingByRun(LineRun run) |
|
170 | 134 |
{ |
171 | 135 |
// 양끝 Symbol 검사 후 Line이 나올때까지만 Symbol Modeling |
172 | 136 |
if (run.RUNITEMS.Count > 0) |
... | ... | |
196 | 160 |
} |
197 | 161 |
} |
198 | 162 |
|
199 |
private void SymbolModelingByRunStart(Symbol symbol, LineNumberRun run)
|
|
163 |
private void SymbolModelingByRunStart(Symbol symbol, LineRun run) |
|
200 | 164 |
{ |
201 | 165 |
foreach (var connector in symbol.CONNECTORS) |
202 | 166 |
{ |
... | ... | |
221 | 185 |
|
222 | 186 |
} |
223 | 187 |
|
224 |
private void SymbolModelingByRunEnd(Symbol symbol, LineNumberRun run)
|
|
188 |
private void SymbolModelingByRunEnd(Symbol symbol, LineRun run) |
|
225 | 189 |
{ |
226 | 190 |
foreach (var connector in symbol.CONNECTORS) |
227 | 191 |
{ |
... | ... | |
280 | 244 |
} |
281 | 245 |
else if (prevItem != null && prevItem.GetType() == typeof(Symbol)) |
282 | 246 |
_TargetItem = dataSource.GetSymbol(((Symbol)prevItem).SPPID.RepresentationId); |
283 |
|
|
247 |
|
|
284 | 248 |
if (prevSymbol != null) |
285 | 249 |
{ |
286 | 250 |
SlopeType slopeType = SPPIDUtil.CalcSlope(x, y, prevSymbol.SPPID.ORIGINAL_X, prevSymbol.SPPID.ORIGINAL_Y); |
... | ... | |
291 | 255 |
y = prevY; |
292 | 256 |
else if (slopeType == SlopeType.VERTICAL) |
293 | 257 |
x = prevX; |
294 |
|
|
258 |
|
|
295 | 259 |
ReleaseCOMObjects(prevLMSymbol); |
296 | 260 |
} |
297 | 261 |
|
내보내기 Unified diff