hytos / DTI_PID / SPPIDConverter / GenerateRelation.vb @ 33cff95d
이력 | 보기 | 이력해설 | 다운로드 (51.4 KB)
1 |
Public Class GenerateRelation |
---|---|
2 |
|
3 |
Dim d라인오차범위 As Double = 100 |
4 |
Dim d심블오차범위 As Double = 100 |
5 |
|
6 |
Public Function CalcLineConnectionItem_Equal(ByRef oLinelist_Dt_Line As DataTable, ByRef oLineLists As List(Of Line_no)) As Boolean |
7 |
Try |
8 |
For Each oLineRow In oLinelist_Dt_Line.Rows |
9 |
Dim sLineUid As String = oLineRow(_XML_LINE_UID) |
10 |
Dim dLineStart_x As Double = 0.0 |
11 |
Dim dLineStart_y As Double = 0.0 |
12 |
Dim dLineEnd_x As Double = 0.0 |
13 |
Dim dLineEnd_y As Double = 0.0 |
14 |
|
15 |
Dim sStartpoint As String = oLineRow(_XML_LINE_STARTPOINT).ToString() |
16 |
Dim sEndpoint As String = oLineRow(_XML_LINE_ENDPOINT).ToString() |
17 |
|
18 |
ConvertPointBystring(sStartpoint, dLineStart_x, dLineStart_y) |
19 |
ConvertPointBystring(sEndpoint, dLineEnd_x, dLineEnd_y) |
20 |
|
21 |
Dim sConn1_Uid As String = oLineRow(_XML_LINE_Conn1_Uid).ToString() |
22 |
Dim sConn2_Uid As String = oLineRow(_XML_LINE_Conn2_Uid).ToString() |
23 |
|
24 |
Dim sConn1_Flag As Boolean = False |
25 |
Dim sConn2_Flag As Boolean = False |
26 |
|
27 |
For Each oLinelist In oLineLists |
28 |
For Each oConnLineRow In oLinelist.Dt_Line.Rows |
29 |
Dim sConnLineUid As String = oConnLineRow(_XML_LINE_UID) |
30 |
If sLineUid <> sConnLineUid Then |
31 |
If sConn1_Uid <> "" And sConn2_Uid <> "" Then |
32 |
Exit For |
33 |
End If |
34 |
Dim dConnLineStart_x As Double = 0.0 |
35 |
Dim dConnLineStart_y As Double = 0.0 |
36 |
Dim dConnLineEnd_x As Double = 0.0 |
37 |
Dim dConnLineEnd_y As Double = 0.0 |
38 |
Dim sConnStartpoint As String = oConnLineRow(_XML_LINE_STARTPOINT).ToString() |
39 |
Dim sConnEndpoint As String = oConnLineRow(_XML_LINE_ENDPOINT).ToString() |
40 |
ConvertPointBystring(sConnStartpoint, dConnLineStart_x, dConnLineStart_y) |
41 |
ConvertPointBystring(sConnEndpoint, dConnLineEnd_x, dConnLineEnd_y) |
42 |
|
43 |
If CheckDuplicatePoint(dLineStart_x, dLineStart_y, dLineEnd_x, dLineEnd_y, |
44 |
dConnLineStart_x, dConnLineStart_y, dConnLineEnd_x, dConnLineEnd_y) Then |
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
If sConn1_Uid = "" Then |
51 |
If dLineStart_x = dConnLineStart_x And dLineStart_y = dConnLineStart_y Then |
52 |
sConn1_Uid = sConnLineUid |
53 |
oConnLineRow(_XML_LINE_Conn1_Uid) = sLineUid |
54 |
oLineRow(_XML_LINE_Conn1_Uid) = sConnLineUid |
55 |
ElseIf dLineStart_x = dConnLineEnd_x And dLineStart_y = dConnLineEnd_y Then |
56 |
sConn1_Uid = sConnLineUid |
57 |
oConnLineRow(_XML_LINE_Conn2_Uid) = sLineUid |
58 |
oLineRow(_XML_LINE_Conn1_Uid) = sConnLineUid |
59 |
End If |
60 |
|
61 |
End If |
62 |
If sConn2_Uid = "" Then |
63 |
If dLineEnd_x = dConnLineStart_x And dLineEnd_y = dConnLineStart_y Then |
64 |
sConn2_Uid = sConnLineUid |
65 |
oConnLineRow(_XML_LINE_Conn1_Uid) = sLineUid |
66 |
oLineRow(_XML_LINE_Conn2_Uid) = sConnLineUid |
67 |
ElseIf dLineEnd_x = dConnLineEnd_x And dLineEnd_y = dConnLineEnd_y Then |
68 |
sConn2_Uid = sConnLineUid |
69 |
oConnLineRow(_XML_LINE_Conn2_Uid) = sLineUid |
70 |
oLineRow(_XML_LINE_Conn2_Uid) = sConnLineUid |
71 |
End If |
72 |
End If |
73 |
|
74 |
End If |
75 |
End If |
76 |
Next |
77 |
Next |
78 |
|
79 |
For Each oLinelist In oLineLists |
80 |
For Each oConnSymbolRow In oLinelist.Dt_Symbol.Rows |
81 |
If sConn1_Uid <> "" And sConn2_Uid <> "" Then |
82 |
Exit For |
83 |
End If |
84 |
Dim sSymbolUid As String = oConnSymbolRow(_XML_SYMBOL_UID).ToString() |
85 |
Dim sSymbolName As String = oConnSymbolRow(_XML_SYMBOL_NAME).ToString() |
86 |
Dim sSymbolConnPoint As String = oConnSymbolRow(_XML_SYMBOL_CONNECTIONPOINT).ToString() |
87 |
Dim sConnSplit As String() = sSymbolConnPoint.Split("/") |
88 |
If sLineUid = "3c90fe63-b88e-4bb3-a774-a0c4ae8c4ebf" And sSymbolUid = "9ebcb62e-156e-4d3c-aeb2-3d9e5089915e" Then |
89 |
|
90 |
End If |
91 |
If sSymbolConnPoint <> "" Then |
92 |
Dim dSymbolConn1_x As Double = 0.0 |
93 |
Dim dSymbolConn1_y As Double = 0.0 |
94 |
Dim dSymbolConn2_x As Double = 0.0 |
95 |
Dim dSymbolConn2_y As Double = 0.0 |
96 |
Dim dSymbolConn3_x As Double = 0.0 |
97 |
Dim dSymbolConn3_y As Double = 0.0 |
98 |
Dim dSymbolConn4_x As Double = 0.0 |
99 |
Dim dSymbolConn4_y As Double = 0.0 |
100 |
|
101 |
Dim sConn1Point As String = "" |
102 |
Dim sConn2Point As String = "" |
103 |
Dim sConn3Point As String = "" |
104 |
Dim sConn4Point As String = "" |
105 |
|
106 |
sConn1Point = sConnSplit(0) |
107 |
|
108 |
If sConnSplit.Length > 1 Then |
109 |
sConn2Point = sConnSplit(1) |
110 |
If sConnSplit.Length > 2 Then |
111 |
sConn3Point = sConnSplit(2) |
112 |
If sConnSplit.Length > 3 Then |
113 |
sConn4Point = sConnSplit(3) |
114 |
End If |
115 |
End If |
116 |
End If |
117 |
|
118 |
ConvertPointBystring(sConn1Point, dSymbolConn1_x, dSymbolConn1_y) |
119 |
If sConn2Point <> "" Then |
120 |
ConvertPointBystring(sConn2Point, dSymbolConn2_x, dSymbolConn2_y) |
121 |
End If |
122 |
If sConn3Point <> "" Then |
123 |
ConvertPointBystring(sConn3Point, dSymbolConn3_x, dSymbolConn3_y) |
124 |
End If |
125 |
If sConn4Point <> "" Then |
126 |
ConvertPointBystring(sConn4Point, dSymbolConn4_x, dSymbolConn4_y) |
127 |
End If |
128 |
'라인 끝에 연결되어 있는 심블 |
129 |
If sConn1_Uid = "" Then |
130 |
If dLineStart_x = dSymbolConn1_x And dLineStart_y = dSymbolConn1_y Then |
131 |
sConn1_Uid = sSymbolUid |
132 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sLineUid |
133 |
oLineRow(_XML_LINE_Conn1_Uid) = sConn1_Uid |
134 |
ElseIf dLineStart_x = dSymbolConn2_x And dLineStart_y = dSymbolConn2_y Then |
135 |
sConn1_Uid = sSymbolUid |
136 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sLineUid |
137 |
oLineRow(_XML_LINE_Conn1_Uid) = sConn1_Uid |
138 |
ElseIf dLineStart_x = dSymbolConn3_x And dLineStart_y = dSymbolConn3_y Then |
139 |
sConn1_Uid = sSymbolUid |
140 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sLineUid |
141 |
oLineRow(_XML_LINE_Conn1_Uid) = sConn1_Uid |
142 |
ElseIf dLineStart_x = dSymbolConn4_x And dLineStart_y = dSymbolConn4_y Then |
143 |
sConn1_Uid = sSymbolUid |
144 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sLineUid |
145 |
oLineRow(_XML_LINE_Conn1_Uid) = sConn1_Uid |
146 |
End If |
147 |
End If |
148 |
|
149 |
If sConn2_Uid = "" Then |
150 |
If dLineEnd_x = dSymbolConn1_x And dLineEnd_y = dSymbolConn1_y Then |
151 |
sConn2_Uid = sSymbolUid |
152 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sLineUid |
153 |
oLineRow(_XML_LINE_Conn2_Uid) = sConn2_Uid |
154 |
ElseIf dLineEnd_x = dSymbolConn2_x And dLineEnd_y = dSymbolConn2_y Then |
155 |
sConn2_Uid = sSymbolUid |
156 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sLineUid |
157 |
oLineRow(_XML_LINE_Conn2_Uid) = sConn2_Uid |
158 |
ElseIf dLineEnd_x = dSymbolConn3_x And dLineEnd_y = dSymbolConn3_y Then |
159 |
sConn2_Uid = sSymbolUid |
160 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sLineUid |
161 |
oLineRow(_XML_LINE_Conn2_Uid) = sConn2_Uid |
162 |
ElseIf dLineEnd_x = dSymbolConn4_x And dLineEnd_y = dSymbolConn4_y Then |
163 |
sConn2_Uid = sSymbolUid |
164 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sLineUid |
165 |
oLineRow(_XML_LINE_Conn2_Uid) = sConn2_Uid |
166 |
End If |
167 |
End If |
168 |
|
169 |
|
170 |
'라인 안에 포함되어 있는 심블 |
171 |
If sConn1_Uid = "" And sConn2_Uid = "" Then |
172 |
If (dLineStart_x <= dSymbolConn1_x And dLineStart_y <= dSymbolConn1_y And |
173 |
dLineEnd_x >= dSymbolConn2_x And dLineEnd_y >= dSymbolConn2_y) Or |
174 |
(dLineStart_x >= dSymbolConn1_x And dLineStart_y >= dSymbolConn1_y And |
175 |
dLineEnd_x <= dSymbolConn2_x And dLineEnd_y <= dSymbolConn2_y) Then |
176 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sLineUid |
177 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sLineUid |
178 |
Else |
179 |
|
180 |
End If |
181 |
End If |
182 |
|
183 |
End If |
184 |
Next |
185 |
Next |
186 |
|
187 |
|
188 |
|
189 |
oLineRow(_XML_LINE_Conn1_Uid) = sConn1_Uid |
190 |
oLineRow(_XML_LINE_Conn2_Uid) = sConn2_Uid |
191 |
|
192 |
Next |
193 |
Catch ex As Exception |
194 |
Return False |
195 |
End Try |
196 |
|
197 |
Return True |
198 |
End Function |
199 |
|
200 |
Public Function CalcLineConnectionItem_NonEqual(ByRef oLinelist_Dt_Line As DataTable, ByRef oLineLists As List(Of Line_no)) As Boolean |
201 |
Try |
202 |
|
203 |
For Each oLineRow In oLinelist_Dt_Line.Rows |
204 |
Dim sLineUid As String = oLineRow(_XML_LINE_UID).ToString() |
205 |
If sLineUid = "c5e85037-c9a6-4b8b-aff8-240d4dd89876" Then |
206 |
' MessageBox.Show("") |
207 |
End If |
208 |
Dim dLineStart_x As Double = 0.0 |
209 |
Dim dLineStart_y As Double = 0.0 |
210 |
Dim dLineEnd_x As Double = 0.0 |
211 |
Dim dLineEnd_y As Double = 0.0 |
212 |
|
213 |
Dim sStartpoint As String = oLineRow(_XML_LINE_STARTPOINT).ToString() |
214 |
Dim sEndpoint As String = oLineRow(_XML_LINE_ENDPOINT).ToString() |
215 |
|
216 |
ConvertPointBystring(sStartpoint, dLineStart_x, dLineStart_y) |
217 |
ConvertPointBystring(sEndpoint, dLineEnd_x, dLineEnd_y) |
218 |
|
219 |
Dim dPlusMinusValue = 0 |
220 |
If Math.Abs(dLineStart_x - dLineEnd_x) < Math.Abs(dLineStart_y - dLineEnd_y) Then |
221 |
'세로라인 |
222 |
dPlusMinusValue = Math.Abs(dLineStart_y - dLineEnd_y) / d라인오차범위 |
223 |
Else |
224 |
'가로라인 |
225 |
dPlusMinusValue = Math.Abs(dLineStart_x - dLineEnd_x) / d라인오차범위 |
226 |
End If |
227 |
|
228 |
|
229 |
Dim sConn1_Uid As String = oLineRow(_XML_LINE_Conn1_Uid).ToString() |
230 |
Dim sConn2_Uid As String = oLineRow(_XML_LINE_Conn2_Uid).ToString() |
231 |
For Each oConnLineRow In oLinelist_Dt_Line.Rows |
232 |
Dim sConnLineUid As String = oConnLineRow(_XML_LINE_UID).ToString() |
233 |
If sLineUid <> sConnLineUid Then |
234 |
If sConn1_Uid <> "" And sConn2_Uid <> "" Then |
235 |
Exit For |
236 |
End If |
237 |
Dim dConnLineStart_x As Double = 0.0 |
238 |
Dim dConnLineStart_y As Double = 0.0 |
239 |
Dim dConnLineEnd_x As Double = 0.0 |
240 |
Dim dConnLineEnd_y As Double = 0.0 |
241 |
Dim sConnStartpoint As String = oConnLineRow(_XML_LINE_STARTPOINT).ToString() |
242 |
Dim sConnEndpoint As String = oConnLineRow(_XML_LINE_ENDPOINT).ToString() |
243 |
ConvertPointBystring(sConnStartpoint, dConnLineStart_x, dConnLineStart_y) |
244 |
ConvertPointBystring(sConnEndpoint, dConnLineEnd_x, dConnLineEnd_y) |
245 |
|
246 |
|
247 |
If CheckDuplicatePoint(dLineStart_x, dLineStart_y, dLineEnd_x, dLineEnd_y, |
248 |
dConnLineStart_x, dConnLineStart_y, dConnLineEnd_x, dConnLineEnd_y) Then |
249 |
|
250 |
If sConn1_Uid = "" Then |
251 |
If dLineStart_x - dPlusMinusValue <= dConnLineStart_x And dLineStart_x + dPlusMinusValue >= dConnLineStart_x And |
252 |
dLineStart_y - dPlusMinusValue <= dConnLineStart_y And dLineStart_y + dPlusMinusValue >= dConnLineStart_y Then |
253 |
sConn1_Uid = sConnLineUid |
254 |
oConnLineRow(_XML_LINE_Conn1_Uid) = sLineUid |
255 |
oLineRow(_XML_LINE_Conn1_Uid) = sConnLineUid |
256 |
ElseIf dLineStart_x - dPlusMinusValue <= dConnLineEnd_x And dLineStart_x + dPlusMinusValue >= dConnLineEnd_x And |
257 |
dLineStart_y - dPlusMinusValue <= dConnLineEnd_y And dLineStart_y + dPlusMinusValue >= dConnLineEnd_y Then |
258 |
sConn1_Uid = sConnLineUid |
259 |
oConnLineRow(_XML_LINE_Conn2_Uid) = sLineUid |
260 |
oLineRow(_XML_LINE_Conn1_Uid) = sConnLineUid |
261 |
End If |
262 |
End If |
263 |
If sConn2_Uid = "" Then |
264 |
If dLineEnd_x - dPlusMinusValue <= dConnLineStart_x And dLineEnd_x + dPlusMinusValue >= dConnLineStart_x And |
265 |
dLineEnd_y - dPlusMinusValue <= dConnLineStart_y And dLineEnd_y + dPlusMinusValue >= dConnLineStart_y Then |
266 |
sConn2_Uid = sConnLineUid |
267 |
oConnLineRow(_XML_LINE_Conn1_Uid) = sLineUid |
268 |
oLineRow(_XML_LINE_Conn2_Uid) = sConnLineUid |
269 |
ElseIf dLineEnd_x - dPlusMinusValue <= dConnLineEnd_x And dLineEnd_x + dPlusMinusValue >= dConnLineEnd_x And |
270 |
dLineEnd_y - dPlusMinusValue <= dConnLineEnd_y And dLineEnd_y + dPlusMinusValue >= dConnLineEnd_y Then |
271 |
sConn2_Uid = sConnLineUid |
272 |
oConnLineRow(_XML_LINE_Conn2_Uid) = sLineUid |
273 |
oLineRow(_XML_LINE_Conn2_Uid) = sConnLineUid |
274 |
End If |
275 |
|
276 |
|
277 |
End If |
278 |
|
279 |
End If |
280 |
End If |
281 |
|
282 |
Next |
283 |
|
284 |
For Each oLinelist In oLineLists |
285 |
For Each oConnSymbolRow In oLinelist.Dt_Symbol.Rows |
286 |
If sConn1_Uid <> "" And sConn2_Uid <> "" Then |
287 |
Exit For |
288 |
End If |
289 |
|
290 |
Dim sSymbolUid As String = oConnSymbolRow(_XML_SYMBOL_UID).ToString() |
291 |
Dim sSymbolName As String = oConnSymbolRow(_XML_SYMBOL_NAME).ToString() |
292 |
Dim sSymbolSize As String = oConnSymbolRow(_XML_SYMBOL_SIZE).ToString() |
293 |
Dim sSizeSplit() As String = sSymbolSize.Split(",") |
294 |
Dim sSize_x As String = sSizeSplit(0) |
295 |
Dim sSize_y As String = sSizeSplit(1) |
296 |
dPlusMinusValue = 0 |
297 |
If sSize_x > sSize_y Then |
298 |
dPlusMinusValue = sSize_x / d라인오차범위 |
299 |
Else |
300 |
dPlusMinusValue = sSize_y / d라인오차범위 |
301 |
End If |
302 |
|
303 |
Dim sSymbolConnPoint As String = oConnSymbolRow(_XML_SYMBOL_CONNECTIONPOINT).ToString() |
304 |
Dim sConnSplit As String() = sSymbolConnPoint.Split("/") |
305 |
If sSymbolConnPoint <> "" Then |
306 |
Dim dSymbolConn1_x As Double = 0.0 |
307 |
Dim dSymbolConn1_y As Double = 0.0 |
308 |
Dim dSymbolConn2_x As Double = 0.0 |
309 |
Dim dSymbolConn2_y As Double = 0.0 |
310 |
Dim dSymbolConn3_x As Double = 0.0 |
311 |
Dim dSymbolConn3_y As Double = 0.0 |
312 |
Dim dSymbolConn4_x As Double = 0.0 |
313 |
Dim dSymbolConn4_y As Double = 0.0 |
314 |
|
315 |
Dim sConn1Point As String = "" |
316 |
Dim sConn2Point As String = "" |
317 |
Dim sConn3Point As String = "" |
318 |
Dim sConn4Point As String = "" |
319 |
|
320 |
sConn1Point = sConnSplit(0) |
321 |
|
322 |
If sConnSplit.Length > 1 Then |
323 |
sConn2Point = sConnSplit(1) |
324 |
If sConnSplit.Length > 2 Then |
325 |
sConn3Point = sConnSplit(2) |
326 |
If sConnSplit.Length > 3 Then |
327 |
sConn4Point = sConnSplit(3) |
328 |
End If |
329 |
End If |
330 |
End If |
331 |
|
332 |
ConvertPointBystring(sConn1Point, dSymbolConn1_x, dSymbolConn1_y) |
333 |
If sConn2Point <> "" Then |
334 |
ConvertPointBystring(sConn2Point, dSymbolConn2_x, dSymbolConn2_y) |
335 |
End If |
336 |
If sConn3Point <> "" Then |
337 |
ConvertPointBystring(sConn3Point, dSymbolConn3_x, dSymbolConn3_y) |
338 |
End If |
339 |
If sConn4Point <> "" Then |
340 |
ConvertPointBystring(sConn4Point, dSymbolConn4_x, dSymbolConn4_y) |
341 |
End If |
342 |
If sConn1_Uid = "" Then |
343 |
If dLineStart_x - dPlusMinusValue <= dSymbolConn1_x And dLineStart_x + dPlusMinusValue >= dSymbolConn1_x And |
344 |
dLineStart_y - dPlusMinusValue <= dSymbolConn1_y And dLineStart_y + dPlusMinusValue >= dSymbolConn1_y Then |
345 |
sConn1_Uid = sSymbolUid |
346 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sLineUid |
347 |
oLineRow(_XML_LINE_Conn1_Uid) = sSymbolUid |
348 |
ElseIf dLineStart_x - dPlusMinusValue <= dSymbolConn2_x And dLineStart_x + dPlusMinusValue >= dSymbolConn2_x And |
349 |
dLineStart_y - dPlusMinusValue <= dSymbolConn2_y And dLineStart_y + dPlusMinusValue >= dSymbolConn2_y Then |
350 |
sConn1_Uid = sSymbolUid |
351 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sLineUid |
352 |
oLineRow(_XML_LINE_Conn1_Uid) = sSymbolUid |
353 |
ElseIf dLineStart_x - dPlusMinusValue <= dSymbolConn3_x And dLineStart_x + dPlusMinusValue >= dSymbolConn3_x And |
354 |
dLineStart_y - dPlusMinusValue <= dSymbolConn3_y And dLineStart_y + dPlusMinusValue >= dSymbolConn3_y Then |
355 |
sConn1_Uid = sSymbolUid |
356 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sLineUid |
357 |
oLineRow(_XML_LINE_Conn1_Uid) = sSymbolUid |
358 |
ElseIf dLineStart_x - dPlusMinusValue <= dSymbolConn4_x And dLineStart_x + dPlusMinusValue >= dSymbolConn4_x And |
359 |
dLineStart_y - dPlusMinusValue <= dSymbolConn4_y And dLineStart_y + dPlusMinusValue >= dSymbolConn4_y Then |
360 |
sConn1_Uid = sSymbolUid |
361 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sLineUid |
362 |
oLineRow(_XML_LINE_Conn1_Uid) = sSymbolUid |
363 |
End If |
364 |
End If |
365 |
If sConn2_Uid = "" Then |
366 |
If dLineEnd_x - dPlusMinusValue <= dSymbolConn1_x And dLineEnd_x + dPlusMinusValue >= dSymbolConn1_x And |
367 |
dLineEnd_y - dPlusMinusValue <= dSymbolConn1_y And dLineEnd_y + dPlusMinusValue >= dSymbolConn1_y Then |
368 |
sConn2_Uid = sSymbolUid |
369 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sLineUid |
370 |
oLineRow(_XML_LINE_Conn2_Uid) = sSymbolUid |
371 |
ElseIf dLineEnd_x - dPlusMinusValue <= dSymbolConn2_x And dLineEnd_x + dPlusMinusValue >= dSymbolConn2_x And |
372 |
dLineEnd_y - dPlusMinusValue <= dSymbolConn2_y And dLineEnd_y + dPlusMinusValue >= dSymbolConn2_y Then |
373 |
sConn2_Uid = sSymbolUid |
374 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sLineUid |
375 |
oLineRow(_XML_LINE_Conn2_Uid) = sSymbolUid |
376 |
ElseIf dLineEnd_x - dPlusMinusValue <= dSymbolConn3_x And dLineEnd_x + dPlusMinusValue >= dSymbolConn3_x And |
377 |
dLineEnd_y - dPlusMinusValue <= dSymbolConn3_y And dLineEnd_y + dPlusMinusValue >= dSymbolConn3_y Then |
378 |
sConn2_Uid = sSymbolUid |
379 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sLineUid |
380 |
oLineRow(_XML_LINE_Conn2_Uid) = sSymbolUid |
381 |
ElseIf dLineEnd_x - dPlusMinusValue <= dSymbolConn4_x And dLineEnd_x + dPlusMinusValue >= dSymbolConn4_x And |
382 |
dLineEnd_y - dPlusMinusValue <= dSymbolConn4_y And dLineEnd_y + dPlusMinusValue >= dSymbolConn4_y Then |
383 |
sConn2_Uid = sSymbolUid |
384 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sLineUid |
385 |
oLineRow(_XML_LINE_Conn2_Uid) = sSymbolUid |
386 |
End If |
387 |
End If |
388 |
|
389 |
End If |
390 |
Next |
391 |
Next |
392 |
|
393 |
oLineRow(_XML_LINE_Conn1_Uid) = sConn1_Uid |
394 |
oLineRow(_XML_LINE_Conn2_Uid) = sConn2_Uid |
395 |
Next |
396 |
Catch ex As Exception |
397 |
Return False |
398 |
End Try |
399 |
|
400 |
Return True |
401 |
End Function |
402 |
|
403 |
|
404 |
#Region "Symbol과 Symbol Connection 찾기" |
405 |
Public Function CalcSymbolConnectionItem_Equal(ByRef oLinelist_Dt_Symbol As DataTable, ByRef oLineLists As List(Of Line_no)) As Boolean |
406 |
Try |
407 |
For Each oSymbolRow In oLinelist_Dt_Symbol.Rows |
408 |
Dim sUid As String = oSymbolRow(_XML_SYMBOL_UID) |
409 |
If sUid = "9ebcb62e-156e-4d3c-aeb2-3d9e5089915e" Then |
410 |
' MessageBox.Show("") |
411 |
End If |
412 |
Dim dConn1_x As Double = 0.0 |
413 |
Dim dConn1_y As Double = 0.0 |
414 |
Dim dConn2_x As Double = 0.0 |
415 |
Dim dConn2_y As Double = 0.0 |
416 |
Dim dConn3_x As Double = 0.0 |
417 |
Dim dConn3_y As Double = 0.0 |
418 |
Dim dConn4_x As Double = 0.0 |
419 |
Dim dConn4_y As Double = 0.0 |
420 |
Dim sConnPoint As String = oSymbolRow(_XML_SYMBOL_CONNECTIONPOINT).ToString() |
421 |
Dim sConnSplit As String() = sConnPoint.Split("/") |
422 |
Dim sConn1Point As String = "" |
423 |
Dim sConn2Point As String = "" |
424 |
Dim sConn3Point As String = "" |
425 |
Dim sConn4Point As String = "" |
426 |
|
427 |
Dim sConn1_Uid As String = oSymbolRow(_XML_SYMBOL_Conn1_Uid).ToString() |
428 |
Dim sConn2_Uid As String = oSymbolRow(_XML_SYMBOL_Conn2_Uid).ToString() |
429 |
Dim sConn3_Uid As String = oSymbolRow(_XML_SYMBOL_Conn3_Uid).ToString() |
430 |
Dim sConn4_Uid As String = oSymbolRow(_XML_SYMBOL_Conn4_Uid).ToString() |
431 |
|
432 |
|
433 |
sConn1Point = sConnSplit(0) |
434 |
|
435 |
If sConnSplit.Length > 1 Then |
436 |
sConn2Point = sConnSplit(1) |
437 |
If sConnSplit.Length > 2 Then |
438 |
sConn3Point = sConnSplit(2) |
439 |
If sConnSplit.Length > 3 Then |
440 |
sConn4Point = sConnSplit(3) |
441 |
End If |
442 |
End If |
443 |
End If |
444 |
If sConn1Point <> "" Then |
445 |
ConvertPointBystring(sConn1Point, dConn1_x, dConn1_y) |
446 |
End If |
447 |
|
448 |
If sConn2Point <> "" Then |
449 |
ConvertPointBystring(sConn2Point, dConn2_x, dConn2_y) |
450 |
End If |
451 |
|
452 |
If sConn3Point <> "" Then |
453 |
ConvertPointBystring(sConn3Point, dConn3_x, dConn3_y) |
454 |
End If |
455 |
|
456 |
If sConn4Point <> "" Then |
457 |
ConvertPointBystring(sConn4Point, dConn4_x, dConn4_y) |
458 |
End If |
459 |
|
460 |
For Each oLinelist In oLineLists |
461 |
For Each oConnSymbolRow In oLinelist.Dt_Symbol.Rows |
462 |
Dim sSymbolUid As String = oConnSymbolRow(_XML_SYMBOL_UID).ToString() |
463 |
If sUid <> sSymbolUid Then |
464 |
Dim sSymbolName As String = oConnSymbolRow(_XML_SYMBOL_NAME).ToString() |
465 |
Dim sSymbolConnPoint As String = oConnSymbolRow(_XML_SYMBOL_CONNECTIONPOINT).ToString() |
466 |
Dim sRelConnSplit As String() = sSymbolConnPoint.Split("/") |
467 |
If sSymbolConnPoint <> "" Then |
468 |
Dim dSymbolConn1_x As Double = 0.0 |
469 |
Dim dSymbolConn1_y As Double = 0.0 |
470 |
Dim dSymbolConn2_x As Double = 0.0 |
471 |
Dim dSymbolConn2_y As Double = 0.0 |
472 |
Dim dSymbolConn3_x As Double = 0.0 |
473 |
Dim dSymbolConn3_y As Double = 0.0 |
474 |
Dim dSymbolConn4_x As Double = 0.0 |
475 |
Dim dSymbolConn4_y As Double = 0.0 |
476 |
Dim sRelConn1Point As String = "" |
477 |
Dim sRelConn2Point As String = "" |
478 |
Dim sRelConn3Point As String = "" |
479 |
Dim sRelConn4Point As String = "" |
480 |
sRelConn1Point = sRelConnSplit(0) |
481 |
If sRelConnSplit.Length > 1 Then |
482 |
sRelConn2Point = sRelConnSplit(1) |
483 |
If sRelConnSplit.Length > 2 Then |
484 |
sRelConn3Point = sRelConnSplit(2) |
485 |
If sRelConnSplit.Length > 3 Then |
486 |
sRelConn4Point = sRelConnSplit(3) |
487 |
End If |
488 |
End If |
489 |
End If |
490 |
ConvertPointBystring(sRelConn1Point, dSymbolConn1_x, dSymbolConn1_y) |
491 |
If sRelConn2Point <> "" Then |
492 |
ConvertPointBystring(sRelConn2Point, dSymbolConn2_x, dSymbolConn2_y) |
493 |
End If |
494 |
If sRelConn3Point <> "" Then |
495 |
ConvertPointBystring(sRelConn3Point, dSymbolConn3_x, dSymbolConn3_y) |
496 |
End If |
497 |
If sRelConn4Point <> "" Then |
498 |
ConvertPointBystring(sRelConn4Point, dSymbolConn4_x, dSymbolConn4_y) |
499 |
End If |
500 |
|
501 |
If sConn1_Uid = "" And dConn1_x > 0 And dConn1_y > 0 Then |
502 |
If dConn1_x = dSymbolConn1_x And dConn1_y = dSymbolConn1_y Then |
503 |
sConn1_Uid = sSymbolUid |
504 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sUid |
505 |
oSymbolRow(_XML_SYMBOL_Conn1_Uid) = sSymbolUid |
506 |
ElseIf dConn1_x = dSymbolConn2_x And dConn1_y = dSymbolConn2_y Then |
507 |
sConn1_Uid = sSymbolUid |
508 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sUid |
509 |
oSymbolRow(_XML_SYMBOL_Conn1_Uid) = sSymbolUid |
510 |
ElseIf dConn1_x = dSymbolConn3_x And dConn1_y = dSymbolConn3_y Then |
511 |
sConn1_Uid = sSymbolUid |
512 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sUid |
513 |
oSymbolRow(_XML_SYMBOL_Conn1_Uid) = sSymbolUid |
514 |
ElseIf dConn1_x = dSymbolConn4_x And dConn1_y = dSymbolConn4_y Then |
515 |
sConn1_Uid = sSymbolUid |
516 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sUid |
517 |
oSymbolRow(_XML_SYMBOL_Conn1_Uid) = sSymbolUid |
518 |
End If |
519 |
End If |
520 |
|
521 |
If sConn2_Uid = "" And dConn3_x > 0 And dConn3_y > 0 Then |
522 |
If dConn2_x = dSymbolConn1_x And dConn2_y = dSymbolConn1_y Then |
523 |
sConn2_Uid = sSymbolUid |
524 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sUid |
525 |
oSymbolRow(_XML_SYMBOL_Conn2_Uid) = sSymbolUid |
526 |
ElseIf dConn2_x = dSymbolConn2_x And dConn2_y = dSymbolConn2_y Then |
527 |
sConn2_Uid = sSymbolUid |
528 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sUid |
529 |
oSymbolRow(_XML_SYMBOL_Conn2_Uid) = sSymbolUid |
530 |
ElseIf dConn2_x = dSymbolConn3_x And dConn2_y = dSymbolConn3_y Then |
531 |
sConn2_Uid = sSymbolUid |
532 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sUid |
533 |
oSymbolRow(_XML_SYMBOL_Conn2_Uid) = sSymbolUid |
534 |
ElseIf dConn2_x = dSymbolConn4_x And dConn2_y = dSymbolConn4_y Then |
535 |
sConn2_Uid = sSymbolUid |
536 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sUid |
537 |
oSymbolRow(_XML_SYMBOL_Conn2_Uid) = sSymbolUid |
538 |
End If |
539 |
End If |
540 |
|
541 |
If sConn3_Uid = "" And dConn3_x > 0 And dConn3_y > 0 Then |
542 |
If dConn3_x = dSymbolConn1_x And dConn3_y = dSymbolConn1_y Then |
543 |
sConn3_Uid = sSymbolUid |
544 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sUid |
545 |
oSymbolRow(_XML_SYMBOL_Conn3_Uid) = sSymbolUid |
546 |
ElseIf dConn3_x = dSymbolConn2_x And dConn3_y = dSymbolConn2_y Then |
547 |
sConn3_Uid = sSymbolUid |
548 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sUid |
549 |
oSymbolRow(_XML_SYMBOL_Conn3_Uid) = sSymbolUid |
550 |
ElseIf dConn3_x = dSymbolConn3_x And dConn3_y = dSymbolConn3_y Then |
551 |
sConn3_Uid = sSymbolUid |
552 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sUid |
553 |
oSymbolRow(_XML_SYMBOL_Conn3_Uid) = sSymbolUid |
554 |
ElseIf dConn3_x = dSymbolConn4_x And dConn3_y = dSymbolConn4_y Then |
555 |
sConn3_Uid = sSymbolUid |
556 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sUid |
557 |
oSymbolRow(_XML_SYMBOL_Conn3_Uid) = sSymbolUid |
558 |
End If |
559 |
End If |
560 |
|
561 |
If sConn4_Uid = "" And dConn4_x > 0 And dConn4_y > 0 Then |
562 |
If dConn4_x = dSymbolConn1_x And dConn4_y = dSymbolConn1_y Then |
563 |
sConn4_Uid = sSymbolUid |
564 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sUid |
565 |
oSymbolRow(_XML_SYMBOL_Conn4_Uid) = sSymbolUid |
566 |
ElseIf dConn4_x = dSymbolConn2_x And dConn4_y = dSymbolConn2_y Then |
567 |
sConn4_Uid = sSymbolUid |
568 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sUid |
569 |
oSymbolRow(_XML_SYMBOL_Conn4_Uid) = sSymbolUid |
570 |
ElseIf dConn4_x = dSymbolConn3_x And dConn4_y = dSymbolConn3_y Then |
571 |
sConn4_Uid = sSymbolUid |
572 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sUid |
573 |
oSymbolRow(_XML_SYMBOL_Conn4_Uid) = sSymbolUid |
574 |
ElseIf dConn4_x = dSymbolConn4_x And dConn4_y = dSymbolConn4_y Then |
575 |
sConn4_Uid = sSymbolUid |
576 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sUid |
577 |
oSymbolRow(_XML_SYMBOL_Conn4_Uid) = sSymbolUid |
578 |
End If |
579 |
End If |
580 |
|
581 |
|
582 |
End If |
583 |
End If |
584 |
Next |
585 |
Next |
586 |
|
587 |
oSymbolRow(_XML_SYMBOL_Conn1_Uid) = sConn1_Uid |
588 |
oSymbolRow(_XML_SYMBOL_Conn2_Uid) = sConn2_Uid |
589 |
oSymbolRow(_XML_SYMBOL_Conn3_Uid) = sConn3_Uid |
590 |
oSymbolRow(_XML_SYMBOL_Conn4_Uid) = sConn4_Uid |
591 |
Next |
592 |
Catch ex As Exception |
593 |
Return False |
594 |
End Try |
595 |
|
596 |
Return True |
597 |
End Function |
598 |
|
599 |
|
600 |
Public Function CalcSymbolConnectionItem_NonEqual(ByRef oLinelist_Dt_Symbol As DataTable, ByRef oLineLists As List(Of Line_no)) As Boolean |
601 |
Try |
602 |
|
603 |
Dim dPlusMinusValue = 10 |
604 |
|
605 |
For Each oSymbolRow In oLinelist_Dt_Symbol.Rows |
606 |
Dim sUid As String = oSymbolRow(_XML_SYMBOL_UID).ToString() |
607 |
|
608 |
Dim dConn1_x As Double = 0.0 |
609 |
Dim dConn1_y As Double = 0.0 |
610 |
Dim dConn2_x As Double = 0.0 |
611 |
Dim dConn2_y As Double = 0.0 |
612 |
Dim dConn3_x As Double = 0.0 |
613 |
Dim dConn3_y As Double = 0.0 |
614 |
Dim dConn4_x As Double = 0.0 |
615 |
Dim dConn4_y As Double = 0.0 |
616 |
Dim sConnPoint As String = oSymbolRow(_XML_SYMBOL_CONNECTIONPOINT).ToString() |
617 |
Dim sConnSplit As String() = sConnPoint.Split("/") |
618 |
Dim sConn1Point As String = "" |
619 |
Dim sConn2Point As String = "" |
620 |
Dim sConn3Point As String = "" |
621 |
Dim sConn4Point As String = "" |
622 |
|
623 |
Dim sConn1_Uid As String = oSymbolRow(_XML_SYMBOL_Conn1_Uid).ToString() |
624 |
Dim sConn2_Uid As String = oSymbolRow(_XML_SYMBOL_Conn2_Uid).ToString() |
625 |
Dim sConn3_Uid As String = oSymbolRow(_XML_SYMBOL_Conn3_Uid).ToString() |
626 |
Dim sConn4_Uid As String = oSymbolRow(_XML_SYMBOL_Conn4_Uid).ToString() |
627 |
|
628 |
sConn1Point = sConnSplit(0) |
629 |
|
630 |
If sConnSplit.Length > 1 Then |
631 |
sConn2Point = sConnSplit(1) |
632 |
If sConnSplit.Length > 2 Then |
633 |
sConn3Point = sConnSplit(2) |
634 |
If sConnSplit.Length > 3 Then |
635 |
sConn4Point = sConnSplit(3) |
636 |
End If |
637 |
End If |
638 |
End If |
639 |
|
640 |
If sConn1Point <> "" Then |
641 |
ConvertPointBystring(sConn1Point, dConn1_x, dConn1_y) |
642 |
End If |
643 |
|
644 |
If sConn2Point <> "" Then |
645 |
ConvertPointBystring(sConn2Point, dConn2_x, dConn2_y) |
646 |
End If |
647 |
|
648 |
If sConn3Point <> "" Then |
649 |
ConvertPointBystring(sConn3Point, dConn3_x, dConn3_y) |
650 |
End If |
651 |
|
652 |
If sConn4Point <> "" Then |
653 |
ConvertPointBystring(sConn4Point, dConn4_x, dConn4_y) |
654 |
End If |
655 |
For Each oLinelist In oLineLists |
656 |
For Each oConnSymbolRow In oLinelist.Dt_Symbol.Rows |
657 |
Dim sSymbolUid As String = oConnSymbolRow(_XML_SYMBOL_UID).ToString() |
658 |
If sUid <> sSymbolUid Then |
659 |
Dim sSymbolName As String = oConnSymbolRow(_XML_SYMBOL_NAME).ToString() |
660 |
Dim sSymbolConnPoint As String = oConnSymbolRow(_XML_SYMBOL_CONNECTIONPOINT).ToString() |
661 |
Dim sRelConnSplit As String() = sSymbolConnPoint.Split("/") |
662 |
If sSymbolConnPoint <> "" Then |
663 |
Dim dSymbolConn1_x As Double = 0.0 |
664 |
Dim dSymbolConn1_y As Double = 0.0 |
665 |
Dim dSymbolConn2_x As Double = 0.0 |
666 |
Dim dSymbolConn2_y As Double = 0.0 |
667 |
Dim dSymbolConn3_x As Double = 0.0 |
668 |
Dim dSymbolConn3_y As Double = 0.0 |
669 |
Dim dSymbolConn4_x As Double = 0.0 |
670 |
Dim dSymbolConn4_y As Double = 0.0 |
671 |
Dim sRelConn1Point As String = "" |
672 |
Dim sRelConn2Point As String = "" |
673 |
Dim sRelConn3Point As String = "" |
674 |
Dim sRelConn4Point As String = "" |
675 |
sRelConn1Point = sRelConnSplit(0) |
676 |
If sRelConnSplit.Length > 1 Then |
677 |
sRelConn2Point = sRelConnSplit(1) |
678 |
If sRelConnSplit.Length > 2 Then |
679 |
sRelConn3Point = sRelConnSplit(2) |
680 |
If sRelConnSplit.Length > 3 Then |
681 |
sRelConn4Point = sRelConnSplit(3) |
682 |
End If |
683 |
End If |
684 |
End If |
685 |
ConvertPointBystring(sRelConn1Point, dSymbolConn1_x, dSymbolConn1_y) |
686 |
If sConn2Point <> "" Then |
687 |
ConvertPointBystring(sRelConn2Point, dSymbolConn2_x, dSymbolConn2_y) |
688 |
End If |
689 |
If sConn3Point <> "" Then |
690 |
ConvertPointBystring(sRelConn3Point, dSymbolConn3_x, dSymbolConn3_y) |
691 |
End If |
692 |
If sConn4Point <> "" Then |
693 |
ConvertPointBystring(sRelConn4Point, dSymbolConn4_x, dSymbolConn4_y) |
694 |
End If |
695 |
If sConn1_Uid = "" Then |
696 |
If dConn1_x > 0 And dConn1_y > 0 Then |
697 |
If dConn1_x - dPlusMinusValue <= dSymbolConn1_x And dConn1_x + dPlusMinusValue >= dSymbolConn1_x And |
698 |
dConn1_y - dPlusMinusValue <= dSymbolConn1_y And dConn1_y + dPlusMinusValue >= dSymbolConn1_y Then |
699 |
sConn1_Uid = sSymbolUid |
700 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sUid |
701 |
oSymbolRow(_XML_SYMBOL_Conn1_Uid) = sSymbolUid |
702 |
ElseIf dConn1_x - dPlusMinusValue <= dSymbolConn2_x And dConn1_x + dPlusMinusValue >= dSymbolConn2_x And |
703 |
dConn1_y - dPlusMinusValue <= dSymbolConn2_y And dConn1_y + dPlusMinusValue >= dSymbolConn2_y Then |
704 |
sConn1_Uid = sSymbolUid |
705 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sUid |
706 |
oSymbolRow(_XML_SYMBOL_Conn1_Uid) = sSymbolUid |
707 |
ElseIf dConn1_x - dPlusMinusValue <= dSymbolConn3_x And dConn1_x + dPlusMinusValue >= dSymbolConn3_x And |
708 |
dConn1_y - dPlusMinusValue <= dSymbolConn3_y And dConn1_y + dPlusMinusValue >= dSymbolConn3_y Then |
709 |
sConn1_Uid = sSymbolUid |
710 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sUid |
711 |
oSymbolRow(_XML_SYMBOL_Conn1_Uid) = sSymbolUid |
712 |
ElseIf dConn1_x - dPlusMinusValue <= dSymbolConn4_x And dConn1_x + dPlusMinusValue >= dSymbolConn4_x And |
713 |
dConn1_y - dPlusMinusValue <= dSymbolConn2_y And dConn1_y + dPlusMinusValue >= dSymbolConn2_y Then |
714 |
sConn1_Uid = sSymbolUid |
715 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sUid |
716 |
oSymbolRow(_XML_SYMBOL_Conn1_Uid) = sSymbolUid |
717 |
End If |
718 |
End If |
719 |
End If |
720 |
|
721 |
If sConn2_Uid = "" Then |
722 |
If dConn2_x > 0 And dConn2_y > 0 Then |
723 |
If dConn2_x - dPlusMinusValue <= dSymbolConn1_x And dConn2_x + dPlusMinusValue >= dSymbolConn1_x And |
724 |
dConn2_y - dPlusMinusValue <= dSymbolConn1_y And dConn2_y + dPlusMinusValue >= dSymbolConn1_y Then |
725 |
sConn2_Uid = sSymbolUid |
726 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sUid |
727 |
oSymbolRow(_XML_SYMBOL_Conn2_Uid) = sSymbolUid |
728 |
ElseIf dConn2_x - dPlusMinusValue <= dSymbolConn2_x And dConn2_x + dPlusMinusValue >= dSymbolConn2_x And |
729 |
dConn2_y - dPlusMinusValue <= dSymbolConn2_y And dConn2_y + dPlusMinusValue >= dSymbolConn2_y Then |
730 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sUid |
731 |
sConn2_Uid = sSymbolUid |
732 |
oSymbolRow(_XML_SYMBOL_Conn2_Uid) = sSymbolUid |
733 |
ElseIf dConn2_x - dPlusMinusValue <= dSymbolConn3_x And dConn2_x + dPlusMinusValue >= dSymbolConn3_x And |
734 |
dConn2_y - dPlusMinusValue <= dSymbolConn3_y And dConn2_y + dPlusMinusValue >= dSymbolConn3_y Then |
735 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sUid |
736 |
sConn2_Uid = sSymbolUid |
737 |
oSymbolRow(_XML_SYMBOL_Conn2_Uid) = sSymbolUid |
738 |
ElseIf dConn2_x - dPlusMinusValue <= dSymbolConn4_x And dConn2_x + dPlusMinusValue >= dSymbolConn4_x And |
739 |
dConn2_y - dPlusMinusValue <= dSymbolConn2_y And dConn2_y + dPlusMinusValue >= dSymbolConn2_y Then |
740 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sUid |
741 |
sConn2_Uid = sSymbolUid |
742 |
oSymbolRow(_XML_SYMBOL_Conn2_Uid) = sSymbolUid |
743 |
End If |
744 |
End If |
745 |
End If |
746 |
|
747 |
|
748 |
If sConn3_Uid = "" Then |
749 |
If dConn3_x > 0 And dConn3_y > 0 Then |
750 |
If dConn3_x - dPlusMinusValue <= dSymbolConn1_x And dConn3_x + dPlusMinusValue >= dSymbolConn1_x And |
751 |
dConn2_y - dPlusMinusValue <= dSymbolConn1_y And dConn2_y + dPlusMinusValue >= dSymbolConn1_y Then |
752 |
sConn2_Uid = sSymbolUid |
753 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sUid |
754 |
oSymbolRow(_XML_SYMBOL_Conn3_Uid) = sSymbolUid |
755 |
|
756 |
ElseIf dConn3_x - dPlusMinusValue <= dSymbolConn2_x And dConn3_x + dPlusMinusValue >= dSymbolConn2_x And |
757 |
dConn2_y - dPlusMinusValue <= dSymbolConn2_y And dConn2_y + dPlusMinusValue >= dSymbolConn2_y Then |
758 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sUid |
759 |
sConn2_Uid = sSymbolUid |
760 |
oSymbolRow(_XML_SYMBOL_Conn3_Uid) = sSymbolUid |
761 |
ElseIf dConn3_x - dPlusMinusValue <= dSymbolConn3_x And dConn3_x + dPlusMinusValue >= dSymbolConn3_x And |
762 |
dConn2_y - dPlusMinusValue <= dSymbolConn3_y And dConn2_y + dPlusMinusValue >= dSymbolConn3_y Then |
763 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sUid |
764 |
sConn2_Uid = sSymbolUid |
765 |
oSymbolRow(_XML_SYMBOL_Conn3_Uid) = sSymbolUid |
766 |
ElseIf dConn3_x - dPlusMinusValue <= dSymbolConn4_x And dConn3_x + dPlusMinusValue >= dSymbolConn4_x And |
767 |
dConn2_y - dPlusMinusValue <= dSymbolConn2_y And dConn2_y + dPlusMinusValue >= dSymbolConn2_y Then |
768 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sUid |
769 |
sConn2_Uid = sSymbolUid |
770 |
oSymbolRow(_XML_SYMBOL_Conn3_Uid) = sSymbolUid |
771 |
End If |
772 |
End If |
773 |
End If |
774 |
|
775 |
|
776 |
If sConn4_Uid = "" Then |
777 |
If dConn4_x > 0 And dConn4_y > 0 Then |
778 |
If dConn4_x - dPlusMinusValue <= dSymbolConn1_x And dConn4_x + dPlusMinusValue >= dSymbolConn1_x And |
779 |
dConn2_y - dPlusMinusValue <= dSymbolConn1_y And dConn2_y + dPlusMinusValue >= dSymbolConn1_y Then |
780 |
sConn2_Uid = sSymbolUid |
781 |
oConnSymbolRow(_XML_SYMBOL_Conn1_Uid) = sUid |
782 |
oSymbolRow(_XML_SYMBOL_Conn4_Uid) = sSymbolUid |
783 |
ElseIf dConn4_x - dPlusMinusValue <= dSymbolConn2_x And dConn4_x + dPlusMinusValue >= dSymbolConn2_x And |
784 |
dConn2_y - dPlusMinusValue <= dSymbolConn2_y And dConn2_y + dPlusMinusValue >= dSymbolConn2_y Then |
785 |
oConnSymbolRow(_XML_SYMBOL_Conn2_Uid) = sUid |
786 |
sConn2_Uid = sSymbolUid |
787 |
oSymbolRow(_XML_SYMBOL_Conn4_Uid) = sSymbolUid |
788 |
ElseIf dConn4_x - dPlusMinusValue <= dSymbolConn3_x And dConn4_x + dPlusMinusValue >= dSymbolConn3_x And |
789 |
dConn2_y - dPlusMinusValue <= dSymbolConn3_y And dConn2_y + dPlusMinusValue >= dSymbolConn3_y Then |
790 |
oConnSymbolRow(_XML_SYMBOL_Conn3_Uid) = sUid |
791 |
sConn2_Uid = sSymbolUid |
792 |
oSymbolRow(_XML_SYMBOL_Conn4_Uid) = sSymbolUid |
793 |
ElseIf dConn4_x - dPlusMinusValue <= dSymbolConn4_x And dConn4_x + dPlusMinusValue >= dSymbolConn4_x And |
794 |
dConn2_y - dPlusMinusValue <= dSymbolConn2_y And dConn2_y + dPlusMinusValue >= dSymbolConn2_y Then |
795 |
oConnSymbolRow(_XML_SYMBOL_Conn4_Uid) = sUid |
796 |
sConn2_Uid = sSymbolUid |
797 |
oSymbolRow(_XML_SYMBOL_Conn4_Uid) = sSymbolUid |
798 |
End If |
799 |
End If |
800 |
End If |
801 |
|
802 |
End If |
803 |
End If |
804 |
|
805 |
Next |
806 |
Next |
807 |
|
808 |
oSymbolRow(_XML_SYMBOL_Conn1_Uid) = sConn1_Uid |
809 |
oSymbolRow(_XML_SYMBOL_Conn2_Uid) = sConn2_Uid |
810 |
oSymbolRow(_XML_SYMBOL_Conn3_Uid) = sConn3_Uid |
811 |
oSymbolRow(_XML_SYMBOL_Conn4_Uid) = sConn4_Uid |
812 |
Next |
813 |
Catch ex As Exception |
814 |
Return False |
815 |
End Try |
816 |
|
817 |
Return True |
818 |
End Function |
819 |
|
820 |
|
821 |
|
822 |
#End Region |
823 |
|
824 |
|
825 |
|
826 |
Private Function ConvertPointBystring(ByVal sPoint As String, ByRef dX As Double, ByRef dY As Double) As Boolean |
827 |
Try |
828 |
Dim opointstr As String() = Split(sPoint, ",") |
829 |
If (opointstr.Length > 1) Then |
830 |
If IsNumeric(opointstr(0)) And IsNumeric(opointstr(1)) Then |
831 |
dX = opointstr(0) |
832 |
dY = opointstr(1) |
833 |
Else |
834 |
dX = 0 |
835 |
dY = 0 |
836 |
Return False |
837 |
End If |
838 |
End If |
839 |
Return True |
840 |
Catch ex As Exception |
841 |
Return False |
842 |
End Try |
843 |
End Function |
844 |
Private Function CheckDuplicatePoint(ByVal dLineStart_x As Double, ByVal dLineStart_y As Double, ByVal dLineEnd_x As Double, ByVal dLineEnd_y As Double, |
845 |
ByVal dConnLineStart_x As Double, ByVal dConnLineStart_y As Double, ByVal dConnLineEnd_x As Double, ByVal dConnLineEnd_y As Double) |
846 |
If dLineStart_x = dConnLineStart_x And dLineStart_y = dConnLineStart_y And |
847 |
dLineEnd_x = dConnLineEnd_x And dLineEnd_y = dConnLineEnd_y Then |
848 |
Return False |
849 |
ElseIf dLineStart_x = dConnLineEnd_x And dLineStart_y = dConnLineEnd_y And |
850 |
dLineEnd_x = dConnLineStart_x And dLineEnd_y = dConnLineStart_y Then |
851 |
Return False |
852 |
Else |
853 |
Return True |
854 |
End If |
855 |
End Function |
856 |
End Class |