Imports System.Globalization Imports EgtUILib Module Utility '-------------------------------------------------------------------------------------------------- Friend Function DoubleToString(ByVal dVal As Double, ByVal nNumDec As Integer) As String Dim sFormat As String = "F" + Math.Abs(nNumDec).ToString() Dim sVal As String = dVal.ToString(sFormat, CultureInfo.InvariantCulture) If nNumDec > 0 Then Return sVal.TrimEnd("0".ToCharArray()).TrimEnd(".".ToCharArray) Else Return sVal End If End Function Friend Function StringToDouble(ByVal sVal As String, ByRef dVal As Double) As Boolean Return EgtLuaEvalNumExpr(sVal, dVal) End Function Friend Function LenToString(ByVal dVal As Double, ByVal nNumDec As Integer) As String Return DoubleToString(EgtToUiUnits(dVal), nNumDec) End Function Friend Function StringToLen(ByVal sVal As String, ByRef dVal As Double) As Boolean If EgtLuaEvalNumExpr(sVal, dVal) Then dVal = EgtFromUiUnits(dVal) Return True Else Return False End If End Function Friend Function UIExprToExpr(ByVal sUIExpr) As String If String.IsNullOrWhiteSpace(sUIExpr) Then Return "" End If Return sUIExpr.Replace("""", "*GEO.ONE_INCH") End Function Friend Function ExprToUIExpr(ByVal sExpr) As String If String.IsNullOrWhiteSpace(sExpr) Then Return "" End If Return sExpr.Replace("*GEO.ONE_INCH", """") End Function '-------------------------------------------------------------------------------------------------- Friend Sub HideParkedParts() Dim nPartId As Integer = EgtGetFirstPart() While nPartId <> GDB_ID.NULL EgtSetStatus(nPartId, GDB_ST.OFF) nPartId = EgtGetNextPart(nPartId) End While End Sub Friend Sub ShowParkedParts() Dim nPartId As Integer = EgtGetFirstPart() While nPartId <> GDB_ID.NULL EgtSetStatus(nPartId, GDB_ST.ON_) nPartId = EgtGetNextPart(nPartId) End While End Sub Friend Function AdjustFlatPart(nPartId As Integer) As Boolean ' Ciclo sui layer Dim nLayerId As Integer = EgtGetFirstLayer(nPartId) While nLayerId <> GDB_ID.NULL ' Recupero il layer successivo Dim nNextLayerId As Integer = EgtGetNextLayer(nLayerId) ' Recupero il nome del layer Dim sLayName As String = String.Empty If EgtGetName(nLayerId, sLayName) Then ' Se layer OutLoop o InLoop If String.Compare(sLayName, NAME_OUTLOOP, True) = 0 Or String.Compare(sLayName, NAME_INLOOP, True) = 0 Then ' Sistemo i layer per applicare facilmente le lavorazioni EgtAdjustFlatPartLayer(nLayerId) End If ' Se senza nome, lo elimino Else EgtErase(nLayerId) End If ' Passo al layer successivo nLayerId = nNextLayerId End While Return True End Function '-------------------------------------------------------------------------------------------------- Public Class Language Private m_sLanguageName As String Private m_sFileName As String Public Property LanguageName As String Get Return m_sLanguageName End Get Set(value As String) m_sLanguageName = value End Set End Property Public Property FileName As String Get Return m_sFileName End Get Set(value As String) m_sFileName = value End Set End Property Sub New(LanguageName As String, FileName As String) Me.LanguageName = LanguageName Me.FileName = FileName End Sub End Class Public Function GetPrivateProfileLanguage( ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpFileName As String) As Language Dim sVal As String = String.Empty GetPrivateProfileString(lpAppName, lpKeyName, "", sVal, lpFileName) Dim sItems() As String = sVal.Split(",".ToCharArray) If sItems.Count() = 2 Then Return New Language(sItems(0), sItems(1)) End If Return Nothing End Function End Module