Il software di analisi strutturale RFEM 6 è la base di un sistema software modulare. Il programma principale RFEM 6 viene utilizzato per definire strutture, materiali e carichi di sistemi strutturali piani e spaziali costituiti da piastre, pareti, gusci e aste. Il programma consente anche di creare strutture combinate e di modellare elementi solidi e di contatto.
RSTAB 9 è un potente software di analisi e di verifica per travi 3D, telai o strutture reticolari, che aiuta gli ingegneri strutturisti a soddisfare i requisiti dell'ingegneria civile moderna.
Perdi troppo tempo per il calcolo di sezioni trasversali? Dlubal Software e il programma stand-alone RSECTION facilitano il tuo lavoro definendo ed eseguendo un'analisi delle tensioni per varie sezioni trasversali.
Sai sempre da dove soffia il vento? Dalla direzione dell'innovazione, ovviamente! Con RWIND 2, hai un programma al tuo fianco che utilizza una galleria del vento digitale per la simulazione numerica dei flussi del vento. Il programma simula questi flussi intorno a qualsiasi geometria dell'edificio e determina i carichi del vento sulle superfici.
Stai cercando una panoramica delle zone di carico da neve, delle zone di vento e delle zone sismiche? Allora sei nel posto giusto. Utilizza il Geo-Zone Tool per determinare in modo rapido ed efficiente carichi da neve, velocità del vento e dati sismici in conformità agli Eurocodici e altre norme internazionali.
Vuoi provare la potenza dei programmi Dlubal Software? È la tua opportunità! Con la versione completa gratuita valida 90 giorni, puoi testare completamente tutti i nostri programmi.
La rotazione di un vincolo esterno nodale è definita per mezzo di un sistema di coordinate definito dall'utente. Nell'esempio seguente, un vincolo esterno nodale viene ruotato di 45 ° attorno all'asse z. Non è necessario definire un nuovo sistema di coordinate tramite i nodi. In questo caso, è sufficiente utilizzare l'opzione RotatedSystemType, che consente una rotazione spaziale del vincolo esterno tramite tre rotazioni intorno agli assi x, y e z. La rotazione è inserita in radianti:
Sottotest_nodal_support ()Dim iApp As RFEM5.ApplicationImposta iApp = GetObject (, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Imposta iMod = iApp.GetActiveModelOn Error GoTo e' ottieni l'interfaccia dei modeldataDim iModData As RFEM5.IModelData2Imposta iModData = iMod.GetModelData' ottieni l'interfaccia del supporto nodaleDim iNs As RFEM5.INodalSupportImposta iNs = iModData.GetNodalSupport (1, AtNo)' ottieni i dati del vincolo nodaleDim ns As RFEM5.NodalSupportns = iNs.GetData' modifica i datins.ReferenceSystem = UserDefinedSystemTypens.UserDefinedReferenceSystem.Axis1 = AxisXns.UserDefinedReferenceSystem.Axis2 = AxisYns.UserDefinedReferenceSystem.Type = RotatedSystemTypens.UserDefinedReferenceSystem.RotationAngles.X = 0ns.UserDefinedReferenceSystem.RotationAngles.Y = 0ns.UserDefinedReferenceSystem.RotationAngles.Z = 45 * 3,14159265359/180' imposta i dati del vincolo nodaleiModData.PrepareModificationiNs.SetData nsiModData.FinishModificatione:If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = NothingEnd Sub
Il programma prende il vincolo nodale esistente dal modello attualmente aperto e lo modifica. Poiché il sistema di coordinate definito dall'utente non è una parte diretta dell'interfaccia INodalSupport del vincolo nodale, la rotazione può anche essere trasferita durante la creazione di un vincolo nodale, ovviamente.
I parametri di calcolo di un caso di carico non possono essere inizialmente impostati durante la creazione, ma solo successivamente utilizzando l'interfaccia del caso di carico esistente. Per ottenere l'interfaccia di un caso di carico, devi prima ottenere le interfacce 'IModel' e 'ILoads':
Sottotest_analysis_parameters ()Dim iApp As RFEM5.ApplicationImposta iApp = GetObject (, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Imposta iMod = iApp.GetActiveModelOn Error GoTo e'ottieni l'interfaccia dei carichiDim iLds come RFEM5.iLoadsImposta iLds = iMod.GetLoads'ottieni l'interfaccia del caso di caricoDim iLc As RFEM5.ILoadCaseImposta iLc = iLds.GetLoadCase (1, AtNo)'ottenere i parametri di analisiDim param_analy As RFEM5.AnalysisParametersparam_analy = iLc.GetAnalysisParameters'modifica i parametri di analisiparam_analy.Method = Postcriticoparam_analy.ModifyLoadingByFactor = Trueparam_analy.LoadingFactor = 1.5'...'impostare nuovi parametri di analisiiLds.PrepareModificationiLc.SetAnalysisParameters param_analyiLds.FinishModificatione:If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = NothingEnd Sub
Utilizzare 'ILoads.GetLoadcase' per ottenere l'interfaccia per un caso di carico specifico. Questa interfaccia fornisce le funzioni 'GetAnalysisParameters' e 'SetAnalysisparameters' che è possibile utilizzare per leggere e scrivere i parametri.
La stessa procedura si applica anche alle combinazioni di carico.
Per eliminare gli elementi, c'è la funzione "EliminaOggetti ()" nell'interfaccia dei dati del modello. L'eliminazione di tutte le aste è quindi la seguente:
Si noti che la funzione "EliminaOggetti" funziona solo con il numero dell'oggetto e non con l'indice dell'oggetto. Questi numeri vengono trasferiti come una stringa, separati da virgole.
Per questo motivo, tutti i membri dovevano essere recuperati prima. Quindi il campo dell'asta è stato ripetuto e tutti i numeri dell'asta sono stati inseriti nella stringa.
Gli spostamenti generalizzati delle aste possono essere letti utilizzando, ad esempio, la funzione "GetMemberDeformations()". Questa funzione prevede un numero, il tipo di metodo di conteggio per le aste (numero dell'asta/numero nell'elenco) e quale sistema di coordinate deve essere utilizzato. È possibile selezionare se utilizzare il sistema di assi locale, il sistema di assi principali o il sistema di coordinate globale:
Sub test_results_member_axis()Dim iApp As RFEM5.ApplicationImposta iApp = GetObject(, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Imposta iMod = iApp.GetActiveModelOn Error GoTo e'ottieni l'interfaccia per il calcoloDim iCalc As RFEM5.ICalculation2Imposta iCalc = iMod.GetCalculation'ottieni l'interfaccia per i risultatiDim iRes As RFEM5.IResults2Imposta iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1)'ottieni gli spostamenti generalizzati nel sistema di coordinate localeDim memDefs_L() As RFEM5.MemberDeformationsmemDefs_L = iRes.GetMemberDeformations(1, AtNo, LocalMemberAxes)'ottieni gli spostamenti generalizzati nel sistema di coordinate globaliDim memDefs_G() As RFEM5.MemberDeformationsmemDefs_G = iRes.GetMemberDeformations(1, AtNo, GlobalAxes)'ottieni gli spostamenti generalizzati nel sistema di coordinate principaleDim memDefs_P() As RFEM5.MemberDeformationsmemDefs_P = iRes.GetMemberDeformations(1, AtNo, LocalPrincipalAxes)e:Se Err.Number <> 0 allora MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = NothingEnd Sub
Il programmino legge gli spostamenti generalizzati locali (memDefs_L) negli assi dell'asta e negli assi principali (memDefs_P) e gli spostamenti generalizzati negli assi dell'asta (memDefs_G).
I parametri di un modello possono essere modificati utilizzando l'interfaccia IModel (a partire da IModel3):
Sottoparametro_prova()Dim iApp As RFEM5.ApplicationImposta iApp = GetObject(, "RFEM5.Application")iApp.LockLicenseDim j come interoj = iApp.GetModelCountDim iMod As RFEM5.IModel3Imposta iMod = iApp.GetActiveModelOn Error GoTo eDim formParams() As RFEM5.FormulaParameter' ottieni tutti i parametri della formulaformParams = iMod.GetFormulaParameters' elimina tutti i parametri della formulaiMod.CleanFormulaParameters' imposta l'elenco dei parametri della formulaReDim Mantieni formParams(0 in UBound(formParams, 1) + 1)formParams(UBound(formParams, 1)).Nome = "p"formParams(UBound(formParams, 1)).Unit = "m"formParams(UBound(formParams, 1)).UnitType = LengthUnitTypeformParams(UBound(formParams, 1)).Valore = 0formParams(UBound(formParams, 1)).ValueType = DoubleTypeformParams(UBound(formParams, 1)).Comment = "nuovo parametro"formParams(UBound(formParams, 1)).Formula = "b/3"formParams(UBound(formParams, 1)).RangeOfValues = "(3;5.5>"iMod.SetFormulaParameters formParamse:Se Err.Number <> 0 allora MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = NothingEnd Sub
È possibile leggere tutti i parametri solo utilizzando la funzione GetFormulaParameters(). I parametri modificati o nuovi possono essere trasferiti di nuovo come una lista con la funzione SetFormulaParameters(). Pertanto, nessun singolo parametro può essere letto o scritto.
Si noti che il "Valore" relativo al suo tipo (ValueTyp) e alla sua unità (Unit) deve essere entro i limiti definiti (RangeOfValues), altrimenti apparirà un messaggio di errore. Se il valore è calcolato, come nell'esempio, è irrilevante e il valore calcolato con la formula (Formula) deve essere entro i limiti, se i limiti sono definiti.
Per la selezione degli oggetti, c'è la funzione "SelectObjects" nell'interfaccia IModelData (o IModeldata2 e simili). La funzione prevede un tipo di oggetto e i numeri oggetto come una stringa. Ecco un breve esempio:
Sub select_objects()Dim modello Come RFEM5.modelSet model = GetObject(, "RFEM5.Model")model.GetApplication.LockLicenseOn Error GoTo e Dim iModdata As IModelData2Set iModdata = model.GetModelData ' enable SelectionsiModdata.EnableSelections True ' select nodes 2-3 and lines 1 and 3iModdata.SelectObjects ModelObjectType.NodeObject, "2-3"iModdata.SelectObjects ModelObjectType.LineObject, "1,3" ' deselect nodes and linesiModdata.SelectObjects ModelObjectType.NodeObject, ""iModdata.SelectObjects ModelObjectType.LineObject, "" e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Sourcemodel.GetApplication.UnlockLicenseSet iModdata = NothingSet model = NothingEnd Sub
Nella parte superiore, le selezioni sono attivate, e quindi i nodi da 2 a 3 e le linee 1 e 3 sono selezionate. Quindi, le linee e i nodi sono deselezionati da una stringa vuota.
Se si desidera leggere o modificare gli oggetti selezionati, è necessaria la funzione "IModelData.EnableSelections" (si trova anche sopra nel codice). Se la funzione viene recuperata con "Vero", ad esempio, solo i nodi selezionati saranno ottenuti con la funzione "IModelData.GetNodes ()".