프로젝트

일반

사용자정보

개정판 b82166d4

IDb82166d4727aa092ff122efde6bc249c85db30a1
상위 69558c5f
하위 0f7117e5

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

Inconsitency check 수정

차이점 보기:

DTI_PID/SPPIDConverter/Main.vb
950 950

  
951 951
        Main_Tab.SelectedIndex = 1
952 952
        ListBox_Result.Items.Clear()
953
        ' DataGrid_Result.DataSource = New DataTable()
954 953
        Me.ProgressBar_Status.Visible = True
955 954
        ProgressBar_Status.Maximum = 100
956 955
        ProgressBar_Status.Value = 0
957 956
        InitItemCount()
958
        ' _selectFolderPath = Tree_XMLFiles.SelectedNode.FullPath.Replace("\\", "\")
959 957
        _Main_trd = New Thread(AddressOf ThreadConvert)
960 958
        _Main_trd.IsBackground = True
961 959
        _Main_trd.Start()
......
2022 2020
        Dim oLMSymbol As LMSymbol = Nothing
2023 2021
        Dim dPreConn_x As Double = 0
2024 2022
        Dim dPreConn_y As Double = 0
2023
        Dim sStartConnectionUid As String = ""
2024
        Dim sEndConnectionUid As String = ""
2025 2025
        If sConn1Type <> "" And sConn2Type <> "" Then
2026 2026
            If sConn1Type = "Line" Then
2027
                CheckConnectionLine(dConn1_x, dConn1_y, oStartLMConnector)
2027
                CheckConnectionLine(dConn1_x, dConn1_y, oStartLMConnector, sStartConnectionUid)
2028 2028
            Else
2029 2029
                CheckConnectionSymbolToSymbol(oConn1Rows, dConn1_x, dConn1_y, oStartLMConnector)
2030 2030
            End If
2031 2031

  
2032 2032
            If sConn2Type = "Line" Then
2033
                CheckConnectionLine(dConn2_x, dConn2_y, oEndLMConnector)
2033
                CheckConnectionLine(dConn2_x, dConn2_y, oEndLMConnector, sEndConnectionUid)
2034 2034
            Else
2035 2035
                CheckConnectionSymbolToSymbol(oConn2Rows, dConn2_x, dConn2_y, oEndLMConnector)
2036 2036
            End If
......
2113 2113
            'End If
2114 2114
        ElseIf sConn1Type <> "" And sConn2Type = "" Then
2115 2115
            If sConn1Type = "Line" Then
2116
                CheckConnectionLine(dConn1_x, dConn1_y, oStartLMConnector)
2116
                CheckConnectionLine(dConn1_x, dConn1_y, oStartLMConnector, sStartConnectionUid)
2117 2117
            Else
2118 2118
                CheckConnectionSymbolToSymbol(oConn1Rows, dConn1_x, dConn1_y, oStartLMConnector)
2119 2119
                dOriginal_x = dConn1_x
......
2125 2125
        ElseIf sConn1Type = "" And sConn2Type <> "" Then
2126 2126

  
2127 2127
            If sConn1Type = "Line" Then
2128
                CheckConnectionLine(dConn2_x, dConn2_y, oEndLMConnector)
2128
                CheckConnectionLine(dConn2_x, dConn2_y, oEndLMConnector, sEndConnectionUid)
2129 2129
            Else
2130 2130
                CheckConnectionSymbolToSymbol(oConn2Rows, dConn2_x, dConn2_y, oEndLMConnector)
2131 2131
                dOriginal_x = dConn2_x
......
2135 2135

  
2136 2136
        ElseIf sConn3Type <> "" And sConn4Type <> "" Then
2137 2137
            If sConn1Type = "Line" Then
2138
                CheckConnectionLine(dConn3_x, dConn3_y, oStartLMConnector)
2138
                CheckConnectionLine(dConn3_x, dConn3_y, oStartLMConnector, sStartConnectionUid)
2139 2139
            Else
2140 2140
                CheckConnectionSymbolToSymbol(oConn3Rows, dConn3_x, dConn3_y, oStartLMConnector)
2141 2141
            End If
2142 2142

  
2143 2143
            If sConn2Type = "Line" Then
2144
                CheckConnectionLine(dConn4_x, dConn4_y, oEndLMConnector)
2144
                CheckConnectionLine(dConn4_x, dConn4_y, oEndLMConnector, sEndConnectionUid)
2145 2145
            Else
2146 2146
                CheckConnectionSymbolToSymbol(oConn4Rows, dConn4_x, dConn4_y, oEndLMConnector)
