개정판 73bfb231
Branch Rule Update
DTI_PID/SPPIDConverter/Main.vb | ||
---|---|---|
2705 | 2705 |
'objInputs.AddConnectorTarget(oEndLMConnector, dEnd_Dwg_x, dOriginalEnd_y) |
2706 | 2706 |
End If |
2707 | 2707 |
If sConn1Type <> "" And sConn2Type <> "" Then |
2708 |
sFirstUid = CheckExistModeling(oConn1Rows(0)) |
|
2709 |
sSecondUid = CheckExistModeling(oConn2Rows(0)) |
|
2708 |
If oConn1Rows.Count > 0 Then |
|
2709 |
sFirstUid = CheckExistModeling(oConn1Rows(0)) |
|
2710 |
End If |
|
2711 |
If oConn2Rows.Count > 0 Then |
|
2712 |
sSecondUid = CheckExistModeling(oConn2Rows(0)) |
|
2713 |
End If |
|
2714 |
|
|
2710 | 2715 |
ElseIf sConn1Type <> "" And sConn2Type = "" Then |
2711 |
sFirstUid = CheckExistModeling(oConn1Rows(0)) |
|
2716 |
If oConn1Rows.Count > 0 Then |
|
2717 |
sFirstUid = CheckExistModeling(oConn1Rows(0)) |
|
2718 |
End If |
|
2719 |
|
|
2712 | 2720 |
ElseIf sConn1Type = "" And sConn2Type <> "" Then |
2713 |
sSecondUid = CheckExistModeling(oConn2Rows(0)) |
|
2721 |
If oConn2Rows.Count > 0 Then |
|
2722 |
sSecondUid = CheckExistModeling(oConn2Rows(0)) |
|
2723 |
End If |
|
2724 |
|
|
2714 | 2725 |
End If |
2715 | 2726 |
|
2716 | 2727 |
If sFirstUid <> "" And sSecondUid <> "" Then |
... | ... | |
2783 | 2794 |
sID_2 = oCurrentConnector.ModelItemID |
2784 | 2795 |
End If |
2785 | 2796 |
If sID_1 <> "" And sID_2 <> "" Then |
2786 |
'Dim objSurvivorItem As LMAItem = Nothing
|
|
2787 |
'Dim oPipeRun1 As LMPipeRun = oPidDataSource.GetPipeRun(sID_1)
|
|
2788 |
'Dim oPipeRun2 As LMPipeRun = oPidDataSource.GetPipeRun(sID_2)
|
|
2789 |
'_Placement.PIDJoinRuns(oPipeRun1, oPipeRun2)
|
|
2797 |
Dim objSurvivorItem As LMAItem = Nothing |
|
2798 |
Dim oPipeRun1 As LMPipeRun = oPidDataSource.GetPipeRun(sID_1) |
|
2799 |
Dim oPipeRun2 As LMPipeRun = oPidDataSource.GetPipeRun(sID_2) |
|
2800 |
_Placement.PIDJoinRuns(oPipeRun1, oPipeRun2) |
|
2790 | 2801 |
End If |
2791 | 2802 |
Else |
2792 | 2803 |
sReturnUid = "" |
... | ... | |
3582 | 3593 |
Dim dModelStartY As Double |
3583 | 3594 |
Dim dModelEndX As Double |
3584 | 3595 |
Dim dModelEndY As Double |
3585 |
Dim dGap As Double = 0.0002
|
|
3596 |
Dim dGap As Double = 0.002 |
|
3586 | 3597 |
dModelStartX = oModelrow(_XML_LINE_DWG_STARTPOINT_X) |
3587 | 3598 |
dModelStartY = oModelrow(_XML_LINE_DWG_STARTPOINT_Y) |
3588 | 3599 |
dModelEndX = oModelrow(_XML_LINE_DWG_ENDPOINT_X) |
... | ... | |
3604 | 3615 |
'위쪽으로 라인이 나와있을때 |
3605 | 3616 |
'현재선 중 작은 Y좌표를 오차범위만큼 더했을때 기존라인의 Y축보다 큰지확인 |
3606 | 3617 |
'Y축보다 클경우 작은 Y좌표를 기존라인의 Y축에 맞추고 더한 길이만큼 큰 Y좌표에 더한다. |
3607 |
If dStartY + dGap >= dModelStartY Then
|
|
3618 |
If Math.Abs(dStartY - dModelStartY) <= dGap Then
|
|
3608 | 3619 |
Dim dAddPoint As Double = dModelStartY - dStartY |
3609 | 3620 |
dEndY = dEndY + dAddPoint |
3610 | 3621 |
dStartY = dModelStartY |
3611 | 3622 |
sBranchDirection = "START" |
3623 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3624 |
Exit For |
|
3612 | 3625 |
End If |
3613 | 3626 |
Else |
3614 | 3627 |
'아래쪽으로 라인이 나와있을때 |
3615 | 3628 |
'현재선 중 큰 Y좌표를 오차범위만큼 뺐을때 기존라인의 Y축보다 작은지확인 |
3616 | 3629 |
'Y축보다 작을경우 큰 Y좌표를 기존라인의 Y축에 맞추고 더한 길이만큼 작은 Y좌표에 뺀다. |
3617 |
If dEndY - dGap >= dModelStartY Then
|
|
3630 |
If Math.Abs(dEndY - dModelStartY) <= dGap Then
|
|
3618 | 3631 |
Dim dAddPoint As Double = dEndY - dModelStartY |
3619 | 3632 |
dStartY = dStartY - dAddPoint |
3620 | 3633 |
dEndY = dModelStartY |
3621 | 3634 |
sBranchDirection = "END" |
3635 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3636 |
Exit For |
|
3622 | 3637 |
End If |
3623 | 3638 |
End If |
3624 | 3639 |
Else |
3625 | 3640 |
'현재선의 Y축방향이 기존라인의 X축방향에 못미치는지 확인 |
3626 | 3641 |
If dStartY > dModelStartY Then |
3627 | 3642 |
'기존라인보다 위쪽에 현재선이 있을때 |
3628 |
If dStartY - dGap < dModelStartY Then
|
|
3643 |
If Math.Abs(dStartY - dModelStartY) <= dGap Then
|
|
3629 | 3644 |
'오차범위만큼 작은 y좌표를 뺐을때 기존라인보다 아래쪽에 있을경우 오차보정 |
3630 | 3645 |
Dim dAddPoint As Double = dStartY - dModelStartY |
3631 | 3646 |
dEndY = dEndY - dAddPoint |
3632 | 3647 |
dStartY = dModelStartY |
3633 | 3648 |
sBranchDirection = "START" |
3649 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3650 |
Exit For |
|
3634 | 3651 |
End If |
3635 | 3652 |
Else |
3636 | 3653 |
'기존라인보다 아래쪽에 현재선이 있을때 |
3637 |
If dEndY + dGap > dModelStartY Then
|
|
3654 |
If Math.Abs(dEndY - dModelStartY) <= dGap Then
|
|
3638 | 3655 |
'오차범위만큼 큰 y좌표를 더했을때 기존라인보다 위쪽에 있을경우 오차보정 |
3639 | 3656 |
Dim dAddPoint As Double = dModelStartY - dEndY |
3640 | 3657 |
dEndY = dModelStartY |
3641 | 3658 |
dStartY = dStartY + dAddPoint |
3642 | 3659 |
sBranchDirection = "END" |
3660 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3661 |
Exit For |
|
3643 | 3662 |
End If |
3644 | 3663 |
End If |
3645 | 3664 |
End If |
... | ... | |
3649 | 3668 |
'위쪽으로 라인이 나와있을때 |
3650 | 3669 |
'현재선 중 작은 Y좌표를 오차범위만큼 더했을때 기존라인의 Y축보다 큰지확인 |
3651 | 3670 |
'Y축보다 클경우 작은 Y좌표를 기존라인의 Y축에 맞추고 더한 길이만큼 큰 Y좌표에 더한다. |
3652 |
If dEndY + dGap >= dModelStartY Then
|
|
3671 |
If Math.Abs(dEndY - dModelStartY) <= dGap Then
|
|
3653 | 3672 |
Dim dAddPoint As Double = dModelStartY - dEndY |
3654 | 3673 |
dStartY = dStartY + dAddPoint |
3655 | 3674 |
dEndY = dModelStartY |
3656 | 3675 |
sBranchDirection = "END" |
3676 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3677 |
Exit For |
|
3657 | 3678 |
End If |
3658 | 3679 |
Else |
3659 | 3680 |
'아래쪽으로 라인이 나와있을때 |
3660 | 3681 |
'현재선 중 큰 Y좌표를 오차범위만큼 뺐을때 기존라인의 Y축보다 작은지확인 |
3661 | 3682 |
'Y축보다 작을경우 큰 Y좌표를 기존라인의 Y축에 맞추고 더한 길이만큼 작은 Y좌표에 뺀다. |
3662 |
If dStartY - dGap >= dModelStartY Then
|
|
3683 |
If Math.Abs(dStartY - dModelStartY) <= dGap Then
|
|
3663 | 3684 |
Dim dAddPoint As Double = dStartY - dModelStartY |
3664 | 3685 |
dEndY = dEndY - dAddPoint |
3665 | 3686 |
dStartY = dModelStartY |
3666 | 3687 |
sBranchDirection = "START" |
3688 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3689 |
Exit For |
|
3667 | 3690 |
End If |
3668 | 3691 |
End If |
3669 | 3692 |
Else |
3670 | 3693 |
If dEndY > dModelStartY Then |
3671 | 3694 |
'기존라인보다 우측에 현재선이 있을때 |
3672 |
If dEndY - dGap < dModelStartY Then
|
|
3695 |
If Math.Abs(dEndY - dModelStartY) <= dGap Then
|
|
3673 | 3696 |
'오차범위만큼 작은 x좌표를 뺐을때 기존라인보다 좌측에 있을경우 오차보정 |
3674 | 3697 |
Dim dAddPoint As Double = dEndY - dModelStartY |
3675 | 3698 |
dStartY = dStartY - dAddPoint |
3676 | 3699 |
dEndY = dModelStartY |
3677 | 3700 |
sBranchDirection = "END" |
3701 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3702 |
Exit For |
|
3678 | 3703 |
End If |
3679 | 3704 |
Else |
3680 | 3705 |
'기존라인보다 좌측에 현재선이 있을때 |
3681 |
If dStartY + dGap > dModelStartY Then
|
|
3706 |
If Math.Abs(dStartY - dModelStartY) <= dGap Then
|
|
3682 | 3707 |
'오차범위만큼 큰 x좌표를 더했을때 기존라인보다 우측에 있을경우 오차보정 |
3683 | 3708 |
Dim dAddPoint As Double = dModelStartY - dStartY |
3684 | 3709 |
dStartY = dModelStartY |
3685 | 3710 |
dEndY = dEndY + dAddPoint |
3686 | 3711 |
sBranchDirection = "START" |
3712 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3713 |
Exit For |
|
3687 | 3714 |
End If |
3688 | 3715 |
End If |
3689 | 3716 |
End If |
... | ... | |
3705 | 3732 |
'우측으로 라인이 나와있을때 |
3706 | 3733 |
'현재선 중 작은 X좌표를 오차범위만큼 더했을때 기존라인의 X축보다 큰지확인 |
3707 | 3734 |
'X축보다 클경우 작은 X좌표를 기존라인의 X축에 맞추고 더한 길이만큼 큰 X좌표에 더한다. |
3708 |
If dStartX + dGap >= dModelStartX Then
|
|
3735 |
If Math.Abs(dStartX - dModelStartX) <= dGap Then
|
|
3709 | 3736 |
Dim dAddPoint As Double = dModelStartX - dStartX |
3710 | 3737 |
dEndX = dEndX + dAddPoint |
3711 | 3738 |
dStartX = dModelStartX |
3712 | 3739 |
sBranchDirection = "START" |
3740 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3741 |
Exit For |
|
3713 | 3742 |
End If |
3714 | 3743 |
Else |
3715 | 3744 |
'좌측으로 라인이 나와있을때 |
3716 | 3745 |
'현재선 중 큰 X좌표를 오차범위만큼 뺐을때 기존라인의 X축보다 작은지확인 |
3717 | 3746 |
'X축보다 작을경우 큰 X좌표를 기존라인의 X축에 맞추고 뺀 길이만큼 작은 X좌표에 뺀다. |
3718 |
If dEndX - dGap >= dModelStartX Then
|
|
3747 |
If Math.Abs(dEndX - dModelStartX) <= dGap Then
|
|
3719 | 3748 |
Dim dAddPoint As Double = dEndX - dModelStartX |
3720 | 3749 |
dStartX = dStartX - dAddPoint |
3721 | 3750 |
dEndX = dModelStartX |
3722 | 3751 |
sBranchDirection = "END" |
3752 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3753 |
Exit For |
|
3723 | 3754 |
End If |
3724 | 3755 |
End If |
3725 | 3756 |
Else |
3726 | 3757 |
'현재선의 X축방향이 기존라인의 Y축방향에 못미치는지 확인 |
3727 | 3758 |
If dStartX > dModelStartX Then |
3728 | 3759 |
'기존라인보다 우측에 현재선이 있을때 |
3729 |
If dStartX - dGap < dModelStartX Then
|
|
3760 |
If Math.Abs(dStartX - dModelStartX) <= dGap Then
|
|
3730 | 3761 |
'오차범위만큼 작은 x좌표를 뺐을때 기존라인보다 좌측에 있을경우 오차보정 |
3731 | 3762 |
Dim dAddPoint As Double = dStartX - dModelStartX |
3732 | 3763 |
dEndX = dEndX - dAddPoint |
3733 | 3764 |
dStartX = dModelStartX |
3734 | 3765 |
sBranchDirection = "START" |
3766 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3767 |
Exit For |
|
3735 | 3768 |
End If |
3736 | 3769 |
Else |
3737 | 3770 |
'기존라인보다 좌측에 현재선이 있을때 |
3738 |
If dEndX + dGap > dModelStartX Then
|
|
3771 |
If Math.Abs(dEndX - dModelStartX) <= dGap Then
|
|
3739 | 3772 |
'오차범위만큼 큰 x좌표를 더했을때 기존라인보다 우측에 있을경우 오차보정 |
3740 | 3773 |
Dim dAddPoint As Double = dModelStartX - dEndX |
3741 | 3774 |
dEndX = dModelStartX |
3742 | 3775 |
dStartX = dStartX + dAddPoint |
3743 | 3776 |
sBranchDirection = "END" |
3777 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3778 |
Exit For |
|
3744 | 3779 |
End If |
3745 | 3780 |
End If |
3746 | 3781 |
End If |
... | ... | |
3750 | 3785 |
'우측으로 라인이 나와있을때 |
3751 | 3786 |
'현재선 중 작은 X좌표를 오차범위만큼 더했을때 기존라인의 X축보다 큰지확인 |
3752 | 3787 |
'X축보다 클경우 작은 X좌표를 기존라인의 X축에 맞추고 더한 길이만큼 큰 X좌에 더한다. |
3753 |
If dEndX + dGap >= dModelStartX Then
|
|
3788 |
If Math.Abs(dModelStartX - dEndX) <= dGap Then
|
|
3754 | 3789 |
Dim dAddPoint As Double = dModelStartX - dEndX |
3755 | 3790 |
dStartX = dStartX + dAddPoint |
3756 | 3791 |
dEndX = dModelStartX |
3757 | 3792 |
sBranchDirection = "END" |
3793 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3794 |
Exit For |
|
3758 | 3795 |
End If |
3759 | 3796 |
Else |
3760 | 3797 |
'좌측으로 라인이 나와있을때 |
3761 | 3798 |
'현재선 중 큰 X좌표를 오차범위만큼 뺐을때 기존라인의 X축보다 작은지확인 |
3762 | 3799 |
'X축보다 작을경우 큰 X좌표를 기존라인의 X축에 맞추고 뺀 길이만큼 작은 X좌표에 뺀다. |
3763 |
If dStartX - dGap >= dModelStartX Then
|
|
3800 |
If Math.Abs(dStartX - dModelStartX) <= dGap Then
|
|
3764 | 3801 |
Dim dAddPoint As Double = dStartX - dModelStartX |
3765 | 3802 |
dEndX = dEndX - dAddPoint |
3766 | 3803 |
dStartX = dModelStartX |
3767 | 3804 |
sBranchDirection = "START" |
3805 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3806 |
Exit For |
|
3768 | 3807 |
End If |
3769 | 3808 |
|
3770 | 3809 |
End If |
3771 | 3810 |
Else |
3772 | 3811 |
If dEndX > dModelStartX Then |
3773 | 3812 |
'기존라인보다 우측에 현재선이 있을때 |
3774 |
If dEndX - dGap < dModelStartX Then
|
|
3813 |
If Math.Abs(dEndX - dModelStartX) <= dGap Then
|
|
3775 | 3814 |
'오차범위만큼 작은 x좌표를 뺐을때 기존라인보다 좌측에 있을경우 오차보정 |
3776 | 3815 |
Dim dAddPoint As Double = dEndX - dModelStartX |
3777 | 3816 |
dStartX = dStartX - dAddPoint |
3778 | 3817 |
dEndX = dModelStartX |
3779 | 3818 |
sBranchDirection = "END" |
3819 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3820 |
Exit For |
|
3780 | 3821 |
End If |
3781 | 3822 |
Else |
3782 | 3823 |
'기존라인보다 좌측에 현재선이 있을때 |
3783 |
If dStartX + dGap > dModelStartX Then
|
|
3824 |
If Math.Abs(dStartX - dModelStartX) <= dGap Then
|
|
3784 | 3825 |
'오차범위만큼 큰 x좌표를 더했을때 기존라인보다 우측에 있을경우 오차보정 |
3785 | 3826 |
Dim dAddPoint As Double = dModelStartX - dStartX |
3786 | 3827 |
dStartX = dModelStartX |
3787 | 3828 |
dEndX = dEndX + dAddPoint |
3788 | 3829 |
sBranchDirection = "START" |
3830 |
oLMConnector = oModelrow(_XML_LINE_LMCONNECTOR) |
|
3831 |
Exit For |
|
3789 | 3832 |
End If |
3790 | 3833 |
End If |
3791 | 3834 |
End If |
내보내기 Unified diff