Public Class SifonLadeDubbel Inherits SifonLadeV2 Implements ISifonLadeDubbel #Region "Onderdelen" Public Property BinnenzijkantL2 As Zijkant Implements ISifonLadeDubbel.BinnenzijkantL2 Public Property BinnenzijkantR2 As Zijkant Implements ISifonLadeDubbel.BinnenzijkantR2 Public Property RugM As Rug Implements ISifonLadeDubbel.RugM #End Region #Region "Afmetingen" Public Property BreedteSifonuitsparingZ2 As Double Implements ISifonLadeDubbel.BreedteSifonuitsparingZ2 Public Property DiepteSifonuitsparingU2 As Double Implements ISifonLadeDubbel.DiepteSifonuitsparingU2 Public Property BreedteMiddenstuk As Double Implements ISifonLadeDubbel.BreedteMiddenstuk Public Overrides ReadOnly Property PositieSifonuitsparingR As Double Get 'Maakt gebruik van de berekening van de parent en trekt extra waarden af. Return MyBase.PositieSifonuitsparingR - BreedteMiddenstuk - BreedteSifonuitsparingZ2 End Get End Property #End Region Public Sub New() MyBase.New End Sub Public Sub New(buitenzijkantL As Zijkant, buitenzijkantR As Zijkant, bodem As Bodem, rug As Rug) 'Base klasse constructor aanroepen. MyBase.New(buitenzijkantL, buitenzijkantR, bodem, rug) End Sub ''' Public Overrides Function GeefGegenereerdeOnderdelen() As IEnumerable(Of IOnderdeel) Implements ISpecialLade.GeefGegenereerdeOnderdelen 'Gegenereerde onderdelen. Dim gegenereerdeOnderdelen = New List(Of IOnderdeel) From { BinnenzijkantL2, BinnenzijkantR2, RugM } 'Gegenereerde onderdelen van parent opvragen en toevoegen. gegenereerdeOnderdelen.AddRange(MyBase.GeefGegenereerdeOnderdelen) 'Uitgebreide lijst retourneren. Return gegenereerdeOnderdelen End Function ''' Public overrides Function GeefGegenereerdeEnOrigineleOnderdelen() As IEnumerable(Of IOnderdeel()) 'Lijst initialiseren met originele en gegenereerde onderdelen en retourneren. Dim gegenereerdeOnderdelen = New List(Of IOnderdeel()) From { New IOnderdeel(){BinnenzijkantL2, BinnenzijkantL2}, New IOnderdeel(){BuitenzijkantR, BinnenzijkantR2}, New IOnderdeel(){OrigineleRug, RugM} } 'Gegenereerde onderdelen van parent opvragen en toevoegen. gegenereerdeOnderdelen.AddRange(MyBase.GeefGegenereerdeEnOrigineleOnderdelen()) 'Uitgebreide lijst retourneren. Return gegenereerdeOnderdelen End Function ''' Public Overrides Sub MaakLade() Implements ISifonLade.MaakLade 'Binnenzijkant L en R genereren. GenereerBinnenzijkantL() GenereerBinnenzijkantR() 'Ruggen genereren. GenereerBinnenZijkantL2() GenereerBinnenzijkantR2() 'Genereer ruggen GenereerExtraRuggen() 'Etiketten updaten. UpdateEtiketten() End Sub Private Sub GenereerBinnenzijkantR2() 'Nettolengte diepte sifonuitsparing opvragen. Dim lengte = Configs.geefNettoLengte(DiepteSifonuitsparingU2) 'Nieuwe binnenzijkant initialiseren. Dim ardisDataL = BuitenzijkantR.ArdisDataL.ShallowCopy() ardisDataL.SifonLadeNieuweZijkantData(lengte, OrigineleRug.ArdisData.PartW, Bodem.ArdisData.PartMat, OrigineleRug.ArdisData.PartCalc, True) Dim ardisDataR = BuitenzijkantR.ArdisDataR.ShallowCopy() ardisDataR.SifonLadeNieuweZijkantData(lengte, OrigineleRug.ArdisData.PartW, Bodem.ArdisData.PartMat, OrigineleRug.ArdisData.PartCalc, False) 'Zijkant initialiseren met juiste Ardis data. BinnenzijkantR1 = New Zijkant() With { .ArdisDataL = ardisDataL, .ArdisDataR = ardisDataR } End Sub Private Sub GenereerBinnenZijkantL2() 'Nettolengte diepte sifonuitsparing opvragen. Dim lengte = Configs.geefNettoLengte(DiepteSifonuitsparingU2) 'Nieuwe binnenzijkant initialiseren. Dim ardisDataL = BuitenzijkantL.ArdisDataL.ShallowCopy() ardisDataL.SifonLadeNieuweZijkantData(lengte, OrigineleRug.ArdisData.PartW, Bodem.ArdisData.PartMat, OrigineleRug.ArdisData.PartCalc, True) Dim ardisDataR = BuitenzijkantL.ArdisDataR.ShallowCopy() ardisDataR.SifonLadeNieuweZijkantData(lengte, OrigineleRug.ArdisData.PartW, Bodem.ArdisData.PartMat, OrigineleRug.ArdisData.PartCalc, False) 'Zijkant initialiseren met juiste Ardis data. BinnenzijkantL2 = New Zijkant() With { .ArdisDataL = ardisDataL, .ArdisDataR = ardisDataR } End Sub Private Sub GenereerExtraRuggen() 'De twee ruggen maken. Dim rugLArdisData As ArdisData = OrigineleRug.ArdisData.ShallowCopy Dim rugMArdisData As ArdisData = OrigineleRug.ArdisData.ShallowCopy Dim rugRArdisData As ArdisData = OrigineleRug.ArdisData.ShallowCopy 'Barcode van een zijkant ophalen. Dim isVerlaagdeRug = OrigineleRug.ArdisData.SifonLadeIsVerlaagdeRug(BuitenzijkantL.ArdisDataL.PartCalc) 'Lengte van de originele rug ophalen. Dim oorspronkelijkeLengteRug = OrigineleRug.ArdisData.PartL 'Data en ticket updaten. rugLArdisData.SifonLadeNieuweRug1Data(PositieSifonuitsparingL, oorspronkelijkeLengteRug, isVerlaagdeRug) rugMArdisData.SifonLadeNieuweRugMData(BreedteMiddenstuk, oorspronkelijkeLengteRug, isVerlaagdeRug) rugRArdisData.SifonLadeNieuweRug2Data(KastBreedte, BreedteSifonuitsparingZ1, rugLArdisData.PartL, oorspronkelijkeLengteRug, OrigineleRug.ArdisData.PartL, isVerlaagdeRug) 'Ruggen initialiseren met Ardis data. RugL = New Rug() With { .ArdisData = rugLArdisData } RugM = New Rug() With { .ArdisData = rugMArdisData } RugR = New Rug() With { .ArdisData = rugRArdisData } End Sub End Class