Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Save As auf Produktstruktur kurze frage

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:  Save As auf Produktstruktur kurze frage (2963 mal gelesen)
nreim1
Mitglied
Konstrukteur


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

Beiträge: 36
Registriert: 18.01.2008

erstellt am: 15. Feb. 2008 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

Hallo CATIA Freunde

Es ist malwieder soweit und ich Stoße an die Grenzen meiner Programmierkunst !!!
Es dreht sich um folgendes !

Ich möchte ein Produkt öffnen ( Mehrere unterprodukte und parts )
Dann Lasse ich mein Renaming Makro Laufen und Dann mein Save As Makro...

Mein Problem ist folgendes:

Lasse ich mein Saveas Makro Laufen ( ohne vorher Renaming ) klappt es wunderbar, Er Speichert mir alle Parts und Produkte in dem Neuen Ordner...

Wenn ich nun aber vorher mein Renaming habe laufen lassen und dann das Save As machen möchte Kopiert er mir nur Das Hauptprodukt an die neue Position... und bei den Anderen Produkten und Parts schreibt er mir ne Fehlermeldung

Method Item Failed

Ich persönlich denke das der fehler einfach darin liegt das er beim Speichern ( Nach dem Renaming ) die Originaldaten nicht richtig zuweisen kann ... Und ich weiss einfach noch zu wenig um jetzt die richtige Anweisung zu erstellen....

Lange rede Kurzer Sinn Hier mein SAVE AS Makro, vieleicht hat ja jemand den entsprechenden Denkanstoss !!!

PS: Die Stelle an der ich den Fehler vermute ist FETT Makiert

Code:

Sub CATmain()
CATIA.DisplayFileAlerts = False

Dim myproduct As Product
Set myproduct = CATIA.ActiveDocument.Product


' Enter Absolute Savepath here
Dim bsppath As String
bsppath = "G:\exchange\TEST-DIE_MACRO\Neuer Ort\"

Dim Abssavepath As String
Abssavepath = InputBox("Please enter the Absolute Save Path", "Save Path", bsppath)


' Launch the SAVEROUTINE
    Savethisdocument myproduct, Abssavepath


' Save Mainproduct
CATIA.ActiveDocument.SaveAs Abssavepath & myproduct.PartNumber & ".CATProduct"


CATIA.DisplayFileAlerts = True

' On end
MsgBox "Finished"

End Sub


'------------------------------------------------------------------------------------
' Sub Routine SAVE AS
'------------------------------------------------------------------------------------

Sub Savethisdocument(Myprod As Product, Abssavepath As String)

Dim currentprod As Product

On Error Resume Next

  For i = Myprod.Products.Count To 1 Step -1
    Set currentprod = Myprod.Products.Item(i)

      If currentprod.Products.Count <> 0 Then
Err.Clear()

  Savethisdocument currentprod.ReferenceProduct, Abssavepath

      CATIA.Documents.Item(currentprod.PartNumber & ".CATProduct").SaveAs Abssavepath & currentprod.PartNumber & ".CATProduct"       

            Else: 

CATIA.Documents.Item(currentprod.PartNumber & ".CATPart").SaveAs Abssavepath & currentprod.PartNumber & ".CATPart"

      End If

MsgBox("I am Here: " & currentprod.PartNumber)

If Err.Number <> 0 Then
  MsgBox(Err.Description)
        End if

  Next

On Error GoTo 0

End Sub


Mir Persönlich fehlt leider immernoch das Verständnis Wie Catia genau mit den Klassen umgeht und wann ich wo welche Anweisung anbringen muss ...

MFG: Nico und Danke im Vorraus

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

Proofin
Mitglied
Dpl.Ing


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

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 15. Feb. 2008 13: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 Nur für nreim1 10 Unities + Antwort hilfreich

Moin Nico,

meine Frage wäre was änderts du mit deinem Rename Makro??
Die PartNumber?

Hab deine Methoden mal etwas angepasst und hoffe das sie jetzt tut was sie soll.

Code:

Sub CATmain()
CATIA.DisplayFileAlerts = False

Dim myproduct As Product
dim Doc as document
Set myproduct = CATIA.ActiveDocument.Product
set Doc = myproduct.referenceproduct.parent

' Enter Absolute Savepath here
Dim bsppath As String
bsppath = "G:\exchange\TEST-DIE_MACRO\Neuer Ort\"

Dim Abssavepath As String
Abssavepath = InputBox("Please enter the Absolute Save Path", "Save Path", bsppath)


' Launch the SAVEROUTINE
    Savethisdocument myproduct, Abssavepath


