Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Suche höchste Nummer +1

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:  Suche höchste Nummer +1 (1250 mal gelesen)
Esterbauer
Mitglied



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

Beiträge: 62
Registriert: 26.09.2008

erstellt am: 28. Dez. 2017 11:44    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


2.gif

 
Hallo ich habe folgendes Problem

Ich habe ein Produkt für Auswerfer.
Mit einem Markos starte ich die Ausgangsdatei (_auswerfer_rund_) mit Datei Neu Aus, er kopiert mir die Datei anschließen in das vorhergesehene Produkt.
Das funktioniert soweit auch sehr gut.
Das ganze möchte ich öfters wiederholen, dazu muss ich aber zuerst den Dateinamen umbenennen ( z.b: 500_auswerfer_rund_as).
Gibt es eine Möglichkeit das er die Benennung (dreistellige Pos Nr.  selber erkennt welche die höchste Nr. ist und dann noch eins höher zählt.
Der Dateiname (Pos Nr.  wird durch einen Parameter in der Datei gesteuert.

mein Makro schaut zurzeit so aus
Language="VBSCRIPT"

Sub CATMain()

Set documents1 = CATIA.Documents

Set partDocument1 = documents1.NewFrom("H:\05_Catia V5\Auswerfer\_auswerfer_rund_.CATPart")

Set partDocument1 = CATIA.ActiveDocument

Set selection1 = partDocument1.Selection

selection1.Clear

Set part1 = partDocument1.Part

selection1.Add part1

selection1.Copy

Set windows1 = CATIA.Windows

Set specsAndGeomWindow1 = windows1.Item("auswerfer_produkt.CATProduct")

specsAndGeomWindow1.Activate

Set productDocument1 = CATIA.ActiveDocument

Set selection2 = productDocument1.Selection

selection2.Clear

Set product1 = productDocument1.Product

selection2.Add product1

selection2.Paste

End Sub


Kann mir wer weiterhelfen

[Diese Nachricht wurde von Esterbauer am 28. Dez. 2017 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: 28. Dez. 2017 12: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 Esterbauer 10 Unities + Antwort hilfreich

Servus

Mögliche Vorgehensweise:
- Liste (zB Array) mit den vorhandenen Auswerfern (Dateiname oder gleich PosNr) erstellen (zB Verzeichnisinhalt auslesen, Products-Collection deines Products, Suche im Product (Suche entsprechend einschränken)
- Liste sortieren (zB Bubblesort)
- höchster Wert auslesen
Oder mit einer Schleife direkt prüfen ob es den Auswerfer im Verzeichnis schon gibt (FileExists) falls ja, Index erhöhen und Schleife wiederholen (Abbruchbedingung nicht vergessen).
Falls du die Auswerfer immer in dem Product erzeugst, könntest du auch im Product einen Parameter für die Nummer des "neusten" Auswerfers anlegen. Beim Start des Makro diese Nr auslesen, Nr um eins erhöhen, "Neu aus" ...

Gruß
Bernd

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

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

Esterbauer
Mitglied



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

Beiträge: 62
Registriert: 26.09.2008

erstellt am: 28. Dez. 2017 12: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

Hallo Danke für die schnelle Antwort.

Da ich Kaum Programmierkenntnisse habe komme ich da allein nicht recht weit.
Ich habe im Forum ein Beispiel auf Part Ebene gefunden, könnte man das Script für so was verwenden und anpassen?


Sub CATMain()
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim hybridBody1 As HybridBody
Dim i As Integer
Dim Name As String

'Fehlerbehandlng auschalten
On Error Resume Next
For i = 1 To 99
   
    Name = "Test_" & Right(CStr(i + 100), 2)
   
    Set hybridBody1 = hybridBodies1.Item(Name)
   
    If Err.Number <> 0 Then
        Set hybridBody1 = hybridBodies1.Add
        hybridBody1.Name = Name
        Exit For
    End If
Next
   
Err.Clear
'Fehlerbehandlng einschalten
On Error GoTo 0


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: 28. Dez. 2017 12:31    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 Esterbauer 10 Unities + Antwort hilfreich

Servus

Ich kenne deine genaue Struktur zwar nicht, aber ja so in der Art könnte es gehen.
ggf solltest du zunächst deine allgemeinen Kenntnisse zu VB(A) verbessern.
(hast du Bücher zu Catia-Makros und die Doku schon gefunden/benutzt?)

Gruß
Bernd

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

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

Esterbauer
Mitglied



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

Beiträge: 62
Registriert: 26.09.2008

erstellt am: 28. Dez. 2017 14:22    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 mein script nochmals Optimiert.
Da das Produkt nicht immer den gleiche Namen hat habe ich den Code geändert.
Er liest mir jetzt den Namen den Produktes aus der ausgewählt wird.
Das klappt aber irgendwie nicht immer so, sobald das Produkt einmal umbenannt wird geht nichts mehr, was kann da der Grund sein.
Der Fehler muss hier liege, was hab ich da falsch geschrieben?

Set specsAndGeomWindow1 =  windows1.Item (Teil.name)
vorher war die Zeile so Set specsAndGeomWindow1 = windows1.Item("auswerfer_produkt.CATProduct")


Language="VBSCRIPT"


Sub CATMain()

set Sel = CATIA.ActiveDocument.Selection
set Objekt = Sel.FindObject("CATIAProduct")
set Teil = Objekt.ReferenceProduct.parent.Product  ' oder .Product für Parts und Products

MsgBox Teil.name


Set documents1 = CATIA.Documents

Set partDocument1 = documents1.NewFrom("H:\05_Catia V5\Auswerfer\_auswerfer_rund_.CATPart")

Set partDocument1 = CATIA.ActiveDocument

Set selection1 = partDocument1.Selection

selection1.Clear

Set part1 = partDocument1.Part

selection1.Add part1

selection1.Copy

Set windows1 = CATIA.Windows

Set specsAndGeomWindow1 =  windows1.Item (Teil.name)

specsAndGeomWindow1.Activate

Set productDocument1 = CATIA.ActiveDocument

Set selection2 = productDocument1.Selection

selection2.Clear

Set product1 = productDocument1.Product

selection2.Add product1

selection2.Paste

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: 28. Dez. 2017 15: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 Nur für Esterbauer 10 Unities + Antwort hilfreich

Servus

Statt über den Namen auf das Fenster zuzugreifen könntest du dir das Fenster auch "merken" und diese am Ende direkt wieder aktivieren. Beispiel:

Code:

Dim oWindowRootProduct As Window
Set oWindowRootProduct = CATIA.ActiveWindow

' hier dann NewFrom usw.

oWindowRootProduct.Activate


Statt den Umweg über Copy&Paste kannst du auch Products mit AddExternalComponent oder AddComponentsFromFiles zur Rootbaugruppe zufügen (siehe Doku)

Ich empfehle dir mit dem VBA-Editor zu arbeiten.
Der Code der Makroaufzeichnung ist nicht immer sinnvoll. Also versuchen den Code zu verstehen und ausmisten.

Gruß
Bernd

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

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

Esterbauer
Mitglied



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

Beiträge: 62
Registriert: 26.09.2008

erstellt am: 29. Dez. 2017 08:55    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 Danke nochmals für deine Hilfe

Habe jetzt das Script zusammengeschrumpft.
Hätte jetzt noch was.
Habe Inputbox eingefügt, jetzt soll der Wert aus der nputbox in einen vordefinierten Parameter im Part übertragen werden, wie könnte das funktionieren.
Danke


Sub CATMain()

Dim PListe As Products
    Set PListe = CATIA.ActiveDocument.Product.Products
   
    Dim oPartDoc As Document
    Set oPartDoc = CATIA.Documents.NewFrom("H:\05_Catia V5\Auswerfer\_auswerfer_rund_.CATPart")


Antwort = InputBox("Pos Nr.:","Auswerfer Positionsummer","1")
Zahl = Antwort


    Dim oNewComponent As Product
    Set oNewComponent = PListe.AddExternalComponent(oPartDoc)
  oPartDoc.close

End Sub

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



Meister / Techniker SHK Gas- und Wasserversorgung (m/w/d)

Die Stadtwerke Bamberg Energie- und Wasserversorgungs GmbH sucht zum nächstmöglichen Zeitpunkt:

Meister / Techniker SHK Gas- und Wasserversorgung (m?/?w?/?d)

Ob nachhaltige Energie oder sicheres Trinkwasser, zukunftssicheres Internet über Glasfaser, moderne Mobilität oder attraktive Freizeitangebote: Wir bewegen Bamberg, Tag für Tag. Wir bieten verlässliche Sicherheit und aus unserer langen Tradition gewachsene Werte....

Anzeige ansehenProjektmanagement
Esterbauer
Mitglied



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

Beiträge: 62
Registriert: 26.09.2008

erstellt am: 29. Dez. 2017 08: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

Zudem sollte das eingefügte Part im Produkt fixiert werden.

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