Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro Positionsnummern

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:  Makro Positionsnummern (974 / mal gelesen)
olleiCAD
Mitglied



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

Beiträge: 57
Registriert: 24.04.2018

Catia V5 R29 SP3 | Windows 10 Pro

erstellt am: 17. Jan. 2019 09:16    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

Hallo zusammen,
ich habe ein Marko erstellt, bei welchem ich eine Startnummer angebe ,z.B. 3, und dann schreibt mir das Makro vor jedem Körper im Part die Positionsnummern und den Körpernamen der vorher schon eingegeben wurde (Also Pos 2 Platte, Pos 3 Balken etc.)
Wenn ich jetzt einen neuen Körper einfüge und neu durchnummeriere schreibt er logischerweise Pos 3 Pos 3 und dann den Körpernamen.
Wie kann ich prüfen, dass wenn vorm Körper schon "Pos. X" steht, er nur das "Pos. X" ersetzen muss und nicht neu davor schreibt?

Danke für eure Hilfe.

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: 17. Jan. 2019 10: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 olleiCAD 10 Unities + Antwort hilfreich

Servus

Kennst du den die ganzen Methoden für Zeichenketten?
zB nur erste paar Zeichen auswerten, nach einem String suchen, ...
Ja nachdem was du genau willst, könnten diese Ansätze funktionieren.

Gruß
Bernd

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

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

olleiCAD
Mitglied



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

Beiträge: 57
Registriert: 24.04.2018

Catia V5 R29 SP3 | Windows 10 Pro

erstellt am: 18. Jan. 2019 08:23    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 klingt gut.
Wie suche ich aber nach der Zeichenfolge "Pos. XXX" XXX soll dabei eine beliebige Zahl darstellen.

Bin Anfänger auf diesem Gebiet sorry.

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: 18. Jan. 2019 09:01    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 olleiCAD 10 Unities + Antwort hilfreich

Servus

Wie wäre es mit if Left(oBody.Name,4) = "Pos. " then?
ggf solltest du dich in die allgemeinen Grundlagen von VB(A) einarbeiten.

Gruß
Bernd

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

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

olleiCAD
Mitglied



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

Beiträge: 57
Registriert: 24.04.2018

Catia V5 R29 SP3 | Windows 10 Pro

erstellt am: 18. Jan. 2019 11: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

Typenkonflikt bei Mid zeigt er mir an, sollte doch eigentlich passen oder?
Code:

Dim PosAnfang As Integer
Dim PosEnde As Integer
Dim LaengePos As integer
Dim Positionsnummer As Integer

If body1.InBooleanOperation = false Then
Bodyname = body1.name
If Left(Bodyname,5) = "Pos. " then
PosAnfang = inStr(1, Bodyname, " ", 1)
PosEnde = inStr(6, Bodyname, " ", 1)
LaengePos = PosEnde - PosAnfang
Mid(Bodyname, PosAnfang, LaengePos) = CStr(Positionsnummer)
else
body1.Name= "Pos. " & CStr(Positionsnummer) & " " & Bodyname
End If
    Positionsnummer = Positionsnummer + 1
End if

End If


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: 18. Jan. 2019 11:57    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 olleiCAD 10 Unities + Antwort hilfreich

Servus

Kann sein das CATScript das Ersetzen mit Mid nicht unterstützt und nur einen String liefern kann.
Zudem müsste dann immer CStr(Positionsnummer) und LaengePos gleich lang sein. (was passiert wenn eine Ziffer dazu kommt)
Hier mein Idee dazu:

Code:
iFirstSpace = inStr(1, Bodyname, " ", 1)
iSecondSpace = inStr(iFirstSpace + 1, Bodyname, " ", 1)

Bodyname = left(Bodyname,iFirstSpace) & CStr(Positionsnummer) & Mid(Bodyname,iSecondSpace)
'EDIT: oder
Bodyname = "Pos. " & CStr(Positionsnummer) & Mid(Bodyname,iSecondSpace)


Gruß
Bernd

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

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

olleiCAD
Mitglied



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

Beiträge: 57
Registriert: 24.04.2018

Catia V5 R29 SP3 | Windows 10 Pro

erstellt am: 18. Jan. 2019 12:59    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

Top, läuft danke!

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