프로젝트

일반

사용자정보

개정판 41e4023e

ID41e4023e5daa727c3d7f619539b1a6bcd06b681a
상위 7f64245b
하위 ee4fc60f

Gyusu 이(가) 6년 이상 전에 추가함

equipment 수정

차이점 보기:

DTI_PID/SPPIDConverter/Main.vb
45 45
    Private _iNozzlecnt As Integer
46 46

  
47 47
    Dim _Gembox As New CGembox()
48

  
49

  
50
    Private _allItem As Integer
51
    Private _Itemcnt As Integer
48 52
    Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
49 53
        LoadDB()
50

  
51 54
    End Sub
52 55

  
53 56
    Private Sub LoadDB()
......
65 68
            MessageBox.Show("설정값을 먼저 확인해주세요")
66 69
        End If
67 70
    End Sub
71

  
68 72
    Public Function GetDrawingInfo(ByVal errorList As ArrayList)
69 73
        Dim ds As Llama.LMADataSource
70 74
        ds = New Llama.LMADataSource
......
489 493
                        Try
490 494
                            Dim oAddrow As DataRow = oAttribute_Dt.NewRow()
491 495
                            Dim oEleObj As XElement
492
                            Dim sUid As String
496
                            Dim sUid As String = ""
493 497
                            Dim sName As String
494 498
                            Dim sValue As String
495 499

  
......
550 554
                Next
551 555
                For Each oEqpNo As Object In oElement.Elements(_XML_CATEGORY_EQUIPMENT)
552 556
                    Dim CEqp_no As Eqp_no = New Eqp_no()
553
                    'CEqp_no.Uid = oEqpNo.Element(_XML_EQP_UID).Value
557
                    '    CEqp_no.Uid = oEqpNo.Element(_XML_EQP_UID).Value
554 558
                    'CEqp_no.Text = oEqpNo.Element(_XML_EQP_TEXT).Value
555 559
                    'CEqp_no.Location = oEqpNo.Element(_XML_EQP_LOCATION).Value
556
                    'CEqp_no.Angle = oEqpNo.Element(_XML_EQP_ANGLE).Value
557
                    'CEqp_no.SystemPath = GetDataFromMappingDB(_XML_CATEGORY_EQUIPMENT, _DB_COLUMN_MAPPING_SPPID_SYSTEMPATH)
560
                    '   CEqp_no.Angle = oEqpNo.Element(_XML_EQP_ANGLE).Value
561
                    '  CEqp_no.SystemPath = GetDataFromMappingDB(_XML_CATEGORY_EQUIPMENT, _DB_COLUMN_MAPPING_SPPID_SYSTEMPATH)
558 562
                    Dim oSymbol_Dt As DataTable = Symbol_Dt()
559 563
                    Dim oAttribute_Dt As DataTable = Attribute_Dt()
560

  
564
                    Dim sUid As String
561 565
                    For Each oSymbol As Object In oEqpNo.Elements(_XML_CATEGORY_SYMBOL)
562 566
                        Try
563 567
                            Dim oAddrow As DataRow = oSymbol_Dt.NewRow()
564 568
                            Dim oEleObj As XElement
565
                            Dim sUid As String
566 569
                            Dim sName As String
567 570
                            Dim sLocation As String
568 571
                            Dim sSize As String
......
601 604
                        Try
602 605
                            Dim oAddrow As DataRow = oAttribute_Dt.NewRow()
603 606
                            Dim oEleObj As XElement
604
                            Dim sUid As String
607
                            Dim sAttUid As String
605 608
                            Dim sName As String
606 609
                            Dim sValue As String
607 610
                            oEleObj = oAtrribute.Element(_XML_ATTRIBUTE_UID)
608
                            sUid = oEleObj.Value
611
                            sAttUid = oEleObj.Value
609 612
                            oEleObj = oAtrribute.Element(_XML_ATTRIBUTE_NAME)
610 613
                            sName = oEleObj.Value
611 614
                            oEleObj = oAtrribute.Element(_XML_ATTRIBUTE_VALUE)
612 615
                            sValue = oEleObj.Value
613
                            oAddrow(_XML_ATTRIBUTE_UID) = sUid
616
                            oAddrow(_XML_ATTRIBUTE_UID) = sAttUid
614 617
                            oAddrow(_XML_ATTRIBUTE_NAME) = sName
615 618
                            oAddrow(_XML_ATTRIBUTE_VALUE) = sValue
616 619
                            oAttribute_Dt.Rows.Add(oAddrow)
......
619 622
                        End Try
620 623

  
621 624
                    Next
