OmagOFFICE 2.2h2:

-> gestione delle foto da databese OmagPHOTO con l'utilizzo della libreria EgtSTONELib.
This commit is contained in:
Nicola Pievani
2020-08-18 15:45:17 +00:00
parent c4f8ed82d5
commit ecf3821d08
25 changed files with 784 additions and 212 deletions
+92 -29
View File
@@ -8,6 +8,7 @@ Public Class SideEntityControlVM
Public Enum ModeOpt As Integer
SIDEANGLE = 0
DRIP = 1
ENGRAVE = 2
End Enum
Public Enum CallingWindowOpt As Integer
@@ -34,6 +35,7 @@ Public Class SideEntityControlVM
Public ReadOnly Property Legenda_Visibility As Visibility
Get
If m_Mode = SideEntityControlVM.ModeOpt.DRIP OrElse
m_Mode = SideEntityControlVM.ModeOpt.ENGRAVE OrElse
SideEntityControlVM.m_SideAngleCheck OrElse
m_SideEntityList.Count() = 0 Then
Return Visibility.Collapsed
@@ -72,12 +74,18 @@ Public Class SideEntityControlVM
Private m_Parameter1 As Double
Public Property Parameter1 As String
Get
Return DoubleToString(m_Parameter1, -2)
If m_Mode = ModeOpt.SIDEANGLE Then
Return DoubleToString(m_Parameter1, 2)
Else
Return LenToString(m_Parameter1, -2)
End If
End Get
Set(value As String)
StringToDouble(value, m_Parameter1)
SideAngleEntity.m_Parameter1 = m_Parameter1
'StringToLen(value, m_Parameter1)
'SideAngleEntity.m_Parameter1 = m_Parameter1
If m_Mode = ModeOpt.SIDEANGLE Then
StringToDouble(value, m_Parameter1)
SideAngleEntity.m_Parameter1 = m_Parameter1
' ciclo sui checkbox calcolati sul numero di lati inclinabili presenti
For Index As Integer = 0 To m_SideEntityList.Count - 1
' Nuovo angolo di inclinazione
@@ -85,7 +93,7 @@ Public Class SideEntityControlVM
' Se checked lo imposto al valore letto dalla TxBx
If m_SideEntityList(Index).bIsChecked Then
StringToDouble(value, dSideAngle)
' altrimenti lo imposto a zero
' altrimenti lo imposto a zero
Else
dSideAngle = 0
End If
@@ -95,6 +103,7 @@ Public Class SideEntityControlVM
' Aggiorno tutti i testi
RefreshSideAngleText()
Else
StringToLen(value, m_Parameter1)
' Recupero il valore
StringToLen(value, m_dDripOffset)
' Creo le geometrie dei gocciolatoi
@@ -111,15 +120,44 @@ Public Class SideEntityControlVM
Private m_Parameter2 As Double
Public Property Parameter2 As String
Get
Return LenToString(m_Parameter2, -2)
If m_Mode = ModeOpt.SIDEANGLE Then
Return LenToString(m_Parameter2, 2)
Else
Return LenToString(m_Parameter2, -2)
End If
End Get
Set(value As String)
If m_Mode = ModeOpt.DRIP Then
StringToLen(value, m_Parameter2)
StringToLen(value, m_Parameter2)
If m_Mode = ModeOpt.SIDEANGLE Then
SideAngleEntity.m_Parameter2 = m_Parameter2
' ciclo sui checkbox calcolati sul numero di lati inclinabili presenti
For Index As Integer = 0 To m_SideEntityList.Count - 1
' Nuovo angolo di inclinazione
Dim dSideHeel As Double
' Se checked lo imposto al valore letto dalla TxBx
If m_SideEntityList(Index).bIsChecked Then
dSideHeel = m_Parameter2
' altrimenti lo imposto a zero
Else
dSideHeel = 0
End If
' Lo modifico nella geometria e nella lista inclinazioni
ModifySideHeel(m_SideEntityList(Index).sEntityName, dSideHeel)
Next
' Aggiorno tutti i testi
RefreshSideAngleText()
Else
m_dDripOffset2 = m_Parameter2
' Creo le geometrie dei gocciolatoi
RefreshSideAngleText()
End If
'If m_Mode <> ModeOpt.SIDEANGLE Then
' StringToLen(value, m_Parameter2)
' m_dDripOffset2 = m_Parameter2
' ' Creo le geometrie dei gocciolatoi
' RefreshSideAngleText()
'End If
End Set
End Property
Private Sub SetParameter2(value As Double)
@@ -133,7 +171,7 @@ Public Class SideEntityControlVM
Return LenToString(m_Parameter3, -2)
End Get
Set(value As String)
If m_Mode = ModeOpt.DRIP Then
If m_Mode <> ModeOpt.SIDEANGLE Then
StringToLen(value, m_Parameter3)
m_dDripDepth = m_Parameter3
' Creo le geometrie dei gocciolatoi
@@ -152,7 +190,7 @@ Public Class SideEntityControlVM
Return LenToString(m_Parameter4, -2)
End Get
Set(value As String)
If m_Mode = ModeOpt.DRIP Then
If m_Mode <> ModeOpt.SIDEANGLE Then
StringToLen(value, m_Parameter4)
m_dDripShort = m_Parameter4
' Creo le geometrie dei gocciolatoi
@@ -187,7 +225,11 @@ Public Class SideEntityControlVM
End Property
Public ReadOnly Property Parameter2Msg As String
Get
Return EgtMsg(MSG_IMPORTPAGEUC + 16) ' Offset 2
If m_Mode = ModeOpt.SIDEANGLE Then
Return EgtMsg(91002)
Else
Return EgtMsg(MSG_IMPORTPAGEUC + 16) ' Offset 2
End If
End Get
End Property
Public ReadOnly Property Parameter3Msg As String
@@ -570,12 +612,13 @@ Public Class SideEntityControlVM
' Recupero Id layer di contorno esterno
Dim nOutLoopId = EgtGetFirstNameInGroup(nPartId, NAME_OUTLOOP)
' Preparo layer con geometria gocciolatoi (svuotandolo o creandolo)
Dim DripLayer As Integer = EgtGetFirstNameInGroup(nPartId, NAME_DRIPCUT)
Dim DripName As String = If(m_Mode = ModeOpt.DRIP, NAME_DRIPCUT, NAME_ONPATH)
Dim DripLayer As Integer = EgtGetFirstNameInGroup(nPartId, DripName)
If DripLayer <> GDB_ID.NULL Then
EgtEmptyGroup(DripLayer)
Else
DripLayer = EgtCreateGroup(nPartId)
EgtSetName(DripLayer, NAME_DRIPCUT)
EgtSetName(DripLayer, DripName)
End If
' Per ogni entità con gocciolatoio, ne inserisco una copia nel layer
Dim vSelId As New List(Of Integer)
@@ -625,22 +668,33 @@ Public Class SideEntityControlVM
nCrvId = nNextCrvId
End While
End If
' Esplodo nelle curve componenti
nCrvId = EgtGetFirstInGroup(DripLayer)
While nCrvId <> GDB_ID.NULL
Dim nNextCrvId = EgtGetNext(nCrvId)
Dim nCount As Integer
EgtExplodeCurveCompo(nCrvId, nCount)
nCrvId = nNextCrvId
End While
' Assegno colore e attributi
nCrvId = EgtGetFirstInGroup(DripLayer)
While nCrvId <> GDB_ID.NULL
EgtSetColor(nCrvId, New Color3d(255, 165, 0))
EgtSetInfo(nCrvId, INFO_DEPTH, m_dDripDepth)
If m_dDripShort > EPS_SMALL Then EgtSetInfo(nCrvId, INFO_STRICT, "1")
nCrvId = EgtGetNext(nCrvId)
End While
If m_Mode = ModeOpt.DRIP Then
' Esplodo nelle curve componenti
nCrvId = EgtGetFirstInGroup(DripLayer)
While nCrvId <> GDB_ID.NULL
Dim nNextCrvId = EgtGetNext(nCrvId)
Dim nCount As Integer
EgtExplodeCurveCompo(nCrvId, nCount)
nCrvId = nNextCrvId
End While
' Assegno colore e attributi
nCrvId = EgtGetFirstInGroup(DripLayer)
While nCrvId <> GDB_ID.NULL
EgtSetColor(nCrvId, COL_MCH_DRIPCUT())
EgtSetInfo(nCrvId, INFO_DEPTH, m_dDripDepth)
If m_dDripShort > EPS_SMALL Then EgtSetInfo(nCrvId, INFO_STRICT, "1")
nCrvId = EgtGetNext(nCrvId)
End While
Else
' Assegno colore e attributi
nCrvId = EgtGetFirstInGroup(DripLayer)
While nCrvId <> GDB_ID.NULL
EgtSetColor(nCrvId, COL_MCH_DRIPCUT())
EgtSetInfo(nCrvId, INFO_DEPTH, m_dDripDepth)
EgtSetInfo(nCrvId, INFO_STRICT, If(m_dDripShort > EPS_SMALL, "3", "0"))
nCrvId = EgtGetNext(nCrvId)
End While
End If
End Sub
' Funzione che modifica l'inclinazione di un lato
@@ -761,11 +815,16 @@ Public Class SideEntityControlVM
If m_Mode = ModeOpt.SIDEANGLE Then
WriteMainPrivateProfileString(S_SIDES, K_SIDEANGLE, DoubleToString(m_Parameter1, 3))
Else
ElseIf m_Mode = ModeOpt.DRIP Then
WriteMainPrivateProfileString(S_SIDES, K_DRIPOFFSET, DoubleToString(m_dDripOffset, 3))
WriteMainPrivateProfileString(S_SIDES, K_DRIPOFFSET2, DoubleToString(m_dDripOffset2, 3))
WriteMainPrivateProfileString(S_SIDES, K_DRIPDEPTH, DoubleToString(m_dDripDepth, 3))
WriteMainPrivateProfileString(S_SIDES, K_DRIPSHORT, DoubleToString(m_dDripShort, 3))
ElseIf m_Mode = ModeOpt.ENGRAVE Then
WriteMainPrivateProfileString(S_SIDES, K_ENGRAVEOFFSET, DoubleToString(m_dDripOffset, 3))
WriteMainPrivateProfileString(S_SIDES, K_ENGRAVEOFFSET2, DoubleToString(m_dDripOffset2, 3))
WriteMainPrivateProfileString(S_SIDES, K_ENGRAVEDEPTH, DoubleToString(m_dDripDepth, 3))
WriteMainPrivateProfileString(S_SIDES, K_ENGRAVESHORT, DoubleToString(m_dDripShort, 3))
End If
EgtDraw()
@@ -1086,6 +1145,7 @@ Friend Class SideAngleEntity
End Property
Friend Shared m_Parameter1 As Double
Friend Shared m_Parameter2 As Double
Friend Shared m_ModifySideAngle As Action(Of String, Double)
Friend Shared m_ModifySideHeel As Action(Of String, Double)
Friend Shared m_RefreshSideAngleText As Action
@@ -1176,14 +1236,17 @@ Friend Class SideAngleEntity
Set(value As Boolean)
If value Then
m_dSideAngle = m_Parameter1
m_dSideHeel = m_Parameter2
Else
m_dSideAngle = 0
m_dSideHeel = 0
End If
' '' Converto nome checkbox in nome elemento tenendo conto dello slittamento verso il basso
''Dim nCurrSide As Integer = m_SideAngleEntityList.Count() - (10 - CInt(CurrCheckBox.Name.Substring(1)))
''Dim sCurrSide As String = "A" & nCurrSide.ToString()
' Lo modifico nella geometria e nella lista inclinazioni
m_ModifySideAngle(sEntityName, m_dSideAngle)
m_ModifySideHeel(sEntityName, m_dSideHeel)
' Aggiorno tutti i testi
m_RefreshSideAngleText()
NotifyPropertyChanged("bIsChecked")