644 lines
22 KiB
VB.net
644 lines
22 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.Globalization
|
|
Imports System.Windows
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class BTLFeatureM
|
|
|
|
' Feature a cui appartiene il parametro
|
|
Protected m_ParentPart As Object
|
|
Public ReadOnly Property ParentPart As Object
|
|
Get
|
|
Return m_ParentPart
|
|
End Get
|
|
End Property
|
|
|
|
' Id geometrico della feature
|
|
Protected m_nFeatureId As Integer
|
|
Public ReadOnly Property nFeatureId As Integer
|
|
Get
|
|
Return m_nFeatureId
|
|
End Get
|
|
End Property
|
|
Public Sub SetFeatureId(nFeatureId As Integer)
|
|
m_nFeatureId = nFeatureId
|
|
End Sub
|
|
|
|
' lista dei gruppi
|
|
Protected m_GRPList As New ObservableCollection(Of Integer)
|
|
Public Property GRPList As ObservableCollection(Of Integer)
|
|
Get
|
|
Return m_GRPList
|
|
End Get
|
|
Set(value As ObservableCollection(Of Integer))
|
|
m_GRPList = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_nSelGRP As Integer = -1
|
|
Public Overridable Property nSelGRP As Integer
|
|
Get
|
|
Return m_nSelGRP
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nSelGRP = value
|
|
End Set
|
|
End Property
|
|
Public ReadOnly Property sDescGRP As String
|
|
Get
|
|
Dim sDescConstruction As String = String.Empty
|
|
If CalcBeamPrivateProfileGRP(nSelGRP) = 0 Then
|
|
sDescConstruction = "L"
|
|
Else
|
|
sDescConstruction = "T"
|
|
End If
|
|
sDescConstruction &= nPRC.ToString("000")
|
|
Return sDescConstruction
|
|
End Get
|
|
End Property
|
|
|
|
' Processo
|
|
Protected m_nPRC As Integer
|
|
Public Property nPRC As Integer
|
|
Get
|
|
Return m_nPRC
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nPRC = value
|
|
End Set
|
|
End Property
|
|
|
|
' Lato
|
|
Protected m_SIDEList As New ObservableCollection(Of Integer)({1, 2, 3, 4})
|
|
Public Property SIDEList As ObservableCollection(Of Integer)
|
|
Get
|
|
Return m_SIDEList
|
|
End Get
|
|
Set(value As ObservableCollection(Of Integer))
|
|
m_SIDEList = value
|
|
End Set
|
|
End Property
|
|
Protected m_nSelSIDE As Integer = -1
|
|
Public Overridable Property nSelSIDE As Integer
|
|
Get
|
|
Return m_nSelSIDE
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nSelSIDE = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_nPriority As Integer = 0
|
|
Public Overridable Property nPriority As Integer
|
|
Get
|
|
Return m_nPriority
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nPriority = value
|
|
End Set
|
|
End Property
|
|
|
|
' Nome
|
|
Protected m_sName As String
|
|
Public ReadOnly Property sName As String
|
|
Get
|
|
Return m_sName
|
|
End Get
|
|
End Property
|
|
Public Sub SetName(sName As String)
|
|
m_sName = sName
|
|
End Sub
|
|
|
|
Protected m_bDO As Boolean
|
|
Public Overridable Property bDO As Boolean
|
|
Get
|
|
Return m_bDO
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_bDO = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_nPRID As Integer
|
|
Public Property nPRID As Integer
|
|
Get
|
|
Return m_nPRID
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nPRID = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_VARIANTList As New ObservableCollection(Of Integer)()
|
|
Public Property VARIANTList As ObservableCollection(Of Integer)
|
|
Get
|
|
Return m_VARIANTList
|
|
End Get
|
|
Set(value As ObservableCollection(Of Integer))
|
|
m_VARIANTList = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_sDES As String = String.Empty
|
|
Public Property sDES As String
|
|
Get
|
|
Return m_sDES
|
|
End Get
|
|
Set(value As String)
|
|
m_sDES = value
|
|
End Set
|
|
End Property
|
|
|
|
Public Overridable Property nSelVARIANT As Integer
|
|
Get
|
|
Dim nDes As Integer = 0
|
|
Return If(Integer.TryParse(m_sDES, nDes), nDes, 0)
|
|
End Get
|
|
Set(value As Integer)
|
|
m_sDES = value.ToString()
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_frFRAME As New Frame3d
|
|
Public Property frFRAME As Frame3d
|
|
Get
|
|
Return m_frFRAME
|
|
End Get
|
|
Set(value As Frame3d)
|
|
m_frFRAME = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_nState As CalcStates = -1
|
|
Public Property nState As CalcStates
|
|
Get
|
|
Return m_nState
|
|
End Get
|
|
Set(value As CalcStates)
|
|
m_nState = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_nCALC_ERR As Integer = -1
|
|
Public Property nCALC_ERR As Integer
|
|
Get
|
|
Return m_nCALC_ERR
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nCALC_ERR = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_nCALC_ROT As Integer
|
|
Public Property nCALC_ROT As Integer
|
|
Get
|
|
Return m_nCALC_ROT
|
|
End Get
|
|
Set(value As Integer)
|
|
m_nCALC_ROT = value
|
|
End Set
|
|
End Property
|
|
|
|
Protected m_sCALC_MSG As String
|
|
Public Property sCALC_MSG As String
|
|
Get
|
|
Return MessageFromLuaMsg(m_sCALC_MSG)
|
|
End Get
|
|
Set(value As String)
|
|
m_sCALC_MSG = value
|
|
End Set
|
|
End Property
|
|
|
|
' lista dei parametri della feature
|
|
Protected m_PBTLParamMList As List(Of BTLParamM)
|
|
Public Property PBTLParamMList As List(Of BTLParamM)
|
|
Get
|
|
Return m_PBTLParamMList
|
|
End Get
|
|
Set(value As List(Of BTLParamM))
|
|
m_PBTLParamMList = value
|
|
End Set
|
|
End Property
|
|
|
|
' lista dei parametri della feature
|
|
Protected m_QBTLParamMList As List(Of BTLParamM)
|
|
Public Property QBTLParamMList As List(Of BTLParamM)
|
|
Get
|
|
Return m_QBTLParamMList
|
|
End Get
|
|
Set(value As List(Of BTLParamM))
|
|
m_QBTLParamMList = value
|
|
End Set
|
|
End Property
|
|
|
|
#Region "MESSAGES"
|
|
|
|
Public ReadOnly Property Name_Msg As String
|
|
Get
|
|
Return EgtMsg(61614)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Value_Msg As String
|
|
Get
|
|
Return EgtMsg(61615)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Min_Msg As String
|
|
Get
|
|
Return EgtMsg(61616)
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property Max_Msg As String
|
|
Get
|
|
Return EgtMsg(61617)
|
|
End Get
|
|
End Property
|
|
|
|
#End Region
|
|
|
|
#Region "CONSTRUCTOR"
|
|
|
|
Protected Sub New()
|
|
CreateVariantList()
|
|
End Sub
|
|
|
|
Public Shared Function CreateNewBTLFeature() As BTLFeatureM
|
|
Return New BTLFeatureM
|
|
End Function
|
|
|
|
Public Shared Function CreateBTLFeature(ParentPart As Object, nFeatureId As Integer, Optional bIsBTL As Boolean = True) As BTLFeatureM
|
|
Dim NewBTLFeature As New BTLFeatureM
|
|
NewBTLFeature.m_ParentPart = ParentPart
|
|
NewBTLFeature.m_nFeatureId = nFeatureId
|
|
' leggo gruppo, numero feature, lato e priorità
|
|
EgtGetInfo(nFeatureId, BTL_FTR_GRP, NewBTLFeature.m_nSelGRP)
|
|
EgtGetInfo(nFeatureId, BTL_FTR_PRC, NewBTLFeature.m_nPRC)
|
|
EgtGetInfo(nFeatureId, BTL_FTR_SIDE, NewBTLFeature.m_nSelSIDE)
|
|
EgtGetInfo(nFeatureId, BTL_FTR_PRIORITY, NewBTLFeature.m_nPriority)
|
|
Dim nDO As Integer = 1
|
|
If EgtGetInfo(nFeatureId, BTL_FTR_DO, nDO) Then
|
|
NewBTLFeature.m_bDO = (nDO <> 0)
|
|
Else
|
|
NewBTLFeature.m_bDO = True
|
|
End If
|
|
' leggo des,prid e frame
|
|
EgtGetInfo(nFeatureId, BTL_FTR_DES, NewBTLFeature.m_sDES)
|
|
EgtGetInfo(nFeatureId, BTL_FTR_PRID, NewBTLFeature.m_nPRID)
|
|
EgtGetInfo(nFeatureId, BTL_FTR_FRAME, NewBTLFeature.m_frFRAME)
|
|
' leggo parametri della feature
|
|
GetBeamPrivateProfileGRPList(CalcBeamPrivateProfileGRP(NewBTLFeature.m_nSelGRP), NewBTLFeature.m_nPRC, NewBTLFeature.m_GRPList)
|
|
GetBeamPrivateProfileName(NewBTLFeature.m_nSelGRP, NewBTLFeature.m_nPRC, NewBTLFeature)
|
|
' crea parametri per questa feature da file ini
|
|
NewBTLFeature.CreateFeatureParams(NewBTLFeature)
|
|
' leggo parametri delle feature
|
|
NewBTLFeature.ReadFeatureParams()
|
|
' leggo calc error
|
|
Dim nErr As Integer = 0
|
|
Dim nRot As Integer = 0
|
|
Dim sMsg As String = ""
|
|
Dim bCalc As Boolean = False
|
|
If bIsBTL Then
|
|
bCalc = EgtGetInfo(NewBTLFeature.nFeatureId, ITG_PROJ_ERR, nErr)
|
|
EgtGetInfo(nFeatureId, ITG_PROJ_ROT, nRot)
|
|
EgtGetInfo(nFeatureId, ITG_PROJ_MSG, sMsg)
|
|
Else
|
|
bCalc = EgtGetInfo(NewBTLFeature.nFeatureId, ITG_PROD_ERR, nErr)
|
|
EgtGetInfo(nFeatureId, ITG_PROD_ROT, nRot)
|
|
EgtGetInfo(nFeatureId, ITG_PROD_MSG, sMsg)
|
|
End If
|
|
If Not bCalc Then
|
|
NewBTLFeature.m_nState = CalcStates.NOTCALCULATED
|
|
NewBTLFeature.m_nCALC_ERR = 0
|
|
NewBTLFeature.m_nCALC_ROT = 0
|
|
NewBTLFeature.m_sCALC_MSG = ""
|
|
Else
|
|
NewBTLFeature.m_nCALC_ERR = nErr
|
|
NewBTLFeature.m_nCALC_ROT = nRot
|
|
NewBTLFeature.m_sCALC_MSG = sMsg
|
|
Select Case nErr
|
|
Case 0
|
|
NewBTLFeature.nState = CalcStates.OK
|
|
Case 22
|
|
NewBTLFeature.nState = CalcStates.COLLISION
|
|
Case 17, 19
|
|
NewBTLFeature.nState = CalcStates.WARNING
|
|
Case < 0
|
|
NewBTLFeature.nState = CalcStates.INFO
|
|
Case > 0
|
|
NewBTLFeature.nState = CalcStates.ERROR_
|
|
End Select
|
|
End If
|
|
Return NewBTLFeature
|
|
End Function
|
|
|
|
Public Shared Function CreateBTLFeature(nPRC As Integer, nGRP As Integer, nSIDE As Integer) As BTLFeatureM
|
|
Dim NewBTLFeature As New BTLFeatureM With {
|
|
.m_nPRC = nPRC,
|
|
.m_nSelGRP = nGRP,
|
|
.m_nSelSIDE = nSIDE,
|
|
.m_nPriority = 0,
|
|
.m_bDO = True
|
|
.nSelVARIANT = 0
|
|
}
|
|
' crea parametri per questa feature da file ini
|
|
NewBTLFeature.CreateFeatureParams(NewBTLFeature)
|
|
Return NewBTLFeature
|
|
End Function
|
|
|
|
Private Sub CreateVariantList()
|
|
Dim sMaxIndex As String = ""
|
|
Dim nMaxIndex As Integer = 0
|
|
EgtUILib.GetPrivateProfileString([VARIANT], K_MAXINDEX, "", sMaxIndex, m_sBTLIniFile)
|
|
Integer.TryParse(sMaxIndex, nMaxIndex)
|
|
For Index As Integer = 0 To nMaxIndex
|
|
m_VARIANTList.Add(Index)
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' CONSTRUCTOR
|
|
|
|
#Region "METHODS"
|
|
|
|
Public Event PBTLParamAdded As EventHandler(Of BTLParamAddedEventArgs)
|
|
Public Event QBTLParamAdded As EventHandler(Of BTLParamAddedEventArgs)
|
|
|
|
Public Sub AddPBTLParam(BTLparamM As BTLParamM)
|
|
If IsNothing(BTLparamM) Then Return
|
|
If Not m_PBTLParamMList.Contains(BTLparamM) Then
|
|
m_PBTLParamMList.Add(BTLparamM)
|
|
RaiseEvent PBTLParamAdded(Me, New BTLParamAddedEventArgs(BTLparamM))
|
|
End If
|
|
End Sub
|
|
Public Sub AddQBTLParam(BTLparamM As BTLParamM)
|
|
If IsNothing(BTLparamM) Then Return
|
|
If Not m_QBTLParamMList.Contains(BTLparamM) Then
|
|
m_QBTLParamMList.Add(BTLparamM)
|
|
RaiseEvent QBTLParamAdded(Me, New BTLParamAddedEventArgs(BTLparamM))
|
|
End If
|
|
End Sub
|
|
|
|
Public Function GetPBTLParams() As List(Of BTLParamM)
|
|
Return New List(Of BTLParamM)(m_PBTLParamMList)
|
|
End Function
|
|
Public Function GetQBTLParams() As List(Of BTLParamM)
|
|
Return New List(Of BTLParamM)(m_QBTLParamMList)
|
|
End Function
|
|
|
|
' funzione che crea l'elenco dei parametri
|
|
Public Sub CreateFeatureParams(NewBTLFeature As BTLFeatureM)
|
|
Dim ParamIndex As Integer = 1
|
|
Dim TempList As New List(Of BTLParamM)
|
|
Dim NewBTLParam As BTLParamM = Nothing
|
|
' leggo tutti i P della feature
|
|
While BTLIniFile.GetBeamPrivateProfileParam(m_nSelGRP, m_nPRC, nSelVARIANT, True, ParamIndex, Me, NewBTLParam)
|
|
TempList.Add(NewBTLParam)
|
|
ParamIndex += 1
|
|
End While
|
|
If TempList.Count <= 0 Then
|
|
While BTLIniFile.GetBeamPrivateProfileParam(m_nSelGRP, m_nPRC, 0, True, ParamIndex, Me, NewBTLParam)
|
|
TempList.Add(NewBTLParam)
|
|
ParamIndex += 1
|
|
End While
|
|
End If
|
|
NewBTLFeature.PBTLParamMList = TempList
|
|
' leggo tutti i Q della feature
|
|
ParamIndex = 1
|
|
TempList = New List(Of BTLParamM)
|
|
While BTLIniFile.GetBeamPrivateProfileParam(m_nSelGRP, m_nPRC, nSelVARIANT, False, ParamIndex, Me, NewBTLParam)
|
|
TempList.Add(NewBTLParam)
|
|
ParamIndex += 1
|
|
End While
|
|
NewBTLFeature.QBTLParamMList = TempList
|
|
End Sub
|
|
|
|
' funzione che legge il valore corrente del parametro
|
|
Public Function ReadFeatureParams() As Boolean
|
|
Return ReadFeatureParams(m_PBTLParamMList) And ReadFeatureParams(m_QBTLParamMList)
|
|
End Function
|
|
Private Function ReadFeatureParams(ParamList As List(Of BTLParamM)) As Boolean
|
|
Dim bToRecalc As Boolean = False
|
|
' leggo valore parametro da struttura geometrica
|
|
For Each Param As BTLParamM In ParamList
|
|
If Param.nType = BTLParamType.DOUBLE_ Or Param.nType = BTLParamType.LENGTH Then
|
|
Dim dParamValue As Double = 0
|
|
Dim sReadName As String = Param.sName
|
|
If IsFreeContour() Then
|
|
Select Case Param.sName
|
|
Case "P05"
|
|
sReadName = "DEPTH"
|
|
Case "P07"
|
|
sReadName = "PCKT"
|
|
Case "P13"
|
|
sReadName = "CNT_TYPE"
|
|
Case "P14"
|
|
sReadName = "CNT_DATA"
|
|
Case "P15"
|
|
sReadName = "CNT_PAR"
|
|
End Select
|
|
End If
|
|
If Not EgtGetInfo(m_nFeatureId, sReadName, dParamValue) Then
|
|
dParamValue = 0
|
|
End If
|
|
' se è un parametro P setto il valore letto nel DB
|
|
If Param.bIsP Then
|
|
Param.SetValue(dParamValue)
|
|
Else
|
|
' recupero info Custom
|
|
Dim nCustom As Integer = 0
|
|
EgtGetInfo(nFeatureId, Param.sName & "A", nCustom)
|
|
'se pezzo parent di tipo Part
|
|
If TypeOf m_ParentPart Is PartM Then
|
|
Param.SetValue(dParamValue)
|
|
' se è un parametro Q verifico nel progetto se sia un valore custom
|
|
ElseIf nCustom = 1 Then
|
|
Param.SetValue(dParamValue)
|
|
Param.bCustom = True
|
|
' altrimenti lo setto al valore di default
|
|
Else
|
|
Param.SetValue(Param.dDefault)
|
|
Dim dReadValue As Double = 0
|
|
EgtGetInfo(m_nFeatureId, Param.sName, dReadValue)
|
|
If dReadValue <> Param.dDefault Then
|
|
' Disabilito segnalazione modificato
|
|
Dim DisableMgr As New DisableModifiedMgr
|
|
EgtSetInfo(m_nFeatureId, Param.sName, Param.dDefault)
|
|
'se pezzo parent di tipo BTL
|
|
If TypeOf m_ParentPart Is BTLPartM AndAlso m_bDO Then
|
|
Dim BTLPartM As BTLPartM = DirectCast(m_ParentPart, BTLPartM)
|
|
EgtRemoveInfo(BTLPartM.m_nPartId, ITG_PROJ_ERR)
|
|
EgtRemoveInfo(BTLPartM.m_nPartId, ITG_PROJ_MSG)
|
|
EgtRemoveInfo(BTLPartM.m_nPartId, ITG_PROJ_FALL)
|
|
EgtRemoveInfo(BTLPartM.m_nPartId, ITG_PROJ_ROT)
|
|
End If
|
|
' Ripristino stato segnalazione modifica
|
|
DisableMgr.ReEnable()
|
|
bToRecalc = True
|
|
End If
|
|
Param.bCustom = False
|
|
End If
|
|
End If
|
|
ElseIf Param.nType = BTLParamType.STRING_ Then
|
|
Dim sParamValue As String = String.Empty
|
|
EgtGetInfo(m_nFeatureId, Param.sName, sParamValue)
|
|
Param.SetValue(sParamValue)
|
|
ElseIf Param.nType = BTLParamType.COMBO Then
|
|
Dim nParamValue As Integer
|
|
EgtGetInfo(m_nFeatureId, Param.sName, nParamValue)
|
|
Param.nSelValue = nParamValue
|
|
End If
|
|
Next
|
|
' Se necessario ricalcolo, lo eseguo
|
|
If Not IsFreeContour() And bToRecalc Then
|
|
' Disabilito segnalazione modificato
|
|
Dim DisableMgr As New DisableModifiedMgr
|
|
UpdateParams()
|
|
' Ripristino stato segnalazione modifica
|
|
DisableMgr.ReEnable()
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
' funzione che rilegge i parametri Q
|
|
Public Function ReadQValues()
|
|
Return ReadFeatureParams(m_QBTLParamMList)
|
|
End Function
|
|
' funzione che setta i valori di default a tutti i parametri
|
|
Public Function SetDefaultValues() As Boolean
|
|
Return SetDefaultValues(m_PBTLParamMList) And SetDefaultValues(m_QBTLParamMList)
|
|
End Function
|
|
Private Function SetDefaultValues(ParamList As List(Of Core.BTLParamM)) As Boolean
|
|
' leggo valore parametro da struttura geometrica
|
|
For Each Param As BTLParamM In ParamList
|
|
If Param.nType = BTLParamType.DOUBLE_ Or Param.nType = BTLParamType.LENGTH Then
|
|
Param.SetValue(Param.dDefault)
|
|
ElseIf Param.nType = BTLParamType.STRING_ Then
|
|
Param.SetValue(Param.sDefault)
|
|
ElseIf Param.nType = BTLParamType.COMBO Then
|
|
Param.nSelValue = Param.dDefault
|
|
End If
|
|
Next
|
|
Return False
|
|
End Function
|
|
|
|
' funzione che calcola array dei valori dei parametri
|
|
Public Function CalcParamArray(ByRef vPar() As Double, ByRef sPar As String, ByRef vParQ() As String) As Boolean
|
|
' verifico che lista parametri non sia vuota
|
|
If Not IsNothing(m_PBTLParamMList) AndAlso m_PBTLParamMList.Count > 0 Then
|
|
' calcolo lunghezza array Parametri
|
|
Dim nLastParId As Integer = m_PBTLParamMList(m_PBTLParamMList.Count - 1).nId - 1
|
|
Dim vTempPar(nLastParId) As Double
|
|
Dim sTempPar As String = String.Empty
|
|
' carico tutti i parametri su array
|
|
For ParIndex = 0 To m_PBTLParamMList.Count - 1
|
|
Dim BTLPar As BTLParamM = DirectCast(m_PBTLParamMList(ParIndex), BTLParamM)
|
|
Select Case BTLPar.nType
|
|
Case BTLParamType.DOUBLE_, BTLParamType.LENGTH
|
|
vTempPar(BTLPar.nId - 1) = BTLPar.dValue
|
|
Case BTLParamType.STRING_
|
|
sTempPar = BTLPar.sValue
|
|
End Select
|
|
Next
|
|
vPar = vTempPar
|
|
sPar = If(String.IsNullOrEmpty(sTempPar), " ", sTempPar)
|
|
End If
|
|
' Determino parametri Q
|
|
Dim vTempParQ(m_QBTLParamMList.Count) As String
|
|
For ParQIndex = 0 To m_QBTLParamMList.Count - 1
|
|
Dim ParQ As BTLParamM = m_QBTLParamMList(ParQIndex)
|
|
vTempParQ(ParQIndex) = ParQ.sName & ":" & If(ParQ.nType <> BTLParamType.STRING_, DoubleToString(ParQ.dValue, 3), ParQ.sValue)
|
|
Next
|
|
Dim sDO As String = ""
|
|
If Not bDO Then sDO = 0
|
|
vTempParQ(m_QBTLParamMList.Count) = "DO:" & sDO
|
|
vParQ = vTempParQ
|
|
Return True
|
|
End Function
|
|
|
|
' funzione che aggiorna parametri della feature
|
|
Public Function UpdateParams(nNewGRP As Integer, nNewPRC As Integer, nNewSIDE As Integer, sNewDesc As String, nNewProcId As Integer,
|
|
frNewRef As Frame3d, vNewParP() As Double, sNewPar As String, vNewParQ As String(), Optional bUpdate As Boolean = True) As Boolean
|
|
' Recupero parametri originali della feature
|
|
Dim vPar() As Double = {}
|
|
Dim sPar As String = String.Empty
|
|
Dim vParQ() As String = {}
|
|
CalcParamArray(vPar, sPar, vParQ)
|
|
' recupero eventuali percorsi originali della feature
|
|
Dim nCrvId As Integer = GDB_ID.NULL
|
|
Dim nCrv2Id As Integer = GDB_ID.NULL
|
|
GetFreeContourPaths(nCrvId, nCrv2Id)
|
|
' modifica della feature con i nuovi parametri
|
|
Dim nFeatureId As Integer = EgtBeamModifyProcess(Me.nFeatureId, nNewGRP, nNewPRC, nNewSIDE, sNewDesc, nNewProcId,
|
|
frNewRef, vNewParP, sNewPar, vNewParQ, nCrvId, nCrv2Id, bUpdate)
|
|
Dim bOk As Boolean = nFeatureId <> GDB_ID.NULL
|
|
If bOk Then
|
|
' riporto parametri Q custom
|
|
For Each QPar In QBTLParamMList
|
|
If QPar.bCustom Then EgtSetInfo(nFeatureId, QPar.sName & "A", 1)
|
|
Next
|
|
EgtSetInfo(nFeatureId, BTL_FTR_PRIORITY, nPriority)
|
|
SetFeatureId(nFeatureId)
|
|
' imposto modificato per copie
|
|
MyMachGroupPanelM.SetDuploModified(ParentPart.nPartId)
|
|
bOk = True
|
|
Else
|
|
' Impossibile creare una feature con questi valori - ERRORE
|
|
MessageBox.Show(EgtMsg(61852), EgtMsg(30007))
|
|
nFeatureId = EgtBeamModifyProcess(Me.nFeatureId, Me.nSelGRP, Me.nPRC, Me.nSelSIDE, "", Me.nPRID,
|
|
Me.frFRAME, vPar, sPar, vParQ, nCrvId, nCrv2Id)
|
|
SetFeatureId(nFeatureId)
|
|
bOk = False
|
|
End If
|
|
Return bOk
|
|
End Function
|
|
Public Function UpdateParams(Optional bUpdate As Boolean = True) As Boolean
|
|
' aggiorno la feature con nuovo valore
|
|
Dim vPar() As Double = {}
|
|
Dim sPar As String = String.Empty
|
|
Dim vParQ() As String = {}
|
|
CalcParamArray(vPar, sPar, vParQ)
|
|
Return UpdateParams(Me.nSelGRP, Me.nPRC, Me.nSelSIDE, Me.sDES, Me.nPRID, Me.frFRAME, vPar, sPar, vParQ, bUpdate)
|
|
End Function
|
|
|
|
' funzione che restituisce se la feature è un contorno libero
|
|
Public Function IsFreeContour() As Boolean
|
|
Return m_nPRC = 250 OrElse m_nPRC = 251 OrElse m_nPRC = 252
|
|
End Function
|
|
|
|
' funzione che restituisce i percorsi associati ai contorni liberi
|
|
Public Function GetFreeContourPaths(ByRef nCrvId As Integer, ByRef nCrv2Id As Integer) As Boolean
|
|
' imposto eventuali percorsi
|
|
nCrvId = GDB_ID.NULL
|
|
nCrv2Id = GDB_ID.NULL
|
|
If IsFreeContour() Then
|
|
Dim sAuxId As String = ""
|
|
If EgtGetInfo(nFeatureId, "AUXID", sAuxId) Then
|
|
Dim sAuxIdSplit() As String = sAuxId.Split(","c)
|
|
Dim nAuxId As Integer
|
|
If Integer.TryParse(sAuxIdSplit(0), nAuxId) Then
|
|
nCrvId = nFeatureId + nAuxId
|
|
Dim nAux2Id As Integer
|
|
If sAuxIdSplit.Count > 1 Then
|
|
If Integer.TryParse(sAuxIdSplit(1), nAux2Id) Then
|
|
nCrv2Id = nFeatureId + nAux2Id
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
' funzione che restituisce se la feature è un Variant
|
|
Public Function IsVariant() As Boolean
|
|
Return m_nPRC = 900
|
|
End Function
|
|
|
|
#End Region ' METHODS
|
|
|
|
End Class
|
|
|