Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Run-time error '-2147467259(80004005)

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Run-time error '-2147467259(80004005) (1709 mal gelesen)
inno69
Mitglied


Sehen Sie sich das Profil von inno69 an!   Senden Sie eine Private Message an inno69  Schreiben Sie einen Gästebucheintrag für inno69

Beiträge: 5
Registriert: 03.05.2017

Windows 7 Professional
Catia V5 R26

erstellt am: 16. Mai. 2017 16:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

ich habe 100 Punkte in einem geometrischen Set ("GS_CP") und möchte diese in ein Array speichern und anschließend mir die X,Y,Z Koordinaten ausgeben lassen. Dies funktioniert bei 99 von 100 Punkten. Bei dem Punkt CP_8-1 bricht das Makro jedoch mit der Fehlermeldung "Run-time error '-2147467259(80004005) The method GetPoint failed" ab.

Folgend der Code:

Code:

Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part1.HybridShapeFactory

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("Design_Work")

Dim hybridBodies2 As HybridBodies
Set hybridBodies2 = hybridBody1.HybridBodies

Dim hybridBody2 As HybridBody
Set hybridBody2 = hybridBodies2.Item("GS_Innenflaeche")

Dim hybridBodies3 As HybridBodies
Set hybridBodies3 = hybridBody2.HybridBodies

Dim hybridBody3 As HybridBody
Set hybridBody3 = hybridBodies3.Item("GS_Fill_Uebung")

Dim hybridBodies4 As HybridBodies
Set hybridBodies4 = hybridBody3.HybridBodies

Dim hybridBody4 As HybridBody
Set hybridBody4 = hybridBodies4.Item("GS_Fill_InnerBoundary")

Dim hybridBodies5 As HybridBodies
Set hybridBodies5 = hybridBody4.HybridBodies

Dim hybridBody5 As HybridBody
Set hybridBody5 = hybridBodies5.Item("GS_PC_Fill_Isoparam")

Dim hybridBodies6 As HybridBodies
Set hybridBodies6 = hybridBody5.HybridBodies

Dim hybridBody6 As HybridBody
Set hybridBody6 = hybridBodies6.Item("GS_CP")

Dim AllPoints(100) As AnyObject
Dim X(100) As Double
Dim Y(100) As Double
Dim Z(100) As Double
Dim i, j, k
Dim MyPointCoord(2)
i = 1

For j = 1 To 10
    For k = 1 To 10
        MsgBox ("CP_" & k & "-" & j)
        Set AllPoints(i) = hybridBody6.HybridShapes.Item("CP_" & j & "-" & k)
        Set MySelElement = AllPoints(i)
        Set Ref1 = part1.CreateReferenceFromObject(MySelElement)
        Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
        Set TheMeasurable = TheSPAWorkbench.GetMeasurable(Ref1)
        TheMeasurable.GetPoint MyPointCoord
        X(i) = MyPointCoord(0)
        MsgBox ("X" & CStr(X(i)))
        Y(i) = MyPointCoord(1)
        MsgBox ("Y" & CStr(Y(i)))
        Z(i) = MyPointCoord(2)
        MsgBox ("Z" & CStr(Z(i)))
        i = i + 1
    Next k
Next j

End Sub



Wäre für jede Hilfe dankbar!

Mfg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 16. Mai. 2017 16:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inno69 10 Unities + Antwort hilfreich

Servus
Liegt wohl daran dass der Index bei einem Array bei 0 beginnt. Somit steigt dein Makro bei zB X(100) = 50 aus. Das letzte Element im Array ist das bei X(99).

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

inno69
Mitglied


Sehen Sie sich das Profil von inno69 an!   Senden Sie eine Private Message an inno69  Schreiben Sie einen Gästebucheintrag für inno69

Beiträge: 5
Registriert: 03.05.2017

Windows 7 Professional
Catia V5 R26

erstellt am: 17. Mai. 2017 08:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von bgrittmann:
Servus
Liegt wohl daran dass der Index bei einem Array bei 0 beginnt. Somit steigt dein Makro bei zB [i]X(100) = 50
aus. Das letzte Element im Array ist das bei X(99).

Gruß
Bernd


[/i]


Hallo Bernd,

vielen Dank für deine Hilfe. Da hast du natürlich Recht. Sorry, für den Anfängerfehler.

Ich hab nun in der Deklaration i=0 gesetzt. Dies behebt jedoch nicht das Problem. Bekomme weiterhin die Fehlermeldung.

Noch eine Idee was ich probieren könnte?

MfG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 17. Mai. 2017 09:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inno69 10 Unities + Antwort hilfreich

Servus

Hat es einen Grund warum du in der MsgBox k & "-" & j ausgibst und danach die Variablen in der anderen Reihenfolge verwendest?
Bei welchem Objektnamen steigt das Makro nun aus?
Gibt es das Element?
Ist es auch ein Punkt (ggf per TypeName testen)?
Was ist bei dem Element anders als bei den restlichen 99?
ggf wäre es sicherer über eine Schleife auf die Punkt zuzugreifen anstatt über den Namen.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

inno69
Mitglied


Sehen Sie sich das Profil von inno69 an!   Senden Sie eine Private Message an inno69  Schreiben Sie einen Gästebucheintrag für inno69

Beiträge: 5
Registriert: 03.05.2017

Windows 7 Professional
Catia V5 R26

erstellt am: 19. Mai. 2017 14:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,

vielen Dank für deine Antwort. Hier mal Antworten zu deinen Fragen/Anmerkungen. Leider konnte ich den Fehler noch nicht beheben. On error resume funktioniert, ist aber nicht zielführend.

Zitat:

Hat es einen Grund warum du in der MsgBox k & "-" & j ausgibst und danach die Variablen in der anderen Reihenfolge verwendest?

Ja, der Fehler mit der Reihenfolge war mir auch schon aufgefallen. Habe hier noch die vorherige Version gepostet.

Zitat:

Bei welchem Objektnamen steigt das Makro nun aus?

Beim Objektnamen CP_1-8. Alle anderen Punkte funktionieren!

Zitat:

Gibt es das Element?
Ist es auch ein Punkt (ggf per TypeName testen)?

Das Element gibt es. Er kann drauf zugreifen und es handelt sich auch definitiv um einen Punkt. Ich habe ihn mal gelöscht und neu angelegt. Gleiches Problem.

Zitat:

Was ist bei dem Element anders als bei den restlichen 99?

Die Elemente unterscheiden sich durch die X,Y,Z Koordinaten. Ansonsten identisch!

Zitat:

ggf wäre es sicherer über eine Schleife auf die Punkt zuzugreifen anstatt über den Namen.

Wie meinst du das?

Viele Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 19. Mai. 2017 14:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für inno69 10 Unities + Antwort hilfreich

Servus

zB so (ungetestet):

Code:
i = 0

'Schleife über alle Hybridshapes im GeoSet
For j = 1 To hybridBody6.HybridShapes.Count
    Set AllPoints(i) = hybridBody6.HybridShapes.Item(j)
        'ggf hier noch eine Typprüfung einbauen
        Set MySelElement = AllPoints(i)
        Set Ref1 = part1.CreateReferenceFromObject(MySelElement)
        .....
Next j


Oder über die Selection im GeoSet nach den Punkten suchen. Danach mit einer Schleife die Elemente in der Selection abarbeiten.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz