개정판 dd46ca83
issue #654 Branch Line Update
DTI_PID/SPPIDConverter/Main.vb | ||
---|---|---|
405 | 405 |
Dim sSymbolUid As String = oSymbolInfo(_XML_SYMBOL_UID).ToString() |
406 | 406 |
Dim dConn1Pos_x As Double = oSymbolInfo(_XML_SYMBOL_DWG_CONN1_POINT_X) |
407 | 407 |
Dim dConn1Pos_y As Double = oSymbolInfo(_XML_SYMBOL_DWG_CONN1_POINT_Y) |
408 | ||
409 | 408 |
Dim sConn1Uid As String = "" |
410 | 409 |
Dim sConn2Uid As String = "" |
411 | ||
412 | 410 |
sConn1Uid = FindConnection(oLine_Dt, oSymbol_Dt, sSymbolUid, dConn1Pos_x, dConn1Pos_y) |
413 | 411 |
If sConn1Uid <> "" Then |
414 | 412 |
oSymbolInfo(_XML_SYMBOL_Conn1_Uid) = sConn1Uid |
... | ... | |
2368 | 2366 |
End If |
2369 | 2367 |
If sID_1 <> "" And sID_2 <> "" Then |
2370 | 2368 |
'PipeRun 합치기 |
2371 |
JoinPipeRun(sID_1, sID_2) |
|
2369 | ||
2372 | 2370 | |
2373 | 2371 |
If bCheckBranchItem Then |
2374 | 2372 |
'모델링 된 PipeLine 데이터 테이블 저장 |
2375 | 2373 |
AddModelingDT(sUid, oCurrentConnector.ModelItemID, oCurrentConnector, dStart_Dwg_x, dStart_Dwg_y, dEnd_Dwg_x, dEnd_Dwg_y) |
2376 | 2374 |
Else |
2375 |
JoinPipeRun(sID_1, sID_2) |
|
2377 | 2376 |
'모델링 된 PipeLine 데이터 테이블 저장 |
2378 | 2377 |
AddModelingDT(sUid, sID_1, oAddConnector, dStart_Dwg_x, dStart_Dwg_y, dEnd_Dwg_x, dEnd_Dwg_y) |
2379 | 2378 |
End If |
... | ... | |
2381 | 2380 |
'모델링 된 PipeLine 데이터 테이블 저장 |
2382 | 2381 |
AddModelingDT(sUid, oCurrentConnector.ModelItemID, oCurrentConnector, dStart_Dwg_x, dStart_Dwg_y, dEnd_Dwg_x, dEnd_Dwg_y) |
2383 | 2382 |
End If |
2384 |
If bCheckBranchItem Then |
|
2383 |
If bCheckBranchItem = False Then
|
|
2385 | 2384 |
'//2018.09.07 LMControl에 따라서 inconsitency가 달라지는듯 확인 |
2386 | 2385 |
If sStartConnectionUid <> "" Then |
2387 | 2386 |
Dim oChangeRow() As DataRow = _ModelingLine_Dt.Select(_XML_LINE_UID & " = '" & sStartConnectionUid & "'") |
... | ... | |
3615 | 3614 | |
3616 | 3615 |
Private Function UpdateCheckBranchLine(ByRef dX As Double, ByRef dY As Double, |
3617 | 3616 |
ByRef oLMConnector As LMConnector, ByRef sUid As String) As Boolean |
3617 |
Dim oDataSource As LMADataSource = _Placement.PIDDataSource |
|
3618 | 3618 |
Dim bCheckBranchItem As Boolean = False |
3619 | 3619 |
Dim iGapCheck As Integer = 0 |
3620 | 3620 |
Try |
... | ... | |
3634 | 3634 |
d기준x = (dModelStartX + dModelEndX) / 2 |
3635 | 3635 |
d기준y = (dModelStartY + dModelEndY) / 2 |
3636 | 3636 | |
3637 | ||
3638 | ||
3639 | 3637 |
Dim dMax_X As Double = 0.0 |
3640 | 3638 |
Dim dMax_Y As Double = 0.0 |
3641 | 3639 |
Dim dMin_X As Double = 0.0 |
... | ... | |
3664 | 3662 |
dX = dMax_X |
3665 | 3663 |
End If |
3666 | 3664 | |
3667 | ||
3668 | 3665 |
Try |
3669 | 3666 |
Dim sModelItemID As String = oModelrow(_XML_LINE_SPID).ToString() |
3670 | 3667 |
sUid = oModelrow(_XML_LINE_UID).ToString() |
3671 |
oRun = _Placement.PIDDataSource.GetPipeRun(sModelItemID)
|
|
3668 |
oRun = oDataSource.GetPipeRun(sModelItemID)
|
|
3672 | 3669 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
3673 | 3670 |
Catch ex As Exception |
3674 | 3671 |
End Try |
3675 | 3672 |
Try |
3676 | 3673 |
If oRun IsNot Nothing Then |
3677 | 3674 |
Dim dResultCalc As Double = -1 |
3678 | ||
3675 |
Dim bBranchFlag As Boolean = False |
|
3676 |
Dim dBranchX As Double = 0 |
|
3677 |
Dim dBranchY As Double = 0 |
|
3679 | 3678 |
For Each objRep In oRun.Representations |
3680 |
Dim sAttriName As String |
|
3681 |
For Each objAttr In objRep.Attributes |
|
3682 |
sAttriName = objAttr.name |
|
3683 |
Next |
|
3679 |
' Dim sAttriName As String |
|
3680 |
'For Each objAttr In objRep.Attributes |
|
3681 |
' sAttriName = objAttr.name |
|
3682 |
'Next |
|
3683 |
'MsgBox(objRep.RepresentationType) |
|
3684 | 3684 |
If objRep.RepresentationType = "Connector" Then |
3685 |
Dim objConnector As LMConnector = _Placement.PIDDataSource.GetConnector(objRep.ID)
|
|
3686 |
Dim sItemStatus As String = objConnector.Attributes("ItemStatus").Value |
|
3687 |
Dim sModelTypeName As String = objConnector.ModelItemObject.Attributes("ItemTypeName").Value |
|
3685 |
Dim objConnector As LMConnector = oDataSource.GetConnector(objRep.ID)
|
|
3686 |
' Dim sItemStatus As String = objConnector.Attributes("ItemStatus").Value
|
|
3687 |
' Dim sModelTypeName As String = objConnector.ModelItemObject.Attributes("ItemTypeName").Value
|
|
3688 | 3688 | |
3689 | 3689 |
'Dim dConn_SX As Double = 0 |
3690 | 3690 |
'Dim dConn_SY As Double = 0 |
... | ... | |
3703 | 3703 |
' dConn_EY = objConnectorVertex.Attributes("YCoordinate").Value |
3704 | 3704 |
'End If |
3705 | 3705 |
Dim dCalc As Double = Math.Abs(dConn_X - dX) + Math.Abs(dConn_Y - dY) |
3706 |
If dResultCalc = -1 Or dResultCalc > dCalc Then |
|
3707 |
dResultCalc = dCalc |
|
3708 |
oLMConnector = objConnector |
|
3709 |
bCheckBranchItem = True |
|
3706 |
If bBranchFlag = False Then |
|
3707 |
If dResultCalc = -1 Or dResultCalc > dCalc Then |
|
3708 |
dResultCalc = dCalc |
|
3709 |
oLMConnector = objConnector |
|
3710 |
bCheckBranchItem = True |
|
3711 |
End If |
|
3712 |
Else |
|
3713 |
If (dConn_X >= dX And dBranchX <= dX And dConn_Y >= dY And dBranchY <= dY) Or |
|
3714 |
(dConn_X <= dX And dBranchX >= dX And dConn_Y <= dY And dBranchY >= dY) Then |
|
3715 |
If dResultCalc = -1 Or dResultCalc > dCalc Then |
|
3716 |
dResultCalc = dCalc |
|
3717 |
oLMConnector = objConnector |
|
3718 |
bCheckBranchItem = True |
|
3719 |
End If |
|
3720 |
End If |
|
3710 | 3721 |
End If |
3711 | 3722 | |
3723 | ||
3712 | 3724 |
'If dConn_EX <> 0 And dConn_EY <> 0 Then |
3713 | 3725 |
' If dConn_SX >= dX And dConn_EX <= dX And dConn_SY >= dY And dConn_EY <= dY Then |
3714 | 3726 |
' oLMConnector = objConnector |
... | ... | |
3728 | 3740 |
'If oLMConnector IsNot Nothing Then |
3729 | 3741 |
' Exit For |
3730 | 3742 |
'End If |
3743 |
ElseIf objRep.RepresentationType = "Branch" Then |
|
3744 |
Dim objConnector As LMSymbol = oDataSource.GetSymbol(objRep.ID) |
|
3745 |
dBranchX = objConnector.Attributes("XCoordinate").Value |
|
3746 |
dBranchY = objConnector.Attributes("YCoordinate").Value |
|
3747 |
bBranchFlag = True |
|
3731 | 3748 |
End If |
3732 | 3749 |
'If objRep.Attributes("RepresentationType").Value = "Connector" And objRep.Attributes("ItemStatus").Value = "Active" Then |
3733 | 3750 |
' Dim objConnector As LMConnector = _Placement.PIDDataSource.GetConnector(objRep.ID) |
... | ... | |
3848 | 3865 |
'오차범위를 줘서 현재선을 통과하는지 체크 |
3849 | 3866 |
'통과하는 상대라인 갯수를 먼저 구한다음 라인 갯수만큼 라인을 그린다. |
3850 | 3867 |
Dim bCheckBranchLine As Boolean = False |
3851 |
'Dim sCurrentDirection As String = "" |
|
3852 | ||
3853 |
'Dim oModel_Dt As New DataTable() |
|
3854 |
'oModel_Dt.Columns.Add("X") |
|
3855 |
'oModel_Dt.Columns.Add("Y") |
|
3856 |
'oModel_Dt.Columns.Add("Type") |
|
3857 |
'oModel_Dt.Columns.Add("SPID") |
|
3858 |
'Dim dGap = 0.001 |
|
3859 |
'If Math.Abs(dStartX - dEndX) > Math.Abs(dStartY - dEndY) Then |
|
3860 |
' sCurrentDirection = "X" |
|
3861 |
' If dStartX > dEndX Then |
|
3862 |
' Dim dTempX As Double = dEndX |
|
3863 |
' dEndX = dStartX |
|
3864 |
' dStartX = dTempX |
|
3865 |
' Dim dTempY As Double = dEndY |
|
3866 |
' dEndY = dStartY |
|
3867 |
' dStartY = dTempY |
|
3868 |
' End If |
|
3869 |
' '현재선이 X축방향 |
|
3870 |
' Try |
|
3871 |
' For Each oModelrow In _ModelingLine_Dt.Rows |
|
3872 |
' Dim dModelStart_X As Double = oModelrow(_XML_LINE_DWG_STARTPOINT_X) |
|
3873 |
' Dim dModelStart_Y As Double = oModelrow(_XML_LINE_DWG_STARTPOINT_Y) |
|
3874 |
' Dim dModelEnd_X As Double = oModelrow(_XML_LINE_DWG_ENDPOINT_X) |
|
3875 |
' Dim dModelEnd_Y As Double = oModelrow(_XML_LINE_DWG_ENDPOINT_Y) |
|
3876 |
' Dim sSPID As String = oModelrow(_XML_LINE_SPID) |
|
3877 |
' If dStartX < dModelStart_X And dStartX < dModelEnd_X And |
|
3878 |
' dEndX > dModelStart_X And dEndX > dModelEnd_X Then |
|
3879 |
' Dim dAddX As Double = 0 |
|
3880 |
' Dim dAddY As Double = dStartY |
|
3881 |
' Dim sType As String = "" |
|
3882 |
' If dStartY = dModelStart_Y Then |
|
3883 |
' dAddX = dModelStart_X |
|
3884 |
' ElseIf dStartY = dModelEnd_Y Then |
|
3885 |
' dAddX = dModelEnd_X |
|
3886 |
' ElseIf dStartY <= dModelStart_Y + dGap And dStartY >= dModelStart_Y - dGap Then |
|
3887 |
' dAddX = dModelStart_X |
|
3888 |
' If dStartY > dModelStart_Y Then |
|
3889 |
' sType = "AddLine" |
|
3890 |
' End If |
|
3891 |
' ElseIf dStartY <= dModelEnd_Y + dGap And dStartY >= dModelEnd_Y - dGap Then |
|
3892 |
' dAddX = dModelEnd_X |
|
3893 |
' If dStartY > dModelEnd_Y Then |
|
3894 |
' sType = "AddLine" |
|
3895 |
' End If |
|
3896 |
' End If |
|
3897 |
' If dAddX <> 0 Then |
|
3898 |
' Dim oDatarow As DataRow = oModel_Dt.NewRow() |
|
3899 |
' oDatarow("X") = dAddX |
|
3900 |
' oDatarow("Y") = dAddY |
|
3901 |
' oDatarow("Type") = sType |
|
3902 |
' oDatarow("SPID") = sSPID |
|
3903 |
' oModel_Dt.Rows.Add(oDatarow) |
|
3904 |
' End If |
|
3905 |
' End If |
|
3906 |
' Next |
|
3907 |
' Catch ex As Exception |
|
3908 |
' End Try |
|
3909 |
'Else |
|
3910 |
' '현재선이 y축방향 |
|
3911 |
' sCurrentDirection = "Y" |
|
3912 |
' Try |
|
3913 |
' For Each oModelrow In _ModelingLine_Dt.Rows |
|
3914 |
' Dim dModelStart_X As Double = oModelrow(_XML_LINE_DWG_STARTPOINT_X) |
|
3915 |
' Dim dModelStart_Y As Double = oModelrow(_XML_LINE_DWG_STARTPOINT_Y) |
|
3916 |
' Dim dModelEnd_X As Double = oModelrow(_XML_LINE_DWG_ENDPOINT_X) |
|
3917 |
' Dim dModelEnd_Y As Double = oModelrow(_XML_LINE_DWG_ENDPOINT_Y) |
|
3918 |
' Dim sSPID As String = oModelrow(_XML_LINE_SPID) |
|
3919 |
' If dStartY < dModelStart_Y And dStartY < dModelEnd_Y And |
|
3920 |
' dEndY > dModelStart_Y And dEndY > dModelEnd_Y Then |
|
3921 |
' Dim dAddX As Double = dStartX |
|
3922 |
' Dim dAddY As Double = 0 |
|
3923 |
' Dim sType As String = "" |
|
3924 |
' If dStartX = dModelStart_X Then |
|
3925 |
' dAddY = dModelStart_Y |
|
3926 |
' ElseIf dStartX = dModelEnd_X Then |
|
3927 |
' dAddY = dModelEnd_Y |
|
3928 |
' ElseIf dStartX <= dModelStart_X + dGap And dStartX >= dModelStart_X - dGap Then |
|
3929 |
' dAddY = dModelStart_Y |
|
3930 |
' If dStartX > dModelStart_X Then |
|
3931 |
' sType = "AddLine" |
|
3932 |
' End If |
|
3933 |
' ElseIf dStartX <= dModelEnd_X + dGap And dStartX >= dModelEnd_X - dGap Then |
|
3934 |
' dAddY = dModelEnd_Y |
|
3935 |
' If dStartX > dModelEnd_X Then |
|
3936 |
' sType = "AddLine" |
|
3937 |
' End If |
|
3938 |
' End If |
|
3939 |
' If dAddX <> 0 Then |
|
3940 |
' Dim oDatarow As DataRow = oModel_Dt.NewRow() |
|
3941 |
' oDatarow("X") = dAddX |
|
3942 |
' oDatarow("Y") = dAddY |
|
3943 |
' oDatarow("Type") = sType |
|
3944 |
' oDatarow("SPID") = sSPID |
|
3945 |
' oModel_Dt.Rows.Add(oDatarow) |
|
3946 |
' End If |
|
3947 |
' End If |
|
3948 |
' Next |
|
3949 |
' Catch ex As Exception |
|
3950 |
' End Try |
|
3951 |
'End If |
|
3952 |
'If oModel_Dt.Rows.Count > 0 Then |
|
3953 |
' If sCurrentDirection = "X" Then |
|
3954 |
' 'X좌표 정렬 |
|
3955 |
' oModel_Dt.DefaultView.Sort = "X desc" |
|
3956 |
' oModel_Dt = oModel_Dt.DefaultView.ToTable(True) |
|
3957 |
' Else |
|
3958 |
' 'Y좌표 정렬 |
|
3959 |
' oModel_Dt.DefaultView.Sort = "Y desc" |
|
3960 |
' oModel_Dt = oModel_Dt.DefaultView.ToTable(True) |
|
3961 |
' End If |
|
3962 |
' Dim oLMConnector As LMConnector = Nothing |
|
3963 |
' Dim oPreLMConnector As LMConnector = Nothing |
|
3964 |
' Dim dStartFlag As Boolean = True |
|
3965 |
' For Each oModelRow In oModel_Dt.Rows |
|
3966 |
' Dim objInputs As PlaceRunInputs |
|
3967 |
' objInputs = New PlaceRunInputs |
|
3968 |
' Dim dX As Double = oModelRow("X") |
|
3969 |
' Dim dY As Double = oModelRow("Y") |
|
3970 |
' Dim sType As String = oModelRow("Type") |
|
3971 |
' Dim sUid As String = "" |
|
3972 |
' CheckConnectionLine(dX, dY, oLMConnector, sUid) |
|
3973 |
' If oLMConnector IsNot Nothing Then |
|
3974 |
' If dStartFlag Then |
|
3975 |
' objInputs.AddPoint(dStartX, dStartY) |
|
3976 |
' objInputs.AddConnectorTarget(oLMConnector, dX, dY) |
|
3977 |
' Else |
|
3978 |
' objInputs.AddConnectorTarget(oPreLMConnector, dStartX, dStartY) |
|
3979 |
' objInputs.AddConnectorTarget(oLMConnector, dX, dY) |
|
3980 |
' End If |
|
3981 |
' oPreLMConnector = LineModeling(objInputs, sSystemPath) |
|
3982 |
' '모델링후 StartX를 현재 X로 변경 |
|
3983 |
' dStartX = dX |
|
3984 |
' dStartY = dY |
|
3985 |
' End If |
|
3986 |
' Next |
|
3987 |
' If oPreLMConnector IsNot Nothing Then |
|
3988 |
' Dim objInputs As PlaceRunInputs |
|
3989 |
' objInputs = New PlaceRunInputs |
|
3990 |
' objInputs.AddConnectorTarget(oPreLMConnector, dStartX, dStartY) |
|
3991 |
' objInputs.AddPoint(dEndX, dEndY) |
|
3992 |
' LineModeling(objInputs, sSystemPath) |
|
3993 |
' End If |
|
3994 |
'End If |
|
3868 |
Dim sCurrentDirection As String = "" |
|
3869 | ||
3870 |
Dim oModel_Dt As New DataTable() |
|
3871 |
oModel_Dt.Columns.Add("X") |
|
3872 |
oModel_Dt.Columns.Add("Y") |
|
3873 |
oModel_Dt.Columns.Add("Type") |
|
3874 |
oModel_Dt.Columns.Add("SPID") |
|
3875 |
Dim dGap = 0.001 |
|
3876 |
If Math.Abs(dStartX - dEndX) > Math.Abs(dStartY - dEndY) Then |
|
3877 |
sCurrentDirection = "X" |
|
3878 |
If dStartX > dEndX Then |
|
3879 |
Dim dTempX As Double = dEndX |
|
3880 |
dEndX = dStartX |
|
3881 |
dStartX = dTempX |
|
3882 |
Dim dTempY As Double = dEndY |
|
3883 |
dEndY = dStartY |
|
3884 |
dStartY = dTempY |
|
3885 |
End If |
|
3886 |
'현재선이 X축방향 |
|
3887 |
Try |
|
3888 |
For Each oModelrow In _ModelingLine_Dt.Rows |
|
3889 |
Dim dModelStart_X As Double = oModelrow(_XML_LINE_DWG_STARTPOINT_X) |
|
3890 |
Dim dModelStart_Y As Double = oModelrow(_XML_LINE_DWG_STARTPOINT_Y) |
|
3891 |
Dim dModelEnd_X As Double = oModelrow(_XML_LINE_DWG_ENDPOINT_X) |
|
3892 |
Dim dModelEnd_Y As Double = oModelrow(_XML_LINE_DWG_ENDPOINT_Y) |
|
3893 |
Dim sSPID As String = oModelrow(_XML_LINE_SPID) |
|
3894 |
If dStartX < dModelStart_X And dStartX < dModelEnd_X And |
|
3895 |
dEndX > dModelStart_X And dEndX > dModelEnd_X Then |
|
3896 |
Dim dAddX As Double = 0 |
|
3897 |
Dim dAddY As Double = dStartY |
|
3898 |
Dim sType As String = "" |
|
3899 |
If dStartY = dModelStart_Y Then |
|
3900 |
dAddX = dModelStart_X |
|
3901 |
ElseIf dStartY = dModelEnd_Y Then |
|
3902 |
dAddX = dModelEnd_X |
|
3903 |
ElseIf dStartY <= dModelStart_Y + dGap And dStartY >= dModelStart_Y - dGap Then |
|
3904 |
dAddX = dModelStart_X |
|
3905 |
If dStartY > dModelStart_Y Then |
|
3906 |
sType = "AddLine" |
|
3907 |
End If |
|
3908 |
ElseIf dStartY <= dModelEnd_Y + dGap And dStartY >= dModelEnd_Y - dGap Then |
|
3909 |
dAddX = dModelEnd_X |
|
3910 |
If dStartY > dModelEnd_Y Then |
|
3911 |
sType = "AddLine" |
|
3912 |
End If |
|
3913 |
End If |
|
3914 |
If dAddX <> 0 Then |
|
3915 |
Dim oDatarow As DataRow = oModel_Dt.NewRow() |
|
3916 |
oDatarow("X") = dAddX |
|
3917 |
oDatarow("Y") = dAddY |
|
3918 |
oDatarow("Type") = sType |
|
3919 |
oDatarow("SPID") = sSPID |
|
3920 |
oModel_Dt.Rows.Add(oDatarow) |
|
3921 |
End If |
|
3922 |
End If |
|
3923 |
Next |
|
3924 |
Catch ex As Exception |
|
3925 |
End Try |
|
3926 |
Else |
|
3927 |
'현재선이 y축방향 |
|
3928 |
sCurrentDirection = "Y" |
|
3929 |
Try |
|
3930 |
For Each oModelrow In _ModelingLine_Dt.Rows |
|
3931 |
Dim dModelStart_X As Double = oModelrow(_XML_LINE_DWG_STARTPOINT_X) |
|
3932 |
Dim dModelStart_Y As Double = oModelrow(_XML_LINE_DWG_STARTPOINT_Y) |
|
3933 |
Dim dModelEnd_X As Double = oModelrow(_XML_LINE_DWG_ENDPOINT_X) |
|
3934 |
Dim dModelEnd_Y As Double = oModelrow(_XML_LINE_DWG_ENDPOINT_Y) |
|
3935 |
Dim sSPID As String = oModelrow(_XML_LINE_SPID) |
|
3936 |
If dStartY < dModelStart_Y And dStartY < dModelEnd_Y And |
|
3937 |
dEndY > dModelStart_Y And dEndY > dModelEnd_Y Then |
|
3938 |
Dim dAddX As Double = dStartX |
|
3939 |
Dim dAddY As Double = 0 |
|
3940 |
Dim sType As String = "" |
|
3941 |
If dStartX = dModelStart_X Then |
|
3942 |
dAddY = dModelStart_Y |
|
3943 |
ElseIf dStartX = dModelEnd_X Then |
|
3944 |
dAddY = dModelEnd_Y |
|
3945 |
ElseIf dStartX <= dModelStart_X + dGap And dStartX >= dModelStart_X - dGap Then |
|
3946 |
dAddY = dModelStart_Y |
|
3947 |
If dStartX > dModelStart_X Then |
|
3948 |
sType = "AddLine" |
|
3949 |
End If |
|
3950 |
ElseIf dStartX <= dModelEnd_X + dGap And dStartX >= dModelEnd_X - dGap Then |
|
3951 |
dAddY = dModelEnd_Y |
|
3952 |
If dStartX > dModelEnd_X Then |
|
3953 |
sType = "AddLine" |
|
3954 |
End If |
|
3955 |
End If |
|
3956 |
If dAddX <> 0 Then |
|
3957 |
Dim oDatarow As DataRow = oModel_Dt.NewRow() |
|
3958 |
oDatarow("X") = dAddX |
|
3959 |
oDatarow("Y") = dAddY |
|
3960 |
oDatarow("Type") = sType |
|
3961 |
oDatarow("SPID") = sSPID |
|
3962 |
oModel_Dt.Rows.Add(oDatarow) |
|
3963 |
End If |
|
3964 |
End If |
|
3965 |
Next |
|
3966 |
Catch ex As Exception |
|
3967 |
End Try |
|
3968 |
End If |
|
3969 | ||
3970 |
'//못미치는 라인은 라인길이를 더한후 나머지 모델링(2018.09.27) |
|
3971 | ||
3972 |
If oModel_Dt.Rows.Count > 0 Then |
|
3973 |
If sCurrentDirection = "X" Then |
|
3974 |
'X좌표 정렬 |
|
3975 |
oModel_Dt.DefaultView.Sort = "X desc" |
|
3976 |
oModel_Dt = oModel_Dt.DefaultView.ToTable(True) |
|
3977 |
Else |
|
3978 |
'Y좌표 정렬 |
|
3979 |
oModel_Dt.DefaultView.Sort = "Y desc" |
|
3980 |
oModel_Dt = oModel_Dt.DefaultView.ToTable(True) |
|
3981 |
End If |
|
3982 |
Dim oLMConnector As LMConnector = Nothing |
|
3983 |
Dim oPreLMConnector As LMConnector = Nothing |
|
3984 |
Dim dStartFlag As Boolean = True |
|
3985 |
For Each oModelRow In oModel_Dt.Rows |
|
3986 |
Dim objInputs As PlaceRunInputs |
|
3987 |
objInputs = New PlaceRunInputs |
|
3988 |
Dim dX As Double = oModelRow("X") |
|
3989 |
Dim dY As Double = oModelRow("Y") |
|
3990 |
Dim sType As String = oModelRow("Type") |
|
3991 |
Dim sUid As String = "" |
|
3992 |
CheckConnectionLine(dX, dY, oLMConnector, sUid) |
|
3993 |
If oLMConnector IsNot Nothing Then |
|
3994 |
If dStartFlag Then |
|
3995 |
objInputs.AddPoint(dStartX, dStartY) |
|
3996 |
objInputs.AddConnectorTarget(oLMConnector, dX, dY) |
|
3997 |
Else |
|
3998 |
objInputs.AddConnectorTarget(oPreLMConnector, dStartX, dStartY) |
|
3999 |
objInputs.AddConnectorTarget(oLMConnector, dX, dY) |
|
4000 |
End If |
|
4001 |
oPreLMConnector = LineModeling(objInputs, sSystemPath) |
|
4002 |
'모델링후 StartX를 현재 X로 변경 |
|
4003 |
dStartX = dX |
|
4004 |
dStartY = dY |
|
4005 |
End If |
|
4006 |
Next |
|
4007 |
If oPreLMConnector IsNot Nothing Then |
|
4008 |
Dim objInputs As PlaceRunInputs |
|
4009 |
objInputs = New PlaceRunInputs |
|
4010 |
objInputs.AddConnectorTarget(oPreLMConnector, dStartX, dStartY) |
|
4011 |
objInputs.AddPoint(dEndX, dEndY) |
|
4012 |
LineModeling(objInputs, sSystemPath) |
|
4013 |
End If |
|
4014 |
End If |
|
3995 | 4015 |
Return bCheckBranchLine |
3996 | 4016 |
End Function |
3997 | 4017 |
내보내기 Unified diff