625
                    CEqp_no.Uid = sUid
622 626
                    CEqp_no.Dt_Equipment = oSymbol_Dt
623 627
                    CEqp_no.Dt_Attribute = oAttribute_Dt
624 628
                    oEqp_list.Add(CEqp_no)
......
916 920
        SetListBoxItems(ListBox_Result, "Place Instrument....변환완료")
917 921
        SetListBoxItems(ListBox_Result, "총 symbol:  " & iSymbolcount & "개 변환완료")
918 922
        SetProgressbar(ProgressBar_Status, 100)
923

  
919 924
        ' MsgBox("symbol: " & iSymbolcount & "개, pipe : " & iPipecnt & "개 변환완료")
920 925
    End Function
921 926

  
......
1399 1404
                    ConvertPointByImage(dEnd_x, dEnd_y, _IMG_X, _IMG_Y)
1400 1405
                    If dStart_x <> 0 And dStart_y <> 0 And dEnd_x <> 0 And dEnd_y <> 0 Then
1401 1406

  
1402
                        'Dim iConnType As Integer = ModelingLine(dStart_x, dStart_y, dEnd_x, dEnd_y)
1403
                        'If iConnType = 1 Then
1404
                        '    objInputs.AddLocatedTarget(dStart_x, dStart_y)
1405
                        '    objInputs.AddPoint(dEnd_x, dEnd_y)
1406
                        'ElseIf iConnType = 2 Then
1407
                        '    objInputs.AddLocatedTarget(dEnd_x, dEnd_y)
1408
                        '    objInputs.AddPoint(dStart_x, dStart_y)
1409
                        'ElseIf iConnType = 3 Then
1410
                        '    objInputs.AddLocatedTarget(dEnd_x, dEnd_y)
1411
                        '    objInputs.AddPoint(dStart_x, dStart_y)
1412
                        'ElseIf iConnType = 4 Then
1413
                        '    objInputs.AddLocatedTarget(dStart_x, dStart_y)
1414
                        '    objInputs.AddPoint(dEnd_x, dEnd_y)
1415
                        'Else
1416
                        '    objInputs.AddPoint(dStart_x, dStart_y)
1417
                        '    objInputs.AddPoint(dEnd_x, dEnd_y)
1418
                        'End If
1407
                        Dim iConnType As Integer = ModelingLine(dStart_x, dStart_y, dEnd_x, dEnd_y, sUid)
1408
                        If iConnType = 1 Then
1409
                            objInputs.AddLocatedTarget(dStart_x, dStart_y)
1410
                            objInputs.AddPoint(dEnd_x, dEnd_y)
1411
                        ElseIf iConnType = 2 Then
1412
                            objInputs.AddLocatedTarget(dEnd_x, dEnd_y)
1413
                            objInputs.AddPoint(dStart_x, dStart_y)
1414
                        ElseIf iConnType = 3 Then
1415
                            objInputs.AddLocatedTarget(dEnd_x, dEnd_y)
1416
                            objInputs.AddPoint(dStart_x, dStart_y)
1417
                        ElseIf iConnType = 4 Then
1418
                            objInputs.AddLocatedTarget(dStart_x, dStart_y)
1419
                            objInputs.AddPoint(dEnd_x, dEnd_y)
1420
                        Else
1421
                            objInputs.AddPoint(dStart_x, dStart_y)
1422
                            objInputs.AddPoint(dEnd_x, dEnd_y)
1423
                        End If
1419 1424
                        objInputs.AddPoint(dStart_x, dStart_y)
1420 1425
                        objInputs.AddPoint(dEnd_x, dEnd_y)
1421
                        AddModelingLine(dStart_x, dStart_y, dEnd_x, dEnd_y)
1426
                        AddModelingLine(dStart_x, dStart_y, dEnd_x, dEnd_y, sUid)
1422 1427
                        objItem = _Placement.PIDCreateItem(sSystempath)
1423 1428
                        _iPipecnt = _iPipecnt + 1
1424 1429
                        SetListBoxItems(ListBox_Result, "Place PipeLine..(" & dOriginalStart_x & "," & dOriginalStart_y & ") - (" & dOriginalEnd_x & "," & dOriginalEnd_y & ").." & _iPipecnt & " count ")
......
1461 1466
                        '_Placement.PIDPlaceSymbol(sFlowDirectionPath, dEnd_x, dEnd_y, , dFlowDirectionAngle)
1462 1467
                    End If
1463 1468
                End If
1464

  
1465

  
1469
                _Itemcnt = _Itemcnt + 1
