Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Partnumber durchgehen

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:  Partnumber durchgehen (554 mal gelesen)
Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 18. Nov. 2009 08:39    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

Guten Morgen allerseits,

ich habe mal wieder ein Problem:
folgendes Szenario: Ich will die Partnumber durchgehen und auf ein bestimmtes Maß ausweiten ohne die existierende Partnummer abzuändern.
hört sich erstmal einfach an, ist es wahrscheinlich auch.
Die Partnumber wollte ich mit einer For ... To... Step 1, Next durchgehen.
For i = 0 To 30 Step 1
        Teilebez = CATIA.Documents.Item(m).Product.PartNumber
usw.

Nun komme ich nicht weiter. Will Buchstabe für Buchstabe durchgehen und kleine Buchstaben in große abändern.

Also erste Frage? Gibt es dafür einen Befehl? (klein zu groß?)

zweites Problem:

Teilebez = Left(CATIA.Documents.Item(m).Product.PartNumber, i + 1)

liest leider alles aus, was von der der Stelle i + 1 links steht, will aber jeweils nur einen Buchstaben der Stelle i + 1

Würde es da gehen, einfach ein Right über die jetzige Teilebez einzufügen?
Also Teilebez = Right(Teilebez, 1) oder so ähnlich?
Leider schmeißt er mir da einen Fehler raus.

EDIT: Mein Fehler, funktioniert mit Right...


Schonmal vorab vielen Dank für eure Anregungen

Gruß

Thomas

[Diese Nachricht wurde von Makronizer am 18. Nov. 2009 editiert.]

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

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: 18. Nov. 2009 09:26    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 Makronizer 10 Unities + Antwort hilfreich

Hallo,
das Umwandeln in Großbuchstaben sollte mit UCase gehen.
Beispiel:
Teilebez = UCase(CATIA.Documents.Item(m).Product.PartNumber)

Zum Thema einzelne Buchstaben/Zeichen abrufen:
Beispiel:
For i = 0 to 30
    Teilebez = CATIA.Documents.Item(m).Product.PartNumber
    msgbox Teilebez
    For j = 0 to Length(Teilebez)
        Buchstabe = Mid(Teilebez, j, 1)
        msgbox Buchstabe
    next
next

Hab es nicht ausprobiert, sollte aber so möglich sein.

HTH

------------------
MFG
Rick Schulz
          Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."

[Diese Nachricht wurde von RSchulz am 18. Nov. 2009 editiert.]

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 18. Nov. 2009 09:27    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

Vielen Dank, das werde ich gleich ausprobieren. Ich schreibe dann nochmal ob es geklappt hat.

Gruß

Thomas

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 18. Nov. 2009 10:17    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

Bräuchte doch nochmal einen Denkanstoß:
Bisheriger Ansatz:

For m = 1 To CATIA.Documents.Count

If (Right(CATIA.Documents.Item(m).Name, 10) = "CATProduct") Then
        Teilebez = CATIA.Documents.Item(m).Product.PartNumber
        Zahl1 = Len(Teilebez)
        For i = i To Zahl1
        Teilebez = Left(CATIA.Documents.Item(m).Product.PartNumber, i)
        Teilebez = Right(Teilebez, 1)
        Teilebez = UCase(Teilebez)
        If Teilebez = "" Or Teilebez = " " Then
            Teilebez = "_"
        End If
       
        Teilebezneu = Teilebez ---> ????
        Next
End If
Next

Wie bekomme ich es an markierter Stelle hin, das Buchstabe für Buchstabe der Teilenummer hinzugefügt wird?

Teilebez ist demnach der gefilterte Buchstabe.

Heut irgendwie nen Brett vorm Kopp

Gruß

Thomas

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

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: 18. Nov. 2009 10:21    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 Makronizer 10 Unities + Antwort hilfreich

Ich denke der Code ist selbsterklärend...

For m = 1 To CATIA.Documents.Count

If (Right(CATIA.Documents.Item(m).Name, 10) = "CATProduct") Then

        Teilebez = CATIA.Documents.Item(m).Product.PartNumber
        Zahl1 = Len(Teilebez)

        For i = i To Zahl1
            Teilebez = mid(CATIA.Documents.Item(m).Product.PartNumber, i, 1)
            Teilebez = UCase(Teilebez)
        If  Teilebez = " " Then
            Teilebez = "_"
        End If
       
        Teilebezneu = Teilebezneu & Teilebez

        Next
End If
Next

------------------
MFG
Rick Schulz
          Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."

[Diese Nachricht wurde von RSchulz am 18. Nov. 2009 editiert.]

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 18. Nov. 2009 10:26    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

Manman, das nenne ich echt peinlich. Heut ist nicht mein Tag.

Vielen Dank Rick

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

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: 18. Nov. 2009 10:35    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 Makronizer 10 Unities + Antwort hilfreich

Hmm irgendwie gefällt mir das nicht...
Ich würde es so schreiben:

For m = 1 To CATIA.Documents.Count

    If Instr(CATIA.Documents.Item(m).Name), ".CATProduct") = true Then

        Teilebez = CATIA.Documents.Item(m).Product.PartNumber
        Teilebez = UCase(Teilebez)
        Zahl1 = Len(Teilebez)

        For i = i To Zahl1
            Buchstabe = mid(Teilebez, i, 1)
            If  Buchstabe = " " Then
                Buchstabe = "_"
            End If       
            Teilebezneu = Teilebezneu & Buchstabe
        Next
    End If
Next

Ich weis Korinthenkacker und so, aber alleine für die Übersicht und Geschwindigkeit, würde ich 2 mal etwas auslesen, wenn es mit einem mal abgetan ist und vorallem nicht eine Variable mehrfach für verschiedene Dinge verwenden. Die Benennung der Variablen würde ich zwar auch anders definieren, aber das sollte jedem selbst überlassen sein.

------------------
MFG
Rick Schulz
      Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 18. Nov. 2009 10:42    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

Ja, ich bin da etwas eigen:

ich benenne erstmal irgendwie, wenn das Makro dann läuft, dann benenne ich Variablen neu und füge die üblichen Zeilen hinzu, die sicheren Lauf garantieren. Das liegt allerdings an meiner nicht vorhandenen Makroprogrammierroutine. Beschäftige mich erst seit 3 Monaten damit.

Gruß

Thomas

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

Makronizer
Mitglied
Dipl.-Ing Maschinenbau-Integrierte Produktentwicklung


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

Beiträge: 51
Registriert: 15.09.2009

erstellt am: 18. Nov. 2009 13:54    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

Kurze Zwischenfrage,

mit InStrRev kann man ja bekanntlich nach einem Zeichen, Zahl oder Buchstaben suchen.
Gibt es da nen allgemeinen Befehl, wo man in einem String generell nach einem Buchstaben suchen kann?

Konkretes Anwendungsbeispiel

Partnumber = "00_test_123456"

Ich möchte jetzt nur das Wort "test" als String haben. An sich nicht schwer, jedoch kann da ja auch mal "murks" oder "stein" stehen.

Dachte an so nen Befehl wie
If InstrRev ( CATIA.blabla.PartNumber, IsAlphabetic) Then
Anweisung 1
...
End If

Gruß

Thomas

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