2147 2147
            End If
......
2158 2158

  
2159 2159
        ElseIf sConn3Type <> "" And sConn4Type = "" Then
2160 2160
            If sConn1Type = "Line" Then
2161
                CheckConnectionLine(dConn3_x, dConn3_y, oStartLMConnector)
2161
                CheckConnectionLine(dConn3_x, dConn3_y, oStartLMConnector, sStartConnectionUid)
2162 2162
            Else
2163 2163
                CheckConnectionSymbolToSymbol(oConn3Rows, dConn3_x, dConn3_y, oStartLMConnector)
2164 2164
                dOriginal_x = dConn3_x
......
2169 2169

  
2170 2170
        ElseIf sConn3Type = "" And sConn4Type <> "" Then
2171 2171
            If sConn2Type = "Line" Then
2172
                CheckConnectionLine(dConn4_x, dConn4_y, oEndLMConnector)
2172
                CheckConnectionLine(dConn4_x, dConn4_y, oEndLMConnector, sEndConnectionUid)
2173 2173
            Else
2174 2174
                CheckConnectionSymbolToSymbol(oConn4Rows, dConn4_x, dConn4_y, oEndLMConnector)
2175 2175
                dOriginal_x = dConn4_x
......
2666 2666
            Dim dPreConnX As Double = 0
2667 2667
            Dim dPreConnY As Double = 0
2668 2668

  
2669
            Dim sStartConnectionUid As String = ""
2670
            Dim sEndConnectionUid As String = ""
2669 2671

  
2670 2672
            '   Dim sTargetDirection As String = CheckBranchLine(dStart_Dwg_x, dStart_Dwg_y, dEnd_Dwg_x, dEnd_Dwg_y, oLMConnector)
2671 2673

  
2672 2674
            ' If sTargetDirection = "" Then
2673
            CheckConnectionLine(dStart_Dwg_x, dStart_Dwg_y, oStartLMConnector)
2675
            CheckConnectionLine(dStart_Dwg_x, dStart_Dwg_y, oStartLMConnector, sStartConnectionUid)
2674 2676

  
2675 2677
            If oStartLMConnector Is Nothing Then
2676
                UpdateCheckBranchLine(dStart_Dwg_x, dStart_Dwg_y, oStartLMConnector)
2678
                UpdateCheckBranchLine(dStart_Dwg_x, dStart_Dwg_y, oStartLMConnector, sStartConnectionUid)
2677 2679
                If oStartLMConnector Is Nothing Then
2678 2680
                    oLMSymbol1 = CheckConnectionSymbolToLine(oConn1Rows, dStart_Dwg_x, dStart_Dwg_y, dCenterPos_x, dCenterPos_y, oStartLMConnector)
2679 2681
                    If oLMSymbol1 IsNot Nothing Then
......
2698 2700
                sConn1Type = "Line"
2699 2701

  
2700 2702
            End If
2701
                CheckConnectionLine(dEnd_Dwg_x, dEnd_Dwg_y, oEndLMConnector)
2703
            CheckConnectionLine(dEnd_Dwg_x, dEnd_Dwg_y, oEndLMConnector, sEndConnectionUid)
2702 2704
            If oEndLMConnector Is Nothing Then
2703
                UpdateCheckBranchLine(dEnd_Dwg_x, dEnd_Dwg_y, oEndLMConnector)
2705
                UpdateCheckBranchLine(dEnd_Dwg_x, dEnd_Dwg_y, oEndLMConnector, sEndConnectionUid)
2704 2706
                If oEndLMConnector Is Nothing Then
2705 2707
                    oLMSymbol2 = CheckConnectionSymbolToLine(oConn2Rows, dEnd_Dwg_x, dEnd_Dwg_y, dCenterPos_x, dCenterPos_y, oEndLMConnector)
2706 2708
                    If oLMSymbol2 IsNot Nothing Then
......
2900 2902

  
2901 2903
                    '모델링 된 PipeLine 데이터 테이블 저장
2902 2904
                    Dim oAddRow As DataRow = _ModelingLine_Dt.NewRow
2905
                    oAddRow(_XML_LINE_UID) = sUid
2903 2906
                    oAddRow(_XML_LINE_SPID) = oCurrentConnector.ModelItemID
2904 2907
                    oAddRow(_XML_LINE_LMCONNECTOR) = oCurrentConnector
2905 2908
                    oAddRow(_XML_LINE_DRAWING_TF) = "TRUE"