1470
                Dim dCalcProgressValue As Double = (_Itemcnt / _allItem) * 100
1471
                SetProgressbar(ProgressBar_Status, dCalcProgressValue)
1472
                Label_Progress.Text = Math.Round(dCalcProgressValue, 0) & "%"
1466 1473
            End If
1467 1474
            Return oPipeRun
1468 1475
        Catch ex As Exception
......
1470 1477
        End Try
1471 1478
    End Function
1472 1479

  
1473
    Private Sub AddModelingLine(ByVal dStart_x As Double, ByVal dStart_y As Double, ByVal dEnd_x As Double, ByVal dEnd_y As Double)
1480
    Private Sub AddModelingLine(ByVal dStart_x As Double, ByVal dStart_y As Double, ByVal dEnd_x As Double, ByVal dEnd_y As Double, ByVal sUid As String)
1474 1481
        Dim oAddRow = _DrawLine_Dt.NewRow()
1482
        oAddRow(_XML_LINE_UID) = sUid
1475 1483
        oAddRow(_XML_LINE_STARTPOINT_X) = dStart_x
1476 1484
        oAddRow(_XML_LINE_STARTPOINT_Y) = dStart_y
1477 1485
        oAddRow(_XML_LINE_ENDPOINT_X) = dEnd_x
......
1480 1488
    End Sub
1481 1489

  
1482 1490

  
1483
    Private Function ModelingLine(ByVal dStart_x As Double, ByVal dStart_y As Double, ByVal dEnd_x As Double, ByVal dEnd_y As Double) As Integer
1484
        Dim oFindRows_1 As DataRow() = _DrawLine_Dt.Select("start_x = '" & dStart_x & "' and start_y = '" & dStart_y & "'")
1491
    Private Function ModelingLine(ByVal dStart_x As Double, ByVal dStart_y As Double, ByVal dEnd_x As Double, ByVal dEnd_y As Double, ByVal sUid As String) As Integer
1492
        'Dim oFindRows_1 As DataRow() = _DrawLine_Dt.Select("start_x = '" & dStart_x & "' and start_y = '" & dStart_y & "' and uid <> '" & sUid & "'")
1485 1493

  
1486
        Dim oFindRows_2 As DataRow() = _DrawLine_Dt.Select("end_x = '" & dEnd_x & "' and end_y = '" & dEnd_y & "'")
1494
        'Dim oFindRows_2 As DataRow() = _DrawLine_Dt.Select("end_x = '" & dEnd_x & "' and end_y = '" & dEnd_y & "' and uid <> '" & sUid & "'")
1487 1495

  
1488
        Dim oFindRows_3 As DataRow() = _DrawLine_Dt.Select("start_x = '" & dEnd_x & "' and start_y = '" & dEnd_y & "'")
1496
        'Dim oFindRows_3 As DataRow() = _DrawLine_Dt.Select("start_x = '" & dEnd_x & "' and start_y = '" & dEnd_y & "' and uid <> '" & sUid & "'")
1489 1497

  
1490
        Dim oFindRows_4 As DataRow() = _DrawLine_Dt.Select("end_x = '" & dStart_x & "' and end_y = '" & dStart_y & "'")
1498
        'Dim oFindRows_4 As DataRow() = _DrawLine_Dt.Select("end_x = '" & dStart_x & "' and end_y = '" & dStart_y & "' and uid <> '" & sUid & "'")
1491 1499

  
1492
        If oFindRows_1.Length > 0 Then
1493
            Return 1
1494
        ElseIf oFindRows_2.Length > 0 Then
1495
            Return 2
1496
        ElseIf oFindRows_3.Length > 0 Then
1497
            Return 3
1498
        ElseIf oFindRows_4.Length > 0 Then
1499
            Return 4
1500
        Else
1501
            Return 0
1502
        End If
1500
        'If oFindRows_1.Length > 0 Then
1501
        '    Return 1
1502
        'ElseIf oFindRows_2.Length > 0 Then
1503
        '    Return 2
1504
        'ElseIf oFindRows_3.Length > 0 Then
1505
        '    Return 3
1506
        'ElseIf oFindRows_4.Length > 0 Then
1507
        '    Return 4
1508
        'Else
1509
        '    Return 0
1510
        'End If
1511
        Return 0
1503 1512
    End Function
1504 1513

  
1505 1514
    Private Function FindConnectionPoint(ByVal dX As Double, ByVal dY As Double)
......
1507 1516

  
1508 1517
    End Function
1509 1518

  
1519
    Private Sub PlaceEquipment(ByVal sUid As String, ByVal oSymbol_Dt As DataTable, ByVal oAttribute_Dt As DataTable)
