Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Saveas Problem

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:  Saveas Problem (346 / mal gelesen)
Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 28. Dez. 2021 15: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

Hallo Zusammen!

Ich habe gerade ein Problemmit SaveAs 

Ich versuche jedes Part in der Baum mit SaveAs und Product.PartNumber speichern. Alles funct wunderschon, bis zur Zeit, wenn ein PartNumber mit z.B. ".1" endest  Dann das Part ist nicht mehr als catpart gespeichert, sonder als File mit ".1" Dateiendung. Kann mir jemand helfen wie kann ich das lösen?

Danke im Voraus

Lucas

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. 2021 15: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 Sylas 10 Unities + Antwort hilfreich

Servus Lucas

Wie sieht dein Code für das SaveAs (und die Herstellung des Dateinamens aus)?
Ggf reicht das Angeben mit Dateiendung bei SaveAs aus.
Was machst du wenn Umlaute oder andere Sonderzeichen in der PartNumber vorkommen?

Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

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

Zitat:
Original erstellt von bgrittmann:
Servus Lucas

Wie sieht dein Code für das SaveAs (und die Herstellung des Dateinamens aus)?
Ggf reicht das Angeben mit Dateiendung bei SaveAs aus.
Was machst du wenn Umlaute oder andere Sonderzeichen in der PartNumber vorkommen?

Gruß
Bernd



Hallo Bernd
Ich tausche Polnische Buchstaben (und anders) mit:
Code:

Public Function RemoveNonASCII(str As String) As String
    Dim i As Integer
    For i = 1 To Len(str)
        If Not (AscW(Mid(str, i, 1)) = 61 Or (AscW(Mid(str, i, 1)) >= 48 And AscW(Mid(str, i, 1)) <= 57) Or (AscW(Mid(str, i, 1)) >= 65 And AscW(Mid(str, i, 1)) <= 90) Or AscW(Mid(str, i, 1)) = 95 Or (AscW(Mid(str, i, 1)) >= 97 And AscW(Mid(str, i, 1)) <= 122)) Then  'It's an ASCII character
            Select Case AscW(Mid(str, i, 1))
            '----------------------------------------------------------------ZNAKI POLSKIE-----------------------------------------------------
            Case 260 'Mid(RemoveNonASCII, i, 1) = ChrW(261)
            str = Replace(str, ChrW(260), "A")
            Case 261 'Mid(RemoveNonASCII, i, 1) = ChrW(261)
            str = Replace(str, ChrW(261), "a")
            Case 262 'Mid(str, i, 1) = ChrW(263)
            str = Replace(str, ChrW(262), "C")
            Case 263 'Mid(str, i, 1) = ChrW(263)
            str = Replace(str, ChrW(263), "c")
            Case 280 'Mid(str, i, 1) = ChrW(281)
            str = Replace(str, ChrW(280), "E")
            Case 281 'Mid(str, i, 1) = ChrW(281)
            str = Replace(str, ChrW(281), "e")
            Case 323 'Mid(str, i, 1) = ChrW(324)
            str = Replace(str, ChrW(323), "N")
            Case 324 'Mid(str, i, 1) = ChrW(324)
            str = Replace(str, ChrW(324), "n")
            Case 211 'Mid(str, i, 1) = ChrW(243)
            str = Replace(str, ChrW(211), "O")
            Case 243 'Mid(str, i, 1) = ChrW(243)
            str = Replace(str, ChrW(243), "o")
            Case 321 'Mid(str, i, 1) = ChrW(322)
            str = Replace(str, ChrW(321), "L")
            Case 322 'Mid(str, i, 1) = ChrW(322)
            str = Replace(str, ChrW(322), "l")
            Case 346 'Mid(str, i, 1) = ChrW(347)
            str = Replace(str, ChrW(346), "S")
            Case 347 'Mid(str, i, 1) = ChrW(347)
            str = Replace(str, ChrW(347), "s")
            Case 379 'Mid(str, i, 1) = ChrW(380)
            str = Replace(str, ChrW(379), "Z")
            Case 380 'Mid(str, i, 1) = ChrW(380)
            str = Replace(str, ChrW(380), "z")
            Case 377 'Mid(str, i, 1) = ChrW(378)
            str = Replace(str, ChrW(377), "Z")
            Case 378 'Mid(str, i, 1) = ChrW(378)
            str = Replace(str, ChrW(378), "z")
            '----------------------------------------------------------------ZNAKI SPECJALNE-----------------------------------------------------
            Case 32
            str = Replace(str, ChrW(32), "_")
            Case 248 'Mid(str, i, 1) = ChrW(378)
            str = Replace(str, ChrW(248), "D")
            'Case Else
            'str = Replace(str, Mid(str, i, 1), "_")
            End Select
        End If
Next i
RemoveNonASCII = str
End Function

und spiechern unter mit:

Code:

Function zapisz(Product As Product, sPath As String)
        Set oDoc = Product.ReferenceProduct.Parent
        sName = RemoveNonASCII(Product.PartNumber)
        If Not CATIA.FileSystem.FileExists(sPath & sName) = True Then
            If Left(Right(sName, 2), 1) = "." Then
                sName = sName & ".CATPart"
            End If
            oDoc.SaveAs (sPath & sName)
        Else
            sStatus = MsgBox("Złożenie o tej nazwie istnieje już na dysku! Chcesz ręcznie zmienić nazwę?", vbOKCancel, "Plik o tej nazwie już istnieje!")
            If sStatus = "Yes" Then
            sName = InputBox("Podaj nową, unikalną nazwę pliku: ", "Nowa nazwa pliku", sName & ".1")
            Else
            sStatus2 = MsgBox("Przerwano na życzenie użytkownika", vbOKOnly, "Anuluj")
            End If
        End If
End Function

Das Problem mit Namen habe ich mit:

Code:
         
If Left(Right(sName, 2), 1) = "." Then
        sName = sName & ".CATPart"
End If

gelöst.
Was noch funct nict ist das hier:

Code:

        If Not CATIA.FileSystem.FileExists(sPath & sName) = True Then
            If Left(Right(sName, 2), 1) = "." Then
                sName = sName & ".CATPart"
            End If
            oDoc.SaveAs (sPath & sName)
        Else
            sStatus = MsgBox("Złożenie o tej nazwie istnieje już na dysku! Chcesz ręcznie zmienić nazwę?", vbOKCancel, "Plik o tej nazwie już istnieje!")
            If sStatus = "Yes" Then
            sName = InputBox("Podaj nową, unikalną nazwę pliku: ", "Nowa nazwa pliku", sName & ".1")
            Else
            sStatus2 = MsgBox("Przerwano na życzenie użytkownika", vbOKOnly, "Anuluj")
            End If
        End If


Die Makro soll der Benutzer sagen, das der Datei existiert schon und wie soll die neue Instanz gespiechert sein. Aber es sieht mir aus, dass so wie so, es einfach speicherst uber die existierte Datei . Ich hoffe das mein Deutsch is gut genug zu die Erklarung 

Gruss
Lucas

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. 2021 18: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 Sylas 10 Unities + Antwort hilfreich

Servus

Zitat:
If Left(Right(sName, 2), 1) = "." Then
Was passiert wenn die Ziffernfolge am Ende zweistellig wird?

MsgBox liefert dir nicht "Yes" zurück. (am besten einfach mal per MsgBox den sStatus ausgeben lassen)

Also zb if sStatus = 1 oder if sStatus = vbOK prüfen

Gruß
Bernd

PS: muss bei FileExists nicht auch die Dateiendung mit geprüft werden?

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

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