' Save Mainproduct
Doc.SaveAs (Abssavepath & myproduct.PartNumber & Right(Doc.Name, Len(Doc.Name) - InStrRev(Doc.Name, ".") + 1))


CATIA.DisplayFileAlerts = True

' On end
MsgBox "Finished"

End Sub

Sub Savethisdocument(Myprod As Product, Abssavepath As String)

  Dim currentprod As Product
  Dim Doc As Document

  On Error Resume Next

  For i = Myprod.Products.Count To 1 Step -1
    Set currentprod = Myprod.Products.Item(i)
    Set Doc = currentprod.ReferenceProduct.Parent

    Doc.SaveAs (Abssavepath & currentprod.PartNumber & Right(Doc.Name, Len(Doc.Name) - InStrRev(Doc.Name, ".") + 1))

      If currentprod.Products.Count <> 0 Then
        Err.Clear

        Savethisdocument currentprod, Abssavepath

      End If

      If Err.Number <> 0 Then
        MsgBox (Err.Description)
      End If
     
      MsgBox ("I am Here: " & currentprod.PartNumber)

  Next

  On Error GoTo 0

End Sub


Gruß
Proofin

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

nreim1
Mitglied
Konstrukteur


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

Beiträge: 36
Registriert: 18.01.2008

erstellt am: 15. Feb. 2008 18: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

Hallo Proofin

Danke erstmal für deine schnelle Antwort, werde das Makro gleich mal Modifizieren und dann hier rückmeldung geben.....


Mfg:

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

nreim1
Mitglied
Konstrukteur


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

Beiträge: 36
Registriert: 18.01.2008

erstellt am: 15. Feb. 2008 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

SSSSUUUUPPPPEEEEEERRRRRRR Proofin

Nach leichter Modifikation deines Skriptes läft das Skript einwandfrei ....

Oh man ich muss glaube ich noch viel Lehrnen was Skripten bzw. VB Angeht
Ich habe mir zwar Diverse Bücker über VB und CATIA Makro Programmierung geholt, aber ich bin auch erst sein paar wochen dran .... Bloß ist das manchmal sehr Demotivirend wenn man vor solchen Problemen steht un einfach nicht schlau wird .....

Hier jetzt erstmal Das von mir nochmal Nachgearbeitete Makro... Meine Veränderungen wie immer FETT

Code:

Sub CATmain()

CATIA.DisplayFileAlerts = False

Dim myproduct As Product
dim Doc as document

Set myproduct = CATIA.ActiveDocument.Product
set Doc = myproduct.referenceproduct.parent

' Enter Absolute Savepath here
Dim bsppath As String
bsppath = "G:\exchange\TEST-DIE_MACRO\Neuer Ort\"

Dim Abssavepath As String
Abssavepath = InputBox("Please enter the Absolute Save Path", "Save Path", bsppath)

' Launch the SAVEROUTINE
    Savethisdocument myproduct, Abssavepath

' Save Mainproduct
Doc.SaveAs (Abssavepath & myproduct.PartNumber & Right(Doc.Name, Len(Doc.Name) - InStrRev(Doc.Name, ".") + 1))

CATIA.DisplayFileAlerts = True

' On end
MsgBox "Finished"

End Sub

Sub Savethisdocument(Myprod As Product, Abssavepath As String)

  Dim currentprod As Product
  Dim Doc As Document

  On Error Resume Next

  For i = Myprod.Products.Count To 1 Step -1
    Set currentprod = Myprod.Products.Item(i)
    Set Doc = currentprod.ReferenceProduct.Parent


      If currentprod.Products.Count <> 0 Then
        Err.Clear

        Savethisdocument currentprod, Abssavepath

Doc.SaveAs (Abssavepath & currentprod.PartNumber & Right(Doc.Name, Len(Doc.Name) - InStrRev(Doc.Name, ".") + 1))

else

Doc.SaveAs (Abssavepath & currentprod.PartNumber & Right(Doc.Name, Len(Doc.Name) - InStrRev(Doc.Name, ".") + 1))

      End If

      If Err.Number <> 0 Then
        MsgBox (Err.Description)
      End If
     
      MsgBox ("I am Here: " & currentprod.PartNumber)

  Next

  On Error GoTo 0

End Sub



PS: @ Proofin
Hättest du mal zeit mir paar kleine Fragen bezüglich der Programmierung zu beantworten, so das ich ein paar Grundlegende gedanken besser verstehen kann ?

Ich würde dir gerne E-Mailen wenn du überhaut Zeit und lust hast, keine Angst ich werde dich nicht mit Fragen nach Makros die du mir Programmieren soll Bombardieren. Ich will es ja selber lehrnen !!! Ich würde nur gerne ein bisschen mehr verständniss für die Klassen von CATIA bekommen...

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