1520
        Try
1521
            Dim oSymbolRow() As DataRow = oSymbol_Dt.Select(_XML_SYMBOL_UID & " = '" + sUid + "'")
1522
            Dim oAttributeRow() As DataRow
1523
            If oAttribute_Dt.Rows.Count > 0 Then
1524
                oAttributeRow = oAttribute_Dt.Select(_XML_ATTRIBUTE_UID & " = '" + sUid + "'")
1525
            End If
1526
            If oSymbolRow.Length > 0 Then
1527
                Dim oDatasource As Object = _Placement.PIDDataSource
1528
                Dim sSymbolCompType As String = oSymbolRow(0)(_XML_SYMBOL_TYPE).ToString()
1529
                Dim sSystemPath As String = oSymbolRow(0)(_XML_SYMBOL_SYSTEMPATH).ToString()
1530
                Dim sClass As String = oSymbolRow(0)(_XML_SYMBOL_CLASS).ToString()
1531
                Dim sLocation As String = oSymbolRow(0)(_XML_SYMBOL_LOCATION).ToString()
1532
                Dim sOriginalPoint As String = oSymbolRow(0)(_XML_SYMBOL_ORIGINALPOINT).ToString()
1533
                Dim dAngle As Double = 0.0
1534
                If IsNumeric(oSymbolRow(0)(_XML_SYMBOL_ANGLE).ToString()) Then
1535
                    dAngle = Double.Parse(oSymbolRow(0)(_XML_SYMBOL_ANGLE).ToString())
1536
                End If
1537
                Dim dLocationX As Double = 0.0
1538
                Dim dLocationY As Double = 0.0
1539
                Dim dX As Double = 0.0
1540
                Dim dY As Double = 0.0
1541

  
1542
                If ConvertPointBystring(sOriginalPoint, dLocationX, dLocationY) Then
1543
                    dX = dLocationX
1544
                    dY = dLocationY
1545
                    ConvertPointByImage(dX, dY, _IMG_X, _IMG_Y)
1546
                    _Placement.PIDPlaceSymbol(sSystemPath, dX, dY, , dAngle)
1547
                    SetListBoxItems(ListBox_Result, "Place Equipment..(" & dLocationX & "," & dLocationY & ")..." & _iFittingcnt & " count ")
1548
                End If
1549
            End If
1550
        Catch ex As Exception
1551

  
1552
        End Try
1553

  
1554

  
1555
    End Sub
1510 1556

  
1511 1557
    Private Function DrawSymbol(ByVal sUid As String, ByVal sLineNoUid As String, ByVal oSymbol_Dt As DataTable, ByVal oAttribute_Dt As DataTable, ByVal oLine_Dt As DataTable) As Boolean
1512 1558
        Try
......
1622 1668
                        End If
1623 1669

  
1624 1670
                    End If
1625

  
1626
                End If
1671
                _Itemcnt = _Itemcnt + 1
1672
                Dim dCalcProgressValue As Double = (_Itemcnt / _allItem) * 100
1673
                SetProgressbar(ProgressBar_Status, dCalcProgressValue)
1674
                Label_Progress.Text = Math.Round(dCalcProgressValue, 0) & "%"
1675
            End If
1627 1676

  
1628 1677
        Catch ex As Exception
1629 1678
            Return False
......
1962 2011
        _iNozzlecnt = 0
1963 2012
    End Sub
1964 2013

  
2014
    Private Function GetAllCheckNodeCount() As Integer
2015
        _allItem = 0
2016
        For i = 0 To Tree_Result.Nodes.Count - 1
2017
            For j = 0 To Tree_Result.Nodes(i).Nodes.Count - 1
2018
                For k = 0 To Tree_Result.Nodes(i).Nodes(j).Nodes.Count - 1
2019
                    For l = 0 To Tree_Result.Nodes(i).Nodes(j).Nodes(k).Nodes.Count - 1
2020
                        If Tree_Result.Nodes(i).Nodes(j).Nodes(k).Nodes(l).Checked = True Then
2021
                            _allItem = _allItem + 1
2022
                        End If
2023
                    Next
2024
                Next
2025
            Next
2026
        Next
2027
        Return _allItem
2028
    End Function
1965 2029

  
1966 2030

  
1967 2031
    Private Function AutoModeling() As Boolean
1968 2032
        Try
1969 2033
            _CompleteConvert = False
2034
            Label_Progress.Text = "0%"
1970 2035
            SetListBoxItems(ListBox_Result, " Auto converting 시작....")
1971 2036
            Dim oDwg_Dt As DataTable = LoadAllDrawing()
2037
            _allItem = GetAllCheckNodeCount()
1972 2038
            For Each oDrwing As TreeNode In Tree_Result.Nodes
1973 2039
                For Each oDwgNode As TreeNode In oDrwing.Nodes
1974 2040
                    Dim sDwgName As String = Path.GetFileNameWithoutExtension(oDwgNode.Text)
......
1991 2057
                                        Dim oAttribute_Dt As DataTable = CLineNo.Dt_Attribute
1992 2058
                                        Dim oDrawLinenoLabel As Boolean = False
1993 2059
                                        For Each oLineNode As TreeNode In oNode.Nodes
2060
                                            Dim oRun As LMPipeRun = Nothing
1994 2061
                                            iItemcnt = iItemcnt + 1
1995 2062
                                            Dim sLineUid As String = oLineNode.Name
1996 2063
                                            If oLineNode.Checked Then
1997 2064
                                                Dim sUid As String = oLineNode.Name
1998 2065
                                                If oLine_Dt.Select("[" & _XML_LINE_UID & "]= '" & sUid & "'").Length = 1 Then
1999
                                                    oPipeRun = DrawLine(sUid, sNodeUid, oLine_Dt, oAttribute_Dt)
2066
                                                    oRun = DrawLine(sUid, sNodeUid, oLine_Dt, oAttribute_Dt)
2067
                                                    If oPipeRun Is Nothing Then
2068
                                                        oPipeRun = oRun
2069
                                                    End If
2000 2070
                                                End If
2001
                                                If oDrawLinenoLabel = False Then
2071
                                                    'If oDrawLinenoLabel = False Then
2072
                                                    '    DrawLineNo(oPipeRun, CLineNo)
2073
                                                    'End If
2074
                                                    oDrawLinenoLabel = True
2075
                                            End If
2076
                                            If oNode.Nodes.Count - 1 = iItemcnt And oDrawLinenoLabel Then
2077
                                                Try
2002 2078
                                                    DrawLineNo(oPipeRun, CLineNo)
2003
                                                End If
2004
                                                oDrawLinenoLabel = True
2079
                                                Catch ex As Exception
2080

  
2081
                                                End Try
2082

  
2005 2083
                                            End If
2006
                                            'If oNode.Nodes.Count - 1 = iItemcnt And oDrawLinenoLabel Then
2007
                                            '    DrawLineNo(oPipeRun, CLineNo)
2008
                                            'End If
2009 2084
                                        Next
2010 2085
                                        For Each oSymbolNode As TreeNode In oNode.Nodes
2011 2086
                                            If oSymbolNode.Checked Then
......
2024 2099
                                        For Each oSymbolNode As TreeNode In oNode.Nodes
2025 2100
                                            If oSymbolNode.Checked Then
2026 2101
                                                Dim sUid As String = oSymbolNode.Name
2027
                                                DrawSymbol(sUid, sNodeUid, oSymbol_Dt, oAttribute_Dt, CLineNo.Dt_Line)
2102
                                                PlaceEquipment(sUid, oSymbol_Dt, oAttribute_Dt)
2103
                                                ' DrawSymbol(sUid, sNodeUid, oSymbol_Dt, oAttribute_Dt, CLineNo.Dt_Line)
2028 2104
                                            End If
2029 2105
                                        Next
2030 2106
                                    End If
......
2041 2117
                                        End If
2042 2118
                                    Next
2043 2119
                                End If
2120

  
2121

  
2122

  
2044 2123
                            Next
2045 2124
                        End If
2046 2125
                    End If
2047 2126
                Next
2048 2127
            Next
2049 2128
            SetProgressbar(ProgressBar_Status, 100)
2129
            Label_Progress.Text = "100%"
2050 2130
            SetListBoxItems(ListBox_Result, " Auto converting 완료")
2051 2131
            _CompleteConvert = True
2052 2132
            Return True
......
2260 2340
        Dim oMapping As New Mapping(_PIDSymbol_DB)
2261 2341
        oMapping.Show()
2262 2342
    End Sub
2343

  
2344
    Private Sub Btn_Stop_Click(sender As Object, e As EventArgs) Handles Btn_Stop.Click
2345
        Try
2346
            SetListBoxItems(ListBox_Result, " Auto converting 중지....")
2347
            _Main_trd.Abort()
2348
            _Opc_trd.Abort()
2349
        Catch ex As Exception
2350

  
2351
        End Try
2352
    End Sub
2263 2353
End Class
2264 2354

  
2265 2355

  

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)