Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Setzen von Variablen

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:  Setzen von Variablen (577 mal gelesen)
Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 21. Okt. 2013 09:10    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

Moin an alle,

ich muss zugeben, dass ich langsam denke die Catia-Makro-Programmierung will mich ärgern.
Ich habe folgenden Code:

-------------
Dim oDrwDoc As DrawingDocument
Set oDrwDoc = CATIA.ActiveDocument

Dim oDrwRoot As DrawingRoot
Set oDrwRoot = oDrwDoc.DrawingRoot

Dim oSheets As DrawingSheets
Set oSheets = oDrwRoot.Sheets

Dim oSheet As DrawingSheet
Dim wahr as Boolean
Dim a As Double

wahr = True
a = 1

While wahr = True
    Set oSheet = oSheets.Item(a)
    If oSheet.IsDetail = True Then
    Else
        wahr = False
    End If
    a = a + 1
Wend
-------------

Mein Problem ist jetzt, dass die Zeile "Set oSheet = oSheets.Item(a)" nicht ausgeführt wird.
Sobald ich das "a" aber durch eine "1" ersetze geht alles einwandfrei, jedoch bringt mir das nichts, da
die Abfrage dann für den Hintern ist.

Das gleiche Problem hab ich in einer "for-Schleife" bei der ich nacheinander der Variable "nview" (TYP: DrawingView)
Items aus der Variablen "nviews" (TYP: DrawingViews) zuweisen will.

-------------
For a = 1 To nviews.Count
    Set nview = nviews.Item(a)
.....
-------------

Es scheint so, als würde die Methode ".Item()" nicht mit Variablen funktionieren....

Hat jmd. ne Idee woran das liegt und wie ich das beheben kann?

Ich bin schon fast soweit eine "Select Case"-Methode zu schreiben bei der "a" abgefragt wird und
für jede mögliche größere die entsprechende Zeile zu schreiben.
Aber das kann es ja eigentlich nicht sein!!!

Über eure Hilfe würde ich mich sehr freuen.

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: 21. Okt. 2013 09:24    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 Hamlet 10 Unities + Antwort hilfreich

Servus
Wie For-next-Schleife über die die Sheets/Views sollte funktionieren.
Also ich würde den Zähler a als Integer definieren. (was macht eine For-next-Schleife mit einem Double???)

Gruß
Bernd

EDIT: Was macht deine While-Schleife wenn kein DetailSheet vorhanden ist (Abbruchkriterium)

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

[Diese Nachricht wurde von bgrittmann am 21. Okt. 2013 editiert.]

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 21. Okt. 2013 09:32    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

Wie schon beschrieben funktioniert meine for-Schleife leider auch nicht....

Normalerweise funktioniert double bei den schleifen wie integer, aber ich werde es mal ausprobieren.  

Meine while-Schleife sucht solange alle sheets ab, bis es eins gefunden hat, dass KEIN detailsheet ist.
(der aufbau meiner sheets ist immer gleich, denn es gibt immer genau 1 sheet, das kein detail ist  


EDIT: !!!!!!!!!! DANKE !!!!!!!!!!!!!!!! double in integer gewandelt und SCHWUPP ist die Welt wieder in Ordnung.  *freu*

[Diese Nachricht wurde von Hamlet am 21. Okt. 2013 editiert.]

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: 21. Okt. 2013 09:38    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 Hamlet 10 Unities + Antwort hilfreich

Servus
Ich würde eher eine For-Next-Schleife (oder For-each) verwenden.
Wenn mal die Voraussetzungen nicht verfüllt sind, hast du eine Endlos-Schleife.

Gruß
Bernd

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

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 21. Okt. 2013 09: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

ich hatte vorher ne for-Schleife.
Da ich aber nicht wusste woran es liegt, dass es nicht klappt, hatte ich es mal in while gewandelt.

--> ist schon wieder eine for-Schleife geworden 

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