......
2911 2914

  
2912 2915

  
2913 2916
                    Dim oAttributeRow() As DataRow = oAttribute_Dt.Select(_XML_ATTRIBUTE_UID & " = '" + sLineNoUid + "'")
2914
                        If oAttributeRow.Length > 0 Then
2915
                            For Each oAttribute In oAttributeRow
2916
                                Try
2917
                                    Dim sPIDAttribute As String = oAttribute(_XML_ATTRIBUTE_NAME).ToString()
2918
                                    Dim sPIDValue As String = oAttribute(_XML_ATTRIBUTE_VALUE).ToString()
2919
                                    If sPIDValue.Contains("'") Then
2920
                                        sPIDValue = sPIDValue.Replace("'", """")
2921
                                    End If
2922
                                    Dim sSPPIDAttribute As String = GetAttributeMapping(sPIDAttribute, _DB_COLUMN_ATTRIBUTE_SPPID_ATTRIBUTE)
2923
                                    oPipeRun.Attributes(sSPPIDAttribute).Value = sPIDValue
2924
                                Catch ex As Exception
2925
                                End Try
2926
                            Next
2927
                            oPipeRun.Commit()
2928
                        End If
2917
                    If oAttributeRow.Length > 0 Then
2918
                        For Each oAttribute In oAttributeRow
2919
                            Try
2920
                                Dim sPIDAttribute As String = oAttribute(_XML_ATTRIBUTE_NAME).ToString()
2921
                                Dim sPIDValue As String = oAttribute(_XML_ATTRIBUTE_VALUE).ToString()
2922
                                If sPIDValue.Contains("'") Then
2923
                                    sPIDValue = sPIDValue.Replace("'", """")
2924
                                End If
2925
                                Dim sSPPIDAttribute As String = GetAttributeMapping(sPIDAttribute, _DB_COLUMN_ATTRIBUTE_SPPID_ATTRIBUTE)
2926
                                oPipeRun.Attributes(sSPPIDAttribute).Value = sPIDValue
2927
                            Catch ex As Exception
2928
                            End Try
2929
                        Next
2930
                        oPipeRun.Commit()
2931
                    End If
2929 2932

  
2930
                        Dim sID_1 As String = ""
2933
                    Dim sID_1 As String = ""
2931 2934
                    Dim sID_2 As String = ""
2932 2935
                    Dim oAddConnector As LMConnector = Nothing
2933 2936
                    If oStartLMConnector IsNot Nothing Then
2934
                            sID_1 = oStartLMConnector.ModelItemID
2937
                        sID_1 = oStartLMConnector.ModelItemID
2935 2938
                        sID_2 = oCurrentConnector.ModelItemID
2936 2939
                        oAddConnector = oStartLMConnector
2937 2940
                    ElseIf oEndLMConnector IsNot Nothing Then
2938
                            sID_1 = oEndLMConnector.ModelItemID
2941
                        sID_1 = oEndLMConnector.ModelItemID
2939 2942
                        sID_2 = oCurrentConnector.ModelItemID
2940 2943
                        oAddConnector = oEndLMConnector
2941 2944
                    End If
2942
                    '    If sID_1 <> "" And sID_2 <> "" Then
2943
                    '        Dim objSurvivorItem As LMAItem = Nothing
2944
                    '        Dim oPipeRun1 As LMPipeRun = oPidDataSource.GetPipeRun(sID_1)
2945
                    '        Dim oPipeRun2 As LMPipeRun = oPidDataSource.GetPipeRun(sID_2)
2946
                    '    _Placement.PIDJoinRuns(oPipeRun1, oPipeRun2)
2947

  
2948
                    '    Dim oChangeRow() As DataRow = _ModelingLine_Dt.Select(_XML_LINE_SPID & " = '" & sID_2 & "'")
2949
                    '    If oChangeRow.Length = 1 Then
2950
                    '        oChangeRow(0)(_XML_LINE_SPID) = sID_1
2951
                    '        oChangeRow(0)(_XML_LINE_LMCONNECTOR) = oAddConnector
2952
                    '    End If
2953
                    'End If
2945
                    If sID_1 <> "" And sID_2 <> "" Then
2946
                        Dim objSurvivorItem As LMAItem = Nothing
2947
                        Dim oPipeRun1 As LMPipeRun = oPidDataSource.GetPipeRun(sID_1)
2948
                        Dim oPipeRun2 As LMPipeRun = oPidDataSource.GetPipeRun(sID_2)
2949
                        _Placement.PIDJoinRuns(oPipeRun1, oPipeRun2)
2950

  
2951
                        For Each objRep In oPipeRun1.Representations
2952
                            If objRep.Attributes("RepresentationType").Value = "Connector" And objRep.Attributes("ItemStatus").Value = "Active" Then
2953
                                Dim sID As String = objRep.ID
2954
                                oStartLMConnector = _Placement.PIDDataSource.GetConnector(sID)
2955
                                Exit For
2956
                            End If
2957
                        Next
2958

  
2959
                        'For Each objRep In oPipeRun2.Representations
2960
                        '    If objRep.Attributes("RepresentationType").Value = "Connector" And objRep.Attributes("ItemStatus").Value = "Active" Then
2961
                        '        Dim sID As String = objRep.ID
2962
                        '        oEndLMConnector = _Placement.PIDDataSource.GetConnector(sID)
2963
                        '    End If
2964
                        'Next
2965

  
2966

  
2967
                        'Dim oChangeRow() As DataRow = _ModelingLine_Dt.Select(_XML_LINE_SPID & " = '" & sID_2 & "'")
2968
                        'If oChangeRow.Length = 1 Then
2969
                        '    oChangeRow(0)(_XML_LINE_SPID) = sID_1
2970
                        '    oChangeRow(0)(_XML_LINE_LMCONNECTOR) = oAddConnector
2971
                        'End If
2972
                    End If
2973

  
2974

  
2975
                    '//2018.09.07 LMControl에 따라서 inconsytency가 달라지는듯 확인
2976

  
2977
                    If sStartConnectionUid <> "" Then
2978
                        Dim oChangeRow() As DataRow = _ModelingLine_Dt.Select(_XML_LINE_UID & " = '" & sStartConnectionUid & "'")
2979
                        If oChangeRow.Length = 1 Then
2980
                            oChangeRow(0)(_XML_LINE_SPID) = sID_1
2981
                            oChangeRow(0)(_XML_LINE_LMCONNECTOR) = oStartLMConnector
2982
                        End If
2983
                    End If
2984
                    If sEndConnectionUid <> "" Then
2985
                        Dim oChangeRow() As DataRow = _ModelingLine_Dt.Select(_XML_LINE_UID & " = '" & sEndConnectionUid & "'")
2986
                        If oChangeRow.Length = 1 Then
2987
                            oChangeRow(0)(_XML_LINE_SPID) = sID_1
2988
                            oChangeRow(0)(_XML_LINE_LMCONNECTOR) = oStartLMConnector
2989
                        End If
2990
                    End If
2991

  
2954 2992
                Else
2955
                        sReturnUid = ""
2993
                    sReturnUid = ""
2956 2994
                End If
2995

  
2996

  
2997

  
2998

  
2999

  
2957 3000
            Catch ex As Exception
2958 3001

  
2959 3002
            End Try
......
3297 3340
        If sType.ToUpper() = "ELECTRIC" Then
3298 3341
            Return Color.DarkOrange
3299 3342
        ElseIf sType.ToUpper() = "CONNECT TO PROCESS" Then
3300
            Return Color.LightGreen
3343
            Return Color.Green
3301 3344
        ElseIf sType.ToUpper() = "SOFTWARE" Then
3302 3345
            Return Color.Blue
3303 3346
        ElseIf sType.ToUpper() = "PNEUMATIC" Then
......
4177 4220
    End Function
4178 4221

  
4179 4222
    Private Function UpdateCheckBranchLine(ByRef dX As Double, ByRef dY As Double,
4180
                                  ByRef oLMConnector As LMConnector) As Boolean
4223
                                  ByRef oLMConnector As LMConnector, ByRef oUid As String) As Boolean
