13b49e14cb
-> gestione della stampa quote porta.
1561 lines
85 KiB
VB.net
1561 lines
85 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.IO
|
|
Imports EgtUILib
|
|
Imports System.Text.RegularExpressions
|
|
|
|
Friend Module DdfFile
|
|
|
|
' lista ordinata delle componenti da stampare
|
|
Friend CompoListOrder As New List(Of String)
|
|
' se riesco a scrivere un DDF (o una parte dell'essamblato) diventa true
|
|
Friend DDFIsCorrect As Boolean = False
|
|
' se no sono in grado di creare la porta devo fermare tutto
|
|
Friend DoorExists As Boolean = False
|
|
' scommenta le righe del file che contengono dei file mancanti
|
|
Friend SaveErrorCompo As Boolean = False
|
|
' raccoglie gli errori in fase di scrittura del ddf
|
|
Friend ErrorInWriting As String = String.Empty
|
|
|
|
' lista delle componenti della porta da stampare nel report
|
|
Friend OrderInReport As New ReportOrder
|
|
Friend ReportList As New List(Of ReportCompo)
|
|
|
|
' nuova gestione liste
|
|
Friend ReportDoor As New TableDoor
|
|
|
|
Private ParamInCompoIsCorrect As Boolean = True
|
|
|
|
#Region "SCRITTURA DDF"
|
|
|
|
' Questa funzione dovrà sostituire quella precedente (Scritta sopra)
|
|
Private IdIndex As Integer = 0
|
|
|
|
Friend Sub WriteDDFPart(Part As Part, sPath As String, bIsDDF As Boolean, bIsForAssembly As Boolean)
|
|
ReportList.Clear()
|
|
|
|
ReportDoor.Order.Clear()
|
|
ReportDoor.Dimension.Clear()
|
|
ReportDoor.Proflie.Clear()
|
|
ReportDoor.OtherInfo.Clear()
|
|
ReportDoor.HardwareList.Clear()
|
|
ReportDoor.MachList.Clear()
|
|
|
|
' definsco la componente porta (devo decidere come asseganre il Brand e il Template)
|
|
Dim CompoDoorReport As New ReportCompo("DOOR", "", Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.GraphicName)
|
|
ReportList.Add(CompoDoorReport)
|
|
|
|
ErrorInWriting = String.Empty
|
|
DDFIsCorrect = False
|
|
DoorExists = False
|
|
' pulisco lista prima di iniziare a scrivere
|
|
Dim DdfFileContent As New List(Of String)
|
|
' quindi significa che non è mai stato caricato il valore
|
|
DdfFileContent.Add("#EGTDOORCREATOR")
|
|
Dim Config As String = IniFile.m_sDoorsDirPath
|
|
Config = Path.GetFileName(Config)
|
|
DdfFileContent.Add("#Config: " & Config)
|
|
If Not IsNothing(Part.TypePart) Then
|
|
DdfFileContent.Add("#" & PrintTitleDDFPart(Part.TypePart))
|
|
End If
|
|
DdfFileContent.Add("")
|
|
DdfFileContent.Add("produce: " & If(Part.IsActive, "true", "false"))
|
|
'Genero una lista di stringhe
|
|
DdfFileContent.Add("")
|
|
If IsNothing(Part.Measure) Then Part.Measure = ConvertMmUnitsToString(OptionModule.m_bIsMmUnit)
|
|
DdfFileContent.Add(ConstCompo.S_MEASURES & ": " & Part.Measure)
|
|
' 50200=Unit measure
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50200), Part.Measure))
|
|
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
If OptionModule.m_ConfigurationSoftware = ConfigType.Door Then
|
|
Part.Code = Map.refAssemblyManagerVM.CurrProject.SelAssemblyName.GraphicName
|
|
If Part.Code.Contains("*") Then
|
|
Part.Code = Part.Code.Replace("*", "")
|
|
End If
|
|
DdfFileContent.Add(ConstCompo.S_CODE & ": " & Part.Code)
|
|
DdfFileContent.Add("")
|
|
ElseIf Not IsNothing(Part.TypePart) And OptionModule.m_ConfigurationSoftware = ConfigType.Assembly Then
|
|
Part.Code = " " & PrintTitleDDFPart(Part.TypePart)
|
|
DdfFileContent.Add(ConstCompo.S_CODE & ": " & Part.Code)
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
ElseIf IsNothing(Part.TypePart) And OptionModule.m_ConfigurationSoftware = ConfigType.Assembly Then
|
|
DdfFileContent.Add(ConstCompo.S_CODE & ": " & "1111")
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
End If
|
|
|
|
DdfFileContent.Add(ConstCompo.S_ORDER & ":")
|
|
Dim TOrder As New TableOrder
|
|
' Probabilmente da cambiare
|
|
If Not IsNothing(Part.Customer) Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_CUSTOMER & ": " & Part.Customer)
|
|
' 50070=Customer
|
|
OrderInReport.OrderParameterList.Add(New ReportParameter(EgtMsg(50070), Part.Customer))
|
|
TOrder.Order_ParametersList.Add(New ReportParameter(EgtMsg(50070), Part.Customer))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_CUSTOMER & ": ")
|
|
OrderInReport.OrderParameterList.Add(New ReportParameter(EgtMsg(50070), ""))
|
|
TOrder.Order_ParametersList.Add(New ReportParameter(EgtMsg(50070), ""))
|
|
End If
|
|
If Not IsNothing(Part.Elevation) Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_ELEVATION & ": " & Part.Elevation)
|
|
' 50406=Elevation
|
|
OrderInReport.OrderParameterList.Add(New ReportParameter(EgtMsg(50406), Part.Elevation))
|
|
TOrder.Order_ParametersList.Add(New ReportParameter(EgtMsg(50406), Part.Elevation))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_ELEVATION & ": ")
|
|
OrderInReport.OrderParameterList.Add(New ReportParameter(EgtMsg(50406), ""))
|
|
TOrder.Order_ParametersList.Add(New ReportParameter(EgtMsg(50406), ""))
|
|
End If
|
|
If Not IsNothing(Part.Project) Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_PROJECT & ": " & Part.Project)
|
|
' 50407=Project
|
|
OrderInReport.OrderParameterList.Add(New ReportParameter(EgtMsg(50407), Part.Project))
|
|
TOrder.Order_ParametersList.Add(New ReportParameter(EgtMsg(50407), Part.Project))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_PROJECT & ": ")
|
|
OrderInReport.OrderParameterList.Add(New ReportParameter(EgtMsg(50407), ""))
|
|
TOrder.Order_ParametersList.Add(New ReportParameter(EgtMsg(50407), ""))
|
|
End If
|
|
If Not IsNothing(Part.PO) Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_PO & ": " & Part.PO)
|
|
' 50408=PO
|
|
OrderInReport.OrderParameterList.Add(New ReportParameter(EgtMsg(50408), Part.PO))
|
|
TOrder.Order_ParametersList.Add(New ReportParameter(EgtMsg(50408), Part.PO))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_PO & ": ")
|
|
OrderInReport.OrderParameterList.Add(New ReportParameter(EgtMsg(50408), ""))
|
|
TOrder.Order_ParametersList.Add(New ReportParameter(EgtMsg(50408), ""))
|
|
End If
|
|
If Not IsNothing(Part.Line) Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_LINE & ": " & Part.Line)
|
|
' 50409=Line
|
|
OrderInReport.OrderParameterList.Add(New ReportParameter(EgtMsg(50409), Part.Line))
|
|
TOrder.Order_ParametersList.Add(New ReportParameter(EgtMsg(50409), Part.Line))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_LINE & ": ")
|
|
OrderInReport.OrderParameterList.Add(New ReportParameter(EgtMsg(50409), ""))
|
|
TOrder.Order_ParametersList.Add(New ReportParameter(EgtMsg(50409), ""))
|
|
End If
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
|
|
DdfFileContent.Add(ConstCompo.S_DATE & ":" & " " & System.DateTime.Now.ToString("dd/MM/yyyy"))
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
' è specificato il tipo significa che abbiamo un assemblato
|
|
DdfFileContent.Add("piece: " & Part.TypePart)
|
|
DdfFileContent.Add("")
|
|
' posizionamento porte
|
|
If OptionModule.m_ConfigurationSoftware = ConfigType.Assembly Then
|
|
If Not IsNothing(Part.TypePart) Then
|
|
' il posizionamento della prima porta sta nell'origine
|
|
If Part.TypePart = ConstGen.PART_DO_ & "1" Then
|
|
DdfFileContent.Add("position: ")
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "x: " & "0")
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "y: " & "0")
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "z: " & "0")
|
|
ElseIf Part.TypePart = ConstGen.PART_DO_ & "2" Then
|
|
' si trova traslata verso destra dello spessore DO_1 sommato a LightLock"
|
|
Dim x_DO_1 As Double = 0.0
|
|
Dim dLightLock As Double
|
|
'StringToDouble(Map.refAssemblyPageVM.CurrAssembly.GetArrayPartDoor(0).Door.Width, x_DO_1)
|
|
If Not IsNothing(Map.refAssemblyManagerVM.ReserchPartDoor("DO_1")) Then
|
|
StringToDouble(Map.refAssemblyManagerVM.ReserchPartDoor("DO_1").Door.Width, x_DO_1)
|
|
End If
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.LightLock, dLightLock)
|
|
Dim x As String = DoubleToString(x_DO_1 + dLightLock, 4)
|
|
DdfFileContent.Add("position: ")
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "x: " & x)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "y: " & "0")
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "z: " & "0")
|
|
' Jamb Sinistro serratura
|
|
ElseIf Part.TypePart.Contains(ConstGen.PART_FRAME_LEFT) Then
|
|
Dim x As String = PositionJamb_X(Part)
|
|
Dim y As String = PositionJamb_Y(Part)
|
|
Dim z As String = PositionJamb_Z(Part)
|
|
DdfFileContent.Add("position: ")
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "x: " & x)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "y: " & y)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "z: " & z)
|
|
ElseIf Part.TypePart.Contains(ConstGen.PART_FRAME_RIGHT) Then
|
|
DdfFileContent.Add("position: ")
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "x: " & PositionJamb_X(Part))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "y: " & PositionJamb_Y(Part))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "z: " & PositionJamb_Z(Part))
|
|
ElseIf Part.TypePart.Contains(ConstGen.PART_FRAME_TOP) Then
|
|
DdfFileContent.Add("position: ")
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "x: " & PositionJamb_X(Part))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "y: " & PositionJamb_Y(Part))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "z: " & PositionJamb_Z(Part))
|
|
ElseIf Part.TypePart.Contains(ConstGen.PART_FRAME_BOTTOM) Then
|
|
DdfFileContent.Add("position: ")
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "x: " & PositionJamb_X(Part))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "y: " & PositionJamb_Y(Part))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & "z: " & PositionJamb_Z(Part))
|
|
End If
|
|
DdfFileContent.Add("")
|
|
End If
|
|
End If
|
|
|
|
Dim dVal As Double = 0
|
|
DdfFileContent.Add(ConstCompo.S_SIZE & ":")
|
|
Dim TDimension As New TableDimension
|
|
If Not StringToDouble(Part.Width, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_WIDTH), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_WIDTH & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_WIDTH & ": " & Part.Width)
|
|
End If
|
|
End If
|
|
' 50001=Width
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50001), DoubleToString(dVal, 5)))
|
|
TDimension.Dimension_ParametersList.Add(New ReportParameter(EgtMsg(50001), DoubleToString(dVal, 5)))
|
|
|
|
If Not StringToDouble(Part.Height, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_HEIGHT), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_HEIGHT & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_HEIGHT & ": " & Part.Height)
|
|
End If
|
|
End If
|
|
' 50002=Height
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50002), DoubleToString(dVal, 5)))
|
|
TDimension.Dimension_ParametersList.Add(New ReportParameter(EgtMsg(50002), DoubleToString(dVal, 5)))
|
|
|
|
If Not StringToDouble(Part.Thickness, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_THICKNESS), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_THICKNESS & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_THICKNESS & ": " & Part.Thickness)
|
|
End If
|
|
End If
|
|
' 50003=Thickness
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50003), DoubleToString(dVal, 5)))
|
|
TDimension.Dimension_ParametersList.Add(New ReportParameter(EgtMsg(50003), DoubleToString(dVal, 5)))
|
|
|
|
' aggiungo il peso della porta
|
|
If Part.IsCheckedWeight = Visibility.Visible Then
|
|
If Not StringToDouble(Part.Weight, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), S_WEIGHT), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
DdfFileContent.Add("")
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.S_WEIGHT & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.S_WEIGHT & ": " & Part.Weight)
|
|
End If
|
|
End If
|
|
End If
|
|
' 50047=Weight
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50047), DoubleToString(dVal, 5)))
|
|
TDimension.Dimension_ParametersList.Add(New ReportParameter(EgtMsg(50047), DoubleToString(dVal, 5)))
|
|
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
DdfFileContent.Add("" & ConstCompo.S_SWING & ": " & Part.Swing)
|
|
Dim TOtherInfo As New TableOtherInfo
|
|
' 50004=Swing
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50004), Part.Swing))
|
|
TOtherInfo.OtherInfo_ParametersList.Add(New ReportParameter(EgtMsg(50004), Part.Swing))
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
'----------------------------------------------------------------------------------------------------------------------------------------------------
|
|
' aggiungo il secure nullo al DDF
|
|
If Part.TypePart.Contains(ConstGen.PART_DO_) Then
|
|
DdfFileContent.Add("" & ConstCompo.S_SECURE & ": " & SetSecure(Part.SwingAlias.Name, Part.DispositionItem.Name, Part.Secure))
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
Else
|
|
DdfFileContent.Add("" & ConstCompo.S_SECURE & ": " & ConstGen.SWING_DOWN)
|
|
End If
|
|
DdfFileContent.Add("")
|
|
'----------------------------------------------------------------------------------------------------------------------------------------------------
|
|
' aggiungo le Properties
|
|
' il tipo di materiale, se è selezionato deve sempre essere stampato
|
|
If Not IsNothing(Part.SelectedMaterial) AndAlso Part.SelectedMaterial.NameDDF <> GENERICMATERIAL Then
|
|
DdfFileContent.Add("" & ConstCompo.S_MATERIAL & ": " & Part.SelectedMaterial.NameDDF)
|
|
' 50710=Material
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50710), Part.SelectedMaterial.NameDDF))
|
|
TOtherInfo.OtherInfo_ParametersList.Add(New ReportParameter(EgtMsg(50710), Part.SelectedMaterial.NameDDF))
|
|
DdfFileContent.Add("")
|
|
End If
|
|
'' scrittura utilizzata per la multi selezione
|
|
'Dim sProperties As String = String.Empty
|
|
'Dim ItemIndex As Integer
|
|
'For ItemIndex = 0 To Part.PropertiesList.Count - 1
|
|
' 'If Part.PropertiesList(ItemIndex).IsChecked Then
|
|
' ' sProperties &= Part.PropertiesList(ItemIndex).Name & ", "
|
|
' 'End If
|
|
'Next
|
|
'If Not String.IsNullOrEmpty(sProperties) Then
|
|
' sProperties = sProperties.Remove(sProperties.LastIndexOf(","c))
|
|
' DdfFileContent.Add("" & ConstCompo.S_PROPERTIES & ": " & sProperties)
|
|
' DdfFileContent.Add("")
|
|
'End If
|
|
' scrittura delle proprietà in caso di selezione da ComboBox
|
|
If Part.PropertiesIsVisible = Visibility.Visible Then
|
|
Dim sProperties As String = String.Empty
|
|
If Not IsNothing(Part.SelectedProperty) AndAlso Part.SelectedProperty.Name <> "none" Then
|
|
DdfFileContent.Add("" & ConstCompo.S_PROPERTIES & ": " & Part.SelectedProperty.Name)
|
|
' 50709=Properties
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50709), Part.SelectedProperty.Name))
|
|
TOtherInfo.OtherInfo_ParametersList.Add(New ReportParameter(EgtMsg(50709), Part.SelectedProperty.Name))
|
|
DdfFileContent.Add("")
|
|
End If
|
|
End If
|
|
'----------------------------------------------------------------------------------------------------------------------------------------------------
|
|
DdfFileContent.Add("" & ConstCompo.S_PROFILES & ":")
|
|
Dim TProfile As New TableProfile
|
|
Dim BevelDDF As String = SetBevel(Part.TypePart, Part.LockEdgeType.Name, Part.DispositionItem.Name, Part.SwingAlias.Name, Part.InvertBevel)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_LOCKEDGE & ": " & BevelDDF)
|
|
' 50005=Lock edge
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50005), BevelDDF))
|
|
TProfile.Profile_ParametersList.Add(New ReportParameter(EgtMsg(50005), BevelDDF))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(Part.LockEdgeMachining))
|
|
If Not StringToDouble(Part.LockEdgeOverMaterial, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_LOCKEDGEOVERMATERIAL_INI), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & Part.LockEdgeOverMaterial)
|
|
End If
|
|
End If
|
|
|
|
BevelDDF = SetBevel(Part.TypePart, Part.HingeEdgeType.Name, Part.DispositionItem.Name, Part.SwingAlias.Name)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_HINGEEDGE & ": " & BevelDDF)
|
|
' 50006=Hinge edge
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50006), BevelDDF))
|
|
TProfile.Profile_ParametersList.Add(New ReportParameter(EgtMsg(50006), BevelDDF))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(Part.HingeEdgeMachining))
|
|
If Not StringToDouble(Part.HingeEdgeOverMaterial, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_HINGEDGEOVERMATERIAL_INI), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & Part.HingeEdgeOverMaterial)
|
|
End If
|
|
End If
|
|
|
|
BevelDDF = SetBevel(Part.TypePart, Part.TopType.Name, Part.DispositionItem.Name, Part.SwingAlias.Name)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_TOP & ": " & BevelDDF)
|
|
' 50007=Top
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50007), BevelDDF))
|
|
TProfile.Profile_ParametersList.Add(New ReportParameter(EgtMsg(50007), BevelDDF))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(Part.TopMachining))
|
|
If Not StringToDouble(Part.TopOverMaterial, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_TOPOVERMATERIAL_INI), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & Part.TopOverMaterial)
|
|
End If
|
|
End If
|
|
|
|
If Part.TopShapeIsChecked And Part.TopArcIsChecked And (Not IsNothing(Part.Radius) AndAlso Not IsNothing(Part.Posx)) Then
|
|
If Not StringToDouble(Part.Radius, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_RADIUS), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_RADIUS & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_RADIUS & ": " & Part.Radius)
|
|
End If
|
|
End If
|
|
|
|
If Not StringToDouble(Part.Posx, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_POSX), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_POSX & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_POSX & ": " & Part.Posx)
|
|
End If
|
|
End If
|
|
' 50707=Top Arc
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter("Top shape", EgtMsg(50707)))
|
|
TOtherInfo.OtherInfo_ParametersList.Add(New ReportParameter("Top shape", EgtMsg(50707)))
|
|
' 50706=Pos_x
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50706), Part.Posx))
|
|
TOtherInfo.OtherInfo_ParametersList.Add(New ReportParameter(EgtMsg(50706), Part.Posx))
|
|
' 50704=Radius
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50704), Part.Radius))
|
|
TOtherInfo.OtherInfo_ParametersList.Add(New ReportParameter(EgtMsg(50704), Part.Radius))
|
|
End If
|
|
|
|
If Part.TopShapeIsChecked And Part.TopAngleIsChecked And (Not IsNothing(Part.Angle) AndAlso Not IsNothing(Part.Posx)) Then
|
|
If Not StringToDouble(Part.PosxAngle, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_POSX), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_POSX & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_POSX & ": " & Part.PosxAngle)
|
|
End If
|
|
End If
|
|
|
|
If Not StringToDouble(Part.Angle, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_ANGLE), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_ANGLE & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_ANGLE & ": " & Part.Angle)
|
|
End If
|
|
End If
|
|
' 50708=Top Angle
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter("Top shape", EgtMsg(50708)))
|
|
TOtherInfo.OtherInfo_ParametersList.Add(New ReportParameter("Top shape", EgtMsg(50708)))
|
|
' 50706=Pos_x
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50706), Part.Posx))
|
|
TOtherInfo.OtherInfo_ParametersList.Add(New ReportParameter(EgtMsg(50706), Part.Posx))
|
|
' 50705=Angle
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50705), Part.Angle))
|
|
TOtherInfo.OtherInfo_ParametersList.Add(New ReportParameter(EgtMsg(50705), Part.Angle))
|
|
End If
|
|
|
|
BevelDDF = SetBevel(Part.TypePart, Part.BottomType.Name, Part.DispositionItem.Name, Part.SwingAlias.Name)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_BOTTOM & ": " & BevelDDF)
|
|
' 50008=Bottom
|
|
CompoDoorReport.CompoParameterList.Add(New ReportParameter(EgtMsg(50008), BevelDDF))
|
|
TProfile.Profile_ParametersList.Add(New ReportParameter(EgtMsg(50008), BevelDDF))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(Part.BottomMachining))
|
|
If Not StringToDouble(Part.BottomOverMaterial, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_BOTTOMOVERMATERIAL_INI), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
If bIsDDF Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & Part.BottomOverMaterial)
|
|
End If
|
|
End If
|
|
DoorExists = True
|
|
|
|
' Riordino e stampo le compo
|
|
SearchCompo(DdfFileContent, Part, bIsDDF)
|
|
If Not Directory.Exists(Path.GetDirectoryName(sPath)) Then
|
|
Directory.CreateDirectory(Path.GetDirectoryName(sPath))
|
|
End If
|
|
DdfFileContent.Add(" ")
|
|
DdfFileContent.Add("# End Part")
|
|
' se sono arrivato fin qui significa che tutto è andato a buon fine (posso quindisalvare il file corrente)
|
|
OrderInReport.ReportCompoList = ReportList
|
|
ReportDoor.Order.Add(TOrder)
|
|
ReportDoor.Dimension.Add(TDimension)
|
|
ReportDoor.Proflie.Add(TProfile)
|
|
ReportDoor.OtherInfo.Add(TOtherInfo)
|
|
|
|
DDFIsCorrect = ParamInCompoIsCorrect
|
|
'-----------------------------------------------------------------------------------------------------------------------------------
|
|
'Stampa su file
|
|
If bIsForAssembly Then
|
|
File.AppendAllLines(sPath, DdfFileContent, Text.Encoding.UTF8)
|
|
Else
|
|
File.WriteAllLines(sPath, DdfFileContent, Text.Encoding.UTF8)
|
|
End If
|
|
End Sub
|
|
|
|
' la funzione è quasi identica alla precedente per piccole differenze (evito di richiamare dei riferimenti all'assemblato)
|
|
Friend Sub WriteDDFPartForTestHardware(Part As Part, sPath As String, bIsDDF As Boolean, bIsForAssembly As Boolean)
|
|
Dim CurrHardwareReference As String = String.Empty
|
|
If Not IsNothing(Map.refHardwarePageVM) AndAlso Not IsNothing(Map.refHardwarePageVM.CurrHardware) Then
|
|
CurrHardwareReference = Map.refHardwarePageVM.CurrHardware.SelBrand.ModelDir & "\" & Map.refHardwarePageVM.CurrHardware.SelTemplate & LUA_EXTENSION
|
|
End If
|
|
DDFIsCorrect = False
|
|
' pulisco lista prima di iniziare a scrivere
|
|
Dim DdfFileContent As New List(Of String)
|
|
' quindi significa che non è mai stato caricato il valore
|
|
DdfFileContent.Add("#EGTDOORCREATOR")
|
|
If Not IsNothing(Part.TypePart) Then
|
|
DdfFileContent.Add("#" & PrintTitleDDFPart(Part.TypePart))
|
|
End If
|
|
If Not String.IsNullOrEmpty(CurrHardwareReference) Then
|
|
DdfFileContent.Add("#" & CurrHardwareReference)
|
|
End If
|
|
DdfFileContent.Add("")
|
|
DdfFileContent.Add("produce: " & If(Part.IsActive, "true", "false"))
|
|
'Genero una lista di stringhe
|
|
DdfFileContent.Add("")
|
|
If IsNothing(Part.Measure) Then Part.Measure = ConvertMmUnitsToString(OptionModule.m_bIsMmUnit)
|
|
DdfFileContent.Add(ConstCompo.S_MEASURES & ": " & Part.Measure)
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
If OptionModule.m_ConfigurationSoftware = ConfigType.Door Then
|
|
Part.Code = "TestDoorHardware"
|
|
DdfFileContent.Add(ConstCompo.S_CODE & ": " & Part.Code)
|
|
DdfFileContent.Add("")
|
|
ElseIf Not IsNothing(Part.TypePart) And OptionModule.m_ConfigurationSoftware = ConfigType.Assembly Then
|
|
Part.Code = " " & PrintTitleDDFPart(Part.TypePart)
|
|
DdfFileContent.Add(ConstCompo.S_CODE & ": " & Part.Code)
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
ElseIf IsNothing(Part.TypePart) And OptionModule.m_ConfigurationSoftware = ConfigType.Assembly Then
|
|
DdfFileContent.Add(ConstCompo.S_CODE & ": " & "1111")
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
End If
|
|
|
|
DdfFileContent.Add(ConstCompo.S_ORDER & ":")
|
|
' Probabilmente da cambiare
|
|
If Not IsNothing(Part.Customer) Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_CUSTOMER & ": " & Part.Customer)
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_CUSTOMER & ": ")
|
|
End If
|
|
If Not IsNothing(Part.Elevation) Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_ELEVATION & ": " & Part.Elevation)
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_ELEVATION & ": ")
|
|
End If
|
|
If Not IsNothing(Part.Project) Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_PROJECT & ": " & Part.Project)
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_PROJECT & ": ")
|
|
End If
|
|
If Not IsNothing(Part.PO) Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_PO & ": " & Part.PO)
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_PO & ": ")
|
|
End If
|
|
If Not IsNothing(Part.Line) Then
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_LINE & ": " & Part.Line)
|
|
Else
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_LINE & ": ")
|
|
End If
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
DdfFileContent.Add(ConstCompo.S_DATE & ":" & " " & System.DateTime.Now.ToString("dd/MM/yyyy"))
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
' è specificato il tipo significa che abbiamo un assemblato
|
|
DdfFileContent.Add("piece: " & Part.TypePart)
|
|
DdfFileContent.Add("")
|
|
|
|
Dim dVal As Double = 0
|
|
Dim sVal As String = String.Empty
|
|
DdfFileContent.Add(ConstCompo.S_SIZE & ":")
|
|
If Not StringToDouble(Part.Width, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_WIDTH), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
sVal = Part.Width
|
|
' ConvertCurrentUnitMeasure(sVal)
|
|
'Part.SetWidth(sVal)
|
|
If bIsDDF Then
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_WIDTH & ": " & DoubleToString(dVal, 5))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_WIDTH & ": " & sVal)
|
|
Else
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_WIDTH & ": " & Part.Width)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_WIDTH & ": " & sVal)
|
|
End If
|
|
End If
|
|
|
|
If Not StringToDouble(Part.Height, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_HEIGHT), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
sVal = Part.Height
|
|
' ConvertCurrentUnitMeasure(sVal)
|
|
'Part.SetHeight(sVal)
|
|
If bIsDDF Then
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_HEIGHT & ": " & DoubleToString(dVal, 5))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_HEIGHT & ": " & sVal)
|
|
Else
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_HEIGHT & ": " & Part.Height)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_HEIGHT & ": " & sVal)
|
|
End If
|
|
|
|
End If
|
|
|
|
If Not StringToDouble(Part.Thickness, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_THICKNESS), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
sVal = Part.Thickness
|
|
' ConvertCurrentUnitMeasure(sVal)
|
|
'Part.SetThickness(sVal)
|
|
If bIsDDF Then
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_THICKNESS & ": " & DoubleToString(dVal, 5))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_THICKNESS & ": " & sVal)
|
|
Else
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_THICKNESS & ": " & Part.Thickness)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_THICKNESS & ": " & sVal)
|
|
End If
|
|
End If
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
DdfFileContent.Add("" & ConstCompo.S_SWING & ": " & Part.Swing)
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
DdfFileContent.Add("")
|
|
'----------------------------------------------------------------------------------------------------------------------------------------------------
|
|
' aggiungo il secure nullo al DDF
|
|
If Part.TypePart.Contains(ConstGen.PART_DO_) Then
|
|
DdfFileContent.Add("" & ConstCompo.S_SECURE & ": " & SetSecure(Part.SwingAlias.Name, Part.DispositionItem.Name, Part.Secure))
|
|
' aggiungo una riga vuota per separare la lista successiva
|
|
Else
|
|
DdfFileContent.Add("" & ConstCompo.S_SECURE & ": " & ConstGen.SWING_DOWN)
|
|
End If
|
|
|
|
DdfFileContent.Add("")
|
|
|
|
If Not IsNothing(Part.SelectedMaterial) AndAlso Part.SelectedMaterial.NameDDF <> GENERICMATERIAL Then
|
|
DdfFileContent.Add("" & ConstCompo.S_MATERIAL & ": " & Part.SelectedMaterial.NameDDF)
|
|
DdfFileContent.Add("")
|
|
End If
|
|
'----------------------------------------------------------------------------------------------------------------------------------------------------
|
|
DdfFileContent.Add("" & ConstCompo.S_PROFILES & ":")
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_LOCKEDGE & ": " & SetBevel(Part.TypePart, Part.LockEdgeType.Name, Part.DispositionItem.Name, Part.SwingAlias.Name, Part.InvertBevel))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(Part.LockEdgeMachining))
|
|
If Not StringToDouble(Part.LockEdgeOverMaterial, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_LOCKEDGEOVERMATERIAL_INI), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
sVal = Part.LockEdgeOverMaterial
|
|
' ConvertCurrentUnitMeasure(sVal)
|
|
If bIsDDF Then
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & sVal)
|
|
Else
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & Part.LockEdgeOverMaterial)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & sVal)
|
|
End If
|
|
End If
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_HINGEEDGE & ": " & SetBevel(Part.TypePart, Part.HingeEdgeType.Name, Part.DispositionItem.Name, Part.SwingAlias.Name))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(Part.HingeEdgeMachining))
|
|
If Not StringToDouble(Part.HingeEdgeOverMaterial, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_HINGEDGEOVERMATERIAL_INI), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
sVal = Part.HingeEdgeOverMaterial
|
|
ConvertCurrentUnitMeasure(sVal)
|
|
If bIsDDF Then
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & sVal)
|
|
Else
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & Part.HingeEdgeOverMaterial)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & sVal)
|
|
End If
|
|
End If
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_TOP & ": " & SetBevel(Part.TypePart, Part.TopType.Name, Part.DispositionItem.Name, Part.SwingAlias.Name))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(Part.TopMachining))
|
|
If Not StringToDouble(Part.TopOverMaterial, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_TOPOVERMATERIAL_INI), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
sVal = Part.TopOverMaterial
|
|
' ConvertCurrentUnitMeasure(sVal)
|
|
If bIsDDF Then
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & sVal)
|
|
Else
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & Part.TopOverMaterial)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & sVal)
|
|
End If
|
|
End If
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE3 & ConstCompo.K_BOTTOM & ": " & SetBevel(Part.TypePart, Part.BottomType.Name, Part.DispositionItem.Name, Part.SwingAlias.Name))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(Part.BottomMachining))
|
|
If Not StringToDouble(Part.BottomOverMaterial, dVal) Then
|
|
MessageBox.Show(String.Format(EgtMsg(50141), K_BOTTOMOVERMATERIAL_INI), EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return
|
|
Else
|
|
sVal = Part.BottomOverMaterial
|
|
' ConvertCurrentUnitMeasure(sVal)
|
|
If bIsDDF Then
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & sVal)
|
|
Else
|
|
'DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & Part.BottomOverMaterial)
|
|
DdfFileContent.Add(ConstCompo.DDF_SPACE5 & ConstCompo.K_OVERMATERIAL & ": " & sVal)
|
|
End If
|
|
End If
|
|
' Riordino e stampo le compo
|
|
SearchCompo(DdfFileContent, Part, bIsDDF)
|
|
If Not Directory.Exists(Path.GetDirectoryName(sPath)) Then
|
|
Directory.CreateDirectory(Path.GetDirectoryName(sPath))
|
|
End If
|
|
DdfFileContent.Add(" ")
|
|
DdfFileContent.Add("# End Part")
|
|
' se sono arrivato fin qui significa che tutto è andato a buon fine (posso quindisalvare il file corrente)
|
|
DDFIsCorrect = ParamInCompoIsCorrect
|
|
'-----------------------------------------------------------------------------------------------------------------------------------
|
|
'Stampa su file
|
|
If bIsForAssembly Then
|
|
File.AppendAllLines(sPath, DdfFileContent, Text.Encoding.UTF8)
|
|
Else
|
|
File.WriteAllLines(sPath, DdfFileContent, Text.Encoding.UTF8)
|
|
End If
|
|
End Sub
|
|
|
|
#Region "Funzioni per il posizionamento"
|
|
|
|
Private Function PositionJamb_Y(CurrPart As Part) As String
|
|
Dim y As String
|
|
Dim dLightBottom As Double
|
|
Dim dThicknessJamb As Double
|
|
Dim dLightUp As Double
|
|
Dim dOverlapTop As Double
|
|
Dim dHeightDoor As Double
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.LightUp, dLightUp)
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.OverlapTop, dOverlapTop)
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.Width, dThicknessJamb)
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.LightBottom, dLightBottom)
|
|
'StringToDouble(Map.refAssemblyPageVM.CurrAssembly.GetArrayPartDoor(0).Door.Height, dHeightDoor)
|
|
If Not IsNothing(Map.refAssemblyManagerVM.ReserchPartDoor("DO_1")) Then
|
|
StringToDouble(Map.refAssemblyManagerVM.ReserchPartDoor("DO_1").Door.Height, dHeightDoor)
|
|
Else
|
|
dHeightDoor = 0
|
|
End If
|
|
If CurrPart.TypePart.Contains(ConstGen.EXTERIOR) Then
|
|
If CurrPart.TypePart.Contains(ConstGen.PART_FRAME_TOP) Then
|
|
y = DoubleToString(dHeightDoor - dOverlapTop + dLightUp, 4)
|
|
Else
|
|
y = DoubleToString(-dLightBottom - dThicknessJamb, 4)
|
|
End If
|
|
Else
|
|
If CurrPart.TypePart.Contains(ConstGen.PART_FRAME_TOP) Then
|
|
y = DoubleToString(dHeightDoor + dLightUp, 4)
|
|
Else
|
|
y = DoubleToString(-dLightBottom, 4)
|
|
End If
|
|
End If
|
|
Return y
|
|
End Function
|
|
|
|
Private Function PositionJamb_X(CurrPart As Part) As String
|
|
Dim x As String = "0"
|
|
Dim dLightLock As Double
|
|
Dim dLightHinge As Double
|
|
Dim dOverlapLock As Double
|
|
Dim dOverlapHinge As Double
|
|
Dim dThicknessJamb As Double
|
|
Dim dWidthDoor_0 As Double
|
|
Dim dWidthDoor_1 As Double
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.LightLock, dLightLock)
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.LightHinge, dLightHinge)
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.OverlapLock, dOverlapLock)
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.OverlapHinge, dOverlapHinge)
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.Width, dThicknessJamb)
|
|
' StringToDouble(Map.refAssemblyPageVM.CurrAssembly.GetArrayPartDoor(0).Door.Width, dWidthDoor_0)
|
|
If Not IsNothing(Map.refAssemblyManagerVM.ReserchPartDoor("DO_1")) Then
|
|
StringToDouble(Map.refAssemblyManagerVM.ReserchPartDoor("DO_1").Door.Width, dWidthDoor_0)
|
|
Else
|
|
dWidthDoor_0 = 0
|
|
End If
|
|
' StringToDouble(Map.refAssemblyPageVM.CurrAssembly.GetArrayPartDoor(1).Door.Width, dWidthDoor_1)
|
|
If Not IsNothing(Map.refAssemblyManagerVM.ReserchPartDoor("DO_2")) Then
|
|
StringToDouble(Map.refAssemblyManagerVM.ReserchPartDoor("DO_2").Door.Width, dWidthDoor_1)
|
|
Else
|
|
dWidthDoor_1 = 0
|
|
End If
|
|
If CurrPart.TypePart.Contains(ConstGen.EXTERIOR) Then
|
|
' posizione del Jamb sinistro
|
|
If CurrPart.TypePart.Contains("FL_L") Then
|
|
x = DoubleToString(-dThicknessJamb + dOverlapLock - dLightLock, 4)
|
|
ElseIf CurrPart.TypePart.Contains("FL_H") Then
|
|
x = DoubleToString(-dThicknessJamb + dOverlapHinge - dLightHinge, 4)
|
|
End If
|
|
' posiziono il jamb destro
|
|
If CurrPart.TypePart.Contains(ConstGen.PART_FRAME_RIGHT) Then
|
|
If Map.refAssemblyPageVM.CurrAssembly.DoorNumber = "1" Then
|
|
If CurrPart.TypePart.Contains("FR_L") Then
|
|
x = DoubleToString(dWidthDoor_0 - dOverlapLock + dLightLock, 4)
|
|
ElseIf CurrPart.TypePart.Contains("FR_H") Then
|
|
x = DoubleToString(dWidthDoor_0 - dOverlapHinge + dLightHinge, 4)
|
|
End If
|
|
Else
|
|
x = DoubleToString(dWidthDoor_0 + dWidthDoor_1 - dOverlapHinge + dLightHinge + dLightLock, 4)
|
|
End If
|
|
End If
|
|
' posiziono il jamb sopra
|
|
If CurrPart.TypePart.Contains(ConstGen.PART_FRAME_TOP) Then
|
|
If CurrPart.SwingAlias.Name.Contains(ConstGen.LOCK) Then
|
|
x = DoubleToString(-dLightHinge, 4)
|
|
Else
|
|
x = DoubleToString(-dLightLock, 4)
|
|
End If
|
|
End If
|
|
' posiziono il jamb sotto
|
|
If CurrPart.TypePart.Contains(ConstGen.PART_FRAME_BOTTOM) Then
|
|
If CurrPart.SwingAlias.Name.Contains(ConstGen.LOCK) Then
|
|
x = DoubleToString(-dLightHinge, 4)
|
|
Else
|
|
x = DoubleToString(-dLightLock, 4)
|
|
End If
|
|
End If
|
|
Else
|
|
' posizione del Jamb sinistro
|
|
If CurrPart.TypePart.Contains("FL_L") Then
|
|
x = DoubleToString(-dThicknessJamb - dLightLock, 4)
|
|
ElseIf CurrPart.TypePart.Contains("FL_H") Then
|
|
x = DoubleToString(-dThicknessJamb - dLightHinge, 4)
|
|
End If
|
|
' posiziono il jamb destro
|
|
If CurrPart.TypePart.Contains(ConstGen.PART_FRAME_RIGHT) Then
|
|
If Map.refAssemblyPageVM.CurrAssembly.DoorNumber = "1" Then
|
|
If CurrPart.TypePart.Contains("FR_L") Then
|
|
x = DoubleToString(dWidthDoor_0 + dLightLock, 4)
|
|
ElseIf CurrPart.TypePart.Contains("FR_H") Then
|
|
x = DoubleToString(dWidthDoor_0 + dLightHinge, 4)
|
|
End If
|
|
Else
|
|
x = DoubleToString(dWidthDoor_0 + dWidthDoor_1 + dLightHinge + dLightLock, 4)
|
|
End If
|
|
End If
|
|
' posiziono il jamb sopra
|
|
If CurrPart.TypePart.Contains(ConstGen.PART_FRAME_TOP) Then
|
|
If CurrPart.SwingAlias.Name.Contains(ConstGen.LOCK) Then
|
|
x = DoubleToString(-dOverlapHinge - dLightHinge, 4)
|
|
Else
|
|
x = DoubleToString(-dOverlapLock - dLightLock, 4)
|
|
End If
|
|
End If
|
|
End If
|
|
Return x
|
|
End Function
|
|
|
|
Private Function PositionJamb_Z(CurrPart As Part) As String
|
|
Dim z As String
|
|
Dim dDeltaThickness As Double
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.DeltaThickness, dDeltaThickness)
|
|
If CurrPart.SwingAlias.Name.Contains(ConstGen.HAND_REVERSE) Then
|
|
Dim dThicknessDoor As Double
|
|
Dim dThicknessJamb As Double
|
|
' StringToDouble(Map.refAssemblyPageVM.CurrAssembly.GetArrayPartDoor(0).Door.Thickness, dThicknessDoor)
|
|
If Not IsNothing(Map.refAssemblyManagerVM.ReserchPartDoor("DO_1")) Then
|
|
StringToDouble(Map.refAssemblyManagerVM.ReserchPartDoor("DO_1").Door.Thickness, dThicknessDoor)
|
|
Else
|
|
dThicknessDoor = 0
|
|
End If
|
|
StringToDouble(Map.refAssemblyPageVM.CurrAssembly.Thickness, dThicknessJamb)
|
|
z = DoubleToString(-dThicknessJamb + dThicknessDoor + dDeltaThickness, 4)
|
|
Else
|
|
z = DoubleToString(-dDeltaThickness, 4)
|
|
End If
|
|
Return z
|
|
End Function
|
|
|
|
#End Region ' Funzioni per il posizionamento
|
|
|
|
Private Function PrintTitleDDFPart(NamePart As String) As String
|
|
If NamePart.Contains(ConstGen.PART_FRAME) And NamePart.Count > 3 Then
|
|
NamePart = NamePart.Remove(3)
|
|
End If
|
|
Dim SelectPart As String = NamePart
|
|
Select Case SelectPart
|
|
Case ConstGen.PART_FRAME_LEFT
|
|
Return "Frame Left"
|
|
Case ConstGen.PART_FRAME_RIGHT
|
|
Return "Frame Right"
|
|
Case ConstGen.PART_FRAME_TOP
|
|
Return "Frame Top"
|
|
Case ConstGen.PART_FRAME_BOTTOM
|
|
' eseguo un controllo per verifiacre che sia attivo
|
|
If Not Map.refAssemblyPageVM.CurrAssembly.Exterior Then
|
|
Dim FB As PartDoor = Map.refAssemblyManagerVM.ReserchPartDoor("FB_")
|
|
If Not IsNothing(FB) Then
|
|
FB.Door.SetIsActive(False)
|
|
Else
|
|
FB.Door.SetIsActive(True)
|
|
End If
|
|
End If
|
|
Return "Frame Bottom"
|
|
Case Else
|
|
Return "Door" & NamePart(NamePart.Count - 1)
|
|
End Select
|
|
End Function
|
|
|
|
#Region "Funzioni per la scrittura delle componenti"
|
|
|
|
' stampa le compo seguedo l'ordine della lista delle componenti del ddf
|
|
Public Sub SearchCompo(DdfFileContent As List(Of String), ByRef Door As Part, bIsDDF As Boolean)
|
|
ParamInCompoIsCorrect = True
|
|
Dim NewCompoNameDDF = False
|
|
Dim WritingError As String = String.Empty
|
|
Dim TempList As New ObservableCollection(Of Compo)
|
|
DdfFileContent.Add("")
|
|
'------------------------------------------------------------------------------------------------------------------------------------------
|
|
' cerco la prima componente da aggiungere alla lista delle componenti
|
|
For Index1 = 0 To DdfFile.CompoListOrder.Count() - 1
|
|
For Index2 = 0 To Door.CompoList.Count() - 1
|
|
' se trovo la componenete da aggiungere
|
|
If DdfFile.CompoListOrder(Index1) = Door.CompoList(Index2).CompoType.DDFName Then
|
|
TempList.Add(Door.CompoList(Index2))
|
|
End If
|
|
Next
|
|
Next
|
|
TidyCompo(DdfFileContent, TempList, bIsDDF)
|
|
' finito di leggere tutte le componenti stampo il messaggio degli errori
|
|
If Not String.IsNullOrWhiteSpace(WritingError) Then
|
|
MessageBox.Show(WritingError, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
End If
|
|
End Sub
|
|
|
|
Public Function TidyCompo(DdfFileContent As List(Of String), Door As ObservableCollection(Of Compo), bIsDDF As Boolean) As Boolean
|
|
Dim TempList As New ObservableCollection(Of Compo)
|
|
If Door.Count = 0 Then Return True
|
|
' se esiste un solo elemento lo carico
|
|
If Door.Count = 1 Then TempList.Add(Door(0)) : AscendingOrder(TempList, DdfFileContent, bIsDDF) : Return True
|
|
For Index1 As Integer = 0 To Door.Count - 2
|
|
TempList = New ObservableCollection(Of Compo)
|
|
TempList.Add(Door(Index1))
|
|
For Index2 As Integer = Index1 + 1 To Door.Count - 1
|
|
If Door(Index1).CompoType.DDFName = Door(Index2).CompoType.DDFName Then
|
|
TempList.Add(Door(Index2))
|
|
End If
|
|
Next
|
|
AscendingOrder(TempList, DdfFileContent, bIsDDF)
|
|
GenerateCompoListReport(TempList)
|
|
Index1 += TempList.Count - 1
|
|
Next
|
|
TempList = New ObservableCollection(Of Compo)
|
|
' controllo che l'ultimo elemento non sia già stato caricato
|
|
If Door(Door.Count - 1).CompoType.DDFName <> Door(Door.Count - 2).CompoType.DDFName Then
|
|
TempList.Add(Door(Door.Count - 1))
|
|
AscendingOrder(TempList, DdfFileContent, bIsDDF)
|
|
GenerateCompoListReport(TempList)
|
|
End If
|
|
|
|
Return True
|
|
End Function
|
|
|
|
Private Function AscendingOrder(List As ObservableCollection(Of Compo), DdfFileContent As List(Of String), bIsDDF As Boolean) As Boolean
|
|
Dim tidyParamIndex1 As Integer = -1
|
|
Dim tidyParamIndex2 As Integer = -1
|
|
Dim WritingError As String = String.Empty
|
|
If List.Count >= 2 Then
|
|
For IndexList1 As Integer = 0 To List.Count - 2
|
|
For IndexList2 As Integer = IndexList1 + 1 To List.Count - 1
|
|
' se hanno lo stesso parametrro di posizionamento allora riordino
|
|
If Not String.IsNullOrEmpty(List(IndexList1).TidyParam) And Not String.IsNullOrEmpty(List(IndexList2).TidyParam) And
|
|
Not List(IndexList1).LoadByDefault And Not List(IndexList2).LoadByDefault Then
|
|
For IndexParam As Integer = 0 To List(0).CompoParamList.Count - 1
|
|
If List(IndexList1).CompoParamList(IndexParam).DDFName = List(IndexList1).TidyParam Then tidyParamIndex1 = IndexParam
|
|
Exit For
|
|
Next
|
|
For IndexParam As Integer = 0 To List(0).CompoParamList.Count - 1
|
|
If List(IndexList2).CompoParamList(IndexParam).DDFName = List(IndexList2).TidyParam Then tidyParamIndex2 = IndexParam
|
|
Exit For
|
|
Next
|
|
' se trovo il nome del parametro nell'elenco dei parametri
|
|
If Not tidyParamIndex1 = -1 And Not tidyParamIndex1 = -1 Then
|
|
If TypeOf List(IndexList1).CompoParamList(tidyParamIndex1) Is TextBoxParam And TypeOf List(IndexList2).CompoParamList(tidyParamIndex2) Is TextBoxParam Then
|
|
Dim Item1 As String = DirectCast(List(IndexList1).CompoParamList(tidyParamIndex1), TextBoxParam).Value
|
|
Dim Item2 As String = DirectCast(List(IndexList2).CompoParamList(tidyParamIndex2), TextBoxParam).Value
|
|
Dim dItem1 As Double
|
|
Dim dItem2 As Double
|
|
If StringToDouble(Item1, dItem1) And StringToDouble(Item2, dItem2) AndAlso dItem1 > dItem2 Then
|
|
Dim TempCompo As Compo = List(IndexList1)
|
|
List(IndexList1) = List(IndexList2)
|
|
List(IndexList2) = TempCompo
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
Next
|
|
Next
|
|
End If
|
|
' stampa lista
|
|
DdfFileContent.AddRange(GenerateCompolistDDF(List(0), WritingError, True, bIsDDF))
|
|
For IndexItem As Integer = 1 To List.Count - 1
|
|
DdfFileContent.AddRange(GenerateCompolistDDF(List(IndexItem), WritingError, False, bIsDDF))
|
|
Next
|
|
DdfFileContent.Add("")
|
|
' scrivo il messaggio di errore
|
|
If Not String.IsNullOrEmpty(WritingError) Then
|
|
WritingError &= Environment.NewLine
|
|
ErrorInWriting &= WritingError
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
'Genero la lista di parametri di ogni compo che vedo a video
|
|
Public Function GenerateCompolistDDF(Compo As Compo, ByRef sErrorList As String, bNewCompoNameDDF As Boolean, bIsDDF As Boolean) As List(Of String)
|
|
Dim CompoListDDF As New List(Of String)
|
|
' se il nome non esiste ancora nella lista lo aggiungo
|
|
If bNewCompoNameDDF Then
|
|
' aggiungo il nome DDF della componente
|
|
CompoListDDF.Add(Compo.CompoType.DDFName & ":")
|
|
End If
|
|
' se esiste il template
|
|
If Not String.IsNullOrWhiteSpace(Compo.TemplateDDFName) Then
|
|
' aggiungo " - nomeTemplate: TemplateSelezionato"
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_HYPHEN & Compo.TemplateDDFName & ": " & Compo.TemplateSelItem)
|
|
ElseIf Compo.LoadByDefault And SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_HYPHEN & Compo.TemplateDDFName & ": " & Compo.TemplateSelItem)
|
|
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
|
|
' Compo {0} does not exist
|
|
sErrorList &= String.Format("Compo {0} does not exist.", Compo.SelBrandPart & "\" & Compo.SelFile)
|
|
If Compo.m_ParameterDDfList.Count > 0 Then
|
|
For Each ItemLine In Compo.m_ParameterDDfList
|
|
CompoListDDF.Add(ItemLine)
|
|
Next
|
|
Return CompoListDDF
|
|
End If
|
|
ParamInCompoIsCorrect = False
|
|
Else
|
|
CompoListDDF.Add(DDF_HYPHEN & Compo.TemplateDDFName & ": " & Compo.TemplateSelItem)
|
|
End If
|
|
|
|
End If
|
|
' creo l'indice dei parametri della compo
|
|
Dim ParamIndex As Integer
|
|
' scrivo tutti i parametri della compo
|
|
For ParamIndex = 0 To Compo.CompoParamList.Count - 1
|
|
Dim CurrCompoParam As CompoParam = Compo.CompoParamList(ParamIndex)
|
|
|
|
' ComboBoxOnOff
|
|
If TypeOf CurrCompoParam Is ComboBoxOnOffParam Then
|
|
Dim cbParam As ComboBoxOnOffParam = DirectCast(CurrCompoParam, ComboBoxOnOffParam)
|
|
If cbParam.IsActive Then
|
|
' recupero l'indice dell'elemento selezionato
|
|
Dim IndexDDF As Integer = -1
|
|
If Not String.IsNullOrWhiteSpace(cbParam.SelItem) Then
|
|
' raccolgo il valore IndexDDF come indice del valore selezionato dalla lista
|
|
IndexDDF = cbParam.ItemList.IndexOf(cbParam.SelItem)
|
|
End If
|
|
' controllo che sia selezionato un elemento
|
|
If IndexDDF >= 0 AndAlso IndexDDF < cbParam.ItemListDDF.Count() Then
|
|
' restituisco il valore DDF della lista associato all'indice passato
|
|
Dim SelItemDDF As String = Trim(cbParam.ItemListDDF(IndexDDF))
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & cbParam.DDFName & ": " & SelItemDDF)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & cbParam.DDFName & ": " & SelItemDDF)
|
|
End If
|
|
Else
|
|
' se non è selezionato nessun elemento (cosa impossibile...)
|
|
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
|
|
' 50125: Error reading {0} param in {1} compo: do not exist value.
|
|
sErrorList &= String.Format(EgtMsg(50125), cbParam.Name, Compo.CompoType.DDFName)
|
|
ParamInCompoIsCorrect = False
|
|
End If
|
|
End If
|
|
|
|
' ComboBox
|
|
ElseIf TypeOf CurrCompoParam Is ComboBoxParam Then
|
|
Dim cbParam As ComboBoxParam = DirectCast(CurrCompoParam, ComboBoxParam)
|
|
If Not cbParam.ErrorInReading And Not cbParam.MissingParameterInReading Then
|
|
' recupero l'indice dell'elemento selezionato
|
|
Dim IndexDDF As Integer = -1
|
|
If Not String.IsNullOrWhiteSpace(cbParam.SelItem) Then
|
|
' raccolgo il valore IndexDDF come indice del valore selezionato dalla lista
|
|
IndexDDF = cbParam.ItemList.IndexOf(cbParam.SelItem)
|
|
End If
|
|
' controllo che sia selezionato un elemento
|
|
If IndexDDF >= 0 AndAlso IndexDDF < cbParam.ItemListDDF.Count() Then
|
|
' restituisco il valore DDF della lista associato all'indice passato
|
|
Dim SelItemDDF As String = Trim(cbParam.ItemListDDF(IndexDDF))
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & cbParam.DDFName & ": " & SelItemDDF)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & cbParam.DDFName & ": " & SelItemDDF)
|
|
End If
|
|
Else
|
|
' se non è selezionato nessun elemento (cosa impossibile...)
|
|
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
|
|
' 50125: Error reading {0} param in {1} compo: do not exist value.
|
|
sErrorList &= String.Format(EgtMsg(50125), cbParam.Name, Compo.CompoType.DDFName)
|
|
ParamInCompoIsCorrect = False
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & cbParam.DDFName & ": " & cbParam.SelItem)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & cbParam.DDFName & ": " & cbParam.SelItem)
|
|
End If
|
|
End If
|
|
ElseIf Not cbParam.ErrorInReading And cbParam.MissingParameterInReading Then
|
|
' recupero l'indice dell'elemento selezionato
|
|
Dim IndexDDF As Integer = -1
|
|
If Not String.IsNullOrWhiteSpace(cbParam.SelItem) Then
|
|
' raccolgo il valore IndexDDF come indice del valore selezionato dalla lista
|
|
IndexDDF = cbParam.ItemList.IndexOf(cbParam.SelItem)
|
|
End If
|
|
' controllo che sia selezionato un elemento
|
|
If IndexDDF >= 0 AndAlso IndexDDF < cbParam.ItemListDDF.Count() Then
|
|
' restituisco il valore DDF della lista associato all'indice passato
|
|
Dim SelItemDDF As String = Trim(cbParam.ItemListDDF(IndexDDF))
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & cbParam.DDFName & ": " & SelItemDDF)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & cbParam.DDFName & ": " & SelItemDDF)
|
|
End If
|
|
Else
|
|
' se non è selezionato nessun elemento (cosa impossibile...)
|
|
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
|
|
' 50125: Error reading {0} param in {1} compo: do not exist value.
|
|
sErrorList &= String.Format(EgtMsg(50125), cbParam.Name, Compo.CompoType.DDFName)
|
|
ParamInCompoIsCorrect = False
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & cbParam.DDFName & ": " & cbParam.SelItem)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & cbParam.DDFName & ": " & cbParam.SelItem)
|
|
End If
|
|
End If
|
|
Else
|
|
' 50125 =Error in reading {0} in compo {1}.
|
|
sErrorList &= String.Format(EgtMsg(50125), cbParam.Name, Compo.CompoType.DDFName)
|
|
ParamInCompoIsCorrect = False
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & cbParam.DDFName & ": " & cbParam.SelItem)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & cbParam.DDFName & ": " & cbParam.SelItem)
|
|
End If
|
|
End If
|
|
' TextBox Opzionale
|
|
ElseIf TypeOf CurrCompoParam Is TextBoxOnOffParam Then
|
|
Dim tboParam As TextBoxOnOffParam = DirectCast(CurrCompoParam, TextBoxOnOffParam)
|
|
If Not String.IsNullOrWhiteSpace(tboParam.ToolTipValue) AndAlso tboParam.IsActive Then
|
|
' se è stata inserita un'espressione non valida restituisco un errore (50143: Invalid expression.)
|
|
If tboParam.ToolTipValue = EgtMsg(50143) Then
|
|
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
|
|
' 50122: Error reading {0} param in {1} compo.
|
|
sErrorList &= String.Format(EgtMsg(50122), tboParam.Name, Compo.CompoType.DDFName)
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & tboParam.DDFName & ": ")
|
|
ParamInCompoIsCorrect = False
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & tboParam.DDFName & ": " & tboParam.Value)
|
|
ParamInCompoIsCorrect = False
|
|
End If
|
|
Else
|
|
If bIsDDF Then
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & tboParam.DDFName & ": " & tboParam.ToolTipValue)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & tboParam.DDFName & ": " & tboParam.ToolTipValue)
|
|
End If
|
|
Else
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & tboParam.DDFName & ": " & tboParam.Value)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & tboParam.DDFName & ": " & tboParam.Value)
|
|
End If
|
|
End If
|
|
End If
|
|
ElseIf Not String.IsNullOrWhiteSpace(tboParam.ToolTipValue) AndAlso Not tboParam.IsActive Then
|
|
' non restituire nessun tipo di errore
|
|
End If
|
|
' TextBox
|
|
ElseIf TypeOf CurrCompoParam Is TextBoxParam Then
|
|
Dim tbParam As TextBoxParam = DirectCast(CurrCompoParam, TextBoxParam)
|
|
' se c'è scritto qualcosa
|
|
If Not String.IsNullOrWhiteSpace(tbParam.ToolTipValue) And Not Compo.MissingParameter Then
|
|
' se è stata inserita un'espressine non valida restituisco un errore
|
|
If tbParam.ToolTipValue = EgtMsg(50143) Then
|
|
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
|
|
' 50122: Error reading {0} param in {1} compo.
|
|
sErrorList &= String.Format(EgtMsg(50122), tbParam.Name, Compo.CompoType.DDFName)
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.Value)
|
|
ParamInCompoIsCorrect = False
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.Value)
|
|
ParamInCompoIsCorrect = False
|
|
End If
|
|
Else
|
|
If bIsDDF Then
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.ToolTipValue)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.ToolTipValue)
|
|
End If
|
|
Else
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.Value)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.Value)
|
|
End If
|
|
End If
|
|
End If
|
|
ElseIf Not String.IsNullOrWhiteSpace(tbParam.ToolTipValue) And Compo.MissingParameter Then
|
|
' If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
|
|
' Missing parameter {0} in {1}.
|
|
' sErrorList &= String.Format("Missing parameter {0}.", tbParam.Name, Compo.CompoType.DDFName)
|
|
If tbParam.ToolTipValue = EgtMsg(50143) Then
|
|
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
|
|
' 50122: Error reading {0} param in {1} compo.
|
|
sErrorList &= String.Format(EgtMsg(50122), tbParam.Name, Compo.CompoType.DDFName)
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.Value)
|
|
ParamInCompoIsCorrect = False
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.Value)
|
|
ParamInCompoIsCorrect = False
|
|
End If
|
|
Else
|
|
If bIsDDF Then
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.ToolTipValue)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.ToolTipValue)
|
|
End If
|
|
Else
|
|
If Compo.LoadByDefault And Not SaveErrorCompo Then
|
|
CompoListDDF.Add(DDF_METADATA & DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.Value)
|
|
Else
|
|
CompoListDDF.Add(DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.Value)
|
|
End If
|
|
End If
|
|
End If
|
|
Else
|
|
If Not String.IsNullOrEmpty(sErrorList) Then sErrorList &= Environment.NewLine
|
|
' 50122: Error reading {0} param in {1} compo.
|
|
sErrorList &= String.Format(EgtMsg(50122), tbParam.Name, Compo.CompoType.DDFName)
|
|
CompoListDDF.Add(DDF_SPACE5 & tbParam.DDFName & ": " & tbParam.Value)
|
|
End If
|
|
End If
|
|
Next
|
|
' inserisco qui il riferimento da stampare (il codice è scelto dalla porta)
|
|
If Not IsNothing(Compo.refJambCompo) Then
|
|
' se il riferiento è stato stampato prima che si passi da questa pagina allora non posso modificare il valore del riferiento
|
|
If Not String.IsNullOrEmpty(Compo.IdCode) AndAlso Compo.refJambCompo.IdCode = Compo.IdCode Then
|
|
CompoListDDF.Add(DDF_SPACE5 & "##IdCodeComponent : " & Compo.IdCode)
|
|
Else
|
|
Compo.IdCode = CStr(IdIndex)
|
|
Compo.refJambCompo.IdCode = Compo.IdCode
|
|
CompoListDDF.Add(DDF_SPACE5 & "##IdCodeComponent : " & Compo.IdCode)
|
|
End If
|
|
IdIndex += 1
|
|
ElseIf Not String.IsNullOrEmpty(Compo.IdCode) Then
|
|
CompoListDDF.Add(DDF_SPACE5 & "##IdCodeComponent : " & Compo.IdCode)
|
|
IdIndex += 1
|
|
End If
|
|
Return CompoListDDF
|
|
End Function
|
|
|
|
'Genero la lista delle componenti da passare al report
|
|
Private Sub GenerateCompoListReport(TempList As ObservableCollection(Of Compo))
|
|
|
|
For Each ItemCompo In TempList
|
|
If ItemCompo.CompoType.DDFName.Trim = "vision_cut_outs" OrElse
|
|
ItemCompo.CompoType.DDFName.Trim = "louver_cut_outs" OrElse
|
|
ItemCompo.CompoType.DDFName.Trim = "mail_slots" OrElse
|
|
ItemCompo.CompoType.DDFName.Trim = "groove" OrElse
|
|
ItemCompo.CompoType.DDFName.Trim = "rabbet" OrElse
|
|
ItemCompo.CompoType.DDFName.Trim = "face_decoration" Then
|
|
ReportDoor.MachList.Add(New TableMach(ItemCompo.CompoType.Name, ItemCompo.SelFile))
|
|
For Each ItemParameter In ItemCompo.CompoParamList
|
|
Dim sValue As String = String.Empty
|
|
Dim bIsActive As Boolean = True
|
|
If TypeOf ItemParameter Is TextBoxOnOffParam Then
|
|
bIsActive = DirectCast(ItemParameter, TextBoxOnOffParam).IsActive
|
|
sValue = DirectCast(ItemParameter, TextBoxOnOffParam).m_Value
|
|
ElseIf TypeOf ItemParameter Is ComboBoxOnOffParam Then
|
|
bIsActive = DirectCast(ItemParameter, ComboBoxOnOffParam).IsActive
|
|
sValue = DirectCast(ItemParameter, ComboBoxOnOffParam).m_SelItem
|
|
ElseIf TypeOf ItemParameter Is TextBoxParam Then
|
|
sValue = DirectCast(ItemParameter, TextBoxParam).m_Value
|
|
ElseIf TypeOf ItemParameter Is ComboBoxParam Then
|
|
sValue = DirectCast(ItemParameter, ComboBoxParam).m_SelItem
|
|
End If
|
|
If bIsActive Then
|
|
ReportDoor.MachList(ReportDoor.MachList.Count - 1).Mach_ParametersList.Add(New ReportParameter(ItemParameter.Name, sValue))
|
|
End If
|
|
Next
|
|
Else
|
|
ReportDoor.HardwareList.Add(New TableHardaware(ItemCompo.CompoType.Name, ItemCompo.SelBrandPart, ItemCompo.SelFile))
|
|
For Each ItemParameter In ItemCompo.CompoParamList
|
|
Dim sValue As String = String.Empty
|
|
Dim bIsActive As Boolean = True
|
|
If TypeOf ItemParameter Is TextBoxOnOffParam Then
|
|
bIsActive = DirectCast(ItemParameter, TextBoxOnOffParam).IsActive
|
|
sValue = DirectCast(ItemParameter, TextBoxOnOffParam).m_Value
|
|
ElseIf TypeOf ItemParameter Is ComboBoxOnOffParam Then
|
|
bIsActive = DirectCast(ItemParameter, ComboBoxOnOffParam).IsActive
|
|
sValue = DirectCast(ItemParameter, ComboBoxOnOffParam).m_SelItem
|
|
ElseIf TypeOf ItemParameter Is TextBoxParam Then
|
|
sValue = DirectCast(ItemParameter, TextBoxParam).m_Value
|
|
ElseIf TypeOf ItemParameter Is ComboBoxParam Then
|
|
sValue = DirectCast(ItemParameter, ComboBoxParam).m_SelItem
|
|
End If
|
|
If bIsActive Then
|
|
ReportDoor.HardwareList(ReportDoor.HardwareList.Count - 1).Hardware_ParametersList.Add(New ReportParameter(ItemParameter.Name, sValue))
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
Dim ReportompoItem As New ReportCompo(ItemCompo.CompoType.Name, ItemCompo.SelBrandPart, ItemCompo.SelFile)
|
|
For Each ItemParameter In ItemCompo.CompoParamList
|
|
Dim sValue As String = String.Empty
|
|
Dim bIsActive As Boolean = True
|
|
If TypeOf ItemParameter Is TextBoxOnOffParam Then
|
|
bIsActive = DirectCast(ItemParameter, TextBoxOnOffParam).IsActive
|
|
sValue = DirectCast(ItemParameter, TextBoxOnOffParam).m_Value
|
|
ElseIf TypeOf ItemParameter Is ComboBoxOnOffParam Then
|
|
bIsActive = DirectCast(ItemParameter, ComboBoxOnOffParam).IsActive
|
|
sValue = DirectCast(ItemParameter, ComboBoxOnOffParam).m_SelItem
|
|
ElseIf TypeOf ItemParameter Is TextBoxParam Then
|
|
sValue = DirectCast(ItemParameter, TextBoxParam).m_Value
|
|
ElseIf TypeOf ItemParameter Is ComboBoxParam Then
|
|
sValue = DirectCast(ItemParameter, ComboBoxParam).m_SelItem
|
|
End If
|
|
If bIsActive Then
|
|
ReportompoItem.CompoParameterList.Add(New ReportParameter(ItemParameter.Name, sValue))
|
|
End If
|
|
Next
|
|
ReportList.Add(ReportompoItem)
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Funzioni per la scrittura delle componenti
|
|
|
|
' calcola il secure da salvare e il tipo di bevel
|
|
Public Function SetSecure(sSwing As String, DispositionItem As String, DoorSecure As String) As String
|
|
Dim sSecure As String
|
|
If DispositionItem = ConstGen.BEVEL_UP Then
|
|
If sSwing.Contains(ConstGen.HAND_REVERSE) Then
|
|
sSecure = ConstGen.SWING_UP
|
|
Else
|
|
sSecure = ConstGen.SWING_DOWN
|
|
End If
|
|
ElseIf DispositionItem = ConstGen.BEVEL_DOWN Then
|
|
If sSwing.Contains(ConstGen.HAND_REVERSE) Then
|
|
sSecure = ConstGen.SWING_DOWN
|
|
Else
|
|
sSecure = ConstGen.SWING_UP
|
|
End If
|
|
Else
|
|
If DoorSecure <> "0" Then
|
|
sSecure = DoorSecure
|
|
End If
|
|
sSecure = ConstGen.SWING_DOWN
|
|
End If
|
|
Return sSecure
|
|
End Function
|
|
|
|
' calcola il bevel da stamapare nel ddf
|
|
Public Function SetBevel(sTypePart As String, sCurrBevel As String, ByVal DispositionItem As String, sSwing As String, Optional ByVal InvertBevel As Boolean = False, Optional CurrSecure As String = "") As String
|
|
If sTypePart.Contains(ConstGen.PART_DO_) Then
|
|
If InvertBevel Then
|
|
' If sCurrBevel = ConstGen.BEVEL_GRAPHIC And DispositionItem = ConstGen.BEVEL_DOWN Then
|
|
If sCurrBevel.Contains(ConstGen.BEVEL_GRAPHIC) And DispositionItem = ConstGen.BEVEL_DOWN Then
|
|
Return sCurrBevel.Replace(ConstGen.BEVEL_GRAPHIC, ConstGen.BEVEL_UP) & ConstCompo.DDF_SPACE3 & " ## Inverted"
|
|
' Return ConstGen.BEVEL_UP & ConstCompo.DDF_SPACE3 & " ## Inverted"
|
|
ElseIf sCurrBevel.Contains(ConstGen.BEVEL_GRAPHIC) And DispositionItem = ConstGen.BEVEL_UP Then
|
|
Return sCurrBevel.Replace(ConstGen.BEVEL_GRAPHIC, ConstGen.BEVEL_DOWN) & ConstCompo.DDF_SPACE3 & " ## Inverted"
|
|
'Return ConstGen.BEVEL_DOWN & ConstCompo.DDF_SPACE3 & " ## Inverted"
|
|
ElseIf sCurrBevel.Contains(ConstGen.BEVEL_GRAPHIC) And DispositionItem <> ConstGen.BEVEL_UP And DispositionItem <> ConstGen.BEVEL_DOWN Then
|
|
If sSwing.Contains(ConstGen.HAND_REVERSE) Then
|
|
Return sCurrBevel.Replace(ConstGen.BEVEL_GRAPHIC, ConstGen.BEVEL_UP) & ConstCompo.DDF_SPACE3 & " ## Inverted"
|
|
'Return ConstGen.BEVEL_UP & ConstCompo.DDF_SPACE3 & " ## Inverted"
|
|
Else
|
|
Return sCurrBevel.Replace(ConstGen.BEVEL_GRAPHIC, ConstGen.BEVEL_DOWN) & ConstCompo.DDF_SPACE3 & " ## Inverted"
|
|
'Return ConstGen.BEVEL_DOWN & ConstCompo.DDF_SPACE3 & " ## Inverted"
|
|
End If
|
|
Else
|
|
Return sCurrBevel
|
|
End If
|
|
End If
|
|
|
|
' If sCurrBevel = ConstGen.BEVEL_GRAPHIC And DispositionItem = ConstGen.BEVEL_DOWN Then
|
|
If sCurrBevel.Contains(ConstGen.BEVEL_GRAPHIC) And DispositionItem = ConstGen.BEVEL_DOWN Then
|
|
Return sCurrBevel.Replace(ConstGen.BEVEL_GRAPHIC, ConstGen.BEVEL_DOWN)
|
|
ElseIf sCurrBevel.Contains(ConstGen.BEVEL_GRAPHIC) And DispositionItem = ConstGen.BEVEL_UP Then
|
|
Return sCurrBevel.Replace(ConstGen.BEVEL_GRAPHIC, ConstGen.BEVEL_UP)
|
|
ElseIf sCurrBevel.Contains(ConstGen.BEVEL_GRAPHIC) And DispositionItem <> ConstGen.BEVEL_UP And DispositionItem <> ConstGen.BEVEL_DOWN Then
|
|
If sSwing.Contains(ConstGen.HAND_REVERSE) Then
|
|
Return sCurrBevel.Replace(ConstGen.BEVEL_GRAPHIC, ConstGen.BEVEL_DOWN)
|
|
Else
|
|
Return sCurrBevel.Replace(ConstGen.BEVEL_GRAPHIC, ConstGen.BEVEL_UP)
|
|
End If
|
|
Else
|
|
Return sCurrBevel
|
|
End If
|
|
Else
|
|
' If sCurrBevel = ConstGen.BEVEL_DOWN OrElse sCurrBevel = ConstGen.BEVEL_GRAPHIC OrElse sCurrBevel = ConstGen.BEVEL_UP Then
|
|
If sCurrBevel.Contains(ConstGen.BEVEL_DOWN) OrElse sCurrBevel.Contains(ConstGen.BEVEL_GRAPHIC) OrElse sCurrBevel.Contains(ConstGen.BEVEL_UP) Then
|
|
Return sCurrBevel.Replace(ConstGen.BEVEL_GRAPHIC, ConstGen.BEVEL_DOWN)
|
|
Else
|
|
Return sCurrBevel
|
|
End If
|
|
End If
|
|
|
|
End Function
|
|
#End Region ' Scrittura DDF
|
|
|
|
#Region "SCRITTURA ASSEMBLATO"
|
|
' serve per pulire il file temporaneo la prima volta che viene creato
|
|
Friend Function WriteDDFAssembly(ByVal CurrAssembly As Assembly, sPath As String, bIsDDF As Boolean) As Boolean
|
|
' verifico esistenza assemblato
|
|
If IsNothing(CurrAssembly) Then Return False
|
|
|
|
' serve per capire se almeno un Part è stato inserito e quindi inserire il separatore
|
|
Dim bSplit As Boolean = False
|
|
Dim SplitPart As New List(Of String)
|
|
SplitPart.Add("")
|
|
SplitPart.Add(DDF_PARTIALEND)
|
|
Dim EndAssebly As New List(Of String)
|
|
EndAssebly.Add("")
|
|
EndAssebly.Add(DDF_END)
|
|
Dim FirstPart As Boolean = False
|
|
|
|
Dim GeneralAssembly As New List(Of String)
|
|
If OptionModule.m_ConfigurationSoftware = ConfigType.Assembly Then
|
|
' scrive le informazioni relative all'assembalto
|
|
WriteGeneralAssembly(GeneralAssembly, CurrAssembly)
|
|
File.WriteAllLines(sPath, GeneralAssembly, Text.Encoding.UTF8)
|
|
FirstPart = True
|
|
End If
|
|
|
|
If CurrAssembly.ListPartDoor.Count > 1 Then
|
|
For IndexPartDoor As Integer = 0 To CurrAssembly.ListPartDoor.Count - 2
|
|
WriteDDFPart(CurrAssembly.ListPartDoor(IndexPartDoor).Door, sPath, bIsDDF, FirstPart)
|
|
File.AppendAllLines(sPath, SplitPart, Text.Encoding.UTF8)
|
|
Next
|
|
End If
|
|
WriteDDFPart(CurrAssembly.ListPartDoor(CurrAssembly.ListPartDoor.Count - 1).Door, sPath, bIsDDF, FirstPart)
|
|
File.AppendAllLines(sPath, EndAssebly, Text.Encoding.UTF8)
|
|
|
|
Return True
|
|
End Function
|
|
|
|
' scrive le informazioni generali dell'assemblato in forma di metadato ##
|
|
Public Function WriteGeneralAssembly(ByRef GeneralAssembly As List(Of String), CurrAssembly As Assembly) As Boolean
|
|
Dim dVal As Double = 0
|
|
GeneralAssembly.Add("#EGTDOORCREATOR")
|
|
GeneralAssembly.Add("#GENERAL ASSEMBLY")
|
|
GeneralAssembly.Add("#")
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "Size : ")
|
|
If StringToDouble(CurrAssembly.Thickness, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "thickness : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(ConstCompo.DDF_METADATA & EgtMsg(50106) & "thickness", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
If StringToDouble(CurrAssembly.Width, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "width : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(ConstCompo.DDF_METADATA & EgtMsg(50106) & "width", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
GeneralAssembly.Add(DDF_METADATA)
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "Light : ")
|
|
If StringToDouble(CurrAssembly.LightUp, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "up : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(ConstCompo.DDF_METADATA & EgtMsg(50106) & "LightUp", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
If StringToDouble(CurrAssembly.LightLock, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "lock : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(EgtMsg(50106) & "LightLock", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
If StringToDouble(CurrAssembly.LightHinge, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "hinge : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(EgtMsg(50106) & "LightHinge", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
If StringToDouble(CurrAssembly.LightBottom, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "bottom : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(EgtMsg(50106) & "LightBottom", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA)
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "Overlap : ")
|
|
If StringToDouble(CurrAssembly.ThicknessHead, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "thickness : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(EgtMsg(50106) & "ThicknessHead", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
If StringToDouble(CurrAssembly.OverlapHinge, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "hinge : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(EgtMsg(50106) & "Overlap Hinge", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
If StringToDouble(CurrAssembly.OverlapLock, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "lock : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(EgtMsg(50106) & "Overlap Lock", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
If StringToDouble(CurrAssembly.DeltaThickness, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "deltaT : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(EgtMsg(50106) & "Delta Thickness", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
' i parametri associatia alla condizione di Exterior sono stampati solo se Exterior è true
|
|
If CurrAssembly.Exterior Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "Exterior :")
|
|
If StringToDouble(CurrAssembly.OverlapTop, dVal) Then
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & "top : " & DoubleToString(dVal, 5))
|
|
Else
|
|
MessageBox.Show(EgtMsg(50106) & "Overlap Top", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
End If
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA)
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.S_PROFILES & ":")
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_LOCKEDGE & ": " & CurrAssembly.LockEdgeType.Name)
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.LockEdgeMachining))
|
|
If Not StringToDouble(CurrAssembly.LockEdgeOverMaterial, dVal) Then
|
|
MessageBox.Show(EgtMsg(50106) & K_LOCKEDGEOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_HINGEEDGE & ": " & CurrAssembly.HingeEdgeType.Name)
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.HingeEdgeMachining))
|
|
If Not StringToDouble(CurrAssembly.HingeEdgeOverMaterial, dVal) Then
|
|
MessageBox.Show(EgtMsg(50106) & K_HINGEDGEOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_TOP & ": " & CurrAssembly.TopType.Name)
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.TopMachining))
|
|
If Not StringToDouble(CurrAssembly.TopOverMaterial, dVal) Then
|
|
MessageBox.Show(EgtMsg(50106) & K_TOPOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_BOTTOM & ": " & CurrAssembly.BottomType.Name)
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_MACHINING & ": " & ConvertBooleanToOnOff(CurrAssembly.BottomMachining))
|
|
If Not StringToDouble(CurrAssembly.BottomOverMaterial, dVal) Then
|
|
MessageBox.Show(EgtMsg(50106) & K_BOTTOMOVERMATERIAL_INI, EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
GeneralAssembly.Add(ConstCompo.DDF_METADATA & ConstCompo.K_OVERMATERIAL & ": " & DoubleToString(dVal, 5))
|
|
|
|
GeneralAssembly.Add(DDF_METADATA)
|
|
If Not IsNothing(CurrAssembly.DoorNumber) Then
|
|
GeneralAssembly.Add(DDF_METADATA & "doors : " & CurrAssembly.DoorNumber)
|
|
Else
|
|
MessageBox.Show(EgtMsg(50106) & "Number of Doors", EgtMsg(50101), MessageBoxButton.OK, MessageBoxImage.Error)
|
|
Return False
|
|
End If
|
|
GeneralAssembly.Add(" ")
|
|
'File.AppendAllLines(sPath, GeneralAssembly, Text.Encoding.UTF8)
|
|
Return True
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
End Module
|