개정판 3b7a4470
Branch Rule 업데이트
DTI_PID/SPPIDConverter/Main.vb | ||
---|---|---|
1657 | 1657 |
For Each oSymbolNode As TreeNode In oNode.Nodes |
1658 | 1658 |
Dim sUid As String = oSymbolNode.Name |
1659 | 1659 |
'Dim oSelectRows() As DataRow = oDt.Select("[" & _XML_SYMBOL_UID & "] = '" & sUid & |
1660 |
' "' And [" & _XML_SYMBOL_DRAWING_TF & "] = 'False'") |
|
1661 |
Dim oSelectRows() As DataRow = oDt.Select("[" & _XML_SYMBOL_UID & "] = '" & sUid & "'") |
|
1662 |
If oSelectRows.Length = 1 Then |
|
1663 |
oSelectRows(0)(_XML_SYMBOL_DRAWING_TF) = "FALSE" |
|
1660 |
' "' And [" & _XML_SYMBOL_DRAWING_TF & "] = 'False'") |
|
1661 |
If oSymbolNode.Checked Then |
|
1662 |
Dim oSelectRows() As DataRow = oDt.Select("[" & _XML_SYMBOL_UID & "] = '" & sUid & "'") |
|
1663 |
If oSelectRows.Length = 1 Then |
|
1664 |
oSelectRows(0)(_XML_SYMBOL_DRAWING_TF) = "FALSE" |
|
1664 | 1665 | |
1665 |
If oSymbolNode.Checked Then |
|
1666 |
oSelectRows(0)(_XML_SYMBOL_Check) = "TRUE" |
|
1667 |
Else |
|
1668 |
oSelectRows(0)(_XML_SYMBOL_Check) = "FALSE" |
|
1666 |
If oSymbolNode.Checked Then |
|
1667 | ||
1668 |
oSelectRows(0)(_XML_SYMBOL_Check) = "TRUE" |
|
1669 |
Else |
|
1670 |
oSelectRows(0)(_XML_SYMBOL_Check) = "FALSE" |
|
1671 |
End If |
|
1669 | 1672 |
End If |
1673 | ||
1670 | 1674 |
End If |
1671 | 1675 | |
1672 | 1676 |
Next |
... | ... | |
2536 | 2540 | |
2537 | 2541 |
Dim sConn1LineNo As String = "" |
2538 | 2542 |
Dim sConn2LineNo As String = "" |
2543 |
Dim oLMConnector As LMConnector = Nothing |
|
2539 | 2544 |
Dim oStartLMConnector As LMConnector = Nothing |
2540 | 2545 |
Dim oEndLMConnector As LMConnector = Nothing |
2541 | 2546 |
Dim oLMSymbol1 As LMSymbol = Nothing |
... | ... | |
2566 | 2571 |
Dim dPreConnX As Double = 0 |
2567 | 2572 |
Dim dPreConnY As Double = 0 |
2568 | 2573 | |
2569 |
CheckConnectionLine(oConn1Rows, dStart_Dwg_x, dStart_Dwg_y, oStartLMConnector, dPreConnX, dPreConnY) |
|
2570 |
If oStartLMConnector Is Nothing Then |
|
2571 |
oLMSymbol1 = CheckConnectionSymbolToLine(oConn1Rows, dStart_Dwg_x, dStart_Dwg_y, dCenterPos_x, dCenterPos_y, oStartLMConnector) |
|
2572 |
If oLMSymbol1 IsNot Nothing Then |
|
2573 |
sConn1Type = "Symbol" |
|
2574 |
Else |
|
2575 |
sConn1Type = "" |
|
2576 |
End If |
|
2577 |
Else |
|
2578 |
sConn1Type = "Line" |
|
2579 |
sPreConn1Direction = oConn1Rows(0)(_XML_LINE_Direction).ToString() |
|
2580 |
If sDirection = sPreConn1Direction Then |
|
2581 |
If sDirection = "X" Then |
|
2582 |
dStart_Dwg_y = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_Y) |
|
2583 |
dEnd_Dwg_y = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_Y) |
|
2574 | ||
2575 |
Dim sTargetDirection As String = CheckBranchLine(oLine_Dt.Rows, dStart_Dwg_x, dStart_Dwg_y, dEnd_Dwg_x, dEnd_Dwg_y, oLMConnector) |
|
2576 | ||
2577 |
If sTargetDirection = "" Then |
|
2578 |
CheckConnectionLine(oConn1Rows, dStart_Dwg_x, dStart_Dwg_y, oStartLMConnector, dPreConnX, dPreConnY) |
|
2579 | ||
2580 |
If oStartLMConnector Is Nothing Then |
|
2581 | ||
2582 |
oLMSymbol1 = CheckConnectionSymbolToLine(oConn1Rows, dStart_Dwg_x, dStart_Dwg_y, dCenterPos_x, dCenterPos_y, oStartLMConnector) |
|
2583 |
If oLMSymbol1 IsNot Nothing Then |
|
2584 |
sConn1Type = "Symbol" |
|
2584 | 2585 |
Else |
2585 |
dStart_Dwg_x = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_X) |
|
2586 |
dEnd_Dwg_x = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_X) |
|
2586 |
sConn1Type = "" |
|
2587 |
End If |
|
2588 |
Else |
|
2589 |
sConn1Type = "Line" |
|
2590 |
sPreConn1Direction = oConn1Rows(0)(_XML_LINE_Direction).ToString() |
|
2591 |
If sDirection = sPreConn1Direction Then |
|
2592 |
If sDirection = "X" Then |
|
2593 |
dStart_Dwg_y = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_Y) |
|
2594 |
dEnd_Dwg_y = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_Y) |
|
2595 |
Else |
|
2596 |
dStart_Dwg_x = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_X) |
|
2597 |
dEnd_Dwg_x = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_X) |
|
2598 |
End If |
|
2587 | 2599 |
End If |
2588 |
End If |
|
2589 | 2600 | |
2590 |
End If |
|
2591 |
CheckConnectionLine(oConn2Rows, dEnd_Dwg_x, dEnd_Dwg_y, oEndLMConnector, dPreConnX, dPreConnY) |
|
2592 |
If oEndLMConnector Is Nothing Then |
|
2593 |
oLMSymbol2 = CheckConnectionSymbolToLine(oConn2Rows, dEnd_Dwg_x, dEnd_Dwg_y, dCenterPos_x, dCenterPos_y, oEndLMConnector) |
|
2594 |
If oLMSymbol2 IsNot Nothing Then |
|
2595 |
sConn2Type = "Symbol" |
|
2596 | 2601 |
End If |
2597 |
Else |
|
2598 |
sConn2Type = "Line" |
|
2599 |
sPreConn2Direction = oConn2Rows(0)(_XML_LINE_Direction).ToString() |
|
2600 |
If sDirection = sPreConn2Direction Then |
|
2601 |
If sDirection = "X" Then |
|
2602 |
dStart_Dwg_y = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_Y) |
|
2603 |
dEnd_Dwg_y = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_Y) |
|
2604 |
Else |
|
2605 |
dStart_Dwg_x = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_X) |
|
2606 |
dEnd_Dwg_x = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_X) |
|
2602 |
CheckConnectionLine(oConn2Rows, dEnd_Dwg_x, dEnd_Dwg_y, oEndLMConnector, dPreConnX, dPreConnY) |
|
2603 |
If oEndLMConnector Is Nothing Then |
|
2604 |
oLMSymbol2 = CheckConnectionSymbolToLine(oConn2Rows, dEnd_Dwg_x, dEnd_Dwg_y, dCenterPos_x, dCenterPos_y, oEndLMConnector) |
|
2605 |
If oLMSymbol2 IsNot Nothing Then |
|
2606 |
sConn2Type = "Symbol" |
|
2607 |
End If |
|
2608 |
Else |
|
2609 |
sConn2Type = "Line" |
|
2610 |
sPreConn2Direction = oConn2Rows(0)(_XML_LINE_Direction).ToString() |
|
2611 |
If sDirection = sPreConn2Direction Then |
|
2612 |
If sDirection = "X" Then |
|
2613 |
dStart_Dwg_y = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_Y) |
|
2614 |
dEnd_Dwg_y = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_Y) |
|
2615 |
Else |
|
2616 |
dStart_Dwg_x = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_X) |
|
2617 |
dEnd_Dwg_x = oConn2Rows(0)(_XML_LINE_DWG_STARTPOINT_X) |
|
2618 |
End If |
|
2607 | 2619 |
End If |
2608 | 2620 |
End If |
2621 |
Else |
|
2622 |
If sTargetDirection = "START" Then |
|
2623 |
oStartLMConnector = oLMConnector |
|
2624 |
sConn1Type = "Line" |
|
2625 |
ElseIf sTargetDirection = "END" Then |
|
2626 |
oEndLMConnector = oLMConnector |
|
2627 |
sConn2Type = "Line" |
|
2628 |
End If |
|
2609 | 2629 |
End If |
2630 | ||
2610 | 2631 |
'If iModelingType = 1 Then |
2611 | 2632 |
' If sConn1Type = "Line" Then |
2612 | 2633 |
' CheckConnectionLine(oConn1Rows, dOriginalStart_x, dOriginalStart_y, oStartLMConnector) |
... | ... | |
2819 | 2840 |
If oSymbolNode.Checked Then |
2820 | 2841 |
Try |
2821 | 2842 |
Dim sUid As String = oSymbolNode.Name |
2843 |
If sUid = "152b5931-e7ed-4fe9-bed8-6c01303567b7" Then |
|
2844 |
MessageBox.Show("") |
|
2845 |
End If |
|
2822 | 2846 |
Dim sLineNoUid As String = CLineNo.Uid |
2823 | 2847 |
Dim sReturnUid = sUid |
2824 | 2848 |
' FinalModeling(sUid, oLine_Dt, oSymbol_Dt, oAttribute_Dt) |
... | ... | |
2926 | 2950 |
Dim sLineNoUid As String = CLineNo.Uid |
2927 | 2951 |
Dim sReturnUid = sUid |
2928 | 2952 |
' FinalModeling(sUid, oLine_Dt, oSymbol_Dt, oAttribute_Dt) |
2929 |
Dim oSymbolRows As DataRow() = oSymbol_Dt.Select("[" & _XML_SYMBOL_UID & "]= '" & sReturnUid & "' And [" & _XML_SYMBOL_DRAWING_TF & "] = 'False' And [" &
|
|
2953 |
Dim oSymbolRows As DataRow() = oSymbol_Dt.Select("[" & _XML_SYMBOL_UID & "]= '" & sReturnUid & "' And [" & _XML_SYMBOL_DRAWING_TF & "] = 'FALSE' And [" &
|
|
2930 | 2954 |
_XML_SYMBOL_Check & "] = 'TRUE'") |
2955 | ||
2931 | 2956 |
If oSymbolRows.Count > 0 Then |
2932 | 2957 |
sReturnUid = FinalSymbolModeling(oSymbolRows(0), oLine_Dt, oSymbol_Dt, oAttribute_Dt) |
2933 | 2958 |
Else |
... | ... | |
3537 | 3562 |
Return oLMSymbol |
3538 | 3563 |
End Function |
3539 | 3564 | |
3565 |
''' <summary> |
|
3566 |
''' 라인과 라인이 만나는점이 브런치점인지 확인, 오차범위내 라인보정 |
|
3567 |
''' </summary> |
|
3568 |
''' <param name="oModelingLineRows"></param> |
|
3569 |
''' <param name="dStartX"></param> |
|
3570 |
''' <param name="dStartY"></param> |
|
3571 |
''' <param name="dEndX"></param> |
|
3572 |
''' <param name="dEndY"></param> |
|
3573 |
''' <param name="oLMConnector"></param> |
|
3574 |
''' <returns></returns> |
|
3575 |
Private Function CheckBranchLine(ByVal oModelingLineRows As DataRowCollection, ByRef dStartX As Double, ByRef dStartY As Double, |
|
3576 |
ByRef dEndX As Double, ByRef dEndY As Double, ByRef oLMConnector As LMConnector) As String |
|
3577 |
Dim bConnectionFlag As Boolean = False |
|
3578 |
Dim sBranchDirection As String = "" |
|
3579 |
Try |
|
3580 |
For Each oModelrow In oModelingLineRows |
|
3581 |
Dim dModelStartX As Double |
|
3582 |
Dim dModelStartY As Double |
|
3583 |
Dim dModelEndX As Double |
|
3584 |
Dim dModelEndY As Double |
|
3585 |
Dim dGap As Double = 0.0002 |
|
3586 |
dModelStartX = oModelrow(_XML_LINE_DWG_STARTPOINT_X) |
|
3587 |
dModelStartY = oModelrow(_XML_LINE_DWG_STARTPOINT_Y) |
|
3588 |
dModelEndX = oModelrow(_XML_LINE_DWG_ENDPOINT_X) |
|
3589 |
dModelEndY = oModelrow(_XML_LINE_DWG_ENDPOINT_Y) |
|
3590 | ||
3591 |
'기존라인이 X축방향이라면 현재선은 Y축방향이 되어야됨 |
|
3592 |
If Math.Abs(dModelStartX - dModelEndX) > Math.Abs(dModelStartY - dModelEndY) And |
|
3593 |
Math.Abs(dStartX - dEndX) < Math.Abs(dStartY - dEndY) Then |
|
3594 | ||
3595 |
'기본라인의 X축영역안에 현재선이 있어야됨 |
|
3596 |
' If dModelEndY > dModelStartY Then |
|
3597 |
If (dStartX < dModelEndX And dStartX > dModelStartX) Or |
|
3598 |
(dStartX > dModelEndX And dStartX < dModelStartX) Then |
|
3599 |
'[오차범위 수정] |
|
3600 |
'현재선의 Y축방향이 기존라인의 X축방향을 통과하는지 확인 |
|
3601 |
If dStartY < dEndY Then |
|
3602 |
If dEndY > dModelStartY And dModelStartY > dStartY Then |
|
3603 |
If dEndY - dModelStartY > dModelStartY - dStartY Then |
|
3604 |
'위쪽으로 라인이 나와있을때 |
|
3605 |
'현재선 중 작은 Y좌표를 오차범위만큼 더했을때 기존라인의 Y축보다 큰지확인 |
|
3606 |
'Y축보다 클경우 작은 Y좌표를 기존라인의 Y축에 맞추고 더한 길이만큼 큰 Y좌표에 더한다. |
|
3607 |
If dStartY + dGap >= dModelStartY Then |
|
3608 |
Dim dAddPoint As Double = dModelStartY - dStartY |
|
3609 |
dEndY = dEndY + dAddPoint |
|
3610 |
dStartY = dModelStartY |
|
3611 |
sBranchDirection = "START" |
|
3612 |
End If |
|
3613 |
Else |
|
3614 |
'아래쪽으로 라인이 나와있을때 |
|
3615 |
'현재선 중 큰 Y좌표를 오차범위만큼 뺐을때 기존라인의 Y축보다 작은지확인 |
|
3616 |
'Y축보다 작을경우 큰 Y좌표를 기존라인의 Y축에 맞추고 더한 길이만큼 작은 Y좌표에 뺀다. |
|
3617 |
If dEndY - dGap >= dModelStartY Then |
|
3618 |
Dim dAddPoint As Double = dEndY - dModelStartY |
|
3619 |
dStartY = dStartY - dAddPoint |
|
3620 |
dEndY = dModelStartY |
|
3621 |
sBranchDirection = "END" |
|
3622 |
End If |
|
3623 |
End If |
|
3624 |
Else |
|
3625 |
'현재선의 Y축방향이 기존라인의 X축방향에 못미치는지 확인 |
|
3626 |
If dStartY > dModelStartY Then |
|
3627 |
'기존라인보다 위쪽에 현재선이 있을때 |
|
3628 |
If dStartY - dGap < dModelStartY Then |
|
3629 |
'오차범위만큼 작은 y좌표를 뺐을때 기존라인보다 아래쪽에 있을경우 오차보정 |
|
3630 |
Dim dAddPoint As Double = dStartY - dModelStartY |
|
3631 |
dEndY = dEndY - dAddPoint |
|
3632 |
dStartY = dModelStartY |
|
3633 |
sBranchDirection = "START" |
|
3634 |
End If |
|
3635 |
Else |
|
3636 |
'기존라인보다 아래쪽에 현재선이 있을때 |
|
3637 |
If dEndY + dGap > dModelStartY Then |
|
3638 |
'오차범위만큼 큰 y좌표를 더했을때 기존라인보다 위쪽에 있을경우 오차보정 |
|
3639 |
Dim dAddPoint As Double = dModelStartY - dEndY |
|
3640 |
dEndY = dModelStartY |
|
3641 |
dStartY = dStartY + dAddPoint |
|
3642 |
sBranchDirection = "END" |
|
3643 |
End If |
|
3644 |
End If |
|
3645 |
End If |
|
3646 |
Else |
|
3647 |
If dEndY < dModelStartY And dModelStartY < dStartY Then |
|
3648 |
If dModelStartY - dEndY < dStartY - dModelStartY Then |
|
3649 |
'위쪽으로 라인이 나와있을때 |
|
3650 |
'현재선 중 작은 Y좌표를 오차범위만큼 더했을때 기존라인의 Y축보다 큰지확인 |
|
3651 |
'Y축보다 클경우 작은 Y좌표를 기존라인의 Y축에 맞추고 더한 길이만큼 큰 Y좌표에 더한다. |
|
3652 |
If dEndY + dGap >= dModelStartY Then |
|
3653 |
Dim dAddPoint As Double = dModelStartY - dEndY |
|
3654 |
dStartY = dStartY + dAddPoint |
|
3655 |
dEndY = dModelStartY |
|
3656 |
sBranchDirection = "END" |
|
3657 |
End If |
|
3658 |
Else |
|
3659 |
'아래쪽으로 라인이 나와있을때 |
|
3660 |
'현재선 중 큰 Y좌표를 오차범위만큼 뺐을때 기존라인의 Y축보다 작은지확인 |
|
3661 |
'Y축보다 작을경우 큰 Y좌표를 기존라인의 Y축에 맞추고 더한 길이만큼 작은 Y좌표에 뺀다. |
|
3662 |
If dStartY - dGap >= dModelStartY Then |
|
3663 |
Dim dAddPoint As Double = dStartY - dModelStartY |
|
3664 |
dEndY = dEndY - dAddPoint |
|
3665 |
dStartY = dModelStartY |
|
3666 |
sBranchDirection = "START" |
|
3667 |
End If |
|
3668 |
End If |
|
3669 |
Else |
|
3670 |
If dEndY > dModelStartY Then |
|
3671 |
'기존라인보다 우측에 현재선이 있을때 |
|
3672 |
If dEndY - dGap < dModelStartY Then |
|
3673 |
'오차범위만큼 작은 x좌표를 뺐을때 기존라인보다 좌측에 있을경우 오차보정 |
|
3674 |
Dim dAddPoint As Double = dEndY - dModelStartY |
|
3675 |
dStartY = dStartY - dAddPoint |
|
3676 |
dEndY = dModelStartY |
|
3677 |
sBranchDirection = "END" |
|
3678 |
End If |
|
3679 |
Else |
|
3680 |
'기존라인보다 좌측에 현재선이 있을때 |
|
3681 |
If dStartY + dGap > dModelStartY Then |
|
3682 |
'오차범위만큼 큰 x좌표를 더했을때 기존라인보다 우측에 있을경우 오차보정 |
|
3683 |
Dim dAddPoint As Double = dModelStartY - dStartY |
|
3684 |
dStartY = dModelStartY |
|
3685 |
dEndY = dEndY + dAddPoint |
|
3686 |
sBranchDirection = "START" |
|
3687 |
End If |
|
3688 |
End If |
|
3689 |
End If |
|
3690 |
End If |
|
3691 |
End If |
|
3692 |
'기존라인이 Y축방향이라면 현재선은 X축방향이 되어야됨 |
|
3693 |
ElseIf Math.Abs(dModelStartX - dModelEndX) < Math.Abs(dModelStartY - dModelEndY) And |
|
3694 |
Math.Abs(dStartX - dEndX) > Math.Abs(dStartY - dEndY) Then |
|
3695 | ||
3696 |
'기본라인의 Y축영역안에 현재선이 있어야됨 |
|
3697 |
' If dModelEndY > dModelStartY Then |
|
3698 |
If (dStartY < dModelEndY And dStartY > dModelStartY) Or |
|
3699 |
(dStartY > dModelEndY And dStartY < dModelStartY) Then |
|
3700 |
'[오차범위 수정] |
|
3701 |
'현재선의 X축방향이 기존라인의 Y축방향을 통과하는지 확인 |
|
3702 |
If dStartX < dEndX Then |
|
3703 |
If dEndX > dModelStartX And dModelStartX > dStartX Then |
|
3704 |
If dEndX - dModelStartX > dModelStartX - dStartX Then |
|
3705 |
'우측으로 라인이 나와있을때 |
|
3706 |
'현재선 중 작은 X좌표를 오차범위만큼 더했을때 기존라인의 X축보다 큰지확인 |
|
3707 |
'X축보다 클경우 작은 X좌표를 기존라인의 X축에 맞추고 더한 길이만큼 큰 X좌표에 더한다. |
|
3708 |
If dStartX + dGap >= dModelStartX Then |
|
3709 |
Dim dAddPoint As Double = dModelStartX - dStartX |
|
3710 |
dEndX = dEndX + dAddPoint |
|
3711 |
dStartX = dModelStartX |
|
3712 |
sBranchDirection = "START" |
|
3713 |
End If |
|
3714 |
Else |
|
3715 |
'좌측으로 라인이 나와있을때 |
|
3716 |
'현재선 중 큰 X좌표를 오차범위만큼 뺐을때 기존라인의 X축보다 작은지확인 |
|
3717 |
'X축보다 작을경우 큰 X좌표를 기존라인의 X축에 맞추고 뺀 길이만큼 작은 X좌표에 뺀다. |
|
3718 |
If dEndX - dGap >= dModelStartX Then |
|
3719 |
Dim dAddPoint As Double = dEndX - dModelStartX |
|
3720 |
dStartX = dStartX - dAddPoint |
|
3721 |
dEndX = dModelStartX |
|
3722 |
sBranchDirection = "END" |
|
3723 |
End If |
|
3724 |
End If |
|
3725 |
Else |
|
3726 |
'현재선의 X축방향이 기존라인의 Y축방향에 못미치는지 확인 |
|
3727 |
If dStartX > dModelStartX Then |
|
3728 |
'기존라인보다 우측에 현재선이 있을때 |
|
3729 |
If dStartX - dGap < dModelStartX Then |
|
3730 |
'오차범위만큼 작은 x좌표를 뺐을때 기존라인보다 좌측에 있을경우 오차보정 |
|
3731 |
Dim dAddPoint As Double = dStartX - dModelStartX |
|
3732 |
dEndX = dEndX - dAddPoint |
|
3733 |
dStartX = dModelStartX |
|
3734 |
sBranchDirection = "START" |
|
3735 |
End If |
|
3736 |
Else |
|
3737 |
'기존라인보다 좌측에 현재선이 있을때 |
|
3738 |
If dEndX + dGap > dModelStartX Then |
|
3739 |
'오차범위만큼 큰 x좌표를 더했을때 기존라인보다 우측에 있을경우 오차보정 |
|
3740 |
Dim dAddPoint As Double = dModelStartX - dEndX |
|
3741 |
dEndX = dModelStartX |
|
3742 |
dStartX = dStartX + dAddPoint |
|
3743 |
sBranchDirection = "END" |
|
3744 |
End If |
|
3745 |
End If |
|
3746 |
End If |
|
3747 |
Else |
|
3748 |
If dEndX < dModelStartX And dModelStartX < dStartX Then |
|
3749 |
If dModelStartX - dEndX < dStartX - dModelStartX Then |
|
3750 |
'우측으로 라인이 나와있을때 |
|
3751 |
'현재선 중 작은 X좌표를 오차범위만큼 더했을때 기존라인의 X축보다 큰지확인 |
|
3752 |
'X축보다 클경우 작은 X좌표를 기존라인의 X축에 맞추고 더한 길이만큼 큰 X좌에 더한다. |
|
3753 |
If dEndX + dGap >= dModelStartX Then |
|
3754 |
Dim dAddPoint As Double = dModelStartX - dEndX |
|
3755 |
dStartX = dStartX + dAddPoint |
|
3756 |
dEndX = dModelStartX |
|
3757 |
sBranchDirection = "END" |
|
3758 |
End If |
|
3759 |
Else |
|
3760 |
'좌측으로 라인이 나와있을때 |
|
3761 |
'현재선 중 큰 X좌표를 오차범위만큼 뺐을때 기존라인의 X축보다 작은지확인 |
|
3762 |
'X축보다 작을경우 큰 X좌표를 기존라인의 X축에 맞추고 뺀 길이만큼 작은 X좌표에 뺀다. |
|
3763 |
If dStartX - dGap >= dModelStartX Then |
|
3764 |
Dim dAddPoint As Double = dStartX - dModelStartX |
|
3765 |
dEndX = dEndX - dAddPoint |
|
3766 |
dStartX = dModelStartX |
|
3767 |
sBranchDirection = "START" |
|
3768 |
End If |
|
3769 | ||
3770 |
End If |
|
3771 |
Else |
|
3772 |
If dEndX > dModelStartX Then |
|
3773 |
'기존라인보다 우측에 현재선이 있을때 |
|
3774 |
If dEndX - dGap < dModelStartX Then |
|
3775 |
'오차범위만큼 작은 x좌표를 뺐을때 기존라인보다 좌측에 있을경우 오차보정 |
|
3776 |
Dim dAddPoint As Double = dEndX - dModelStartX |
|
3777 |
dStartX = dStartX - dAddPoint |
|
3778 |
dEndX = dModelStartX |
|
3779 |
sBranchDirection = "END" |
|
3780 |
End If |
|
3781 |
Else |
|
3782 |
'기존라인보다 좌측에 현재선이 있을때 |
|
3783 |
If dStartX + dGap > dModelStartX Then |
|
3784 |
'오차범위만큼 큰 x좌표를 더했을때 기존라인보다 우측에 있을경우 오차보정 |
|
3785 |
Dim dAddPoint As Double = dModelStartX - dStartX |
|
3786 |
dStartX = dModelStartX |
|
3787 |
dEndX = dEndX + dAddPoint |
|
3788 |
sBranchDirection = "START" |
|
3789 |
End If |
|
3790 |
End If |
|
3791 |
End If |
|
3792 |
End If |
|
3793 |
End If |
|
3794 |
End If |
|
3795 |
Next |
|
3796 |
Catch ex As Exception |
|
3797 |
bConnectionFlag = False |
|
3798 |
oLMConnector = Nothing |
|
3799 |
End Try |
|
3800 |
Return sBranchDirection |
|
3801 | ||
3802 |
End Function |
|
3803 | ||
3804 |
''' <summary> |
|
3805 |
''' 라인과 특정 포인트에 커넥션을 확인하는 메서드 |
|
3806 |
''' </summary> |
|
3807 |
''' <param name="oModelingLineRows"></param> |
|
3808 |
''' <param name="dX"></param> |
|
3809 |
''' <param name="dY"></param> |
|
3810 |
''' <param name="oLMConnector"></param> |
|
3811 |
''' <param name="dPreConnX"></param> |
|
3812 |
''' <param name="dPreConnY"></param> |
|
3813 |
''' <returns></returns> |
|
3814 | ||
3815 | ||
3540 | 3816 |
Private Function CheckConnectionLine(ByVal oModelingLineRows() As DataRow, ByVal dX As Double, ByVal dY As Double, |
3541 | 3817 |
ByRef oLMConnector As LMConnector, ByRef dPreConnX As Double, ByRef dPreConnY As Double) As Boolean |
3542 | 3818 |
Dim bConnectionFlag As Boolean = False |
... | ... | |
3548 | 3824 |
Dim dGap As Double = 0.0002 |
3549 | 3825 |
Dim oRun As LMPipeRun = Nothing |
3550 | 3826 |
'Dim sStartPoint As String = oModelrow(_XML_LINE_STARTPOINT) |
3551 |
' Dim sEndPoint As String = oModelrow(_XML_LINE_ENDPOINT)
|
|
3827 |
'Dim sEndPoint As String = oModelrow(_XML_LINE_ENDPOINT) |
|
3552 | 3828 |
Dim dModelStartX As Double |
3553 | 3829 |
Dim dModelStartY As Double |
3554 | 3830 |
Dim dModelEndX As Double |
3555 | 3831 |
Dim dModelEndY As Double |
3556 |
' ConvertPointBystring(sStartPoint, dModelStartX, dModelStartY)
|
|
3557 |
' ConvertPointBystring(sEndPoint, dModelEndX, dModelEndY)
|
|
3558 |
' ConvertPointByImage(dModelStartX, dModelStartY, _IMG_X, _IMG_Y)
|
|
3832 |
'ConvertPointBystring(sStartPoint, dModelStartX, dModelStartY) |
|
3833 |
'ConvertPointBystring(sEndPoint, dModelEndX, dModelEndY) |
|
3834 |
'ConvertPointByImage(dModelStartX, dModelStartY, _IMG_X, _IMG_Y) |
|
3559 | 3835 |
'ConvertPointByImage(dModelEndX, dModelEndY, _IMG_X, _IMG_Y) |
3560 | ||
3561 | 3836 |
dModelStartX = oModelrow(_XML_LINE_DWG_STARTPOINT_X) |
3562 | 3837 |
dModelStartY = oModelrow(_XML_LINE_DWG_STARTPOINT_Y) |
3563 | 3838 |
dModelEndX = oModelrow(_XML_LINE_DWG_ENDPOINT_X) |
... | ... | |
3569 | 3844 |
oRun = _Placement.PIDDataSource.GetPipeRun(oLMConnector.ModelItemID) |
3570 | 3845 |
Catch ex As Exception |
3571 | 3846 |
End Try |
3572 | ||
3573 | ||
3574 | 3847 |
Try |
3575 | 3848 |
If oRun IsNot Nothing Then |
3576 | 3849 |
Dim dResultCalc As Double = -1 |
... | ... | |
3590 | 3863 |
End If |
3591 | 3864 |
Next |
3592 | 3865 |
End If |
3593 | ||
3594 | 3866 |
Catch ex As Exception |
3595 | 3867 |
End Try |
3596 | 3868 |
Next |
3597 | ||
3598 | 3869 |
Catch ex As Exception |
3599 | 3870 |
bConnectionFlag = False |
3600 | 3871 |
oLMConnector = Nothing |
... | ... | |
5177 | 5448 |
End Function |
5178 | 5449 | |
5179 | 5450 |
Private Sub LoadXmlToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles LoadXmlToolStripMenuItem.Click |
5451 | ||
5180 | 5452 |
If (FolderBrowserDialog1.ShowDialog() = DialogResult.OK) Then |
5181 | 5453 |
LoadDB() |
5182 | 5454 |
LoadXmlItem(FolderBrowserDialog1.SelectedPath) |
내보내기 Unified diff