4181 4224
        Dim bConnectionFlag As Boolean = False
4182 4225
        Dim iGapCheck As Integer = 0
4183 4226
        Try
......
4227 4270
                    Else
4228 4271
                        dX = dMax_X
4229 4272
                    End If
4230

  
4273
                    oUid = oModelrow(_XML_LINE_UID).ToString()
4274
                    ' Dim oID As String = oModelrow(_XML_LINE_SPID)
4231 4275
                    oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR)
4276
                    '    oID = oLMConnector.ModelItemID
4277
                    '  oLMConnector = _Placement.PIDDataSource.GetConnector(oID)
4278

  
4232 4279
                End If
4233 4280

  
4234 4281

  
......
4255 4302

  
4256 4303

  
4257 4304
    Private Function CheckConnectionLine(ByRef dX As Double, ByRef dY As Double,
4258
                                  ByRef oLMConnector As LMConnector) As Boolean
4305
                                  ByRef oLMConnector As LMConnector, ByRef sUid As String) As Boolean
4259 4306
        Dim bConnectionFlag As Boolean = False
4260 4307
        Dim iGapCheck As Integer = 0
4261 4308
        Try
......
4295 4342
                If bCheckEqual Then
4296 4343
                    Try
4297 4344
                        oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR)
4345
                        sUid = oModelrow(_XML_LINE_UID)
