Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit starrer Kopplung

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

  • Probleme mit starrer Kopplung

    Falls sich im System starre Kopplungen befinden, kommt es zum Abbruch mit der Fehlermeldung "Index out of range", der Fehler tritt in folgender Zeile auf:

    Ergebnisanzahl = RSLRes.rsGetIFCount(j, AT_INDEX)
    (aus Beispieldatei rs-com.xls)

    Bei j Stäben und k starren Kopplungen kommt es offenbar beim j-k Schleifendurchlauf zum Abbruch.
    In die Tabelle werden Stäbe, die den Typ "starre Kopplung" besitzen, eingetragen, wodurch ich annehme, dass bei der starren Kopplung die Ergebnisanzahl > 0 ist, sonst müsste die auf die o.a. Zeile folgende Bedingung

    If Ergebnisanzahl > 0 Then etc.

    den Wert False ergeben und es dürfte zu keinem Eintrag kommen.
    Ursache des Problems könnte der Stabindex sein, offenbar kommt es nun zu einer Umreihung der Zuordnung der Schnittgrößen, denn in der Tabelle werden nun fälschlicherweise zur betroffenen Stabnummer die Schnittgrößen des folgenden Stabes eingetragen usw. Damit kann ich mir auch den Überlauf des Index erklären, denn für die letzten Stäbe passt dann der Index nicht mehr mit der Stabzahl überein.

    Meine Frage: Kann mir jemand mehr Hintergrundinformation zu dem Problem geben. Als Lösung fällt mir im Moment nur folgendes ein:

    For j = 0 To Stabanzahl - 1
    If Stab(j).Type <> 6 Then '==> Neu: Wenn keine starre Kopplung
    Ergebnisanzahl = RSLRes.rsGetIFCount(j, AT_INDEX)
    If Ergebnisanzahl > 0 Then
    ReDim schnittgr(Ergebnisanzahl - 1) As RS_RESULTS_IF
    usw.
    .
    .
    .
    End If
    Next

    Vielleicht gibt es aber auch eine elegantere Lösung.

    Danke und freundliche Grüße,
    Stefan Graf

  • #2
    AW: Probleme mit starrer Kopplung

    Hallo Stefan,

    es ist so, wie Du vermutest. Man muss die Stäbe aussortieren, die keine Ergebnisse beinhalten. Aber es gibt eine bessere und schnellere Lösung. Man kann alle Schnittgrößen aller Stäbe in ein Array einlesen. In dem Array gibt es dann nur die Stäbe mit Ergebnissen. Ein Beispielmakro liegt bei.

    Viele Grüße
    Walter Rustler

    Ing.-Software Dlubal GmbH
    Angehängte Dateien

    Kommentar

    Lädt...
    X