Ankündigung

Einklappen
Keine Ankündigung bisher.

Hide Application

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hide Application

    Hallo,
    kann mir jemand sagen ob es eine Möglichkeit gibt die RStab Application und Structure nur im Hintergrund laufen zu lassen? Also das RStab komplett unsichtbar ist während die Berechnungen durchgeführt werden.

    Danke im Voraus
    Gruß

  • #2
    AW: Hide Application

    Hallo,

    diese Möglichkeit besteht. RFEM / RSTAB werden über den von Ihnen programmierten Code erst dann sichtbar sofern der Befehl Application.show ausgeführt wird.

    Kommentar


    • #3
      AW: Hide Application

      Hallo,

      Vielen Dank erstmal für die Antwort.

      Sowie ich das versteh, bekommen "IrsStrucuralData", "IrsResults" und "IrsLoads" ihre Werte von "IrsStructure" und benötigen alle Zugriff auf ein Interface. Also benötigt "IrsStructure" ein Interface. Das Interface weise ich der Instanz über "IrsApplication" zu.
      Die einzige Methode in der Dokumentation, über die "IrsApplication" Zugriff auf ein Interface bekommen kann, ist "rsGetActiveStructure". In der Beschreibung der Methode steht "...returns nothing in hidden RStab.", wenn ich den Befehl "rs.ShowApplication" nicht ausführe, hat die Instanz von "IrsApplication" kein Interface auf das es zugreifen kann.

      Daher meine Fragen:
      Ist die Annahme richtig, dass alle Objekte ein Interface benötigen?
      Bekomme ich das Interface auf anderem Wege?

      Danke im Voraus und Gruß

      Kommentar


      • #4
        AW: Hide Application

        Hallo,

        beiliegend finden Sie ein kleines Beispielprojekt (Visual Studio) in dem ich Ihnen eine Berechnung von RSTAB und dem Zusatzmodul STAHL dargestellt habe. Dabei wird die entsprechende Datei über einen Dialog geöffnet, berechnet und gespeichert. Das geschieht hier komplett im Hintergrund. Folgende Sub wird dazu genutzt:

        Sub CalcHidden()
        ' Start calculation in hidden RSTAB
        '--------------------------------------------------------------------------------------------------

        On Error GoTo e

        FormStatus.Show()

        Call Statusbox_Text_Hinzufuegen("Interface Application ...")
        Dim IApp As RSTAB6.Application
        IApp = New RSTAB6.Application

        Call Statusbox_Text_Hinzufuegen("Interface Structure ...")
        Dim IStr As RSTAB6.Structure

        Call Statusbox_Text_Hinzufuegen("Öffne gewählte Struktur ...")
        IStr = IApp.rsOpenStructure(Datei)

        Dim IModule As STEELM.MODULE
        Call Statusbox_Text_Hinzufuegen("Öffne STAHL Modul ...")
        IModule = IStr.rsGetModule("STEELM")

        Dim ICase As STEELM.IstCase
        Call Statusbox_Text_Hinzufuegen("Öffne STAHL Fall ...")
        ICase = IModule.moGetCase(1, STEELM.ITEM_AT.AT_NO)

        Call Statusbox_Text_Hinzufuegen("Berechne STAHL Modul ...")
        ICase.stResultsCalculate()
        Call Statusbox_Text_Hinzufuegen("Berechnung beendet ...")

        Call Statusbox_Text_Hinzufuegen("Speichere Datei ...")
        IStr.rsSaveStructure(Datei)

        e:
        If Err.Number <> 0 Then MsgBox(Err.Description, , Err.Source)

        ICase = Nothing
        IModule = Nothing
        IStr = Nothing
        IApp = Nothing
        Call Statusbox_Text_Hinzufuegen("Berechnung durchgeführt ...")
        End Sub

        Ich hoffe ich konnte Ihnen damit Ihre Fragen beantworten.
        Angehängte Dateien

        Kommentar


        • #5
          AW: Hide Application

          Hallo,

          Danke das hilft mir schon einmal weiter. Also bekomme ich auch über "rsOpenStructure" Zugriff auf das Interface. Das hatte ich bis jetzt nicht gemacht, weil in der Dokumentation nicht steht, dass hier ein Interface zurückgegeben wird. Versucht habe ich dies auch nicht, da ich in meinem Fall kein bestehendes Projekt habe. Gibt es auch die Möglichkeit das Projekt auf diese Weise zu erstellen?
          Die Methode "rsSaveStructure" würde das Speichern ermöglichen, aber das schlägt bei mir fehl. Ich schätze weil kein Dateipfad definiert ist, bis jetzt konnte ich hierfür keine Methode finden. Mit "rsGetAppPath" ist über eine Textbox-Ausgabe auch zu sehen ist, dass der Pfad leer ist. Das Einzige, was ich mir vorstellen könnte, wäre eine Testdatei im DLubal-Verzeichnis abzulegen und diese für den Zugriff zu nutzen. Oder gibt es eine elegantere Methode?

          Gruß

          Kommentar

          Lädt...
          X