Compare commits
63 Commits
TestBelga
...
LayersWall
| Author | SHA1 | Date | |
|---|---|---|---|
| 0a45d1af95 | |||
| b41454183f | |||
| 7e7258dd7c | |||
| 19a8ca1267 | |||
| e88c603fca | |||
| a62f0ca724 | |||
| 370b270d95 | |||
| 2d1de6ccf3 | |||
| 527a3bc3b9 | |||
| 77f225f866 | |||
| 0e662a8799 | |||
| ca2828958d | |||
| 97d6b26df5 | |||
| e01104dba3 | |||
| 443f72d86a | |||
| 794b45e4f3 | |||
| 52b111aff3 | |||
| e3a436ff4d | |||
| cc04872cc1 | |||
| 4075563e9f | |||
| c68efe69be | |||
| bb0a838d91 | |||
| 217a3b6fcc | |||
| a7de0d3b1e | |||
| 77be897037 | |||
| 2ef75b21d0 | |||
| b5066816e1 | |||
| 34e5b6ec55 | |||
| 14e3fa908a | |||
| 81427b38b3 | |||
| d95bd48d9e | |||
| 342472c625 | |||
| 694feab56e | |||
| d7262bfbb6 | |||
| 1f510bfae8 | |||
| a054c472cf | |||
| 24827b336a | |||
| d9681dbcb5 | |||
| dd9ff98329 | |||
| 3fe0400219 | |||
| 5cf6343518 | |||
| 69a2905d9b | |||
| b1254c3247 | |||
| fd92dbbe23 | |||
| 057d31ab49 | |||
| 1ec1e4539f | |||
| 1c2f87d79f | |||
| 5d0a7705d5 | |||
| e357e54152 | |||
| e598c7af90 | |||
| ab930e2e90 | |||
| 7deafdde51 | |||
| 145ba2afda | |||
| 9e7be2740e | |||
| 5f6572d0ef | |||
| ce794f55dc | |||
| 76bdc0bb19 | |||
| cd940ccf7e | |||
| 3ddc441674 | |||
| 7642884442 | |||
| cefff881f5 | |||
| 923f1ab7ff | |||
| f1b2e66b97 |
@@ -327,3 +327,4 @@ _UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
|
||||
.ionide/symbolCache.db
|
||||
|
||||
@@ -0,0 +1,577 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class BTLElementM
|
||||
Inherits BTLPartM
|
||||
|
||||
' lista delle feature del pezzo
|
||||
Public m_BTLLayerMList As List(Of BTLLayerM)
|
||||
Public Property BTLLayerMList As List(Of BTLLayerM)
|
||||
Get
|
||||
Return m_BTLLayerMList
|
||||
End Get
|
||||
Set(value As List(Of BTLLayerM))
|
||||
m_BTLLayerMList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sName As String
|
||||
Get
|
||||
Return "Prova"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Protected Sub New()
|
||||
End Sub
|
||||
|
||||
Public Shared Function CreateNewBTLElement() As BTLElementM
|
||||
Return New BTLPartM
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateBTLElement(nGroupId As Integer) As BTLElementM
|
||||
Dim NewBTLElement As New BTLElementM
|
||||
NewBTLElement = CreateBTLElementAsPart(nGroupId)
|
||||
Return NewBTLElement
|
||||
End Function
|
||||
|
||||
Public Overloads Shared Function CreateBTLElementAsPart(nPartId As Integer) As BTLElementM
|
||||
Dim NewBTLPart As New BTLElementM
|
||||
NewBTLPart.m_nPartId = nPartId
|
||||
' leggo info pezzo
|
||||
Dim sValArray() As String
|
||||
Dim sValue As String = String.Empty
|
||||
Dim nValue As Integer = 0
|
||||
EgtGetInfo(nPartId, BTL_PRT_PDN, NewBTLPart.m_nPDN)
|
||||
Dim nDO As Integer = 1
|
||||
If EgtGetInfo(nPartId, BTL_PRT_DO, nDO) Then
|
||||
NewBTLPart.m_bDO = (nDO <> 0)
|
||||
Else
|
||||
NewBTLPart.m_bDO = True
|
||||
End If
|
||||
EgtGetInfo(nPartId, BTL_PRT_NAM, NewBTLPart.m_sNAM)
|
||||
EgtGetInfo(nPartId, BTL_PRT_L, NewBTLPart.m_dBtlL)
|
||||
EgtGetInfo(nPartId, BTL_PRT_W, NewBTLPart.m_dBtlW)
|
||||
EgtGetInfo(nPartId, BTL_PRT_H, NewBTLPart.m_dBtlH)
|
||||
EgtGetInfo(nPartId, BTL_PRT_CNT, NewBTLPart.m_nCNT)
|
||||
EgtGetInfo(nPartId, BTL_PRT_ADDED, NewBTLPart.m_nADDED)
|
||||
EgtGetInfo(nPartId, BTL_PRT_ASSEMBLYNUM, NewBTLPart.m_sASSEMBLYNUM)
|
||||
EgtGetInfo(nPartId, BTL_PRT_ORDERNUM, NewBTLPart.m_nORDERNUM)
|
||||
EgtGetInfo(nPartId, BTL_PRT_DESIGNATION, NewBTLPart.m_sDESIGN)
|
||||
EgtGetInfo(nPartId, BTL_PRT_ANNOTATION, NewBTLPart.m_sANNOT)
|
||||
EgtGetInfo(nPartId, BTL_PRT_STOREY, NewBTLPart.m_sSTOREY)
|
||||
EgtGetInfo(nPartId, BTL_PRT_GROUP, NewBTLPart.m_sGROUP)
|
||||
EgtGetInfo(nPartId, BTL_PRT_PACKAGE, NewBTLPart.m_sPACKAGE)
|
||||
EgtGetInfo(nPartId, BTL_PRT_TIMBERGRADE, NewBTLPart.m_sTIMBERGRADE)
|
||||
EgtGetInfo(nPartId, BTL_PRT_QUALITYGRADE, NewBTLPart.m_sQUALITYGRADE)
|
||||
EgtGetInfo(nPartId, BTL_PRT_COLOUR, sValue)
|
||||
NewBTLPart.m_colCOLOR.FromString(sValue)
|
||||
EgtGetInfo(nPartId, BTL_PRT_PLANINGLENGTH, NewBTLPart.m_dPLANINGLEN)
|
||||
EgtGetInfo(nPartId, BTL_PRT_STARTOFFSET, NewBTLPart.m_dSTARTOFFSET)
|
||||
EgtGetInfo(nPartId, BTL_PRT_ENDOFFSET, NewBTLPart.m_dENDOFFSET)
|
||||
Dim ind As Integer = 1
|
||||
While EgtGetInfo(nPartId, BTL_PRT_UID & ind, nValue)
|
||||
NewBTLPart.ocUID.Add(nValue)
|
||||
EgtGetInfo(nPartId, BTL_PRT_TRANSFORMATION & ind, sValue)
|
||||
NewBTLPart.m_refTransf = New Frame3d
|
||||
Dim ptOri As New Point3d
|
||||
Dim vtVersX As New Vector3d
|
||||
Dim vtVersY As New Vector3d
|
||||
sValArray = sValue.Split({","}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 9 Then
|
||||
StringToLen(sValArray(0), ptOri.x)
|
||||
StringToLen(sValArray(1), ptOri.y)
|
||||
StringToLen(sValArray(2), ptOri.z)
|
||||
StringToDouble(sValArray(3), vtVersX.x)
|
||||
StringToDouble(sValArray(4), vtVersX.y)
|
||||
StringToDouble(sValArray(5), vtVersX.z)
|
||||
StringToDouble(sValArray(6), vtVersY.x)
|
||||
StringToDouble(sValArray(7), vtVersY.y)
|
||||
StringToDouble(sValArray(8), vtVersY.z)
|
||||
NewBTLPart.m_refTransf.ChangeOrigin(ptOri)
|
||||
NewBTLPart.m_refTransf.Setup(ptOri, ptOri + vtVersX, ptOri + vtVersY)
|
||||
End If
|
||||
NewBTLPart.refTransfList.Add(NewBTLPart.m_refTransf)
|
||||
ind = ind + 1
|
||||
End While
|
||||
EgtGetInfo(nPartId, BTL_PRT_CAMBER, sValue)
|
||||
sValArray = sValue.Split(New String() {": ", " P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 5 Then
|
||||
StringToLen(sValArray(3), NewBTLPart.m_dCamberLen1)
|
||||
StringToLen(sValArray(5), NewBTLPart.m_dCamberLen2)
|
||||
StringToLen(sValArray(7), NewBTLPart.m_dCamberLen3)
|
||||
StringToLen(sValArray(9), NewBTLPart.m_dCamberCross3)
|
||||
End If
|
||||
Dim pFrom As Integer = sValue.IndexOf("SIDE: ") + "SIDE: ".Length
|
||||
Dim pTo As Integer = sValue.LastIndexOf(" P01")
|
||||
If pTo >= 0 Then
|
||||
nValue = CInt(sValue.Substring(pFrom, pTo - pFrom))
|
||||
NewBTLPart.m_SelCAMBERSIDE = NewBTLPart.ocCAMBERSIDE.IndexOf(CInt(sValue.Substring(pFrom, pTo - pFrom)))
|
||||
End If
|
||||
|
||||
EgtGetInfo(nPartId, BTL_PRT_PARTOFFSET, sValue)
|
||||
sValArray = sValue.Split(New String() {": ", " P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 5 Then
|
||||
StringToLen(sValArray(3), NewBTLPart.m_dPartOffsetSide1)
|
||||
StringToLen(sValArray(5), NewBTLPart.m_dPartOffsetSide2)
|
||||
StringToLen(sValArray(7), NewBTLPart.m_dPartOffsetSide3)
|
||||
StringToLen(sValArray(9), NewBTLPart.m_dPartOffsetSide4)
|
||||
End If
|
||||
pFrom = sValue.IndexOf("P04: ") + "P04: ".Length
|
||||
pTo = sValue.LastIndexOf(" P11")
|
||||
If pTo >= 0 Then
|
||||
NewBTLPart.m_SelREFSIDEFIXCLAMP = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValue.Substring(pFrom, pTo - pFrom),
|
||||
NewBTLPart.ocREFSIDEFIXCLAMP),
|
||||
NewBTLPart.ocREFSIDEFIXCLAMP)
|
||||
End If
|
||||
|
||||
Dim EnumIndex As Integer = 0
|
||||
EgtGetInfo(nPartId, BTL_PRT_PROCESSINGQUALITY, sValue)
|
||||
For ind = 1 To NewBTLPart.ocPROCESSINGQUALITY.Count
|
||||
Dim sEnumName = [Enum].GetName(GetType(ProcessingQuality), ind)
|
||||
If sEnumName.Equals(sValue) Then
|
||||
EnumIndex = ind
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
NewBTLPart.m_SelPROCESSINGQUALITY = EnumIndex - 1
|
||||
EgtGetInfo(nPartId, BTL_PRT_RECESS, sValue)
|
||||
EnumIndex = 0
|
||||
For ind = 1 To NewBTLPart.ocRECESS.Count
|
||||
Dim sEnumName = [Enum].GetName(GetType(Recess), ind)
|
||||
If sEnumName.Equals(sValue) Then
|
||||
EnumIndex = ind
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
NewBTLPart.m_SelRECESS = EnumIndex - 1
|
||||
EgtGetInfo(nPartId, BTL_PRT_STOREYTYPE, sValue)
|
||||
EnumIndex = 0
|
||||
For ind = 1 To NewBTLPart.ocSTOREYTYPE.Count
|
||||
Dim sEnumName = [Enum].GetName(GetType(StoreyType), ind)
|
||||
If sEnumName.Equals(sValue) Then
|
||||
EnumIndex = ind
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
NewBTLPart.m_SelSTOREYTYPE = EnumIndex - 1
|
||||
EgtGetInfo(nPartId, BTL_PRT_ELEMENTNUM, NewBTLPart.m_sELEMENTNUM)
|
||||
EgtGetInfo(nPartId, BTL_PRT_LAYER, NewBTLPart.m_nLAYER)
|
||||
EgtGetInfo(nPartId, BTL_PRT_MODULENUM, NewBTLPart.m_sMODULENUM)
|
||||
'EgtGetInfo(nPartId, BTL_PRT_USERATTRIBUTE, m_sUSERATTRIBUTE)
|
||||
EgtGetInfo(nPartId, BTL_PRT_COMMENT, NewBTLPart.m_sCOMMENT)
|
||||
|
||||
EgtGetInfo(nPartId, BTL_PRT_GRAINDIR, sValue)
|
||||
NewBTLPart.m_refGrainDir = New Vector3d
|
||||
sValArray = sValue.Split(New String() {",", ";"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 4 Then
|
||||
StringToDouble(sValArray(0), NewBTLPart.m_refGrainDir.x)
|
||||
StringToDouble(sValArray(1), NewBTLPart.m_refGrainDir.y)
|
||||
StringToDouble(sValArray(2), NewBTLPart.m_refGrainDir.z)
|
||||
NewBTLPart.m_bGRAINDIRALIGN = (CInt(sValArray(3)) = 1)
|
||||
End If
|
||||
|
||||
EgtGetInfo(nPartId, BTL_PRT_REFSIDE, sValue)
|
||||
sValArray = sValue.Split({";"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 2 Then
|
||||
NewBTLPart.m_SelREFSIDE = NewBTLPart.ocREFSIDE.IndexOf(CInt(sValArray(0)))
|
||||
NewBTLPart.m_bREFSIDEALIGN = (CInt(sValArray(1)) = 1)
|
||||
End If
|
||||
|
||||
EgtGetInfo(nPartId, BTL_PRT_ALIGNMENT, sValue)
|
||||
sValArray = sValue.Split({":"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 2 Then
|
||||
NewBTLPart.m_SelALIGNLOCATION = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(0), NewBTLPart.ocALIGNLOCATION),
|
||||
NewBTLPart.ocALIGNLOCATION)
|
||||
NewBTLPart.m_SelALIGNENDTYPE = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(1).Trim(),
|
||||
NewBTLPart.ocALIGNENDTYPE),
|
||||
NewBTLPart.ocALIGNENDTYPE)
|
||||
End If
|
||||
|
||||
EgtGetInfo(nPartId, BTL_PRT_MATERIALTYPE, sValue)
|
||||
sValArray = sValue.Split({":"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 1 Then
|
||||
NewBTLPart.m_SelMATERIALTYPEGRP = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(0),
|
||||
NewBTLPart.ocMATERIALTYPEGRP),
|
||||
NewBTLPart.ocMATERIALTYPEGRP)
|
||||
If sValArray.Count() >= 2 Then NewBTLPart.m_sMATERIALTYPESPEC = sValArray(1).Trim()
|
||||
End If
|
||||
|
||||
If Not EgtGetInfo(nPartId, BTL_PRT_ROTATED, NewBTLPart.nROTATED) Then
|
||||
NewBTLPart.nROTATED = 0
|
||||
End If
|
||||
If Not EgtGetInfo(nPartId, BTL_PRT_INVERTED, NewBTLPart.nINVERTED) Then
|
||||
NewBTLPart.nINVERTED = 0
|
||||
End If
|
||||
EgtGetInfo(nPartId, BTL_PRT_MATERIAL, NewBTLPart.m_sMATERIAL)
|
||||
If Not EgtGetInfo(nPartId, LOCK_ROT, NewBTLPart.bLockRotation) Then
|
||||
NewBTLPart.bLockRotation = False
|
||||
End If
|
||||
If Not EgtGetInfo(nPartId, LOCK_FLIP, NewBTLPart.bLockInversion) Then
|
||||
NewBTLPart.bLockInversion = False
|
||||
End If
|
||||
EgtGetInfo(nPartId, BTL_PRT_VOLUME, NewBTLPart.dVolume)
|
||||
'' Leggo outline e features
|
||||
'NewBTLPart.m_BTLFeatureMList = LoadFeatures(nPartId, NewBTLPart)
|
||||
' leggo calc error
|
||||
Dim nErr As Integer = 0
|
||||
Dim nRot As Integer = 0
|
||||
Dim nFall As Integer = 0
|
||||
Dim sMsg As String = ""
|
||||
Dim bCalc As Boolean = False
|
||||
bCalc = EgtGetInfo(nPartId, ITG_PROJ_ERR, nErr)
|
||||
EgtGetInfo(nPartId, ITG_PROJ_ROT, nRot)
|
||||
EgtGetInfo(nPartId, ITG_PROJ_FALL, nFall)
|
||||
EgtGetInfo(nPartId, ITG_PROJ_MSG, sMsg)
|
||||
If Not bCalc Then
|
||||
NewBTLPart.m_nState = CalcStates.NOTCALCULATED
|
||||
NewBTLPart.nCALC_ERR = 0
|
||||
NewBTLPart.m_nCALC_ROT = 0
|
||||
NewBTLPart.nCALC_FALL = 0
|
||||
NewBTLPart.sCALC_MSG = ""
|
||||
Else
|
||||
NewBTLPart.nCALC_ERR = nErr
|
||||
NewBTLPart.nCALC_ROT = nRot
|
||||
NewBTLPart.nCALC_FALL = nFall
|
||||
NewBTLPart.sCALC_MSG = sMsg
|
||||
Select Case nErr
|
||||
Case 0
|
||||
NewBTLPart.nState = CalcStates.OK
|
||||
Case 22
|
||||
NewBTLPart.nState = CalcStates.COLLISION
|
||||
Case 17, 19
|
||||
NewBTLPart.nState = CalcStates.WARNING
|
||||
Case < 0
|
||||
NewBTLPart.nState = CalcStates.INFO
|
||||
Case > 0
|
||||
NewBTLPart.nState = CalcStates.ERROR_
|
||||
End Select
|
||||
End If
|
||||
EgtGetInfo(nPartId, ITG_PROJ_TIME, NewBTLPart.m_nCALC_TIME)
|
||||
Return NewBTLPart
|
||||
End Function
|
||||
|
||||
' Private Shared Function LoadFeatures(nPartId As Integer, NewBTLPart As BTLPartM) As List(Of BTLFeatureM)
|
||||
' Dim TempList As New List(Of BTLFeatureM)
|
||||
' ' Leggo outline
|
||||
' Dim nOutlineLayerId As Integer = EgtGetFirstNameInGroup(nPartId, OUTLINE)
|
||||
' Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayerId)
|
||||
' While nOutlineId <> GDB_ID.NULL
|
||||
' ' verifico che sia una feature
|
||||
' Dim nGRP As Integer
|
||||
' If EgtGetInfo(nOutlineId, BTL_FTR_GRP, nGRP) Then
|
||||
' ' creo la feature
|
||||
' TempList.Add(BTLFeatureM.CreateBTLFeature(NewBTLPart, nOutlineId))
|
||||
' End If
|
||||
' nOutlineId = EgtGetNext(nOutlineId)
|
||||
' End While
|
||||
' ' Leggo feature
|
||||
' Dim nProcessingId As Integer = EgtGetFirstNameInGroup(nPartId, PROCESSINGS)
|
||||
' Dim nFeatureId As Integer = EgtGetFirstInGroup(nProcessingId)
|
||||
' While nFeatureId <> GDB_ID.NULL
|
||||
' ' verifico che sia una feature
|
||||
' Dim nGRP As Integer
|
||||
' If EgtGetInfo(nFeatureId, BTL_FTR_GRP, nGRP) AndAlso Not EgtExistsInfo(nFeatureId, BTL_FTR_MAINID) Then
|
||||
' ' creo la feature
|
||||
' Dim NewFeature As BTLFeatureM = BTLFeatureM.CreateBTLFeature(NewBTLPart, nFeatureId)
|
||||
' TempList.Add(NewFeature)
|
||||
' ' aggiorno Id feature perchè potrebbe essere stata ricalcolata
|
||||
' nFeatureId = NewFeature.nFeatureId
|
||||
' End If
|
||||
' nFeatureId = EgtGetNext(nFeatureId)
|
||||
' End While
|
||||
' Return TempList
|
||||
' End Function
|
||||
|
||||
' 'Sub New(ParentStructure As BTLStructureVM, nPartId As Integer)
|
||||
' ' MyBase.New(ParentStructure, nPartId)
|
||||
' ' ' leggo info pezzo
|
||||
' ' Dim sValArray() As String
|
||||
' ' Dim sValue As String = String.Empty
|
||||
' ' Dim nValue As Integer = 0
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_PDN, nPDN)
|
||||
' ' Dim nDO As Integer = 1
|
||||
' ' If EgtGetInfo(nPartId, BTL_PRT_DO, nDO) Then
|
||||
' ' m_bDO = (nDO <> 0)
|
||||
' ' Else
|
||||
' ' m_bDO = True
|
||||
' ' End If
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_NAM, m_sNAM)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_L, m_dL)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_W, m_dW)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_H, m_dH)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_CNT, m_nCNT)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_ASSEMBLYNUM, m_sASSEMBLYNUM)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_ORDERNUM, m_nORDERNUM)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_DESIGNATION, m_sDESIGN)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_ANNOTATION, m_sANNOT)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_STOREY, m_sSTOREY)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_GROUP, m_sGROUP)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_PACKAGE, m_sPACKAGE)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_TIMBERGRADE, m_sTIMBERGRADE)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_QUALITYGRADE, m_sQUALITYGRADE)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_COLOUR, sValue)
|
||||
' ' m_colCOLOR.FromString(sValue)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_PLANINGLENGTH, m_dPLANINGLEN)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_STARTOFFSET, m_dSTARTOFFSET)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_ENDOFFSET, m_dENDOFFSET)
|
||||
|
||||
' ' Dim ind As Integer = 1
|
||||
' ' While EgtGetInfo(nPartId, BTL_PRT_UID & ind, nValue)
|
||||
' ' ocUID.Add(nValue)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_TRANSFORMATION & ind, sValue)
|
||||
' ' m_refTransf = New Frame3d
|
||||
' ' Dim ptOri As New Point3d
|
||||
' ' Dim vtVersX As New Vector3d
|
||||
' ' Dim vtVersY As New Vector3d
|
||||
' ' sValArray = sValue.Split({","}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' ' If sValArray.Count() >= 9 Then
|
||||
' ' StringToLen(sValArray(0), ptOri.x)
|
||||
' ' StringToLen(sValArray(1), ptOri.y)
|
||||
' ' StringToLen(sValArray(2), ptOri.z)
|
||||
' ' StringToDouble(sValArray(3), vtVersX.x)
|
||||
' ' StringToDouble(sValArray(4), vtVersX.y)
|
||||
' ' StringToDouble(sValArray(5), vtVersX.z)
|
||||
' ' StringToDouble(sValArray(6), vtVersY.x)
|
||||
' ' StringToDouble(sValArray(7), vtVersY.y)
|
||||
' ' StringToDouble(sValArray(8), vtVersY.z)
|
||||
' ' m_refTransf.ChangeOrigin(ptOri)
|
||||
' ' m_refTransf.Setup(ptOri, ptOri + vtVersX, ptOri + vtVersY)
|
||||
' ' End If
|
||||
' ' refTransfList.Add(m_refTransf)
|
||||
' ' ind = ind + 1
|
||||
' ' End While
|
||||
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_CAMBER, sValue)
|
||||
' ' sValArray = sValue.Split(New String() {": ", " P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' ' If sValArray.Count() >= 5 Then
|
||||
' ' StringToLen(sValArray(3), m_dCamberLen1)
|
||||
' ' StringToLen(sValArray(5), m_dCamberLen2)
|
||||
' ' StringToLen(sValArray(7), m_dCamberLen3)
|
||||
' ' StringToLen(sValArray(9), m_dCamberCross3)
|
||||
' ' End If
|
||||
' ' Dim pFrom As Integer = sValue.IndexOf("SIDE: ") + "SIDE: ".Length
|
||||
' ' Dim pTo As Integer = sValue.LastIndexOf(" P01")
|
||||
' ' If pTo >= 0 Then
|
||||
' ' nValue = CInt(sValue.Substring(pFrom, pTo - pFrom))
|
||||
' ' m_SelCAMBERSIDE = ocCAMBERSIDE.IndexOf(CInt(sValue.Substring(pFrom, pTo - pFrom)))
|
||||
' ' End If
|
||||
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_PARTOFFSET, sValue)
|
||||
' ' sValArray = sValue.Split(New String() {": ", " P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' ' If sValArray.Count() >= 5 Then
|
||||
' ' StringToLen(sValArray(3), m_dPartOffsetSide1)
|
||||
' ' StringToLen(sValArray(5), m_dPartOffsetSide2)
|
||||
' ' StringToLen(sValArray(7), m_dPartOffsetSide3)
|
||||
' ' StringToLen(sValArray(9), m_dPartOffsetSide4)
|
||||
' ' End If
|
||||
' ' pFrom = sValue.IndexOf("P04: ") + "P04: ".Length
|
||||
' ' pTo = sValue.LastIndexOf(" P11")
|
||||
' ' If pTo >= 0 Then
|
||||
' ' m_SelREFSIDEFIXCLAMP = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValue.Substring(pFrom, pTo - pFrom), ocREFSIDEFIXCLAMP), ocREFSIDEFIXCLAMP)
|
||||
' ' End If
|
||||
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_PROCESSINGQUALITY, sValue)
|
||||
' ' m_SelPROCESSINGQUALITY = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValue, ocPROCESSINGQUALITY), ocPROCESSINGQUALITY)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_RECESS, sValue)
|
||||
' ' m_SelRECESS = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValue, ocRECESS), ocRECESS)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_STOREYTYPE, sValue)
|
||||
' ' m_SelSTOREYTYPE = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValue, ocSTOREYTYPE), ocSTOREYTYPE)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_ELEMENTNUM, m_sELEMENTNUM)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_LAYER, m_nLAYER)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_MODULENUM, m_sMODULENUM)
|
||||
' ' 'EgtGetInfo(nPartId, BTL_PRT_USERATTRIBUTE, m_sUSERATTRIBUTE)
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_COMMENT, m_sCOMMENT)
|
||||
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_GRAINDIR, sValue)
|
||||
' ' m_refGrainDir = New Vector3d
|
||||
' ' sValArray = sValue.Split(New String() {",", ";"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' ' If sValArray.Count() >= 4 Then
|
||||
' ' StringToDouble(sValArray(0), m_refGrainDir.x)
|
||||
' ' StringToDouble(sValArray(1), m_refGrainDir.y)
|
||||
' ' StringToDouble(sValArray(2), m_refGrainDir.z)
|
||||
' ' m_bGRAINDIRALIGN = (CInt(sValArray(3)) = 1)
|
||||
' ' End If
|
||||
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_REFSIDE, sValue)
|
||||
' ' sValArray = sValue.Split({";"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' ' If sValArray.Count() >= 2 Then
|
||||
' ' m_SelREFSIDE = ocREFSIDE.IndexOf(CInt(sValArray(0)))
|
||||
' ' m_bREFSIDEALIGN = (CInt(sValArray(1)) = 1)
|
||||
' ' End If
|
||||
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_ALIGNMENT, sValue)
|
||||
' ' sValArray = sValue.Split({":"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' ' If sValArray.Count() >= 2 Then
|
||||
' ' m_SelALIGNLOCATION = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(0), ocALIGNLOCATION), ocALIGNLOCATION)
|
||||
' ' m_SelALIGNENDTYPE = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(1).Trim(), ocALIGNENDTYPE), ocALIGNENDTYPE)
|
||||
' ' End If
|
||||
|
||||
' ' EgtGetInfo(nPartId, BTL_PRT_MATERIALTYPE, sValue)
|
||||
' ' sValArray = sValue.Split({":"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' ' If sValArray.Count() >= 1 Then
|
||||
' ' m_SelMATERIALTYPEGRP = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(0), ocMATERIALTYPEGRP), ocMATERIALTYPEGRP)
|
||||
' ' If sValArray.Count() >= 2 Then m_sMATERIALTYPESPEC = sValArray(1).Trim()
|
||||
' ' End If
|
||||
|
||||
' ' If Not EgtGetInfo(nPartId, BTL_PRT_ROTATED, m_nROTATED) Then
|
||||
' ' m_nROTATED = 0
|
||||
' ' End If
|
||||
' ' If Not EgtGetInfo(nPartId, BTL_PRT_INVERTED, m_nINVERTED) Then
|
||||
' ' m_nINVERTED = 0
|
||||
' ' End If
|
||||
' ' If EgtGetInfo(nPartId, BTL_PRT_MATERIAL, m_sMATERIAL) Then
|
||||
' ' If Not ParentStructure.MaterialList.Contains(m_sMATERIAL) Then
|
||||
' ' ParentStructure.MaterialList.Add(m_sMATERIAL)
|
||||
' ' End If
|
||||
' ' End If
|
||||
' ' If Not ParentStructure.SectionList.Contains(Section) Then
|
||||
' ' ParentStructure.SectionList.Add(Section)
|
||||
' ' End If
|
||||
' ' ' Leggo outline
|
||||
' ' Dim nOutlineLayerId As Integer = EgtGetFirstNameInGroup(nPartId, OUTLINE)
|
||||
' ' Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayerId)
|
||||
' ' While nOutlineId <> GDB_ID.NULL
|
||||
' ' ' verifico che sia una feature
|
||||
' ' Dim nGRP As Integer
|
||||
' ' If EgtGetInfo(nOutlineId, BTL_FTR_GRP, nGRP) Then
|
||||
' ' ' creo la feature
|
||||
' ' m_FeatureList.Add(New BTLFeatureVM(Me, nOutlineId))
|
||||
' ' End If
|
||||
' ' nOutlineId = EgtGetNext(nOutlineId)
|
||||
' ' End While
|
||||
' ' ' Leggo feature
|
||||
' ' Dim nProcessingId As Integer = EgtGetFirstNameInGroup(nPartId, PROCESSINGS)
|
||||
' ' Dim nFeatureId As Integer = EgtGetFirstInGroup(nProcessingId)
|
||||
' ' While nFeatureId <> GDB_ID.NULL
|
||||
' ' ' verifico che sia una feature
|
||||
' ' Dim nGRP As Integer
|
||||
' ' If EgtGetInfo(nFeatureId, BTL_FTR_GRP, nGRP) Then
|
||||
' ' ' creo la feature
|
||||
' ' m_FeatureList.Add(New BTLFeatureVM(Me, nFeatureId))
|
||||
' ' End If
|
||||
' ' nFeatureId = EgtGetNext(nFeatureId)
|
||||
' ' End While
|
||||
' ' ' Aggiorno check DOALL
|
||||
' ' NotifyPropertyChanged("bDOALL")
|
||||
' ' ' leggo calc error
|
||||
' ' Dim nErr As Integer = 0
|
||||
' ' Dim nRot As Integer = 0
|
||||
' ' Dim nFall As Integer = 0
|
||||
' ' Dim sMsg As String = ""
|
||||
' ' Dim bCalc As Boolean = False
|
||||
' ' bCalc = EgtGetInfo(nPartId, ITG_PROJ_ERR, nErr)
|
||||
' ' EgtGetInfo(nPartId, ITG_PROJ_ROT, nRot)
|
||||
' ' EgtGetInfo(nPartId, ITG_PROJ_FALL, sMsg)
|
||||
' ' EgtGetInfo(nPartId, ITG_PROJ_MSG, sMsg)
|
||||
' ' CalcPartUpdate(bCalc, nErr, nRot, nFall, sMsg)
|
||||
' ' CalcFeatureUpdate()
|
||||
' 'End Sub
|
||||
|
||||
' 'Sub New(ParentStructure As BTLStructure, nPartId As Integer)
|
||||
' ' m_BTLStructureM = ParentStructure
|
||||
' ' Me.SetPartId = nPartId
|
||||
' ' m_FeatureList = New ObservableCollection(Of BTLFeature)
|
||||
' 'End Sub
|
||||
|
||||
'#End Region ' CONSTRUCTOR
|
||||
|
||||
'#Region "METHODS"
|
||||
|
||||
' Public Event BTLFeatureAdded As EventHandler(Of BTLFeatureAddedEventArgs)
|
||||
|
||||
' Public Sub AddBTLFeature(BTLFeatureM As BTLFeatureM)
|
||||
' If IsNothing(BTLFeatureM) Then Return
|
||||
' If Not m_BTLFeatureMList.Contains(BTLFeatureM) Then
|
||||
' m_BTLFeatureMList.Add(BTLFeatureM)
|
||||
' RaiseEvent BTLFeatureAdded(Me, New BTLFeatureAddedEventArgs(BTLFeatureM))
|
||||
' End If
|
||||
' End Sub
|
||||
|
||||
' Public Function GetBTLFeatures() As List(Of BTLFeatureM)
|
||||
' Return New List(Of BTLFeatureM)(m_BTLFeatureMList)
|
||||
' End Function
|
||||
|
||||
' Public Function Rotation(IsPositive As Boolean, SelectedMachineType As MachineType, Optional dAng As Double = 90) As Boolean
|
||||
' ' recupero il box del pezzo
|
||||
' Dim nLs As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||
' Dim b3Solid As New BBox3d
|
||||
' EgtGetBBoxGlob(nLs, GDB_BB.STANDARD, b3Solid)
|
||||
' If b3Solid.IsEmpty() Then
|
||||
' EgtOutLog("ERROR: Box non definito per la trave " & sNAM)
|
||||
' Return False
|
||||
' End If
|
||||
' ' eseguo rotazione di 90 gradi attorno asse X
|
||||
' Dim dRot = If(IsPositive, 1, -1) * Math.Abs(dAng)
|
||||
' Dim vtAxes As Vector3d
|
||||
' ' se travi ruoto attorno all'asse X
|
||||
' If SelectedMachineType = MachineType.BEAM Then
|
||||
' vtAxes = Vector3d.X_AX
|
||||
' ' se pareti ruoto attorno all'asse Z
|
||||
' ElseIf SelectedMachineType = MachineType.WALL Then
|
||||
' vtAxes = -Vector3d.Z_AX
|
||||
' End If
|
||||
' ' se invertito
|
||||
' Dim bInverted As Boolean = nINVERTED <> 0
|
||||
' If bInverted Then
|
||||
' ' annullo inversione
|
||||
' Inversion(SelectedMachineType)
|
||||
' End If
|
||||
' ' eseguo rotazione
|
||||
' Dim bOk As Boolean = EgtRotate(nPartId, b3Solid.Center, vtAxes, dRot, GDB_RT.GLOB)
|
||||
' If bOk Then
|
||||
' Dim dNewRotation As Double = (nROTATED + dRot) Mod 360
|
||||
' nROTATED = If(dNewRotation >= 0, dNewRotation, 360 + dNewRotation)
|
||||
' EgtSetInfo(nPartId, BTL_PRT_ROTATED, nROTATED)
|
||||
' ' imposto modificato per copie
|
||||
' EgtDuploSetModified(nPartId)
|
||||
' End If
|
||||
' ' se era invertito
|
||||
' If bInverted Then
|
||||
' ' ripristino inversione
|
||||
' Inversion(SelectedMachineType)
|
||||
' End If
|
||||
' EgtDraw()
|
||||
' Return bOk
|
||||
' End Function
|
||||
|
||||
' Public Sub Inversion(SelectedMachineType As MachineType)
|
||||
' ' recupero il box del pezzo
|
||||
' Dim nLs As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||
' Dim b3Solid As New BBox3d
|
||||
' EgtGetBBoxGlob(nLs, GDB_BB.STANDARD, b3Solid)
|
||||
' If b3Solid.IsEmpty() Then
|
||||
' EgtOutLog("ERROR: Box non definito per la trave " & sNAM)
|
||||
' Return
|
||||
' End If
|
||||
' Dim vtAxes As Vector3d
|
||||
' ' se travi ruoto attorno all'asse Z
|
||||
' If SelectedMachineType = MachineType.BEAM Then
|
||||
' vtAxes = Vector3d.Z_AX
|
||||
' ' se pareti ruoto attorno all'asse X
|
||||
' ElseIf SelectedMachineType = MachineType.WALL Then
|
||||
' vtAxes = Vector3d.X_AX
|
||||
' End If
|
||||
' ' eseguo rotazione di 180 gradi
|
||||
' If EgtRotate(nPartId, b3Solid.Center, vtAxes, 180, GDB_RT.GLOB) Then
|
||||
' nINVERTED = If(nINVERTED = 0, 180, 0)
|
||||
' EgtSetInfo(nPartId, BTL_PRT_INVERTED, nINVERTED)
|
||||
' ' imposto modificato per copie
|
||||
' EgtDuploSetModified(nPartId)
|
||||
' End If
|
||||
' End Sub
|
||||
|
||||
' Public Function NewProcId() As Integer
|
||||
' Dim nMaxProcId As Integer = 0
|
||||
' If Not IsNothing(BTLFeatureMList) AndAlso BTLFeatureMList.Count > 0 Then
|
||||
' nMaxProcId = BTLFeatureMList.Max(Function(x) x.nPRID)
|
||||
' End If
|
||||
' Return nMaxProcId + 1
|
||||
' End Function
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
End Class
|
||||
|
||||
@@ -174,7 +174,7 @@ Public Class BTLFeatureM
|
||||
Protected m_sCALC_MSG As String
|
||||
Public Property sCALC_MSG As String
|
||||
Get
|
||||
Return m_sCALC_MSG
|
||||
Return MessageFromLuaMsg(m_sCALC_MSG)
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sCALC_MSG = value
|
||||
|
||||
@@ -0,0 +1,570 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class BTLLayerM
|
||||
Inherits BTLPartM
|
||||
|
||||
Public m_BTLPartMList As List(Of BTLPartM)
|
||||
Public Property BTLPartMList As List(Of BTLPartM)
|
||||
Get
|
||||
Return m_BTLPartMList
|
||||
End Get
|
||||
Set(value As List(Of BTLPartM))
|
||||
m_BTLPartMList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Protected Sub New()
|
||||
End Sub
|
||||
|
||||
Public Shared Function CreateNewBTLLayer() As BTLLayerM
|
||||
Return New BTLPartM
|
||||
End Function
|
||||
|
||||
Public Shared Function CreateBTLLayer(nGroupId As Integer) As BTLLayerM
|
||||
Dim NewBTLLayer As New BTLLayerM
|
||||
NewBTLLayer = CreateBTLLayerAsPart(nGroupId)
|
||||
Return NewBTLLayer
|
||||
End Function
|
||||
|
||||
Public Overloads Shared Function CreateBTLLayerAsPart(nPartId As Integer) As BTLLayerM
|
||||
Dim NewBTLPart As New BTLLayerM
|
||||
NewBTLPart.m_nPartId = nPartId
|
||||
' leggo info pezzo
|
||||
Dim sValArray() As String
|
||||
Dim sValue As String = String.Empty
|
||||
Dim nValue As Integer = 0
|
||||
EgtGetInfo(nPartId, BTL_PRT_PDN, NewBTLPart.m_nPDN)
|
||||
Dim nDO As Integer = 1
|
||||
If EgtGetInfo(nPartId, BTL_PRT_DO, nDO) Then
|
||||
NewBTLPart.m_bDO = (nDO <> 0)
|
||||
Else
|
||||
NewBTLPart.m_bDO = True
|
||||
End If
|
||||
EgtGetInfo(nPartId, BTL_PRT_NAM, NewBTLPart.m_sNAM)
|
||||
EgtGetInfo(nPartId, BTL_PRT_L, NewBTLPart.m_dBtlL)
|
||||
EgtGetInfo(nPartId, BTL_PRT_W, NewBTLPart.m_dBtlW)
|
||||
EgtGetInfo(nPartId, BTL_PRT_H, NewBTLPart.m_dBtlH)
|
||||
EgtGetInfo(nPartId, BTL_PRT_CNT, NewBTLPart.m_nCNT)
|
||||
EgtGetInfo(nPartId, BTL_PRT_ADDED, NewBTLPart.m_nADDED)
|
||||
EgtGetInfo(nPartId, BTL_PRT_ASSEMBLYNUM, NewBTLPart.m_sASSEMBLYNUM)
|
||||
EgtGetInfo(nPartId, BTL_PRT_ORDERNUM, NewBTLPart.m_nORDERNUM)
|
||||
EgtGetInfo(nPartId, BTL_PRT_DESIGNATION, NewBTLPart.m_sDESIGN)
|
||||
EgtGetInfo(nPartId, BTL_PRT_ANNOTATION, NewBTLPart.m_sANNOT)
|
||||
EgtGetInfo(nPartId, BTL_PRT_STOREY, NewBTLPart.m_sSTOREY)
|
||||
EgtGetInfo(nPartId, BTL_PRT_GROUP, NewBTLPart.m_sGROUP)
|
||||
EgtGetInfo(nPartId, BTL_PRT_PACKAGE, NewBTLPart.m_sPACKAGE)
|
||||
EgtGetInfo(nPartId, BTL_PRT_TIMBERGRADE, NewBTLPart.m_sTIMBERGRADE)
|
||||
EgtGetInfo(nPartId, BTL_PRT_QUALITYGRADE, NewBTLPart.m_sQUALITYGRADE)
|
||||
EgtGetInfo(nPartId, BTL_PRT_COLOUR, sValue)
|
||||
NewBTLPart.m_colCOLOR.FromString(sValue)
|
||||
EgtGetInfo(nPartId, BTL_PRT_PLANINGLENGTH, NewBTLPart.m_dPLANINGLEN)
|
||||
EgtGetInfo(nPartId, BTL_PRT_STARTOFFSET, NewBTLPart.m_dSTARTOFFSET)
|
||||
EgtGetInfo(nPartId, BTL_PRT_ENDOFFSET, NewBTLPart.m_dENDOFFSET)
|
||||
Dim ind As Integer = 1
|
||||
While EgtGetInfo(nPartId, BTL_PRT_UID & ind, nValue)
|
||||
NewBTLPart.ocUID.Add(nValue)
|
||||
EgtGetInfo(nPartId, BTL_PRT_TRANSFORMATION & ind, sValue)
|
||||
NewBTLPart.m_refTransf = New Frame3d
|
||||
Dim ptOri As New Point3d
|
||||
Dim vtVersX As New Vector3d
|
||||
Dim vtVersY As New Vector3d
|
||||
sValArray = sValue.Split({","}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 9 Then
|
||||
StringToLen(sValArray(0), ptOri.x)
|
||||
StringToLen(sValArray(1), ptOri.y)
|
||||
StringToLen(sValArray(2), ptOri.z)
|
||||
StringToDouble(sValArray(3), vtVersX.x)
|
||||
StringToDouble(sValArray(4), vtVersX.y)
|
||||
StringToDouble(sValArray(5), vtVersX.z)
|
||||
StringToDouble(sValArray(6), vtVersY.x)
|
||||
StringToDouble(sValArray(7), vtVersY.y)
|
||||
StringToDouble(sValArray(8), vtVersY.z)
|
||||
NewBTLPart.m_refTransf.ChangeOrigin(ptOri)
|
||||
NewBTLPart.m_refTransf.Setup(ptOri, ptOri + vtVersX, ptOri + vtVersY)
|
||||
End If
|
||||
NewBTLPart.refTransfList.Add(NewBTLPart.m_refTransf)
|
||||
ind = ind + 1
|
||||
End While
|
||||
EgtGetInfo(nPartId, BTL_PRT_CAMBER, sValue)
|
||||
sValArray = sValue.Split(New String() {": ", " P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 5 Then
|
||||
StringToLen(sValArray(3), NewBTLPart.m_dCamberLen1)
|
||||
StringToLen(sValArray(5), NewBTLPart.m_dCamberLen2)
|
||||
StringToLen(sValArray(7), NewBTLPart.m_dCamberLen3)
|
||||
StringToLen(sValArray(9), NewBTLPart.m_dCamberCross3)
|
||||
End If
|
||||
Dim pFrom As Integer = sValue.IndexOf("SIDE: ") + "SIDE: ".Length
|
||||
Dim pTo As Integer = sValue.LastIndexOf(" P01")
|
||||
If pTo >= 0 Then
|
||||
nValue = CInt(sValue.Substring(pFrom, pTo - pFrom))
|
||||
NewBTLPart.m_SelCAMBERSIDE = NewBTLPart.ocCAMBERSIDE.IndexOf(CInt(sValue.Substring(pFrom, pTo - pFrom)))
|
||||
End If
|
||||
|
||||
EgtGetInfo(nPartId, BTL_PRT_PARTOFFSET, sValue)
|
||||
sValArray = sValue.Split(New String() {": ", " P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 5 Then
|
||||
StringToLen(sValArray(3), NewBTLPart.m_dPartOffsetSide1)
|
||||
StringToLen(sValArray(5), NewBTLPart.m_dPartOffsetSide2)
|
||||
StringToLen(sValArray(7), NewBTLPart.m_dPartOffsetSide3)
|
||||
StringToLen(sValArray(9), NewBTLPart.m_dPartOffsetSide4)
|
||||
End If
|
||||
pFrom = sValue.IndexOf("P04: ") + "P04: ".Length
|
||||
pTo = sValue.LastIndexOf(" P11")
|
||||
If pTo >= 0 Then
|
||||
NewBTLPart.m_SelREFSIDEFIXCLAMP = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValue.Substring(pFrom, pTo - pFrom),
|
||||
NewBTLPart.ocREFSIDEFIXCLAMP),
|
||||
NewBTLPart.ocREFSIDEFIXCLAMP)
|
||||
End If
|
||||
|
||||
Dim EnumIndex As Integer = 0
|
||||
EgtGetInfo(nPartId, BTL_PRT_PROCESSINGQUALITY, sValue)
|
||||
For ind = 1 To NewBTLPart.ocPROCESSINGQUALITY.Count
|
||||
Dim sEnumName = [Enum].GetName(GetType(ProcessingQuality), ind)
|
||||
If sEnumName.Equals(sValue) Then
|
||||
EnumIndex = ind
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
NewBTLPart.m_SelPROCESSINGQUALITY = EnumIndex - 1
|
||||
EgtGetInfo(nPartId, BTL_PRT_RECESS, sValue)
|
||||
EnumIndex = 0
|
||||
For ind = 1 To NewBTLPart.ocRECESS.Count
|
||||
Dim sEnumName = [Enum].GetName(GetType(Recess), ind)
|
||||
If sEnumName.Equals(sValue) Then
|
||||
EnumIndex = ind
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
NewBTLPart.m_SelRECESS = EnumIndex - 1
|
||||
EgtGetInfo(nPartId, BTL_PRT_STOREYTYPE, sValue)
|
||||
EnumIndex = 0
|
||||
For ind = 1 To NewBTLPart.ocSTOREYTYPE.Count
|
||||
Dim sEnumName = [Enum].GetName(GetType(StoreyType), ind)
|
||||
If sEnumName.Equals(sValue) Then
|
||||
EnumIndex = ind
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
NewBTLPart.m_SelSTOREYTYPE = EnumIndex - 1
|
||||
EgtGetInfo(nPartId, BTL_PRT_ELEMENTNUM, NewBTLPart.m_sELEMENTNUM)
|
||||
EgtGetInfo(nPartId, BTL_PRT_LAYER, NewBTLPart.m_nLAYER)
|
||||
EgtGetInfo(nPartId, BTL_PRT_MODULENUM, NewBTLPart.m_sMODULENUM)
|
||||
'EgtGetInfo(nPartId, BTL_PRT_USERATTRIBUTE, m_sUSERATTRIBUTE)
|
||||
EgtGetInfo(nPartId, BTL_PRT_COMMENT, NewBTLPart.m_sCOMMENT)
|
||||
|
||||
EgtGetInfo(nPartId, BTL_PRT_GRAINDIR, sValue)
|
||||
NewBTLPart.m_refGrainDir = New Vector3d
|
||||
sValArray = sValue.Split(New String() {",", ";"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 4 Then
|
||||
StringToDouble(sValArray(0), NewBTLPart.m_refGrainDir.x)
|
||||
StringToDouble(sValArray(1), NewBTLPart.m_refGrainDir.y)
|
||||
StringToDouble(sValArray(2), NewBTLPart.m_refGrainDir.z)
|
||||
NewBTLPart.m_bGRAINDIRALIGN = (CInt(sValArray(3)) = 1)
|
||||
End If
|
||||
|
||||
EgtGetInfo(nPartId, BTL_PRT_REFSIDE, sValue)
|
||||
sValArray = sValue.Split({";"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 2 Then
|
||||
NewBTLPart.m_SelREFSIDE = NewBTLPart.ocREFSIDE.IndexOf(CInt(sValArray(0)))
|
||||
NewBTLPart.m_bREFSIDEALIGN = (CInt(sValArray(1)) = 1)
|
||||
End If
|
||||
|
||||
EgtGetInfo(nPartId, BTL_PRT_ALIGNMENT, sValue)
|
||||
sValArray = sValue.Split({":"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 2 Then
|
||||
NewBTLPart.m_SelALIGNLOCATION = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(0), NewBTLPart.ocALIGNLOCATION),
|
||||
NewBTLPart.ocALIGNLOCATION)
|
||||
NewBTLPart.m_SelALIGNENDTYPE = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(1).Trim(),
|
||||
NewBTLPart.ocALIGNENDTYPE),
|
||||
NewBTLPart.ocALIGNENDTYPE)
|
||||
End If
|
||||
|
||||
EgtGetInfo(nPartId, BTL_PRT_MATERIALTYPE, sValue)
|
||||
sValArray = sValue.Split({":"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
If sValArray.Count() >= 1 Then
|
||||
NewBTLPart.m_SelMATERIALTYPEGRP = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(0),
|
||||
NewBTLPart.ocMATERIALTYPEGRP),
|
||||
NewBTLPart.ocMATERIALTYPEGRP)
|
||||
If sValArray.Count() >= 2 Then NewBTLPart.m_sMATERIALTYPESPEC = sValArray(1).Trim()
|
||||
End If
|
||||
|
||||
If Not EgtGetInfo(nPartId, BTL_PRT_ROTATED, NewBTLPart.nROTATED) Then
|
||||
NewBTLPart.nROTATED = 0
|
||||
End If
|
||||
If Not EgtGetInfo(nPartId, BTL_PRT_INVERTED, NewBTLPart.nINVERTED) Then
|
||||
NewBTLPart.nINVERTED = 0
|
||||
End If
|
||||
EgtGetInfo(nPartId, BTL_PRT_MATERIAL, NewBTLPart.m_sMATERIAL)
|
||||
If Not EgtGetInfo(nPartId, LOCK_ROT, NewBTLPart.bLockRotation) Then
|
||||
NewBTLPart.bLockRotation = False
|
||||
End If
|
||||
If Not EgtGetInfo(nPartId, LOCK_FLIP, NewBTLPart.bLockInversion) Then
|
||||
NewBTLPart.bLockInversion = False
|
||||
End If
|
||||
EgtGetInfo(nPartId, BTL_PRT_VOLUME, NewBTLPart.dVolume)
|
||||
' Leggo outline e features
|
||||
NewBTLPart.m_BTLFeatureMList = LoadFeatures(nPartId, NewBTLPart)
|
||||
' leggo calc error
|
||||
Dim nErr As Integer = 0
|
||||
Dim nRot As Integer = 0
|
||||
Dim nFall As Integer = 0
|
||||
Dim sMsg As String = ""
|
||||
Dim bCalc As Boolean = False
|
||||
bCalc = EgtGetInfo(nPartId, ITG_PROJ_ERR, nErr)
|
||||
EgtGetInfo(nPartId, ITG_PROJ_ROT, nRot)
|
||||
EgtGetInfo(nPartId, ITG_PROJ_FALL, nFall)
|
||||
EgtGetInfo(nPartId, ITG_PROJ_MSG, sMsg)
|
||||
If Not bCalc Then
|
||||
NewBTLPart.m_nState = CalcStates.NOTCALCULATED
|
||||
NewBTLPart.nCALC_ERR = 0
|
||||
NewBTLPart.m_nCALC_ROT = 0
|
||||
NewBTLPart.nCALC_FALL = 0
|
||||
NewBTLPart.sCALC_MSG = ""
|
||||
Else
|
||||
NewBTLPart.nCALC_ERR = nErr
|
||||
NewBTLPart.nCALC_ROT = nRot
|
||||
NewBTLPart.nCALC_FALL = nFall
|
||||
NewBTLPart.sCALC_MSG = sMsg
|
||||
Select Case nErr
|
||||
Case 0
|
||||
NewBTLPart.nState = CalcStates.OK
|
||||
Case 22
|
||||
NewBTLPart.nState = CalcStates.COLLISION
|
||||
Case 17, 19
|
||||
NewBTLPart.nState = CalcStates.WARNING
|
||||
Case < 0
|
||||
NewBTLPart.nState = CalcStates.INFO
|
||||
Case > 0
|
||||
NewBTLPart.nState = CalcStates.ERROR_
|
||||
End Select
|
||||
End If
|
||||
EgtGetInfo(nPartId, ITG_PROJ_TIME, NewBTLPart.m_nCALC_TIME)
|
||||
Return NewBTLPart
|
||||
End Function
|
||||
|
||||
Private Shared Function LoadFeatures(nPartId As Integer, NewBTLPart As BTLLayerM) As List(Of BTLFeatureM)
|
||||
Dim TempList As New List(Of BTLFeatureM)
|
||||
' Leggo outline
|
||||
Dim nOutlineLayerId As Integer = EgtGetFirstNameInGroup(nPartId, OUTLINE)
|
||||
Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayerId)
|
||||
While nOutlineId <> GDB_ID.NULL
|
||||
' verifico che sia una feature
|
||||
Dim nGRP As Integer
|
||||
If EgtGetInfo(nOutlineId, BTL_FTR_GRP, nGRP) Then
|
||||
' creo la feature
|
||||
TempList.Add(BTLFeatureM.CreateBTLFeature(NewBTLPart, nOutlineId))
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
' Leggo feature
|
||||
Dim nProcessingId As Integer = EgtGetFirstNameInGroup(nPartId, PROCESSINGS)
|
||||
Dim nFeatureId As Integer = EgtGetFirstInGroup(nProcessingId)
|
||||
While nFeatureId <> GDB_ID.NULL
|
||||
' verifico che sia una feature
|
||||
Dim nGRP As Integer
|
||||
If EgtGetInfo(nFeatureId, BTL_FTR_GRP, nGRP) AndAlso Not EgtExistsInfo(nFeatureId, BTL_FTR_MAINID) Then
|
||||
' creo la feature
|
||||
Dim NewFeature As BTLFeatureM = BTLFeatureM.CreateBTLFeature(NewBTLPart, nFeatureId)
|
||||
TempList.Add(NewFeature)
|
||||
' aggiorno Id feature perchè potrebbe essere stata ricalcolata
|
||||
nFeatureId = NewFeature.nFeatureId
|
||||
End If
|
||||
nFeatureId = EgtGetNext(nFeatureId)
|
||||
End While
|
||||
Return TempList
|
||||
End Function
|
||||
|
||||
'Sub New(ParentStructure As BTLStructureVM, nPartId As Integer)
|
||||
' MyBase.New(ParentStructure, nPartId)
|
||||
' ' leggo info pezzo
|
||||
' Dim sValArray() As String
|
||||
' Dim sValue As String = String.Empty
|
||||
' Dim nValue As Integer = 0
|
||||
' EgtGetInfo(nPartId, BTL_PRT_PDN, nPDN)
|
||||
' Dim nDO As Integer = 1
|
||||
' If EgtGetInfo(nPartId, BTL_PRT_DO, nDO) Then
|
||||
' m_bDO = (nDO <> 0)
|
||||
' Else
|
||||
' m_bDO = True
|
||||
' End If
|
||||
' EgtGetInfo(nPartId, BTL_PRT_NAM, m_sNAM)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_L, m_dL)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_W, m_dW)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_H, m_dH)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_CNT, m_nCNT)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_ASSEMBLYNUM, m_sASSEMBLYNUM)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_ORDERNUM, m_nORDERNUM)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_DESIGNATION, m_sDESIGN)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_ANNOTATION, m_sANNOT)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_STOREY, m_sSTOREY)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_GROUP, m_sGROUP)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_PACKAGE, m_sPACKAGE)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_TIMBERGRADE, m_sTIMBERGRADE)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_QUALITYGRADE, m_sQUALITYGRADE)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_COLOUR, sValue)
|
||||
' m_colCOLOR.FromString(sValue)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_PLANINGLENGTH, m_dPLANINGLEN)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_STARTOFFSET, m_dSTARTOFFSET)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_ENDOFFSET, m_dENDOFFSET)
|
||||
|
||||
' Dim ind As Integer = 1
|
||||
' While EgtGetInfo(nPartId, BTL_PRT_UID & ind, nValue)
|
||||
' ocUID.Add(nValue)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_TRANSFORMATION & ind, sValue)
|
||||
' m_refTransf = New Frame3d
|
||||
' Dim ptOri As New Point3d
|
||||
' Dim vtVersX As New Vector3d
|
||||
' Dim vtVersY As New Vector3d
|
||||
' sValArray = sValue.Split({","}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 9 Then
|
||||
' StringToLen(sValArray(0), ptOri.x)
|
||||
' StringToLen(sValArray(1), ptOri.y)
|
||||
' StringToLen(sValArray(2), ptOri.z)
|
||||
' StringToDouble(sValArray(3), vtVersX.x)
|
||||
' StringToDouble(sValArray(4), vtVersX.y)
|
||||
' StringToDouble(sValArray(5), vtVersX.z)
|
||||
' StringToDouble(sValArray(6), vtVersY.x)
|
||||
' StringToDouble(sValArray(7), vtVersY.y)
|
||||
' StringToDouble(sValArray(8), vtVersY.z)
|
||||
' m_refTransf.ChangeOrigin(ptOri)
|
||||
' m_refTransf.Setup(ptOri, ptOri + vtVersX, ptOri + vtVersY)
|
||||
' End If
|
||||
' refTransfList.Add(m_refTransf)
|
||||
' ind = ind + 1
|
||||
' End While
|
||||
|
||||
' EgtGetInfo(nPartId, BTL_PRT_CAMBER, sValue)
|
||||
' sValArray = sValue.Split(New String() {": ", " P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 5 Then
|
||||
' StringToLen(sValArray(3), m_dCamberLen1)
|
||||
' StringToLen(sValArray(5), m_dCamberLen2)
|
||||
' StringToLen(sValArray(7), m_dCamberLen3)
|
||||
' StringToLen(sValArray(9), m_dCamberCross3)
|
||||
' End If
|
||||
' Dim pFrom As Integer = sValue.IndexOf("SIDE: ") + "SIDE: ".Length
|
||||
' Dim pTo As Integer = sValue.LastIndexOf(" P01")
|
||||
' If pTo >= 0 Then
|
||||
' nValue = CInt(sValue.Substring(pFrom, pTo - pFrom))
|
||||
' m_SelCAMBERSIDE = ocCAMBERSIDE.IndexOf(CInt(sValue.Substring(pFrom, pTo - pFrom)))
|
||||
' End If
|
||||
|
||||
' EgtGetInfo(nPartId, BTL_PRT_PARTOFFSET, sValue)
|
||||
' sValArray = sValue.Split(New String() {": ", " P"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 5 Then
|
||||
' StringToLen(sValArray(3), m_dPartOffsetSide1)
|
||||
' StringToLen(sValArray(5), m_dPartOffsetSide2)
|
||||
' StringToLen(sValArray(7), m_dPartOffsetSide3)
|
||||
' StringToLen(sValArray(9), m_dPartOffsetSide4)
|
||||
' End If
|
||||
' pFrom = sValue.IndexOf("P04: ") + "P04: ".Length
|
||||
' pTo = sValue.LastIndexOf(" P11")
|
||||
' If pTo >= 0 Then
|
||||
' m_SelREFSIDEFIXCLAMP = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValue.Substring(pFrom, pTo - pFrom), ocREFSIDEFIXCLAMP), ocREFSIDEFIXCLAMP)
|
||||
' End If
|
||||
|
||||
' EgtGetInfo(nPartId, BTL_PRT_PROCESSINGQUALITY, sValue)
|
||||
' m_SelPROCESSINGQUALITY = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValue, ocPROCESSINGQUALITY), ocPROCESSINGQUALITY)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_RECESS, sValue)
|
||||
' m_SelRECESS = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValue, ocRECESS), ocRECESS)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_STOREYTYPE, sValue)
|
||||
' m_SelSTOREYTYPE = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValue, ocSTOREYTYPE), ocSTOREYTYPE)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_ELEMENTNUM, m_sELEMENTNUM)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_LAYER, m_nLAYER)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_MODULENUM, m_sMODULENUM)
|
||||
' 'EgtGetInfo(nPartId, BTL_PRT_USERATTRIBUTE, m_sUSERATTRIBUTE)
|
||||
' EgtGetInfo(nPartId, BTL_PRT_COMMENT, m_sCOMMENT)
|
||||
|
||||
' EgtGetInfo(nPartId, BTL_PRT_GRAINDIR, sValue)
|
||||
' m_refGrainDir = New Vector3d
|
||||
' sValArray = sValue.Split(New String() {",", ";"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 4 Then
|
||||
' StringToDouble(sValArray(0), m_refGrainDir.x)
|
||||
' StringToDouble(sValArray(1), m_refGrainDir.y)
|
||||
' StringToDouble(sValArray(2), m_refGrainDir.z)
|
||||
' m_bGRAINDIRALIGN = (CInt(sValArray(3)) = 1)
|
||||
' End If
|
||||
|
||||
' EgtGetInfo(nPartId, BTL_PRT_REFSIDE, sValue)
|
||||
' sValArray = sValue.Split({";"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 2 Then
|
||||
' m_SelREFSIDE = ocREFSIDE.IndexOf(CInt(sValArray(0)))
|
||||
' m_bREFSIDEALIGN = (CInt(sValArray(1)) = 1)
|
||||
' End If
|
||||
|
||||
' EgtGetInfo(nPartId, BTL_PRT_ALIGNMENT, sValue)
|
||||
' sValArray = sValue.Split({":"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 2 Then
|
||||
' m_SelALIGNLOCATION = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(0), ocALIGNLOCATION), ocALIGNLOCATION)
|
||||
' m_SelALIGNENDTYPE = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(1).Trim(), ocALIGNENDTYPE), ocALIGNENDTYPE)
|
||||
' End If
|
||||
|
||||
' EgtGetInfo(nPartId, BTL_PRT_MATERIALTYPE, sValue)
|
||||
' sValArray = sValue.Split({":"}, StringSplitOptions.RemoveEmptyEntries)
|
||||
' If sValArray.Count() >= 1 Then
|
||||
' m_SelMATERIALTYPEGRP = IdNameStruct.IndFromId(IdNameStruct.IdFromName(sValArray(0), ocMATERIALTYPEGRP), ocMATERIALTYPEGRP)
|
||||
' If sValArray.Count() >= 2 Then m_sMATERIALTYPESPEC = sValArray(1).Trim()
|
||||
' End If
|
||||
|
||||
' If Not EgtGetInfo(nPartId, BTL_PRT_ROTATED, m_nROTATED) Then
|
||||
' m_nROTATED = 0
|
||||
' End If
|
||||
' If Not EgtGetInfo(nPartId, BTL_PRT_INVERTED, m_nINVERTED) Then
|
||||
' m_nINVERTED = 0
|
||||
' End If
|
||||
' If EgtGetInfo(nPartId, BTL_PRT_MATERIAL, m_sMATERIAL) Then
|
||||
' If Not ParentStructure.MaterialList.Contains(m_sMATERIAL) Then
|
||||
' ParentStructure.MaterialList.Add(m_sMATERIAL)
|
||||
' End If
|
||||
' End If
|
||||
' If Not ParentStructure.SectionList.Contains(Section) Then
|
||||
' ParentStructure.SectionList.Add(Section)
|
||||
' End If
|
||||
' ' Leggo outline
|
||||
' Dim nOutlineLayerId As Integer = EgtGetFirstNameInGroup(nPartId, OUTLINE)
|
||||
' Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayerId)
|
||||
' While nOutlineId <> GDB_ID.NULL
|
||||
' ' verifico che sia una feature
|
||||
' Dim nGRP As Integer
|
||||
' If EgtGetInfo(nOutlineId, BTL_FTR_GRP, nGRP) Then
|
||||
' ' creo la feature
|
||||
' m_FeatureList.Add(New BTLFeatureVM(Me, nOutlineId))
|
||||
' End If
|
||||
' nOutlineId = EgtGetNext(nOutlineId)
|
||||
' End While
|
||||
' ' Leggo feature
|
||||
' Dim nProcessingId As Integer = EgtGetFirstNameInGroup(nPartId, PROCESSINGS)
|
||||
' Dim nFeatureId As Integer = EgtGetFirstInGroup(nProcessingId)
|
||||
' While nFeatureId <> GDB_ID.NULL
|
||||
' ' verifico che sia una feature
|
||||
' Dim nGRP As Integer
|
||||
' If EgtGetInfo(nFeatureId, BTL_FTR_GRP, nGRP) Then
|
||||
' ' creo la feature
|
||||
' m_FeatureList.Add(New BTLFeatureVM(Me, nFeatureId))
|
||||
' End If
|
||||
' nFeatureId = EgtGetNext(nFeatureId)
|
||||
' End While
|
||||
' ' Aggiorno check DOALL
|
||||
' NotifyPropertyChanged("bDOALL")
|
||||
' ' leggo calc error
|
||||
' Dim nErr As Integer = 0
|
||||
' Dim nRot As Integer = 0
|
||||
' Dim nFall As Integer = 0
|
||||
' Dim sMsg As String = ""
|
||||
' Dim bCalc As Boolean = False
|
||||
' bCalc = EgtGetInfo(nPartId, ITG_PROJ_ERR, nErr)
|
||||
' EgtGetInfo(nPartId, ITG_PROJ_ROT, nRot)
|
||||
' EgtGetInfo(nPartId, ITG_PROJ_FALL, sMsg)
|
||||
' EgtGetInfo(nPartId, ITG_PROJ_MSG, sMsg)
|
||||
' CalcPartUpdate(bCalc, nErr, nRot, nFall, sMsg)
|
||||
' CalcFeatureUpdate()
|
||||
'End Sub
|
||||
|
||||
'Sub New(ParentStructure As BTLStructure, nPartId As Integer)
|
||||
' m_BTLStructureM = ParentStructure
|
||||
' Me.SetPartId = nPartId
|
||||
' m_FeatureList = New ObservableCollection(Of BTLFeature)
|
||||
'End Sub
|
||||
|
||||
'#End Region ' CONSTRUCTOR
|
||||
|
||||
'#Region "METHODS"
|
||||
|
||||
' Public Event BTLFeatureAdded As EventHandler(Of BTLFeatureAddedEventArgs)
|
||||
|
||||
' Public Sub AddBTLFeature(BTLFeatureM As BTLFeatureM)
|
||||
' If IsNothing(BTLFeatureM) Then Return
|
||||
' If Not m_BTLFeatureMList.Contains(BTLFeatureM) Then
|
||||
' m_BTLFeatureMList.Add(BTLFeatureM)
|
||||
' RaiseEvent BTLFeatureAdded(Me, New BTLFeatureAddedEventArgs(BTLFeatureM))
|
||||
' End If
|
||||
' End Sub
|
||||
|
||||
' Public Function GetBTLFeatures() As List(Of BTLFeatureM)
|
||||
' Return New List(Of BTLFeatureM)(m_BTLFeatureMList)
|
||||
' End Function
|
||||
|
||||
' Public Function Rotation(IsPositive As Boolean, SelectedMachineType As MachineType, Optional dAng As Double = 90) As Boolean
|
||||
' ' recupero il box del pezzo
|
||||
' Dim nLs As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||
' Dim b3Solid As New BBox3d
|
||||
' EgtGetBBoxGlob(nLs, GDB_BB.STANDARD, b3Solid)
|
||||
' If b3Solid.IsEmpty() Then
|
||||
' EgtOutLog("ERROR: Box non definito per la trave " & sNAM)
|
||||
' Return False
|
||||
' End If
|
||||
' ' eseguo rotazione di 90 gradi attorno asse X
|
||||
' Dim dRot = If(IsPositive, 1, -1) * Math.Abs(dAng)
|
||||
' Dim vtAxes As Vector3d
|
||||
' ' se travi ruoto attorno all'asse X
|
||||
' If SelectedMachineType = MachineType.BEAM Then
|
||||
' vtAxes = Vector3d.X_AX
|
||||
' ' se pareti ruoto attorno all'asse Z
|
||||
' ElseIf SelectedMachineType = MachineType.WALL Then
|
||||
' vtAxes = -Vector3d.Z_AX
|
||||
' End If
|
||||
' ' se invertito
|
||||
' Dim bInverted As Boolean = nINVERTED <> 0
|
||||
' If bInverted Then
|
||||
' ' annullo inversione
|
||||
' Inversion(SelectedMachineType)
|
||||
' End If
|
||||
' ' eseguo rotazione
|
||||
' Dim bOk As Boolean = EgtRotate(nPartId, b3Solid.Center, vtAxes, dRot, GDB_RT.GLOB)
|
||||
' If bOk Then
|
||||
' Dim dNewRotation As Double = (nROTATED + dRot) Mod 360
|
||||
' nROTATED = If(dNewRotation >= 0, dNewRotation, 360 + dNewRotation)
|
||||
' EgtSetInfo(nPartId, BTL_PRT_ROTATED, nROTATED)
|
||||
' ' imposto modificato per copie
|
||||
' EgtDuploSetModified(nPartId)
|
||||
' End If
|
||||
' ' se era invertito
|
||||
' If bInverted Then
|
||||
' ' ripristino inversione
|
||||
' Inversion(SelectedMachineType)
|
||||
' End If
|
||||
' EgtDraw()
|
||||
' Return bOk
|
||||
' End Function
|
||||
|
||||
' Public Sub Inversion(SelectedMachineType As MachineType)
|
||||
' ' recupero il box del pezzo
|
||||
' Dim nLs As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||
' Dim b3Solid As New BBox3d
|
||||
' EgtGetBBoxGlob(nLs, GDB_BB.STANDARD, b3Solid)
|
||||
' If b3Solid.IsEmpty() Then
|
||||
' EgtOutLog("ERROR: Box non definito per la trave " & sNAM)
|
||||
' Return
|
||||
' End If
|
||||
' Dim vtAxes As Vector3d
|
||||
' ' se travi ruoto attorno all'asse Z
|
||||
' If SelectedMachineType = MachineType.BEAM Then
|
||||
' vtAxes = Vector3d.Z_AX
|
||||
' ' se pareti ruoto attorno all'asse X
|
||||
' ElseIf SelectedMachineType = MachineType.WALL Then
|
||||
' vtAxes = Vector3d.X_AX
|
||||
' End If
|
||||
' ' eseguo rotazione di 180 gradi
|
||||
' If EgtRotate(nPartId, b3Solid.Center, vtAxes, 180, GDB_RT.GLOB) Then
|
||||
' nINVERTED = If(nINVERTED = 0, 180, 0)
|
||||
' EgtSetInfo(nPartId, BTL_PRT_INVERTED, nINVERTED)
|
||||
' ' imposto modificato per copie
|
||||
' EgtDuploSetModified(nPartId)
|
||||
' End If
|
||||
' End Sub
|
||||
|
||||
' Public Function NewProcId() As Integer
|
||||
' Dim nMaxProcId As Integer = 0
|
||||
' If Not IsNothing(BTLFeatureMList) AndAlso BTLFeatureMList.Count > 0 Then
|
||||
' nMaxProcId = BTLFeatureMList.Max(Function(x) x.nPRID)
|
||||
' End If
|
||||
' Return nMaxProcId + 1
|
||||
' End Function
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
End Class
|
||||
|
||||
@@ -1001,16 +1001,6 @@ Public Class BTLPartM
|
||||
Return TempList
|
||||
End Function
|
||||
|
||||
Private Function MessageFromLuaMsg(LuaMsg As String) As String
|
||||
Dim sSplit() As String = LuaMsg.Split("$$")
|
||||
Dim nMsg As Integer = -1
|
||||
If sSplit.Count > 1 AndAlso Integer.TryParse(sSplit(0), nMsg) Then
|
||||
Return EgtMsg(65000 + nMsg)
|
||||
Else
|
||||
Return LuaMsg
|
||||
End If
|
||||
End Function
|
||||
|
||||
'Sub New(ParentStructure As BTLStructureVM, nPartId As Integer)
|
||||
' MyBase.New(ParentStructure, nPartId)
|
||||
' ' leggo info pezzo
|
||||
|
||||
@@ -18,6 +18,35 @@ Public Class BTLStructureM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_nCompositesId As Integer = GDB_ID.NULL
|
||||
Public ReadOnly Property nCompositesId As Integer
|
||||
Get
|
||||
Return m_nCompositesId
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' composite di tipo Element da BTL
|
||||
Public m_BTLElementMList As List(Of BTLElementM)
|
||||
Public Property BTLElementMList As List(Of BTLElementM)
|
||||
Get
|
||||
Return m_BTLElementMList
|
||||
End Get
|
||||
Set(value As List(Of BTLElementM))
|
||||
m_BTLElementMList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' composite di tipo Layer da BTL
|
||||
Public m_BTLLayerMList As List(Of BTLLayerM)
|
||||
Public Property BTLLayerMList As List(Of BTLLayerM)
|
||||
Get
|
||||
Return m_BTLLayerMList
|
||||
End Get
|
||||
Set(value As List(Of BTLLayerM))
|
||||
m_BTLLayerMList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' pezzi da BTL
|
||||
Public m_BTLPartMList As List(Of BTLPartM)
|
||||
Public Property BTLPartMList As List(Of BTLPartM)
|
||||
@@ -406,7 +435,35 @@ Public Class BTLStructureM
|
||||
Else
|
||||
NewBTLStructure.m_nAsseBaseId = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
NewBTLStructure.m_nBTLInfoId = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
|
||||
NewBTLStructure.m_nCompositesId = EgtGetFirstNameInGroup(GDB_ID.ROOT, COMPOSITES)
|
||||
End If
|
||||
' cerco tra i Composites se ci sono Element o Layer per vedere se è un progetto Pareti Layer
|
||||
Dim nCompositesId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, COMPOSITES)
|
||||
While nCompositesId <> GDB_ID.NULL
|
||||
' verifico se il layer appartiene al ProjId
|
||||
Dim nCompositesProjId As Integer
|
||||
EgtGetInfo(nCompositesId, BTL_PRT_PROJ, nCompositesProjId)
|
||||
If nCompositesProjId = ProjId Then
|
||||
NewBTLStructure.m_nCompositesId = nCompositesProjId
|
||||
Dim nCompositesSubNodeId As Integer = EgtGetFirstInGroup(nCompositesId)
|
||||
' se Composites presente recupero i Composites di tipo Element e Layer
|
||||
NewBTLStructure.m_BTLElementMList = LoadElements(nCompositesSubNodeId)
|
||||
NewBTLStructure.m_BTLLayerMList = LoadLayers(nCompositesSubNodeId)
|
||||
' aggiungo i Layer già caricati al BTLElement a seconda del GROUP
|
||||
For Each BTLElementItem In NewBTLStructure.BTLElementMList
|
||||
BTLElementItem.BTLLayerMList = New List(Of BTLLayerM)
|
||||
For Each BTLLayerItem In NewBTLStructure.BTLLayerMList
|
||||
If BTLLayerItem.sGROUP = BTLElementItem.sGROUP Then
|
||||
' recupero i pezzi associati al Layer
|
||||
BTLLayerItem.BTLPartMList = LoadLayerParts(BTLLayerItem.nPartId)
|
||||
BTLElementItem.BTLLayerMList.Add(BTLLayerItem)
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
Exit While
|
||||
End If
|
||||
nCompositesId = EgtGetNextName(nCompositesId, COMPOSITES)
|
||||
End While
|
||||
EgtGetInfo(NewBTLStructure.m_nBTLInfoId, BTL_GEN_PROJNUM, NewBTLStructure.m_sPROJNUM)
|
||||
EgtGetInfo(NewBTLStructure.m_nBTLInfoId, BTL_GEN_PROJNAME, NewBTLStructure.m_sPROJNAME)
|
||||
EgtGetInfo(NewBTLStructure.m_nBTLInfoId, BTL_GEN_PROJPART, NewBTLStructure.m_sPROJPART)
|
||||
@@ -465,6 +522,56 @@ Public Class BTLStructureM
|
||||
Return TempList
|
||||
End Function
|
||||
|
||||
Private Shared Function LoadLayerParts(nLayerId As Integer) As List(Of BTLPartM)
|
||||
Dim TempList As New List(Of BTLPartM)
|
||||
Dim nSubLayerId As Integer = EgtGetFirstInGroup(nLayerId)
|
||||
' devo far passare i vari SubLayerId finchè non trovo quelli di UID.
|
||||
' dentro questi devo trovare !SOU, il valore di questo è il PartId che ci interessa caricare
|
||||
While nSubLayerId <> GDB_ID.NULL
|
||||
Dim sSubLayerName As String = ""
|
||||
Dim nPartId As Integer
|
||||
EgtGetName(nSubLayerId, sSubLayerName)
|
||||
If sSubLayerName.Length > 3 AndAlso sSubLayerName.Substring(0, 4) = "UID-" Then
|
||||
EgtGetInfo(nSubLayerId, "!SOU", nPartId)
|
||||
If nPartId <> GDB_ID.NULL Then
|
||||
TempList.Add(BTLPartM.CreateBTLPart(nPartId))
|
||||
End If
|
||||
End If
|
||||
nSubLayerId = EgtGetNext(nSubLayerId)
|
||||
End While
|
||||
Return TempList
|
||||
End Function
|
||||
|
||||
Private Shared Function LoadElements(CompositesSubNodeId As Integer) As List(Of BTLElementM)
|
||||
Dim TempList As New List(Of BTLElementM)
|
||||
Dim nCompositesSubNodeId As Integer = CompositesSubNodeId
|
||||
While nCompositesSubNodeId <> GDB_ID.NULL
|
||||
Dim sCompositeType As String = ""
|
||||
Dim nTest As Integer = 0
|
||||
EgtGetInfo(nCompositesSubNodeId, BTL_PRT_TYPE, sCompositeType)
|
||||
If sCompositeType = "ELEMENT" Then
|
||||
TempList.Add(BTLElementM.CreateBTLElement(nCompositesSubNodeId))
|
||||
End If
|
||||
nCompositesSubNodeId = EgtGetNextGroup(nCompositesSubNodeId)
|
||||
End While
|
||||
Return TempList
|
||||
End Function
|
||||
|
||||
Private Shared Function LoadLayers(CompositesSubNodeId As Integer) As List(Of BTLLayerM)
|
||||
Dim TempList As New List(Of BTLLayerM)
|
||||
Dim nCompositesSubNodeId As Integer = CompositesSubNodeId
|
||||
While nCompositesSubNodeId <> GDB_ID.NULL
|
||||
Dim sCompositeType As String = ""
|
||||
Dim nTest As Integer = 0
|
||||
EgtGetInfo(nCompositesSubNodeId, BTL_PRT_TYPE, sCompositeType)
|
||||
If sCompositeType = "LAYER" Then
|
||||
TempList.Add(BTLLayerM.CreateBTLLayer(nCompositesSubNodeId))
|
||||
End If
|
||||
nCompositesSubNodeId = EgtGetNextGroup(nCompositesSubNodeId)
|
||||
End While
|
||||
Return TempList
|
||||
End Function
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
#Region "METHODS"
|
||||
@@ -486,6 +593,22 @@ Public Class BTLStructureM
|
||||
'RaiseEvent BTLPartAdded(Me, New BTLPartAddedEventArgs(BTLPartM))
|
||||
End Sub
|
||||
|
||||
Public Function GetBTLElements() As List(Of BTLElementM)
|
||||
If Not IsNothing(m_BTLElementMList) Then
|
||||
Return New List(Of BTLElementM)(m_BTLElementMList)
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function GetBTLLayers() As List(Of BTLLayerM)
|
||||
If Not IsNothing(m_BTLLayerMList) Then
|
||||
Return New List(Of BTLLayerM)(m_BTLLayerMList)
|
||||
Else
|
||||
Return Nothing
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function GetBTLParts() As List(Of BTLPartM)
|
||||
Return New List(Of BTLPartM)(m_BTLPartMList)
|
||||
End Function
|
||||
|
||||
@@ -113,11 +113,18 @@
|
||||
PROD = 2
|
||||
End Enum
|
||||
|
||||
' Tipo di progetto (Beam o Wall)
|
||||
Public Enum BWType As Integer
|
||||
NULL = 0
|
||||
BEAM = 1
|
||||
WALL = 2
|
||||
' Tipo di progetto (Beam o Wall)
|
||||
Public Enum BWType As Integer
|
||||
NULL = 0
|
||||
BEAM = 1
|
||||
WALL = 2
|
||||
End Enum
|
||||
|
||||
' Tipo di Composite (Element o Layer)
|
||||
Public Enum CompositeType As Integer
|
||||
NULL = 0
|
||||
ELEMENT = 1
|
||||
LAYER = 2
|
||||
End Enum
|
||||
|
||||
Public Const PROJ As String = "PROJ"
|
||||
@@ -126,9 +133,16 @@
|
||||
|
||||
' layer per assemblato
|
||||
Public Const ASSEBASE As String = "AsseBase"
|
||||
' info parametri assemblato
|
||||
Public Const BTL_ASSEBASE_N As String = "N"
|
||||
|
||||
Public Const COMPOSITES As String = "Composites"
|
||||
Public Const ELEMENT As String = "Element"
|
||||
Public Const LAYER As String = "Layer"
|
||||
|
||||
' info parametri BTL
|
||||
Public Const BTL_PRT_PROJ As String = "PROJ"
|
||||
Public Const BTL_PRT_TYPE As String = "TYPE"
|
||||
Public Const BTL_PRT_PDN As String = "PDN"
|
||||
Public Const BTL_PRT_DO As String = "DO"
|
||||
Public Const BTL_PRT_NAM As String = "NAM"
|
||||
@@ -284,6 +298,7 @@
|
||||
Public Const WRH_CURRENT As String = "Current"
|
||||
Public Const WRH_STARTOFFSET As String = "StartOffset"
|
||||
Public Const WRH_OFFSET As String = "Offset"
|
||||
Public Const WRH_RANGE As String = "Range"
|
||||
Public Const WRH_QUANTITY As String = "Quantity"
|
||||
Public Const WRH_L As String = "L"
|
||||
Public Const WRH_KERF As String = "Kerf"
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
Public Const S_SECTXMATLIST_WALL As String = "DG_SectXMatList_WALL"
|
||||
Public Const S_VARIABLESLIST As String = "DG_VariablesList"
|
||||
Public Const S_MDICOMMANDS As String = "DG_MDICommands"
|
||||
Public Const S_UPDATEBTLPARTLIST As String = "DG_UpdateBTLPartList"
|
||||
|
||||
Public Const K_LOCKTABLE As String = "LockTable"
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
Public Const PROJECT_OPTIMIZER As String = "Project_Optimizer"
|
||||
Public Const LEFTPANEL_VIEW As String = "LeftPanel_View"
|
||||
Public Const LEFTPANEL_OPTIMIZER As String = "LeftPanel_Optimizer"
|
||||
Public Const LEFTPANEL_LAYERSWALL As String = "LeftPanel_LayersWall"
|
||||
Public Const TOPPANEL_OPTIMIZER As String = "TopPanel_Optimizer"
|
||||
Public Const LEFTPANEL_SUPERVISOR As String = "LeftPanel_Supervisor"
|
||||
Public Const PROJECT_SUPERVISOR As String = "Project_Supervisor"
|
||||
|
||||
@@ -32,6 +32,7 @@ Public Module ConstGen
|
||||
CONFIG = 3
|
||||
INPUTS = 4
|
||||
OUTPUTS = 5
|
||||
LAYERSWALL = 6
|
||||
End Enum
|
||||
|
||||
' Abilitazioni licenza
|
||||
|
||||
@@ -37,7 +37,9 @@ Public Module ConstIni
|
||||
'Public Const K_SUPPORT As String = "Support"
|
||||
Public Const K_WAREHOUSE As String = "Warehouse"
|
||||
Public Const K_DBADDRESS As String = "DbAddress"
|
||||
Public Const K_DBMASTERKEY As String = "DbMasterKey"
|
||||
Public Const K_UPDATEBTL As String = "UpdateBtl"
|
||||
Public Const K_DATADIR As String = "DataDir"
|
||||
|
||||
'Public Const S_LANGUAGES As String = "Languages"
|
||||
'Public Const K_LANGUAGE As String = "Language"
|
||||
|
||||
@@ -79,6 +79,8 @@
|
||||
<Import Include="System.Xml.Linq" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BTLModel\BTLLayerM.vb" />
|
||||
<Compile Include="BTLModel\BTLElementM.vb" />
|
||||
<Compile Include="BTLViewModel\BTLFeatureVM.vb" />
|
||||
<Compile Include="CALCPanel\CalcEditEndEventArgs.vb" />
|
||||
<Compile Include="Constants\ConstColumns.vb" />
|
||||
@@ -120,6 +122,7 @@
|
||||
<Compile Include="MachGroupPanel\MyMachGroupVM.vb" />
|
||||
<Compile Include="MachGroupPanel\PartVM.vb" />
|
||||
<Compile Include="Utility\GridDimension.vb" />
|
||||
<Compile Include="Utility\LuaMsgManager.vb" />
|
||||
<Compile Include="Utility\MachLog.vb" />
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.Windows.Controls
|
||||
Imports System.Windows.Forms
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
@@ -31,7 +32,8 @@ Public Module DataGridColumnsIniFile
|
||||
Integer.TryParse(sColumnParams(6), WidthType)
|
||||
Dim bVisible As Boolean = sColumnParams(7).Equals("1")
|
||||
Dim bCanUserEditVisible As Boolean = sColumnParams(8).Equals("1")
|
||||
ocColumns.Add(New EgtDataGridColumn(ParentDGName, sName, bReorder, bResize, bSort, bIsReadOnly, New DataGridLength(Width, WidthType), bVisible, bCanUserEditVisible))
|
||||
Dim nSortDirection As SortOrder = If(sColumnParams.Count >= 10, CInt(sColumnParams(9)), 0)
|
||||
ocColumns.Add(New EgtDataGridColumn(ParentDGName, sName, bReorder, bResize, bSort, bIsReadOnly, New DataGridLength(Width, WidthType), bVisible, bCanUserEditVisible, nSortDirection))
|
||||
End If
|
||||
colIndex += 1
|
||||
End While
|
||||
@@ -67,7 +69,8 @@ Public Module DataGridColumnsIniFile
|
||||
Integer.TryParse(sColumnParams(6), WidthType)
|
||||
Dim bVisible As Boolean = sColumnParams(7).Equals("1")
|
||||
Dim bCanUserEditVisible As Boolean = sColumnParams(8).Equals("1")
|
||||
Column = New EgtDataGridColumn(ParentDGName, sName, bReorder, bResize, bSort, bIsReadOnly, New DataGridLength(Width, WidthType), bVisible, bCanUserEditVisible)
|
||||
Dim nSortDirection As SortOrder = If(sColumnParams.Count >= 10, CInt(sColumnParams(9)), 0)
|
||||
Column = New EgtDataGridColumn(ParentDGName, sName, bReorder, bResize, bSort, bIsReadOnly, New DataGridLength(Width, WidthType), bVisible, bCanUserEditVisible, nSortDirection)
|
||||
Exit While
|
||||
End If
|
||||
End If
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
Handler="Cell_SizedChanged" />
|
||||
<EventSetter Event="MouseRightButtonDown"
|
||||
Handler="Cell_MouseRightButtonDown" />
|
||||
<EventSetter Event="FrameworkElement.Loaded"
|
||||
Handler="DataGridColumnHeader_Loaded"/>
|
||||
</Style>
|
||||
</DataGrid.ColumnHeaderStyle>
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.Collections.Specialized
|
||||
Imports System.ComponentModel
|
||||
Imports System.Windows
|
||||
Imports System.Windows.Controls
|
||||
Imports System.Windows.Data
|
||||
@@ -13,20 +14,13 @@ Public Class EgtDataGrid
|
||||
|
||||
' vecchio indice da salvare per il Reorder delle colonne
|
||||
Public OldIndex As Integer = 0
|
||||
|
||||
' variabili e costanti per il Resize delle colonne adiacenti
|
||||
Private Const LEFT As String = "PART_LeftHeaderGripper"
|
||||
Private Const RIGHT As String = "PART_RightHeaderGripper"
|
||||
Private startPoint As Point
|
||||
Private startWidth As Double
|
||||
Private adjacentStartWidth As Double
|
||||
'Private startUnitType As DataGridLengthUnitType
|
||||
'Private adjacentUnitType As DataGridLengthUnitType
|
||||
Private targetColumn As DataGridColumn
|
||||
Private adjacentColumn As DataGridColumn
|
||||
|
||||
' indice header su cui è aperto il ContextMenu per gestione check/uncheck LockTable
|
||||
Private HeaderDispIndex As Integer = 0
|
||||
' somma delle larghezze delle colonne di EgtDataGrid
|
||||
Private columnsWidth As Double = 0
|
||||
|
||||
' larghezza minima dell'ultima colonna per attivare/disattivare ScrollBar orizzontale
|
||||
Private Const LASTCOLUMN_MINWIDTH As Double = 40
|
||||
|
||||
Sub New()
|
||||
InitializeComponent()
|
||||
@@ -137,6 +131,44 @@ Public Class EgtDataGrid
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub DataGrid_SizedChanged(sender As Object, e As SizeChangedEventArgs) Handles CurrDataGrid.SizeChanged
|
||||
' confronto la larghezza effettiva della EgtDataGrid con la somma delle larghezze delle colonne
|
||||
UpdateColumnsWidth()
|
||||
If BindingColumns.Count > 0 Then
|
||||
If CurrDataGrid.ActualWidth - LASTCOLUMN_MINWIDTH > columnsWidth Then
|
||||
' nascondo la ScrollBar orizzontale e setto lo UnitType dell'ultima colonna visibile a Star
|
||||
ScrollViewer.SetHorizontalScrollBarVisibility(CurrDataGrid, ScrollBarVisibility.Hidden)
|
||||
BindingColumns.Last(Function(x) x.Visible = True).Width = New DataGridLength(1, DataGridLengthUnitType.Star)
|
||||
Else
|
||||
' mostro la ScrollBar orizzontale e se UnitType delle colonne è Star lo setto a Pixel
|
||||
ScrollViewer.SetHorizontalScrollBarVisibility(CurrDataGrid, ScrollBarVisibility.Visible)
|
||||
For Each bc In BindingColumns
|
||||
If bc.Width.IsStar Then
|
||||
bc.Width = New DataGridLength(bc.ActualWidth, DataGridLengthUnitType.Pixel)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
' scrivo nell'INI la Width dell'ultima colonna visibile
|
||||
BindingColumns.Last(Function(x) x.Visible = True).SaveDataGridColumn()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub UpdateColumnsWidth()
|
||||
' ricalcolo la somma delle larghezze delle colonne visibili
|
||||
columnsWidth = 0
|
||||
For Each col In BindingColumns
|
||||
If col.ColumnVisibility = Visibility.Visible Then
|
||||
columnsWidth += col.ActualWidth
|
||||
End If
|
||||
Next
|
||||
' alla somma calcolata tolgo la larghezza dell'ultima colonna visibile e aggiungo LASTCOLUMN_MINWIDTH
|
||||
' (in questo modo si attiva/disattiva la ScrollBar orizzontale non appena l'ultima colonna viene ristretta/estesa a LASTCOLUMN_MINWIDTH px)
|
||||
If BindingColumns.Count > 0 AndAlso
|
||||
BindingColumns.Any(Function(x) x.Visible = True) Then
|
||||
columnsWidth = columnsWidth - BindingColumns.Last(Function(x) x.Visible = True).ActualWidth + LASTCOLUMN_MINWIDTH
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Cell_MouseRightButtonDown(sender As Object, e As RoutedEventArgs)
|
||||
Dim nDispIndex As Integer = sender.DisplayIndex
|
||||
' creo il ContextMenu con gli item checkabili
|
||||
@@ -148,19 +180,23 @@ Public Class EgtDataGrid
|
||||
Dim miVis As MenuItem = New MenuItem()
|
||||
Dim sep2 As Separator = New Separator()
|
||||
Dim miLock As MenuItem = New MenuItem()
|
||||
Dim miResetSort As MenuItem = New MenuItem()
|
||||
miReorder.Header = NameOf(EgtDataGridColumn.CanUserReorder)
|
||||
miResize.Header = NameOf(EgtDataGridColumn.CanUserResize)
|
||||
miSort.Header = NameOf(EgtDataGridColumn.CanUserSort)
|
||||
miVis.Header = "Columns Visibility"
|
||||
miLock.Header = "Lock Table"
|
||||
miResetSort.Header = "Reset Sort"
|
||||
miReorder.IsCheckable = True
|
||||
miResize.IsCheckable = True
|
||||
miSort.IsCheckable = True
|
||||
miLock.IsCheckable = True
|
||||
miResetSort.IsCheckable = False
|
||||
miReorder.StaysOpenOnClick = True
|
||||
miResize.StaysOpenOnClick = True
|
||||
miSort.StaysOpenOnClick = True
|
||||
miLock.StaysOpenOnClick = True
|
||||
miResetSort.StaysOpenOnClick = True
|
||||
' setto il binding
|
||||
Dim miReorderBinding As Binding = New Binding(NameOf(EgtDataGridColumn.CanUserReorder))
|
||||
Dim miResizeBinding As Binding = New Binding(NameOf(EgtDataGridColumn.CanUserResize))
|
||||
@@ -183,6 +219,7 @@ Public Class EgtDataGrid
|
||||
HeaderDispIndex = nDispIndex
|
||||
AddHandler miLock.Checked, AddressOf miLock_Checked
|
||||
AddHandler miLock.Unchecked, AddressOf miLock_Unchecked
|
||||
AddHandler miResetSort.Click, AddressOf miResetSort_Click
|
||||
' aggiungo i MenuItem al ContextMenu
|
||||
cm.Items.Add(miReorder)
|
||||
cm.Items.Add(miResize)
|
||||
@@ -191,6 +228,7 @@ Public Class EgtDataGrid
|
||||
cm.Items.Add(miVis)
|
||||
cm.Items.Add(sep2)
|
||||
cm.Items.Add(miLock)
|
||||
cm.Items.Add(miResetSort)
|
||||
' creo e aggiungo gli item figli di Columns Visibility
|
||||
For Each Column In BindingColumns
|
||||
Dim mi As MenuItem = New MenuItem()
|
||||
@@ -233,86 +271,6 @@ Public Class EgtDataGrid
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub DataGridColumnHeader_Loaded(sender As Object, e As RoutedEventArgs)
|
||||
Dim header = DirectCast(sender, DataGridColumnHeader)
|
||||
|
||||
Dim thumbLeft As Thumb = header.Template.FindName(LEFT, header)
|
||||
thumbLeft.AddHandler(Thumb.DragStartedEvent, CType(AddressOf Thumb_DragStarted, DragStartedEventHandler), True)
|
||||
thumbLeft.AddHandler(Thumb.DragCompletedEvent, CType(AddressOf Thumb_DragCompleted, DragCompletedEventHandler), True)
|
||||
|
||||
Dim thumbRight As Thumb = header.Template.FindName(RIGHT, header)
|
||||
thumbRight.AddHandler(Thumb.DragStartedEvent, CType(AddressOf Thumb_DragStarted, DragStartedEventHandler), True)
|
||||
thumbRight.AddHandler(Thumb.DragCompletedEvent, CType(AddressOf Thumb_DragCompleted, DragCompletedEventHandler), True)
|
||||
End Sub
|
||||
|
||||
Private Sub Thumb_DragStarted(sender As Object, e As DragStartedEventArgs)
|
||||
Dim thumb = CType(sender, Thumb)
|
||||
Dim dg As DataGrid = GetParent(Of DataGrid)(thumb)
|
||||
startPoint = Mouse.GetPosition(dg)
|
||||
|
||||
Dim header As DataGridColumnHeader = GetParent(Of DataGridColumnHeader)(thumb)
|
||||
|
||||
If thumb.Name = RIGHT Then
|
||||
targetColumn = header.Column
|
||||
Dim Index As Integer = header.Column.DisplayIndex + 1
|
||||
If (Index < BindingColumns.Count) Then
|
||||
adjacentColumn = dg.Columns.FirstOrDefault(Function(x) x.DisplayIndex = Index)
|
||||
End If
|
||||
Else
|
||||
Dim Index As Integer = header.Column.DisplayIndex - 1
|
||||
If (Index >= 0) Then
|
||||
adjacentColumn = dg.Columns.FirstOrDefault(Function(x) x.DisplayIndex = Index + 1)
|
||||
End If
|
||||
targetColumn = dg.Columns.FirstOrDefault(Function(x) x.DisplayIndex = Index)
|
||||
End If
|
||||
startWidth = targetColumn.ActualWidth
|
||||
'startUnitType = targetColumn.Width.UnitType
|
||||
If Not IsNothing(adjacentColumn) Then
|
||||
adjacentStartWidth = adjacentColumn.ActualWidth
|
||||
'adjacentUnitType = adjacentColumn.Width.UnitType
|
||||
End If
|
||||
AddHandler thumb.PreviewMouseMove, AddressOf Thumb_PreviewMouseMove
|
||||
End Sub
|
||||
|
||||
Private Sub Thumb_PreviewMouseMove(sender As Object, e As MouseEventArgs)
|
||||
Dim thumb = CType(sender, Thumb)
|
||||
If (Not thumb.IsDragging Or IsNothing(targetColumn)) Then Return
|
||||
|
||||
e.Handled = True
|
||||
|
||||
Dim dg As DataGrid = GetParent(Of DataGrid)(thumb)
|
||||
Dim currentPoint As Point = Mouse.GetPosition(dg)
|
||||
Dim diffX As Double = (currentPoint - startPoint).X
|
||||
Dim newWidth As Double = Math.Max(targetColumn.MinWidth, Math.Min(startWidth + diffX, targetColumn.MaxWidth))
|
||||
Dim length = New DataGridLength(newWidth)
|
||||
|
||||
targetColumn.SetValue(DataGridColumn.WidthProperty, length)
|
||||
|
||||
If Not IsNothing(adjacentColumn) Then
|
||||
newWidth = Math.Max(adjacentColumn.MinWidth, Math.Min(adjacentStartWidth - diffX, adjacentColumn.MaxWidth))
|
||||
length = New DataGridLength(newWidth)
|
||||
adjacentColumn.SetValue(DataGridColumn.WidthProperty, length)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Thumb_DragCompleted(sender As Object, e As DragCompletedEventArgs)
|
||||
RemoveHandler CType(sender, Thumb).PreviewMouseMove, AddressOf Thumb_PreviewMouseMove
|
||||
targetColumn = Nothing
|
||||
adjacentColumn = Nothing
|
||||
End Sub
|
||||
|
||||
Private Function GetParent(Of T As DependencyObject)(d As DependencyObject) As T
|
||||
Dim tObj As T = Nothing
|
||||
|
||||
While IsNothing(tObj)
|
||||
tObj = TryCast(d, T)
|
||||
d = VisualTreeHelper.GetParent(d)
|
||||
End While
|
||||
|
||||
Return tObj
|
||||
End Function
|
||||
|
||||
Private Sub miLock_Checked(sender As Object, e As RoutedEventArgs)
|
||||
Dim miLock = DirectCast(sender, MenuItem)
|
||||
' disabilito Reorder e Resize di tutte le colonne salvandone prima il valore
|
||||
@@ -351,6 +309,61 @@ Public Class EgtDataGrid
|
||||
WritePrivateProfileString(BindingColumns(HeaderDispIndex).ParentDataGridName, K_LOCKTABLE, 0, m_sDataGridColumnsIniFile)
|
||||
End Sub
|
||||
|
||||
Private Sub miResetSort_Click(sender As Object, e As RoutedEventArgs)
|
||||
' resetto le SortDirection di tutte le colonne della datagrid
|
||||
ResetSortDirections()
|
||||
End Sub
|
||||
|
||||
Private Sub CurrDataGrid_Loaded(sender As Object, e As RoutedEventArgs) Handles CurrDataGrid.Loaded
|
||||
' setto la SortDirection, se attiva, sulla colonna su cui è attiva
|
||||
Dim colIndex As Integer = 0
|
||||
For Each col In BindingColumns
|
||||
If col.SortDirection > 0 Then
|
||||
CurrDataGrid.Items.SortDescriptions.Add(New SortDescription(CurrDataGrid.Columns(colIndex).SortMemberPath, col.SortDirection - 1))
|
||||
Exit For
|
||||
End If
|
||||
colIndex += 1
|
||||
Next
|
||||
' calcolo la somma delle larghezze delle colonne visibili
|
||||
For Each col In BindingColumns
|
||||
If col.ColumnVisibility = Visibility.Visible Then
|
||||
columnsWidth += col.ActualWidth
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub CurrDataGrid_Sorting(sender As Object, e As DataGridSortingEventArgs) Handles CurrDataGrid.Sorting
|
||||
' salvo la SortDirection corrente della colonna prima di resettarla per tutte le colonne
|
||||
Dim CurrSortDirection As ListSortDirection? = e.Column.SortDirection
|
||||
ResetSortDirections(True)
|
||||
' ora applico la SortDirection corretta
|
||||
Select Case CurrSortDirection
|
||||
Case ListSortDirection.Ascending
|
||||
BindingColumns(e.Column.DisplayIndex).SortDirection = 2 ' la setto a Descending
|
||||
Case ListSortDirection.Descending
|
||||
BindingColumns(e.Column.DisplayIndex).SortDirection = 1 ' la setto a Ascending
|
||||
Case Else
|
||||
BindingColumns(e.Column.DisplayIndex).SortDirection = 1 ' la setto a Ascending
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub ResetSortDirections(Optional bUserClick As Boolean = False)
|
||||
If bUserClick Then
|
||||
' nel caso di click dell'utente sulla colonna da sortare occorre solamente settare a 0 la SortDirection di tutte le colonne
|
||||
For Each column In BindingColumns
|
||||
column.SortDirection = 0
|
||||
Next
|
||||
Else
|
||||
' altrimenti (caso ResetSort da ContextMenu) è necessatio un Clear più ampio e anche grafico
|
||||
CurrDataGrid.Items.SortDescriptions.Clear()
|
||||
For Each column In BindingColumns
|
||||
column.SortDirection = 0
|
||||
' resetto graficamente anche l'header della colonna
|
||||
CurrDataGrid.Columns(column.DisplayIndex).SortDirection = Nothing
|
||||
Next
|
||||
End If
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class EgtDataGridColumn
|
||||
@@ -391,6 +404,12 @@ Public Class EgtDataGridColumn
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ActualWidth As Double
|
||||
Get
|
||||
Return m_dgColumn.ActualWidth
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private Property m_DisplayIndex As Integer
|
||||
Public Property DisplayIndex As Integer
|
||||
Get
|
||||
@@ -487,6 +506,17 @@ Public Class EgtDataGridColumn
|
||||
m_ColumnVisibility = value
|
||||
If Not IsNothing(m_dgColumn) Then
|
||||
m_dgColumn.Visibility = value
|
||||
' ricavo la EgtDataGrid a cui appartiene la DataGridColumn
|
||||
Dim propertyInfo As Reflection.PropertyInfo = m_dgColumn.GetType().GetProperty("DataGridOwner",
|
||||
Reflection.BindingFlags.Instance Or
|
||||
Reflection.BindingFlags.NonPublic)
|
||||
Dim dg As EgtDataGrid = propertyInfo.GetValue(m_dgColumn, Nothing)
|
||||
' ogni colonna visibile con UnitType a Star tranne l'ultima verrà settata a Pixel
|
||||
For Each bc In dg.BindingColumns
|
||||
If bc.Width.IsStar And Not bc.Name = dg.BindingColumns.Last(Function(x) x.Visible = True).Name Then
|
||||
bc.Width = New DataGridLength(bc.ActualWidth, DataGridLengthUnitType.Pixel)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@@ -502,11 +532,30 @@ Public Class EgtDataGridColumn
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_SortDirection As Forms.SortOrder = Forms.SortOrder.None
|
||||
Public Property SortDirection As Forms.SortOrder
|
||||
Get
|
||||
Return m_SortDirection 'If(IsNothing(m_dgColumn.SortDirection), 0, m_dgColumn.SortDirection + 1)
|
||||
End Get
|
||||
Set(value As Forms.SortOrder)
|
||||
'If Not IsNothing(m_dgColumn) Then
|
||||
' If value = 0 Then
|
||||
' m_dgColumn.SortDirection = Nothing
|
||||
' Else
|
||||
' m_dgColumn.SortDirection = value - 1
|
||||
' End If
|
||||
'Else
|
||||
m_SortDirection = value
|
||||
'End If
|
||||
SaveDataGridColumn()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Sub New(sName As String)
|
||||
m_Name = sName
|
||||
End Sub
|
||||
|
||||
Sub New(sParentDG As String, sName As String, bCanUserReorder As Boolean, bCanUserResize As Boolean, bCanUserSort As Boolean, bIsReadOnly As Boolean, Width As DataGridLength, bVisible As Boolean, bCanUserEditVisible As Boolean)
|
||||
Sub New(sParentDG As String, sName As String, bCanUserReorder As Boolean, bCanUserResize As Boolean, bCanUserSort As Boolean, bIsReadOnly As Boolean, Width As DataGridLength, bVisible As Boolean, bCanUserEditVisible As Boolean, nSortDirection As Integer)
|
||||
m_ParentDataGridName = sParentDG
|
||||
m_Name = sName
|
||||
m_CanUserReorder = bCanUserReorder
|
||||
@@ -516,6 +565,7 @@ Public Class EgtDataGridColumn
|
||||
m_Width = Width
|
||||
m_Visible = bVisible
|
||||
m_CanUserEditVisible = bCanUserEditVisible
|
||||
m_SortDirection = nSortDirection
|
||||
End Sub
|
||||
|
||||
Friend Sub InitColumn(dgColumn As DataGridColumn)
|
||||
@@ -527,13 +577,18 @@ Public Class EgtDataGridColumn
|
||||
'm_dgColumn.DisplayIndex = m_DisplayIndex
|
||||
m_dgColumn.Width = m_Width
|
||||
m_dgColumn.Visibility = m_ColumnVisibility
|
||||
If CInt(m_SortDirection) > 0 Then
|
||||
m_dgColumn.SortDirection = m_SortDirection - 1 'If(CInt(m_SortDirection) = 0, Nothing, m_SortDirection - 1)
|
||||
Else
|
||||
m_dgColumn.SortDirection = Nothing
|
||||
End If
|
||||
End Sub
|
||||
|
||||
' funzione per calcolare e scrivere la stringa dei parametri della colonna nell'INI
|
||||
Public Function SaveDataGridColumn() As Boolean
|
||||
Dim bOk As Boolean
|
||||
Dim sColumnParams = String.Empty
|
||||
sColumnParams = Name & "," & If(CanUserReorder, 1, 0) & "," & If(CanUserResize, 1, 0) & "," & If(CanUserSort, 1, 0) & "," & If(IsReadOnly, 1, 0) & "," & DoubleToString(Width.Value, 6) & "," & Width.UnitType & "," & If(Visible, 1, 0) & "," & If(CanUserEditVisible, 1, 0)
|
||||
sColumnParams = Name & "," & If(CanUserReorder, 1, 0) & "," & If(CanUserResize, 1, 0) & "," & If(CanUserSort, 1, 0) & "," & If(IsReadOnly, 1, 0) & "," & DoubleToString(Width.Value, 6) & "," & Width.UnitType & "," & If(Visible, 1, 0) & "," & If(CanUserEditVisible, 1, 0) & "," & CInt(SortDirection)
|
||||
bOk = WriteColumnPrivateProfileParam(ParentDataGridName, DisplayIndex, sColumnParams)
|
||||
Return bOk
|
||||
End Function
|
||||
|
||||
@@ -14,6 +14,8 @@ Public Module LoadingWndHelper
|
||||
EXPORTPROJECT = 8
|
||||
IMPORTPROJECT = 9
|
||||
CHANGEPARAM = 10
|
||||
CREATINGPDF = 11
|
||||
CHANGEMATERIAL = 12
|
||||
End Enum
|
||||
|
||||
Dim m_MainWindow As Windows.Window
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
Height="200" Width="300"
|
||||
TitleBarHeight="0"
|
||||
ResizeMode="NoResize" WindowStyle="None"
|
||||
IsClosable="False" IsMinimizable="False"
|
||||
WindowStartupLocation="Manual" ShowInTaskbar="False">
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ Public Class MyMachGroupM
|
||||
Private m_sCALC_MSG As String
|
||||
Public Property sCALC_MSG As String
|
||||
Get
|
||||
Return m_sCALC_MSG
|
||||
Return MessageFromLuaMsg(m_sCALC_MSG)
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sCALC_MSG = value
|
||||
|
||||
@@ -139,21 +139,28 @@ Public Class PartM
|
||||
Public Property dPOSX As Double
|
||||
Get
|
||||
If nType = BWType.WALL Then
|
||||
' recupero box pezzo
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nPartId, GDB_BB.ONLY_VISIBLE + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, b3Part)
|
||||
' recupero layer del box
|
||||
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||
' recupero box del layer box
|
||||
Dim b3Box As New BBox3d
|
||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||
' recupero origine grezzo
|
||||
Dim nrawPartId As Integer = EgtGetRawPartFromPart(nPartId)
|
||||
Dim b3Raw As New BBox3d
|
||||
EgtGetRawPartBBox(nrawPartId, b3Raw)
|
||||
' calcolo distanza tra origine pezzo e tavolo
|
||||
Dim vtPartRef As New Vector3d(b3Box.Min() - b3Raw.Min())
|
||||
Return vtPartRef.x
|
||||
' verifico che sia attivo MachGroup di questo pezzo
|
||||
If EgtGetCurrMachGroup() = ParentMachGroup.Id Then
|
||||
' recupero box pezzo
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nPartId, GDB_BB.ONLY_VISIBLE + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, b3Part)
|
||||
' recupero layer del box
|
||||
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||
' recupero box del layer box
|
||||
Dim b3Box As New BBox3d
|
||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||
' recupero origine grezzo
|
||||
Dim nrawPartId As Integer = EgtGetRawPartFromPart(nPartId)
|
||||
Dim b3Raw As New BBox3d
|
||||
EgtGetRawPartBBox(nrawPartId, b3Raw)
|
||||
' calcolo distanza tra origine pezzo e tavolo
|
||||
Dim vtPartRef As New Vector3d(b3Box.Min() - b3Raw.Min())
|
||||
m_dPOSX = vtPartRef.x
|
||||
Return vtPartRef.x
|
||||
' altrimenti restituisco valore salvato (per quando viene clickato un BTLPart)
|
||||
Else
|
||||
Return m_dPOSX
|
||||
End If
|
||||
Else ' nType = BWType.BEAM
|
||||
Return m_dPOSX
|
||||
End If
|
||||
@@ -270,21 +277,28 @@ Public Class PartM
|
||||
Protected m_dPOSY As Double
|
||||
Public Property dPOSY As Double
|
||||
Get
|
||||
' recupero box pezzo
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nPartId, GDB_BB.ONLY_VISIBLE + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, b3Part)
|
||||
' recupero layer del box
|
||||
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||
' recupero box del layer box
|
||||
Dim b3Box As New BBox3d
|
||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||
' recupero origine grezzo
|
||||
Dim nrawPartId As Integer = EgtGetRawPartFromPart(nPartId)
|
||||
Dim b3Raw As New BBox3d
|
||||
EgtGetRawPartBBox(nrawPartId, b3Raw)
|
||||
' calcolo distanza tra origine pezzo e tavolo
|
||||
Dim vtPartRef As New Vector3d(b3Box.Min() - b3Raw.Min())
|
||||
Return vtPartRef.y
|
||||
' verifico che sia attivo MachGroup di questo pezzo
|
||||
If EgtGetCurrMachGroup() = ParentMachGroup.Id Then
|
||||
' recupero box pezzo
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nPartId, GDB_BB.ONLY_VISIBLE + GDB_BB.IGNORE_TEXT + GDB_BB.IGNORE_DIM, b3Part)
|
||||
' recupero layer del box
|
||||
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nPartId, "Box")
|
||||
' recupero box del layer box
|
||||
Dim b3Box As New BBox3d
|
||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||
' recupero origine grezzo
|
||||
Dim nrawPartId As Integer = EgtGetRawPartFromPart(nPartId)
|
||||
Dim b3Raw As New BBox3d
|
||||
EgtGetRawPartBBox(nrawPartId, b3Raw)
|
||||
' calcolo distanza tra origine pezzo e tavolo
|
||||
Dim vtPartRef As New Vector3d(b3Box.Min() - b3Raw.Min())
|
||||
m_dPOSY = vtPartRef.y
|
||||
Return vtPartRef.y
|
||||
' altrimenti restituisco valore salvato (per quando viene clickato un BTLPart)
|
||||
Else
|
||||
Return m_dPOSY
|
||||
End If
|
||||
'Return m_dPOSY
|
||||
End Get
|
||||
Set(value As Double)
|
||||
@@ -369,7 +383,7 @@ Public Class PartM
|
||||
Protected m_sCALC_MSG As String = String.Empty
|
||||
Public Property sCALC_MSG As String
|
||||
Get
|
||||
Return m_sCALC_MSG
|
||||
Return MessageFromLuaMsg(m_sCALC_MSG)
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_sCALC_MSG = value
|
||||
|
||||
@@ -35,5 +35,5 @@ Imports System.Runtime.InteropServices
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.3.1")>
|
||||
<Assembly: AssemblyFileVersion("2.4.3.1")>
|
||||
<Assembly: AssemblyVersion("2.4.3.2")>
|
||||
<Assembly: AssemblyFileVersion("2.4.3.2")>
|
||||
|
||||
@@ -108,7 +108,7 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
' ora setto il valore scelto come Tipo Filtro
|
||||
m_SelSearchColumn = value
|
||||
Select Case m_SelSearchColumn.Id
|
||||
Case OpenProjFileColumn.ID, OpenProjFileColumn.BTLFILENAME, OpenProjFileColumn.LISTNAME
|
||||
Case OpenProjFileColumn.ID, OpenProjFileColumn.BTLFILENAME, OpenProjFileColumn.LISTNAME, OpenProjFileColumn.MACHINE
|
||||
SearchText_Visibility = Visibility.Visible
|
||||
SearchDate_Visibility = Visibility.Collapsed
|
||||
Case OpenProjFileColumn.EXPORTDATE, OpenProjFileColumn.CREATEDATE
|
||||
@@ -168,6 +168,7 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
LISTNAME = 3
|
||||
EXPORTDATE = 4
|
||||
CREATEDATE = 5
|
||||
MACHINE = 6
|
||||
End Enum
|
||||
|
||||
#Region "Messages"
|
||||
@@ -257,7 +258,8 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
New IdNameStruct(OpenProjFileColumn.BTLFILENAME, BTLFileName_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.LISTNAME, ListName_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.EXPORTDATE, ExportDate_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.CREATEDATE, CreateDate_Msg)})
|
||||
New IdNameStruct(OpenProjFileColumn.CREATEDATE, CreateDate_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.MACHINE, Machine_Msg)})
|
||||
ElseIf ProjectType = ProjectType.PROD Then
|
||||
' carico le colonne della datagrid
|
||||
GetPrivateProfileColumns(S_OPENPROJFILEDLG_PROD, ProjectColumns)
|
||||
@@ -265,7 +267,8 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
m_SearchColumnList = New ObservableCollection(Of IdNameStruct)({New IdNameStruct(OpenProjFileColumn.NULL, ""),
|
||||
New IdNameStruct(OpenProjFileColumn.ID, Id_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.BTLFILENAME, BTLFileName_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.CREATEDATE, CreateDate_Msg)})
|
||||
New IdNameStruct(OpenProjFileColumn.CREATEDATE, CreateDate_Msg),
|
||||
New IdNameStruct(OpenProjFileColumn.MACHINE, Machine_Msg)})
|
||||
End If
|
||||
' setto la visibilità delle colonne delle EgtDataGrid
|
||||
For Each col In ProjectColumns
|
||||
@@ -300,14 +303,16 @@ Public MustInherit Class OpenProjectFileDialogVM
|
||||
If m_SelSearchColumn.Id <> OpenProjFileColumn.NULL AndAlso m_SearchText <> String.Empty AndAlso (
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.ID AndAlso CurrProj.sProjId.ToString.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.BTLFILENAME AndAlso CurrProj.sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.LISTNAME AndAlso CurrProj.sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.LISTNAME AndAlso CurrProj.sListName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
|
||||
ElseIf m_ProjectType = ProjectType.PROD Then
|
||||
Dim CurrProj As ProdFileVM = DirectCast(Proj, ProdFileVM)
|
||||
If m_SelSearchColumn.Id <> OpenProjFileColumn.NULL AndAlso (
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.CREATEDATE AndAlso Not SearchDate.Contains(CurrProj.dtCreateDate.Date))) Then bProjectOk = False
|
||||
If m_SelSearchColumn.Id <> OpenProjFileColumn.NULL AndAlso m_SearchText <> String.Empty AndAlso (
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.ID AndAlso CurrProj.sProdId.ToString.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.BTLFILENAME AndAlso CurrProj.sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.BTLFILENAME AndAlso CurrProj.sBTLFileName.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0) OrElse
|
||||
(m_SelSearchColumn.Id = OpenProjFileColumn.MACHINE AndAlso CurrProj.sMachine.IndexOf(SearchText, StringComparison.InvariantCultureIgnoreCase) < 0)) Then bProjectOk = False
|
||||
End If
|
||||
Return bProjectOk
|
||||
End Function
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
Imports EgtUILib
|
||||
|
||||
Public Module LuaMsgManager
|
||||
|
||||
Public Function MessageFromLuaMsg(LuaMsg As String) As String
|
||||
' verifico se inizia con $$
|
||||
If Not String.IsNullOrWhiteSpace(LuaMsg) AndAlso LuaMsg.Length >= 2 AndAlso LuaMsg.Substring(0, 2) = "$$" Then
|
||||
Dim sMsgArgs() As String = LuaMsg.Substring(2).Split(",")
|
||||
Dim nMsg As Integer = -1
|
||||
If sMsgArgs.Count > 1 AndAlso Integer.TryParse(sMsgArgs(0), nMsg) AndAlso nMsg > 0 Then
|
||||
If sMsgArgs.Count > 1 Then
|
||||
Dim sArgs() As String = sMsgArgs.Skip(1).ToArray()
|
||||
Dim sMsg As String = String.Format(EgtMsg(65000 + nMsg), sArgs)
|
||||
If Not String.IsNullOrWhiteSpace(sMsg) Then
|
||||
Return sMsg
|
||||
Else
|
||||
EgtMsg(65000 + nMsg)
|
||||
End If
|
||||
Else
|
||||
Return EgtMsg(65000 + nMsg)
|
||||
End If
|
||||
Else
|
||||
Return LuaMsg
|
||||
End If
|
||||
Else
|
||||
Return LuaMsg
|
||||
End If
|
||||
End Function
|
||||
|
||||
End Module
|
||||
@@ -6,92 +6,100 @@ using EgtBEAMWALL.DataLayer.DatabaseModels;
|
||||
|
||||
namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
{
|
||||
public class DbController : IDisposable
|
||||
{
|
||||
#region Private Fields
|
||||
public class DbController : IDisposable
|
||||
{
|
||||
#region Private Fields
|
||||
|
||||
private AdminContext adbCtx;
|
||||
private AdminContext adbCtx;
|
||||
|
||||
#endregion Private Fields
|
||||
#endregion Private Fields
|
||||
|
||||
#region Public Fields
|
||||
#region Public Fields
|
||||
|
||||
/// <summary>
|
||||
/// Singleton gestione
|
||||
/// </summary>
|
||||
public static DbController man = new DbController();
|
||||
/// <summary>
|
||||
/// Singleton gestione
|
||||
/// </summary>
|
||||
public static DbController man = new DbController();
|
||||
|
||||
#endregion Public Fields
|
||||
#endregion Public Fields
|
||||
|
||||
#region Public Constructors
|
||||
#region Public Constructors
|
||||
|
||||
public DbController()
|
||||
{
|
||||
// Initialize database context for ADMIN
|
||||
adbCtx = new AdminContext(DbConfig.ADMIN_CONNECTION_STRING);
|
||||
}
|
||||
public DbController()
|
||||
{
|
||||
// Initialize database context for ADMIN
|
||||
adbCtx = new AdminContext(DbConfig.ADMIN_CONNECTION_STRING);
|
||||
}
|
||||
|
||||
#endregion Public Constructors
|
||||
#endregion Public Constructors
|
||||
|
||||
#region Public Methods
|
||||
#region Public Methods
|
||||
|
||||
public bool checkCreateUser(string username, string pwd)
|
||||
{
|
||||
bool answ = false;
|
||||
// ricerca utente...
|
||||
var numUser = adbCtx
|
||||
.UserList
|
||||
.Where(x => x.User == username)
|
||||
.ToList()
|
||||
.Count;
|
||||
if (numUser > 0)
|
||||
{
|
||||
answ = true;
|
||||
}
|
||||
if (!answ)
|
||||
{
|
||||
// creo utente
|
||||
string sqlCommand = "FLUSH PRIVILEGES;";
|
||||
//string sqlCommand = $"CREATE USER '{username}'@'localhost' IDENTIFIED BY '{pwd}'; GRANT ALL ON *.* TO '{username}'@'localhost'; FLUSH PRIVILEGES;";
|
||||
//string sqlCommand = $"CREATE USER '{username}'@'localhost' IDENTIFIED BY '{pwd}'; GRANT ALL ON *.* TO '{username}'@'localhost'; FLUSH PRIVILEGES;";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
sqlCommand = $"CREATE USER '{username}'@'localhost' IDENTIFIED BY '{pwd}';";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
sqlCommand = $"GRANT ALL ON *.* TO '{username}'@'localhost';";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
sqlCommand = "FLUSH PRIVILEGES;";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Verifica necessità creazione utente (locale o in rete)
|
||||
/// </summary>
|
||||
/// <param name="username"></param>
|
||||
/// <param name="pwd"></param>
|
||||
/// <param name="isNetwork"></param>
|
||||
/// <returns></returns>
|
||||
public bool checkCreateUser(string username, string pwd, bool isNetwork)
|
||||
{
|
||||
bool answ = false;
|
||||
string domain = isNetwork ? "%" : "localhost";
|
||||
// ricerca utente...
|
||||
var numUser = adbCtx
|
||||
.UserList
|
||||
.Where(x => x.User == username)
|
||||
.ToList()
|
||||
.Count;
|
||||
if (numUser > 0)
|
||||
{
|
||||
answ = true;
|
||||
}
|
||||
if (!answ)
|
||||
{
|
||||
// creo utente
|
||||
string sqlCommand = "FLUSH PRIVILEGES;";
|
||||
//string sqlCommand = $"CREATE USER '{username}'@'{domain}' IDENTIFIED BY '{pwd}'; GRANT ALL ON *.* TO '{username}'@'localhost'; FLUSH PRIVILEGES;";
|
||||
//string sqlCommand = $"CREATE USER '{username}'@'{domain}' IDENTIFIED BY '{pwd}'; GRANT ALL ON *.* TO '{username}'@'localhost'; FLUSH PRIVILEGES;";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
sqlCommand = $"CREATE USER '{username}'@'{domain}' IDENTIFIED BY '{pwd}';";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
sqlCommand = $"GRANT ALL ON *.* TO '{username}'@'{domain}';";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
sqlCommand = "FLUSH PRIVILEGES;";
|
||||
adbCtx.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sqlCommand);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// Clear database context
|
||||
adbCtx.Dispose();
|
||||
}
|
||||
public void Dispose()
|
||||
{
|
||||
// Clear database context
|
||||
adbCtx.Dispose();
|
||||
}
|
||||
|
||||
public bool ResetDb()
|
||||
{
|
||||
bool answ = false;
|
||||
public bool ResetDb()
|
||||
{
|
||||
bool answ = false;
|
||||
|
||||
try
|
||||
{
|
||||
adbCtx
|
||||
.Database
|
||||
.SqlQuery<int>("CALL stp_ResetDb()");
|
||||
answ = true;
|
||||
try
|
||||
{
|
||||
adbCtx
|
||||
.Database
|
||||
.SqlQuery<int>("CALL stp_ResetDb()");
|
||||
answ = true;
|
||||
|
||||
adbCtx.SaveChanges();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Console.WriteLine($"EXCEPTION on ResetDb: {exc}");
|
||||
}
|
||||
adbCtx.SaveChanges();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Console.WriteLine($"EXCEPTION on ResetDb: {exc}");
|
||||
}
|
||||
|
||||
return answ;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
@@ -37,6 +37,13 @@ namespace EgtBEAMWALL.DataLayer
|
||||
|
||||
#region Public Methods
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Metodo di init standard per DB locale
|
||||
/// </summary>
|
||||
/// <param name="server">Indirizzo del server (tipicamente localhost/127.0.0.1)</param>
|
||||
/// <param name="nKey">Numero chiave</param>
|
||||
/// <param name="sKey">Codice/pwd associato a chaive</param>
|
||||
public static void InitDb(string server, string nKey, string sKey)
|
||||
{
|
||||
DATABASE_SERV = server;
|
||||
@@ -46,14 +53,35 @@ namespace EgtBEAMWALL.DataLayer
|
||||
CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None";
|
||||
// stringa admin con utente root egalware...
|
||||
ADMIN_CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database=mysql;uid=root;pwd=Egalware_24068!;sslmode=None;CHARSET=utf8";
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Metodo di init standard per DB in rete con Master_Key
|
||||
/// </summary>
|
||||
/// <param name="server">Indirizzo del server (tipicamente indirizzo di rete)</param>
|
||||
/// <param name="nKey">Numero chiave</param>
|
||||
/// <param name="sKey">Codice/pwd associato a chaive</param>
|
||||
/// <param name="masterKey">Numero di chiave master con cui è creato il DB</param>
|
||||
public static void InitDb(string server, string nKey, string sKey, string masterKey = "")
|
||||
{
|
||||
// se nulla metto amster come nKey...
|
||||
masterKey = string.IsNullOrEmpty(masterKey) ? nKey : masterKey;
|
||||
DATABASE_SERV = server;
|
||||
DATABASE_NAME = $"EgtBwDb_{masterKey}";
|
||||
DATABASE_USER = $"user_{nKey}";
|
||||
DATABASE_PWD = $"pwd_{sKey}";
|
||||
CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None";
|
||||
// stringa admin con utente root egalware...
|
||||
ADMIN_CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database=mysql;uid=root;pwd=Egalware_24068!;sslmode=None;CHARSET=utf8";
|
||||
}
|
||||
|
||||
public static bool CheckUser(string nKey, string sKey)
|
||||
{
|
||||
// esecuzione script di install locale
|
||||
return Controllers.DbController.man.checkCreateUser(DATABASE_USER, DATABASE_PWD);
|
||||
}
|
||||
public static bool CheckUser(string nKey, string sKey, bool isNetwork)
|
||||
{
|
||||
// esecuzione script di install locale
|
||||
return Controllers.DbController.man.checkCreateUser(DATABASE_USER, DATABASE_PWD, isNetwork);
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
}
|
||||
#endregion Public Methods
|
||||
}
|
||||
}
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("2.4.3.1")]
|
||||
[assembly: AssemblyFileVersion("2.4.3.1")]
|
||||
[assembly: AssemblyVersion("2.4.3.2")]
|
||||
[assembly: AssemblyFileVersion("2.4.3.2")]
|
||||
|
||||
@@ -553,6 +553,9 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\ProjectManager\Open.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\ProjectManager\Save.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
CanUserAddRows="False"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserSortColumns="False"
|
||||
CanUserResizeColumns="False"
|
||||
CanUserResizeRows="False"
|
||||
CanUserReorderColumns="False"
|
||||
SelectionMode="Single"
|
||||
|
||||
@@ -163,6 +163,9 @@ Public Class PartInRawPartListVM
|
||||
For Each col In PartInRawPartColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
Next
|
||||
If Not IsNothing(colPartInRawPart_Redo) Then
|
||||
colPartInRawPart_Redo.ColumnVisibility = Visibility.Collapsed
|
||||
End If
|
||||
If Not IsNothing(m_colPartInRawPart_Rot) Then
|
||||
m_colPartInRawPart_Rot.ColumnVisibility = Visibility.Collapsed
|
||||
End If
|
||||
@@ -194,6 +197,9 @@ Public Class PartInRawPartListVM
|
||||
For Each col In PartInRawPartColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
Next
|
||||
If Not IsNothing(colPartInRawPart_Redo) Then
|
||||
colPartInRawPart_Redo.ColumnVisibility = Visibility.Collapsed
|
||||
End If
|
||||
If Not IsNothing(m_colPartInRawPart_Offset) Then
|
||||
m_colPartInRawPart_Offset.ColumnVisibility = Visibility.Collapsed
|
||||
End If
|
||||
|
||||
@@ -368,7 +368,7 @@ Public Class MyMachGroupVM
|
||||
EgtBeamEnableProcess(Feature.nFeatureId, bOk)
|
||||
Next
|
||||
' scrivo dati costruzione grezzo in gruppo di lavorazione
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & nDone, nPartDuploId & "," & CurrPart.sPOSX - dInitialCutOut)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & nDone, nPartDuploId & "," & DoubleToString(CurrPart.dPOSX - dInitialCutOut, 3))
|
||||
Else
|
||||
dInitialCutOut += CurrPart.dOffset + CurrPart.dL
|
||||
End If
|
||||
|
||||
@@ -55,5 +55,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.3.1")>
|
||||
<Assembly: AssemblyFileVersion("2.4.3.1")>
|
||||
<Assembly: AssemblyVersion("2.4.3.2")>
|
||||
<Assembly: AssemblyFileVersion("2.4.3.2")>
|
||||
|
||||
@@ -25,7 +25,7 @@ Public Class OutputsPageVM
|
||||
Sub New()
|
||||
'' imposto riferimento in Map
|
||||
'Map.SetRefOutputsPageVM(Me)
|
||||
m_OutputVariableListVM = New VariablesListVM(S_outPUTVARIABLES)
|
||||
m_OutputVariableListVM = New VariablesListVM(S_OUTPUTVARIABLES)
|
||||
End Sub
|
||||
|
||||
#End Region ' Constructor
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 610 B |
@@ -27,18 +27,32 @@ Module DbControllers
|
||||
End If
|
||||
Try
|
||||
Dim DbAddress As String = "127.0.0.1"
|
||||
Dim DbMasterKey As Integer = 0
|
||||
Dim sDbMasterKey As String = ""
|
||||
If Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
|
||||
GetMainPrivateProfileString(S_GENERAL, K_DBADDRESS, "127.0.0.1", DbAddress)
|
||||
DbMasterKey = GetMainPrivateProfileInt(S_GENERAL, K_DBMASTERKEY, 0)
|
||||
If DbMasterKey > 0 Then
|
||||
sDbMasterKey = DbMasterKey.ToString("000000")
|
||||
End If
|
||||
If String.IsNullOrWhiteSpace(DbAddress) OrElse DbMasterKey <= 0 Then
|
||||
DbAddress = "127.0.0.1"
|
||||
DbMasterKey = 0
|
||||
End If
|
||||
End If
|
||||
DataLayer.DbConfig.InitDb(DbAddress, sUser, sPwd)
|
||||
DataLayer.DbConfig.CheckUser(sUser, sPwd)
|
||||
DataLayer.DbConfig.InitDb(DbAddress, sUser, sPwd, sDbMasterKey)
|
||||
DataLayer.DbConfig.CheckUser(sUser, sPwd, Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK))
|
||||
Catch ex As Exception
|
||||
EgtOutLog("InitDb error: " & ex.ToString())
|
||||
MessageBox.Show(Application.Current.MainWindow, "Db connection error!!", "Error")
|
||||
End
|
||||
End Try
|
||||
DataLayer.DbConfig.InitDb("127.0.0.1", sUser, sPwd)
|
||||
DataLayer.DbConfig.CheckUser(sUser, sPwd)
|
||||
|
||||
If Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NETWORK) Then
|
||||
Dim sSupervisorMachName As String = ""
|
||||
GetMainPrivateProfileString(S_MACH, K_SUPERVISORMACH, "", sSupervisorMachName)
|
||||
If Not String.IsNullOrWhiteSpace(sSupervisorMachName) Then m_SupervisorId = sSupervisorMachName
|
||||
End If
|
||||
|
||||
m_ProjController = New DataLayer.Controllers.ProjController
|
||||
m_ProdController = New DataLayer.Controllers.ProdController
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -175,7 +175,7 @@ Public Class BTLFeatureVM
|
||||
|
||||
Public ReadOnly Property Edit_Visibility As Visibility
|
||||
Get
|
||||
Return If(BTLFeatureM.IsFreeContour AndAlso Not Map.refFreeContourManagerVM.bIsActive, Visibility.Visible, Visibility.Collapsed)
|
||||
Return If(Map.refMainWindowVM.MainWindowM.nUserLevel > 5 AndAlso BTLFeatureM.IsFreeContour AndAlso Not Map.refFreeContourManagerVM.bIsActive, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property SaveCancel_Visibility As Visibility
|
||||
@@ -282,6 +282,7 @@ Public Class BTLFeatureVM
|
||||
End Select
|
||||
NotifyPropertyChanged(NameOf(Calc_Background))
|
||||
NotifyPropertyChanged(NameOf(CALC_ROT_Visibility))
|
||||
NotifyPropertyChanged(NameOf(sCALC_MSG))
|
||||
NotifyPropertyChanged(NameOf(CALC_ERR_Letter))
|
||||
NotifyPropertyChanged(NameOf(CALC_ERR_Foreground))
|
||||
End Sub
|
||||
@@ -296,6 +297,7 @@ Public Class BTLFeatureVM
|
||||
m_BTLFeatureM.sCALC_MSG = ""
|
||||
NotifyPropertyChanged(NameOf(Calc_Background))
|
||||
NotifyPropertyChanged(NameOf(CALC_ROT_Visibility))
|
||||
NotifyPropertyChanged(NameOf(sCALC_MSG))
|
||||
NotifyPropertyChanged(NameOf(CALC_ERR_Letter))
|
||||
NotifyPropertyChanged(NameOf(CALC_ERR_Foreground))
|
||||
End Sub
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1500,6 +1500,21 @@ Public Class BTLPartVM
|
||||
EgtDeselectAll()
|
||||
End If
|
||||
Map.refLeftPanelVM.FeatureSelectionChanged()
|
||||
ElseIf Map.refMainMenuVM.SelPage = Pages.LAYERSWALL Then
|
||||
If Not IsNothing(m_SelBTLFeatureVM) Then
|
||||
DirectCast(m_SelBTLFeatureVM, BTLFeatureVM).SelGeomFeature()
|
||||
' imposto path disegno da mostrare in BottomPanel
|
||||
Map.refLayersWallBottomPanelVM.SetCurrDraw(DirectCast(m_SelBTLFeatureVM, BTLFeatureVM).sDrawPath)
|
||||
' seleziono pagina BottomPanel
|
||||
Map.refLayersWallBottomPanelVM.SetSelPartFeatureTab(LayersWallBottomPanelVM.PartFeatureTab.FEATURE)
|
||||
' deseleziono i parametri
|
||||
If Not IsNothing(SelBTLFeatureVM.SelPBTLParam) Then SelBTLFeatureVM.SelPBTLParam = Nothing
|
||||
' rinfresco bottoni freecontour
|
||||
m_SelBTLFeatureVM.RefreshFCMBtnVisibility()
|
||||
Else
|
||||
EgtDeselectAll()
|
||||
End If
|
||||
Map.refLayersWallLeftPanelVM.FeatureSelectionChanged()
|
||||
End If
|
||||
EgtDraw()
|
||||
NotifyPropertyChanged(NameOf(SelBTLFeatureVM))
|
||||
@@ -1548,8 +1563,10 @@ Public Class BTLPartVM
|
||||
CreateBTLFeatureVMList()
|
||||
m_BTLFeatureVMList_ViewSource = New CollectionViewSource With {.Source = m_BTLFeatureVMList}
|
||||
m_BTLFeatureVMList_View = m_BTLFeatureVMList_ViewSource.View
|
||||
m_BTLFeatureVMList_View.CustomSort = New FeatureSorter
|
||||
m_BTLFeatureVMList_View.Filter = AddressOf FeatureFilter
|
||||
If Not IsNothing(m_BTLFeatureVMList_View) Then
|
||||
m_BTLFeatureVMList_View.CustomSort = New FeatureSorter
|
||||
m_BTLFeatureVMList_View.Filter = AddressOf FeatureFilter
|
||||
End If
|
||||
' Aggiorno check DOALL
|
||||
NotifyPropertyChanged(NameOf(bDOALL))
|
||||
' Aggiorno stato da stati feature
|
||||
@@ -1576,7 +1593,7 @@ Public Class BTLPartVM
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Private Sub CreateBTLFeatureVMList()
|
||||
Protected Overridable Sub CreateBTLFeatureVMList()
|
||||
Dim all As List(Of BTLFeatureVM) = (From BTLFeatureM In m_BTLPartM.GetBTLFeatures()
|
||||
Select New BTLFeatureVM(BTLFeatureM, m_BTLPartM)).ToList()
|
||||
|
||||
@@ -2071,12 +2088,12 @@ Public Class BTLPartVM
|
||||
|
||||
#Region "EVENTS"
|
||||
|
||||
Private Sub OnBTLFeatureAdded(sender As Object, e As BTLFeatureAddedEventArgs)
|
||||
Protected Sub OnBTLFeatureAdded(sender As Object, e As BTLFeatureAddedEventArgs)
|
||||
Dim BTLFeatureVM As BTLFeatureVM = New BTLFeatureVM(e.NewBTLFeature, m_BTLPartM)
|
||||
BTLFeatureVMList.Add(BTLFeatureVM)
|
||||
End Sub
|
||||
|
||||
Private Sub OnBTLFeatureVMListChanged(sender As Object, e As NotifyCollectionChangedEventArgs)
|
||||
Protected Sub OnBTLFeatureVMListChanged(sender As Object, e As NotifyCollectionChangedEventArgs)
|
||||
If Not IsNothing(e.NewItems) AndAlso e.NewItems.Count > 0 Then
|
||||
For Each BTLFeatureVM As BTLFeatureVM In e.NewItems
|
||||
AddHandler BTLFeatureVM.PropertyChanged, AddressOf OnBTLFeatureVMPropertyChanged
|
||||
|
||||
@@ -20,6 +20,136 @@ Public Class BTLStructureVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' pezzi da BTL
|
||||
Private m_BTLElementVMList_View As CollectionView = Nothing
|
||||
Private m_BTLElementVMList As ObservableCollection(Of BTLElementVM)
|
||||
Public Property BTLElementVMList As ObservableCollection(Of BTLElementVM)
|
||||
Get
|
||||
Return m_BTLElementVMList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of BTLElementVM))
|
||||
m_BTLElementVMList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' pezzi da BTL
|
||||
Private m_BTLLayerVMList_View As CollectionView = Nothing
|
||||
Private m_BTLLayerVMList As ObservableCollection(Of BTLLayerVM)
|
||||
Public Property BTLLayerVMList As ObservableCollection(Of BTLLayerVM)
|
||||
Get
|
||||
Return m_BTLLayerVMList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of BTLLayerVM))
|
||||
m_BTLLayerVMList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_SelBTLLayer As BTLLayerVM = Nothing
|
||||
Public Property SelBTLLayer As BTLLayerVM
|
||||
Get
|
||||
Return m_SelBTLLayer
|
||||
End Get
|
||||
Set(value As BTLLayerVM)
|
||||
If Not IsNothing(m_SelBTLLayer) Then
|
||||
' se necessario tolgo solido dal precedentemente selezionato
|
||||
If Map.refShowBeamPanelVM.ShowSolid_IsChecked Then
|
||||
Map.refShowBeamPanelVM.SetShowSolid(False)
|
||||
End If
|
||||
' disabilito eventuale feature selezionata
|
||||
If Not IsNothing(m_SelBTLLayer.m_SelBTLFeatureVM) Then m_SelBTLLayer.SelBTLFeatureVM = Nothing
|
||||
End If
|
||||
m_SelBTLLayer = value
|
||||
' se seleziono un layer
|
||||
If Not IsNothing(m_SelBTLLayer) Then
|
||||
If Map.refMainMenuVM.SelPage = Pages.VIEW Then
|
||||
' se modalità building, la tolgo
|
||||
If Map.refShowBeamPanelVM.ShowBuilding_IsChecked Then
|
||||
ShowBuilding(False, False)
|
||||
End If
|
||||
' seleziono pezzo nella scena
|
||||
SceneSelPartSelection()
|
||||
' seleziono pezzo in Db geometrico
|
||||
EgtBeamSetPart(m_SelBTLLayer.nPartId)
|
||||
' seleziono pagina BottomPanel
|
||||
Map.refBottomPanelVM.SetSelPartFeatureTab(BottomPanelVM.PartFeatureTab.PART)
|
||||
' mostro barra di gestione pezzo
|
||||
Map.refProjectVM.SetPartManager_Visibility(True)
|
||||
Map.refProjectVM.NotifyPropertyChanged(NameOf(Map.refProjectVM.PartManager_Visibility))
|
||||
' deseleziono le feature
|
||||
If Not IsNothing(m_SelBTLLayer.SelBTLFeatureVM) Then SelBTLLayer.SelBTLFeatureVM = Nothing
|
||||
' aggiorno stato selezionato tutto
|
||||
Map.refShowBeamPanelVM.bShowAll = False
|
||||
Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.ISO_SW, VT.TOP), False)
|
||||
EgtZoom(ZM.ALL)
|
||||
ElseIf Map.refMainMenuVM.SelPage = Pages.MACHINING Then
|
||||
' resetto gruppo di lavorazione corrente
|
||||
EgtResetCurrMachGroup()
|
||||
' trovo ed evidenzio MachGroup e Duplo di questo pezzo
|
||||
If Not IsNothing(Map.refProjectVM.MachGroupPanelVM) Then
|
||||
Dim MachGroupList As New List(Of MyMachGroupVM)
|
||||
For Each Machgroup As MyMachGroupVM In Map.refProjectVM.MachGroupPanelVM.MachGroupVMList
|
||||
Dim bFound As Boolean = False
|
||||
For Each Layer As PartVM In Machgroup.PartVMList
|
||||
If EgtDuploGetOriginal(Layer.nPartId) = m_SelBTLLayer.nPartId Then
|
||||
Layer.SetSearchFound()
|
||||
bFound = True
|
||||
Else
|
||||
Layer.ResetSearchFound()
|
||||
End If
|
||||
Next
|
||||
If bFound Then
|
||||
Machgroup.SetSearchFound()
|
||||
Else
|
||||
Machgroup.ResetSearchFound()
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
' seleziono pezzo nella scena
|
||||
SceneSelPartSelection()
|
||||
Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.ISO_SW, VT.TOP), False)
|
||||
EgtZoom(ZM.ALL)
|
||||
ElseIf Map.refMainMenuVM.SelPage = Pages.LAYERSWALL Then
|
||||
' se c'era un Part selezionato lo deseleziono
|
||||
SelBTLLayer.SelBTLPart = Nothing
|
||||
' se modalità building, la tolgo
|
||||
If Map.refShowBeamPanelVM.ShowBuilding_IsChecked Then
|
||||
ShowBuilding(False, False)
|
||||
End If
|
||||
' seleziono pezzo nella scena
|
||||
SceneSelPartSelection()
|
||||
' seleziono pezzo in Db geometrico
|
||||
EgtBeamSetPart(m_SelBTLLayer.nPartId)
|
||||
' mostro tutti i pezzi
|
||||
Map.refShowBeamPanelVM.ShowAll(True)
|
||||
' seleziono pagina LayersWallBottomPanel
|
||||
Map.refLayersWallBottomPanelVM.SetSelPartFeatureTab(LayersWallBottomPanelVM.PartFeatureTab.LAYER)
|
||||
' mostro barra di gestione pezzo
|
||||
Map.refProjectVM.SetLayersWallLayerPartManager_Visibility(True)
|
||||
' deseleziono le feature
|
||||
If Not IsNothing(m_SelBTLLayer.SelBTLFeatureVM) Then SelBTLLayer.SelBTLFeatureVM = Nothing
|
||||
If Not IsNothing(m_SelBTLLayer.SelBTLPart) AndAlso Not IsNothing(m_SelBTLLayer.SelBTLPart.SelBTLFeatureVM) Then SelBTLLayer.SelBTLPart.SelBTLFeatureVM = Nothing
|
||||
' aggiorno FeatureList, FeatureManager e Parametri P e Q da far vedere
|
||||
Map.refFeatureListVM.SetLayerFeatureList_Visibility(True)
|
||||
Map.refFeatureListVM.SetPartFeatureList_Visibility(False)
|
||||
Map.refFeatureManagerVM.SetLayerFeature_Visibility(True)
|
||||
Map.refFeatureManagerVM.SetPartFeature_Visibility(False)
|
||||
Map.refLayersWallBottomPanelVM.SetLayerFeature_Visibility(True)
|
||||
Map.refLayersWallBottomPanelVM.SetPartFeature_Visibility(False)
|
||||
' aggiorno stato selezionato tutto
|
||||
Map.refShowBeamPanelVM.bShowAll = False
|
||||
Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.ISO_SW, VT.TOP), False)
|
||||
EgtZoom(ZM.ALL)
|
||||
End If
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(SelBTLLayer))
|
||||
End Set
|
||||
End Property
|
||||
' funzione che imposta layer BTL selezionato senza aggiornare nulla
|
||||
Friend Sub SetSelBTLLayer(BTLLayer As BTLLayerVM)
|
||||
m_SelBTLLayer = BTLLayer
|
||||
NotifyPropertyChanged(NameOf(SelBTLLayer))
|
||||
End Sub
|
||||
|
||||
' pezzi da BTL
|
||||
Private m_BTLPartVMList_View As CollectionView = Nothing
|
||||
Private m_BTLPartVMList As ObservableCollection(Of BTLPartVM)
|
||||
@@ -60,9 +190,9 @@ Public Class BTLStructureVM
|
||||
EgtBeamSetPart(m_SelBTLPart.nPartId)
|
||||
' seleziono pagina BottomPanel
|
||||
Map.refBottomPanelVM.SetSelPartFeatureTab(BottomPanelVM.PartFeatureTab.PART)
|
||||
' mostro barra di gestione pezzo
|
||||
Map.refProjectVM.SetPartManager_Visibility(True)
|
||||
Map.refProjectVM.NotifyPropertyChanged(NameOf(Map.refProjectVM.PartManager_Visibility))
|
||||
'' mostro barra di gestione pezzo
|
||||
'Map.refProjectVM.SetPartManager_Visibility(True)
|
||||
'Map.refProjectVM.NotifyPropertyChanged(NameOf(Map.refProjectVM.PartManager_Visibility))
|
||||
' deseleziono le feature
|
||||
If Not IsNothing(m_SelBTLPart.SelBTLFeatureVM) Then SelBTLPart.SelBTLFeatureVM = Nothing
|
||||
' aggiorno stato selezionato tutto
|
||||
@@ -72,10 +202,50 @@ Public Class BTLStructureVM
|
||||
ElseIf Map.refMainMenuVM.SelPage = Pages.MACHINING Then
|
||||
' resetto gruppo di lavorazione corrente
|
||||
EgtResetCurrMachGroup()
|
||||
' trovo ed evidenzio MachGroup e Duplo di questo pezzo
|
||||
If Not IsNothing(Map.refProjectVM.MachGroupPanelVM) Then
|
||||
Dim MachGroupList As New List(Of MyMachGroupVM)
|
||||
For Each Machgroup As MyMachGroupVM In Map.refProjectVM.MachGroupPanelVM.MachGroupVMList
|
||||
Dim bFound As Boolean = False
|
||||
For Each Part As PartVM In Machgroup.PartVMList
|
||||
If EgtDuploGetOriginal(Part.nPartId) = m_SelBTLPart.nPartId Then
|
||||
Part.SetSearchFound()
|
||||
bFound = True
|
||||
Else
|
||||
Part.ResetSearchFound()
|
||||
End If
|
||||
Next
|
||||
If bFound Then
|
||||
Machgroup.SetSearchFound()
|
||||
Else
|
||||
Machgroup.ResetSearchFound()
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
' seleziono pezzo nella scena
|
||||
SceneSelPartSelection()
|
||||
Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.ISO_SW, VT.TOP), False)
|
||||
EgtZoom(ZM.ALL)
|
||||
ElseIf Map.refMainMenuVM.SelPage = Pages.LAYERSWALL Then
|
||||
' se modalità building, la tolgo
|
||||
If Map.refShowBeamPanelVM.ShowBuilding_IsChecked Then
|
||||
ShowBuilding(False, False)
|
||||
End If
|
||||
' seleziono pezzo nella scena
|
||||
SceneSelPartSelection()
|
||||
' seleziono pezzo in Db geometrico
|
||||
EgtBeamSetPart(m_SelBTLPart.nPartId)
|
||||
' seleziono pagina BottomPanel
|
||||
Map.refBottomPanelVM.SetSelPartFeatureTab(BottomPanelVM.PartFeatureTab.PART)
|
||||
' mostro barra di gestione pezzo
|
||||
Map.refProjectVM.SetPartManager_Visibility(True)
|
||||
Map.refProjectVM.NotifyPropertyChanged(NameOf(Map.refProjectVM.PartManager_Visibility))
|
||||
' deseleziono le feature
|
||||
If Not IsNothing(m_SelBTLPart.SelBTLFeatureVM) Then SelBTLPart.SelBTLFeatureVM = Nothing
|
||||
' aggiorno stato selezionato tutto
|
||||
Map.refShowBeamPanelVM.bShowAll = False
|
||||
Core.ViewPanelVM.BWSetView(If(Core.ViewPanelVM.Type = BWType.BEAM, VT.ISO_SW, VT.TOP), False)
|
||||
EgtZoom(ZM.ALL)
|
||||
End If
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(SelBTLPart))
|
||||
@@ -291,6 +461,8 @@ Public Class BTLStructureVM
|
||||
Return Map.refProjManagerVM.nProjType
|
||||
Case Pages.MACHINING
|
||||
Return Map.refProdManagerVM.nProdType
|
||||
Case Pages.LAYERSWALL
|
||||
Return Map.refProjManagerVM.nProjType
|
||||
Case Else
|
||||
Return BWType.NULL
|
||||
End Select
|
||||
@@ -621,8 +793,24 @@ Public Class BTLStructureVM
|
||||
Sub New(BTLStructureM As BTLStructureM)
|
||||
m_BTLStructureM = BTLStructureM
|
||||
AddHandler m_BTLStructureM.BTLPartAdded, AddressOf OnBTLPartAdded
|
||||
CreateBTLElementVMList()
|
||||
' creo lista di BTLLayerVM
|
||||
CreateBTLLayerVMList()
|
||||
If Not IsNothing(BTLElementVMList) Then
|
||||
For Each BTLElementVMItem In BTLElementVMList
|
||||
BTLElementVMItem.m_BTLLayerVMList = New ObservableCollection(Of BTLLayerVM)
|
||||
For Each BTLLayerVMItem In BTLLayerVMList
|
||||
If Not IsNothing(BTLElementVMItem.BTLElementM.sGROUP) AndAlso
|
||||
Not IsNothing(BTLLayerVMItem.BTLLayerM.sGROUP) AndAlso
|
||||
BTLElementVMItem.BTLElementM.sGROUP = BTLLayerVMItem.BTLLayerM.sGROUP Then
|
||||
BTLElementVMItem.m_BTLLayerVMList.Add(BTLLayerVMItem)
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
End If
|
||||
' creo lista di BTLPartVM
|
||||
CreateBTLPartVMList()
|
||||
m_BTLPartVMList = Me.m_BTLPartVMList
|
||||
m_BTLPartVMList_View = CollectionViewSource.GetDefaultView(m_BTLPartVMList)
|
||||
m_GroupList_View = CollectionViewSource.GetDefaultView(m_GroupList)
|
||||
m_SubGroupList_View = CollectionViewSource.GetDefaultView(m_SubGroupList)
|
||||
@@ -644,6 +832,32 @@ Public Class BTLStructureVM
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Private Sub CreateBTLElementVMList()
|
||||
If IsNothing(m_BTLStructureM.GetBTLElements()) Then Return
|
||||
Dim all As List(Of BTLElementVM) = (From BTLElementM In m_BTLStructureM.GetBTLElements()
|
||||
Select New BTLElementVM(BTLElementM, m_BTLStructureM)).ToList()
|
||||
|
||||
'For Each BTLElementVM As BTLElementVM In all
|
||||
' AddHandler BTLElementVM.PropertyChanged, AddressOf OnBTLElementVMPropertyChanged
|
||||
'Next
|
||||
|
||||
m_BTLElementVMList = New ObservableCollection(Of BTLElementVM)(all)
|
||||
'AddHandler m_BTLElementVMList.CollectionChanged, AddressOf OnBTLElementVMListChanged
|
||||
End Sub
|
||||
|
||||
Private Sub CreateBTLLayerVMList()
|
||||
If IsNothing(m_BTLStructureM.GetBTLLayers()) Then Return
|
||||
Dim all As List(Of BTLLayerVM) = (From BTLLayerM In m_BTLStructureM.GetBTLLayers()
|
||||
Select New BTLLayerVM(BTLLayerM, m_BTLStructureM)).ToList()
|
||||
|
||||
'For Each BTLLayerVM As BTLLayerVM In all
|
||||
' AddHandler BTLLayerVM.PropertyChanged, AddressOf OnBTLLayerVMPropertyChanged
|
||||
'Next
|
||||
|
||||
m_BTLLayerVMList = New ObservableCollection(Of BTLLayerVM)(all)
|
||||
'AddHandler m_BTLLayerVMList.CollectionChanged, AddressOf OnBTLLayerVMListChanged
|
||||
End Sub
|
||||
|
||||
Private Sub CreateBTLPartVMList()
|
||||
Dim all As List(Of BTLPartVM) = (From BTLPartM In m_BTLStructureM.GetBTLParts()
|
||||
Select New BTLPartVM(BTLPartM, m_BTLStructureM)).ToList()
|
||||
@@ -683,14 +897,14 @@ Public Class BTLStructureVM
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub SceneSelPartSelection()
|
||||
Friend Sub SceneSelPartSelection()
|
||||
' deseleziono tutto
|
||||
EgtDeselectAll()
|
||||
' disabilito impostazione modificato
|
||||
Dim DisableMgr As New DisableModifiedMgr
|
||||
' ciclo sui pezzi
|
||||
For Each Part As BTLPartVM In m_BTLPartVMList
|
||||
' se non è quello selezionato, lo nasondo
|
||||
' se non è quello selezionato, lo nascondo
|
||||
If Part IsNot m_SelBTLPart Then
|
||||
EgtSetMode(Part.nPartId, GDB_MD.HIDDEN)
|
||||
Else
|
||||
@@ -701,6 +915,26 @@ Public Class BTLStructureVM
|
||||
DisableMgr.ReEnable()
|
||||
End Sub
|
||||
|
||||
Friend Sub SceneSelPartInLayerSelection()
|
||||
' deseleziono tutto
|
||||
EgtDeselectAll()
|
||||
' disabilito impostazione modificato
|
||||
Dim DisableMgr As New DisableModifiedMgr
|
||||
' ciclo sui pezzi
|
||||
If Not IsNothing(m_SelBTLLayer.SelBTLPart) Then
|
||||
For Each Part As BTLPartVM In m_SelBTLLayer.BTLPartVMList
|
||||
' se non è quello selezionato, lo nascondo
|
||||
If Not Part.nPartId = m_SelBTLLayer.SelBTLPart.nPartId Then
|
||||
EgtSetMode(Part.nPartId, GDB_MD.HIDDEN)
|
||||
Else
|
||||
EgtSetMode(Part.nPartId, GDB_MD.STD)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
' ripristino precedente impostazione modificato
|
||||
DisableMgr.ReEnable()
|
||||
End Sub
|
||||
|
||||
Friend Sub ShowAll(Optional bRedraw As Boolean = True)
|
||||
' disabilito impostazione modificato
|
||||
Dim DisableMgr As New DisableModifiedMgr
|
||||
@@ -721,7 +955,7 @@ Public Class BTLStructureVM
|
||||
BTLPartIdList.Sort()
|
||||
Dim nGeomPartId As Integer = EgtGetFirstPart()
|
||||
While nGeomPartId <> GDB_ID.NULL
|
||||
Dim CurrPart As BTLPartVM = BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nGeomPartId)
|
||||
Dim CurrPart As BTLPartVM = If(Not IsNothing(SelBTLLayer), SelBTLLayer.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nGeomPartId), BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nGeomPartId))
|
||||
If Not IsNothing(CurrPart) Then
|
||||
Dim nMode As Integer
|
||||
EgtGetMode(CurrPart.nPartId, nMode)
|
||||
|
||||
@@ -148,7 +148,7 @@ Public Class CALCPanelVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ResetCalc_ToopTip As String
|
||||
Public ReadOnly Property ResetCalc_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61940)
|
||||
End Get
|
||||
@@ -779,6 +779,7 @@ Public Class CALCPanelVM
|
||||
End Select
|
||||
TempBarList.Add(Bar)
|
||||
Next
|
||||
If TempBarList.Count = 0 Then Return
|
||||
BarList = TempBarList.ToArray()
|
||||
' disabilito interfaccia
|
||||
Map.refProjectVM.SetCalcRunning(True)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<Image Source="/Resources/CALCPanel/VerifyAll.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding ResetCalc_Command}"
|
||||
ToolTip="{Binding ResetCalc_ToopTip}"
|
||||
ToolTip="{Binding ResetCalc_ToolTip}"
|
||||
IsEnabled="{Binding CALCPanel_IsEnabled}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/CALCPanel/ResetCalc.png" Stretch="Uniform"/>
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
<EgtWPFLib5:EgtCustomWindow x:Class="ChangeMaterialWndV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
WindowStyle="None" ResizeMode="NoResize"
|
||||
SizeToContent="WidthAndHeight"
|
||||
WindowStartupLocation="CenterOwner"
|
||||
IsClosable="False"
|
||||
IsMinimizable="False"
|
||||
IsResizable="False"
|
||||
Title="ChangeMaterialWnd">
|
||||
|
||||
<Grid Margin="5,5,5,0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid HorizontalAlignment="Center"
|
||||
Grid.Row="0"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Text="{Binding ProjMaterial_Msg}"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<ComboBox ItemsSource="{Binding ProjMaterialList}"
|
||||
SelectedItem="{Binding SelProjMaterial}"
|
||||
Grid.Column="1"
|
||||
Width="150"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
</Grid>
|
||||
<Grid HorizontalAlignment="Center"
|
||||
Grid.Row="1"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="{Binding WjMaterial_Msg}"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<ComboBox ItemsSource="{Binding WhMaterialList}"
|
||||
SelectedItem="{Binding SelWhMaterial}"
|
||||
Grid.Column="1"
|
||||
Width="150"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Grid.Row="2"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Content="{Binding Ok_Msg}"
|
||||
Command="{Binding Ok_Command}"
|
||||
IsDefault="True"
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="{Binding Cancel_Msg}"
|
||||
IsCancel="True"
|
||||
Grid.Column="3"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EgtWPFLib5:EgtCustomWindow>
|
||||
@@ -0,0 +1,18 @@
|
||||
Public Class ChangeMaterialWndV
|
||||
|
||||
Private WithEvents m_ChangeMaterialWndVM As ChangeMaterialWndVM
|
||||
|
||||
Sub New(Owner As Window, ChangeMaterialWndVM As ChangeMaterialWndVM)
|
||||
MyBase.New(Owner)
|
||||
' This call is required by the designer.
|
||||
InitializeComponent()
|
||||
Me.DataContext = ChangeMaterialWndVM
|
||||
' Assegno al riferimento locale al VM il VM preso dal DataContext
|
||||
m_ChangeMaterialWndVM = ChangeMaterialWndVM
|
||||
End Sub
|
||||
|
||||
Private Sub CloseWindow(bDialogResult As Boolean) Handles m_ChangeMaterialWndVM.m_CloseWindow
|
||||
Me.DialogResult = bDialogResult
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,140 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtBEAMWALL.Core
|
||||
|
||||
Public Class ChangeMaterialWndVM
|
||||
Inherits VMBase
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
Friend Event m_CloseWindow(bDialogResult As Boolean)
|
||||
|
||||
Private m_ProjMaterialList As New ObservableCollection(Of String)
|
||||
Public Property ProjMaterialList As ObservableCollection(Of String)
|
||||
Get
|
||||
Return m_ProjMaterialList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of String))
|
||||
m_ProjMaterialList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_SelProjMaterial As String
|
||||
Public Property SelProjMaterial As String
|
||||
Get
|
||||
Return m_SelProjMaterial
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_SelProjMaterial = value
|
||||
NotifyPropertyChanged(NameOf(SelProjMaterial))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_WhMaterialList As New ObservableCollection(Of String)
|
||||
Public Property WhMaterialList As ObservableCollection(Of String)
|
||||
Get
|
||||
Return m_WhMaterialList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of String))
|
||||
m_WhMaterialList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_SelWhMaterial As String
|
||||
Public Property SelWhMaterial As String
|
||||
Get
|
||||
Return m_SelWhMaterial
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_SelWhMaterial = value
|
||||
NotifyPropertyChanged(NameOf(SelWhMaterial))
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdOk As ICommand
|
||||
|
||||
#End Region ' FIELDS & PROPERTIES
|
||||
|
||||
#Region "MESSAGES"
|
||||
|
||||
Public ReadOnly Property ProjMaterial_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61962)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property WjMaterial_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61963)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Ok_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61761)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Cancel_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61763)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' MESSAGES
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
' recupero i materiali del progetto
|
||||
m_ProjMaterialList.Clear()
|
||||
For Each BTLPart In Map.refProjectVM.BTLStructureVM.BTLPartVMList
|
||||
If Not m_ProjMaterialList.Contains(BTLPart.sMATERIAL) Then
|
||||
m_ProjMaterialList.Add(BTLPart.sMATERIAL)
|
||||
End If
|
||||
Next
|
||||
' recupero la lista dei SectionXMaterial presenti in Warehouse
|
||||
Dim WhSectXMatList As List(Of SectionXMaterial) = WarehouseWndVM.GetSectionXMaterialsFromWarehouse()
|
||||
' ricavo la lista dei materiali presenti in Warehouse
|
||||
m_WhMaterialList.Clear()
|
||||
For Each WhSectXMat In WhSectXMatList
|
||||
For Each sMatItem In WhSectXMat.sMaterial
|
||||
If Not m_WhMaterialList.Contains(sMatItem) Then
|
||||
m_WhMaterialList.Add(sMatItem)
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "Ok"
|
||||
|
||||
Public ReadOnly Property Ok_Command As ICommand
|
||||
Get
|
||||
If m_cmdOk Is Nothing Then
|
||||
m_cmdOk = New Command(AddressOf Ok)
|
||||
End If
|
||||
Return m_cmdOk
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Ok()
|
||||
'verifico che tutti i campi contengano un valore valido
|
||||
If Not IsNothing(m_SelProjMaterial) AndAlso m_SelProjMaterial <> "" AndAlso
|
||||
Not IsNothing(m_SelWhMaterial) AndAlso m_SelWhMaterial <> "" Then
|
||||
RaiseEvent m_CloseWindow(True)
|
||||
Else
|
||||
MessageBox.Show(EgtMsg(61858), EgtMsg(30007))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' Ok
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
End Class
|
||||
@@ -1,105 +1,78 @@
|
||||
<EgtWPFLib5:EgtCustomWindow x:Class="ChangeParameterWndV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
WindowStyle="None" ResizeMode="NoResize"
|
||||
SizeToContent="WidthAndHeight"
|
||||
WindowStartupLocation="CenterOwner"
|
||||
IsClosable="False"
|
||||
IsMinimizable="False"
|
||||
IsResizable="False"
|
||||
Title="ChangeParameterWnd">
|
||||
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
WindowStyle="None" ResizeMode="NoResize"
|
||||
SizeToContent="Height"
|
||||
Width="300"
|
||||
WindowStartupLocation="CenterOwner"
|
||||
IsClosable="False"
|
||||
IsMinimizable="False"
|
||||
IsResizable="False"
|
||||
Title="ChangeParameterWnd">
|
||||
|
||||
<Grid Margin="5,5,5,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="5"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="5"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="5"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="5"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid HorizontalAlignment="Center"
|
||||
Grid.Row="0"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Text="Process"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<ComboBox ItemsSource="{Binding PRCList}"
|
||||
SelectedItem="{Binding SelPRC}"
|
||||
DisplayMemberPath="ghDesc"
|
||||
Width="150"
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
</Grid>
|
||||
<Grid HorizontalAlignment="Center"
|
||||
Grid.Row="1"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="Parameter"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<ComboBox ItemsSource="{Binding ParamList}"
|
||||
SelectedItem="{Binding SelParam}"
|
||||
DisplayMemberPath="sNameAndDescription"
|
||||
Grid.Column="1"
|
||||
Width="100"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
</Grid>
|
||||
<Grid HorizontalAlignment="Center"
|
||||
Grid.Row="2"
|
||||
Height="22"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="Actual value"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding SelParam.sActualValue}"
|
||||
Grid.Column="1"
|
||||
Width="45"
|
||||
Visibility="{Binding SelParam.IsTextBox_Visibility}"/>
|
||||
<CheckBox IsChecked="{Binding SelParam.bActualValue}"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Visibility="{Binding SelParam.IsCheckBox_Visibility}"/>
|
||||
</Grid>
|
||||
<TextBlock Text="Process"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<ComboBox Grid.Column="1"
|
||||
ItemsSource="{Binding PRCList}"
|
||||
SelectedItem="{Binding SelPRC}"
|
||||
DisplayMemberPath="ghDesc"
|
||||
HorizontalAlignment="Stretch"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
|
||||
<Grid HorizontalAlignment="Center"
|
||||
Grid.Row="3"
|
||||
Height="22"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="New Value"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding SelParam.sNewValue}"
|
||||
Grid.Column="1"
|
||||
Width="45"
|
||||
Visibility="{Binding SelParam.IsTextBox_Visibility}"/>
|
||||
<CheckBox IsChecked="{Binding SelParam.bNewValue}"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Visibility="{Binding SelParam.IsCheckBox_Visibility}"/>
|
||||
</Grid>
|
||||
<TextBlock Grid.Row="2"
|
||||
Text="Parameter"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<ComboBox Grid.Row="2" Grid.Column="1"
|
||||
ItemsSource="{Binding ParamList}"
|
||||
SelectedItem="{Binding SelParam}"
|
||||
DisplayMemberPath="sNameAndDescription"
|
||||
HorizontalAlignment="Stretch"
|
||||
Style="{StaticResource FeatureComboBox}"/>
|
||||
|
||||
<Grid Grid.Row="4"
|
||||
<TextBlock Grid.Row="4"
|
||||
Text="Actual value"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Grid.Row="4" Grid.Column="1"
|
||||
Text="{Binding SelParam.sActualValue}"
|
||||
Visibility="{Binding SelParam.IsTextBox_Visibility}"/>
|
||||
<CheckBox Grid.Row="4" Grid.Column="1"
|
||||
IsChecked="{Binding SelParam.bActualValue}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Visibility="{Binding SelParam.IsCheckBox_Visibility}"/>
|
||||
|
||||
<TextBlock Grid.Row="6" Text="New Value"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Grid.Row="6" Grid.Column="1"
|
||||
Text="{Binding SelParam.sNewValue}"
|
||||
Visibility="{Binding SelParam.IsTextBox_Visibility}"/>
|
||||
<CheckBox Grid.Row="6" Grid.Column="1"
|
||||
IsChecked="{Binding SelParam.bNewValue}"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Visibility="{Binding SelParam.IsCheckBox_Visibility}"/>
|
||||
|
||||
<Grid Grid.Row="8" Grid.ColumnSpan="2"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
|
||||
@@ -42,6 +42,9 @@ Public Class ChangeParameterWndVM
|
||||
'End While
|
||||
' aggiungo bDO come parametro
|
||||
m_ParamList.Add(New Parameters(NewBTLParam, True))
|
||||
' seleziono parametro vuoto per dargli un valore iniziale ed evitare che visualizzi sia text che check
|
||||
m_SelParam = New Parameters(BTLParamM.CreateNewBTLParam())
|
||||
NotifyPropertyChanged(NameOf(SelParam))
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@@ -78,11 +81,15 @@ Public Class ChangeParameterWndVM
|
||||
GetBeamPrivateProfileProcessList(GRPType.T, TempPRCList)
|
||||
m_PRCList.Clear()
|
||||
For Each PRC In TempPRCList
|
||||
m_PRCList.Add(New PRC(GRPType.T, PRC, GetBeamPrivateProfileName(GRPType.T, PRC)))
|
||||
If Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refProjectVM.BTLStructureVM.BTLPartVMList.Any(Function(x) x.BTLFeatureVMList.Any(Function(y) y.nPRC = PRC AndAlso CalcBeamPrivateProfileGRP(y.nSelGRP) = 1)) Then
|
||||
m_PRCList.Add(New PRC(GRPType.T, PRC, GetBeamPrivateProfileName(GRPType.T, PRC)))
|
||||
End If
|
||||
Next
|
||||
GetBeamPrivateProfileProcessList(GRPType.L, TempPRCList)
|
||||
For Each PRC In TempPRCList
|
||||
m_PRCList.Add(New PRC(GRPType.L, PRC, GetBeamPrivateProfileName(GRPType.L, PRC)))
|
||||
If Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refProjectVM.BTLStructureVM.BTLPartVMList.Any(Function(x) x.BTLFeatureVMList.Any(Function(y) y.nPRC = PRC AndAlso CalcBeamPrivateProfileGRP(y.nSelGRP) = 0)) Then
|
||||
m_PRCList.Add(New PRC(GRPType.L, PRC, GetBeamPrivateProfileName(GRPType.L, PRC)))
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -13,5 +13,6 @@
|
||||
Public Const K_QUANTITY As String = "Quantity"
|
||||
Public Const K_L As String = "L"
|
||||
Public Const K_S As String = "S"
|
||||
Public Const K_RANGE As String = "Range"
|
||||
|
||||
End Module
|
||||
|
||||
@@ -165,6 +165,32 @@
|
||||
<Compile Include="AboutBoxWindow\AboutBoxV.xaml.vb">
|
||||
<DependentUpon>AboutBoxV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LayersWallBottomPanel\LayersWallBottomPanelV.xaml.vb">
|
||||
<DependentUpon>LayersWallBottomPanelV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LayersWallBottomPanel\LayersWallBottomPanelVM.vb" />
|
||||
<Compile Include="BTLViewModel\BTLLayerVM.vb" />
|
||||
<Compile Include="BTLViewModel\BTLElementVM.vb" />
|
||||
<Compile Include="ChangeMaterialWnd\ChangeMaterialWndV.xaml.vb">
|
||||
<DependentUpon>ChangeMaterialWndV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ChangeMaterialWnd\ChangeMaterialWndVM.vb" />
|
||||
<Compile Include="ElementLayerTreeView\ElementLayerTreeView.vb" />
|
||||
<Compile Include="ElementLayerTreeView\ElementLayerTreeViewV.xaml.vb">
|
||||
<DependentUpon>ElementLayerTreeViewV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ElementLayerTreeView\ElementLayerTreeViewVM.vb" />
|
||||
<Compile Include="LayersWallFeatureList\LayersWallFeatureListV.xaml.vb">
|
||||
<DependentUpon>LayersWallFeatureListV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LayersWallLeftPanel\LayersWallLeftPanelV.xaml.vb">
|
||||
<DependentUpon>LayersWallLeftPanelV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LayersWallLeftPanel\LayersWallLeftPanelVM.vb" />
|
||||
<Compile Include="MovePartInRawPartWnd\MovePartInRawPartWndV.xaml.vb">
|
||||
<DependentUpon>MovePartInRawPartWndV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MovePartInRawPartWnd\MovePartInRawPartWndVM.vb" />
|
||||
<Compile Include="InputPwdWnd\InputPwdWndV.xaml.vb">
|
||||
<DependentUpon>InputPwdWndV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -225,11 +251,19 @@
|
||||
<DependentUpon>NestingRunningWndV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="NestingRunningWnd\NestingRunningWndVM.vb" />
|
||||
<Compile Include="LayersWallPartManager\LayersWallPartManagerV.xaml.vb">
|
||||
<DependentUpon>LayersWallPartManagerV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LayersWallPartManager\LayersWallPartManagerVM.vb" />
|
||||
<Compile Include="ProjectTypeWnd\ProjectTypeWndV.xaml.vb">
|
||||
<DependentUpon>ProjectTypeWndV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ProjectTypeWnd\ProjectTypeWndVM.vb" />
|
||||
<Compile Include="ProjectFileVM\ProdFileVM.vb" />
|
||||
<Compile Include="LayersWallProjManager\LayersWallProjManagerV.xaml.vb">
|
||||
<DependentUpon>LayersWallProjManagerV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="LayersWallProjManager\LayersWallProjManagerVM.vb" />
|
||||
<Compile Include="SetUp\SetUpSupportClass.vb" />
|
||||
<Compile Include="SetUp\SetUpV.xaml.vb">
|
||||
<DependentUpon>SetUpV.xaml</DependentUpon>
|
||||
@@ -248,6 +282,14 @@
|
||||
<Compile Include="SupervisorCommThread\SupervisorCommThread.vb" />
|
||||
<Compile Include="ToolsDbWindow\MyToolDbWindowVM.vb" />
|
||||
<Compile Include="ToolsDbWindow\ToolsUpdate.vb" />
|
||||
<Compile Include="UpdateBTLWnd\UpdateOrAppendWndVM.vb" />
|
||||
<Compile Include="UpdateBTLWnd\UpdateBTLWndV.xaml.vb">
|
||||
<DependentUpon>UpdateBTLWndV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UpdateBTLWnd\UpdateBTLWndVM.vb" />
|
||||
<Compile Include="UpdateBTLWnd\UpdateOrAppendWndV.xaml.vb">
|
||||
<DependentUpon>UpdateOrAppendWndV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Utility\DbControllers.vb" />
|
||||
<Compile Include="Utility\DisableModifiedMgr.vb" />
|
||||
<Compile Include="Utility\LuaExec.vb" />
|
||||
@@ -352,6 +394,30 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="LayersWallBottomPanel\LayersWallBottomPanelV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="ChangeMaterialWnd\ChangeMaterialWndV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="ElementLayerTreeView\ElementLayerTreeViewV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="LayersWallFeatureList\LayersWallFeatureListV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="LayersWallLeftPanel\LayersWallLeftPanelV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="MovePartInRawPartWnd\MovePartInRawPartWndV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="InputPwdWnd\InputPwdWndV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -412,10 +478,18 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="LayersWallPartManager\LayersWallPartManagerV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="ProjectTypeWnd\ProjectTypeWndV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="LayersWallProjManager\LayersWallProjManagerV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="SetUp\SetUpV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -428,6 +502,14 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UpdateBTLWnd\UpdateBTLWndV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="UpdateBTLWnd\UpdateOrAppendWndV.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="WarehouseWnd\WarehouseWndV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -840,6 +922,15 @@
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\OptimizePanel\UnlockRotation.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\MovePartInRawPart\MoveLeftParts.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\MovePartInRawPart\MoveRightParts.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="Resources\TopPanel\MovePartInRawPart.png" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>IF "$(PlatformName)"=="x86" IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\EgtBEAMWALL\EgtBEAMWALL.ViewerOptimizerR32.exe
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
Imports EgtUILib
|
||||
|
||||
''' <summary>
|
||||
''' Class that represent a Machining in the treeview.
|
||||
''' It's an element in the treeview that represent the child of familymachiningtreeviewitem, but also the class that read and write in the machining's database
|
||||
''' </summary>
|
||||
Public Class ElementLayerTreeViewItem
|
||||
Inherits ChildItem
|
||||
|
||||
#Region "Machining Property"
|
||||
|
||||
Private m_Type As MCH_MY
|
||||
Public ReadOnly Property Type As Integer
|
||||
Get
|
||||
Return m_Type
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Property that determines if the Machining is selected or not
|
||||
''' </summary>
|
||||
Public Overrides Property IsSelected As Boolean
|
||||
Get
|
||||
Return m_isSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If (value <> m_isSelected) Then
|
||||
m_isSelected = value
|
||||
' If Machining is selected, set it as current and notify all machining's property
|
||||
' to refresh them values with those of the new selected machining
|
||||
If value Then
|
||||
EgtMdbSetCurrMachining(Me.Name)
|
||||
Else
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End Set
|
||||
|
||||
End Property
|
||||
|
||||
Private m_Tool As String
|
||||
Public Property Tool As String
|
||||
Get
|
||||
Return m_Tool
|
||||
End Get
|
||||
Set(value As String)
|
||||
m_Tool = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
#End Region ' Machining Property
|
||||
|
||||
#Region "Constructors"
|
||||
|
||||
Sub New(Name As String, Tool As String)
|
||||
MyBase.New(Name)
|
||||
Me.Tool = If(Not String.IsNullOrEmpty(Tool), "(" & Tool & ")", String.Empty)
|
||||
End Sub
|
||||
|
||||
#End Region ' Constructors
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Class that represent a FamilyMachining in the treeview.
|
||||
''' It's an element in the treeview that represent a folder, but also a machining family
|
||||
''' </summary>
|
||||
Public Class FamilyElementLayerTreeViewItem
|
||||
Inherits ParentItem
|
||||
|
||||
Private m_MachiningType As MCH_MY
|
||||
''' <summary>
|
||||
''' Property that determines the machining type of the family
|
||||
''' </summary>
|
||||
Public Property MachiningType As MCH_MY
|
||||
Get
|
||||
Return m_MachiningType
|
||||
End Get
|
||||
Set(value As MCH_MY)
|
||||
m_MachiningType = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Property that determines if the Machining is selected or not
|
||||
''' </summary>
|
||||
Public Overrides Property IsSelected As Boolean
|
||||
Get
|
||||
Return m_isSelected
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If (value <> m_isSelected) Then
|
||||
m_isSelected = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property sName As String
|
||||
Get
|
||||
Return "Prova"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Constructor that receive the name of the FamilyMachiningTreeViewItem, the MachiningType, and set
|
||||
''' the picture(Folder.png)
|
||||
''' </summary>
|
||||
Sub New(Name As String)
|
||||
MyBase.New(Name)
|
||||
Me.PictureString = "/Resources/TreeView/Folder.png"
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class Element
|
||||
|
||||
End Class
|
||||
|
||||
Public Class Layer
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,78 @@
|
||||
<UserControl x:Class="ElementLayerTreeViewV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:local="clr-namespace:EgtBEAMWALL.ViewerOptimizer">
|
||||
|
||||
<UniformGrid MaxHeight="300">
|
||||
<TreeView Name="ElementLayersTreeView" Grid.Row="1"
|
||||
ItemsSource="{Binding Tag.BTLElementVMList,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type local:ElementLayerTreeViewV}}}">
|
||||
<!--ItemsSource="{Binding Path=ElementLayersList}">-->
|
||||
|
||||
<!--<interactivity:Interaction.Triggers>
|
||||
<interactivity:EventTrigger EventName="MouseDoubleClick">
|
||||
<interactivity:InvokeCommandAction Command="{Binding TreeViewDoubleClickCommand}" CommandParameter="{Binding ElementName=MachiningsTreeView,Path=SelectedItem}"/>
|
||||
</interactivity:EventTrigger>
|
||||
</interactivity:Interaction.Triggers>-->
|
||||
<!--<TreeView.InputBindings>
|
||||
<KeyBinding Key="Escape" Command="{Binding CancelNewCommand}" CommandParameter="Escape"/>
|
||||
</TreeView.InputBindings>-->
|
||||
<TreeView.Resources>
|
||||
<!--Modifico HierarchicalDataTemplate del CathegoryItem per poter inserire immagine e testo e per -->
|
||||
<!--renderlo apribile con un solo click -->
|
||||
<HierarchicalDataTemplate DataType="{x:Type local:BTLElementVM}" ItemsSource="{Binding BTLLayerVMList}">
|
||||
<!--<HierarchicalDataTemplate DataType="{x:Type local:FamilyElementLayerTreeViewItem}" ItemsSource="{Binding Items}">-->
|
||||
<!--<HierarchicalDataTemplate DataType="{x:Type local:FamilyElementLayerTreeViewItem}" ItemsSource="{Binding ElementLayersList}">-->
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Image Grid.Column="0" Source="{Binding PictureString}" Height="15" Margin="0,0,5,0"/>
|
||||
<TextBlock Grid.Column="1" Text="{Binding sNAMplus}"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
<!--Assegna ai nodi ToolItem lo Style normale dei TreeViewItem, eliminando l'ombra, data dal
|
||||
multibinding quando sono attivi.-->
|
||||
<HierarchicalDataTemplate.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type TreeViewItem}" >
|
||||
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</Style>
|
||||
</HierarchicalDataTemplate.ItemContainerStyle>
|
||||
|
||||
</HierarchicalDataTemplate>
|
||||
<!--Modifico DataTemplate del ToolItem per poter inserire immagine e testo-->
|
||||
<DataTemplate DataType="{x:Type local:BTLLayerVM}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Grid.Column="0" Text="{Binding sNAMplus}" Margin="0,0,5,0"/>
|
||||
<!--<TextBlock Grid.Column="1" Text="{Binding Tool}"/>-->
|
||||
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</TreeView.Resources>
|
||||
|
||||
<!--Style dei nodi CathegoryItem che li riquadra di azzurro quando clicckati ed elimina l'ombra grigia -->
|
||||
<!--che si presenta quando la categoria rimane vuota (ombra causata dal multibinding). -->
|
||||
<TreeView.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type TreeViewItem}">
|
||||
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<EventSetter Event="PreviewMouseDown" Handler="ElementLayerTreeView_PreviewMouseDown"/>
|
||||
<EventSetter Event="PreviewMouseUp" Handler="ElementLayerTreeView_PreviewMouseUp"/>
|
||||
</Style>
|
||||
</TreeView.ItemContainerStyle>
|
||||
|
||||
</TreeView>
|
||||
</UniformGrid>
|
||||
|
||||
</UserControl>
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
Public Class ElementLayerTreeViewV
|
||||
|
||||
Dim nPrevPartId As Integer = 0
|
||||
|
||||
Private Sub ElementLayerTreeView_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs)
|
||||
' se ci troviamo nella pagina LayersWall e un Layer è già selezionato
|
||||
If Map.refMainMenuVM.SelPage = EgtBEAMWALL.Core.ConstGen.Pages.LAYERSWALL AndAlso
|
||||
Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLLayer) AndAlso
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLLayer.IsSelected Then
|
||||
' salvo il PartId dell'elemento che era già selezionato
|
||||
nPrevPartId = Map.refProjectVM.BTLStructureVM.SelBTLLayer.nPartId
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub ElementLayerTreeView_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs)
|
||||
' se ci troviamo nella pagina LayersWall e un Layer è già selezionato
|
||||
If Map.refMainMenuVM.SelPage = EgtBEAMWALL.Core.ConstGen.Pages.LAYERSWALL AndAlso
|
||||
Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLLayer) AndAlso
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLLayer.IsSelected Then
|
||||
' se l'elemento su cui ho clickato è lo stesso che era selezionato
|
||||
If Map.refProjectVM.BTLStructureVM.SelBTLLayer.nPartId = nPrevPartId Then
|
||||
' riassegno SelBTLLayer a se stesso per eseguire la riselezione di se stesso
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLLayer = Map.refProjectVM.BTLStructureVM.SelBTLLayer
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,156 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtBEAMWALL.Core
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class ElementLayerTreeViewVM
|
||||
Inherits VMBase
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
Friend CodeCommand As Boolean = False
|
||||
|
||||
Private m_IsEnabled As Boolean
|
||||
Public Property IsEnabled As Boolean
|
||||
Get
|
||||
Return m_IsEnabled
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If value <> m_IsEnabled Then
|
||||
'Map.refMachiningOptionPanelVM.Set_IsExpanded(MachiningOptionPanelVM.MachiningOptionPanelExpander.NEWMACHININGS, value)
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Lista delle lavorazioni
|
||||
Private m_ElementLayersList As New ObservableCollection(Of FamilyElementLayerTreeViewItem)
|
||||
Public Property ElementLayersList As ObservableCollection(Of FamilyElementLayerTreeViewItem)
|
||||
Get
|
||||
Return m_ElementLayersList
|
||||
End Get
|
||||
Set(value As ObservableCollection(Of FamilyElementLayerTreeViewItem))
|
||||
m_ElementLayersList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LayersWallPage_Visibility As Visibility
|
||||
Get
|
||||
Return If(Map.refMainMenuVM.SelPage = Pages.LAYERSWALL, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Operazione correntemente selezionata, che permette di aggiungere al posto giusto quella nuova
|
||||
Friend nSelectedOperationId As Integer = GDB_ID.NULL
|
||||
|
||||
'Public ReadOnly Property MachListHdr As String
|
||||
' Get
|
||||
' Return EgtMsg(MSG_OPERATION + 12) ' Nuove Lavorazioni
|
||||
' End Get
|
||||
'End Property
|
||||
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdTreeViewDoubleClick As ICommand
|
||||
Private m_cmdCancelNew As ICommand
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
Map.SetRefElementLayerTreeViewVM(Me)
|
||||
' Per caricare l'albero la prima volta che viene aperto
|
||||
IsEnabled = False
|
||||
'LoadSelectedMachineMachinings()
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#End Region ' Commands
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Friend Function InitMachiningTreeExpander() As Boolean
|
||||
'm_IsEnabled = True
|
||||
|
||||
'Map.refOperationParametersExpanderVM.OperParamsViewIsEnabled = False
|
||||
'Map.refSimulationExpanderVM.Simulation_IsEnabled = False
|
||||
'Map.refEstimationsExpanderVM.Estimation_IsEnabled = False
|
||||
|
||||
'' Abilito la selezione delle geometrie di lavorazione
|
||||
'Map.refProjectVM.SceneSelType = SceneSelTypeOpt.MACHINING
|
||||
'' Abilito la selezione di curve e superfici del pezzo
|
||||
'Map.refProjectVM.SceneSelMode = SceneSelModeOpt.ALL
|
||||
|
||||
'CodeCommand = False
|
||||
'OnPropertyChanged("IsEnabled")
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Friend Function ExitMachiningTreeExpander() As Boolean
|
||||
'm_IsEnabled = False
|
||||
|
||||
'Map.refOperationParametersExpanderVM.OperParamsViewIsEnabled = True
|
||||
'Map.refSimulationExpanderVM.Simulation_IsEnabled = True
|
||||
'Map.refEstimationsExpanderVM.Estimation_IsEnabled = True
|
||||
|
||||
'If Not CodeCommand Then
|
||||
' Map.refOperationsListExpanderVM.CancelOperationCmd()
|
||||
' CodeCommand = False
|
||||
' OnPropertyChanged("IsEnabled")
|
||||
' Return False
|
||||
'End If
|
||||
'CodeCommand = False
|
||||
'OnPropertyChanged("IsEnabled")
|
||||
Return True
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
|
||||
''' </summary>
|
||||
Private Sub LoadSelectedMachineMachinings()
|
||||
'Dim ActiveMachiningsTypes() As MachiningsType = MachineModel.ReadActiveMachiningsFamilies()
|
||||
'For Each MachiningsType In ActiveMachiningsTypes
|
||||
' Dim FamilyTreeView As New FamilyMachiningTreeViewExpanderItem(MachiningsType.TypeName, MachiningsType.TypeId)
|
||||
' MachiningsList.Add(FamilyTreeView)
|
||||
' Dim MachiningName As String = String.Empty
|
||||
' Dim MachiningToolName As String = String.Empty
|
||||
' EgtMdbGetFirstMachining(MachiningsType.TypeId, MachiningName)
|
||||
' While Not String.IsNullOrEmpty(MachiningName)
|
||||
' EgtMdbSetCurrMachining(MachiningName)
|
||||
' EgtMdbGetCurrMachiningParam(MCH_MP.TOOL, MachiningToolName)
|
||||
' FamilyTreeView.Items.Add(New MachiningTreeViewExpanderItem(MachiningName, MachiningsType.TypeId, MachiningToolName))
|
||||
' EgtMdbGetNextMachining(MachiningsType.TypeId, MachiningName)
|
||||
' End While
|
||||
'Next
|
||||
'' Se esiste almeno una famiglia di lavorazioni, la seleziono
|
||||
'If MachiningsList.Count > 0 Then
|
||||
' MachiningsList(0).IsSelected = True
|
||||
' MachiningsList(0).NotifyPropertyChanged("IsSelected")
|
||||
'End If
|
||||
|
||||
Dim ActiveMachiningsTypes() As String = {"A", "B", "C"}
|
||||
For Each MachiningsType In ActiveMachiningsTypes
|
||||
Dim FamilyTreeView As New FamilyElementLayerTreeViewItem(MachiningsType)
|
||||
ElementLayersList.Add(FamilyTreeView)
|
||||
Dim MachiningName As String = "1"
|
||||
FamilyTreeView.Items.Add(New ElementLayerTreeViewItem(MachiningName, MachiningsType))
|
||||
Next
|
||||
' Se esiste almeno una famiglia di lavorazioni, la seleziono
|
||||
If ElementLayersList.Count > 0 Then
|
||||
ElementLayersList(0).IsSelected = True
|
||||
ElementLayersList(0).NotifyPropertyChanged("IsSelected")
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateOperationMachiningList()
|
||||
m_ElementLayersList.Clear()
|
||||
LoadSelectedMachineMachinings()
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
@@ -16,6 +16,34 @@ Public Class FeatureManagerVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_LayerFeature_Visibility As Boolean = False
|
||||
Public Property LayerFeature_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_LayerFeature_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_LayerFeature_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetLayerFeature_Visibility(IsVisible As Boolean)
|
||||
m_LayerFeature_Visibility = IsVisible
|
||||
NotifyPropertyChanged(NameOf(LayerFeature_Visibility))
|
||||
End Sub
|
||||
|
||||
Private m_PartFeature_Visibility As Boolean = False
|
||||
Public Property PartFeature_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_PartFeature_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_PartFeature_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetPartFeature_Visibility(IsVisible As Boolean)
|
||||
m_PartFeature_Visibility = IsVisible
|
||||
NotifyPropertyChanged(NameOf(PartFeature_Visibility))
|
||||
End Sub
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property Face_Msg As String
|
||||
|
||||
@@ -28,6 +28,15 @@
|
||||
<Image Source="/Resources/InstrumentPanel/ChangeParam.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
|
||||
<Button ToolTip="{Binding ChangeMaterial_ToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}"
|
||||
Command="{Binding ChangeMaterial_Command}"
|
||||
Visibility="{Binding ChangeMaterial_Visibility}"
|
||||
IsEnabled="{Binding InstrumentPanel_IsEnabled}"
|
||||
Content="MAT">
|
||||
<!--<Image Source="/Resources/CALCPanel/ChooseMachine.png" Stretch="Uniform"/>-->
|
||||
</Button>
|
||||
|
||||
<ToggleButton ToolTip="{Binding Statistics_Msg}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"
|
||||
IsChecked="{Binding Statistics_IsChecked}">
|
||||
|
||||
@@ -13,6 +13,12 @@ Public Class MyInstrumentPanelVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ChangeMaterial_Visibility As Visibility
|
||||
Get
|
||||
Return If(Map.refMainWindowVM.MainWindowM.nUserLevel > 5 AndAlso Map.refMainMenuVM.SelPage = Pages.VIEW, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_InstrumentPanel_IsEnabled As Boolean = True
|
||||
Public Property InstrumentPanel_IsEnabled As Boolean
|
||||
Get
|
||||
@@ -48,7 +54,7 @@ Public Class MyInstrumentPanelVM
|
||||
' aggiorno valori totali
|
||||
If Not IsNothing(Map.refProjectVM.MachGroupPanelVM) Then Map.refProjectVM.MachGroupPanelVM.CalcGlobalUpdate()
|
||||
' aggiorno conto materiali usati
|
||||
Map.refStatisticsVM.LoadRawPart()
|
||||
If Not IsNothing(Map.refProdManagerVM.CurrProd) Then Map.refStatisticsVM.LoadRawPart()
|
||||
' seleziono pagina Statistics
|
||||
Map.refTopPanelVM.SetSelTab(TopPanelVM.Tabs.STATISTICS)
|
||||
Else
|
||||
@@ -66,6 +72,7 @@ Public Class MyInstrumentPanelVM
|
||||
' Definizione comandi
|
||||
Private m_cmdData As ICommand
|
||||
Private m_cmdChangeParameter As ICommand
|
||||
Private m_cmdChangeMaterial As ICommand
|
||||
Private m_cmdStatistics As ICommand
|
||||
|
||||
#Region "Messages"
|
||||
@@ -76,6 +83,12 @@ Public Class MyInstrumentPanelVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ChangeMaterial_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61961)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Statistics_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61923)
|
||||
@@ -235,6 +248,42 @@ Public Class MyInstrumentPanelVM
|
||||
|
||||
#End Region ' ChangeParameter
|
||||
|
||||
#Region "ChangeMaterial"
|
||||
|
||||
''' <summary>
|
||||
''' Returns a command that do Open.
|
||||
''' </summary>
|
||||
Public ReadOnly Property ChangeMaterial_Command As ICommand
|
||||
Get
|
||||
If m_cmdChangeMaterial Is Nothing Then
|
||||
m_cmdChangeMaterial = New Command(AddressOf ChangeMaterial)
|
||||
End If
|
||||
Return m_cmdChangeMaterial
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Execute the Open. This method is invoked by the OpenCommand.
|
||||
''' </summary>
|
||||
Friend Sub ChangeMaterial()
|
||||
If (Map.refMainMenuVM.SelPage = Pages.VIEW AndAlso (IsNothing(Map.refProjManagerVM.CurrProj) OrElse IsNothing(Map.refProjectVM.BTLStructureVM)) OrElse
|
||||
(Map.refMainMenuVM.SelPage = Pages.MACHINING AndAlso (IsNothing(Map.refProdManagerVM.CurrProd) OrElse IsNothing(Map.refProjectVM.MachGroupPanelVM)))) Then Return
|
||||
Dim ChangeMaterialWndVM As New ChangeMaterialWndVM
|
||||
Dim ChangeMaterialWnd As New ChangeMaterialWndV(Application.Current.MainWindow, ChangeMaterialWndVM)
|
||||
If ChangeMaterialWnd.ShowDialog() Then
|
||||
LoadingWndHelper.OpenLoadingWnd(ActiveIds.CHANGEMATERIAL, 1, EgtMsg(63021), "", 100) ' Modifying materials
|
||||
' faccio passare pezzi
|
||||
If Not IsNothing(ChangeMaterialWndVM.SelProjMaterial) AndAlso Not IsNothing(ChangeMaterialWndVM.SelWhMaterial) Then
|
||||
For Each Part In Map.refProjectVM.BTLStructureVM.BTLPartVMList.Where(Function(x) x.sMATERIAL = ChangeMaterialWndVM.SelProjMaterial)
|
||||
Part.sMATERIAL = ChangeMaterialWndVM.SelWhMaterial
|
||||
Next
|
||||
End If
|
||||
LoadingWndHelper.CloseLoadingWnd(ActiveIds.CHANGEMATERIAL)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' ChangeMaterial
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
End Class
|
||||
|
||||
@@ -4,7 +4,11 @@
|
||||
If TypeOf sender Is DataGridRow Then
|
||||
Dim Row As DataGridRow = DirectCast(sender, DataGridRow)
|
||||
If Not IsNothing(Row) AndAlso Row.IsSelected Then
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLPart = Map.refProjectVM.BTLStructureVM.SelBTLPart
|
||||
If Map.refMainMenuVM.SelPage = EgtBEAMWALL.Core.ConstGen.Pages.LAYERSWALL Then
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLLayer.SelBTLPart = Map.refProjectVM.BTLStructureVM.SelBTLLayer.SelBTLPart
|
||||
Else
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLPart = Map.refProjectVM.BTLStructureVM.SelBTLPart
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports EgtBEAMWALL.Core
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class BTLPartListVM
|
||||
Inherits VMBase
|
||||
|
||||
Private m_colPart_Do As EgtDataGridColumn
|
||||
Public ReadOnly Property colPart_Do As EgtDataGridColumn
|
||||
@@ -21,6 +23,18 @@ Public Class BTLPartListVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ViewMachiningPage_Visibility As Visibility
|
||||
Get
|
||||
Return If(Map.refMainMenuVM.SelPage = Pages.VIEW Or Map.refMainMenuVM.SelPage = Pages.MACHINING, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LayersWallPage_Visibility As Visibility
|
||||
Get
|
||||
Return If(Map.refMainMenuVM.SelPage = Pages.LAYERSWALL, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property PDN_Msg As String
|
||||
|
||||
@@ -4,6 +4,7 @@ Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class FeatureListVM
|
||||
Inherits VMBase
|
||||
|
||||
Private m_colFeature_Do As EgtDataGridColumn
|
||||
Public ReadOnly Property colFeature_Do As EgtDataGridColumn
|
||||
@@ -22,6 +23,34 @@ Public Class FeatureListVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_LayerFeatureList_Visibility As Boolean = True
|
||||
Public Property LayerFeatureList_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_LayerFeatureList_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_LayerFeatureList_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetLayerFeatureList_Visibility(IsVisible As Boolean)
|
||||
m_LayerFeatureList_Visibility = IsVisible
|
||||
NotifyPropertyChanged(NameOf(LayerFeatureList_Visibility))
|
||||
End Sub
|
||||
|
||||
Private m_PartFeatureList_Visibility As Boolean = True
|
||||
Public Property PartFeatureList_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_PartFeatureList_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_PartFeatureList_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetPartFeatureList_Visibility(IsVisible As Boolean)
|
||||
m_PartFeatureList_Visibility = IsVisible
|
||||
NotifyPropertyChanged(NameOf(PartFeatureList_Visibility))
|
||||
End Sub
|
||||
|
||||
#Region "Messages"
|
||||
|
||||
Public ReadOnly Property Description_Msg As String
|
||||
|
||||
@@ -26,6 +26,17 @@
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.PDN_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartInRawPartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
<DataGridTextColumn.CellStyle>
|
||||
<Style TargetType="{x:Type DataGridCell}">
|
||||
<Setter Property="BorderBrush" Value="{Binding Search_Background}"/>
|
||||
<Setter Property="BorderThickness" Value="2"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Foreground" Value="Blue" />
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGridTextColumn.CellStyle>
|
||||
</DataGridTextColumn>
|
||||
<!--Validità pezzo-->
|
||||
<DataGridTemplateColumn x:Key="colCALC">
|
||||
@@ -143,7 +154,7 @@
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<!--PosX - Posizione-->
|
||||
<DataGridTextColumn x:Key="colPOSX" Binding="{Binding sPOSX, UpdateSourceTrigger=PropertyChanged}" SortMemberPath="dPOSX">
|
||||
<DataGridTextColumn x:Key="colPOSX" Binding="{Binding sPOSX}" SortMemberPath="dPOSX">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.PosX_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartInRawPartListV}}}"/>
|
||||
@@ -156,7 +167,7 @@
|
||||
</DataGridTextColumn.EditingElementStyle>
|
||||
</DataGridTextColumn>
|
||||
<!--PosY - Posizione-->
|
||||
<DataGridTextColumn x:Key="colPOSY" Binding="{Binding sPOSY, UpdateSourceTrigger=PropertyChanged}" SortMemberPath="dPOSY">
|
||||
<DataGridTextColumn x:Key="colPOSY" Binding="{Binding sPOSY}" SortMemberPath="dPOSY">
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.PosY_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartInRawPartListV}}}"/>
|
||||
|
||||
@@ -122,7 +122,7 @@ Public Class PartInRawPartListVM
|
||||
' aggiungo riferimento a map
|
||||
Map.SetRefPartInRawPartListVM(Me)
|
||||
' carico le colonne della datagrid
|
||||
GetPrivateProfileColumns(S_PARTINRAWPARTLIST_BEAM, PartInRawPartColumns)
|
||||
'GetPrivateProfileColumns(S_PARTINRAWPARTLIST_BEAM, PartInRawPartColumns)
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
@@ -26,6 +26,17 @@
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.ID_Msg, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:RawPartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
<DataGridTextColumn.CellStyle>
|
||||
<Style TargetType="{x:Type DataGridCell}">
|
||||
<Setter Property="BorderBrush" Value="{Binding Search_Background}"/>
|
||||
<Setter Property="BorderThickness" Value="2"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Foreground" Value="Blue" />
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGridTextColumn.CellStyle>
|
||||
</DataGridTextColumn>
|
||||
<!--Validità pezzo-->
|
||||
<DataGridTemplateColumn x:Key="colCALC">
|
||||
@@ -88,7 +99,7 @@
|
||||
<DataGridTextColumn x:Key="colW" Binding="{Binding sW}">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.W_Msg,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:RawPartListV}}}"/>
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:RawPartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
<DataGridTextColumn.EditingElementStyle>
|
||||
<Style TargetType="{x:Type TextBox}">
|
||||
|
||||
@@ -97,7 +97,7 @@ Public Class RawPartListVM
|
||||
' Aggiungo riferimento a Map
|
||||
Map.SetRefRawPartListVM(Me)
|
||||
' carico le colonne della datagrid
|
||||
GetPrivateProfileColumns(S_RAWPARTLIST_BEAM, RawPartColumns)
|
||||
'GetPrivateProfileColumns(S_RAWPARTLIST_BEAM, RawPartColumns)
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
<Grid x:Class="LayersWallBottomPanelV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer"
|
||||
Height="350"
|
||||
Visibility="{Binding LayersWallBottomPanel_Visibility}">
|
||||
|
||||
<!--<EgtWPFLib5:EgtScrollViewer Focusable="False">-->
|
||||
<TabControl SelectedIndex="{Binding SelPartFeatureTab}"
|
||||
TabStripPlacement="Right"
|
||||
Margin="5">
|
||||
<TabControl.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type TabItem}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</Style>
|
||||
</TabControl.ItemContainerStyle>
|
||||
<TabItem Header="STRUCTURE">
|
||||
<TabItem.Content>
|
||||
<EgtWPFLib5:EgtScrollViewer Focusable="False">
|
||||
<EgtBEAMWALL:BTLDataV DataContext="{StaticResource BTLDataWndVM}"
|
||||
Tag="{Binding Tag, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5"/>
|
||||
</EgtWPFLib5:EgtScrollViewer>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem Header="LAYER">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<EgtWPFLib5:EgtScrollViewer Focusable="False">
|
||||
<EgtBEAMWALL:PartParametersV DataContext="{StaticResource PartParametersVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5"/>
|
||||
</EgtWPFLib5:EgtScrollViewer>
|
||||
<TextBlock Grid.Row="1"
|
||||
Text="{Binding Tag.SelBTLLayer.sCALC_MSG, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Foreground="{Binding Tag.SelBTLLayer.CALC_ERR_Foreground, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5,0,5,0"
|
||||
Visibility="{Binding Tag.SelBTLLayer.CALC_MSG_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"/>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem Header="PART">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<EgtWPFLib5:EgtScrollViewer Focusable="False">
|
||||
<EgtBEAMWALL:PartParametersV DataContext="{StaticResource PartParametersVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer.SelBTLPart, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5"/>
|
||||
</EgtWPFLib5:EgtScrollViewer>
|
||||
<TextBlock Grid.Row="1"
|
||||
Text="{Binding Tag.SelBTLLayer.SelBTLPart.sCALC_MSG, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Foreground="{Binding Tag.SelBTLLayer.SelBTLPart.CALC_ERR_Foreground, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5,0,5,0"
|
||||
Visibility="{Binding Tag.SelBTLLayer.SelBTLPart.CALC_MSG_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"/>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem Header="FEATURE">
|
||||
<TabItem.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="300"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.Resources>
|
||||
<Style TargetType="TextBlock">
|
||||
<Style.Triggers>
|
||||
<Trigger Property="Text" Value="">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<!--Viste per Feature del Part del Layer-->
|
||||
<EgtBEAMWALL:FeatureManagerV DataContext="{StaticResource FeatureManagerVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer.SelBTLPart.SelBTLFeatureVM, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Visibility="{Binding PartFeature_Visibility}"/>
|
||||
<TabControl Grid.Row="1"
|
||||
TabStripPlacement="Left"
|
||||
Margin="5,5,2.5,5"
|
||||
Visibility="{Binding PartFeature_Visibility}">
|
||||
<TabItem Header="P">
|
||||
<TabItem.Content>
|
||||
<EgtBEAMWALL:PParameterListV DataContext="{StaticResource PParameterListVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer.SelBTLPart.SelBTLFeatureVM, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5"/>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem Header="Q">
|
||||
<TabItem.Content>
|
||||
<EgtBEAMWALL:QParameterListV DataContext="{StaticResource QParameterListVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer.SelBTLPart.SelBTLFeatureVM, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5"/>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
|
||||
<!--Viste per Feature del Layer-->
|
||||
<EgtBEAMWALL:FeatureManagerV DataContext="{StaticResource FeatureManagerVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer.SelBTLFeatureVM, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Visibility="{Binding LayerFeature_Visibility}"/>
|
||||
<TabControl Grid.Row="1"
|
||||
TabStripPlacement="Left"
|
||||
Margin="5,5,2.5,5"
|
||||
Visibility="{Binding LayerFeature_Visibility}">
|
||||
<TabItem Header="P">
|
||||
<TabItem.Content>
|
||||
<EgtBEAMWALL:PParameterListV DataContext="{StaticResource PParameterListVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer.SelBTLFeatureVM, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5"/>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem Header="Q">
|
||||
<TabItem.Content>
|
||||
<EgtBEAMWALL:QParameterListV DataContext="{StaticResource QParameterListVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer.SelBTLFeatureVM, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5"/>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
|
||||
<!--<TabControl Grid.Column="1"
|
||||
Grid.Row="1"
|
||||
TabStripPlacement="Bottom"
|
||||
Margin="2.5,5,5,5">
|
||||
<TabControl.ItemContainerStyle>
|
||||
<Style TargetType="{x:Type TabItem}">
|
||||
<Setter Property="Visibility" Value="Collapsed"/>
|
||||
</Style>
|
||||
</TabControl.ItemContainerStyle>
|
||||
<TabItem Header="Parameter">
|
||||
<TabItem.Content>-->
|
||||
<Image Grid.Column="1"
|
||||
Grid.Row="1"
|
||||
Source="{Binding sCurrDraw}"
|
||||
Margin="5"/>
|
||||
<!--</TabItem.Content>
|
||||
</TabItem>
|
||||
</TabControl>-->
|
||||
<TextBlock Grid.Row="2" Grid.ColumnSpan="2"
|
||||
Text="{Binding Tag.SelBTLLayer.SelBTLPart.SelBTLFeatureVM.sCALC_MSG, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Foreground="{Binding Tag.SelBTLPart.SelBTLFeatureVM.Calc_Background, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5,0,5,0"/>
|
||||
</Grid>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
<TabItem Header="STATISTICS">
|
||||
<TabItem.Content>
|
||||
<EgtBEAMWALL:StatisticsV DataContext="{StaticResource StatisticsVM}"
|
||||
Tag="{Binding Tag, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallBottomPanelV}}}"
|
||||
Margin="5"/>
|
||||
</TabItem.Content>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
<!--</EgtWPFLib5:EgtScrollViewer>-->
|
||||
</Grid>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class LayersWallBottomPanelV
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,79 @@
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class LayersWallBottomPanelVM
|
||||
Inherits VMBase
|
||||
|
||||
Friend Enum PartFeatureTab As Integer
|
||||
STRUCTURE_ = 0
|
||||
LAYER = 1
|
||||
PART = 2
|
||||
FEATURE = 3
|
||||
STATISTICS = 4
|
||||
End Enum
|
||||
|
||||
Private m_SelPartFeatureTab As PartFeatureTab
|
||||
Public Property SelPartFeatureTab As Integer
|
||||
Get
|
||||
Return m_SelPartFeatureTab
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
m_SelPartFeatureTab = value
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetSelPartFeatureTab(SelPartFeatureTab As PartFeatureTab)
|
||||
If m_SelPartFeatureTab = PartFeatureTab.STATISTICS Then
|
||||
Map.refInstrumentPanelVM.SetStatisticsIsChecked(False)
|
||||
End If
|
||||
m_SelPartFeatureTab = SelPartFeatureTab
|
||||
NotifyPropertyChanged(NameOf(SelPartFeatureTab))
|
||||
End Sub
|
||||
|
||||
Private m_sCurrDraw As String
|
||||
Public ReadOnly Property sCurrDraw As String
|
||||
Get
|
||||
Return m_sCurrDraw
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetCurrDraw(sCurrDraw As String)
|
||||
m_sCurrDraw = sCurrDraw
|
||||
NotifyPropertyChanged(NameOf(sCurrDraw))
|
||||
End Sub
|
||||
|
||||
Private m_LayerFeature_Visibility As Boolean = False
|
||||
Public Property LayerFeature_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_LayerFeature_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_LayerFeature_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetLayerFeature_Visibility(IsVisible As Boolean)
|
||||
m_LayerFeature_Visibility = IsVisible
|
||||
NotifyPropertyChanged(NameOf(LayerFeature_Visibility))
|
||||
End Sub
|
||||
|
||||
Private m_PartFeature_Visibility As Boolean = False
|
||||
Public Property PartFeature_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_PartFeature_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_PartFeature_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetPartFeature_Visibility(IsVisible As Boolean)
|
||||
m_PartFeature_Visibility = IsVisible
|
||||
NotifyPropertyChanged(NameOf(PartFeature_Visibility))
|
||||
End Sub
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
' Creo riferimento a questa classe in EgtCAM5Map
|
||||
Map.SetRefLayersWallBottomPanelVM(Me)
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,103 @@
|
||||
<UserControl x:Class="LayersWallFeatureListV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer"
|
||||
xmlns:EgtBEAMWALLCORE="clr-namespace:EgtBEAMWALL.Core;assembly=EgtBEAMWALL.Core">
|
||||
|
||||
<EgtBEAMWALLCORE:EgtDataGrid ItemsSource="{Binding Tag.BTLFeatureVMList,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallFeatureListV}}}"
|
||||
SelectedItem="{Binding Tag.SelBTLFeatureVM,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallFeatureListV}}}"
|
||||
CanUserAddRows="False"
|
||||
AutoGenerateColumns="False"
|
||||
CanUserResizeRows="False"
|
||||
SelectionMode="Single"
|
||||
ScrollViewer.CanContentScroll="True"
|
||||
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Auto"
|
||||
Margin="0,0,0,5"
|
||||
BindingColumns="{Binding FeatureColumns}"
|
||||
Style="{StaticResource DataGrid_CustomHighLight}">
|
||||
<DataGrid.Resources>
|
||||
<!--DO - Abilitazione-->
|
||||
<DataGridCheckBoxColumn x:Key="colDO" Binding="{Binding bDO, UpdateSourceTrigger=PropertyChanged}"
|
||||
MinWidth="28">
|
||||
<DataGridCheckBoxColumn.Header>
|
||||
<CheckBox IsChecked="{Binding Path=Tag.bFeatureDOALL, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallFeatureListV}}}"/>
|
||||
</DataGridCheckBoxColumn.Header>
|
||||
</DataGridCheckBoxColumn>
|
||||
<!--Validità feature-->
|
||||
<DataGridTemplateColumn x:Key="colCALC">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="10"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Border Width="{Binding ActualHeight, RelativeSource={RelativeSource self}}"
|
||||
Background="{Binding Calc_Background}"/>
|
||||
<!--Width="{Binding ActualHeigth, Source=Self}"/>-->
|
||||
<Grid Grid.Column="1"
|
||||
HorizontalAlignment="Center">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Ellipse Width="5"
|
||||
Height="5"
|
||||
Fill="Red"
|
||||
Visibility="{Binding CALC_ROT_Visibility}"
|
||||
HorizontalAlignment="Center"/>
|
||||
<TextBlock Grid.Row="1"
|
||||
Text="{Binding CALC_ERR_Letter}"
|
||||
Foreground="{Binding CALC_ERR_Foreground}"
|
||||
TextAlignment="Center"
|
||||
FontWeight="Bold"
|
||||
FontSize="12"
|
||||
Margin="0,-6,0,-2"/>
|
||||
<!--<Ellipse Width="5"
|
||||
Height="5"
|
||||
Fill="Red"
|
||||
Visibility="{Binding CALC_ROT_Visibility}"/>
|
||||
<TextBlock Text="{Binding CALC_ERR_Letter}"
|
||||
Foreground="{Binding CALC_ERR_Foreground}"
|
||||
FontWeight="Bold"
|
||||
FontSize="10"/>-->
|
||||
<!--<TextBlock Text="➔"
|
||||
Visibility="{Binding CALC_FALL_Visibility}"/>-->
|
||||
</Grid>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
<!--Descrizione-->
|
||||
<DataGridTextColumn x:Key="colDESC" Binding="{Binding sDesc}">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.Description_Msg, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallFeatureListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<!-- Menu' tasto destro -->
|
||||
<ContextMenu x:Key="RowMenu" ItemsSource="{Binding MenuList}" >
|
||||
<ContextMenu.ItemContainerStyle>
|
||||
<Style TargetType="MenuItem">
|
||||
<Setter Property="Command" Value="{Binding MenuItem_Command}"/>
|
||||
<Setter Property="Header" Value="{Binding sMsg}"/>
|
||||
</Style>
|
||||
</ContextMenu.ItemContainerStyle>
|
||||
</ContextMenu>
|
||||
</DataGrid.Resources>
|
||||
<DataGrid.InputBindings>
|
||||
<KeyBinding Key="Delete" Command="{Binding Tag.SelBTLFeatureVM.DeleteFeature_Command,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallFeatureListV}}}" />
|
||||
</DataGrid.InputBindings>
|
||||
<DataGrid.RowStyle>
|
||||
<Style TargetType="DataGridRow" BasedOn="{StaticResource RowDataGrid_CustomHighLight}">
|
||||
<Setter Property="ContextMenu" Value="{StaticResource RowMenu}" />
|
||||
<EventSetter Event="PreviewMouseDown" Handler="LayersWallFeatureList_PreviewMouseDown"/>
|
||||
</Style>
|
||||
</DataGrid.RowStyle>
|
||||
|
||||
</EgtBEAMWALLCORE:EgtDataGrid>
|
||||
|
||||
</UserControl>
|
||||
@@ -0,0 +1,12 @@
|
||||
Public Class LayersWallFeatureListV
|
||||
|
||||
Private Sub LayersWallFeatureList_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs)
|
||||
If TypeOf sender Is DataGridRow Then
|
||||
Dim Row As DataGridRow = DirectCast(sender, DataGridRow)
|
||||
If Not IsNothing(Row) AndAlso Row.IsSelected AndAlso Not IsNothing(Map.refProjectVM.BTLStructureVM.SelBTLPart) Then
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM = Map.refProjectVM.BTLStructureVM.SelBTLPart.SelBTLFeatureVM
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,186 @@
|
||||
<Grid x:Class="LayersWallLeftPanelV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer">
|
||||
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="{Binding GridDims[0].GridLen, Mode=TwoWay}"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="{Binding GridDims[1].GridLen, Mode=TwoWay}"/>
|
||||
</Grid.RowDefinitions>
|
||||
<!--<GroupBox Header="{Binding SearchFilter_Msg}"
|
||||
Margin="3,1,3,3">
|
||||
<Expander>
|
||||
<Expander.Header>
|
||||
<Grid HorizontalAlignment="{Binding HorizontalAlignment, RelativeSource={RelativeSource AncestorType=ContentPresenter}, Mode=OneWayToSource}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*" x:Name="ComboColumn"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="{Binding Section_Msg}"
|
||||
VerticalAlignment="Center"/>
|
||||
<ComboBox ItemsSource="{Binding Tag.SectionList, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
SelectedItem="{Binding Tag.SelSection, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
DisplayMemberPath="sSectionXMaterial"
|
||||
Grid.Column="1"/>
|
||||
</Grid>
|
||||
</Expander.Header>
|
||||
<Grid Margin="1,0,1,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="24"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Text="{Binding Group_Msg}"
|
||||
Grid.ColumnSpan="2"
|
||||
VerticalAlignment="Center"/>
|
||||
<ComboBox ItemsSource="{Binding Tag.GroupList, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
SelectedItem="{Binding Tag.SelGroup, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
Grid.Column="2"
|
||||
Margin="0,2,0,2"/>
|
||||
<TextBlock Text="{Binding SubGroup_Msg}"
|
||||
Grid.Row="1"
|
||||
Grid.ColumnSpan="2"
|
||||
VerticalAlignment="Center"/>
|
||||
<ComboBox ItemsSource="{Binding Tag.SubGroupList, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
SelectedItem="{Binding Tag.SelSubGroup, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
Grid.Column="2"
|
||||
Grid.Row="1"
|
||||
Margin="0,2,0,2"/>
|
||||
<TextBlock Text="{Binding ParType_Msg}"
|
||||
Grid.Row="2"
|
||||
Grid.ColumnSpan="2"
|
||||
VerticalAlignment="Center"/>
|
||||
<ComboBox ItemsSource="{Binding Tag.SearchParamList, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
SelectedItem="{Binding Tag.SelSearchParam, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
Grid.Column="2"
|
||||
Grid.Row="2"
|
||||
Margin="0,2,0,2"/>
|
||||
<TextBlock Text="{Binding ParValue_Msg}"
|
||||
Grid.Row="3"
|
||||
Grid.ColumnSpan="2"
|
||||
VerticalAlignment="Center"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.SearchText, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
Grid.Column="2"
|
||||
Grid.Row="3"
|
||||
Margin="0,2,0,0"/>
|
||||
</Grid>
|
||||
</Expander>
|
||||
</GroupBox>-->
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<EgtBEAMWALL:ElementLayerTreeViewV DataContext="{StaticResource ElementLayerTreeViewVM}"
|
||||
Tag="{Binding Tag, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
Grid.Row="0"
|
||||
MaxHeight="100"/>
|
||||
|
||||
<StackPanel Orientation="Horizontal"
|
||||
Grid.Row="1"
|
||||
HorizontalAlignment="Right">
|
||||
<Button Command="{Binding NewRawPart_Command}"
|
||||
Visibility="{Binding MachiningPage_Visibility}"
|
||||
ToolTip="{Binding NewRawPart_ToolTip}"
|
||||
IsEnabled="{Binding LayersWallLeftPanel_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/NewRawPart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding AddToRawPart_Command}"
|
||||
Visibility="{Binding MachiningPage_Visibility}"
|
||||
ToolTip="{Binding AddToRawPart_ToolTip}"
|
||||
IsEnabled="{Binding LayersWallLeftPanel_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/AddToRawPart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding CopyPart_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding CopyPart_ToolTip}"
|
||||
IsEnabled="{Binding CopyPart_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/CopyPart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding AddPart_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding AddPart_ToolTip}"
|
||||
IsEnabled="{Binding LayersWallLeftPanel_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/AddPart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding RemovePart_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding RemovePart_ToolTip}"
|
||||
IsEnabled="{Binding RemovePart_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/RemovePart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
<EgtBEAMWALL:BTLPartListV DataContext="{StaticResource PartListVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
Grid.Row="2"/>
|
||||
|
||||
</Grid>
|
||||
<GridSplitter Height="3" HorizontalAlignment="Stretch" Grid.Row="2"/>
|
||||
<Grid Grid.Row="3">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Orientation="Horizontal"
|
||||
HorizontalAlignment="Right">
|
||||
<Button Command="{Binding CopyFeature_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding CopyFeature_ToolTip}"
|
||||
IsEnabled="{Binding CopyFeature_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/CopyFeature.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding MacroFeature_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding MacroFeature_ToolTip}"
|
||||
IsEnabled="{Binding MacroFeature_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/MacroFeature.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding AddFeature_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding AddFeature_ToolTip}"
|
||||
IsEnabled="{Binding AddFeature_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/AddFeature.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding RemoveFeature_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding RemoveFeature_ToolTip}"
|
||||
IsEnabled="{Binding RemoveFeature_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/RemoveFeature.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
|
||||
<!--Lista feature per Layer-->
|
||||
<EgtBEAMWALL:LayersWallFeatureListV DataContext="{ StaticResource FeatureListVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
Visibility="{Binding LayerFeatureList_Visibility}"
|
||||
Grid.Row="1"/>
|
||||
|
||||
<!--Lista feature per Part-->
|
||||
<EgtBEAMWALL:FeatureListV DataContext="{ StaticResource FeatureListVM}"
|
||||
Tag="{Binding Tag.SelBTLLayer.SelBTLPart, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallLeftPanelV}}}"
|
||||
Visibility="{Binding PartFeatureList_Visibility}"
|
||||
Grid.Row="1"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class LayersWallLeftPanelV
|
||||
|
||||
End Class
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,104 @@
|
||||
<StackPanel x:Class="LayersWallPartManagerV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer"
|
||||
Orientation="Horizontal"
|
||||
Height="28"
|
||||
IsEnabled="{Binding LayersWallPartManager_IsEnabled}">
|
||||
|
||||
<TextBlock Text="BTL Qty"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<TextBlock Text="{Binding Tag.sCNT,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}},
|
||||
UpdateSourceTrigger=Explicit}"
|
||||
Width="25"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<TextBlock Text="Added Qty"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sADDED,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}},
|
||||
UpdateSourceTrigger=Explicit}"
|
||||
Width="25"/>
|
||||
<TextBlock Text="W"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sW,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}},
|
||||
UpdateSourceTrigger=Explicit}" Width="45"/>
|
||||
<TextBlock Text="H"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sH,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}},
|
||||
UpdateSourceTrigger=Explicit}" Width="45"/>
|
||||
<TextBlock Text="L"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.sL,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}},
|
||||
UpdateSourceTrigger=Explicit}" Width="65"/>
|
||||
<TextBlock Text="Inverti"
|
||||
Style="{StaticResource OptionTextBlock}"
|
||||
Margin="10,0,0,0"/>
|
||||
<Image IsEnabled="{Binding Tag.bLockInversion,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}}}"
|
||||
Height="15"
|
||||
Stretch="Uniform"
|
||||
Visibility="{Binding Lock_Visibility}"
|
||||
Style="{StaticResource LockImage}"/>
|
||||
|
||||
<Button Command="{Binding Tag.Invert_Command,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}}}"
|
||||
Style="{StaticResource ToolBar_SmallButton}"
|
||||
Margin="5,0,0,0">
|
||||
<Image Source="/Resources/PartManager/LeftInvert.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<TextBlock Text="{Binding Tag.sINVERTED,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}}}"
|
||||
TextAlignment="Center"
|
||||
Width="25"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<Button Command="{Binding Tag.Invert_Command,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}}}"
|
||||
Style="{StaticResource ToolBar_SmallButton}"
|
||||
Margin="0,0,5,0">
|
||||
<Image Source="/Resources/PartManager/RightInvert.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<TextBlock Text="Ruota"
|
||||
Style="{StaticResource OptionTextBlock}"
|
||||
Margin="10,0,0,0"/>
|
||||
<Image IsEnabled="{Binding Tag.bLockRotation,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}}}"
|
||||
Height="15"
|
||||
Stretch="Uniform"
|
||||
Visibility="{Binding Lock_Visibility}"
|
||||
Style="{StaticResource LockImage}"/>
|
||||
|
||||
<Button Command="{Binding Tag.BackRotation_Command,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}}}"
|
||||
Style="{StaticResource ToolBar_SmallButton}"
|
||||
Margin="5,0,0,0">
|
||||
<Image Source="/Resources/PartManager/LeftRotate.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<TextBlock Text="{Binding Tag.sROTATED,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}}}"
|
||||
TextAlignment="Center"
|
||||
Width="25"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
<Button Command="{Binding Tag.ForwardRotation_Command,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LayersWallPartManagerV}}}"
|
||||
Style="{StaticResource ToolBar_SmallButton}"
|
||||
Margin="0,0,10,0">
|
||||
<Image Source="/Resources/PartManager/RightRotate.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
|
||||
<!--Comando inutilizzato ma conservato per eventuale rotazione a causa di importazione con rotazione sbagliata-->
|
||||
<!--<Button Command="{Binding Tag.XRotation_Command,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
|
||||
Style="{StaticResource ToolBar_SmallButton}"
|
||||
Margin="0,0,10,0">
|
||||
<Image Source="/Resources/PartManager/RightRotate.png" Stretch="Uniform"/>
|
||||
</Button>-->
|
||||
<TextBlock Text="{Binding Tag.sNAM,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartManagerV}}}"
|
||||
Style="{StaticResource OptionTextBlock}"/>
|
||||
|
||||
</StackPanel>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class LayersWallPartManagerV
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,38 @@
|
||||
Imports EgtBEAMWALL.Core.ConstGen
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class LayersWallPartManagerVM
|
||||
Inherits VMBase
|
||||
|
||||
Private m_LayersWallPartManager_IsEnabled As Boolean = True
|
||||
Public ReadOnly Property LayersWallPartManager_IsEnabled As Boolean
|
||||
Get
|
||||
Return m_LayersWallPartManager_IsEnabled
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_Lock_Visibility As Visibility
|
||||
Public ReadOnly Property Lock_Visibility As Visibility
|
||||
Get
|
||||
'Return Visibility.Collapsed
|
||||
Return If(Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso
|
||||
Map.refProjectVM.BTLStructureVM.nPROJTYPE = Core.ConstBeam.BWType.WALL AndAlso
|
||||
Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NESTING_AUTO), Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Sub New()
|
||||
' salvo riferimento in Map
|
||||
Map.SetRefLayersWallPartManagerVM(Me)
|
||||
End Sub
|
||||
|
||||
Friend Sub SetLayersWallPartManagerIsEnabled(bIsEnabled As Boolean)
|
||||
m_LayersWallPartManager_IsEnabled = bIsEnabled
|
||||
NotifyPropertyChanged(NameOf(LayersWallPartManager_IsEnabled))
|
||||
End Sub
|
||||
|
||||
Friend Sub LockVisibilityUpdate()
|
||||
NotifyPropertyChanged(NameOf(Lock_Visibility))
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,83 @@
|
||||
<EgtFloating:EgtFloatingPanel x:Class="LayersWallProjManagerV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtFloating="clr-namespace:EgtWPFLib5.EgtFloating;assembly=EgtWPFLib5"
|
||||
IsTopDockable="True" IsBottomDockable="False" IsLeftDockable="False"
|
||||
IsRightDockable="False"
|
||||
IsEnabled="{Binding LayersWallProjManager_IsEnabled}"
|
||||
Style="{StaticResource ToolBar_EgtFloatingPanel}">
|
||||
|
||||
<!--Barra superiore dei comandi-->
|
||||
<Button Command="{Binding New_Command}"
|
||||
ToolTip="{Binding NewToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/New.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding OpenCommand}"
|
||||
ToolTip="{Binding OpenToolTip}"
|
||||
ContextMenuService.Placement="Bottom"
|
||||
Tag="{Binding}"
|
||||
IsEnabled="False"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Button.ContextMenu>
|
||||
<ContextMenu ItemsSource="{Binding MruFileNames}">
|
||||
<ContextMenu.Resources>
|
||||
<Style TargetType="{x:Type MenuItem}">
|
||||
<Setter Property="Command"
|
||||
Value="{Binding PlacementTarget.Tag.OpenMruFileCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}" />
|
||||
<Setter Property="CommandParameter" Value="{Binding}" />
|
||||
</Style>
|
||||
</ContextMenu.Resources>
|
||||
</ContextMenu>
|
||||
</Button.ContextMenu>
|
||||
<Image Source="/Resources/ProjectManager/Open.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding SaveCommand}"
|
||||
ToolTip="{Binding SaveToolTip}"
|
||||
IsEnabled="False"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Save.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<!--<Button Command="{Binding SaveAsCommand}"
|
||||
ToolTip="{Binding SaveAsToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/SaveAs.png" Stretch="Uniform"/>
|
||||
</Button>-->
|
||||
<Button Command="{Binding ImportBTL_Command}"
|
||||
ToolTip="{Binding ImportBTL_ToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/ImportBTL.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<!--<Button Command="{Binding OptionsCommand}"
|
||||
ToolTip="{Binding OptionsToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Options.png" Height="22"/>
|
||||
</Button>-->
|
||||
<!--<Button Command="{Binding SendFeedbackCommand}"
|
||||
ToolTip="{Binding SendFeedbackToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/Send.png" Height="22" Margin="3,0,3,0" />
|
||||
</Button>-->
|
||||
<!--<Button Command="{Binding UpdateBTL_Command}"
|
||||
ToolTip="{Binding UpdateBTL_ToolTip}"
|
||||
Visibility="{Binding UpdateBTL_Visibility}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/UpdateBTL.png" Stretch="Uniform"/>
|
||||
</Button>-->
|
||||
<!--<Button Command="{Binding ExportProject_Command}"
|
||||
ToolTip="{Binding ExportProject_ToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/ExportProject.png" Stretch="Uniform"/>
|
||||
</Button>-->
|
||||
<!--<Button Command="{Binding ImportProject_Command}"
|
||||
ToolTip="{Binding ImportProject_ToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/ImportProject.png" Stretch="Uniform"/>
|
||||
</Button>-->
|
||||
<!--<Button Command="{Binding GoToProd_Command}"
|
||||
ToolTip="{Binding GoToProd_ToolTip}"
|
||||
Style="{StaticResource ToolBar_Button}">
|
||||
<Image Source="/Resources/ProjectManager/GoToprod.png" Stretch="Uniform"/>
|
||||
</Button>-->
|
||||
|
||||
</EgtFloating:EgtFloatingPanel>
|
||||
@@ -0,0 +1,3 @@
|
||||
Public Class LayersWallProjManagerV
|
||||
|
||||
End Class
|
||||
File diff suppressed because it is too large
Load Diff
@@ -84,35 +84,35 @@
|
||||
HorizontalAlignment="Right">
|
||||
<Button Command="{Binding NewRawPart_Command}"
|
||||
Visibility="{Binding MachiningPage_Visibility}"
|
||||
ToolTip="{Binding NewRawPart_ToopTip}"
|
||||
ToolTip="{Binding NewRawPart_ToolTip}"
|
||||
IsEnabled="{Binding LeftPanel_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/NewRawPart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding AddToRawPart_Command}"
|
||||
Visibility="{Binding MachiningPage_Visibility}"
|
||||
ToolTip="{Binding AddToRawPart_ToopTip}"
|
||||
ToolTip="{Binding AddToRawPart_ToolTip}"
|
||||
IsEnabled="{Binding LeftPanel_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/AddToRawPart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding CopyPart_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding CopyPart_ToopTip}"
|
||||
ToolTip="{Binding CopyPart_ToolTip}"
|
||||
IsEnabled="{Binding CopyPart_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/CopyPart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding AddPart_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding AddPart_ToopTip}"
|
||||
ToolTip="{Binding AddPart_ToolTip}"
|
||||
IsEnabled="{Binding LeftPanel_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/AddPart.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding RemovePart_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding RemovePart_ToopTip}"
|
||||
ToolTip="{Binding RemovePart_ToolTip}"
|
||||
IsEnabled="{Binding RemovePart_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/RemovePart.png" Stretch="Uniform"/>
|
||||
@@ -132,28 +132,28 @@
|
||||
HorizontalAlignment="Right">
|
||||
<Button Command="{Binding CopyFeature_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding CopyFeature_ToopTip}"
|
||||
ToolTip="{Binding CopyFeature_ToolTip}"
|
||||
IsEnabled="{Binding CopyFeature_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/CopyFeature.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding MacroFeature_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding MacroFeature_ToopTip}"
|
||||
ToolTip="{Binding MacroFeature_ToolTip}"
|
||||
IsEnabled="{Binding MacroFeature_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/MacroFeature.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding AddFeature_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding AddFeature_ToopTip}"
|
||||
ToolTip="{Binding AddFeature_ToolTip}"
|
||||
IsEnabled="{Binding AddFeature_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/AddFeature.png" Stretch="Uniform"/>
|
||||
</Button>
|
||||
<Button Command="{Binding RemoveFeature_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
ToolTip="{Binding RemoveFeature_ToopTip}"
|
||||
ToolTip="{Binding RemoveFeature_ToolTip}"
|
||||
IsEnabled="{Binding RemoveFeature_IsEnabled}"
|
||||
Style="{StaticResource LeftPanel_Button}">
|
||||
<Image Source="/Resources/LeftPanel/RemoveFeature.png" Stretch="Uniform"/>
|
||||
|
||||
@@ -133,55 +133,55 @@ Public Class LeftPanelVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property NewRawPart_Msg As String
|
||||
Public ReadOnly Property NewRawPart_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61903)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property AddToRawPart_ToopTip As String
|
||||
Public ReadOnly Property AddToRawPart_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61904)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property CopyPart_ToopTip As String
|
||||
Public ReadOnly Property CopyPart_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61905)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property AddPart_ToopTip As String
|
||||
Public ReadOnly Property AddPart_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61906)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property RemovePart_ToopTip As String
|
||||
Public ReadOnly Property RemovePart_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61907)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property CopyFeature_ToopTip As String
|
||||
Public ReadOnly Property CopyFeature_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61908)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property MacroFeature_ToopTip As String
|
||||
Public ReadOnly Property MacroFeature_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61909)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property AddFeature_ToopTip As String
|
||||
Public ReadOnly Property AddFeature_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61910)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property RemoveFeature_ToopTip As String
|
||||
Public ReadOnly Property RemoveFeature_ToolTip As String
|
||||
Get
|
||||
Return EgtMsg(61911)
|
||||
End Get
|
||||
@@ -364,7 +364,7 @@ Public Class LeftPanelVM
|
||||
' scrivo dati costruzione grezzo in gruppo di lavorazione
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_BARLEN, dRawL)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_MATERIAL, SelPart.sMATERIAL)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & 1, nPartDuploId & "," & dStartOffset)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & 1, nPartDuploId & "," & DoubleToString(dStartOffset, 3))
|
||||
Dim BeamMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.GetLastMachGroup()
|
||||
' eseguo script creazione grezzo
|
||||
Dim nERR As Integer = 0
|
||||
@@ -403,10 +403,11 @@ Public Class LeftPanelVM
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PANELLEN, dRawL)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PANELWIDTH, dRawW)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_MATERIAL, SelPart.sMATERIAL)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & 1, nPartDuploId & "," & dPosX & "," & dPosY & "," & 0 & "," & 0)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & 1,
|
||||
nPartDuploId & "," & DoubleToString(dPosX, 3) & "," & DoubleToString(dPosY, 3) & ",0,0")
|
||||
Dim WallMachGroup As MyMachGroupVM = Map.refMachGroupPanelVM.MachGroupVMList(Map.refMachGroupPanelVM.MachGroupVMList.Count - 1)
|
||||
' eseguo script creazione grezzo
|
||||
If Not ExecWall(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||
If Not ExecWall(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False, False) Then
|
||||
' elimino duplo e gruppo di lavorazione
|
||||
EgtErase(nPartDuploId)
|
||||
WallMachGroup.DeleteMachGroup()
|
||||
|
||||
@@ -40,11 +40,11 @@ Public Class MyMachGroupVM
|
||||
NotifyPropertyChanged(NameOf(SelPart))
|
||||
End Sub
|
||||
|
||||
Public Property sL As Double
|
||||
Public Property sL As String
|
||||
Get
|
||||
Return LenToString(MyMachGroupM.dL, 3)
|
||||
End Get
|
||||
Set(value As Double)
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
Dim nRawPartId As Integer = EgtGetFirstRawPart()
|
||||
@@ -134,11 +134,11 @@ Public Class MyMachGroupVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property sW As Double
|
||||
Public Property sW As String
|
||||
Get
|
||||
Return LenToString(MyMachGroupM.dW, 3)
|
||||
End Get
|
||||
Set(value As Double)
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
If nType = BWType.WALL Then
|
||||
@@ -205,11 +205,11 @@ Public Class MyMachGroupVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property sH As Double
|
||||
Public Property sH As String
|
||||
Get
|
||||
Return LenToString(MyMachGroupM.dH, 3)
|
||||
End Get
|
||||
Set(value As Double)
|
||||
Set(value As String)
|
||||
Dim dValue As Double
|
||||
If StringToLen(value, dValue) Then
|
||||
MyMachGroupM.dH = value
|
||||
@@ -217,6 +217,27 @@ Public Class MyMachGroupVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_bSearchFound As Boolean
|
||||
Public ReadOnly Property bSearchFound As Boolean
|
||||
Get
|
||||
Return m_bSearchFound
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetSearchFound()
|
||||
m_bSearchFound = True
|
||||
NotifyPropertyChanged(NameOf(Search_Background))
|
||||
End Sub
|
||||
Friend Sub ResetSearchFound()
|
||||
m_bSearchFound = False
|
||||
NotifyPropertyChanged(NameOf(Search_Background))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Search_Background As SolidColorBrush
|
||||
Get
|
||||
Return If(m_bSearchFound, Brushes.Gold, Brushes.Transparent)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' General
|
||||
|
||||
#Region "Beam"
|
||||
@@ -338,20 +359,30 @@ Public Class MyMachGroupVM
|
||||
BeamWallMachGroup.UpdateUsage()
|
||||
Core.ViewPanelVM.BWSetView(VT.ISO_SW, False)
|
||||
Next
|
||||
' se pareti
|
||||
Else
|
||||
Dim sPartArray(m_PartVMList.Count - 1) As String
|
||||
' ciclo per salvare in un array di stringhe i valori di POSX e POSY prima di resettare
|
||||
Dim ind As Integer = 0
|
||||
For Each Part In m_PartVMList
|
||||
sPartArray(ind) = Part.sPOSX & "," & Part.sPOSY & "," & 0 & "," & 0
|
||||
ind += 1
|
||||
Next
|
||||
EgtResetCurrMachGroup()
|
||||
' recupero lista dei pezzi BTL originali
|
||||
Dim CopyPartList As New List(Of CopyPart)
|
||||
Dim PartList As New List(Of BTLPartVM)
|
||||
For Each Part In m_PartVMList
|
||||
PartList.Add(BTLPartVM.RetrieveBTLPartFromPart(Part.nPartId))
|
||||
For Each Part As PartVM In m_PartVMList
|
||||
Dim BTLPartVM As BTLPartVM = BTLPartVM.RetrieveBTLPartFromPart(Part.nPartId)
|
||||
CopyPartList.Add(New CopyPart(BTLPartVM, Part.sPOSX, Part.sPOSY, Part.dROT, Part.nFLIP))
|
||||
PartList.Add(BTLPartVM)
|
||||
Next
|
||||
|
||||
'Dim sPartArray(m_PartVMList.Count - 1) As String
|
||||
'' ciclo per salvare in un array di stringhe i valori di POSX e POSY prima di resettare
|
||||
'Dim ind As Integer = 0
|
||||
'For Each Part In m_PartVMList
|
||||
' sPartArray(ind) = Part.sPOSX & "," & Part.sPOSY & "," & 0 & "," & 0
|
||||
' ind += 1
|
||||
'Next
|
||||
EgtResetCurrMachGroup()
|
||||
'' recupero lista dei pezzi BTL originali
|
||||
'Dim PartList As New List(Of BTLPartVM)
|
||||
'For Each Part In m_PartVMList
|
||||
' PartList.Add(BTLPartVM.RetrieveBTLPartFromPart(Part.nPartId))
|
||||
'Next
|
||||
' verifico che nessun pezzo da copiare abbia raggiunto il numero massimo
|
||||
If Not VerifyPartCount(PartList, Qty) Then Return Nothing
|
||||
' creo nuovi gruppi di lavorazione
|
||||
@@ -367,20 +398,38 @@ Public Class MyMachGroupVM
|
||||
' scrivo dati costruzione grezzo in gruppo di lavorazione
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PANELLEN, dL)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PANELWIDTH, dW)
|
||||
For Index = 0 To m_PartVMList.Count - 1
|
||||
For Index = 0 To CopyPartList.Count - 1
|
||||
Dim CopyPart As CopyPart = CopyPartList(Index)
|
||||
' creo copia del pezzo
|
||||
Dim nPartDuploId As Integer = EgtDuploNew(PartList(Index).nPartId)
|
||||
Dim nPartDuploId As Integer = EgtDuploNew(CopyPart.BTLPart.nPartId)
|
||||
' elimino valori calcolo dell'originale
|
||||
MyMachGroupPanelVM.DuploRemoveProjCalc(nPartDuploId)
|
||||
' lo rendo std
|
||||
EgtSetMode(nPartDuploId, GDB_MD.STD)
|
||||
' annullo eventuale inversione del pezzo originale
|
||||
Dim b3Duplo As New BBox3d
|
||||
EgtGetBBoxGlob(nPartDuploId, GDB_BB.STANDARD, b3Duplo)
|
||||
If CopyPart.BTLPart.nINVERTED > 0 Then
|
||||
EgtRotate(nPartDuploId, b3Duplo.Center(), Vector3d.X_AX, 180, GDB_RT.GLOB)
|
||||
End If
|
||||
' calcolo rotazione
|
||||
Dim dRot As Double = CopyPart.dRot - CopyPart.BTLPart.nROTATED
|
||||
If dRot <> 0 Then
|
||||
EgtRotate(nPartDuploId, b3Duplo.Center(), -Vector3d.Z_AX, dRot, GDB_RT.GLOB)
|
||||
End If
|
||||
' effettuo eventuale flip
|
||||
If CopyPart.nFlip > 0 Then
|
||||
EgtRotate(nPartDuploId, b3Duplo.Center(), Vector3d.X_AX, 180, GDB_RT.GLOB)
|
||||
End If
|
||||
EgtSetInfo(nPartDuploId, MGR_PRT_ROT, CopyPart.dRot)
|
||||
EgtSetInfo(nPartDuploId, MGR_PRT_FLIP, CopyPart.nFlip)
|
||||
' scrivo dati costruzione grezzo in gruppo di lavorazione
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & (Index + 1), nPartDuploId & "," & sPartArray(Index))
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & (Index + 1), nPartDuploId & "," & CopyPart.sPosX & "," & CopyPart.sPosY & ",0,0")
|
||||
Next
|
||||
BeamWallMachGroup = Map.refMachGroupPanelVM.GetLastMachGroup()
|
||||
' eseguo script creazione grezzo
|
||||
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
|
||||
If Not ExecWall(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||
If Not ExecWall(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False, False) Then
|
||||
BeamWallMachGroup.DeleteMachGroup()
|
||||
Dim LogFile As String() = File.ReadAllLines(sLogPath)
|
||||
If LogFile.Count >= 2 AndAlso Not IsNothing(LogFile(1)) Then
|
||||
@@ -792,3 +841,46 @@ Public Class MyMachGroupVM
|
||||
#End Region ' EVENTS
|
||||
|
||||
End Class
|
||||
|
||||
Class CopyPart
|
||||
|
||||
Private m_BTLPart As BTLPartVM
|
||||
Public ReadOnly Property BTLPart As BTLPartVM
|
||||
Get
|
||||
Return m_BTLPart
|
||||
End Get
|
||||
End Property
|
||||
Private m_sPosX As Double
|
||||
Public ReadOnly Property sPosX As Double
|
||||
Get
|
||||
Return m_sPosX
|
||||
End Get
|
||||
End Property
|
||||
Private m_sPosY As Double
|
||||
Public ReadOnly Property sPosY As Double
|
||||
Get
|
||||
Return m_sPosY
|
||||
End Get
|
||||
End Property
|
||||
Private m_dRot As Double
|
||||
Public ReadOnly Property dRot As Double
|
||||
Get
|
||||
Return m_dRot
|
||||
End Get
|
||||
End Property
|
||||
Private m_nFlip As Integer
|
||||
Public ReadOnly Property nFlip As Integer
|
||||
Get
|
||||
Return m_nFlip
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Sub New(BTLPart As BTLPartVM, sPosX As Double, sPosY As Double, dRot As Double, nFlip As Integer)
|
||||
m_BTLPart = BTLPart
|
||||
m_sPosX = sPosX
|
||||
m_sPosY = sPosY
|
||||
m_dRot = dRot
|
||||
m_nFlip = nFlip
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -23,6 +23,27 @@ Public Class PartVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_bSearchFound As Boolean
|
||||
Public ReadOnly Property bSearchFound As Boolean
|
||||
Get
|
||||
Return m_bSearchFound
|
||||
End Get
|
||||
End Property
|
||||
Friend Sub SetSearchFound()
|
||||
m_bSearchFound = True
|
||||
NotifyPropertyChanged(NameOf(Search_Background))
|
||||
End Sub
|
||||
Friend Sub ResetSearchFound()
|
||||
m_bSearchFound = False
|
||||
NotifyPropertyChanged(NameOf(Search_Background))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Search_Background As SolidColorBrush
|
||||
Get
|
||||
Return If(m_bSearchFound, Brushes.Gold, Brushes.Transparent)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' General
|
||||
|
||||
#Region "Beam"
|
||||
|
||||
@@ -12,6 +12,10 @@
|
||||
<RadioButton Content="{Binding Optimizer_Msg}"
|
||||
IsChecked="{Binding Machining_IsChecked}"
|
||||
Style="{StaticResource MainMenu_ToggleButton}"/>
|
||||
<RadioButton Content="{Binding LayersWall_Msg}"
|
||||
IsChecked="{Binding LayersWall_IsChecked}"
|
||||
Style="{StaticResource MainMenu_ToggleButton}"
|
||||
Visibility="{Binding LayersWall_Visibility}"/>
|
||||
<Button Content="{Binding Supervisor_Msg}"
|
||||
Command="{Binding Supervisor_Command}"
|
||||
Visibility="{Binding Supervisor_Visibility}"
|
||||
|
||||
@@ -61,6 +61,21 @@ Public Class MainMenuVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property LayersWall_IsChecked As Boolean
|
||||
Get
|
||||
Return m_SelPage = Pages.LAYERSWALL
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If value Then
|
||||
'If Not IsNothing(Map.refProjManagerVM.CurrProj) AndAlso Not IsNothing(Map.refProdManagerVM.CurrProd) AndAlso
|
||||
' Map.refProjManagerVM.CurrProj.nProdId = Map.refProdManagerVM.CurrProd.nProdId Then
|
||||
' Map.refProdManagerVM.CurrProd.SetReloadProject(False)
|
||||
'End If
|
||||
SelPage = Pages.LAYERSWALL
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property Supervisor_IsChecked As Boolean
|
||||
Get
|
||||
Return m_SelPage = Pages.SUPERVISOR
|
||||
@@ -79,6 +94,13 @@ Public Class MainMenuVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
'Private m_LayersWall_Visibility As Visibility
|
||||
Public ReadOnly Property LayersWall_Visibility As Visibility
|
||||
Get
|
||||
Return Map.refMainWindowVM.MainWindowM.nUserLevel > 5 ' m_LayersWall_Visibility
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_Supervisor_Visibility As Visibility
|
||||
Public ReadOnly Property Supervisor_Visibility As Visibility
|
||||
Get
|
||||
@@ -106,6 +128,8 @@ Public Class MainMenuVM
|
||||
bOk = ExitVIEW(bVerifyModification)
|
||||
Case Pages.MACHINING
|
||||
bOk = ExitMACHINING(bVerifyModification)
|
||||
Case Pages.LAYERSWALL
|
||||
bOk = ExitLAYERSWALL(bVerifyModification)
|
||||
Case Pages.CONFIG
|
||||
bOk = ExitCONFIG()
|
||||
End Select
|
||||
@@ -121,6 +145,10 @@ Public Class MainMenuVM
|
||||
' Map.refMachGroupPanelVM.SetMachGroupState(True)
|
||||
InitMACHINING()
|
||||
'Map.refTopCommandBarVM.IsEnabled = True
|
||||
Case Pages.LAYERSWALL
|
||||
' Map.refMachGroupPanelVM.SetMachGroupState(True)
|
||||
InitLAYERSWALL()
|
||||
'Map.refTopCommandBarVM.IsEnabled = True
|
||||
Case Pages.CONFIG
|
||||
InitCONFIG()
|
||||
'Map.refMachGroupPanelVM.SetMachGroupState(False)
|
||||
@@ -131,6 +159,7 @@ Public Class MainMenuVM
|
||||
' aggiorno visualizzazione RadioButton
|
||||
NotifyPropertyChanged("View_IsChecked")
|
||||
NotifyPropertyChanged("Machining_IsChecked")
|
||||
NotifyPropertyChanged("LayersWall_IsChecked")
|
||||
NotifyPropertyChanged("Supervisor_IsChecked")
|
||||
NotifyPropertyChanged("Config_IsChecked")
|
||||
Map.refProjectVM.NotifyPropertyChanged("SelItem")
|
||||
@@ -150,6 +179,12 @@ Public Class MainMenuVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property LayersWall_Msg As String
|
||||
Get
|
||||
Return "LayersWall" 'EgtMsg(61831)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property Configuration_Msg As String
|
||||
Get
|
||||
Return EgtMsg(61832)
|
||||
@@ -210,14 +245,19 @@ Public Class MainMenuVM
|
||||
Private Function InitVIEW() As Boolean
|
||||
Map.refProjectVM.SetBottomPanel_Visibility(True)
|
||||
Map.refProjectVM.SetLeftPanel_Visibility(True)
|
||||
Map.refProjectVM.SetLayersWallLeftPanel_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallBottomPanel_Visibility(False)
|
||||
Map.refLeftPanelVM.UpdateView()
|
||||
Map.refProjectVM.SetPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallLayerPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallPartPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetFeatureManager_Visibility(True)
|
||||
Map.refProjectVM.SetTopPanel_Visibility(False)
|
||||
Map.refProjectVM.SetShowBeamPanel_Visibility(True)
|
||||
Map.refProjectVM.SetProjManager_Visibility(True)
|
||||
Map.refProjectVM.SetProdManager_Visibility(False)
|
||||
Map.refProjectVM.SetOptimizePanel_Visibility(Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NESTING_AUTO))
|
||||
Map.refProjectVM.SetLayersWallProjManager_Visibility(False)
|
||||
Map.refProjectVM.NotifyAllPanelVisibility()
|
||||
Map.refCALCPanelVM.SetChooseMachineBtn_Visibility(True)
|
||||
If Not IsNothing(Map.refFeatureListVM.colFeature_Do) Then
|
||||
@@ -283,6 +323,7 @@ Public Class MainMenuVM
|
||||
Map.refMainWindowVM.NotifyPropertyChanged(NameOf(Map.refMainWindowVM.nSelTabPage))
|
||||
Map.refMainMenuVM.NotifyPropertyChanged(NameOf(Map.refMainMenuVM.SendFeedbackIsEnabled))
|
||||
Map.refInstrumentPanelVM.NotifyPropertyChanged(NameOf(Map.refInstrumentPanelVM.ChangeParam_Visibility))
|
||||
Map.refInstrumentPanelVM.NotifyPropertyChanged(NameOf(Map.refInstrumentPanelVM.ChangeMaterial_Visibility))
|
||||
Return True
|
||||
End Function
|
||||
|
||||
@@ -297,13 +338,18 @@ Public Class MainMenuVM
|
||||
Map.refInstrumentPanelVM.ResetStatisticsIsChecked()
|
||||
Map.refProjectVM.SetBottomPanel_Visibility(False)
|
||||
Map.refProjectVM.SetLeftPanel_Visibility(True)
|
||||
Map.refProjectVM.SetLayersWallLeftPanel_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallBottomPanel_Visibility(False)
|
||||
Map.refProjectVM.SetPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallLayerPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallPartPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetFeatureManager_Visibility(False)
|
||||
Map.refProjectVM.SetTopPanel_Visibility(True)
|
||||
Map.refProjectVM.SetShowBeamPanel_Visibility(False)
|
||||
Map.refProjectVM.SetProjManager_Visibility(False)
|
||||
Map.refProjectVM.SetProdManager_Visibility(True)
|
||||
Map.refProjectVM.SetOptimizePanel_Visibility(True)
|
||||
Map.refProjectVM.SetLayersWallProjManager_Visibility(False)
|
||||
Map.refCALCPanelVM.SetChooseMachine_Visibility(False)
|
||||
Return True
|
||||
End Function
|
||||
@@ -369,23 +415,32 @@ Public Class MainMenuVM
|
||||
Map.refProjectVM.BTLStructureVM = Nothing
|
||||
Map.refProjectVM.MachGroupPanelVM = Nothing
|
||||
End If
|
||||
' aggiorno lista possibili nesting
|
||||
Map.refOptimizePanelVM.UpdateOriginTypeList(EgtGetFirstNameInGroup(GDB_ID.ROOT, "RawParts") <> GDB_ID.NULL)
|
||||
' aggiorno visibilita' degli elementi grafici
|
||||
Map.refMainWindowVM.NotifyPropertyChanged(NameOf(Map.refMainWindowVM.nSelTabPage))
|
||||
Map.refMainMenuVM.NotifyPropertyChanged(NameOf(Map.refMainMenuVM.SendFeedbackIsEnabled))
|
||||
Map.refInstrumentPanelVM.NotifyPropertyChanged(NameOf(Map.refInstrumentPanelVM.ChangeParam_Visibility))
|
||||
Map.refInstrumentPanelVM.NotifyPropertyChanged(NameOf(Map.refInstrumentPanelVM.ChangeMaterial_Visibility))
|
||||
Map.refTopPanelVM.NotifyPropertyChanged(NameOf(Map.refTopPanelVM.MovePart_Visibility))
|
||||
' aggiorno visibilita' degli elementi grafici
|
||||
Map.refProjectVM.SetBottomPanel_Visibility(False)
|
||||
Map.refProjectVM.SetLeftPanel_Visibility(True)
|
||||
Map.refProjectVM.SetLayersWallLeftPanel_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallBottomPanel_Visibility(False)
|
||||
Map.refLeftPanelVM.UpdateView()
|
||||
Map.refProjectVM.SetPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallLayerPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallPartPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetFeatureManager_Visibility(False)
|
||||
Map.refProjectVM.SetTopPanel_Visibility(True)
|
||||
Map.refProjectVM.SetShowBeamPanel_Visibility(False)
|
||||
Map.refProjectVM.SetProjManager_Visibility(False)
|
||||
Map.refProjectVM.SetProdManager_Visibility(True)
|
||||
Map.refProjectVM.SetLayersWallProjManager_Visibility(False)
|
||||
Map.refProjectVM.NotifyAllPanelVisibility()
|
||||
Map.refCALCPanelVM.SetChooseMachineBtn_Visibility(False)
|
||||
Map.refTopPanelVM.UpdateQParameterVisibility()
|
||||
Map.refTopPanelVM.UpdateMovePartInRawPartVisibility()
|
||||
' aggiorno la visibilità delle colonne
|
||||
For Each col In Map.refFeatureListVM.FeatureColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
@@ -420,18 +475,135 @@ Public Class MainMenuVM
|
||||
Map.refInstrumentPanelVM.ResetStatisticsIsChecked()
|
||||
Map.refProjectVM.SetBottomPanel_Visibility(True)
|
||||
Map.refProjectVM.SetLeftPanel_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallLeftPanel_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallBottomPanel_Visibility(False)
|
||||
Map.refProjectVM.SetPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallLayerPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallPartPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetFeatureManager_Visibility(True)
|
||||
Map.refProjectVM.SetTopPanel_Visibility(False)
|
||||
Map.refProjectVM.SetShowBeamPanel_Visibility(True)
|
||||
Map.refProjectVM.SetProjManager_Visibility(True)
|
||||
Map.refProjectVM.SetProdManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallProjManager_Visibility(False)
|
||||
Map.refProjectVM.SetOptimizePanel_Visibility(Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NESTING_AUTO))
|
||||
Map.refCALCPanelVM.SetChooseMachine_Visibility(False)
|
||||
EgtResetCurrMachGroup()
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function InitLAYERSWALL() As Boolean
|
||||
Map.refProjectVM.SetBottomPanel_Visibility(False)
|
||||
Map.refProjectVM.SetLeftPanel_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallLeftPanel_Visibility(True)
|
||||
Map.refProjectVM.SetLayersWallBottomPanel_Visibility(True)
|
||||
Map.refLeftPanelVM.UpdateView()
|
||||
Map.refProjectVM.SetPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallLayerPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallPartPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetFeatureManager_Visibility(True)
|
||||
Map.refProjectVM.SetTopPanel_Visibility(False)
|
||||
Map.refProjectVM.SetShowBeamPanel_Visibility(True)
|
||||
Map.refProjectVM.SetProjManager_Visibility(False)
|
||||
Map.refProjectVM.SetProdManager_Visibility(False)
|
||||
Map.refProjectVM.SetOptimizePanel_Visibility(Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL AndAlso Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NESTING_AUTO))
|
||||
Map.refProjectVM.SetLayersWallProjManager_Visibility(True)
|
||||
Map.refProjectVM.NotifyAllPanelVisibility()
|
||||
Map.refCALCPanelVM.SetChooseMachineBtn_Visibility(True)
|
||||
If Not IsNothing(Map.refFeatureListVM.colFeature_Do) Then
|
||||
Map.refFeatureListVM.colFeature_Do.ColumnVisibility = Visibility.Visible
|
||||
End If
|
||||
' aggiorno la visibilità delle colonne
|
||||
For Each col In Map.refFeatureListVM.FeatureColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
Next
|
||||
For Each col In Map.refPartListVM.PartColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
Next
|
||||
For Each col In Map.refStatisticsVM.StatisticsColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
Next
|
||||
For Each col In Map.refPParameterListVM.PParameterListColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
Next
|
||||
For Each col In Map.refQParameterListVM.QParameterListColumns
|
||||
col.ColumnVisibility = If(col.Visible, Visibility.Visible, Visibility.Collapsed)
|
||||
Next
|
||||
' imposto dimensioni colonne/righe della Grid
|
||||
DimensionsIniFile.ReadGridDimensions(ConstDims.PROJECT_VIEW, Map.refProjectVM.GridDims)
|
||||
DimensionsIniFile.ReadGridDimensions(ConstDims.LEFTPANEL_VIEW, Map.refLeftPanelVM.GridDims)
|
||||
'' apro progetto proj
|
||||
'If Not IsNothing(Map.refProjManagerVM.CurrProj) Then
|
||||
' If Map.refProjManagerVM.CurrProj.bReloadProject Then
|
||||
' LoadingWndHelper.UpdateLoadingWnd(ActiveIds.GOTOPROJ, 2, EgtMsg(63005), 10, 100) ' Loading parts
|
||||
' Map.refProjManagerVM.OpenProject(Map.refProjManagerVM.CurrProj)
|
||||
' ' aggiorno le colonne in base al tipo progetto
|
||||
' If Not IsNothing(Map.refProjectVM.BTLStructureVM) Then
|
||||
' Map.refRawPartListVM.UpdateColumns(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
|
||||
' Map.refTopPanelVM.ManageQParamsRowVisibility(Map.refProjectVM.BTLStructureVM.nPROJTYPE <> BWType.BEAM)
|
||||
' Map.refPartInRawPartListVM.UpdateColumns(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
|
||||
' Else
|
||||
' Map.refRawPartListVM.UpdateColumns(BWType.BEAM)
|
||||
' Map.refTopPanelVM.ManageQParamsRowVisibility(BWType.BEAM)
|
||||
' Map.refPartInRawPartListVM.UpdateColumns(BWType.BEAM)
|
||||
' End If
|
||||
' DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, True)
|
||||
' Map.refProjManagerVM.NotifyPropertyChanged(NameOf(Map.refProjManagerVM.MruFileNames))
|
||||
' Else
|
||||
' LoadingWndHelper.UpdateLoadingWnd(ActiveIds.GOTOPROJ, 2, EgtMsg(63005), 10, 100) ' Loading parts
|
||||
' ' verifico se il prod di provenienza ha piu' proj
|
||||
' If Not IsNothing(Map.refProdManagerVM.CurrProd) AndAlso Map.refProdManagerVM.CurrProd.nProjIdList.Count > 1 Then
|
||||
' ' se si rigenero BTLStructure
|
||||
' Map.refProjectVM.BTLStructureVM = New BTLStructureVM(BTLStructureM.CreateBTLStructure(Map.refProjManagerVM.CurrProj.nProjId))
|
||||
' ' carico filtri di ricerca
|
||||
' Map.refProjectVM.BTLStructureVM.LoadFilters()
|
||||
' End If
|
||||
' ' mostro tutti i pezzi
|
||||
' Map.refShowBeamPanelVM.ShowAll(True)
|
||||
' Map.refProjManagerVM.CurrProj.SetReloadProject(True)
|
||||
' End If
|
||||
' ' aggiorno titolo
|
||||
' Map.refMainWindowVM.UpdateTitle()
|
||||
' DbControllers.m_ProjController.LockByProjId(Map.refProjManagerVM.CurrProj.nProjId, True)
|
||||
'Else
|
||||
Map.refSceneHostVM.MainController.NewProject()
|
||||
Map.refProjectVM.BTLStructureVM = Nothing
|
||||
Map.refProjectVM.MachGroupPanelVM = Nothing
|
||||
'End If
|
||||
Map.refMainWindowVM.NotifyPropertyChanged(NameOf(Map.refMainWindowVM.nSelTabPage))
|
||||
Map.refMainMenuVM.NotifyPropertyChanged(NameOf(Map.refMainMenuVM.SendFeedbackIsEnabled))
|
||||
Map.refInstrumentPanelVM.NotifyPropertyChanged(NameOf(Map.refInstrumentPanelVM.ChangeParam_Visibility))
|
||||
Map.refInstrumentPanelVM.NotifyPropertyChanged(NameOf(Map.refInstrumentPanelVM.ChangeMaterial_Visibility))
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function ExitLAYERSWALL(bVerifyModification As Boolean) As Boolean
|
||||
' verifico se progetto modificato, e chiedo se salvare
|
||||
If bVerifyModification Then
|
||||
If Not ProjFileVM.VerifyProjectModification(Map.refProjManagerVM.CurrProj, ProjectType.PROJ) Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
' resetto eventuale visualizzazione statistiche
|
||||
Map.refInstrumentPanelVM.ResetStatisticsIsChecked()
|
||||
Map.refProjectVM.SetBottomPanel_Visibility(True)
|
||||
Map.refProjectVM.SetLeftPanel_Visibility(True)
|
||||
Map.refProjectVM.SetLayersWallLeftPanel_Visibility(True)
|
||||
Map.refProjectVM.SetLayersWallBottomPanel_Visibility(True)
|
||||
Map.refProjectVM.SetPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallLayerPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetLayersWallPartPartManager_Visibility(False)
|
||||
Map.refProjectVM.SetFeatureManager_Visibility(False)
|
||||
Map.refProjectVM.SetTopPanel_Visibility(True)
|
||||
Map.refProjectVM.SetShowBeamPanel_Visibility(False)
|
||||
Map.refProjectVM.SetProjManager_Visibility(False)
|
||||
Map.refProjectVM.SetProdManager_Visibility(True)
|
||||
Map.refProjectVM.SetOptimizePanel_Visibility(True)
|
||||
Map.refProjectVM.SetLayersWallProjManager_Visibility(False)
|
||||
Map.refCALCPanelVM.SetChooseMachine_Visibility(False)
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Private Function InitCONFIG() As Boolean
|
||||
Map.refMainWindowVM.NotifyPropertyChanged(NameOf(Map.refMainWindowVM.nSelTabPage))
|
||||
Map.refMainMenuVM.NotifyPropertyChanged(NameOf(Map.refMainMenuVM.SendFeedbackIsEnabled))
|
||||
@@ -448,7 +620,7 @@ Public Class MainMenuVM
|
||||
Map.refPartInRawPartListVM.UpdateColumns(Map.refProjectVM.BTLStructureVM.nPROJTYPE)
|
||||
Else
|
||||
Map.refRawPartListVM.UpdateColumns(BWType.BEAM)
|
||||
Map.refTopPanelVM.ManageQParamsRowVisibility(Map.refProjectVM.BTLStructureVM.nPROJTYPE <> BWType.BEAM)
|
||||
Map.refTopPanelVM.ManageQParamsRowVisibility(BWType.BEAM)
|
||||
Map.refPartInRawPartListVM.UpdateColumns(BWType.BEAM)
|
||||
End If
|
||||
Return True
|
||||
|
||||
@@ -18,6 +18,13 @@ Public Class MainWindowM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sDataDir As String = String.Empty
|
||||
Friend ReadOnly Property sDataDir As String
|
||||
Get
|
||||
Return m_sDataDir
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sConfigDir As String = String.Empty
|
||||
Public ReadOnly Property sConfigDir As String
|
||||
Get
|
||||
@@ -131,24 +138,24 @@ Public Class MainWindowM
|
||||
|
||||
Friend ReadOnly Property sProjsDir As String
|
||||
Get
|
||||
Return m_sDataRoot & "\" & PROJS_DIR
|
||||
Return m_sDataDir & "\" & PROJS_DIR
|
||||
End Get
|
||||
End Property
|
||||
Friend ReadOnly Property sProdsDir As String
|
||||
Get
|
||||
Return m_sDataRoot & "\" & PRODS_DIR
|
||||
Return m_sDataDir & "\" & PRODS_DIR
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property sMacroDir As String
|
||||
Get
|
||||
Return m_sDataRoot & "\" & MACRO_DIR
|
||||
Return m_sDataDir & "\" & MACRO_DIR
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Friend ReadOnly Property sWarehouseDir As String
|
||||
Get
|
||||
Return m_sDataRoot & "\" & WAREHOUSE_DIR
|
||||
Return m_sDataDir & "\" & WAREHOUSE_DIR
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -201,7 +208,10 @@ Public Class MainWindowM
|
||||
If GetMainPrivateProfileString(S_WALL, K_WALLBASEDIR, "", m_sWallRoot) = 0 Then
|
||||
m_sWallRoot = m_sDataRoot & "\" & WALL_DIR
|
||||
End If
|
||||
m_sWarehouseRoot = m_sDataRoot & "\" & WAREHOUSE_DIR
|
||||
If GetMainPrivateProfileString(S_GENERAL, K_DATADIR, "", m_sDataDir) = 0 Then
|
||||
m_sDataDir = m_sDataRoot
|
||||
End If
|
||||
m_sWarehouseRoot = m_sDataDir & "\" & WAREHOUSE_DIR
|
||||
' imposto cartelle dei progetti
|
||||
Core.ProjectFileVM.Init(sProjsDir, sProdsDir)
|
||||
' Verifico indice di istanza
|
||||
|
||||
@@ -41,7 +41,7 @@ Public Class MainWindowVM
|
||||
' proprietà che seleziona la giusta pagina del TabControl
|
||||
Public Property nSelTabPage As Integer
|
||||
Get
|
||||
Return If(IsNothing(Map.refMainMenuVM.SelPage) OrElse Map.refMainMenuVM.SelPage = -1 OrElse Map.refMainMenuVM.SelPage = Pages.VIEW OrElse Map.refMainMenuVM.SelPage = Pages.MACHINING, 0, 1)
|
||||
Return If(IsNothing(Map.refMainMenuVM.SelPage) OrElse Map.refMainMenuVM.SelPage = -1 OrElse Map.refMainMenuVM.SelPage = Pages.VIEW OrElse Map.refMainMenuVM.SelPage = Pages.MACHINING OrElse Map.refMainMenuVM.SelPage = Pages.LAYERSWALL, 0, 1)
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
End Set
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
<EgtWPFLib5:EgtCustomWindow x:Class="MovePartInRawPartWndV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5"
|
||||
xmlns:EgtBEAMWALL="clr-namespace:EgtBEAMWALL.ViewerOptimizer"
|
||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||
WindowStyle="None" ResizeMode="NoResize"
|
||||
SizeToContent="WidthAndHeight"
|
||||
WindowStartupLocation="CenterOwner"
|
||||
IsClosable="False"
|
||||
IsMinimizable="False"
|
||||
IsResizable="False"
|
||||
Title="MovePartInRawPartWndV">
|
||||
<Grid Margin="5,5,5,0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid HorizontalAlignment="Center"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Text="{Binding MoveDirMsg}"
|
||||
Style="{StaticResource OptionTextBlock}"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="0,5"/>
|
||||
|
||||
<RadioButton IsChecked="{Binding LeftIsChecked}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"
|
||||
Grid.Row="1" Grid.Column="0">
|
||||
<Image Source="/Resources/MovePartInRawPart/MoveLeftParts.png" Stretch="Uniform"/>
|
||||
</RadioButton>
|
||||
<RadioButton IsChecked="{Binding RightIsChecked}"
|
||||
Style="{StaticResource ToolBar_ToggleButton}"
|
||||
Grid.Row="1" Grid.Column="1">
|
||||
<Image Source="/Resources/MovePartInRawPart/MoveRightParts.png" Stretch="Uniform"/>
|
||||
</RadioButton>
|
||||
</Grid>
|
||||
|
||||
<Grid Grid.Row="1"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Text="{Binding MoveLenMsg}"
|
||||
Style="{StaticResource OptionTextBlock}"
|
||||
HorizontalAlignment="Center"
|
||||
Margin="0,5"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding sMoveLen}"
|
||||
Grid.Row="1"
|
||||
Width="200"/>
|
||||
</Grid>
|
||||
|
||||
<Grid Grid.Row="3"
|
||||
Margin="0,0,0,5">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Button Content="Ok"
|
||||
Command="{Binding Ok_Command}"
|
||||
IsDefault="True"
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
<Button Content="Cancel"
|
||||
IsCancel="True"
|
||||
Grid.Column="3"
|
||||
Style="{StaticResource EgtWPFLib5_InputButton}"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</EgtWPFLib5:EgtCustomWindow>
|
||||
@@ -0,0 +1,18 @@
|
||||
Public Class MovePartInRawPartWndV
|
||||
|
||||
Private WithEvents m_MovePartInRawPartWndVM As MovePartInRawPartWndVM
|
||||
|
||||
Sub New(Owner As Window, MovePartInRawPartWndVM As MovePartInRawPartWndVM)
|
||||
MyBase.New(Owner)
|
||||
' This call is required by the designer.
|
||||
InitializeComponent()
|
||||
Me.DataContext = MovePartInRawPartWndVM
|
||||
' Assegno al riferimento locale al VM il VM preso dal DataContext
|
||||
m_MovePartInRawPartWndVM = MovePartInRawPartWndVM
|
||||
End Sub
|
||||
|
||||
Private Sub CloseWindow(bDialogResult As Boolean) Handles m_MovePartInRawPartWndVM.m_CloseWindow
|
||||
Me.DialogResult = bDialogResult
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -0,0 +1,159 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtUILib
|
||||
|
||||
Public Class MovePartInRawPartWndVM
|
||||
Inherits VMBase
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
Friend Event m_CloseWindow(bDialogResult As Boolean)
|
||||
|
||||
Private m_dMoveLen As Double
|
||||
Public ReadOnly Property dMoveLen As Double
|
||||
Get
|
||||
Return m_dMoveLen
|
||||
End Get
|
||||
End Property
|
||||
Public Property sMoveLen As String
|
||||
Get
|
||||
Return LenToString(m_dMoveLen, 3)
|
||||
End Get
|
||||
Set(value As String)
|
||||
Dim dTempMoveLen As Double
|
||||
If StringToLen(value, dTempMoveLen) AndAlso dTempMoveLen > 0 Then
|
||||
m_dMoveLen = dTempMoveLen
|
||||
Else
|
||||
m_dMoveLen = 0
|
||||
NotifyPropertyChanged(NameOf(sMoveLen))
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_LeftIsChecked As Boolean
|
||||
Public Property LeftIsChecked As Boolean
|
||||
Get
|
||||
Return m_LeftIsChecked
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If value <> m_LeftIsChecked Then
|
||||
m_LeftIsChecked = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_RightIsChecked As Boolean
|
||||
Public Property RightIsChecked As Boolean
|
||||
Get
|
||||
Return m_RightIsChecked
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
If value <> m_RightIsChecked Then
|
||||
m_RightIsChecked = value
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
' Definizione comandi
|
||||
Private m_cmdOk As ICommand
|
||||
|
||||
#End Region ' FIELDS & PROPERTIES
|
||||
|
||||
#Region "MESSAGES"
|
||||
|
||||
Public ReadOnly Property MoveDirMsg As String
|
||||
Get
|
||||
Return EgtMsg(61945)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property MoveLenMsg As String
|
||||
Get
|
||||
Return EgtMsg(61946)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' MESSAGES
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
Sub New()
|
||||
' setto il bottone Left a premuto
|
||||
LeftIsChecked = True
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
#Region "Ok"
|
||||
|
||||
Public ReadOnly Property Ok_Command As ICommand
|
||||
Get
|
||||
If m_cmdOk Is Nothing Then
|
||||
m_cmdOk = New Command(AddressOf Ok)
|
||||
End If
|
||||
Return m_cmdOk
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Ok()
|
||||
' verifico che il campo dello spostamento abbia un valore valido
|
||||
If Not IsNothing(m_dMoveLen) AndAlso m_dMoveLen > 0 Then
|
||||
' calcolo BBox dell'outline del grezzo
|
||||
Dim b3RawPart As New BBox3d
|
||||
Dim nRawId As Integer = Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.MyMachGroupM.nRawPartId
|
||||
Dim nRawOutlineId As Integer = EgtGetFirstNameInGroup(nRawId, RAWOUTLINE)
|
||||
EgtGetBBoxGlob(nRawOutlineId, GDB_BB.STANDARD, b3RawPart)
|
||||
' calcolo BBox globale dei pezzi aggiunti al grezzo
|
||||
Dim b3Parts As New BBox3d
|
||||
For Each Part In Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.PartVMList
|
||||
Dim b3Part As New BBox3d
|
||||
' leggo outline del pezzo
|
||||
Dim nOutlineLayerId As Integer = EgtGetFirstNameInGroup(Part.nPartId, Core.ConstBeam.OUTLINE)
|
||||
Dim nOutlineId As Integer = EgtGetFirstNameInGroup(nOutlineLayerId, "ON_TMP")
|
||||
' se ON_TMP è stato trovato (il primo trovato equivale al percorso più grande) ricavo BBox di quello altrimenti ricavo BBox del pezzo
|
||||
Dim nId As Integer = 0
|
||||
If nOutlineId <> GDB_ID.NULL Then
|
||||
nId = nOutlineId
|
||||
Else
|
||||
nId = Part.nPartId
|
||||
End If
|
||||
EgtGetBBoxGlob(nId, GDB_BB.STANDARD, b3Part)
|
||||
b3Parts.Add(b3Part)
|
||||
Next
|
||||
' ricavo coordinate minime e massime sull'asse X dei BBox del grezzo e dei pezzi
|
||||
Dim dRawPartMinL As Double = b3RawPart.Min.x
|
||||
Dim dRawPartMaxL As Double = b3RawPart.Max.x
|
||||
Dim dPartsMinL As Double = b3Parts.Min.x
|
||||
Dim dPartsMaxL As Double = b3Parts.Max.x
|
||||
' ricavo il vettore di spostamento
|
||||
Dim vtMove As Vector3d = New Vector3d(If(LeftIsChecked, dMoveLen, -dMoveLen), 0, 0)
|
||||
' verifico che i pezzi venendo mossi non escano dal box
|
||||
If dPartsMinL + vtMove.x > dRawPartMinL And dPartsMaxL + vtMove.x < dRawPartMaxL Then
|
||||
' muovo i pezzi di quanto possibile
|
||||
If vtMove.SqLen() > EPS_SMALL * EPS_SMALL Then
|
||||
' muovo tutti i pezzi della lista
|
||||
For Each Part In Map.refProjectVM.MachGroupPanelVM.SelectedMachGroup.PartVMList
|
||||
EgtMovePartInRawPart(Part.nPartId, vtMove)
|
||||
' aggiorno valori nella tabella
|
||||
Part.NotifyPropertyChanged(NameOf(PartVM.dPOSX))
|
||||
Part.NotifyPropertyChanged(NameOf(PartVM.sPOSX))
|
||||
Part.NotifyPropertyChanged(NameOf(PartVM.dPOSY))
|
||||
Part.NotifyPropertyChanged(NameOf(PartVM.sPOSY))
|
||||
EgtZoom(ZM.ALL)
|
||||
Next
|
||||
End If
|
||||
RaiseEvent m_CloseWindow(True)
|
||||
Else
|
||||
MessageBox.Show(EgtMsg(61947), EgtMsg(30007))
|
||||
End If
|
||||
Else
|
||||
MessageBox.Show(EgtMsg(61948), EgtMsg(30007))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' Ok
|
||||
|
||||
#End Region ' COMMANDS
|
||||
|
||||
End Class
|
||||
@@ -70,5 +70,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.4.3.1")>
|
||||
<Assembly: AssemblyFileVersion("2.4.3.1")>
|
||||
<Assembly: AssemblyVersion("2.4.3.2")>
|
||||
<Assembly: AssemblyFileVersion("2.4.3.2")>
|
||||
|
||||
@@ -309,6 +309,9 @@ Public Class NestingRunningWndVM
|
||||
' calcolo nesting
|
||||
For m_SectionIndex = 0 To m_SectionProgressList.Count - 1
|
||||
Dim SectionProgress As SectionProgress = m_SectionProgressList(m_SectionIndex)
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
|
||||
dOffset = WarehouseHelper.GetWallOffsetByWidth(SectionProgress.Section.dH)
|
||||
End If
|
||||
' passo a lua lista id pezzi da nestare
|
||||
If SectionProgress.SectionPartList.Count > 0 AndAlso SectionProgress.SParamList.Count > 0 AndAlso
|
||||
Not ExecNesting(sLogPath, CurrentMachine.sMachineName, SectionProgress.SectionPartList, SectionProgress.SParamList, dStartOffset, dOffset, dKerf, m_bLDIntersOther, m_nMinScore, SectionProgress.dCalcNestTime) Then
|
||||
@@ -371,14 +374,9 @@ Public Class NestingRunningWndVM
|
||||
nPartPlaceHolderId = EgtGetNext(nPartPlaceHolderId)
|
||||
Continue While
|
||||
End If
|
||||
Dim frPlaceHolderGlob As New Frame3d
|
||||
EgtGetGroupGlobFrame(nPartPlaceHolderId, frPlaceHolderGlob)
|
||||
Dim p3Origin As Point3d = frPlaceHolderGlob.Orig - frRawFrame.Orig + Point3d.ORIG
|
||||
Dim frPart As New Frame3d
|
||||
Dim frPlaceHolder As New Frame3d
|
||||
EgtFrame(nPartPlaceHolderId, nRawPartId, frPlaceHolder)
|
||||
EgtGetGroupGlobFrame(nSourceId, frPart)
|
||||
'frPlaceHolderGlob.ToLoc(frPart)
|
||||
Dim p3Origin As Point3d = New Point3d( frPlaceHolder.Orig.x, frPlaceHolder.Orig.z, 0)
|
||||
' creo duplo del pezzo
|
||||
Dim nPartDuploId As Integer = EgtDuploNew(nSourceId)
|
||||
' elimino valori calcolo dell'originale
|
||||
@@ -413,6 +411,8 @@ Public Class NestingRunningWndVM
|
||||
Dim dFlip As Double = 0
|
||||
Dim dPosX As Double = NestPart.p3Orig.x
|
||||
Dim dPosY As Double = NestPart.p3Orig.y
|
||||
Dim b3Duplo As New BBox3d
|
||||
EgtGetBBoxGlob(NestPart.nPartDuploId, GDB_BB.STANDARD, b3Duplo)
|
||||
' calcolo rot ed invert da frame
|
||||
If Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM Then
|
||||
If AreSameVectorApprox(NestPart.frFrame.VersX, Vector3d.X_AX) Then
|
||||
@@ -427,30 +427,30 @@ Public Class NestingRunningWndVM
|
||||
Continue For
|
||||
End If
|
||||
' faccio rotazioni
|
||||
Dim b3Duplo As New BBox3d
|
||||
EgtGetBBoxGlob(NestPart.nPartDuploId, GDB_BB.STANDARD, b3Duplo)
|
||||
EgtRotate(NestPart.nPartDuploId, b3Duplo.Center, Vector3d.X_AX, dRot)
|
||||
EgtRotate(NestPart.nPartDuploId, b3Duplo.Center, Vector3d.Z_AX, dFlip)
|
||||
ElseIf Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL Then
|
||||
If AreSameVectorApprox(NestPart.frFrame.VersZ, Vector3d.Z_AX) Then
|
||||
dFlip = 0
|
||||
dRot = GetAngle(NestPart.frFrame.VersX, Vector3d.X_AX)
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersZ, -Vector3d.Z_AX) Then
|
||||
If NestPart.frFrame.GetEgtType() = Frame3d.TYPE.TOP Then
|
||||
dFlip = 180
|
||||
dRot = -GetAngle(NestPart.frFrame.VersX, Vector3d.X_AX)
|
||||
dRot = 180
|
||||
dPosX = b3Box.DimX() - b3Duplo.DimX() - dPosX
|
||||
ElseIf AreSameVectorApprox(NestPart.frFrame.VersX, -Vector3d.X_AX) AndAlso AreSameVectorApprox(NestPart.frFrame.VersY, Vector3d.Y_AX) Then
|
||||
dFlip = 180
|
||||
dRot = 0
|
||||
dPosX = b3Box.DimX() - dPosX
|
||||
dPosY -= b3Duplo.DimY()
|
||||
Else
|
||||
' errore, la parete deve stare nel piano del grezzo
|
||||
EgtOutLog(String.Format("Errore in BTL nesting, pezzo {0} non giace nel piano XY ({1})", NestPart.nPartDuploId, NestPart.frFrame.VersZ))
|
||||
Continue For
|
||||
End If
|
||||
' faccio rotazioni
|
||||
Dim b3Duplo As New BBox3d
|
||||
EgtGetBBoxGlob(NestPart.nPartDuploId, GDB_BB.STANDARD, b3Duplo)
|
||||
EgtRotate(NestPart.nPartDuploId, b3Duplo.Center, -Vector3d.Z_AX, dRot)
|
||||
EgtRotate(NestPart.nPartDuploId, b3Duplo.Center, Vector3d.X_AX, dFlip)
|
||||
End If
|
||||
nPartIndex += 1
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & nPartIndex, NestPart.nPartDuploId & "," & dPosX & "," & dPosY & "," & 0 & "," & 0)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & nPartIndex,
|
||||
NestPart.nPartDuploId & "," & DoubleToString(dPosX, 3) & "," & DoubleToString(dPosY,3) & ",0,0")
|
||||
' scrivo dati pezzo
|
||||
EgtSetInfo(NestPart.nPartDuploId, MGR_PRT_POSX, dPosX)
|
||||
EgtSetInfo(NestPart.nPartDuploId, MGR_PRT_POSY, dPosY)
|
||||
@@ -460,7 +460,7 @@ Public Class NestingRunningWndVM
|
||||
' scrivo info per segnalare gruppo nestato e quindi da caricare in grafica
|
||||
EgtSetInfo(nCurrMachGroup, "UPDATEUI", 1)
|
||||
' eseguo script creazione grezzo
|
||||
If Not ExecWall(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False) Then
|
||||
If Not ExecWall(sLogPath, Map.refMachinePanelVM.SelectedMachine.Name, CalcIntegration.CmdTypes.RAWPART, False, True) Then
|
||||
' elimino duplo e gruppo di lavorazione
|
||||
For Each Duplo In PartList
|
||||
EgtErase(Duplo.nPartDuploId)
|
||||
|
||||
@@ -21,13 +21,13 @@ Public Class OpenProjectFileDialogVM
|
||||
' leggo da db
|
||||
If ProjectType = ProjectType.PROJ Then
|
||||
Dim DbProjectList As New List(Of ProjFileM)
|
||||
DbProjectList = DbControllers.m_ProjController.GetLastDesc(50)
|
||||
DbProjectList = DbControllers.m_ProjController.GetLastDesc(5000)
|
||||
For Each Project In DbProjectList
|
||||
m_ProjectList.Add(New ProjFileVM(Project))
|
||||
Next
|
||||
ElseIf ProjectType = ProjectType.PROD Then
|
||||
Dim DbProjectList As New List(Of ProdFileM)
|
||||
DbProjectList = DbControllers.m_ProdController.GetLastDesc(50)
|
||||
DbProjectList = DbControllers.m_ProdController.GetLastDesc(5000)
|
||||
If GoToProd Then
|
||||
For Each Project In DbProjectList
|
||||
If Project.sMachine = Map.refProjManagerVM.CurrProj.sMachine AndAlso
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
Height="22"
|
||||
Width="85"
|
||||
Margin="2.5,0,5,0"
|
||||
Visibility="{Binding Optimize_Visibility}"/>
|
||||
Visibility="{Binding OriginType_Visibility}"/>
|
||||
<CheckBox Content="{Binding LongDrillArea_Msg}"
|
||||
IsChecked="{Binding bLDIntersOther}"
|
||||
FlowDirection="RightToLeft"
|
||||
|
||||
@@ -119,6 +119,12 @@ Public Class OptimizePanelVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property OriginType_Visibility As Visibility
|
||||
Get
|
||||
Return If(Optimize_Visibility = Visibility.Visible AndAlso OriginTypeList.Count > 1, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property ViewPage_Visibility As Visibility
|
||||
Get
|
||||
Return If(Map.refMainMenuVM.SelPage = Pages.VIEW, Visibility.Visible, Visibility.Collapsed)
|
||||
@@ -256,6 +262,20 @@ Public Class OptimizePanelVM
|
||||
m_bNestingRunning = False
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateOriginTypeList(bFromBtl As Boolean)
|
||||
m_OriginTypeList = New List(Of IdNameStruct)
|
||||
If Not IsNothing(Map.refProjectVM.BTLStructureVM) AndAlso
|
||||
(Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.BEAM OrElse (Map.refProjectVM.BTLStructureVM.nPROJTYPE = BWType.WALL And Map.refMainWindowVM.MainWindowM.GetKeyOption(KEY_OPT.NESTING_AUTO))) Then
|
||||
m_OriginTypeList.Add(New IdNameStruct(OriginType.STANDARD, EgtMsg(61964)))
|
||||
End If
|
||||
If bFromBtl Then
|
||||
m_OriginTypeList.Add(New IdNameStruct(OriginType.FROM_BTL, EgtMsg(61965)))
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(OriginTypeList))
|
||||
NotifyPropertyChanged(NameOf(OriginType_Visibility))
|
||||
NotifyPropertyChanged(NameOf(SelOriginType))
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
#Region "COMMANDS"
|
||||
|
||||
@@ -301,6 +301,12 @@ Public Class ProdManagerVM
|
||||
Map.refSceneHostVM.MainController.NewProject()
|
||||
Map.refMainWindowVM.SetTitle("New - EgtBEAMWALL")
|
||||
End If
|
||||
' aggiorno lista possibili nesting
|
||||
Map.refOptimizePanelVM.UpdateOriginTypeList(EgtGetFirstNameInGroup(GDB_ID.ROOT, "RawParts") <> GDB_ID.NULL)
|
||||
' aggiorno visibilità bottone Muovi pezzi
|
||||
Map.refTopPanelVM.UpdateMovePartInRawPartVisibility()
|
||||
' resetto eventuale visualizzazione statistiche
|
||||
Map.refInstrumentPanelVM.ResetStatisticsIsChecked()
|
||||
' aggiorno titolo
|
||||
Map.refMainWindowVM.UpdateTitle()
|
||||
NotifyPropertyChanged(NameOf(MruFileNames))
|
||||
|
||||
@@ -10,6 +10,9 @@ Public Class ProjManagerVM
|
||||
|
||||
#Region "FIELDS & PROPERTIES"
|
||||
|
||||
' Nome file NGE con i pezzi selezionati per effettuare UpdateBTL
|
||||
Friend Const UPDATEBTL_NGE As String = "UpdateBTL.nge"
|
||||
|
||||
Private m_ProjManager_IsEnabled As Boolean = True
|
||||
Public ReadOnly Property ProjManager_IsEnabled As Boolean
|
||||
Get
|
||||
@@ -288,6 +291,22 @@ Public Class ProjManagerVM
|
||||
NotifyPropertyChanged(NameOf(ProjManager_IsEnabled))
|
||||
End Sub
|
||||
|
||||
Private Sub ReloadBTLStructure()
|
||||
Map.refProjectVM.BTLStructureVM = New BTLStructureVM(BTLStructureM.CreateBTLStructure(Map.refProjManagerVM.CurrProj.nProjId))
|
||||
' verifico se volume pezzi calcolato
|
||||
Dim bIsCalculated As Boolean = False
|
||||
For Each BTLPart In Map.refProjectVM.BTLStructureVM.BTLPartVMList
|
||||
If BTLPart.BTLPartM.dVolume > 0 Then Continue For
|
||||
bIsCalculated = True
|
||||
BTLPart.CalcBTLPartVolume()
|
||||
Next
|
||||
If bIsCalculated Then
|
||||
Dim CurrProject As String = ""
|
||||
EgtGetCurrFilePath(CurrProject)
|
||||
EgtSaveFile(CurrProject, NGE.CMPTEXT)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
#Region "COMMANDS"
|
||||
@@ -317,7 +336,7 @@ Public Class ProjManagerVM
|
||||
Dim Machine As Machine = Nothing
|
||||
Dim nType As BWType = BWType.NULL
|
||||
Dim ProjectTypeWndVM As New ProjectTypeWndVM()
|
||||
If ProjectTypeWndVM.MachineList.Count = 1 And DirectCast(ProjectTypeWndVM.SelMachine, MyMachine).nType <> MachineType.BOTH Then
|
||||
If ProjectTypeWndVM.MachineList.Count = 1 AndAlso DirectCast(ProjectTypeWndVM.SelMachine, MyMachine).nType <> MachineType.BOTH Then
|
||||
Machine = ProjectTypeWndVM.SelMachine
|
||||
nType = DirectCast(Machine, MyMachine).nType
|
||||
Else
|
||||
@@ -805,81 +824,402 @@ Public Class ProjManagerVM
|
||||
' creo un nuovo contesto su cui aprire il file BTL
|
||||
Dim nCurrCtx As Integer = EgtGetCurrentContext()
|
||||
Dim nTempCtx As Integer = EgtInitContext()
|
||||
|
||||
' setto il flag per inizializzazione gestore travi e pareti per importare progetto
|
||||
Dim nFlag As Integer
|
||||
Dim sBTLFlag As String
|
||||
If Map.refProjManagerVM.nProjType = Core.ConstBeam.BWType.BEAM Then
|
||||
sBTLFlag = K_BTLFLAG
|
||||
Else
|
||||
sBTLFlag = K_WALLBTLFLAG
|
||||
End If
|
||||
nFlag = GetMainPrivateProfileInt(S_IMPORT, sBTLFlag, EIB_FL.TS3_POS + EIB_FL.SORT + EIB_FL.USEUATTR)
|
||||
|
||||
' inizializzo gestore travi e pareti
|
||||
EgtInitBeamMgr(nFlag)
|
||||
|
||||
Dim bOk As Boolean = nTempCtx <> 0
|
||||
If bOk Then
|
||||
' importo il file BTL
|
||||
bOk = bOk AndAlso EgtImportBtl(sFile)
|
||||
' rimuovo i parametri generali e salvo come file NGE
|
||||
bOk = bOk AndAlso Map.refSceneHostVM.MainController.ImportProject(sFile, False)
|
||||
' carico la lista dei Part importati e rimuovo i parametri generali del BTL
|
||||
Dim AsseBaseId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
Dim BtlInfoId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
|
||||
EgtErase(AsseBaseId)
|
||||
EgtErase(BtlInfoId)
|
||||
EgtSaveFile("C:\EgtData\EgtBEAMWALL\Temp\Prova.nge", NGE.CMPTEXT)
|
||||
' torno sul contesto corrente
|
||||
EgtSetCurrentContext(nCurrCtx)
|
||||
EgtDeleteContext(nTempCtx)
|
||||
' calcolo BBox globale del progetto iniziale
|
||||
Dim b3Parts As New BBox3d
|
||||
Dim nProjPartId As Integer = EgtGetFirstPart()
|
||||
Dim nLastProjPartId As Integer = 0
|
||||
While nProjPartId <> GDB_ID.NULL
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nProjPartId, GDB_BB.ONLY_VISIBLE, b3Part)
|
||||
b3Parts.Add(b3Part)
|
||||
nLastProjPartId = nProjPartId
|
||||
nProjPartId = EgtGetNextPart(nProjPartId)
|
||||
Dim PartToUpdateList As New List(Of BTLPartToUpdate)
|
||||
|
||||
' cerco tra i layer BTLInfo
|
||||
While BtlInfoId <> GDB_ID.NULL
|
||||
' verifico se il layer appartiene al ProjId
|
||||
Dim nBTLInfoLayerProjId As Integer
|
||||
EgtGetInfo(BtlInfoId, BTL_PRT_PROJ, nBTLInfoLayerProjId)
|
||||
' carico la lista con i PDN dei pezzi del BTL importato
|
||||
Dim nPDN As Integer = 0
|
||||
Dim sNAM As String = String.Empty
|
||||
Dim nUID As Integer = 0
|
||||
Dim nPartId As Integer = EgtGetFirstPart()
|
||||
While nPartId <> GDB_ID.NULL
|
||||
Dim UIDList As New List(Of Integer)
|
||||
Dim nIndUID As Integer = 1
|
||||
' se devo filtrare un progetto
|
||||
If nBTLInfoLayerProjId > 0 Then
|
||||
' verifico se il pezzo appartiene al ProjId
|
||||
Dim nPartProjId As Integer
|
||||
EgtGetInfo(nPartId, BTL_PRT_PROJ, nPartProjId)
|
||||
If nPartProjId = nBTLInfoLayerProjId Then
|
||||
EgtGetInfo(nPartId, BTL_PRT_PDN, nPDN)
|
||||
EgtGetInfo(nPartId, BTL_PRT_NAM, sNAM)
|
||||
While EgtGetInfo(nPartId, BTL_PRT_UID & nIndUID, nUID)
|
||||
UIDList.Add(nUID)
|
||||
nIndUID += 1
|
||||
End While
|
||||
PartToUpdateList.Add(New BTLPartToUpdate(nPartId, nPDN, sNAM, UIDList))
|
||||
End If
|
||||
Else
|
||||
' altrimenti carico tutti
|
||||
EgtGetInfo(nPartId, BTL_PRT_PDN, nPDN)
|
||||
EgtGetInfo(nPartId, BTL_PRT_NAM, sNAM)
|
||||
While EgtGetInfo(nPartId, BTL_PRT_UID & nUID, nUID)
|
||||
UIDList.Add(nUID)
|
||||
nIndUID += 1
|
||||
End While
|
||||
PartToUpdateList.Add(New BTLPartToUpdate(nPartId, nPDN, sNAM, UIDList))
|
||||
End If
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
End While
|
||||
EgtErase(BtlInfoId)
|
||||
BtlInfoId = EgtGetNextName(BtlInfoId, BTLINFO)
|
||||
End While
|
||||
' inserisco il file importato nel progetto corrente
|
||||
bOk = bOk AndAlso EgtInsertFile("C:\EgtData\EgtBEAMWALL\Temp\Prova.nge")
|
||||
' deseleziono tutto
|
||||
EgtDeselectAll()
|
||||
' ciclo sui pezzi aggiunti
|
||||
Dim nAddedPartId As Integer = EgtGetNextPart(nLastProjPartId)
|
||||
Dim bFirstLoop As Boolean = True
|
||||
Dim LastPartMaxY As Double
|
||||
While nAddedPartId <> GDB_ID.NULL
|
||||
' recupero layer del box
|
||||
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nAddedPartId, "Box")
|
||||
' recupero box del layer box
|
||||
Dim b3Box As New BBox3d
|
||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||
' eseguo rotazione del pezzo
|
||||
Dim ptRot = b3Box.Min() + New Vector3d(0, b3Box.DimZ() / 2, b3Box.DimZ() / 2)
|
||||
bOk = bOk AndAlso EgtRotate(nAddedPartId, ptRot, -Vector3d.X_AX, -90)
|
||||
' ricaviamo il box globale del part appena aggiunto e ruotato
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nAddedPartId, 1, b3Part)
|
||||
' sposto il pezzo per distanziarlo dall'ultimo di un offset pari a 500
|
||||
bOk = bOk AndAlso EgtMove(nAddedPartId, New Vector3d(0, If(bFirstLoop, b3Parts.DimY(), LastPartMaxY - b3Part.Min.y) + 500, 0))
|
||||
bFirstLoop = False
|
||||
' ricaviamo il box globale del part appena spostato, salviamo la sua Y massima e lo aggiungiamo al box globale di tutti i part
|
||||
EgtGetBBoxGlob(nAddedPartId, 1, b3Part)
|
||||
LastPartMaxY = b3Part.Max.y
|
||||
b3Parts.Add(b3Part)
|
||||
nAddedPartId = EgtGetNextPart(nAddedPartId)
|
||||
End While
|
||||
' aggiungo i part inseriti alla lista
|
||||
Dim nNewPartId As Integer = EgtGetNextPart(nLastProjPartId)
|
||||
While nNewPartId <> GDB_ID.NULL
|
||||
' aggiungo dati pezzo
|
||||
Dim NewPart As BTLPartM = BTLPartM.CreateBTLPart(nNewPartId)
|
||||
' aggiungo pezzo alla lista
|
||||
Map.refProjectVM.BTLStructureVM.BTLStructureM.AddBTLPart(NewPart)
|
||||
Dim AddedBTLPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.BTLPartM Is NewPart) 'Map.refProjectVM.BTLStructureVM.SelBTLPart = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.BTLPartM Is NewPart)
|
||||
' verifico se aggiungere sezione alla lista
|
||||
If Not Map.refProjectVM.BTLStructureVM.SectionList.Contains(AddedBTLPart.Section) Then
|
||||
Map.refProjectVM.BTLStructureVM.SectionList.Add(AddedBTLPart.Section)
|
||||
|
||||
' costruisco un dizionario con gli id dei sottonodi di AsseBase del BTL importato e il valore dell'Info N degli stessi
|
||||
Dim AsseBaseSubNodeDict As New Dictionary(Of Integer, Integer)
|
||||
Dim nAsseBaseSubNodeId As Integer = EgtGetFirstInGroup(AsseBaseId)
|
||||
Dim sAsseBaseUID As String = String.Empty
|
||||
Dim nAsseBaseUID As Integer = 0
|
||||
While nAsseBaseSubNodeId <> GDB_ID.NULL
|
||||
If EgtGetInfo(nAsseBaseSubNodeId, BTL_ASSEBASE_N, sAsseBaseUID) Then
|
||||
sAsseBaseUID = sAsseBaseUID.Remove(0, 4)
|
||||
Integer.TryParse(sAsseBaseUID, nAsseBaseUID)
|
||||
AsseBaseSubNodeDict.Add(nAsseBaseSubNodeId, sAsseBaseUID)
|
||||
End If
|
||||
nNewPartId = EgtGetNextPart(nNewPartId)
|
||||
nAsseBaseSubNodeId = EgtGetNext(nAsseBaseSubNodeId)
|
||||
End While
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_LASTUPDATEDIR, Path.GetDirectoryName(sFile))
|
||||
|
||||
' salvo il file BTL da cui abbiamo rimosso BtlInfo come file NGE
|
||||
EgtSaveFile(Map.refMainWindowVM.MainWindowM.sTempDir & "\" & UPDATEBTL_NGE, NGE.CMPTEXT)
|
||||
|
||||
Dim bAppend As Boolean = False
|
||||
' se UserLevel > 5 e fra i Part importati ce ne sta almeno 1 con PDN uguale ai Part già presenti
|
||||
' apro la finestra per chiedere se si vuole aggiornare o accodare
|
||||
If Map.refMainWindowVM.MainWindowM.nUserLevel > 5 Then
|
||||
For Each PartToUpdate In PartToUpdateList
|
||||
Dim bExitFor As Boolean = False
|
||||
For Each BTLPart In Map.refProjectVM.BTLStructureVM.BTLStructureM.BTLPartMList
|
||||
If PartToUpdate.nPDN = BTLPart.nPDN Then
|
||||
Dim UpdateOrAppendWndVM As New UpdateOrAppendWndVM()
|
||||
Dim UpdateOrAppendWnd As New UpdateOrAppendWndV(Application.Current.MainWindow, UpdateOrAppendWndVM)
|
||||
If Not UpdateOrAppendWnd.ShowDialog() Then
|
||||
' torno sul contesto corrente
|
||||
EgtSetCurrentContext(nCurrCtx)
|
||||
EgtDeleteContext(nTempCtx)
|
||||
' rileggo la struttura BTL
|
||||
ReloadBTLStructure()
|
||||
Return
|
||||
End If
|
||||
' salvo lo stato del bottone per accodare
|
||||
bAppend = UpdateOrAppendWndVM.AppendIsChecked
|
||||
bExitFor = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
If bExitFor Then Exit For
|
||||
Next
|
||||
End If
|
||||
|
||||
' se selezionato Append li accodo tutti
|
||||
If bAppend Then
|
||||
' torno sul contesto corrente
|
||||
EgtSetCurrentContext(nCurrCtx)
|
||||
EgtDeleteContext(nTempCtx)
|
||||
|
||||
' rileggo la struttura BTL del progetto corrente per non avere quella del contesto temporaneo ancora presente
|
||||
ReloadBTLStructure()
|
||||
|
||||
' salvo gli id degli AsseBase presenti nel progetto corrente
|
||||
Dim AsseBaseIdList As New List(Of Integer)
|
||||
AsseBaseId = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
While AsseBaseId <> GDB_ID.NULL
|
||||
AsseBaseIdList.Add(AsseBaseId)
|
||||
AsseBaseId = EgtGetNextName(AsseBaseId, ASSEBASE)
|
||||
End While
|
||||
|
||||
' calcolo BBox globale del progetto iniziale
|
||||
Dim b3Parts As New BBox3d
|
||||
Dim nProjPartId As Integer = EgtGetFirstPart()
|
||||
Dim nLastProjPartId As Integer = 0
|
||||
While nProjPartId <> GDB_ID.NULL
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nProjPartId, GDB_BB.ONLY_VISIBLE, b3Part)
|
||||
b3Parts.Add(b3Part)
|
||||
nLastProjPartId = nProjPartId
|
||||
nProjPartId = EgtGetNextPart(nProjPartId)
|
||||
End While
|
||||
' inserisco il file importato nel progetto corrente
|
||||
bOk = bOk AndAlso EgtInsertFile(Map.refMainWindowVM.MainWindowM.sTempDir & "\" & UPDATEBTL_NGE)
|
||||
' deseleziono tutto
|
||||
EgtDeselectAll()
|
||||
' ciclo sui pezzi aggiunti
|
||||
Dim nAddedPartId As Integer = EgtGetNextPart(nLastProjPartId)
|
||||
Dim bFirstLoop As Boolean = True
|
||||
Dim LastPartMaxY As Double
|
||||
Dim nIncrPDN As Integer = 0
|
||||
While nAddedPartId <> GDB_ID.NULL
|
||||
' incremento il PDN del Part aggiunto rispetto al PDN maggiore attualmente presente
|
||||
EgtSetInfo(nAddedPartId, BTL_PRT_PDN, Map.refProjectVM.BTLStructureVM.BTLStructureM.NewPDN() + nIncrPDN)
|
||||
' recupero layer del box
|
||||
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nAddedPartId, "Box")
|
||||
' recupero box del layer box
|
||||
Dim b3Box As New BBox3d
|
||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||
' ricaviamo il box globale del part appena aggiunto
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nAddedPartId, 1, b3Part)
|
||||
' sposto il pezzo per distanziarlo dall'ultimo di un offset pari a 500
|
||||
bOk = bOk AndAlso EgtMove(nAddedPartId, New Vector3d(0, If(bFirstLoop, b3Parts.DimY(), LastPartMaxY - b3Part.Min.y) + 500, 0))
|
||||
bFirstLoop = False
|
||||
' ricaviamo il box globale del part appena spostato, salviamo la sua Y massima e lo aggiungiamo al box globale di tutti i part
|
||||
EgtGetBBoxGlob(nAddedPartId, 1, b3Part)
|
||||
LastPartMaxY = b3Part.Max.y
|
||||
b3Parts.Add(b3Part)
|
||||
nAddedPartId = EgtGetNextPart(nAddedPartId)
|
||||
nIncrPDN += 1
|
||||
End While
|
||||
' aggiungo i part inseriti alla lista
|
||||
Dim nNewPartId As Integer = EgtGetNextPart(nLastProjPartId)
|
||||
While nNewPartId <> GDB_ID.NULL
|
||||
' aggiungo dati pezzo
|
||||
Dim NewPart As BTLPartM = BTLPartM.CreateBTLPart(nNewPartId)
|
||||
' aggiungo pezzo alla lista
|
||||
Map.refProjectVM.BTLStructureVM.BTLStructureM.AddBTLPart(NewPart)
|
||||
Dim AddedBTLPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.BTLPartM Is NewPart)
|
||||
' verifico se aggiungere sezione alla lista
|
||||
If Not Map.refProjectVM.BTLStructureVM.SectionList.Contains(AddedBTLPart.Section) Then
|
||||
Map.refProjectVM.BTLStructureVM.SectionList.Add(AddedBTLPart.Section)
|
||||
End If
|
||||
nNewPartId = EgtGetNextPart(nNewPartId)
|
||||
End While
|
||||
|
||||
' elimino gli AsseBase del progetto importato
|
||||
AsseBaseId = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
While AsseBaseId <> GDB_ID.NULL
|
||||
Dim CurrAsseBaseId = AsseBaseId
|
||||
AsseBaseId = EgtGetNextName(AsseBaseId, ASSEBASE)
|
||||
If Not AsseBaseIdList.Contains(CurrAsseBaseId) Then EgtErase(CurrAsseBaseId)
|
||||
End While
|
||||
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_LASTUPDATEDIR, Path.GetDirectoryName(sFile))
|
||||
Else
|
||||
' altrimenti apro la finestra con l'elenco dei Part da checkare per l'inserimento nel progetto (unica strada se UserLevel <= 5),
|
||||
' che prevederà la sovrascrittura di quelli già presenti e l'aggiunta di quelli nuovi
|
||||
Dim UpdateBTLWndVM As New UpdateBTLWndVM(PartToUpdateList)
|
||||
Dim UpdateBTLWnd As New UpdateBTLWndV(Application.Current.MainWindow, UpdateBTLWndVM)
|
||||
If Not UpdateBTLWnd.ShowDialog() Then
|
||||
' torno sul contesto corrente
|
||||
EgtSetCurrentContext(nCurrCtx)
|
||||
EgtDeleteContext(nTempCtx)
|
||||
' rileggo la struttura BTL
|
||||
ReloadBTLStructure()
|
||||
Return
|
||||
End If
|
||||
If UpdateBTLWndVM.BTLPartList.Count > 0 Then
|
||||
' sovrascrivo i Part nel progetto aperto con i Part checkati nella lista
|
||||
Dim BTLPartToOverwriteWithList As New ObservableCollection(Of BTLPartToUpdate)
|
||||
' Elimino dal TempCtx i Part non checkati
|
||||
For Each BTLPartToOverwriteWith In UpdateBTLWndVM.BTLPartList
|
||||
If BTLPartToOverwriteWith.bInsert Then
|
||||
BTLPartToOverwriteWithList.Add(BTLPartToOverwriteWith)
|
||||
Else
|
||||
' elimino pezzo copia
|
||||
Dim nCurrPartId = EgtGetCurrPart()
|
||||
EgtErase(BTLPartToOverwriteWith.nPartId)
|
||||
nCurrPartId = EgtGetCurrPart()
|
||||
End If
|
||||
Next
|
||||
|
||||
' costruisco un nuovo dizionario dei sottonodi di AsseBase contenente solo quelli corrispondenti agli UID contenuti
|
||||
' nei soli Part checkati del BTL nella finestra UpdateBTLWnd
|
||||
Dim NewAsseBaseSubNodeDict As New Dictionary(Of Integer, Integer)
|
||||
For Each AsseBaseSubNodeItem In AsseBaseSubNodeDict
|
||||
For Each BTLPartToOverwriteWithItem In BTLPartToOverwriteWithList
|
||||
Dim bExitFor As Boolean = False
|
||||
For Each UIDItem In BTLPartToOverwriteWithItem.UIDList
|
||||
If AsseBaseSubNodeItem.Value = UIDItem Then
|
||||
NewAsseBaseSubNodeDict.Add(AsseBaseSubNodeItem.Key, AsseBaseSubNodeItem.Value)
|
||||
bExitFor = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
If bExitFor Then Exit For
|
||||
Next
|
||||
Next
|
||||
' confronto la lista appena costruita con quella originale ed elimino dal contesto i sottonodi con i valori non più presenti
|
||||
For Each AsseBaseSubNodeItem In AsseBaseSubNodeDict
|
||||
If Not NewAsseBaseSubNodeDict.ContainsValue(AsseBaseSubNodeItem.Value) Then
|
||||
EgtErase(AsseBaseSubNodeItem.Key)
|
||||
End If
|
||||
Next
|
||||
|
||||
' salvo il file NGE inserito a cui abbiamo rimosso i Part non checkati e gli AsseBase non più associati
|
||||
EgtSaveFile(Map.refMainWindowVM.MainWindowM.sTempDir & "\" & UPDATEBTL_NGE, NGE.CMPTEXT)
|
||||
|
||||
' torno sul contesto corrente
|
||||
EgtSetCurrentContext(nCurrCtx)
|
||||
EgtDeleteContext(nTempCtx)
|
||||
|
||||
' rileggo la struttura BTL del progetto corrente per non avere quella del contesto temporaneo ancora presente
|
||||
ReloadBTLStructure()
|
||||
|
||||
' elimino i pezzi da sovrascrivere nel progetto corrente
|
||||
For Each BTLPartToOverwriteWith In UpdateBTLWndVM.BTLPartList
|
||||
If BTLPartToOverwriteWith.bInsert Then
|
||||
Dim BTLPartToUpdate As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPDN = BTLPartToOverwriteWith.nPDN)
|
||||
' se BTLPartToUpdate è Nothing significa che il pezzo è nuovo e quindi basta accodarlo senza eliminare nulla
|
||||
If Not IsNothing(BTLPartToUpdate) Then
|
||||
Dim nPartToDeleteId As Integer = BTLPartToUpdate.nPartId
|
||||
Dim nCurrPartId = EgtGetCurrPart()
|
||||
EgtErase(nPartToDeleteId)
|
||||
nCurrPartId = EgtGetCurrPart()
|
||||
' verifico se rimuovere sezione dalla lista
|
||||
If Not Map.refProjectVM.BTLStructureVM.BTLPartVMList.Any(Function(x) x IsNot BTLPartToUpdate AndAlso x.Section = BTLPartToUpdate.Section) Then
|
||||
Map.refProjectVM.BTLStructureVM.SectionList.Remove(BTLPartToUpdate.Section)
|
||||
End If
|
||||
' rimuovo dalla lista pezzi
|
||||
Dim Index As Integer = Map.refProjectVM.BTLStructureVM.BTLPartVMList.IndexOf(BTLPartToUpdate)
|
||||
Map.refProjectVM.BTLStructureVM.SelBTLPart = Nothing
|
||||
Map.refProjectVM.BTLStructureVM.BTLPartVMList.RemoveAt(Index)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
' salvo gli id degli AsseBase presenti nel progetto corrente
|
||||
Dim AsseBaseIdList As New List(Of Integer)
|
||||
AsseBaseId = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
While AsseBaseId <> GDB_ID.NULL
|
||||
AsseBaseIdList.Add(AsseBaseId)
|
||||
' elimino i sottonodi di AsseBase da sovrascrivere
|
||||
AsseBaseId = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
nAsseBaseSubNodeId = EgtGetFirstInGroup(AsseBaseId)
|
||||
While nAsseBaseSubNodeId <> GDB_ID.NULL
|
||||
If NewAsseBaseSubNodeDict.ContainsKey(nAsseBaseSubNodeId) Then
|
||||
' se sottonodo da cancellare salvo il suo id e ricavo il seguente prima di cancellarlo
|
||||
Dim nCurrAsseBaseSubNodeId = nAsseBaseSubNodeId
|
||||
nAsseBaseSubNodeId = EgtGetNext(nCurrAsseBaseSubNodeId)
|
||||
bOk = EgtErase(nCurrAsseBaseSubNodeId)
|
||||
Else
|
||||
' altrimenti ricavo il seguente e basta
|
||||
nAsseBaseSubNodeId = EgtGetNext(nAsseBaseSubNodeId)
|
||||
End If
|
||||
End While
|
||||
AsseBaseId = EgtGetNextName(AsseBaseId, ASSEBASE)
|
||||
End While
|
||||
|
||||
' calcolo BBox globale del progetto corrente
|
||||
Dim b3Parts As New BBox3d
|
||||
Dim nProjPartId As Integer = EgtGetFirstPart()
|
||||
Dim nLastProjPartId As Integer = 0
|
||||
While nProjPartId <> GDB_ID.NULL
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nProjPartId, GDB_BB.ONLY_VISIBLE, b3Part)
|
||||
b3Parts.Add(b3Part)
|
||||
nLastProjPartId = nProjPartId
|
||||
nProjPartId = EgtGetNextPart(nProjPartId)
|
||||
End While
|
||||
|
||||
' inserisco il file NGE (ricavato dal BTL importato) nel progetto corrente
|
||||
bOk = bOk AndAlso EgtInsertFile(Map.refMainWindowVM.MainWindowM.sTempDir & "\" & UPDATEBTL_NGE)
|
||||
|
||||
' ciclo su tutti gli AsseBase del progetto corrente
|
||||
Dim nAsseBaseId = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
While nAsseBaseId <> GDB_ID.NULL
|
||||
Dim nAsseBaseProjId As Integer
|
||||
Dim nAsseBaseToEraseId As Integer = 0
|
||||
EgtGetInfo(nAsseBaseId, BTL_PRT_PROJ, nAsseBaseProjId)
|
||||
' se AsseBase di questo step del ciclo è nuovo e suo ProjId uguale a quello del progetto corrente
|
||||
If Not AsseBaseIdList.Contains(nAsseBaseId) AndAlso nAsseBaseProjId = Map.refProjManagerVM.CurrProj.nProjId Then
|
||||
' riloco i sottonodi del nuovo AsseBase nell'AsseBase del progetto aperto col medesimo ProjId
|
||||
Dim AsseBaseSubNodeId As Integer = EgtGetFirstInGroup(nAsseBaseId)
|
||||
While AsseBaseSubNodeId <> GDB_ID.NULL
|
||||
' ciclo su tutti gli AsseBase per trovare l'id di quello con ProjId uguale al progetto corrente
|
||||
Dim FindAsseBaseId As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
While FindAsseBaseId <> GDB_ID.NULL
|
||||
Dim SameAsseBaseProjId As Integer
|
||||
EgtGetInfo(FindAsseBaseId, BTL_PRT_PROJ, SameAsseBaseProjId)
|
||||
' se l'ho trovato esco dal While (FindAsseBaseId è l'id dell'AsseBase in cui vogliamo rilocare i sottonodi)
|
||||
If SameAsseBaseProjId = Map.refProjManagerVM.CurrProj.nProjId Then Exit While
|
||||
FindAsseBaseId = EgtGetNextName(FindAsseBaseId, ASSEBASE)
|
||||
End While
|
||||
' salvo id dell'AsseBase corrente per ottenere il seguente prima di rilocarlo
|
||||
Dim CurrAsseBaseSubNodeId = AsseBaseSubNodeId
|
||||
AsseBaseSubNodeId = EgtGetNext(CurrAsseBaseSubNodeId)
|
||||
bOk = bOk AndAlso EgtRelocate(CurrAsseBaseSubNodeId, FindAsseBaseId, GDB_POS.LAST_SON)
|
||||
End While
|
||||
' salvo id dell'AsseBase per cancellarlo
|
||||
nAsseBaseToEraseId = nAsseBaseId
|
||||
End If
|
||||
' ricavo id del prossimo AsseBase
|
||||
nAsseBaseId = EgtGetNextName(nAsseBaseId, ASSEBASE)
|
||||
' se salvato id dell'AsseBase per cancellarlo lo cancello
|
||||
If nAsseBaseToEraseId <> 0 Then bOk = bOk AndAlso EgtErase(nAsseBaseToEraseId)
|
||||
End While
|
||||
|
||||
' deseleziono tutto
|
||||
EgtDeselectAll()
|
||||
' ciclo sui pezzi aggiunti
|
||||
Dim nAddedPartId As Integer = EgtGetNextPart(nLastProjPartId)
|
||||
Dim LastPartMaxY As Double
|
||||
While nAddedPartId <> GDB_ID.NULL
|
||||
' recupero layer del box
|
||||
Dim nBoxLayerId As Integer = EgtGetFirstNameInGroup(nAddedPartId, "Box")
|
||||
' recupero box del layer box
|
||||
Dim b3Box As New BBox3d
|
||||
EgtGetBBoxGlob(nBoxLayerId, GDB_BB.STANDARD, b3Box)
|
||||
' ricaviamo il box globale del part appena aggiunto e ruotato
|
||||
Dim b3Part As New BBox3d
|
||||
EgtGetBBoxGlob(nAddedPartId, 1, b3Part)
|
||||
' salviamo la Y massima del box globale di tutti i part
|
||||
LastPartMaxY = b3Parts.Max.y
|
||||
' sposto il pezzo per distanziarlo dall'ultimo di un offset pari a 500
|
||||
bOk = bOk AndAlso EgtMove(nAddedPartId, New Vector3d(0, LastPartMaxY - b3Part.Min.y + 500, 0))
|
||||
' ricaviamo il box globale del part appena spostato e lo aggiungiamo al box globale di tutti i part
|
||||
EgtGetBBoxGlob(nAddedPartId, 1, b3Part)
|
||||
b3Parts.Add(b3Part)
|
||||
nAddedPartId = EgtGetNextPart(nAddedPartId)
|
||||
End While
|
||||
' aggiungo i part inseriti alla lista
|
||||
Dim nNewPartId As Integer = EgtGetNextPart(nLastProjPartId)
|
||||
While nNewPartId <> GDB_ID.NULL
|
||||
' aggiungo dati pezzo
|
||||
Dim NewPart As BTLPartM = BTLPartM.CreateBTLPart(nNewPartId)
|
||||
' aggiungo pezzo alla lista
|
||||
Map.refProjectVM.BTLStructureVM.BTLStructureM.AddBTLPart(NewPart)
|
||||
Dim AddedBTLPart As BTLPartVM = Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.BTLPartM Is NewPart)
|
||||
' verifico se aggiungere sezione alla lista
|
||||
If Not Map.refProjectVM.BTLStructureVM.SectionList.Contains(AddedBTLPart.Section) Then
|
||||
Map.refProjectVM.BTLStructureVM.SectionList.Add(AddedBTLPart.Section)
|
||||
End If
|
||||
nNewPartId = EgtGetNextPart(nNewPartId)
|
||||
End While
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_LASTUPDATEDIR, Path.GetDirectoryName(sFile))
|
||||
End If
|
||||
End If
|
||||
' copio il file originale scelto nel dialog per l'Update nella cartella Proj del progetto corrente
|
||||
If File.Exists(sFile) Then
|
||||
Dim sDestPath As String = Map.refProjManagerVM.CurrProj.sProjDirPath & "\" & Path.GetFileNameWithoutExtension(sFile)
|
||||
While File.Exists(sDestPath & ".btl")
|
||||
sDestPath = sDestPath & "_1"
|
||||
End While
|
||||
File.Copy(sFile, sDestPath & ".btl", False)
|
||||
End If
|
||||
End If
|
||||
'If bOk Then
|
||||
' ' riporto aggiunta proj a prod su Db
|
||||
' DbControllers.m_ProdController.AddProj(OpenProjectFileDialogVM.SelProject.nProdId, Map.refProjManagerVM.CurrProj.nProjId)
|
||||
' ' imposto currprod
|
||||
' Map.refProdManagerVM.SetCurrProd(OpenProjectFileDialogVM.SelProject.nProdId)
|
||||
'End If
|
||||
EgtZoom(ZM.ALL)
|
||||
End Sub
|
||||
|
||||
@@ -1186,7 +1526,7 @@ Public Class ProjManagerVM
|
||||
EgtSetInfo(nDuploId, BTL_PRT_PROJ, NewProjIdList(nOldProjIndex))
|
||||
nDuploId = EgtGetNext(nDuploId)
|
||||
End While
|
||||
' resetto CurrProd per evitare di leggero valori produzione dal Db di quel progetto
|
||||
' resetto CurrProd per evitare di leggere valori produzione dal Db di quel progetto
|
||||
Map.refProdManagerVM.CurrProd = Nothing
|
||||
' carico Machgroup che non verrebbero altrimenti importati
|
||||
Map.refProjectVM.MachGroupPanelVM = New MyMachGroupPanelVM(MyMachGroupPanelM.CreateMyMachGroupPanel(Map.refMachinePanelVM.MachineList.ToList()))
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
Visibility="{Binding DataContext.ProdManager_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
||||
<EgtBEAMWALL:OptimizePanelV DataContext="{StaticResource OptimizePanelVM}"
|
||||
Visibility="{Binding DataContext.OptimizePanel_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
||||
<EgtBEAMWALL:LayersWallProjManagerV DataContext="{StaticResource LayersWallProjManagerVM}"
|
||||
Visibility="{Binding DataContext.LayersWallProjManager_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
||||
</EgtFloating:EgtFloatingTray>
|
||||
|
||||
<EgtBEAMWALL:FreeContourInputV DockPanel.Dock="Right"
|
||||
@@ -34,6 +36,11 @@
|
||||
DataContext="{StaticResource LeftPanelVM}"
|
||||
Tag="{Binding DataContext.BTLStructureVM, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"
|
||||
Visibility="{Binding DataContext.LeftPanel_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
||||
<EgtBEAMWALL:LayersWallLeftPanelV Grid.Column="0"
|
||||
Grid.RowSpan="4"
|
||||
DataContext="{StaticResource LayersWallLeftPanelVM}"
|
||||
Tag="{Binding DataContext.BTLStructureVM, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"
|
||||
Visibility="{Binding DataContext.LayersWallLeftPanel_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
||||
<GridSplitter Grid.Column="1"
|
||||
Grid.RowSpan="4"
|
||||
Width="3"
|
||||
@@ -79,6 +86,18 @@
|
||||
DataContext="{StaticResource PartManagerVM}"
|
||||
Tag="{Binding DataContext.BTLStructureVM.SelBTLPart, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"
|
||||
Visibility="{Binding DataContext.PartManager_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
||||
|
||||
<!--PartManager per Layer nella pagina LayersWall-->
|
||||
<EgtBEAMWALL:LayersWallPartManagerV Grid.Row="0"
|
||||
DataContext="{StaticResource PartManagerVM}"
|
||||
Tag="{Binding DataContext.BTLStructureVM.SelBTLLayer, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"
|
||||
Visibility="{Binding DataContext.LayersWallLayerPartManager_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
||||
|
||||
<!--PartManager per Part nel Layer nella pagina LayersWall-->
|
||||
<EgtBEAMWALL:LayersWallPartManagerV Grid.Row="0"
|
||||
DataContext="{StaticResource PartManagerVM}"
|
||||
Tag="{Binding DataContext.BTLStructureVM.SelBTLLayer.SelBTLPart, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"
|
||||
Visibility="{Binding DataContext.LayersWallPartPartManager_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"/>
|
||||
<Grid Grid.Column="2" Grid.Row="1">
|
||||
<EgtBEAMWALL:TopPanelV
|
||||
DataContext="{StaticResource TopPanelVM}"
|
||||
@@ -90,6 +109,11 @@
|
||||
Tag="{Binding DataContext.BTLStructureVM, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"
|
||||
Visibility="{Binding DataContext.BottomPanel_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"
|
||||
Height="Auto"/>
|
||||
<EgtBEAMWALL:LayersWallBottomPanelV
|
||||
DataContext="{StaticResource LayersWallBottomPanelVM}"
|
||||
Tag="{Binding DataContext.BTLStructureVM, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"
|
||||
Visibility="{Binding DataContext.LayersWallBottomPanel_Visibility, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:ProjectV}}}"
|
||||
Height="Auto"/>
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
@@ -65,6 +65,19 @@ Public Class ProjectVM
|
||||
m_LeftPanel_Visibility = IsVisible
|
||||
End Sub
|
||||
|
||||
Private m_LayersWallLeftPanel_Visibility As Boolean = False
|
||||
Public Property LayersWallLeftPanel_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_LayersWallLeftPanel_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_LayersWallLeftPanel_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetLayersWallLeftPanel_Visibility(IsVisible As Boolean)
|
||||
m_LayersWallLeftPanel_Visibility = IsVisible
|
||||
End Sub
|
||||
|
||||
Private m_TopPanel_Visibility As Boolean = False
|
||||
Public Property TopPanel_Visibility As Visibility
|
||||
Get
|
||||
@@ -91,6 +104,19 @@ Public Class ProjectVM
|
||||
m_BottomPanel_Visibility = IsVisible
|
||||
End Sub
|
||||
|
||||
Private m_LayersWallBottomPanel_Visibility As Boolean = False
|
||||
Public Property LayersWallBottomPanel_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_LayersWallBottomPanel_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_LayersWallBottomPanel_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetLayersWallBottomPanel_Visibility(IsVisible As Boolean)
|
||||
m_LayersWallBottomPanel_Visibility = IsVisible
|
||||
End Sub
|
||||
|
||||
Private m_PartManager_Visibility As Boolean = True
|
||||
Public Property PartManager_Visibility As Visibility
|
||||
Get
|
||||
@@ -104,6 +130,34 @@ Public Class ProjectVM
|
||||
m_PartManager_Visibility = IsVisible
|
||||
End Sub
|
||||
|
||||
Private m_LayersWallLayerPartManager_Visibility As Boolean = True
|
||||
Public Property LayersWallLayerPartManager_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_LayersWallLayerPartManager_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_LayersWallLayerPartManager_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetLayersWallLayerPartManager_Visibility(IsVisible As Boolean)
|
||||
m_LayersWallLayerPartManager_Visibility = IsVisible
|
||||
NotifyPropertyChanged(NameOf(LayersWallLayerPartManager_Visibility))
|
||||
End Sub
|
||||
|
||||
Private m_LayersWallPartPartManager_Visibility As Boolean = True
|
||||
Public Property LayersWallPartPartManager_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_LayersWallPartPartManager_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_LayersWallPartPartManager_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetLayersWallPartPartManager_Visibility(IsVisible As Boolean)
|
||||
m_LayersWallPartPartManager_Visibility = IsVisible
|
||||
NotifyPropertyChanged(NameOf(LayersWallPartPartManager_Visibility))
|
||||
End Sub
|
||||
|
||||
Private m_FeatureManager_Visibility As Boolean = True
|
||||
Public Property FeatureManager_Visibility As Visibility
|
||||
Get
|
||||
@@ -170,11 +224,25 @@ Public Class ProjectVM
|
||||
NotifyPropertyChanged(NameOf(OptimizePanel_Visibility))
|
||||
Map.refOptimizePanelVM.NotifyPropertyChanged(NameOf(Map.refOptimizePanelVM.CalcRotFlip_Visibility))
|
||||
Map.refOptimizePanelVM.NotifyPropertyChanged(NameOf(Map.refOptimizePanelVM.Optimize_Visibility))
|
||||
Map.refOptimizePanelVM.NotifyPropertyChanged(NameOf(Map.refOptimizePanelVM.OriginType_Visibility))
|
||||
Map.refOptimizePanelVM.NotifyPropertyChanged(NameOf(Map.refOptimizePanelVM.ViewPage_Visibility))
|
||||
Map.refOptimizePanelVM.NotifyPropertyChanged(NameOf(Map.refOptimizePanelVM.MachiningPage_Visibility))
|
||||
Map.refOptimizePanelVM.NotifyPropertyChanged(NameOf(Map.refOptimizePanelVM.NestingOption_Visibility))
|
||||
End Sub
|
||||
|
||||
Private m_LayersWallProjManager_Visibility As Boolean = True
|
||||
Public Property LayersWallProjManager_Visibility As Visibility
|
||||
Get
|
||||
Return If(m_LayersWallProjManager_Visibility, Visibility.Visible, Visibility.Collapsed)
|
||||
End Get
|
||||
Set(value As Visibility)
|
||||
m_LayersWallProjManager_Visibility = (value = Visibility.Visible)
|
||||
End Set
|
||||
End Property
|
||||
Friend Sub SetLayersWallProjManager_Visibility(IsVisible As Boolean)
|
||||
m_LayersWallProjManager_Visibility = IsVisible
|
||||
End Sub
|
||||
|
||||
Friend Sub NotifyCalcPanel_Visibility()
|
||||
Map.refCALCPanelVM.NotifyPropertyChanged(NameOf(Map.refCALCPanelVM.ViewPage_Visibility))
|
||||
End Sub
|
||||
@@ -195,13 +263,17 @@ Public Class ProjectVM
|
||||
|
||||
Friend Sub NotifyAllPanelVisibility()
|
||||
NotifyPropertyChanged("LeftPanel_Visibility")
|
||||
NotifyPropertyChanged("LayersWallLeftPanel_Visibility")
|
||||
NotifyPropertyChanged("TopPanel_Visibility")
|
||||
NotifyPropertyChanged("BottomPanel_Visibility")
|
||||
NotifyPropertyChanged("LayersWallBottomPanel_Visibility")
|
||||
NotifyPropertyChanged("PartManager_Visibility")
|
||||
NotifyPropertyChanged("LayersWallPartManager_Visibility")
|
||||
NotifyPropertyChanged("FeatureManager_Visibility")
|
||||
NotifyPropertyChanged("ShowBeamPanel_Visibility")
|
||||
NotifyPropertyChanged("ProjManager_Visibility")
|
||||
NotifyPropertyChanged("ProdManager_Visibility")
|
||||
NotifyPropertyChanged("LayersWallProjManager_Visibility")
|
||||
NotifyCalcPanel_Visibility()
|
||||
End Sub
|
||||
|
||||
@@ -233,7 +305,9 @@ Public Class ProjectVM
|
||||
Map.refCALCPanelVM.SetCalcPanelIsEnabled(bIsEnabled)
|
||||
Map.refMainMenuVM.SetMainMenuIsEnabled(bIsEnabled)
|
||||
Map.refPartManagerVM.SetPartManagerIsEnabled(bIsEnabled)
|
||||
Map.refLayersWallPartManagerVM.SetLayersWallPartManagerIsEnabled(bIsEnabled)
|
||||
Map.refLeftPanelVM.SetLeftPanelIsEnabled(bIsEnabled)
|
||||
Map.refLayersWallLeftPanelVM.SetLayersWallLeftPanelIsEnabled(bIsEnabled)
|
||||
Map.refProjManagerVM.SetProjManagerIsEnabled(bIsEnabled)
|
||||
Map.refProdManagerVM.SetProdManagerIsEnabled(bIsEnabled)
|
||||
Map.refTopPanelVM.SetTopPanelIsEnabled(bIsEnabled)
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 449 B |
Binary file not shown.
|
After Width: | Height: | Size: 427 B |
Binary file not shown.
|
After Width: | Height: | Size: 379 B |
@@ -664,41 +664,80 @@ Public Class MySceneHostVM
|
||||
Private Sub OnImportedProject(ByVal sender As Object, ByVal sFile As String, ByVal bOk As Boolean)
|
||||
WriteMainPrivateProfileString(S_GENERAL, K_LASTIMPDIR, Path.GetDirectoryName(sFile))
|
||||
Dim bFirstPart As Boolean = EgtGetFirstPart() <> GDB_ID.NULL
|
||||
If bOk OrElse bFirstPart Then
|
||||
LoadingWndHelper.UpdateLoadingWnd(ActiveIds.IMPORTBTL, 2, EgtMsg(63005), 50, 70) ' Loading parts
|
||||
' leggo struttura BTL
|
||||
Map.refProjectVM.BTLStructureVM = New BTLStructureVM(BTLStructureM.CreateBTLStructure(0))
|
||||
Dim nPartId As Integer = EgtGetFirstPart()
|
||||
While nPartId <> GDB_ID.NULL
|
||||
' scrivo in ogni pezzo ProjId
|
||||
EgtSetInfo(nPartId, BTL_PRT_PROJ, Map.refProjManagerVM.nLoadingProjId)
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
' scrivo Id negli outline
|
||||
Dim nPRId As Integer = 1
|
||||
Dim nOutlineLayer As Integer = EgtGetFirstNameInGroup(nPartId, OUTLINE)
|
||||
If nOutlineLayer <> GDB_ID.NULL Then
|
||||
Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayer)
|
||||
While nOutlineId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
If EgtExistsInfo(nOutlineId, MGR_FTR_PRC) Then
|
||||
EgtSetInfo(nOutlineId, MGR_FTR_PRID, nPRId)
|
||||
nPRId += 1
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
End If
|
||||
End While
|
||||
' scrivo info proj e type su layer BtlInfo
|
||||
Dim nBTLInfoLayer As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
|
||||
EgtSetInfo(nBTLInfoLayer, BTL_PRT_PROJ, Map.refProjManagerVM.nLoadingProjId)
|
||||
EgtSetInfo(nBTLInfoLayer, BTL_GEN_PROJTYPE, Map.refProjManagerVM.CurrProj.nType)
|
||||
' scrivo info proj su layer AsseBase
|
||||
Dim nAsseBaseLayer As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
EgtSetInfo(nAsseBaseLayer, BTL_PRT_PROJ, Map.refProjManagerVM.nLoadingProjId)
|
||||
If Map.refMainMenuVM.SelPage = Pages.LAYERSWALL Then
|
||||
If bOk OrElse bFirstPart Then
|
||||
LoadingWndHelper.UpdateLoadingWnd(ActiveIds.IMPORTBTL, 2, EgtMsg(63005), 50, 70) ' Loading parts
|
||||
' leggo struttura BTL
|
||||
Map.refProjectVM.BTLStructureVM = New BTLStructureVM(BTLStructureM.CreateBTLStructure(0))
|
||||
Dim nPartId As Integer = EgtGetFirstPart()
|
||||
While nPartId <> GDB_ID.NULL
|
||||
' scrivo in ogni pezzo ProjId
|
||||
EgtSetInfo(nPartId, BTL_PRT_PROJ, Map.refLayersWallProjManagerVM.nLoadingProjId)
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
' scrivo Id negli outline
|
||||
Dim nPRId As Integer = 1
|
||||
Dim nOutlineLayer As Integer = EgtGetFirstNameInGroup(nPartId, OUTLINE)
|
||||
If nOutlineLayer <> GDB_ID.NULL Then
|
||||
Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayer)
|
||||
While nOutlineId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
If EgtExistsInfo(nOutlineId, MGR_FTR_PRC) Then
|
||||
EgtSetInfo(nOutlineId, MGR_FTR_PRID, nPRId)
|
||||
nPRId += 1
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
End If
|
||||
End While
|
||||
' scrivo info proj e type su layer BtlInfo
|
||||
Dim nBTLInfoLayer As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
|
||||
EgtSetInfo(nBTLInfoLayer, BTL_PRT_PROJ, Map.refLayersWallProjManagerVM.nLoadingProjId)
|
||||
EgtSetInfo(nBTLInfoLayer, BTL_GEN_PROJTYPE, Map.refLayersWallProjManagerVM.CurrProj.nType)
|
||||
' scrivo info proj su layer AsseBase
|
||||
Dim nAsseBaseLayer As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
EgtSetInfo(nAsseBaseLayer, BTL_PRT_PROJ, Map.refLayersWallProjManagerVM.nLoadingProjId)
|
||||
Else
|
||||
Dim sMsg As String = EgtMsg(10006) & " '" & sFile & "'" 'Error importing file
|
||||
MessageBox.Show(Application.Current.MainWindow, sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
|
||||
Map.refLayersWallProjManagerVM.NewProject()
|
||||
End If
|
||||
Else
|
||||
Dim sMsg As String = EgtMsg(10006) & " '" & sFile & "'" 'Error importing file
|
||||
MessageBox.Show(Application.Current.MainWindow, sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
|
||||
Map.refProjManagerVM.NewProject()
|
||||
If bOk OrElse bFirstPart Then
|
||||
LoadingWndHelper.UpdateLoadingWnd(ActiveIds.IMPORTBTL, 2, EgtMsg(63005), 50, 70) ' Loading parts
|
||||
' leggo struttura BTL
|
||||
Map.refProjectVM.BTLStructureVM = New BTLStructureVM(BTLStructureM.CreateBTLStructure(0))
|
||||
Dim nPartId As Integer = EgtGetFirstPart()
|
||||
While nPartId <> GDB_ID.NULL
|
||||
' scrivo in ogni pezzo ProjId
|
||||
EgtSetInfo(nPartId, BTL_PRT_PROJ, Map.refProjManagerVM.nLoadingProjId)
|
||||
nPartId = EgtGetNextPart(nPartId)
|
||||
' scrivo Id negli outline
|
||||
Dim nPRId As Integer = 1
|
||||
Dim nOutlineLayer As Integer = EgtGetFirstNameInGroup(nPartId, OUTLINE)
|
||||
If nOutlineLayer <> GDB_ID.NULL Then
|
||||
Dim nOutlineId As Integer = EgtGetFirstInGroup(nOutlineLayer)
|
||||
While nOutlineId <> GDB_ID.NULL
|
||||
' verifico che sia feature
|
||||
If EgtExistsInfo(nOutlineId, MGR_FTR_PRC) Then
|
||||
EgtSetInfo(nOutlineId, MGR_FTR_PRID, nPRId)
|
||||
nPRId += 1
|
||||
End If
|
||||
nOutlineId = EgtGetNext(nOutlineId)
|
||||
End While
|
||||
End If
|
||||
End While
|
||||
' scrivo info proj e type su layer BtlInfo
|
||||
Dim nBTLInfoLayer As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, BTLINFO)
|
||||
EgtSetInfo(nBTLInfoLayer, BTL_PRT_PROJ, Map.refProjManagerVM.nLoadingProjId)
|
||||
EgtSetInfo(nBTLInfoLayer, BTL_GEN_PROJTYPE, Map.refProjManagerVM.CurrProj.nType)
|
||||
' scrivo info proj su layer AsseBase
|
||||
Dim nAsseBaseLayer As Integer = EgtGetFirstNameInGroup(GDB_ID.ROOT, ASSEBASE)
|
||||
EgtSetInfo(nAsseBaseLayer, BTL_PRT_PROJ, Map.refProjManagerVM.nLoadingProjId)
|
||||
Else
|
||||
Dim sMsg As String = EgtMsg(10006) & " '" & sFile & "'" 'Error importing file
|
||||
MessageBox.Show(Application.Current.MainWindow, sMsg, EgtMsg(10001), MessageBoxButton.OK, MessageBoxImage.Error) ' Error
|
||||
Map.refProjManagerVM.NewProject()
|
||||
End If
|
||||
End If
|
||||
|
||||
MainScene.SetStatusNull()
|
||||
@@ -1107,7 +1146,7 @@ Public Class MySceneHostVM
|
||||
Dim nFeatureLayer As Integer = EgtGetParent(nId)
|
||||
Dim sFeatureLayerName As String = ""
|
||||
EgtGetName(nFeatureLayer, sFeatureLayerName)
|
||||
If Not sFeatureLayerName = PROCESSINGS OrElse Not EgtGetType(nId) = GDB_TY.SRF_MESH Then
|
||||
If (sFeatureLayerName <> PROCESSINGS AndAlso sFeatureLayerName <> OUTLINE) OrElse EgtGetType(nId) <> GDB_TY.SRF_MESH Then
|
||||
nId = EgtGetNextObjInSelWin()
|
||||
Continue While
|
||||
End If
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
Private Sub PrintBtn_Click(sender As Object, e As RoutedEventArgs) Handles CopyToClipboardBtn.Click
|
||||
m_StatisticsVM = Me.DataContext()
|
||||
ExportToExcelAndCsv(dgOptimizerStatistics, m_StatisticsVM)
|
||||
CopyToClipboard(dgOptimizerStatistics, dgRawPartStatistics, m_StatisticsVM)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user