Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro-Fehler 1002

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-Fehler 1002 (1104 mal gelesen)
xyon126
Mitglied
Ingenieur


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

Beiträge: 74
Registriert: 07.11.2011

erstellt am: 26. Jun. 2012 22: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

Hallo Freunde!
  Ich habe ein Problem. Ich möchte die Stücke eines Produkts am Ende der .0001 der erste, .0002 Name des Baumes, usw, usw. Anzahl aber ich bekomme Fehler 1002 in Zeile 44. Können Sie helfen Bitte und um Vergebung für mein Deutsch.

Gruß

Code:
Sub CATMain()

    'Crear objeto, Documento.
    Dim tmpDoc As Document
    Dim index ' as Integer
    Dim numero As String
   
    index = 1000
    numero = ".000"

    'Seleccionar todos los documentos abiertos.
    For Each tmpDoc In CATIA.Documents

        'Modificar solo Parts y Products
        If InStr(1, tmpDoc.Name, ".CATProduct") > 0 Or InStr(1, tmpDoc.Name, ".CATPart") > 0 Then
     
'--------------------------------
'EDITAR NÚMERO DE PIEZA O INDEX
'--------------------------------

Dim product1 As Product
Dim documents1 As Documents

Set documents1 = CATIA.Documents
Set partDocument1 = CATIA.ActiveDocument
Set product1 = partDocument1.GetItem(partDocument1.Name)

            if index > 9 Then
                numero = ".00"
              if index =>100 Then
                    numero = ".0"
                    if index =>1000 Then
                    numero = "."
                    End If
                End If
            End If
            Textdata = numero & index
            product1.PartNumber = product1.PartNumber & Textdata
            product1.Update
        End If
        index = index +1
 
    Next

End Sub


Das ist ein CATScript

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: 27. Jun. 2012 08: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 xyon126 10 Unities + Antwort hilfreich

Hi Xyon,
kannst du uns sagen, welche Zeile die Zeile 44 ist? Der Ausschnitt beinhaltet nicht mal 44 Zeilen, daher denke ich, dass vorangestellt noch einiges steht.

Was genau möchtest du denn machen? Versuch es in Stichpunkten oder in Englisch, denn dein Makro ist in Gänze total unschlüssig und kann eigentlich nicht funktionieren.

------------------
MFG
Rick Schulz

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

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: 27. Jun. 2012 09: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 xyon126 10 Unities + Antwort hilfreich

Versuch es mal damit... Wenn ich mich nicht täusche, sollte es das sein, was du suchst. Es ist wohl VBA und nicht CATScript.

Code:

Sub CATMain()
    Dim tmpDoc As ProductDocument
    Dim ChildDoc 'As Document
    Dim index  As Integer
    Dim numero As String
    Dim i As Integer
   
    Set tmpDoc = CATIA.ActiveDocument
    index = 1
    numero = ".000"

    If InStr(1, tmpDoc.Name, ".CATProduct") Then
   
        For i = 1 To tmpDoc.Product.Products.Count
       
            Set ChildDoc = tmpDoc.Product.Products.Item(i)
     
            If index >= 1000 Then
                numero = "."
            ElseIf index >= 100 Then
                numero = ".0"
            ElseIf index >= 10 Then
                numero = ".00"
            End If
           
            Textdata = numero & index
            ChildDoc.Name = ChildDoc.Name & Textdata
            index = index + 1
 
        Next
       
    End If
   
    tmpDoc.Product.Update

End Sub


------------------
MFG
Rick Schulz

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

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

xyon126
Mitglied
Ingenieur


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

Beiträge: 74
Registriert: 07.11.2011

erstellt am: 27. Jun. 2012 10: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 Rick!

Zunächst vielen Dank für Ihre Hilfe. Beantworte ich Ihre Fragen.:
Die Linie 44 ist: Set product1 = partDocument1.GetItem (partDocument1.Name)

Und in Bezug auf Ihre Code ist perfekt, aber ich tue es in der "Instance name" und ich brauche die "Part Number", sowie die Datei umbenennen, um die Part Number und ich habe ein Makro, das ich tue.

M.f.G.

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

xyon126
Mitglied
Ingenieur


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

Beiträge: 74
Registriert: 07.11.2011

erstellt am: 28. Jun. 2012 07: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

hallo Rick!
                  Ich veränderte den Code für mich die Teilenummer zu benennen, aber meiner Überraschung ist, dass wenn ein Produkt drei gleich große Stücke sie umbenennen, um mich dreimal mit diesem Ergebnis Beispiel. T1234.0001.0002.0003 wenn ich brauche, ist, dass nur einmal berühmtes Beispiel. T1234.0001, T456.0002 usw. Wie kann ich es beheben?

Code:
Sub CATMain()
    Dim tmpDoc As ProductDocument
    Dim ChildDoc 'As Document
    Dim index  As Integer
    Dim numero As String
    Dim i As Integer
 
    Set tmpDoc = CATIA.ActiveDocument
    index = 1
    numero = ".000"

    If InStr(1, tmpDoc.Name, ".CATProduct") Then
 
        For i = 1 To tmpDoc.Product.Products.Count
     
            Set ChildDoc = tmpDoc.Product.Products.Item(i)
   
            If index >= 1000 Then
                numero = "."
            ElseIf index >= 100 Then
                numero = ".0"
            ElseIf index >= 10 Then
                numero = ".00"
            End If
         
            Textdata = numero & index
            ChildDoc.PartNumber = ChildDoc.PartNumber & Textdata
            index = index + 1

        Next
     
    End If
 
    tmpDoc.Product.Update

End Sub



Vielen Dank

M.f.G.

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