|
|
|
@@ -404,6 +404,40 @@ Public Class SideEntityControlVM
|
|
|
|
|
|
|
|
|
|
#End Region 'Parameter 5
|
|
|
|
|
|
|
|
|
|
#Region "Parameter 6"
|
|
|
|
|
|
|
|
|
|
Private m_Parameter6_Visibility As Visibility
|
|
|
|
|
Public Property Parameter6_Visibility As Visibility
|
|
|
|
|
Get
|
|
|
|
|
Return m_Parameter6_Visibility
|
|
|
|
|
End Get
|
|
|
|
|
Set(value As Visibility)
|
|
|
|
|
m_Parameter6_Visibility = value
|
|
|
|
|
NotifyPropertyChanged(NameOf(Parameter6_Visibility))
|
|
|
|
|
End Set
|
|
|
|
|
End Property
|
|
|
|
|
|
|
|
|
|
Private m_Parameter6 As Double
|
|
|
|
|
Public Property Parameter6 As String
|
|
|
|
|
Get
|
|
|
|
|
Return LenToString(m_Parameter6, 2)
|
|
|
|
|
End Get
|
|
|
|
|
Set(value As String)
|
|
|
|
|
If m_Mode = ModeOpt.ENGRAVE Then
|
|
|
|
|
StringToLen(value, m_Parameter6)
|
|
|
|
|
m_dEngraveAngle = m_Parameter6
|
|
|
|
|
' Creo le geometrie dei gocciolatoi
|
|
|
|
|
RefreshSideAngleText()
|
|
|
|
|
End If
|
|
|
|
|
End Set
|
|
|
|
|
End Property
|
|
|
|
|
Private Sub SetParameter6(value As Double)
|
|
|
|
|
m_Parameter6 = value
|
|
|
|
|
NotifyPropertyChanged("Parameter6")
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
|
|
Private m_dSideAngle As Double = 0
|
|
|
|
|
|
|
|
|
|
Private m_HeightA As Double = 0
|
|
|
|
@@ -422,6 +456,7 @@ Public Class SideEntityControlVM
|
|
|
|
|
Private m_dDripDepth As Double = 10
|
|
|
|
|
Private m_dEngraveDepth2 As Double = 5
|
|
|
|
|
Private m_dDripShort As Double = 0
|
|
|
|
|
Private m_dEngraveAngle As Double = 0
|
|
|
|
|
|
|
|
|
|
Private m_CallingWndScene As Scene
|
|
|
|
|
Private m_CallingWindow As CallingWindowOpt
|
|
|
|
@@ -480,6 +515,16 @@ Public Class SideEntityControlVM
|
|
|
|
|
End Set
|
|
|
|
|
End Property
|
|
|
|
|
|
|
|
|
|
Private m_Parameter6Msg As String = "Angle"
|
|
|
|
|
Public Property Parameter6Msg As String
|
|
|
|
|
Get
|
|
|
|
|
Return m_Parameter6Msg ' Angolo
|
|
|
|
|
End Get
|
|
|
|
|
Set(value As String)
|
|
|
|
|
m_Parameter6Msg = value
|
|
|
|
|
End Set
|
|
|
|
|
End Property
|
|
|
|
|
|
|
|
|
|
#End Region ' Messages
|
|
|
|
|
|
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
@@ -526,18 +571,29 @@ Public Class SideEntityControlVM
|
|
|
|
|
Parameter2ab_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter4_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter5_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter6_Visibility = Visibility.Hidden
|
|
|
|
|
ElseIf m_Mode = ModeOpt.FILOTOP Then
|
|
|
|
|
Parameter23_Visibility = Windows.Visibility.Hidden
|
|
|
|
|
Parameter2_Visibility = Visibility.Visible
|
|
|
|
|
Parameter2ab_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter4_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter5_Visibility = Visibility.Visible
|
|
|
|
|
Parameter6_Visibility = Visibility.Hidden
|
|
|
|
|
ElseIf m_Mode = ModeOpt.ALZANDFRONT Then
|
|
|
|
|
Parameter2_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter23_Visibility = Windows.Visibility.Visible
|
|
|
|
|
Parameter2ab_Visibility = Visibility.Visible
|
|
|
|
|
Parameter4_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter5_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter6_Visibility = Visibility.Hidden
|
|
|
|
|
ElseIf m_Mode = ModeOpt.ENGRAVE Then
|
|
|
|
|
' Temporaneamente lo disabilito
|
|
|
|
|
Parameter23_Visibility = Windows.Visibility.Visible
|
|
|
|
|
Parameter4_Visibility = Visibility.Visible
|
|
|
|
|
Parameter2ab_Visibility = Visibility.Visible
|
|
|
|
|
Parameter2_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter5_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter6_Visibility = Visibility.Visible
|
|
|
|
|
Else
|
|
|
|
|
' Temporaneamente lo disabilito
|
|
|
|
|
Parameter23_Visibility = Windows.Visibility.Visible
|
|
|
|
@@ -545,6 +601,7 @@ Public Class SideEntityControlVM
|
|
|
|
|
Parameter2ab_Visibility = Visibility.Visible
|
|
|
|
|
Parameter2_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter5_Visibility = Visibility.Hidden
|
|
|
|
|
Parameter6_Visibility = Visibility.Hidden
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
'------------------ VALORI E TITOLI PARAMETRI
|
|
|
|
@@ -576,12 +633,14 @@ Public Class SideEntityControlVM
|
|
|
|
|
m_dDripDepth = GetMainPrivateProfileDouble(S_SIDES, K_DRIPDEPTH, 10)
|
|
|
|
|
m_dDripShort = GetMainPrivateProfileDouble(S_SIDES, K_DRIPSHORT, 0)
|
|
|
|
|
m_dEngraveDepth2 = GetMainPrivateProfileDouble(S_SIDES, K_ENGRAVEDEPTH2, 0)
|
|
|
|
|
m_dEngraveAngle = GetMainPrivateProfileDouble(S_SIDES, K_ENGRAVEANGLE, 0)
|
|
|
|
|
SetParameter1(m_dDripOffset)
|
|
|
|
|
SetParameter2(m_dDripOffset2)
|
|
|
|
|
SetParameter2a(m_nEngrNbr2)
|
|
|
|
|
SetParameter2b(m_dDripOffset2)
|
|
|
|
|
SetParameter3(m_dDripDepth)
|
|
|
|
|
SetParameter4(m_dEngraveDepth2)
|
|
|
|
|
SetParameter6(m_dEngraveAngle)
|
|
|
|
|
|
|
|
|
|
ElseIf m_Mode = ModeOpt.ALZANDFRONT Then
|
|
|
|
|
' definisco i nomi dei campi
|
|
|
|
@@ -1195,7 +1254,11 @@ Public Class SideEntityControlVM
|
|
|
|
|
End While
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Dim ListEngraveSideAng As New List(Of Integer)
|
|
|
|
|
|
|
|
|
|
If m_Mode = ModeOpt.DRIP Then
|
|
|
|
|
' Assegno colore e attributi
|
|
|
|
|
Dim nInd As Integer = 0
|
|
|
|
|
' Esplodo nelle curve componenti
|
|
|
|
|
nCrvId = EgtGetFirstInGroup(DripLayer)
|
|
|
|
|
While nCrvId <> GDB_ID.NULL
|
|
|
|
@@ -1214,14 +1277,70 @@ Public Class SideEntityControlVM
|
|
|
|
|
End While
|
|
|
|
|
Else
|
|
|
|
|
' Assegno colore e attributi
|
|
|
|
|
Dim nInd As Integer = 0
|
|
|
|
|
nCrvId = EgtGetFirstInGroup(DripLayer)
|
|
|
|
|
While nCrvId <> GDB_ID.NULL
|
|
|
|
|
EgtSetColor(nCrvId, COL_MCH_DRIPCUT())
|
|
|
|
|
' EgtSetInfo(nCrvId, INFO_DEPTH, m_dDripDepth)
|
|
|
|
|
'EgtSetInfo(nCrvId, INFO_DEPTH, m_dDripDepth)
|
|
|
|
|
EgtSetInfo(nCrvId, INFO_STRICT, If(m_dDripShort > EPS_SMALL, "3", "0"))
|
|
|
|
|
If nInd = 0 Then
|
|
|
|
|
' solo se m_dEngraveAngle > 0
|
|
|
|
|
If Math.Abs(m_dEngraveAngle) > EPS_ANG_SMALL Then
|
|
|
|
|
' salvo l'Id della curva che deve essere manipolato separatamente
|
|
|
|
|
ListEngraveSideAng.Add(nCrvId)
|
|
|
|
|
Else
|
|
|
|
|
EgtRemoveInfo(nCrvId, INFO_SIDE_ANGLE)
|
|
|
|
|
EgtModifyCurveThickness(nCrvId, -m_dEngraveDepth2)
|
|
|
|
|
End If
|
|
|
|
|
Else
|
|
|
|
|
If nInd = m_nEngrNbr2 Then
|
|
|
|
|
nInd = -1
|
|
|
|
|
End If
|
|
|
|
|
EgtModifyCurveThickness(nCrvId, -m_dEngraveDepth2)
|
|
|
|
|
End If
|
|
|
|
|
nInd = nInd + 1
|
|
|
|
|
If nInd > m_nEngrNbr2 Then nInd = 0
|
|
|
|
|
nCrvId = EgtGetNext(nCrvId)
|
|
|
|
|
End While
|
|
|
|
|
End If
|
|
|
|
|
SplitJointedSideEngrave(ListEngraveSideAng)
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Private Sub SplitJointedSideEngrave(ListEngraveSideAngId As List(Of Integer))
|
|
|
|
|
For Each nCrvId As Integer In ListEngraveSideAngId
|
|
|
|
|
' eventualmente separo il taglio inclinato
|
|
|
|
|
Dim dUs, dUe As Double
|
|
|
|
|
EgtCurveDomain(nCrvId, dUs, dUe)
|
|
|
|
|
Dim dU As Double = dUs
|
|
|
|
|
While dU < dUe ' + EPS_ZERO
|
|
|
|
|
Dim ptCurr As Point3d
|
|
|
|
|
EgtAtParamPoint(nCrvId, dU + 1, nCrvId, ptCurr)
|
|
|
|
|
' separa la curva in questo punto
|
|
|
|
|
Dim nNewCurvId As Integer = GDB_ID.NULL
|
|
|
|
|
If dUe > 1 Then
|
|
|
|
|
nNewCurvId = EgtSplitCurveAtPoint(nCrvId, ptCurr, GDB_RT.LOC)
|
|
|
|
|
Else
|
|
|
|
|
nNewCurvId = nCrvId
|
|
|
|
|
End If
|
|
|
|
|
EgtSetColor(nCrvId, COL_MCH_ONENGRAVE_ANG())
|
|
|
|
|
EgtSetInfo(nCrvId, INFO_SIDE_ANGLE, m_dEngraveAngle)
|
|
|
|
|
' recupero il vettore di estrusione della curva e la direzione della curva
|
|
|
|
|
Dim vtAux As Vector3d
|
|
|
|
|
EgtStartVector(nCrvId, vtAux)
|
|
|
|
|
Dim vtExtrusion As Vector3d
|
|
|
|
|
EgtCurveExtrusion(nCrvId, vtExtrusion)
|
|
|
|
|
' ruoto il vetottore nella nuova direzione
|
|
|
|
|
vtExtrusion.Rotate(vtAux, -m_dEngraveAngle)
|
|
|
|
|
' assegno il vettore di estrusione nella nuova direzione indicata (segno negativo perchè dentro il pezzo)
|
|
|
|
|
EgtModifyCurveExtrusion(nCrvId, vtExtrusion)
|
|
|
|
|
Dim ExtendFactor As Double = New Vector3d(0, 0, 1) * vtExtrusion
|
|
|
|
|
EgtModifyCurveThickness(nCrvId, -m_dDripDepth / ExtendFactor)
|
|
|
|
|
If dUe = 1 Then Exit While
|
|
|
|
|
nCrvId = nNewCurvId
|
|
|
|
|
' aggiorno i valori del dominio della curva che rimane
|
|
|
|
|
EgtCurveDomain(nCrvId, dUs, dUe)
|
|
|
|
|
End While
|
|
|
|
|
Next
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
' Funzione che modifica l'inclinazione di un lato
|
|
|
|
@@ -1382,6 +1501,7 @@ Public Class SideEntityControlVM
|
|
|
|
|
WriteMainPrivateProfileString(S_SIDES, K_ENGRAVEDEPTH, LenToString(m_dDripDepth, 3))
|
|
|
|
|
WriteMainPrivateProfileString(S_SIDES, K_ENGRAVESHORT, LenToString(m_dDripShort, 3))
|
|
|
|
|
WriteMainPrivateProfileString(S_SIDES, K_ENGRAVEDEPTH2, LenToString(m_dEngraveDepth2, 3))
|
|
|
|
|
WriteMainPrivateProfileString(S_SIDES, K_ENGRAVEANGLE, LenToString(m_dEngraveAngle, 3))
|
|
|
|
|
For Each objEntity In m_SideEntityList
|
|
|
|
|
If TypeOf objEntity Is DripEntity Then
|
|
|
|
|
Dim CurrEntity As DripEntity = DirectCast(objEntity, DripEntity)
|
|
|
|
|