Ankündigung

Einklappen
Keine Ankündigung bisher.

SteelM Module in C#

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

  • SteelM Module in C#

    Hi,

    ich versuche eine Verbindung mit folgenden Code (C#) zum Stahl Module aufzubauen:


    using RSTAB6;
    using STEELM;


    // Open R-Stab
    IrsStructure RSStr = new RSTAB6.Structure();
    IrsApplication RSApp = RSStr.rsGetApplication();

    RSApp.rsLockLicence();
    RSApp.rsShowApplication();

    RSStr = RSApp.rsOpenStructure(OpenFilePath);
    //OpenFilePath ist ein Sting - Pfad wird weiter oben ausgewählt

    //Get Structural Data of current File
    IrsStructuralData RSStrData = RSStr.rsGetStructuralData(); //Oder RSTopo

    //Start Steel
    MODULE RSSteel = new MODULE();
    RSSteel = RSStr.rsGetModule("STEELM");

    Im Lila eingefärbten Teil, gibt mir Visual Studio (Express) folgenden Fehlermeldung:
    Der Typ "object" kann nicht implizit in "STEELM.MODULE" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)

    Wie bekomme ich trotzdem Zugriff aus das Modul???

    Vielen Dank im Voraus,
    Martin

  • #2
    AW: SteelM Module in C#

    Hallo Martin,
    unter folgenden Link gibt es eine Sammlung von Makros. Die Zip-Datei beinhaltet auch eine xls Datei zu STAHL. Darin findet man Beispiele für alle Zugriffe.

    http://www.dlubal.de/download/rs6com.zip

    Viele Grüße
    Walter Rustler
    Ing.-Software Dlubal

    Kommentar


    • #3
      AW: SteelM Module in C#

      Vielen Dank für die schnelle Antwort

      allerdings kannte ich die Datei schon.

      Folgender Code steht im Excel Makro (Ausschnitt):

      Dim RSStr1 As RSTAB6.Structure
      Dim RSSteel1 As STEELM.Module
      Dim RSSTCase1 As STEELM.IstCase

      On Error GoTo e

      Set RSStr1 = GetObject(, "RSTAB6.Structure")
      RSStr1.rsGetApplication.rsLockLicence
      Set RSSteel1 = RSStr1.rsGetModule("STEELM")


      Im Prinzip habe ich nichts anders gemacht, als den Code in C# übersetzt. Nur funktioniert es nicht.

      Eigentlich dreht es sich nur um folgende Zeilen: (Blau: VBA; Grün C#)

      Dim RSSteel1 As STEELM.Module
      MODULE RSSteel = new MODULE();

      Set RSSteel1 = RSStr1.rsGetModule("STEELM")
      RSSteel = RSStr.rsGetModule("STEELM");

      Woran könnte das liegen?

      Viele Grüße
      Martin

      Kommentar


      • #4
        AW: SteelM Module in C#

        Hallo Martin,

        soweit ich das verstehe, soll ein neuer STAHL-Fall angelegt werden. Das geht in VBA so:

        Sub SCase()

        Dim RSStr As RSTAB6.Structure
        Dim RSSteel As STEELM.Module
        Dim RSSTCase As STEELM.IstCase

        On Error GoTo e

        Set RSStr = GetObject(, "RSTAB6.Structure")
        RSStr.rsGetApplication.rsLockLicence

        ' get interface to module STAHL
        Set RSSteel = RSStr.rsGetModule("STEELM")

        ' set STEEL Case No.1, if it idoes not exist, create new Case
        Set RSSTCase = RSSteel.moSetCase(1, "TEST CASE")
        e:
        If Err <> 0 Then MsgBox Err.Description, , Err.Source

        Set RSSTCase = Nothing
        Set RSSteel = Nothing
        RSStr.rsGetApplication.rsUnlockLicence
        Set RSStr = Nothing
        End Sub

        RSSteel muss als STEELM.Module deklariert werden. Sie machen das mit new Module(). Das scheint aber nicht zu funktionieren.

        Viele Grüße
        Walter Rustler

        Ing.-Software Dlubal GmbH

        Kommentar

        Lädt...
        X