4298 4346
                        oRun = _Placement.PIDDataSource.GetPipeRun(oLMConnector.ModelItemID)
4299 4347
                    Catch ex As Exception
4300 4348
                    End Try
......
5915 5963
    Private Sub ThreadConvert()
5916 5964
        If _DrawingsList IsNot Nothing Then
5917 5965
            If _DrawingsList.Count > 0 Then
5966
                'TestBranchLine()
5918 5967
                AutoModeling()
5919 5968
            End If
5920 5969
        End If
......
6101 6150
        oSettings.ShowDialog()
6102 6151
    End Sub
6103 6152

  
6153

  
6154
    Private Sub TestBranchLine()
6155
        Dim objPlacement As Placement
6156
        objPlacement = New Placement
6157
        Dim PipeRunLocation As String
6158
        Dim objItem As LMAItem
6159
        Dim objConnector As LMConnector
6160
        Dim objInputs As PlaceRunInputs
6161
        Dim objSymbol As LMSymbol
6162
        Dim ValveLocation As String
6163
        PipeRunLocation = "\Piping\Routing\Process Lines\Primary Piping.sym"
6164
        objInputs = New PlaceRunInputs
6165
        objInputs.AddPoint(0.1, 0.1)
6166
        objInputs.AddPoint(0.2, 0.1)
6167
        objItem = objPlacement.PIDCreateItem(PipeRunLocation)
6168
        objConnector = objPlacement.PIDPlaceRun(objItem, objInputs)
6169
        ValveLocation = "\Piping\Valves\2 Way Common\Ball Valve.sym"
6170
        objSymbol = objPlacement.PIDPlaceSymbol(ValveLocation, 0.15, 0.3, , 1.57)
6171
        objInputs = New PlaceRunInputs
6172
        objInputs.AddConnectorTarget(objConnector, 0.15, 0.1)
6173
        '   objInputs.AddConnectorTarget(objConnector, 0.12, 0.1)
6174
        objInputs.AddPoint(0.15, 0.15)
6175
        objInputs.AddPoint(0.12, 0.15)
6176
        objInputs.AddPoint(0.12, 0.2)
6177
        objInputs.AddPoint(0.15, 0.2)
6178
        objInputs.AddSymbolTarget(objSymbol, 0.15, 0.3)
6179
        objItem = objPlacement.PIDCreateItem(PipeRunLocation)
6180
        objConnector = objPlacement.PIDPlaceRun(objItem, objInputs)
6181

  
6182
        objInputs = New PlaceRunInputs
6183
        objInputs.AddConnectorTarget(objConnector, 0.17, 0.1)
6184
        objInputs.AddPoint(0.17, 0.15)
6185
        objItem = objPlacement.PIDCreateItem(PipeRunLocation)
6186
        objConnector = objPlacement.PIDPlaceRun(objItem, objInputs)
6187

  
6188
        objInputs = New PlaceRunInputs
6189
        objInputs.AddConnectorTarget(objConnector, 0.19, 0.1)
6190
        objInputs.AddPoint(0.19, 0.15)
6191
        objItem = objPlacement.PIDCreateItem(PipeRunLocation)
6192
        objConnector = objPlacement.PIDPlaceRun(objItem, objInputs)
6193

  
6194
        objInputs = New PlaceRunInputs
6195
        objInputs.AddConnectorTarget(objConnector, 0.12, 0.1)
6196
        objInputs.AddPoint(0.12, 0.15)
6197
        objItem = objPlacement.PIDCreateItem(PipeRunLocation)
6198
        objConnector = objPlacement.PIDPlaceRun(objItem, objInputs)
6199
    End Sub
6200

  
6104 6201
    Private Sub Btn_TestNozzle_Click(sender As Object, e As EventArgs) Handles Btn_TestNozzle.Click
6105 6202

  
6106 6203
        Dim sVessel_ID As String = "841D5E640AE5421B9A017DDC2E87FF11"

내보내기 Unified diff

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