Ankündigung

Einklappen
Keine Ankündigung bisher.

RS-COM mit RStab 6

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

  • RS-COM mit RStab 6

    Hallo,
    Ich bin gerade dabei das Beispiel zum Knoten setzen aus der Programmbeschreibung (2004) für R-Stab 6 zum laufen zu bringen und dabei auf einige Fragen gestoßen.

    Wenn ich den unten stehenden Code ausführe (Ich arbeite mit Visual Basic 2005 Express), hängt das Programm immer an der Aussage:
    RS_StructureData.rsSetNodeArr(knotenzahl, Knoten(0))

    Fehlermeldung:
    COMException wurde nicht behandelt
    Ausnahme von HRESULT: 0xC0000005


    Kann mir jemand sagen, woran das liegt und wie man das beheben kann.
    (Bitte korrigiert auch den anderen Code, wenn dort etwas zu kompliziert oder unschön ist)


    Vielen Dank schon mal im Voraus

    Viele Grüße
    Martin



    Hier ist der mein Code:

    Public Class Form1
    Dim RS_App As RSTAB6.IrsApplication
    Dim RS_Structure As RSTAB6.IrsStructure
    Dim RS_StructureData As RSTAB6.IrsStructuralData

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    RS_Structure = GetObject(, "RStab6.Structure")
    'Weist RS-Structure die aktuelle Rstab Datei (Struktur) zu

    RS_App = RS_Structure.rsGetApplication
    'Weist RS-App die aktuelle Rstab Application zu

    RS_App.rsLockLicence()
    'Belegt eine Liznes von RS-COM. Muss ausgeführt werden, damit RS-Com funktioniert.

    RS_StructureData = RS_Structure.rsGetStructuralData

    Dim Knoten() As RSTAB6.RS_NODE
    Dim knotenzahl As Integer
    Dim i As Integer
    knotenzahl = 3
    ReDim Knoten(knotenzahl)
    For i = 0 To knotenzahl - 1
    Knoten(i).iNo = i + 1
    Knoten(i).iRefNodeNo = 0
    Knoten(i).csType = RSTAB6.RS_CS_TYPE.CS_CARTESIAN
    Knoten(i).x = i + 5
    Knoten(i).y = i + 6
    Knoten(i).z = i + 7
    Knoten(i).strComment = ""
    Knoten(i).ID = "ID NUMBER"

    MessageBox.Show("Number:" & Knoten(i).iNo.ToString & " RefNode:" & Knoten(i).iRefNodeNo.ToString & " X:" & Knoten(i).x.ToString & " Y:" & Knoten(i).y.ToString & " Z:" & Knoten(i).z.ToString & " Comment:" & Knoten(i).strComment & " ID:" & Knoten(i).ID)

    Next i

    RS_StructureData.rsPrepareModification()

    RS_StructureData.rsSetNodeArr(knotenzahl, Knoten(0)) 'Hier ist das Problem

    RS_StructureData.rsFinishModification()
    RS_App.rsUnlockLicence() 'Gibt RStab lizenz wieder frei
    End Sub
    End Class
    Zuletzt geändert von MartinM; 27.10.2007, 14:27.

  • #2
    AW: RS-COM mit RStab 6

    Hallo MartinM,

    versuch es mal damit:

    RS_StructureData.rsSetNodeArr(knotenzahl, Knoten)

    Knoten(0) ist muss nur bei VBA verwendet werden.
    Hier müsste der NET Umgebung eigentlich auch einen Fehler melden.

    Hoffe das hilft weiter.

    Kommentar


    • #3
      AW: RS-COM mit RStab 6

      Danke erstmal für die schnelle Antwort.

      Leider hat das mir nicht richtig weitergeholfen.
      (Allerdings bekomme ich jetzt eine Brauchbare Fehlermeldung)

      Ich kann den Code nicht Kompilieren und "Knoten" ist blau unterstrichen.

      Wenn ich drüberfahre erhalte ich folgende Meldung:

      "
      Der Wert vom Typ: "1-dimensionales Array von RSTAB6.RS_NODE" kann nicht zu "RSTAB6.RS_NODE" konvertiert werden.

      "

      Es muss irgendwie an diesem Array liegen. Ich habe mal zum Test nur einen einzelnen Knoten (mit rsSetNode) gesetzt. Das hat tadellos funktioniert.

      Die Funktion verlangt nach
      rsSetNodeArr(iSize as Integer, byRef pArray AS RSTAB6.RS_NODE)

      Was heißt denn "byRef pArray AS RSTAB6.RS_NODE" ?

      Kommentar


      • #4
        AW: RS-COM mit RStab 6

        Hallo MartinM,

        als Referenz (Verweis) binde ich die RSTAB6.interop.dll in .Net Projekte ein.
        Die Datei liegt unter ...\Dlubal\RSTAB6\.NET\

        Damit klappt es.

        Gruß

        Kommentar


        • #5
          AW: RS-COM mit RStab 6

          Sehr cool.

          Danke. Jetzt funktionierts.

          Merke:

          Wenn man .Net schreibt nicht die COM Library einbetten, sonder die .Net Library


          Gruß
          Martin

          Kommentar

          Lädt...
          X