Autor
|
Thema: VBScript: Error message (2653 mal gelesen)
|
Eule Mitglied CAD-Berater
Beiträge: 34 Registriert: 11.12.2002 Catia V5 R18 ServicePack 3
|
erstellt am: 17. Jan. 2011 18:23 <-- editieren / zitieren --> Unities abgeben:
Hintergrund: PowerCopy mit integrierter Reaction, welche ein VBScript aufruft. Vor 2 Jahren hat das VBScript noch einwandfrei funktioniert. Jetzt bleibt das Script hängen mit folgender Fehlermeldung: CATIAHybridBodies: "The method Item failed." Kann es damit zusammenhängen, daß ich jetzt mit Release 18 arbeite und das Script mit Realease 16 geschrieben wurde? Hier ein Auszug aus dem Script: Dim hybridBodies1 As HybridBodies Set hybridBodies1 = part.HybridBodies Dim hybridBody1 As HybridBody Set hybridBody1 = hybridBodies1.Item("Power_Copy_Result") Dim hybridShapes1 As HybridShapes Set hybridShapes1 = hybridBody1.HybridShapes Das Script bleibt hängen bei der Zeile mit dem Item. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 17. Jan. 2011 18:43 <-- editieren / zitieren --> Unities abgeben: Nur für Eule
|
Eule Mitglied CAD-Berater
Beiträge: 34 Registriert: 11.12.2002 Catia V5 R18 ServicePack 3
|
erstellt am: 25. Jan. 2011 17:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Rick, danke für den Hinweis. Jedoch ist "Power_Copy_Result" ein durch die PowerCopy automatisch erstelltes geometrisches Set, was zum Zeitpunkt der Fehlermeldung des Scripts bereits im Strukturbaum vorhanden ist. MfG Gruß Eule Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
INLU Mitglied Konstrukteur Automotive
Beiträge: 71 Registriert: 01.03.2008
|
erstellt am: 25. Jan. 2011 19:21 <-- editieren / zitieren --> Unities abgeben: Nur für Eule
Hallo Eule! kann es sein,dass das geometrische Set -IN- einem Körper ist, oder das es ein geordnetes geometrisches Set ist? Wenn du den scriptcode ins VBA kopierst, könntes du in der Watchliste nachschauen, ob unter >DeinPart<.Hybridbodies überhaupt ein Item(1) ist.Für mich hat es den Anschein, als wenn das nicht so wäre! mfg INLU Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Eule Mitglied CAD-Berater
Beiträge: 34 Registriert: 11.12.2002 Catia V5 R18 ServicePack 3
|
erstellt am: 31. Jan. 2011 18:34 <-- editieren / zitieren --> Unities abgeben:
Hallo INLU, das geometrische Set ist nicht in einem Körper und es ist auch kein geordnetes geometrisches Set. Kannst Du mir Deinen Hinweis "Wenn du den scriptcode ins VBA kopierst, könntest du in der Watchliste nachschauen, ob unter >DeinPart<.Hybridbodies überhaupt ein Item(1) ist" näher erläutern, wie gehe ich da konkret vor. Für mich sieht es eher wie ein Update-Problem aus, nämlich daß das Sricpt die Zuweisung "Set hybridBody1 = hybridBodies1.Item("Power_Copy_Result") nicht durchführen kann, weil ein Element (eine Fillfläche, innerhalb des geometrischen Sets "Power_Copy_Result" ) nicht upgedatet ist nach dem Einsetzen der PC ins Zielpart[Das ganze Set "PowerCopyResult" mit all seinen darin enthaltenen Elementen wird im Zielpart eingesetzt]. Deswegen konzentriere ich mich jetzt auf das automatische Updaten. Ich hatte in der Reaction, die das Script aufruft, als allererste Zeile folgende Anweisung stehen:`PC_Cross Section Adaptation` ->Update() Dies scheint aber CATIA nicht mehr zu mögen. Wie gesagt, diese PC mit integrierter Reaction hat ja mal funktioniert. Aber es kommt neben der bereits geposteten Fehlermeldung nach dem Einsetzen ins Zielpart bereits ein "Warning" --(siehe Screenshot ) , wenn ich die Reaction im Part auslöse, in dem ich die PC definiert habe. Gruß, Eule Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
INLU Mitglied Konstrukteur Automotive
Beiträge: 71 Registriert: 01.03.2008
|
erstellt am: 02. Feb. 2011 19:19 <-- editieren / zitieren --> Unities abgeben: Nur für Eule
Hallo Eule ! Da mit dem "Ins VBA kopieren" war so gemeint, das du über Catia Alt+F11 den VBA-Editor öffnest. Wenn noch kein VBA-Bibliothek vorhanden ist, musst du eine erzeugen. Danach kopiere folgenden Code in ein neues VBA-Modul.
Code: Sub CATMain() Dim documents1 As Documents Set documents1 = CATIA.Documents Dim part1 As part Set part1 = documents1.Item(1).part Dim hybridBodies1 As HybridBodies Set hybridBodies1 = part1.HybridBodies Dim hybridBody1 As HybridBody Set hybridBody1 = hybridBodies1.Item("Power_Copy_Result") Dim hybridShapes1 As HybridShapes Set hybridShapes1 = hybridBody1.HybridShapes End Sub
Dann öffnest Du ein Part mit dem "Power_Copy_Result". Jetzt wechselst Du wieder in das VBA-Fenster und Drückst F8. Nun kannst Du satzweise das Macro abarbeiten. Wenn du jetzt auf >hybridBodies1< gehst, kannst Du mit einem Rechtsklick die Variable zur Watchliste hinzufügen. Wenn die Zeile >Set hybridBodies1 = part1.HybridBodies< abgearbeitet wurde, kannst Du in der Watchliste die Variable sehen und auf klicken. So kannst Du das Problem eingrenzen. Meine Vermutung ist, das nach der Zeile >Set hybridBody1 = hybridBodies1.Item("Power_Copy_Result")< die Variable noch leer ist. mfg INLU Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |