Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameter_CatDrawing

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:  Parameter_CatDrawing (2764 mal gelesen)
shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 06. Mai. 2015 01:07    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 miteinander ich habe mal wieder ein Problem...

Es geht darum ein Startmodell einer CatDrawing zu erstellen.
Aktueller Versuch ist über einen Parameter die Sprache zu ändern.

Folgende Punkte funktionieren bisher wunderbar:

1) Parameter in dem die Sprache geändert wird
2) Weitergabe an Reaction
3) Reaction starten im CatDrawing enthaltene Makros abhängig von 1)
4) Umbenennung der Parameter in der oberen Struktur
   (Diese Parameter steuern direkte Eingaben z.B. Projektnummer / Konstrukteur usw.)

Nun befinden sich in einem Parameterset innerhalb des Rootparametersets
viele weitere Parameter, welche die Angaben in den jeweiligen Stempeln steuern sollen
(Textfelder wie Datum / Maßstab usw.).
Mein Problem ist nun wie spreche ich diese Parameter an?!

>>> In Schritt 4) werden die Namen der Parameter geändert!
>>> In Schritt 5) sollen die Werte der Parameter geändert werden!

Struktur:

RootParameterset
-Para1
-Para2
.
.
.
   TextfeldSet
     -Para1
     -Para2
     .
     .
     .

Scriptausschnitt bisher:

Sub CATMain()
'Alle Parameter in Englisch umbenennen
   Set oDraw = CATIA.ActiveDocument
   Set oPara = oDraw.Parameters

On Error Resume Next
   Set String1 = oPara.Item("Auftrags_Nr")
     String1.Rename "Order_No"
   If Err.Number <> 0 Then
     .....
   End If

'Alle Textfelder in Englisch umbenennen
   On Error Resume Next
      Set String1 = oPara.Item.Value("Fertigungsauftrag")Name des Parameter der angesprochen werden soll
      String1.Rename "Production Order"Wert der eingetragen werden soll

   If Err.Number <> 0 Then
      RetCode = MsgBox("Fehler." ,48, "Warning")
End If

'Alle Blätter in Englisch umbenennen
...
End Sub

[Diese Nachricht wurde von shoutz000 am 06. Mai. 2015 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: 06. Mai. 2015 09:28    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Das kommt mir recht komplex vor.
Könntest du nicht:
a) einfach zwei Zeichnungsrahmen (englisch/deutsch) verwenden
b) über eine Konstruktionstabelle die Werte zwischen deutsch/englisch umschalten und dann über eine Attribut Verknüpfung die Parameter in die Textfelder eintragen
c) je ein Textfeld für deutsch und englisch anlegen (zb Unterscheidung durch Präfix "de" und "en") und dann über ein Makro zb nur die "de"-Felder einblenden

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 06. Mai. 2015 15: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

Hey vielen Dank

nein da die Zeichnung komplett funktionsfähig sein soll, ohne externe
Referenzen, um diese dann auch unabhängig an Zulieferer weitergeben zu
können.

Ich muss nur wissen wie ich auf die Werte der Parameter in dem
Parameterset innerhalb des Hauptparametersets zugreifen kann.
Das ist aktuell das einzige Problem.

Über ein internes Makro ist das ganze auch besser zu lösen, da es
nicht bei Englsch und Deutsch bleibt sondern auf mehrere Sprachen
erweitert wird... Globalisierung halt :-P

Hat da jemand eine Idee?

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: 06. Mai. 2015 15:36    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Du kannst leider den Parameter nicht direkt per Namen ansprechen.
Entweder musst du den Pfad zum Parameter zusammensetzen (zb "Drawing\Set2\meinTestParameter") oder per Schleife die letzten Ziechen vergleichen:
Code:
Sub CatMain()

Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = CATIA.ActiveDocument

Dim parameters1 As Parameters
Set parameters1 = drawingDocument1.Parameters

Dim parameterSet1 As ParameterSet
Set parameterSet1 = parameters1.RootParameterSet

Dim parameterSets1 As ParameterSets
Set parameterSets1 = parameterSet1.ParameterSets

Dim parameterSet2 As ParameterSet
Set parameterSet2 = parameterSets1.Item("Set2")

Dim MyParameter As parameter

For Each MyParameter In parameterSet2.DirectParameters
    If Right(MyParameter.Name, Len("meinTestParameter")) = "meinTestParameter" Then
        Exit For
    End If
Next

MsgBox MyParameter.ValueAsString

End Sub


Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 06. Mai. 2015 16:19    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

Hey Super vielen Dank.

Ich versuch es aus sobald ich wieder dazu komm und meld mich dann zurück.
Vllt auch mit neuen Fragen :-)

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 06. Mai. 2015 19: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

Megaaaaa. Vielen Dank.

Also ich ändere die untergeordneten Parameter jetzt so:
------------------------------------------
Set oDraw = CATIA.ActiveDocument
Set oPara = oDraw.Parameters
.
.
.
.
Set TextPara = oPara.Item("Drawing\Details\Fertigungsauftrag")
TextPara.Value = "Production Order"

>>> da das Set in der Vorlage fix ist, ist der feste Pfad für mich
in diesem Fall kein Problem
------------------------------------------

Ok gleich noch eine Frage xD. Damit habe ich mich noch nicht befasst,
da ich noch nicht so weit bin, aber vielleicht weiß ja jemand bereits
wie man das realisieren kann.

Und zwar haben wir für jedes A0-Blatt einen Zeichnungskopf (Detail).
Die Brennteilblätter oder Wasserstrahlblätter haben andere Zeichenköpfe,
welche auch anderst benannt sind. Nun benenne ich ja per Makro alle Blätter um in Blatt_XXX.
Brennteilblätter heißen aber bei uns Blatt_XXX(Brennteile).

Kann ich nun prüfen ob sich auf einem der Blätter das Detail
Brennteilkopf befindet und wenn ja hinter das Blatt_XXX das
(Brennteile) einfügen?

Vielen Dank schon mal und sorry das ich die Frage schon stell
bevor ich es selber überhaupt versucht habe 

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: 06. Mai. 2015 19:45    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Entweder über die Selektion nach dem Detail suchen (Makrorekorder sollte den Filter liefern), oder eben eine Schleife über die Views/Components auf dem Blatt.

Gruß
Bernd

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

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: 07. Mai. 2015 11: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 Nur für shoutz000 10 Unities + Antwort hilfreich

Servus
Was mich wundert:
Warum legst du für jedes "Beschriftung"-Textfeld einen Parameter an?
Wenn du eh die Werte (Zeichnungsnummer/Drawing number/ ...) hard codest, könntest du auch gleich das entsprechende Textfeld per Makro ansprechen (ist bestimmt übersichtlicher).

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 07. Mai. 2015 19:53    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

Stimmt... türlich 

So inetwa meinst Du oder?

'Stringaustausch
CATIA.HSOSynchronized=False
Set oSel = oDoc.Selection

Dim sALT(11) As String
Dim sNEU(11) As String

sALT(01) = "Allgemeintoleranz"
sNEU(01) = "General Tolerance"
sALT(02) = "Blatt"
sNEU(02) = "Sheet"
.
.
.

For i=1 to 11
Search = sALT(i)
oSel.Search "CATDrwSearch.DrwText.TextString='"&Search&"',all"

For k = 1 to oSel.count
Set ModText = oSel.Item(k).Value
ModText.text= Replace(ModText.text,Search, sNEU(i))
Next
oSel.clear
Next
CATIA.HSOSynchronized=True
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: 07. Mai. 2015 19:56    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Ich würde den Textfeldern sprechende Namen geben, dann kann ich einfach direkt per Namen auf das Textfeld zugreifen und den Text rein schreiben.

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 07. Mai. 2015 20:09    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

Ok wie sprech ich die Textfelder dann per Namen an?

Und wenn ich ein Textfeld habe das Abätze besitzt, kann ich dann diese
Absätze dann auch per Makro an das Textfeld senden? So wie in der
MsgBox zum Beispiel? Also so:

Text
Text
Text

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: 07. Mai. 2015 20:29    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Per Namen ansprechen geht leider nicht direkt, also entweder per Suche oder per Schleife.
Mehrzeilig:
Code:
MyDrawingText.Text = "1. Zeile" & Chr(10) & "2. Zeile"

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 08. Mai. 2015 10:19    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.

ich mach mich dann mal ran und meld mich dann wieder :-)

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 08. Mai. 2015 11:45    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 stell mich zu blöd an oO

ich suche so nach den Textfeldern und nichts passiert?!

Sub CATMain()
Set oDraw = CATIA.ActiveDocument
CATIA.HSOSynchronized=False

Set oSel = oDraw.Selection

For i = 1 To oSel.Count
oDrawText = oSel.Item(i)
If oDrawText.Name = Kanten Then
oDrawText.Text = ("Edges Broken")
End If
Next

CATIA.HSOSynchronized=True
End Sub

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: 08. Mai. 2015 13:06    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 shoutz000 10 Unities + Antwort hilfreich

Servus
was willst du jetzt: über die Selektion Suchen oder per Schleife alle Textfelder abarbeiten.
Dein Code ist ein Mischmasch von beidem.
zB alle Texte deren Namen nicht mit "Text" beginnen im Hintergrund selektieren
Code:
Sub CATMain()

Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = drawingDocument1.Selection

selection1.Clear
selection1.Add drawingDocument1.Sheets.ActiveSheet.Views.Item(2)

selection1.Search "(Name!=Text* & CATDrwSearch.DrwText),sel"

End Sub


Danach die Selektion mit einer Schleife abarbeiteten und zB per Case-Select die "richtigen" gleich bearbeiten

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 08. Mai. 2015 14:12    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

Soooo jetzt funzt es xD

Sub CATMain()
Set oDraw = CATIA.ActiveDocument
Set oSel = oDraw.Selection

CATIA.HSOSynchronized=False
oSel.Search "CATDrwSearch.DrwText.Name=Kanten, all"

For n = 1 to oSel.Count
Set oText = oSel.Item(n).Value
oText.Text = "Edges Broken"
Next
oSel.Clear

CATIA.HSOSynchronized=True
End Sub

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 08. Mai. 2015 17:02    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

Jetzt versuche ich die Blattendung anzupassen, falls sich auf
dem Sheet im Backround das entsprechende Deteil befindet.

Das Makro erwartet aber einen weiteren Befehl und kein End Sub?!


Sub CATMain()
Set oDraw = CATIA.ActiveDocument
Set oPara = oDraw.Parameters
Set oSheets = oDraw.Sheets
qSheets = oSheets.Count

For i = 1 To qSheets
IsDetail = qSheets.Item(i).IsDetail

If IsDetail = False Then

For s = 1 to oSheets.Count
Set active_sheet = oSheets.Item(s)
active_sheet.Activate
oSel.Search "CATDrwSearch.DrwDetail.Name=A0-Brennteil-Stempel, all"
If oSel <> 0 Then
tmp_str = oSheets.Item(s).Name
Sheet_Name = tmp_str & "(Brennteile)"
oSheets.Item(s).Name = Sheet_Name
End If

oSel.Search "CATDrwSearch.DrwDetail.Name=A0-Wasserstrahl-Stempel, all"
If oSel <> 0 Then
tmp_str = oSheets.Item(s).Name
Sheet_Name = tmp_str & "(Wasserstrahlteile)"
oSheets.Item(s).Name = Sheet_Name
End If
Next
End If
End Sub

[Diese Nachricht wurde von shoutz000 am 08. Mai. 2015 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: 08. Mai. 2015 18:03    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Rück mal den Code ein wie es sich gehört, wann wirst du sehen dass du irgendwo zB "End if" oder ein "Next" vergessen hast.

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 08. Mai. 2015 22: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

Hi habe ich bei mir auch immer nur hier muss man es immer manuell
nochmal machen. Also ich find den Fehler einfach nicht...
Vielleicht habe ich auch wieder was vermischt oder so oO


Sub CATMain()
   Set oDraw = CATIA.ActiveDocument
   Set oSheets = oDraw.Sheets
   Set oSel = oDraw.Selection

      For i = 1 To oSel.Count
      IsDetail = oSel.Item(i).IsDetail
         If IsDetail = False Then

      For s = 1 to oSheets.Count
         Set active_sheet = oSheets.Item(s)
         active_sheet.Activate

   oSel.Search "CATDrwSearch.DrwDetail.Name=A0-Brennteil-Stempel, all"
   If oSel <> 0 Then
      tmp_str = oSheets.Item(s).Name
      Sheet_Name = tmp_str & "(Brennteile)"
      oSheets.Item(s).Name = Sheet_Name
   End If


   oSel.Search "CATDrwSearch.DrwDetail.Name=A0-Wasserstrahl-Stempel, all"
   If oSel <> 0 Then
      tmp_str = oSheets.Item(s).Name
      Sheet_Name = tmp_str & "(Wasserstrahlteile)"
      oSheets.Item(s).Name = Sheet_Name
   End If
      Next
   End If
End Sub

[Diese Nachricht wurde von shoutz000 am 08. Mai. 2015 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: 09. Mai. 2015 09:07    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Wenn du den Code zwischen die Tags "[CODE][/CODE]" kopierst sollten die Einrückungen erhalten bleiben.
Bei deinem Code fällt mir auf:
- zwei For-Schleifen aber nur eine wird per "next" abgeschlossen
- die erste Schleife über die Selektion macht für mich wenig Sinn
- die Abfrage nach IsDetail muss wahrscheinlich innerhalb der Schleife über alle Sheets angeordnet werden

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 09. Mai. 2015 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

Oh ja des is eindeutig n schnitzer gewesen xD
Also ich rate mich grad nur durch ka. Habe es jetzt umgestellt und jetzt
kommt ständig eine Fehlermeldung bei If oSel <> 0 Then oO
Ist der Suchbefehl vllt falsch?!

Code:

Sub CATMain()
  Set oDraw = CATIA.ActiveDocument
  Set oSheets = oDraw.Sheets
  Set oSel = oDraw.Selection

            For s = 1 to oSheets.Count
                  IsDetail = oSheets.Item(s).IsDetail
                  If IsDetail = False Then
            Set active_sheet = oSheets.Item(s)
                  active_sheet.Activate

            oSel.Search "CATDrwSearch.DrwDetail.Name=A0-Brennteil-Stempel, all"
                  If oSel <> 0 Then
                        tmp_str = oSheets.Item(s).Name
                        Sheet_Name = tmp_str & "(Brennteile)"
                        oSheets.Item(s).Name = Sheet_Name
                  End If

            oSel.Search "CATDrwSearch.DrwDetail.Name=A0-Wasserstrahl-Stempel, all"
                  If oSel <> 0 Then
                        tmp_str = oSheets.Item(s).Name
                        Sheet_Name = tmp_str & "(Wasserstrahlteile)"
                        oSheets.Item(s).Name = Sheet_Name
                  End If
    End If
  Next
End Sub



[Diese Nachricht wurde von shoutz000 am 09. Mai. 2015 editiert.]

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 10. Mai. 2015 01:11    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

Servus.

Also wenn ich die Suche nach den Details per Namen weg lass,
dann werden alle "normalen" Sheets mit beiden Endungen versehen.

Dann stimmt irgendwas mit der Suche nach den Schriftköpfen nicht oder?!

Und was genau? Ich komm absolut net weiter :-(

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: 10. Mai. 2015 10: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 shoutz000 10 Unities + Antwort hilfreich

Servus
In so einem Fall bietet es sich an die Suche manuell nachzuprüfen.
Dann würdest du feststellen, dass die Suche auf allen Seiten gleichzeitig sucht.
Also entweder muss du die Selektion nur auf das aktuelle Blatt einschränken (Blatt selektieren und in Selektion suchen) oder nur einmal die Suche starten und auswerten wo überall die 2D-Componente gefunden wurde

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 10. Mai. 2015 13:07    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

Soo also ich glaube ich bin jetzt ein wenig weiter gekommen.
So das aktuelle Script mit Anmerkungen.

Sub CATMain()
Set oDraw = CATIA.ActiveDocument
Set oSheets = oDraw.Sheets
Set oSel = oDraw.Selection
qSheets = oSheets.Count

  For i = 1 To qSheets 'Alle Blätter durchlaufen
      IsDetail = oSheets.Item(i).IsDetail
      If IsDetail = False Then 'Suche auf "normale" Sheets einschränken
        Set active_sheet = oSheets.Item(i)
        active_sheet.Activate

      oSel.Search "CATDrwSearch.DrwDetail.Name=A0-Brennteil-Stempel, active_sheet" 'Suche nach dem Detail auf dem aktuellen Sheet
        For n = 1 To oSel.Count
        If oSel <> 0 Then 'Wenn Deteil vorhanden dann Endung anhängen
            tmp_str = oSheets.Item(i).Name
            Sheet_Name = tmp_str & "(Brennteile)"
            oSheets.Item(i).Name = Sheet_Name
        End If
      Next

      oSel.Search "CATDrwSearch.DrwDetail.Name=A0-Wasserstrahl-Stempel, active_sheet"
        For s = 1 To oSel.Count
        If oSel <> 0 Then
            tmp_str = oSheets.Item(i).Name
            Sheet_Name = tmp_str & "(Wasserstrahlteile)"
            oSheets.Item(i).Name = Sheet_Name
        End If
      Next
  End If
      Next
End Sub


Es werden auch alle "normalen" Sheets durchgegangen.
Problem ist nur das ansonsten nichts passiert, da ich nur nach Details
suche. Die verwendten Details sind ja aber DrawingComponents und ich
weiß nicht wie ich diese suchen kann. Ein weiteres Problem ist die
Namenserweiterung denke ich. Wenn ich das Deteil verwende, hängt Catia
eine Nummerierung an den namen der DrawingComponent dran.

>>>A0-Wasserstrahl-Stempel.1

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: 10. Mai. 2015 14: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 Nur für shoutz000 10 Unities + Antwort hilfreich

Servus
Probier mal deinen Code im VBA-Editor, IMHO kann der so nicht funktionieren.
Zum Suchstring: probiere es mal mit dem Makrorekorder einen sinnvollen Filter zu finden.
zB (ungetestet)
Code:
For i = 1 To qSheets 'Alle Blätter durchlaufen
      IsDetail = oSheets.Item(i).IsDetail
      If IsDetail = False Then 'Suche auf "normale" Sheets einschränken
        Set active_sheet = oSheets.Item(i)
        oSel.Clear
        osel.add active_sheet 'blatt selektieren um darin zu suchen

      oSel.Search "CATDrwSearch.DrwDitto.Name=A0-Brennteil-Stempel*, sel"
      'Nur in der Selektion suchen, mit Wildcard weitere Endungen mit einschließen
        If oSel.count <> 0 Then 'Wenn Deteil vorhanden dann Endung anhängen
            tmp_str = active_sheet.Name
            Sheet_Name = tmp_str & "(Brennteile)"
            active_sheet.Name = Sheet_Name
        End If
  End If
Next


Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 10. Mai. 2015 18:33    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

Also ich habe jetzt viele Versionen ausprobiert und das Ergebnis ist immer das selbe. Das Makro läuft eindeutig über die normalen Sheets
drüber aber es passiert rein gar nichts mit dem Namen.

Die Makroaufzeichnung liefert absolut nichts außer wenn ich z.B. in
den Backround gehe...
Der VB-Editor läuft ohne zu meckern durch...

so der Stand:

Sub CATMain()
Set oDraw = CATIA.ActiveDocument
Set oSheets = oDraw.Sheets
Set oSel = oDraw.Selection
qSheets = oSheets.Count

   For i = 1 To qSheets
      IsDetail = oSheets.Item(i).IsDetail
      If IsDetail = False Then
   Set active_sheet = oSheets.Item(i)
      oSel.Clear
   osel.add active_sheet

      oSel.Search "CATDrwSearch.DrwDitto.Name=A0-Brennteil-Stempel*, sel"
         If oSel.Count <> 0 Then
            tmp_str = active_sheet.Name
            Sheet_Name = tmp_str & "(Brennteile)"
            active_sheet.Name = Sheet_Name
         End If

      oSel.Search "CATDrwSearch.DrwDitto.Name=A0-Wasserstrahl-Stempel*, sel"
      If oSel.Count <> 0 Then
         tmp_str = active_sheet.Name
         Sheet_Name = tmp_str & "(Wasserstrahlteile)"
         active_sheet.Name = Sheet_Name
      End If
   End If
Next

End Sub

Das ausgegebene Makro während das Script oben läuft lässt für mich,
auch den Anschein erwecken das alles richtig läuft...?!

[Diese Nachricht wurde von shoutz000 am 10. Mai. 2015 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: 10. Mai. 2015 19:50    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Hast du schon mal das Makro schrittweise abgearbeitet?
Wird die 2D-Componente überhaupt gefunden? Stimmt der Inhalt der Objekte/Variablen?
Nach dem oSel.Search ist die Selektion leer/bzw nur die 2D-Componente selektiert. Wenn du wieder darin suchen willst musst du wieder die Selektion leeren und das Blatt hinzufügen.

Gruß
Bernd

PS: Kannst du bitte den Code in "[CODE][/CODE]"-Tags posten?

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 11. Mai. 2015 15: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

Ich versteh grad ehrlich gesagt nix xD.

Schrittweise ka?! Ich schreiben in der regel nur CatScript und das
direkt unter Makros/Edit. Den VB-Editor habe ich bisher kaum verwendet.

Die Variablen müssten alle stimmen die 2D-Komponente ist auch richtig
benannt... also ich weiß nemmer weiter...

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 11. Mai. 2015 16:09    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 habe es jetzt mal so geprüft und es wird definitiv keine
komponente gefunden...

Code:

Sub CATMain()
Set oDraw = CATIA.ActiveDocument
Set oSheets = oDraw.Sheets
Set oSel = oDraw.Selection
qSheets = oSheets.Count

For i = 1 To qSheets
IsDetail = oSheets.Item(i).IsDetail
If IsDetail = False Then
        Set active_sheet = oSheets.Item(i)
        oSel.Clear
        osel.add active_sheet

oSel.Search "CATDrwSearch.DrwDitto.Name=A0-Brennteil-Stempel*, sel"
If oSel.Count <> 0 Then
RetCode = MsgBox( "Fund")
End If

oSel.Search "CATDrwSearch.DrwDitto.Name=A0-Wasserstrahl-Stempel*, sel"
If oSel.Count <> 0 Then
RetCode = MsgBox( "Fund")
End If
End If
Next

End Sub


[Diese Nachricht wurde von shoutz000 am 11. Mai. 2015 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: 11. Mai. 2015 16: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 Nur für shoutz000 10 Unities + Antwort hilfreich

Servus
Schon mal deinen "alten" Filter probiert?
(CATDrwSearch.DrwDetail.Name)

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 11. Mai. 2015 18: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

Ja

auch nichts...

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: 12. Mai. 2015 09:25    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Dann führe eben mal manuell die Suche aus.
Wird dann was gefunden? Wie sieht dann der Suchstring aus (Makrorekorder)?

Gruß
Bernd

PS: Ohne Beispieldaten oder genaue Erklärungen von dir (bzw auch detaillierte Untersuchungen von dir an was es liegen könnte) können wir nur raten an was es hängt.

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 12. Mai. 2015 17:07    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

Was meinst du mit manueller suche?!

Wenn ich aufzeichnen lass und zum den Namen unter Properties ändere
dann kommt nur sowas:

Code:

Language="VBSCRIPT"

Sub CATMain()

Set drawingDocument1 = CATIA.ActiveDocument

Set drawingSheets1 = drawingDocument1.Sheets

Set drawingSheet1 = drawingSheets1.Item("Details")

drawingSheet1.Activate

Set drawingViews1 = drawingSheet1.Views

Set drawingView1 = drawingViews1.Item("A0-Brennteil-Stempel")

drawingView1.Activate

Set drawingSheet2 = drawingSheets1.Item("Blatt_011")

drawingSheet2.Activate

End Sub


[Diese Nachricht wurde von shoutz000 am 12. Mai. 2015 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: 12. Mai. 2015 17: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 shoutz000 10 Unities + Antwort hilfreich

Servus
Manuelle Suche: in Catia -> bearbeiten -> Suchen -> Typ "aus Element" -> gesuchten Elementtyp selektieren -> Suchen (und dies aufzeichnen)
Welche Blätter willst du nun umbenennen/suchen, das Detail-Blatt oder Blätter in der solch ein Detail eingefügt wurde? (kannst du mal ein Bild posten oder die (vereinfachte) Zeichnung hochladen)

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 12. Mai. 2015 17:51    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

Achsooo :-)

das mit der Suche war ne gut Idee. Das ist das Ergebnis:

Code:

Language="VBSCRIPT"

Sub CATMain()

Set drawingDocument1 = CATIA.ActiveDocument

Set selection1 = drawingDocument1.Selection

selection1.Search "(Name=A0'-'Brennteil'-'Stempel* & (CAT2DLSearch.DrwDetail + CATDrwSearch.DrwDetail)),all"

Set selection2 = drawingDocument1.Selection

selection2.Search "Type=*,all"

Set selection3 = drawingDocument1.Selection

selection3.Search "(Name=A0'-'Wasserstrahl'-'Stempel* & CATDrwSearch.DrwDitto),all"

End Sub


Im Anhang die Zeichnung. Gesucht werden soll das vervielfältigte
Element des Details auf den normalen Sheets. Also ein 2D Component.
Vervielfältigt mit Instantiate 2D-Component. Befinden tun sich die
Stempel-Kopien auf Blatt 011 (Brennteile) + 012(Wasserstrahlteile)


[Diese Nachricht wurde von shoutz000 am 12. Mai. 2015 editiert.]

[Diese Nachricht wurde von shoutz000 am 21. Mai. 2015 editiert.]

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 13. Mai. 2015 18: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

Unglaublich...
jetzt werden sie gefunden aber es werden alle Sheets der Selection
umbenannt... 

Code:

Sub CATMain()
Set oDraw = CATIA.ActiveDocument
Set oSheets = oDraw.Sheets
Set oSel = oDraw.Selection
qSheets = oSheets.Count

For i = 1 To qSheets
      IsDetail = oSheets.Item(i).IsDetail
      If IsDetail = False Then
        Set active_sheet = oSheets.Item(i)
        oSel.Clear
        oSel.Add active_sheet
              active_sheet.Activate

      oSel.Search "(Name='A0'-'Brennteilstempel* & CATDrwSearch.DrwDetail), oSel"
        If oSel.Count <> 0 Then
            tmp_str = active_sheet.Name
            Sheet_Name = tmp_str & "(Brennteile)"
            active_sheet.Name = Sheet_Name
        End If

      oSel.Search "(Name='A0'-'Wasserstrahlstempel* & CATDrwSearch.DrwDetail), oSel"
        If oSel.Count <> 0 Then
            tmp_str = active_sheet.Name
            Sheet_Name = tmp_str & "(Wasserstrahlteile)"
            active_sheet.Name = Sheet_Name
        End If
  End If
Next

End Sub


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: 13. Mai. 2015 19:07    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Und was hast du schon alles probiert?
Meine Ideen dazu:
Beim Search folgendes ändern:
Code:
oSel.Search "(Name='A0'-'Brennteilstempel* & CATDrwSearch.DrwDetail), sel"
Nach dem ersten oSel.Search muss du die Selektion wieder leeren und die Ansicht neu hinzufügen
Code:
oSel.Clear
oSel.add oSel.Add active_sheet

Gruß
Bernd

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

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 13. Mai. 2015 19:14    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 hab gefühlt schon alles ausprobiert...

nur mit "sel" wird gar nichts umbenannt.

Bei "oSel.add oSel.Add active_sheet" kommt ein Kompilierungsfehler.

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 13. Mai. 2015 19:29    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

Hab aber grad raus gefunden das mit "CATDrwSearch.DrwDitto" gesucht werden muss!
Dann ändert er nichts wenn sich keine Kopie auf den Sheets befindet.

Bei CATDrwSearch.DrwDeteil werden auch dann die Sheets geändert obwohl
nur das original Detail auf dem Detailsheet vorhanden ist?!
Obwohl wir nur auf den normalen Sheets suchen?!

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: 13. Mai. 2015 19: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 Nur für shoutz000 10 Unities + Antwort hilfreich

Servus
Ich hab mal ein bischen am Code rumgebastel. Bei mir läuft er so.
Code:
Sub CATMain()

Dim odraw As DrawingDocument
Dim oSheets As DrawingSheets
Dim osel As Selection
Dim osheet As DrawingSheet
Dim i As Integer
Dim IsDetail As Boolean

Set odraw = CATIA.ActiveDocument
Set oSheets = odraw.Sheets
Set osel = odraw.Selection

For i = 1 To oSheets.Count
    Set osheet = oSheets.Item(i)
    IsDetail = osheet.IsDetail
    If IsDetail = False Then
        osel.Clear
        osel.Add osheet
             
        osel.Search "(Name=A0'-'Brennteil'-'Stempel* & CATDrwSearch.DrwDitto),sel"
        If osel.Count <> 0 Then
            osheet.Name = osheet.Name & "(Brennteile)"
        End If
       
        osel.Clear
        osel.Add osheet

        osel.Search "(Name=A0'-'Wasserstrahl'-'Stempel* & CATDrwSearch.DrwDitto),sel"
        If osel.Count <> 0 Then
            osheet.Name = osheet.Name & "(Wasserstrahlteile)"
        End If
    End If
Next

End Sub


Gruß
Bernd

PS: unter catvbs müssen die ganzen "Dim" raus.
------------------
Warum einfach, wenn es auch kompliziert geht.

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 13. Mai. 2015 20: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

Hammer  ...

ja bei mir jetzt auch. Ich versteh bloß nicht so ganz warum?!
Ich habe das Sheet viel umständlicher umbenannt als Du ok.
Und ich habe mit dem active_sheet noch gearbeitet oO

gibt wohl noch vieeel zu lernen 

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 15. Mai. 2015 16:14    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

Ok doch noch ne Kleinigkeit :-)

habe dazu nichts gefunden!

Ich erstelle gerade Checks um die Parameterwerte zu prüfen, was auch
soweit wunderbar funktioniert:

Die Nummer muss so aussehen 20150000-3-01

ES_Nr .Length()==13 AND ES_Nr .Extract(8,1)=="-" AND ES_Nr .Extract(10,1)=="-"

Nun möchte ich noch die Stellen zwischen den "-" überprüfen ob
da nur Zahlen enthalten sind, weil da keine Buchstaben sein dürfen.
Wie kann das bewerkstelligt werden?

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 15. Mai. 2015 17: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 Nur für shoutz000 10 Unities + Antwort hilfreich

Aus der Doku zu 'IsNumeric'
Code:

Dim MyVar, MyCheck
MyVar = "53"  ' Assign value.
MyCheck = IsNumeric(MyVar)  ' Returns True.

MyVar = "459.95"  ' Assign value.
MyCheck = IsNumeric(MyVar)  ' Returns True.

MyVar = "45 Help"  ' Assign value.
MyCheck = IsNumeric(MyVar)  ' Returns False.



Tschau,
Joe

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 15. Mai. 2015 21:47    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

Danke,

aber das ist in einem Check nicht zulässig...
Aber ich find auch echt nix dazu 

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: 15. Mai. 2015 22:05    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 shoutz000 10 Unities + Antwort hilfreich

Servus
Wenn nichts dazu in CATIA-Hilfe steht wird es wohl nicht gehen.
Kannst du in einem Check auch ein VB-Script aufrufen?

Gruß
Bernd

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

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 15. Mai. 2015 23:04    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 shoutz000 10 Unities + Antwort hilfreich

Mit Checks hab ich noch nicht gespielt, aber ...

Um zu Fuss auf numerische Eingabe zu prüfen - und falls das mit checks geht -
kann man auch Größenvergleiche heranziehen, zumindest in VB.

if ES_Nr .Extract(9,1) > 0 and ES_Nr .Extract(9,1) < 9 then  (oder so ähnlich :-) )

aufbauend auf den Ascii-Werten für die ziffern 0-9.
Geht natürlich nur für jeweils eine Ziffer.

Vielleicht hilft's.

Tschau,
Joe

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

shoutz000
Mitglied
Techn. Produktdesigner


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

Beiträge: 168
Registriert: 19.08.2013

CatiaV5 R19
CatiaV5 R24
Windows 7 Professional

erstellt am: 16. Mai. 2015 00:46    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

Die Catia Hilfe steht mir nicht zur verfügung.
Soweit ich weiß kann ein Makro nicht in einem Check gestartet werden
das geht nur in einer Rule.

Bisher habe ich noch nichts sinnvolles gefunden...

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