Autor
|
Thema: For each Schleife (869 mal gelesen)
|
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010
|
erstellt am: 27. Mai. 2010 11:14 <-- editieren / zitieren --> Unities abgeben:
Servus alle zusammen, sitze immernoch an dem Intersectsproblem. Ich möchte Intersects auf ihre Existenz überprüfen und abschalten sollte diese nicht vorhanden sein. Die ganze Zeit habe ich direkt auf die Selektion zugegegriffen und mir manuell die einzelnen Selektionen durch einen Zähler (For i=1 to sel.count)durchgeschaltet. Da wurden die Intersects nicht erkannt. Nun versuche ich es mit einer For each Schleife, da die zahl der Intersections sich ändern kann. Dabei ist Laufv meine Variable. Lass ich das Makro laufen, ist in Laufv (Laufvariable) aber gar nichts drin, warum? Kann ich Laufv as Hypridshapeintersection deklarieren? Danke euch für die Hilfe
Code: '---- hier findet die Selektion statt '----Aktivieren der Intersects und Überprüfung auf Fehler Set intPartObj = CATIA.ActiveDocument.Part Dim Laufv As HybridShapeIntersection
For Each Laufv In sel If intPartObj.IsInactive(Laufv) Then intPartObj.Activate Laufv intPartObj.UpdateObject Laufv If Err.Number <> 0 Then intPartObj.Inactivate Laufv intPartObj.UpdateObject Laufv End If Else intPartObj.Inactivate Laufv intPartObj.UpdateObject Laufv intPartObj.Activate Laufv intPartObj.UpdateObject Laufv If Err.Number <> 0 Then intPartObj.Inactivate Laufv intPartObj.UpdateObject Laufv End If On Error GoTo 0 End If Next Laufv
------------------ Hihihi, lol, hihihi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MICHLICK Mitglied CAD Methodik Entwickler (CATIA; NX)
Beiträge: 454 Registriert: 20.06.2001 Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.
|
erstellt am: 27. Mai. 2010 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für Chrisma
Ohne das jetzt getestet zu haben. Ich denke das wird so nicht funktionieren. Die Laufv müßte meiner Meinung nach vom Typ SelectedItem (oder so ähnlich sein). Ich denke Du bekommst da ein Problem mit den Objekttypen. ------------------ Gruß Michael B. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010
|
erstellt am: 27. Mai. 2010 15:48 <-- editieren / zitieren --> Unities abgeben:
|
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010 Solid Works 2013 Professional Win7 SP1 Intel Xeon 2,67GHz 12GB Ram
|
erstellt am: 27. Mai. 2010 16:03 <-- editieren / zitieren --> Unities abgeben:
Hab da eben eine Aussage von Rick Schulz gefunden. klingt für mich nachvollziehbar. Aber ich hab keine Ahnung, wie ich nun überprüfe, was für ein Typ es ist und wie ich das dann übergeben soll. Zitat: http://ww3.cad.de/foren/ubb/Forum110/HTML/000651.shtmlHallo, bei For Each durchläufst du jedes Element deines Containers ab. Das bedeutet, dass du jedes Element unter *.Control übergibst. Daher sind auch nur Variablen mit dem Typ Variant oder ohne zugewiesenen Typ in einer For each Next Anweisung erlaubt. In dieser musst du dann prüfen, was für ein Element es ist und im richtigen Fall übergeben. Du hast warscheinlich glück, da die ersten angesprochen die sind, die du auch ansprechen möchtest. Mehr dazu findest du aber auch in der MSDN. HTH ------------------ MFG Rick Schulz
Funktioniert bei mir aber auch nicht. Weder als Variant noch als Object. In der Laufv befindet sich nichts. ------------------ Hihihi, lol, hihihi [Diese Nachricht wurde von Chrisma am 27. Mai. 2010 editiert.] 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: 31. Mai. 2010 10:02 <-- editieren / zitieren --> Unities abgeben: Nur für Chrisma
Warum nicht eine For-Schleife? Count2 bekommste und dann alle Item2's durchgehen. For Each müssteste wahrscheinlich auf SelectedElements oder so durchführen. Die Selection an Sich ist ja kein Array. ------------------ 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 [Diese Nachricht wurde von HoBLila am 31. Mai. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |