hytos / DTI_PID / SPPIDConverter / Main.vb @ 8ac8bb85
이력 | 보기 | 이력해설 | 다운로드 (37.4 KB)
1 | 4f359afa | Gyusu | Imports System.IO |
---|---|---|---|
2 | Imports System.Data.SqlClient |
||
3 | Imports System.Data.SQLite |
||
4 | Imports Plaice |
||
5 | Imports Llama |
||
6 | Imports PidA |
||
7 | 962b2464 | Gyusu | |
8 | e282643f | Gyusu | |
9 | Imports System.Threading |
||
10 | |||
11 | 4f359afa | Gyusu | Public Class Main |
12 | |||
13 | Dim _DB As DataTable = New DataTable() |
||
14 | Dim _Placement As New Placement |
||
15 | Dim _DWG_X = 0.84 '0.695 '1 ' |
||
16 | Dim _DWG_Y = 0.594 '0.585 '0.8 ' |
||
17 | |||
18 | e282643f | Gyusu | Dim _IMG_X = 9933 |
19 | Dim _IMG_Y = 7016 |
||
20 | 4f359afa | Gyusu | |
21 | 31d47a80 | Gyusu | 'Drawing 전역변수 |
22 | Dim _objPIDADrawing As Object |
||
23 | e282643f | Gyusu | '현재선택한 폴더경로 |
24 | Dim _selectFolderPath As String |
||
25 | |||
26 | Private _Main_trd As Thread |
||
27 | |||
28 | |||
29 | 31d47a80 | Gyusu | |
30 | 4f359afa | Gyusu | Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load |
31 | 962b2464 | Gyusu | SetUpListViewColumns() |
32 | LoadTree() |
||
33 | e282643f | Gyusu | If My.Settings.DBPath <> "" And My.Settings.Plant_Hierarchy <> "" Then |
34 | Dim sDBPath As String = My.Settings.DBPath |
||
35 | LoadDB(sDBPath) |
||
36 | 'TestPID() |
||
37 | Else |
||
38 | MessageBox.Show("설정값을 먼저 확인해주세요") |
||
39 | End If |
||
40 | End Sub |
||
41 | |||
42 | Public Function GetDrawingInfo(ByVal errorList As ArrayList) |
||
43 | Dim ds As Llama.LMADataSource |
||
44 | ds = New Llama.LMADataSource |
||
45 | Dim lmaItem As Llama.LMAItem |
||
46 | |||
47 | For i = 0 To errorList.Count - 1 |
||
48 | lmaItem = ds.GetModelItem(errorList.Item(i).m_strSPID()).AsLMAItem |
||
49 | Dim drawingInfo As DrawingInfo |
||
50 | drawingInfo = GetDrawingName(lmaItem.ItemType, lmaItem.Id) |
||
51 | errorList.Item(i).m_LMAItem = lmaItem |
||
52 | errorList.Item(i).m_strDrawingName = drawingInfo.mDrawingName |
||
53 | errorList.Item(i).m_strDrawingPath = drawingInfo.mPath |
||
54 | Next |
||
55 | End Function |
||
56 | Private mDataSource As Object |
||
57 | |||
58 | 'Public Sub New() |
||
59 | |||
60 | ' ' mDataSource.ProjectNumber = m_Information.InfoSite.SiteName |
||
61 | ' ' mDataSource.SiteNode = m_Information.InfoProject.ProjectINI |
||
62 | ' 'm_Information = SPPIDClass.Information.GetInstance() |
||
63 | |||
64 | ' 'If m_Information.InfoProject.ProjectVersion = SPPIDClass.InfoProject.SPPID_43 Then |
||
65 | ' ' 'SPPID4.3용 |
||
66 | ' ' mDataSource.ProjectNumber = m_Information.InfoSite.SiteName |
||
67 | ' 'Else |
||
68 | ' ' 'SPPID2007, SPPID2009용 |
||
69 | ' ' mDataSource.ProjectNumber = m_Information.InfoSite.SiteName & "!" & m_Information.InfoSite.SiteName |
||
70 | ' 'End If |
||
71 | |||
72 | ' ' mDataSource.SiteNode = m_Information.InfoProject.ProjectINI |
||
73 | ' ' mDataSource.ProjectNumber = m_Information.InfoSite.SiteName & "!" & m_Information.InfoSite.SiteName |
||
74 | ' '#If LATE_BINDING Then |
||
75 | ' ' mInstruments = CreateObject("Llama.LMInstruments", "") |
||
76 | ' ' mPipingComps = CreateObject("Llama.LMPipingComps", "") |
||
77 | ' ' mVessels = CreateObject("Llama.LMVessels", "") |
||
78 | ' ' mDrawings = CreateObject("Llama.LMDrawings", "") |
||
79 | ' ' mEquipments = CreateObject("Llama.LMEquipments", "") |
||
80 | ' ' mExchangers = CreateObject("Llama.LMExchangers", "") |
||
81 | ' ' mMechanicals = CreateObject("Llama.LMMechanicals", "") |
||
82 | ' ' mNozzles = CreateObject("Llama.LMNozzles", "") |
||
83 | ' ' mPipeRuns = CreateObject("Llama.LMPipeRuns", "") |
||
84 | ' ' mEquipmentOthers = CreateObject("Llama.LMEquipmentOthers", "") |
||
85 | ' '#Else |
||
86 | ' ' mInstruments = New Llama.LMInstruments |
||
87 | ' ' mPipingComps = New Llama.LMPipingComps |
||
88 | ' ' mVessels = New Llama.LMVessels |
||
89 | ' ' mDrawings = New Llama.LMDrawings |
||
90 | ' ' mEquipments = New Llama.LMEquipments |
||
91 | ' ' mExchangers = New Llama.LMExchangers |
||
92 | ' ' mMechanicals = New Llama.LMMechanicals |
||
93 | ' ' mNozzles = New Llama.LMNozzles |
||
94 | ' ' mPipeRuns = New Llama.LMPipeRuns |
||
95 | ' ' mEquipmentOthers = New Llama.LMEquipmentOthers |
||
96 | ' '#End If |
||
97 | 'End Sub |
||
98 | Public Function GetDrawingName(ByVal itemType As String, ByVal itemName As String) As DrawingInfo |
||
99 | |||
100 | Dim objFilter As Object |
||
101 | objFilter = CreateObject("Llama.LMAFilter", "") |
||
102 | |||
103 | Dim drawingInfo As DrawingInfo |
||
104 | drawingInfo = New DrawingInfo |
||
105 | |||
106 | objFilter.Criteria.AddNew("FirstOne") |
||
107 | objFilter.Criteria.Item("FirstOne").SourceAttributeName = "SP_ID" |
||
108 | objFilter.Critedkria.Item("FirstOne").ValueAttribute = itemName |
||
109 | |||
110 | objFilter.Criteria.Item("FirstOne").Operator = "=" |
||
111 | objFilter.Criteria.AddNew("SecondOne") |
||
112 | objFilter.Criteria.Item("SecondOne").SourceAttributeName = "ItemStatus" |
||
113 | objFilter.Criteria.Item("SecondOne").ValueAttribute = 1 |
||
114 | objFilter.Criteria.Item("SecondOne").Operator = "=" |
||
115 | objFilter.Criteria.Item("SecondOne").Conjunctive = -1 |
||
116 | objFilter.ItemType = itemType |
||
117 | |||
118 | Dim PlantItems As Object |
||
119 | PlantItems = CreateObject("Llama.LMPlantItems", "") |
||
120 | PlantItems.Collect(mDataSource, Filter:=objFilter) |
||
121 | |||
122 | If PlantItems.Count = 0 Then |
||
123 | drawingInfo.mSpID = "PlantStockpile" |
||
124 | End If |
||
125 | |||
126 | For Each PlantItem In PlantItems |
||
127 | |||
128 | 'If Not PlantItem.Representations.Nth(1).DrawingID.Value.ToString().Equals("0") Then |
||
129 | Try |
||
130 | drawingInfo.mDrawingName = PlantItem.Representations.Nth(1).DrawingObject.Attributes("Name").Value |
||
131 | drawingInfo.mSpID = PlantItem.Representations.Nth(1).DrawingID |
||
132 | drawingInfo.mPath = PlantItem.Representations.Nth(1).DrawingObject.Attributes("Path").Value |
||
133 | Debug.WriteLine("DrawingName : " & drawingInfo.mDrawingName & ", SPID : " & drawingInfo.mSpID & ", Path : " & drawingInfo.mPath) |
||
134 | Catch ex As Exception |
||
135 | |||
136 | End Try |
||
137 | |||
138 | 'End If |
||
139 | |||
140 | Next |
||
141 | |||
142 | Return drawingInfo |
||
143 | |||
144 | End Function |
||
145 | |||
146 | Private Sub TestPID() |
||
147 | |||
148 | Try |
||
149 | |||
150 | Dim datasource As LMADataSource |
||
151 | Dim objPIDAutoApp As Object |
||
152 | Dim objPIDADrawing As Object |
||
153 | Dim objDrawing As LMDrawing |
||
154 | Dim objDrawings As LMDrawings |
||
155 | datasource = New LMADataSource |
||
156 | |||
157 | |||
158 | Dim oObj As Object = Nothing |
||
159 | objDrawing = datasource.GetDrawing(oObj) |
||
160 | objDrawings = New LMDrawings |
||
161 | objDrawings.Collect(datasource) |
||
162 | objPIDAutoApp = GetObject(, "SmartPlantPID.Application") '// CreateObject("PIDAutomation.Application") |
||
163 | For Each objDrawing In objDrawings |
||
164 | If objDrawing.Attributes("ItemStatus").Index = 1 Then '1 stands for Active |
||
165 | objPIDADrawing = objPIDAutoApp.Drawings.OpenDrawing(objDrawing.Attributes("Name")) |
||
166 | If Not objPIDADrawing Is Nothing Then |
||
167 | MessageBox.Show("Drawing " & objDrawing.Attributes("Name").Value & " is opened!") |
||
168 | objPIDADrawing.CloseDrawing |
||
169 | End If |
||
170 | End If |
||
171 | Next |
||
172 | objPIDAutoApp.Quit |
||
173 | objPIDAutoApp = Nothing |
||
174 | objPIDADrawing = Nothing |
||
175 | objDrawing = Nothing |
||
176 | objDrawings = Nothing |
||
177 | Catch ex As Exception |
||
178 | |||
179 | End Try |
||
180 | |||
181 | |||
182 | 962b2464 | Gyusu | |
183 | End Sub |
||
184 | e282643f | Gyusu | Public Function SetActiveSiteFromConfigInfo(ByVal strActiveSite As String) As Boolean |
185 | |||
186 | On Error GoTo errHandler |
||
187 | Dim objConfigInfo As Object 'interopigrConfigInfo412.igrConfigInfo |
||
188 | objConfigInfo = CreateObject("interopigrConfigInfo412.igrConfigInfo", "") |
||
189 | If Not objConfigInfo Is Nothing Then |
||
190 | objConfigInfo.ApplicationName = "SmartPlantManager" |
||
191 | objConfigInfo.SetConfigString(3, "SmartPlant Manager", "SiteServer", strActiveSite) |
||
192 | SetActiveSiteFromConfigInfo = True |
||
193 | End If |
||
194 | objConfigInfo = Nothing |
||
195 | |||
196 | Exit Function |
||
197 | |||
198 | errHandler: |
||
199 | ' LogAndRaiseError ModuleName & "::GetConfigInfo " |
||
200 | End Function |
||
201 | 962b2464 | Gyusu | Private Sub LoadTree() |
202 | |||
203 | Dim i As Integer |
||
204 | Dim j() As String |
||
205 | j = Directory.GetLogicalDrives |
||
206 | For i = 0 To UBound(j) |
||
207 | |||
208 | Dim cdrive As System.IO.DriveInfo |
||
209 | cdrive = My.Computer.FileSystem.GetDriveInfo(j(i).ToString) |
||
210 | |||
211 | Select Case cdrive.DriveType |
||
212 | Case DriveType.Fixed |
||
213 | Tree_XMLFiles.Nodes.Add(j(i), j(i).ToString, 3) |
||
214 | Case DriveType.CDRom |
||
215 | Tree_XMLFiles.Nodes.Add(j(i), j(i).ToString, 11) |
||
216 | Case DriveType.Network |
||
217 | Tree_XMLFiles.Nodes.Add(j(i), j(i).ToString, 5) |
||
218 | Case DriveType.Removable |
||
219 | Tree_XMLFiles.Nodes.Add(j(i), j(i).ToString, 12) |
||
220 | End Select |
||
221 | |||
222 | Next |
||
223 | End Sub |
||
224 | |||
225 | Private Sub SetUpListViewColumns() |
||
226 | ' TODO: Add code to set up listview columns |
||
227 | ListView_File.Columns.Add(" Name ") |
||
228 | ' ListView_File.Columns.Add(" Size ") |
||
229 | ' ListView_File.Columns.Add(" Extension ") |
||
230 | ListView_File.Columns.Add(" Date Modified ") |
||
231 | SetView(View.Details) |
||
232 | 4f359afa | Gyusu | End Sub |
233 | |||
234 | 962b2464 | Gyusu | |
235 | Private Sub SetView(ByVal View As System.Windows.Forms.View) |
||
236 | ListView_File.View = View.Details |
||
237 | End Sub |
||
238 | |||
239 | 4f359afa | Gyusu | |
240 | |||
241 | Private Sub InitXMLTree(ByVal sFolderPath As String) |
||
242 | Tree_XMLFiles.Nodes.Clear() |
||
243 | Dim oRootNode As TreeNode = Tree_XMLFiles.Nodes.Add("XML") |
||
244 | '.XML 만 로드 |
||
245 | Dim sfileEntries As String() = Directory.GetFiles(sFolderPath, "*.xml") |
||
246 | ' Process the list of files found in the directory. |
||
247 | Dim sfileName As String |
||
248 | For Each sfileName In sfileEntries |
||
249 | oRootNode.Nodes.Add(sfileName) |
||
250 | Next sfileName |
||
251 | oRootNode.ExpandAll() |
||
252 | End Sub |
||
253 | |||
254 | 1229ad76 | Gyusu | |
255 | |||
256 | |||
257 | Private Function CreateDwg(ByVal oDwgName As String) As Boolean |
||
258 | Dim objPIDADrawing As Object = Nothing |
||
259 | Dim objPIDAutoApp As Object = Nothing |
||
260 | Dim datasource As LMADataSource = Nothing |
||
261 | 4f359afa | Gyusu | Try |
262 | Dim DrawingNumber As String |
||
263 | Dim DrawingName As String |
||
264 | 1229ad76 | Gyusu | Dim sPlantGroupName As String = "Test" |
265 | Dim sTemplateName As String = "\\desktop-9vlq0dp\Test02Site\P188943_SPPID_Plant\P&ID Reference Data\Template Files\Gazprom Project.pid" |
||
266 | Dim objDrawing As LMDrawing |
||
267 | Dim objDrawings As LMDrawings |
||
268 | objDrawings = New LMDrawings |
||
269 | datasource = New LMADataSource |
||
270 | Debug.Print(datasource.ProjectNumber) |
||
271 | Debug.Print(datasource.SiteNode) |
||
272 | Debug.Print(datasource.IsSatellite) |
||
273 | Debug.Print(datasource.GetSystemEditingToolbarSetting) |
||
274 | objDrawings.Collect(datasource) |
||
275 | Dim sPath As String = "\\desktop-9vlq0dp\Test02Site\P188943_SPPID_Plant\Plant_Hierarchy\8121\8121-1\188943-8121-PR-DW-011001.pid" |
||
276 | objPIDAutoApp = CreateObject("PIDAutomation.Application") |
||
277 | For Each objDrawing In objDrawings |
||
278 | If objDrawing.Attributes("ItemStatus").Index = 1 Then '1 stands for Active |
||
279 | objPIDADrawing = objPIDAutoApp.Drawings.OpenDrawing(sPath) |
||
280 | If Not objPIDADrawing Is Nothing Then |
||
281 | |||
282 | objPIDADrawing.CloseDrawing |
||
283 | End If |
||
284 | End If |
||
285 | Next |
||
286 | 4f359afa | Gyusu | |
287 | Dim extension As String = Path.GetExtension(oDwgName) |
||
288 | oDwgName = oDwgName.Replace(extension, "") |
||
289 | 1229ad76 | Gyusu | |
290 | 4f359afa | Gyusu | objPIDAutoApp = CreateObject("PIDAutomation.Application") |
291 | 1229ad76 | Gyusu | |
292 | 'For Each objDrawing In objPIDAutoApp.Drawings |
||
293 | ' objDrawing.CloseDrawing(True) |
||
294 | 'Next |
||
295 | |||
296 | objPIDAutoApp.Drawings.OpenDrawing(oDwgName + ".pid") |
||
297 | |||
298 | objPIDAutoApp.ActiveWindow.Fit() |
||
299 | |||
300 | Return True |
||
301 | Catch ex As Exception |
||
302 | If objPIDADrawing IsNot Nothing Then |
||
303 | 4f359afa | Gyusu | objPIDADrawing.CloseDrawing |
304 | End If |
||
305 | 1229ad76 | Gyusu | If objPIDAutoApp IsNot Nothing Then |
306 | objPIDAutoApp.Quit |
||
307 | End If |
||
308 | datasource = Nothing |
||
309 | 4f359afa | Gyusu | objPIDAutoApp = Nothing |
310 | objPIDADrawing = Nothing |
||
311 | Return False |
||
312 | End Try |
||
313 | 1229ad76 | Gyusu | If objPIDADrawing IsNot Nothing Then |
314 | objPIDADrawing.CloseDrawing |
||
315 | End If |
||
316 | 4f359afa | Gyusu | |
317 | End Function |
||
318 | |||
319 | 1229ad76 | Gyusu | |
320 | 4f359afa | Gyusu | #Region "Load Pipe" |
321 | Private Function LoadPipe_DT() As DataTable |
||
322 | Dim oDt As New DataTable |
||
323 | oDt.Columns.Add("start_x") |
||
324 | oDt.Columns.Add("start_y") |
||
325 | oDt.Columns.Add("end_x") |
||
326 | oDt.Columns.Add("end_y") |
||
327 | oDt.Columns.Add("Symbol") |
||
328 | Return oDt |
||
329 | |||
330 | End Function |
||
331 | |||
332 | #End Region |
||
333 | |||
334 | #Region "Load Symbol" |
||
335 | Private Function LoadSymbol_DT() As DataTable |
||
336 | Dim oDt As New DataTable |
||
337 | oDt.Columns.Add("Name") |
||
338 | oDt.Columns.Add("x") |
||
339 | oDt.Columns.Add("y") |
||
340 | oDt.Columns.Add("Angle") |
||
341 | oDt.Columns.Add("Symbol") |
||
342 | oDt.Columns.Add("Text") |
||
343 | Return oDt |
||
344 | End Function |
||
345 | |||
346 | #End Region |
||
347 | |||
348 | Private Function GetSymbolMapping(ByVal oSymbolName As String) As String |
||
349 | Dim oSystemPath As String = "" |
||
350 | e282643f | Gyusu | If _DB.Rows.Count > 0 Then |
351 | Dim oSelectRow() As DataRow = _DB.Select("[pid_symbolname] = '" + oSymbolName + "'") |
||
352 | If oSelectRow.Length = 1 Then |
||
353 | oSystemPath = oSelectRow(0).Item("sppid_systempath").ToString() |
||
354 | End If |
||
355 | 4f359afa | Gyusu | End If |
356 | Return oSystemPath |
||
357 | End Function |
||
358 | |||
359 | e282643f | Gyusu | |
360 | 4f359afa | Gyusu | Private Function LoadSymbolInXml(ByVal sXmlPath As String) As DataTable |
361 | Dim oDt As DataTable = LoadSymbol_DT() |
||
362 | Dim oElement As XElement = XElement.Load(sXmlPath) |
||
363 | If oElement IsNot Nothing Then |
||
364 | For Each symbols As Object In oElement.Elements("SYMBOLS") |
||
365 | For Each page As Object In symbols.Elements("SYMBOL") |
||
366 | Dim oAddrow As DataRow = oDt.NewRow() |
||
367 | Dim oObj As XElement = page.Element("NAME") |
||
368 | Dim oSymbol = oObj.Value |
||
369 | oObj = page.Element("TEXT") |
||
370 | 962b2464 | Gyusu | Dim oText = oObj.Value |
371 | oObj = page.Element("CLASS") |
||
372 | Dim oClass = oObj.Value |
||
373 | oObj = page.Element("TYPE") |
||
374 | Dim oType = oObj.Value |
||
375 | oObj = page.Element("ITEM") |
||
376 | Dim oItem = oObj.Value |
||
377 | ' Dim oSymbolPath As String = "\" + oSymbol + "\" + oClass + "\" + oType + "\" + oItem + ".sym" |
||
378 | Dim oSymbolPath As String = GetSymbolMapping(oItem) |
||
379 | oObj = page.Element("ORIGINALPOINT") |
||
380 | Dim sOriginPoint = oObj.Value |
||
381 | oObj = page.Element("ANGLE") |
||
382 | Dim oAngle = oObj.Value |
||
383 | Dim oSplitPos As String() = sOriginPoint.Split(",") |
||
384 | Dim oX As Double = 0.0 |
||
385 | Dim oY As Double = 0.0 |
||
386 | If IsNumeric(oSplitPos(0)) Then |
||
387 | oX = Double.Parse(oSplitPos(0)) |
||
388 | End If |
||
389 | If IsNumeric(oSplitPos(1)) Then |
||
390 | oY = Double.Parse(oSplitPos(1)) |
||
391 | End If |
||
392 | e282643f | Gyusu | ConvertPoint(oX, oY, _IMG_X, _IMG_Y) |
393 | 4f359afa | Gyusu | oAddrow("X") = oX '+ 0.05 |
394 | 962b2464 | Gyusu | oAddrow("Y") = oY |
395 | oAddrow("Angle") = oAngle |
||
396 | oAddrow("Symbol") = oSymbolPath |
||
397 | oAddrow("Text") = oText |
||
398 | oAddrow("Name") = oSymbol |
||
399 | 4f359afa | Gyusu | oDt.Rows.Add(oAddrow) |
400 | Next |
||
401 | Next |
||
402 | End If |
||
403 | e282643f | Gyusu | Return oDt |
404 | 4f359afa | Gyusu | End Function |
405 | |||
406 | |||
407 | |||
408 | Private Function LoadPipeInXml(ByVal sXmlPath As String) As DataTable |
||
409 | Try |
||
410 | Dim oDt As DataTable = LoadPipe_DT() |
||
411 | Dim oElement As XElement = XElement.Load(sXmlPath) |
||
412 | If oElement IsNot Nothing Then |
||
413 | Dim DWGElement As XElement = oElement.Element("DWGNAME") |
||
414 | Dim DWGNAME = DWGElement.Value |
||
415 | Dim sXY As XElement = oElement.Element("SIZE") |
||
416 | Dim sSize = sXY.Value |
||
417 | Dim oSplitDWGPos As String() = sSize.Split(",") |
||
418 | |||
419 | If IsNumeric(oSplitDWGPos(0)) Then |
||
420 | _IMG_X = Double.Parse(oSplitDWGPos(0)) |
||
421 | End If |
||
422 | If IsNumeric(oSplitDWGPos(1)) Then |
||
423 | _IMG_Y = Double.Parse(oSplitDWGPos(1)) |
||
424 | End If |
||
425 | |||
426 | For Each pipes As Object In oElement.Elements("IMGLINES") |
||
427 | For Each pipe As Object In pipes.Elements("IMGLINE") |
||
428 | Dim oAddrow As DataRow = oDt.NewRow() |
||
429 | Dim oObj As XElement = pipe.Element("ITEM") |
||
430 | Dim oItem = oObj.Value |
||
431 | ' Dim oSymbolPath As String = "\" + oSymbol + "\" + oClass + "\" + oType + "\" + oItem + ".sym" |
||
432 | Dim oSymbolPath As String = GetSymbolMapping(oItem) |
||
433 | oObj = pipe.Element("START") |
||
434 | Dim oStartPoint = oObj.Value |
||
435 | Dim oSplitPos As String() = oStartPoint.Split(",") |
||
436 | Dim oStartpos_X As Double = 0.0 |
||
437 | Dim oStartpos_Y As Double = 0.0 |
||
438 | If IsNumeric(oSplitPos(0)) Then |
||
439 | oStartpos_X = Double.Parse(oSplitPos(0)) |
||
440 | End If |
||
441 | If IsNumeric(oSplitPos(1)) Then |
||
442 | oStartpos_Y = Double.Parse(oSplitPos(1)) |
||
443 | End If |
||
444 | |||
445 | ConvertPoint(oStartpos_X, oStartpos_Y, _DWG_X, _DWG_Y) |
||
446 | oObj = pipe.Element("END") |
||
447 | Dim oEndPoint = oObj.Value |
||
448 | oSplitPos = oEndPoint.Split(",") |
||
449 | Dim oEndpos_X As Double = 0.0 |
||
450 | Dim oEndpos_Y As Double = 0.0 |
||
451 | If IsNumeric(oSplitPos(0)) Then |
||
452 | oEndpos_X = Double.Parse(oSplitPos(0)) |
||
453 | End If |
||
454 | If IsNumeric(oSplitPos(1)) Then |
||
455 | oEndpos_Y = Double.Parse(oSplitPos(1)) |
||
456 | End If |
||
457 | ConvertPoint(oEndpos_X, oEndpos_Y, _DWG_X, _DWG_Y) |
||
458 | |||
459 | oAddrow("start_x") = oStartpos_X '+ 0.05 |
||
460 | oAddrow("start_y") = oStartpos_Y |
||
461 | oAddrow("end_x") = oEndpos_X |
||
462 | oAddrow("end_y") = oEndpos_Y |
||
463 | oAddrow("Symbol") = oSymbolPath |
||
464 | oDt.Rows.Add(oAddrow) |
||
465 | Next |
||
466 | Next |
||
467 | |||
468 | End If |
||
469 | |||
470 | |||
471 | Return oDt |
||
472 | Catch ex As Exception |
||
473 | Return Nothing |
||
474 | End Try |
||
475 | End Function |
||
476 | |||
477 | |||
478 | Private Sub ConvertPoint(ByRef dX As Double, ByRef dY As Double, ByVal dDwgX As Double, ByVal dDwgY As Double) |
||
479 | |||
480 | Dim calcx As Double = 0 |
||
481 | Dim calcy As Double = 0 |
||
482 | calcx = (dX * _DWG_X) / dDwgX 'Math.Round((dX * _DWG_X) / dDwgX, 2) |
||
483 | calcy = _DWG_Y - (dY * _DWG_Y) / dDwgY '_DWG_Y - Math.Round((dY * _DWG_Y) / dDwgY, 2) |
||
484 | dX = calcx |
||
485 | dY = calcy |
||
486 | End Sub |
||
487 | |||
488 | Private Function AutoConverting(ByVal oPipe_Dt As DataTable, ByVal oSymbol_Dt As DataTable) As Boolean |
||
489 | e282643f | Gyusu | Dim iTotalCount As Double = oPipe_Dt.Rows.Count + oSymbol_Dt.Rows.Count |
490 | Dim iSymbolcount As Double = 0 |
||
491 | Dim objPlacement As Object |
||
492 | Dim lobjDatasource As Object |
||
493 | objPlacement = CreateObject("Plaice.Placement", "") |
||
494 | |||
495 | lobjDatasource = objPlacement.PIDDataSource |
||
496 | lobjDatasource.BeginTransaction() |
||
497 | |||
498 | ' datasource = objPlacement.PIDDataSource |
||
499 | 'Dim iPipecnt As Integer = 0 |
||
500 | |||
501 | If oPipe_Dt IsNot Nothing Then |
||
502 | For Each oRow As DataRow In oPipe_Dt.Rows |
||
503 | Dim oposition As String = oRow("position").ToString() |
||
504 | Dim oSymbol As String = oRow("Symbol").ToString() |
||
505 | Dim oSplitStr As String() = Split(oposition, " ") |
||
506 | Dim objConnector As LMConnector |
||
507 | Dim objInputs As PlaceRunInputs |
||
508 | objInputs = New PlaceRunInputs |
||
509 | |||
510 | For Each sposition As String In oSplitStr |
||
511 | Dim opointstr As String() = Split(sposition, ",") |
||
512 | |||
513 | If (opointstr.Length > 1) Then |
||
514 | If IsNumeric(opointstr(0)) And IsNumeric(opointstr(1)) Then |
||
515 | Dim ox As Double = opointstr(0) |
||
516 | Dim oy As Double = opointstr(1) |
||
517 | ConvertPoint(ox, oy, _IMG_X, _IMG_Y) |
||
518 | objInputs.AddPoint(ox, oy) |
||
519 | End If |
||
520 | 4f359afa | Gyusu | End If |
521 | e282643f | Gyusu | Next |
522 | Dim objItem As LMAItem |
||
523 | objItem = objPlacement.PIDCreateItem(oSymbol) |
||
524 | objConnector = objPlacement.PIDPlaceRun(objItem, objInputs) |
||
525 | 4f359afa | Gyusu | |
526 | e282643f | Gyusu | 'Dim objPipeRun As LMPipeRun = datasource.GetPipeRun(objConnector.ModelItemID) |
527 | 'objPipeRun.Attributes("OperFluidCode").Value = "AFS" |
||
528 | 'objPipeRun.Commit() |
||
529 | iSymbolcount = iSymbolcount + 1 |
||
530 | 4f359afa | Gyusu | |
531 | |||
532 | |||
533 | |||
534 | e282643f | Gyusu | Next |
535 | End If |
||
536 | 4f359afa | Gyusu | |
537 | |||
538 | |||
539 | e282643f | Gyusu | For Each oRow As DataRow In oSymbol_Dt.Rows |
540 | 4f359afa | Gyusu | |
541 | e282643f | Gyusu | Try |
542 | Dim oSymbol As String = oRow("Symbol").ToString() |
||
543 | Dim oType As String = oRow("Name").ToString() |
||
544 | Dim oText As String = oRow("Text").ToString() |
||
545 | Dim oX As Double = 0.0 |
||
546 | Dim oY As Double = 0.0 |
||
547 | If IsNumeric(oRow("x").ToString()) Then |
||
548 | oX = Double.Parse(oRow("x").ToString()) |
||
549 | End If |
||
550 | If IsNumeric(oRow("y").ToString()) Then |
||
551 | oY = Double.Parse(oRow("y").ToString()) |
||
552 | End If |
||
553 | Dim oAngle As Double = 0.0 |
||
554 | If IsNumeric(oRow("Angle").ToString()) Then |
||
555 | oAngle = Double.Parse(oRow("Angle").ToString()) |
||
556 | End If |
||
557 | ' oSymbol = "\INSTRUMENTation\SYSTEM FUNCTIONS\D C S\DCS FUNC ACCESS IN PRIME LOC.sym" |
||
558 | If oSymbol <> "" Then |
||
559 | If oType = "INSTRUMENTATION" Then |
||
560 | Dim sTagsuffix As String = "" |
||
561 | Dim sTagSequenceNo As String = "" |
||
562 | Dim sMeasuredVariableCode As String = "" |
||
563 | Dim sInstrumentTypeModifier As String = "" |
||
564 | If oText <> "" Then |
||
565 | If oText.Contains(",") Then |
||
566 | Dim splitstr() As String = oText.Split(",") |
||
567 | For i = 0 To splitstr.Count - 1 |
||
568 | If i = 0 Then |
||
569 | sMeasuredVariableCode = Mid(splitstr(i), 1, 1) |
||
570 | sTagSequenceNo = Mid(splitstr(i), 2, Len(splitstr(i))) |
||
571 | Else |
||
572 | If Len(splitstr(i)) = 1 Then |
||
573 | sInstrumentTypeModifier = splitstr(i) |
||
574 | ElseIf Len(splitstr(i)) = 0 Then |
||
575 | |||
576 | ElseIf Len(splitstr(i)) > 1 Then |
||
577 | sInstrumentTypeModifier = Mid(splitstr(i), 1, 1) |
||
578 | sTagsuffix = Mid(splitstr(i), 2, Len(splitstr(i))) |
||
579 | End If |
||
580 | End If |
||
581 | Next |
||
582 | Else |
||
583 | sMeasuredVariableCode = Mid(oText, 1, 1) |
||
584 | sTagSequenceNo = Mid(oText, 2, Len(oText)) |
||
585 | End If |
||
586 | 4f359afa | Gyusu | |
587 | e282643f | Gyusu | End If |
588 | 4f359afa | Gyusu | |
589 | e282643f | Gyusu | Dim objInstrSym As LMSymbol |
590 | objInstrSym = objPlacement.PIDPlaceSymbol(oSymbol, oX, oY, , oAngle) |
||
591 | Dim objInstr As LMInstrument |
||
592 | objInstr = lobjDatasource.GetInstrument(objInstrSym.ModelItemID) |
||
593 | 4f359afa | Gyusu | |
594 | e282643f | Gyusu | Dim objItem As LMAItem |
595 | objItem = objPlacement.PIDCreateItem(oSymbol) |
||
596 | 4f359afa | Gyusu | |
597 | e282643f | Gyusu | objInstr.Attributes("MeasuredVariableCode").Value = sMeasuredVariableCode |
598 | objInstr.Attributes("InstrumentTypeModifier").Value = sInstrumentTypeModifier |
||
599 | objInstr.Attributes("TagSuffix").Value = sTagsuffix |
||
600 | objInstr.Attributes("TagSequenceNo").Value = sTagSequenceNo |
||
601 | objInstr.Commit() |
||
602 | ElseIf oType = "GATE VALVE WITH PLUG" Then |
||
603 | 4f359afa | Gyusu | |
604 | e282643f | Gyusu | ElseIf oType = "MEDIUM 1D 1TO1" Then |
605 | 4f359afa | Gyusu | |
606 | 1: |
||
607 | e282643f | Gyusu | Else |
608 | objPlacement.PIDPlaceSymbol(oSymbol, oX, oY, , oAngle) |
||
609 | 4f359afa | Gyusu | |
610 | e282643f | Gyusu | End If |
611 | iSymbolcount = iSymbolcount + 1 |
||
612 | Else |
||
613 | 4f359afa | Gyusu | End If |
614 | e282643f | Gyusu | Catch ex As Exception |
615 | 4f359afa | Gyusu | |
616 | e282643f | Gyusu | End Try |
617 | Dim dCalcProgressValue As Double = (iSymbolcount / iTotalCount) * 100 |
||
618 | SetProgressbar(ProgressBar_Status, dCalcProgressValue) |
||
619 | ' ProgressBar_Status.Value = (iSymbolcount / iTotalCount) * 100 |
||
620 | 4f359afa | Gyusu | Next |
621 | |||
622 | e282643f | Gyusu | MsgBox("symbol: " & iSymbolcount & "개 변환완료") |
623 | ' MsgBox("symbol: " & iSymbolcount & "개, pipe : " & iPipecnt & "개 변환완료") |
||
624 | 4f359afa | Gyusu | End Function |
625 | |||
626 | |||
627 | Private Sub Tree_XMLFiles_AfterCheck(sender As Object, e As TreeViewEventArgs) Handles Tree_XMLFiles.AfterCheck |
||
628 | If e.Node.Checked = True Then |
||
629 | For Each oNode As TreeNode In e.Node.Nodes |
||
630 | oNode.Checked = True |
||
631 | Next |
||
632 | Else |
||
633 | For Each oNode As TreeNode In e.Node.Nodes |
||
634 | oNode.Checked = False |
||
635 | Next |
||
636 | End If |
||
637 | End Sub |
||
638 | |||
639 | Private Sub LoadDB(ByVal sDBPath As String) |
||
640 | |||
641 | Try |
||
642 | Dim sConnectionstring As String = "Data Source=" & sDBPath & ";Version=3;Synchronous=Off;UTF8Encoding=True;" |
||
643 | Dim conn As SQLiteConnection = New SQLiteConnection(sConnectionstring) |
||
644 | conn.Open() |
||
645 | Dim sQuery As String = "Select * from Mapping" |
||
646 | Dim cmd As SQLiteCommand = conn.CreateCommand() |
||
647 | Dim adapter As SQLiteDataAdapter = New SQLiteDataAdapter(sQuery, conn) |
||
648 | Dim oDataSet As DataSet = New DataSet() |
||
649 | adapter.Fill(oDataSet) |
||
650 | _DB = oDataSet.Tables(0) |
||
651 | Catch ex As Exception |
||
652 | |||
653 | End Try |
||
654 | |||
655 | |||
656 | End Sub |
||
657 | |||
658 | 962b2464 | Gyusu | Dim first_start As Boolean = False |
659 | Dim folders_path As String |
||
660 | |||
661 | Private Sub Tree_XMLFiles_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles Tree_XMLFiles.AfterSelect |
||
662 | If first_start = False Then Exit Sub |
||
663 | Dim pa = e.Node.FullPath.ToString |
||
664 | |||
665 | printfilesfolders_here(pa, e.Node) |
||
666 | |||
667 | displayfiles(pa) |
||
668 | |||
669 | ''be careful ! displayfils comes BEFORE you change // to / in pa !!! |
||
670 | Dim coco As String = "" |
||
671 | coco = pa.ToString |
||
672 | coco = coco.Replace("\\", "\") |
||
673 | Me.Text = coco |
||
674 | folders_path = coco |
||
675 | End Sub |
||
676 | |||
677 | Sub printfilesfolders_here(ByVal path As String, ByRef itree As TreeNode) |
||
678 | |||
679 | Dim foldername As String |
||
680 | Dim filename As String |
||
681 | itree.Nodes.Clear() |
||
682 | On Error GoTo eee |
||
683 | For Each foldername In Directory.GetDirectories(path) |
||
684 | On Error GoTo eee |
||
685 | Dim jj = foldername.LastIndexOf("\") |
||
686 | Dim jj1 = foldername.Length - jj |
||
687 | Dim foldr = foldername.Substring((jj + 1), (jj1 - 1)) |
||
688 | itree.Nodes.Add(foldr, foldr) |
||
689 | Next ' if you put this next at the end of procedure recursive will be done on first folder only |
||
690 | Exit Sub |
||
691 | eee: |
||
692 | End Sub |
||
693 | |||
694 | Sub displayfiles(ByVal path As String) |
||
695 | |||
696 | Dim lvItem As ListViewItem |
||
697 | ListView_File.Items.Clear() |
||
698 | e282643f | Gyusu | |
699 | 962b2464 | Gyusu | ' lvItem = ListView.Items.Add("ListViewItem1") |
700 | ' lvItem.SubItems.AddRange(New String() {"Size", "extention", "date modified"}) |
||
701 | |||
702 | Dim filename As String |
||
703 | On Error GoTo wwq |
||
704 | ' Directory.GetFiles(path).Length. |
||
705 | 62f4d5df | Gyusu | 'Me.ProgressBar_Status.Maximum = Directory.GetFiles(path).Length + 1 |
706 | 'Me.ProgressBar_Status.Value = 0 |
||
707 | 962b2464 | Gyusu | For Each filename In Directory.GetFiles(path) |
708 | On Error GoTo wwq |
||
709 | Dim jj_ = filename.LastIndexOf("\") |
||
710 | Dim jj1_ = filename.Length - jj_ |
||
711 | Dim fil = filename.Substring((jj_ + 1), (jj1_ - 1)) |
||
712 | If fil.Contains(".xml") Then |
||
713 | 62f4d5df | Gyusu | ' Me.ProgressBar_Status.Value = Me.ProgressBar_Status.Value + 1 |
714 | 962b2464 | Gyusu | ' ListView.Items.Add(fil, 13) ''old 13 28 |
715 | lvItem = ListView_File.Items.Add(fil, 13) '2 5 7 work, 0 alos |
||
716 | Dim infoReader As System.IO.FileInfo |
||
717 | infoReader = My.Computer.FileSystem.GetFileInfo(filename) |
||
718 | ' lvItem.SubItems.AddRange(New String() {infoReader.Length.ToString + " Byte", infoReader.Extension.ToString, infoReader.LastWriteTime}) |
||
719 | lvItem.SubItems.AddRange(New String() {infoReader.LastWriteTime}) |
||
720 | ListView_File.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent) |
||
721 | End If |
||
722 | |||
723 | |||
724 | Next |
||
725 | Exit Sub |
||
726 | wwq: |
||
727 | MsgBox(Err.Description) |
||
728 | End Sub |
||
729 | |||
730 | Private Sub Tree_XMLFiles_MouseMove(sender As Object, e As MouseEventArgs) Handles Tree_XMLFiles.MouseMove |
||
731 | first_start = True |
||
732 | End Sub |
||
733 | |||
734 | Private Sub ListView_File_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView_File.SelectedIndexChanged |
||
735 | Dim indexes As ListView.SelectedIndexCollection = |
||
736 | Me.ListView_File.SelectedIndices |
||
737 | Dim index As Integer |
||
738 | |||
739 | For Each index In indexes |
||
740 | 'On Error Resume Next |
||
741 | If folders_path.EndsWith("\") = True Then |
||
742 | Me.Status_Main.Items(0).Text = folders_path + (Me.ListView_File.Items(index).Text) |
||
743 | 'On Error Resume Next |
||
744 | Else |
||
745 | Me.Status_Main.Items(0).Text = folders_path + "\" + (Me.ListView_File.Items(index).Text) |
||
746 | End If |
||
747 | |||
748 | Dim infoReader As System.IO.FileInfo |
||
749 | infoReader = My.Computer.FileSystem.GetFileInfo(Me.Status_Main.Items(0).Text) |
||
750 | Me.Status_Main.Items(1).Text = " Created : " + infoReader.CreationTime.ToString + " " + infoReader.Attributes.ToString |
||
751 | Next |
||
752 | End Sub |
||
753 | |||
754 | Private Sub Procees() |
||
755 | Dim indexes As ListView.SelectedIndexCollection = |
||
756 | Me.ListView_File.SelectedIndices |
||
757 | Dim index As Integer |
||
758 | |||
759 | For Each index In indexes |
||
760 | 'On Error Resume Next |
||
761 | If folders_path.EndsWith("\") = True Then |
||
762 | On Error GoTo out |
||
763 | Me.Status_Main.Items(0).Text = folders_path + (Me.ListView_File.Items(index).Text) |
||
764 | On Error GoTo out |
||
765 | 'On Error Resume Next |
||
766 | Else |
||
767 | Me.Status_Main.Items(0).Text = folders_path + "\" + (Me.ListView_File.Items(index).Text) |
||
768 | On Error GoTo out |
||
769 | End If |
||
770 | |||
771 | Dim infoReader As System.IO.FileInfo |
||
772 | infoReader = My.Computer.FileSystem.GetFileInfo(Me.Status_Main.Items(0).Text) |
||
773 | Me.Status_Main.Items(1).Text = " Created : " + infoReader.CreationTime.ToString + " " + infoReader.Attributes.ToString |
||
774 | On Error GoTo out |
||
775 | MsgBox(Me.Status_Main.Items(0).Text + " is processed") |
||
776 | On Error GoTo out |
||
777 | Next |
||
778 | Exit Sub |
||
779 | out: |
||
780 | MsgBox(Err.Description) |
||
781 | End Sub |
||
782 | |||
783 | 31d47a80 | Gyusu | Private Function LoadAllDrawing() As DataTable |
784 | e282643f | Gyusu | |
785 | |||
786 | |||
787 | |||
788 | 31d47a80 | Gyusu | Dim oDt As DataTable = Drawing_Dt() |
789 | e282643f | Gyusu | 'Dim oDt As DataTable = Drawing_Dt() |
790 | '_objPIDADrawing = CreateObject("PIDAutomation.Application") |
||
791 | 'For Each objDrawing In _objPIDADrawing.Drawings |
||
792 | ' Dim sName As String = objDrawing.Attributes("Name").Value |
||
793 | ' Dim sPath As String = objDrawing.Attributes("Path").Value |
||
794 | ' Dim oAddRow As DataRow = oDt.NewRow() |
||
795 | ' oAddRow("Name") = sName |
||
796 | ' oAddRow("Path") = sPath |
||
797 | ' oDt.Rows.Add(oAddRow) |
||
798 | 'Next |
||
799 | Dim sHierarchy As String = My.Settings.Plant_Hierarchy |
||
800 | |||
801 | |||
802 | Dim files() As String |
||
803 | files = Directory.GetFiles(sHierarchy, "*.pid", SearchOption.AllDirectories) |
||
804 | For Each FileName As String In files |
||
805 | Dim sName As String = FileName |
||
806 | 31d47a80 | Gyusu | Dim oAddRow As DataRow = oDt.NewRow() |
807 | e282643f | Gyusu | oAddRow("Name") = Path.GetFileNameWithoutExtension(sName) |
808 | oAddRow("Path") = FileName |
||
809 | 31d47a80 | Gyusu | oDt.Rows.Add(oAddRow) |
810 | e282643f | Gyusu | ' Console.WriteLine(FileName) |
811 | 31d47a80 | Gyusu | Next |
812 | e282643f | Gyusu | |
813 | |||
814 | |||
815 | 'Dim datasource As LMADataSource |
||
816 | 'Dim objPIDAutoApp As Object |
||
817 | 'Dim objPIDADrawing As Object |
||
818 | 'Dim objDrawing As LMDrawing |
||
819 | 'Dim objDrawings As LMDrawings |
||
820 | 'objPIDAutoApp = CreateObject("PIDAutomation.Application") |
||
821 | 'objPIDAutoApp = GetObject(, "SmartPlantPID.Application") |
||
822 | |||
823 | 'datasource = CreateObject("Llama.LMADataSource", "") |
||
824 | 'Dim oObj As Object = Nothing |
||
825 | 'objDrawings = New LMDrawings |
||
826 | 'objDrawing = datasource.GetDrawing(oObj) |
||
827 | |||
828 | 'objDrawings.Collect(datasource) |
||
829 | '' objPIDAutoApp = GetObject(, "SmartPlantPID.Application") '// CreateObject("PIDAutomation.Application") |
||
830 | 'For Each objDrawing In objDrawings |
||
831 | ' Dim sName As String = objDrawing.Attributes("Name").Value |
||
832 | ' Dim sPath As String = objDrawing.Attributes("Path").Value |
||
833 | ' Dim oAddRow As DataRow = oDt.NewRow() |
||
834 | ' oAddRow("Name") = sName |
||
835 | ' oAddRow("Path") = sHierarchy & "\" & sPath |
||
836 | ' oDt.Rows.Add(oAddRow) |
||
837 | 'Next |
||
838 | |||
839 | 31d47a80 | Gyusu | Return oDt |
840 | End Function |
||
841 | |||
842 | e282643f | Gyusu | Private Function LoadAllDrawing2() As DataTable |
843 | 31d47a80 | Gyusu | Dim datasource As LMADataSource |
844 | Dim objPIDAutoApp As Object |
||
845 | Dim objPIDADrawing As Object |
||
846 | Dim objDrawing As Object 'Drawing |
||
847 | 'Dim objDrawing As LMDrawing |
||
848 | 'Dim objDrawings As LMDrawings |
||
849 | |||
850 | datasource = New LMADataSource |
||
851 | |||
852 | ' objDrawings = New LMDrawings |
||
853 | 'objDrawings.Collect(datasource) |
||
854 | objPIDAutoApp = CreateObject("PIDAutomation.Application") |
||
855 | |||
856 | For Each objDrawing In objPIDAutoApp.Drawings |
||
857 | objDrawing.CloseDrawing(True) |
||
858 | Next |
||
859 | Try |
||
860 | objPIDADrawing = objPIDAutoApp.Drawings.OpenDrawing("UY1-K-2000_P1_300dpi_0321_TEST_1") |
||
861 | Catch ex As Exception |
||
862 | Process.Start("\\desktop-9vlq0dp\Test02Site\P188943_SPPID_Plant\Plant_Hierarchy\8121\8121-1\UY1-K-2000_P1_300dpi_0321_TEST_1.pid") |
||
863 | End Try |
||
864 | |||
865 | |||
866 | |||
867 | Dim sType As Type = objPIDAutoApp.GetType() |
||
868 | Dim iCount As Integer = 0 |
||
869 | ' Dim sPath As String = "\\desktop-9vlq0dp\Test02Site\P188943_SPPID_Plant\Plant_Hierarchy\8121\8121-1\188943-8121-PR-DW-011001.pid" |
||
870 | |||
871 | objPIDADrawing = objPIDAutoApp.Drawings.OpenDrawing("1") |
||
872 | |||
873 | For Each objDrawing In objPIDAutoApp.Drawings |
||
874 | If objDrawing.Attributes("ItemStatus").Index = 1 Then '1 stands for Active |
||
875 | Try |
||
876 | |||
877 | Dim sName As String = objDrawing.Attributes("Name").Value |
||
878 | |||
879 | iCount = iCount + 1 |
||
880 | If sName = "UY1-K-2000_P1_300dpi_0321_TEST_1" Then |
||
881 | objPIDADrawing = objPIDAutoApp.Drawings.OpenDrawing(objDrawing.Attributes("Name")) |
||
882 | objPIDADrawing = objPIDAutoApp.Drawings.OpenDrawing("\8121\8121-1\UY1-K-2000_P1_300dpi_0321_TEST_1.pid") |
||
883 | If Not objPIDADrawing Is Nothing Then |
||
884 | objPIDADrawing.CloseDrawing() |
||
885 | End If |
||
886 | End If |
||
887 | |||
888 | |||
889 | Catch ex As Exception |
||
890 | |||
891 | End Try |
||
892 | |||
893 | End If |
||
894 | Next |
||
895 | objPIDAutoApp.Quit |
||
896 | objPIDAutoApp = Nothing |
||
897 | objPIDADrawing = Nothing |
||
898 | objDrawing = Nothing |
||
899 | ' objDrawings = Nothing |
||
900 | e282643f | Gyusu | End Function |
901 | |||
902 | 31d47a80 | Gyusu | |
903 | e282643f | Gyusu | |
904 | |||
905 | Private Sub ThreadTask() |
||
906 | 962b2464 | Gyusu | If ListView_File.Items.Count > 0 Then |
907 | 31d47a80 | Gyusu | Dim oDwg_Dt As DataTable = LoadAllDrawing() |
908 | e282643f | Gyusu | Dim iDwgCnt As Integer = 0 |
909 | |||
910 | Dim myList = DirectCast(Invoke(New GetListViewDelegate(AddressOf GetListViewItems), ListView_File), List(Of String)) |
||
911 | For i = 0 To myList.Count - 1 |
||
912 | 31d47a80 | Gyusu | |
913 | e282643f | Gyusu | Dim sDwgName As String = Path.GetFileNameWithoutExtension(myList(i)) |
914 | Txt_Status.Text = sDwgName & "..(" & i + 1 & "/" & myList.Count & ")" |
||
915 | 1229ad76 | Gyusu | |
916 | e282643f | Gyusu | Dim sDwgNo As String = myList(i) |
917 | Dim oDwgPath As String = "" |
||
918 | oDwgPath = _selectFolderPath + "\" + sDwgNo |
||
919 | |||
920 | Dim sPath As String = OpenDrawing(oDwg_Dt, sDwgName) |
||
921 | If sPath <> "" Then |
||
922 | Process.Start(sPath) |
||
923 | |||
924 | Dim oPipe_Dt As DataTable = New DataTable() 'LoadPipeInXml(oDwgPath) |
||
925 | 962b2464 | Gyusu | Dim oSymbol_Dt As DataTable = LoadSymbolInXml(oDwgPath) |
926 | AutoConverting(oPipe_Dt, oSymbol_Dt) |
||
927 | End If |
||
928 | e282643f | Gyusu | ''도면 생성 |
929 | 'If CreateDwg(sDwgName) Then |
||
930 | ' 'AutoConverting |
||
931 | |||
932 | 'End If |
||
933 | 4f359afa | Gyusu | |
934 | 962b2464 | Gyusu | Next |
935 | End If |
||
936 | End Sub |
||
937 | e282643f | Gyusu | |
938 | |||
939 | |||
940 | Private Sub Btn_Convert_Click(sender As Object, e As EventArgs) Handles Btn_Convert.Click |
||
941 | Me.ProgressBar_Status.Visible = True |
||
942 | ProgressBar_Status.Maximum = 100 |
||
943 | ProgressBar_Status.Value = 0 |
||
944 | _selectFolderPath = Tree_XMLFiles.SelectedNode.FullPath.Replace("\\", "\") |
||
945 | _Main_trd = New Thread(AddressOf ThreadTask) |
||
946 | _Main_trd.IsBackground = True |
||
947 | _Main_trd.Start() |
||
948 | |||
949 | End Sub |
||
950 | |||
951 | |||
952 | Private Function GetCheckList(ByVal listviewItem As ListViewItem) |
||
953 | |||
954 | End Function |
||
955 | |||
956 | Private Sub newThreadFunc(ByVal state As Object) |
||
957 | |||
958 | End Sub |
||
959 | |||
960 | Private Function OpenDrawing(ByVal oDt As DataTable, ByVal sDwgName As String) As String |
||
961 | Dim oRows As DataRow() = oDt.Select("[Name] = '" & sDwgName & "'") |
||
962 | Dim oPath As String = "" |
||
963 | If oRows.Length > 0 Then |
||
964 | oPath = oRows(0).Item("Path").ToString() |
||
965 | End If |
||
966 | Return oPath |
||
967 | End Function |
||
968 | |||
969 | |||
970 | Private Sub Btn_Setting_Click(sender As Object, e As EventArgs) Handles Btn_Setting.Click |
||
971 | Dim oSettings As Settings = New Settings() |
||
972 | oSettings.ShowDialog() |
||
973 | End Sub |
||
974 | |||
975 | Private Sub Btn_Stop_Click(sender As Object, e As EventArgs) Handles Btn_Stop.Click |
||
976 | |||
977 | End Sub |
||
978 | |||
979 | Private Sub DropDown_File_Click(sender As Object, e As EventArgs) Handles DropDown_File.Click |
||
980 | |||
981 | End Sub |
||
982 | |||
983 | |||
984 | |||
985 | |||
986 | |||
987 | End Class |
||
988 | |||
989 | |||
990 | Public Class DrawingInfo |
||
991 | Public mDrawingName As String |
||
992 | Public mSpID As String |
||
993 | Public mPath As String |
||
994 | 4f359afa | Gyusu | End Class |
995 | e282643f | Gyusu | |
996 | |||
997 | |||
998 |