Autor
|
Thema: IF problem (1370 mal gelesen)
|
DasDon Mitglied Konstruktuer
Beiträge: 169 Registriert: 25.07.2011 R18 SP2. WIN
|
erstellt am: 10. Jan. 2012 23:55 <-- editieren / zitieren --> Unities abgeben:
Hallo Alle, ich habe eine Programm mit einen IF Befehl. Und zwar folgendes: Ich habe zwei Produkte LH Produkt und RH Produkt. Ich versuche einen Makro zu erstellen der die Produkte mit einander vergleicht. In RH können die gleichen Bauteile verbaut werden wie in LH oder aber auch spiegelteile. Die spiegelteile unterscheiden sich in der Benennung. Falls das Bauteil aus LH nicht in RH vorhanden ist soll eine Sub Routine gestartet werden, der Prüft ob das Bauteil evtl mit andere (Spiegel) Nummer existiert. Code: 'check LH content against RH FOR n = 1 TO nrOfLHChildren Set ProdToCheck = LHAssy.Products.Item(n) ProdToCheckName = ProdToCheck.PartNumber IF (RHAssy.Products.Item(ProdToCheckName)) = False Then MirrorPartCheck ProdToCheck Exit Sub End If Next
Erklärung des Codes: nrOfLHChildren = Anzahl der Kinder von LH Produkt LH[RH]Assy = LH[RH] Produckt Nun bricht das Makro immer beim IF ab, verständlich, aber ich finde keine Lösung. Ideen? Vielen Dank im Voraus... 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: 11. Jan. 2012 07:47 <-- editieren / zitieren --> Unities abgeben: Nur für DasDon
Zitat: Original erstellt von DasDon:
Code: 'check LH content against RH FOR n = 1 TO nrOfLHChildren Set ProdToCheck = LHAssy.Products.Item(n) ProdToCheckName = ProdToCheck.PartNumber IF (RHAssy.Products.Item(ProdToCheckName)) = False Then MirrorPartCheck ProdToCheck Exit Sub End If Next
Hallo, versuch es mal so... Code: 'check LH content against RH FOR n = 1 TO nrOfLHChildren Set ProdToCheck = LHAssy.Products.Item(n) ProdToCheckName = ProdToCheck.PartNumber IF (RHAssy.Products.Item(ProdToCheckName)) = Nothing Then MirrorPartCheck ProdToCheck Exit Sub End If Next
------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 11. Jan. 2012 08:18 <-- editieren / zitieren --> Unities abgeben: Nur für DasDon
Objekte auf Nothing prüfen tut man meines Wissens nach mit is, also IF (RHAssy.Products.Item(ProdToCheckName)) is Nothing Then Wenn Du eine Fehlermeldung bekommst erleichtert das unsere Hilfsleistung imemr ungemein, wenn Du diese auch mitteilst, denn in denen Steht oft, wenn man die Erfahrung hat, die Antwort. :-) ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 11. Jan. 2012 08:53 <-- editieren / zitieren --> Unities abgeben: Nur für DasDon
|
DasDon Mitglied Konstruktuer
Beiträge: 169 Registriert: 25.07.2011 R18 SP2. WIN
|
erstellt am: 11. Jan. 2012 12:18 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank erstmal für die Hilfe. Leider hat es nicht funktioniert. Als fehler meldung bekomme ich: Source: CATIAProducts Description: The method Item failed. Line: 49. (also das IF Line) Column: 1 Als Lösung kann ich natürlich einen Array erstellen mit alle Kinder von RHAssys und vergleiche diese dann mit hilfe einer FOR-Schleife gegen ProdToCheckName. Aber das ist umständlich und würde das Macro erheblich verlangsamen. Des Wegen schaue ich nach alternativen Lösungen. Gibt es einen IF EXISTS für das Spezifikationenbaum? ich kenne es nur in Verbindung mit Dateien. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 11. Jan. 2012 12:53 <-- editieren / zitieren --> Unities abgeben: Nur für DasDon
Hm... habe jetzt auch nicht alles im Kopf, aber Der Aufruf von Item ist falsch. Das kann meiner Meinung nach drei Ursachen haben: 1. RHAssy ist gar kein Produkt 2. die Item-Methode gibt es nicht 3. Ein Item mit dem Wert <ProdToCheckName> gibt es nicht Da Du letzteres ja sowieso prüfen willst und ich unterstelle, dass der Rest richtig ist, würde ich es so machen: Code:
'check LH content against RH dim objBuffer as object FOR n = 1 TO nrOfLHChildren Set ProdToCheck = LHAssy.Products.Item(n) ProdToCheckName = ProdToCheck.PartNumber set objBuffer = nothing on error resume next set objBuffer = RHAssy.Products.Item(ProdToCheckName) on error goto 0 IF (objBuffer is Nothing) Then MirrorPartCheck ProdToCheck Exit Sub End If Next
------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing 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: 11. Jan. 2012 19:20 <-- editieren / zitieren --> Unities abgeben: Nur für DasDon
|
DasDon Mitglied Konstruktuer
Beiträge: 169 Registriert: 25.07.2011 R18 SP2. WIN
|
erstellt am: 12. Jan. 2012 08:50 <-- editieren / zitieren --> Unities abgeben:
|