Domande frequenti (FAQ)

Cerca FAQ

Show Filter Hide Filter





Assistenza clienti 24/7

Oltre al nostro supporto tecnico (ad es. tramite chat), sul nostro sito internet troverai risorse che potrebbero esserti d'aiuto nella progettazione con Dlubal Software.

Newsletter

Ricevi regolarmente informazioni riguardo notizie, consigli utili, eventi, offerte speciali e buoni.

  • Risposta

    È possibile utilizzare l'interfaccia COM per salvare i grafici negli appunti e stamparli automaticamente da lì.
  • Risposta

    La distribuzione del carico di un carico di linea è definita dall'attributo "Distribuzione". L'attributo "Distribuzione" è del tipo "LoadDistributionType" e le voci dell'elenco della casella combinata sono del tipo "Stringa", quindi è richiesta la conversione del tipo. La funzione "GetLoadDistributionType" converte una voce dell'elenco del tipo String in LoadDistributionType.

    '------------------------------------------------- -------------------------------------------------
    Funzione GetLoadDistributionType (sType As String) As LoadDistributionType
    '------------------------------------------------- -------------------------------------------------
        
    Se sType = "Concentrated2x2QType" Allora
    GetLoadDistributionType = Concentrated2x2QType
    ElseIf sType = "Concentrated2xQType" Quindi
    GetLoadDistributionType = Concentrated2xQType
    ElseIf sType = "ConcentratedNxQType" Quindi
    GetLoadDistributionType = ConcentratedNxQType
    ElseIf sType = "ConcentratedType" Quindi
    GetLoadDistributionType = ConcentratedType
    ElseIf sType = "ConcentratedUserDefinedType" Quindi
    GetLoadDistributionType = "ConcentratedUserDefinedType"
    ElseIf sType = "LinearType" Quindi
    GetLoadDistributionType = LinearType
    ElseIf sType = "LinearXType" Quindi
    GetLoadDistributionType = LinearXType
    ElseIf sType = "LinearYType" Quindi
    GetLoadDistributionType = LinearYType
    ElseIf sType = "LinearZType" Quindi
    GetLoadDistributionType = LinearZType
    ElseIf sType = "ParabolicType" Quindi
    GetLoadDistributionType = ParabolicType
    ElseIf sType = "RadialType" Quindi
    GetLoadDistributionType = RadialType
    ElseIf sType = "TaperedType" Quindi
    GetLoadDistributionType = TaperedType
    ElseIf sType = "TrapezoidalType" Quindi
    GetLoadDistributionType = TrapezoidalType
    ElseIf sType = "UniformType" Quindi
    GetLoadDistributionType = UniformType
    ElseIf sType = "VaryingType" Quindi
    GetLoadDistributionType = VaryingType
    Termina se

    Termina funzione

    La procedura "SetLineLoad" crea un carico di linea sulla linea 1. La distribuzione del carico viene letta dalla casella combinata "LoadDistribution" del foglio di lavoro di Excel "LineLoad".

    '------------------------------------------------- -------------------------------------------------
    Sottotitolo SetLineLoads ()
    '------------------------------------------------- -------------------------------------------------
    Dim modello Come RFEM5.model
    Dim load come RFEM5.ILoadCase
    Dim dati (0) As RFEM5.LineLoad
    'Ottieni l'interfaccia per il modello
    Imposta modello = GetObject (, "RFEM5.Model")
        
    'Blocca la licenza COM e l'accesso al programma
    model.GetApplication.LockLicense
    In caso di errore Vai a e
    'Ottieni l'interfaccia per i carichi
    Imposta load = model.GetLoads.GetLoadCase (0, AtIndex)
    'Imposta i parametri per il carico
    dati (0) .No = 1
    data (0) .LineList = "1"
    data (0) .Type = ForceType
    'Carica distribuzione dalla casella combinata
    data (0) .Distribution = GetLoadDistributionType (Fogli di lavoro ("LineLoad"). DropDowns ("LoadDistribution"). Elenco (Fogli di lavoro ("LineLoad"). DropDowns ("LoadDistribution"). ListIndex))
    data (0) .Direction = LocalZType
    dati (0) .Distanza A = 11
    dati (0) .Distanza B = 22
    data (0) .RelativeDistances = True
    data (0). Magnitudine 1 = 4000
    data (0). Magnitudine 2 = 5000
    data (0). Magnitudine 3 = 6000
    data (0) .OverTotalLength = False
    data (0) .Commento = "carico di linea 1"
    'Trasferisci carico
    load.PrepareModification
    load.SetLineLoads data
    load.FinishModification
        
    e: If Err.Number <> 0 Quindi MsgBox Err.Description,, Err.Source
    Imposta carico = Nulla
    'La licenza COM è sbloccata, l'accesso al programma è di nuovo possibile
    model.GetApplication.UnlockLicense
    Imposta modello = Nulla


    End Sub

    Il codice sorgente è disponibile in Download .
  • Risposta

    La seguente macro VBA mostra la creazione di due eccentricità delle aste. Il codice sorgente è disponibile in Download .

    '------------------------------------------------- -------------------------------------------------
    Sub SetEccs ()
    '------------------------------------------------- -------------------------------------------------
    Dim modello Come RFEM5.model
    Dim dati come IModelData
    Dim ecc. (1) As RFEM5.MemberEccentricity

    'Ottieni l'interfaccia per il modello
    Imposta modello = GetObject (, "RFEM5.Model")
        
    'Blocca la licenza COM e l'accesso al programma
    model.GetApplication.LockLicense

    In caso di errore Vai a e
    'Ottieni l'interfaccia per i dati del modello
    Imposta data = model.GetModelData

    'Definire l'eccentricità 1
    ecc (0) .No = 1
    ecc (0) .ReferenceSystem = LocalSystemType
    ecc (0) .Start.X = 0.01
    ecc (0) .Start.Y = 0.02
    ecc (0) .Start.Z = 0.03
    ecc. (0) .End.X = -0.01
    ecc (0) .End.Y = -0.02
    ecc (0) .End.Z = -0.03
    ecc (0) .Commento = "eccentricità 1"
        
    'Definire l'eccentricità 2
    ecc (1) .No = 2
    ecc (1) .ReferenceSystem = GlobalSystemType
    ecc (1) .Start.X = -0.07
    ecc. (1) .Start.Y = -0.08
    ecc. (1) .Start.Z = -0.09
    ecc. (1) .End.X = 0.07
    ecc (1) .End.Y = 0.08
    ecc (1) .End.Z = 0.09
    ecc (1) .Comment = "eccentricità 2"
        
    'Trasferire le eccentricità delle aste
    data.PrepareModification
    data.SetMemberEccentricities ecc

    e: data.FinishModification
    If Err.Number <> 0 Quindi MsgBox Err.Description,, Err.Source
    Imposta dati = niente
    'La licenza COM è sbloccata, l'accesso al programma è di nuovo possibile
    model.GetApplication.UnlockLicense
    Imposta modello = Nulla

    End Sub
  • Risposta

    È possibile utilizzare l'interfaccia COM per definire le condizioni del vincolo esterno non lineare. Il video e il codice allegati mostrano un esempio dell'errore del supporto.
  • Risposta

    Inizializzando una variabile del tipo di Applicazione (interfaccia) con "nuovo", RFEM/RSTAB viene avviato in background. Con questa variabile, è anche possibile creare un nuovo modello utilizzando il metodo "CreateModel", o chiudere il programma utilizzando il comando "Chiudi".

    L'esempio seguente mostra come avviare RSTAB, creare un modello con un nodo nel programma e chiudere il programma:


    Sottotitoli RSTAB_open_close ()

    Dim nome file come stringa
    nomefile = Application.ActiveSheet.Cells (7, 3)

    'avvia rfem
    Dim iApp come RSTAB8.Application
    Imposta iApp = New RSTAB8.Application

    iApp.LockLicense
    iApp.Show

    In caso di errore Vai a E

    'Crea modello
    Dim iMod As RSTAB8.IModel2
    Imposta iMod = iApp.CreateModel (nome file)
        
    'Aggiungi dati al modello
    Dim nd As RSTAB8.Node
    nd.no = 10
    nd.X = 1
    nd.Y = 2
    nd.Z = 3
        
    Dim iModdata As RSTAB8.iModelData
    Imposta iModdata = iMod.GetModelData
        
    iModdata.PrepareModification
    iModdata.SetNode nd
    iModdata.FinishModification
        
    iMod.Save il nomefile


    E: If Err.Number <> 0 Quindi MsgBox Err.description,, Err.Source
        
    Imposta iModdata = Nothing
    Imposta iMod = Nothing
    iApp.UnlockLicense
    iApp.Close
    Imposta iApp = Nothing
        
    End Sub


    Il comando "iApp.Show" è opzionale. Ciò consente di visualizzare il programma normalmente, non in background.

    In Download, è possibile trovare una macro di Excel con le subroutine per RFEM e RSTAB.

    Si prega di notare che la cartella in cui viene creato il file deve esistere.

  • Risposta

    Le tensioni di una superficie possono essere visualizzate tramite l'interfaccia COM. Innanzitutto, è necessaria l'interfaccia per il modello (IModel) e quindi l'interfaccia per il calcolo (ICalculation2). Utilizzando questa interfaccia, è possibile ottenere l'interfaccia per i risultati (IResults2):

    Sottotesses_surfaces_example ()
    Dim iApp come RFEM5.Application
    Dim iModel As RFEM5.model
    Imposta iModel = GetObject (, "RFEM5.Model")

    In caso di errore Vai a E

    In caso contrario, iModel non è niente
    'ottenere l'interfaccia dal modello
    Impostare iApp = iModel.GetApplication
    iApp.LockLicense
        
    'ottenere l'interfaccia dal calcolo
    Dim iCalc As RFEM5.ICalculation2
    Impostare iCalc = iModel.GetCalculation
        
    'ottenere l'interfaccia dai risultati dal loadcase 1
    Dim iRes As RFEM5.IResults2
    Impostare iRes = iCalc.GetResultsInFeNodes (LoadCaseType, 1)
        
    'ottenere stress equivalenti
    Dim str_equ () As RFEM5.SurfaceEquivalentStresses
    str_equ = iRes.GetSurfaceEquivalentStresses (1, AtNo, VonMisesHypothesis)
        
    End If

    E:
    If Err.Number <> 0 Quindi
    MsgBox Err.Number & "" & Err.description
    End If

    In caso contrario, iApp non è niente
    iApp.UnlockLicense
    End If

    La funzione GetSurfaceEquivalentStresses richiede la specifica dell'ipotesi di calcolo. In questo caso, vengono visualizzati i risultati della sollecitazione di von Mises. Si noti che l'interfaccia COM utilizza le unità SI in modo che lo stress sia trasferito in N/m².

  • Risposta

    I file * .dll e * .tlb probabilmente non sono stati aggiornati correttamente sul tuo computer. Si prega di procedere come segue:

    1. Rinominare le seguenti cartelle in Dlubal.bak:

    C: \ Programmi (x86) \ File comuni \ Dlubal

    C: \ Programmi \ File comuni \ Dlubal


    2. Reinstallare RFEM o RSTAB.

    3. Spostare i file dalle cartelle Dlubal appena create nelle rispettive cartelle Dlubal.bak (sovrascrivere tutto).

    4. Rinominare la cartella Dlubal.bak in Dlubal.

  • Risposta

    In linea di principio, una sezione è un elemento, come un membro, ed è anche creata allo stesso modo. Innanzitutto, è necessaria l'interfaccia con gli oggetti. Per un membro, questo sarebbe IModelData, e per le sezioni, sarebbe ISections. Questa interfaccia è disponibile in IModel3:

    Sub test_section ()
    'ottenere l'interfaccia dal modello aperto e bloccare la licenza/programma
    Dim iModel As RFEM5.IModel3
    Imposta iModel = GetObject (, "RFEM5.Model")
    iModel.GetApplication.LockLicense
        
    In caso di errore Vai a E
        
    Dim iSecs come RFEM5.ISections
    Impostare iSecs = iModel.GetSections ()

    Tutte le sezioni create in precedenza vengono eliminate per prime, quindi vengono create due nuove sezioni.
    La prima sezione dovrebbe essere una sezione solida con un'area in sezione visibile (vedere la Figura 01). I dati vengono inseriti in modo simile a quello di RFEM. Come tipo, "SectionOnSectionalArea" è selezionato, i punti d'angolo della sezione sono impostati usando "EdgePoint", e un "Vector" definisce la direzione della sezione:

    'prima cancella tutte le sezioni
    iSecs.PrepareModification
    iSecs.DeleteObjects ("All")
    iSecs.FinishModification
        
    'imposta la sezione su solido
    Dim sec Come RFEM5. Sezione
    sec.EdgePointA.X = 2
    sec.EdgePointA.Y = 5
    sec.EdgePointA.Z = 0
    sec.EdgePointB.X = 2
    sec.EdgePointB.Y = 8
    sec.EdgePointB.Z = 0
        
    sec.no = 1
    sec.Name = "sezione solida"
    sec.Plane = GlobalPlaneInPositiveX
    sec.ShowValuesInIsolines = False
    sec.Type = SectionOnSolidSectionLine
    sec.ObjectList = "1"
        
    iSecs.PrepareModification
    iSecs.SetSection sec
    iSecs.FinishModification

    Come già noto da altri elementi, la nuova sezione viene infine trasferita in un blocco Prepare-/FinishModification. Come seconda sezione, deve essere creata una sezione di superficie (vedere la Figura 02). Per questo, è necessario utilizzare il tipo "SectionViaSurfacePlane". Oltre al vettore della direzione della sezione, è necessario selezionare il piano di visualizzazione dei risultati per la sezione della superficie. Nel seguente esempio, il piano xy è selezionato impostando "GlobalPlaneInPositiveX".

    'imposta la sezione sulla superficie
    sec.EdgePointA.X = 2
    sec.EdgePointA.Y = 0
    sec.EdgePointA.Z = 0
    sec.EdgePointB.X = 2
    sec.EdgePointB.Y = 3
    sec.EdgePointB.Z = 0
        
    sec.no = 2
    sec.Name = "sezione di superficie"
    sec.Plane = GlobalPlaneInPositiveX
        
    sec.ShowValuesInIsolines = True
    sec.Type = SectionViaSurfacePlane
    sec.ObjectList = "1"
        
    sec.Vector.X = 0
    sec.Vector.Y = 0
    sec.Vector.Z = 1
        
    iSecs.PrepareModification
    iSecs.SetSection sec
    iSecs.FinishModification

    È anche possibile ottenere i risultati di una sezione utilizzando il metodo separato "GetResultsInSection" dell'interfaccia "IResults2". Di seguito, si ottengono le forze di taglio sulla sezione della superficie. La distribuzione delle forze interne è impostata su "Continuo nelle superfici" mediante "Distribuzione continua con oggetti":

    'ottenere risultati
    Dim iCalc As ICalculation2
    Impostare iCalc = iModel.GetCalculation
        
    Dim iRes As IResults2
    Impostare iRes = iCalc.GetResultsInFeNodes (LoadCaseType, 1)
        
    Dim secRes () Come RFEM5.SectionResult
    secRes = iRes.GetResultsInSection (2, AtNo,
    ShearForceVy, ContinuousDistributionWithinObjects, False)

    In Download , è possibile trovare la macro di Excel e il file di prova per comprendere il programma.
  • Risposta

    Per calcolare solo casi di carico specifici, combinazioni di carico o combinazioni di risultati allo stesso modo del comando "Per calcolare ..." (vedere la Figura 01), è possibile utilizzare il metodo CalculateBatch dell'interfaccia ICalculation. Per il trasferimento, il metodo prevede un campo con il tipo di carico di Caricamento. Questo caricamento include il numero del carico e il tipo (ad esempio, una combinazione di carico):

    Sotto batch_test ()
        
    'ottenere l'interfaccia dal modello aperto e bloccare la licenza/programma
    Dim iModel As RFEM5.IModel3
    Imposta iModel = GetObject (, "RFEM5.Model")
    iModel.GetApplication.LockLicense
        

    On Error Vai a e
        
    'ottenere l'interfaccia per il calcolo
    Dim iCalc As ICalculation2
    Impostare iCalc = iModel.GetCalculation
        
    'crea un array con i tipi di caricamento
    Dim loadings (3) Come caricamento
    loadings (0) .no = 1
    loadings (0) .Type = LoadCaseType
        
    loadings (1) .no = 4
    loadings (1) .Type = LoadCaseType
        
    loadings (2) .no = 4
    loadings (2) .Type = LoadCombinationType
        
    'calcola tutti i carichi dall'array in una sola volta
    iCalc.CalculateBatch loadings

    e: If Err.Number <> 0 Quindi MsgBox Err.description,, Err.Source
        
    Set iModelData = Nothing
    iModel.GetApplication.UnlockLicense
    Impostare iModel = Nothing

    End Sub
  • Risposta

    Un'imperfezione è considerata come un carico e viene trasferita tramite l'interfaccia del caso di carico. A condizione che l'interfaccia al modello sia già stata importata, l'interfaccia ai carichi (ILoads) seguita dall'interfaccia per Load Case 1 (ILoadCase) sarà successivamente importata, se è già stata creata prima:

    'imposta i valori di carico
    Dim iLoads come iLoads
    Imposta iLoads = model.GetLoads
            
    'Ottiene il caso di carico
    Dim iLc1 As ILoadCase
    Imposta iLc1 = iLoads.GetLoadCase (1, AtNo)
            
    'Definire l'imperfezione
    Dim imperf come imperfezione
    imperf.Comment = "test"
    imperf.Direction = LocalZType
    imperf.Inclinazione = 200
    imperf.no = 1
    imperf.ObjectList = 1
    imperf.Precamber = 300
    imperf.PrecamberActivity = ActivityAccording_EN_1993_1_1
            
    'imposta l'imperfezione
    iLc1.PrepareModification
    iLc1.SetImperfection imperf
    Modifica iLc1.Finish

    I dati dell'imperfezione vengono quindi compilati prima, qui per l'asta 1, e quindi trasferiti all'interno del blocco Prepare-/FinishModification del caso di carico delle interfacce.

1 - 10 di 32

Contattaci

Hai trovato la tua domanda?
In caso contrario, contattaci gratuitamente tramite e-mail, chat o il forum di supporto, o inviaci la tua domanda tramite il modulo online.

+39 051 9525 443

info@dlubal.it

Primi passi

Primi passi

Offriamo suggerimenti e consigli utili per aiutarti a familiarizzare con i programmi principali RFEM e RSTAB.

Simulazione del vento e Generazione carico da vento

Con il programma stand-alone RWIND Simulation, i flussi di vento attorno a strutture semplici o complesse, possono essere simulate mediante una galleria del vento digitale.

I carichi del vento generato che agiscono su questi oggetti possono essere importati in RFEM o RSTAB.

Veramente la miglior assistenza tecnica

“Un sentito grazie per le utili informazioni.

Vorrei fare un complimento al vostro team di assistenza tecnica Sono sempre sorpreso da come trovate le risposte alle mie domande velocemente e professionalmente. Nel settore dell'analisi strutturale, uso diversi software compresi di contratti di servizio, ma la vostra assistenza è di gran lunga la migliore.”