Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Dateiname bei Speichern unter aus benutzerdefinierte Eigenschaften auslesen

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
16. mav Innovationsforum 2024
Autor Thema:  Dateiname bei Speichern unter aus benutzerdefinierte Eigenschaften auslesen (4238 mal gelesen)
saidan
Mitglied
IT-Sysadmin

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

Beiträge: 8
Registriert: 20.03.2015

erstellt am: 20. Mrz. 2015 15:38    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 CAD Gemeinde,

im Grunde bin ich IT-Sysadmin und habe eher weniger mit CAD Systemen oder Makro Programmierung zu tun. Momentan habe ich aber eine Anfrage bezüglich SolidWorks. Schonmal vorab. Die Konstruktionsabteilung nutzt kein PDM System und aus einem mir nicht nachvollziehbaren Grund ist das auch nicht gewünscht.

Hier meine Frage bzw. Anforderung: Sobald "Speichern unter" ausgewählt wird, soll im Speichern Dialog als Dateiname der Wert der Eigenschaft mit dem Namen "DOKUMENTNR" benutzt werden.

Für Eure Hilfe wäre ich sehr dankbar.

Gruß Daniel

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

Börga
Mitglied
Dipl.-Ing. Maschinenbau/Konstruktionstechnik


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

Beiträge: 629
Registriert: 09.07.2003

SolidWorks Professionell 2020 SP5.0
SolidWorks PDM
Intel® Xeon® E5-2637 v3
64 GB RAM
AMD FirePro W7100
Windows 10 Pro

erstellt am: 21. Mrz. 2015 13:40    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 saidan 10 Unities + Antwort hilfreich

Hallo,

wird die Eigenschaft "DOKUMENTNR" manuell aufgefüllt? Dann wäre es doch einfacher den Dateinamen einzugeben und daraus automatisch den Wert für die Eigenschaft zu generieren. So kenne ich das nur.

------------------
Gruß Christian

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

saidan
Mitglied
IT-Sysadmin

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

Beiträge: 8
Registriert: 20.03.2015

erstellt am: 21. Mrz. 2015 13:49    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 Börga,

vielen Dank für Deine Antwort.

Die Eigenschaft "DOKUMENTNR" wird automatisch mit einer laufenden Nummer ausgefüllt.

Es gibt einige Makros, die z.B. eine Zeichnung automatisch als PDF speichern. Leider speichern die aber in das gleiche Verzeichnis in der die Zeichnung liegt. Ich benötige aber ein Speichern-Dialog, der mir die Möglichkeit gibt einen Pfad auszuwählen.

Mir fehlen die Kenntnisse, ob man per Makro überhaupt das Feld Dateiname im Speichern-Dialog ansprechen kann. Oder ob man den Speichern-Dialog grundsätzlich manipulieren kann. Wenn Jemand einen Tipp dafür hätte, komme ich evtl. alleine weiter.

Vielen Dank.

Gruß Daniel

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1358
Registriert: 24.07.2002

AutoCAD ACA 2019
Solidworks 2021 Sp5.1
Enterprise PDM 2021 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Dell Ultrasharp U2415
Dell M4800

erstellt am: 21. Mrz. 2015 14: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 Nur für saidan 10 Unities + Antwort hilfreich

Hi Daniel,

Such mal nach SaveFileDialog und der Programmiersprache die du verwenden willst.
Bei dem Dialog kannst du so ziemlich alles wie Dateityp, Dateipfad usw. an- und vorgeben und nach dem Klick auf speichern auch weiter verwenden.
Dazu müsstest du aber einen separaten Speichern Dialog anbieten.

Gruß, Carsten

[Diese Nachricht wurde von Carsten1210 am 21. Mrz. 2015 editiert.]

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 21. Mrz. 2015 19:13    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 saidan 10 Unities + Antwort hilfreich

Hallo,
also, per Makro lässt sich so alles mögliche machen.
Ich denke aber nicht, das du in SolidWorks mit dem Speichern unter Befehl bereits deine Vorgaben reinbekommst.

Du musst also sicherlich immer ein Makro aufrufen, das dir deinen Speichervorgang durchführt.

In diesem Artikel habe ich mein Schriftfeldmakro veröffentlicht.
http://ww3.cad.de/foren/ubb/Forum2/HTML/027999.shtml#000002
Darin sind unter anderem eine Menge Exportformate enthalten.
Als Speicherpfad ist hier ein fester Pfad vorgegeben oder beim Original wählbar.

In diesem Makro von mir kannst du vorher einen Speicherpfad auswählen, wenn gewünscht.
http://ww3.cad.de/foren/ubb/Forum2/HTML/023775.shtml
Auch hier wird der Speichername individuell eingestellt.

Diese Makros sind für deinen Fall mächtig überfrachtet, bringen aber sicherlich die Routinen mit, die du benötigst.
Du musst nur etwas darin rumstochern und auf deine Bedürfnisse anpassen.

Deine Aufgabe wäre doch der ideale Einstieg in die Makroprogrammierung.
Nur zu, ich habe auch so angefangen und mir das meiste selber mit Hilfe dieses Forums beigebracht.

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

saidan
Mitglied
IT-Sysadmin

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

Beiträge: 8
Registriert: 20.03.2015

erstellt am: 21. Mrz. 2015 21: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

Hallo Carsten, hallo Andi,

super Vorgaben. Damit kann ich sicher was anfangen.
Wenn ich was passendes gebaut habe, melde ich mich wieder.

Vielen Dank erstmal.

Gruß Daniel

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 23. Mrz. 2015 07: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 saidan 10 Unities + Antwort hilfreich

Hallo zusammen,

um ein Makros beim normalen speichern auszuführen müsstest du entwerder ein Add-In Programmieren oder in VBA die Event-Notifications mit einem Klassenmodule dafür abfangen, wofür du ein Macro schreiben müsstest das mit jeder SolidWorks Sitzung zusammen gestartet wird.

Wenn du in der API-Suche nach Notification suchst solltest du alle abfangbaren Events finden, für dich werden wohl

DPartDocEvents_FileSaveNotifyEventHandler Delegate  | DPartDocEvents_FileSaveAsNotify2EventHandler Delegate
DAssemblyDocEvents_FileSaveNotifyEventHandler Delegate | DAssemblyDocEvents_FileSaveAsNotify2EventHandler Delegate
DDrawingDocEvents_FileSaveNotifyEventHandler Delegate | DDrawingDocEvents_FileSaveAsNotify2EventHandler Delegate

interesant sein.

Code:

'### STANDARDMODULE zum starten der Überwachung

Option Explicit

Public MyClass As New Notification_Class

Sub main()
    MyClass.MonitorSolidWorks
End Sub


Code:

'###KLASSENMODULE "Notification_Class" mit den EVENTS

Option Explicit

Dim WithEvents swApp        As SldWorks.SldWorks
Dim WithEvents MyPart       As SldWorks.PartDoc
Dim WithEvents MyAssembly   As SldWorks.AssemblyDoc
Dim WithEvents MyDrawing    As SldWorks.DrawingDoc

Public swModel              As SldWorks.ModelDoc2
Public swAssemby            As SldWorks.ModelDoc2
Public swDrawing            As SldWorks.ModelDoc2

Public Sub MonitorSolidWorks()
   
    Set swApp = Application.SldWorks

End Sub

Private Function MyPart_FileSaveAsNotify2(ByVal FileName As String) As Long
       
    Set swModel = swApp.ActiveDoc
       
'Hier Programmcode einbauen fürs Speichern unter bei einem Einzelteil
   
End Function

Private Function MyAssembly_FileSaveAsNotify2(ByVal FileName As String) As Long
   
    Set swAssembly = swApp.ActiveDoc

'Hier Programmcode einbauen fürs Speichern unter bei einer Baugruppe
       
End Function
Private Function MyDrawing_FileSaveAsNotify2(ByVal FileName As String) As Long
   
    Set swDrawing = swApp.ActiveDoc

'Hier Programmcode einbauen fürs Speichern unter bei einer Zeichnung
       
End Function

Private Function MyPart_FileSaveNotify(ByVal FileName As String) As Long
   
    Set swModel = swApp.ActiveDoc

'Hier Programmcode einbauen fürs Speichern bei einem Einzelteil

End Function

Private Function MyAssembly_FileSaveNotify(ByVal FileName As String) As Long
   
    Set swAssembly = swApp.ActiveDoc
       
'Hier Programmcode einbauen fürs Speichern bei einer Baugruppe

End Function

Private Function MyDrawing_FileSaveNotify(ByVal FileName As String) As Long
   
    Set swDrawing = swApp.ActiveDoc
       
'Hier Programmcode einbauen fürs Speichern bei einer Zeichnung

End Function

Private Function swApp_ActiveDocChangeNotify() As Long
   
    If swApp.ActiveDoc.GetType = swDocPART Then
        Set MyPart = Nothing
        Set MyPart = swApp.ActiveDoc
    ElseIf swApp.ActiveDoc.GetType = swDocASSEMBLY Then
        Set MyAssembly = Nothing
        Set MyAssembly = swApp.ActiveDoc
    ElseIf swApp.ActiveDoc.GetType = swDocDRAWING Then
        Set MyDrawing = Nothing
        Set MyDrawing = swApp.ActiveDoc
    Else
        Set MyPart = Nothing
        Set MyAssembly = Nothing
        Set MyDrawing = Nothing
    End If

End Function


Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 23. Mrz. 2015 editiert.]

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

saidan
Mitglied
IT-Sysadmin

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

Beiträge: 8
Registriert: 20.03.2015

erstellt am: 23. Mrz. 2015 09:41    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 Bernd,

danke für die ausführliche Unterstützung. Ich hätte nicht gedacht dass ich als Neuling hier so tolle Hilfe bekomme.

Hier über das Forum habe ich ein Solidworks Addon von Schuler DA gefunden. Es heist SDA-4Free. Damit kann man automatisch ein Makro ausführen, wenn Speichern unter gewählt wird. Mein Problem ist, dass ich den Dateinamen im Speichern unter Dialog vorausfüllen will mit einer benutzerdefinierten Eigenschaft.

Aktuell habe ich eine nicht ganz saubere Lösung, die ich noch ausführlich testen muss. Ich habe eines der zahlreich vorhandenen Makros umgebaut um die Datei automatisch an einem temporären Ort mit dem richtigen Namen zu speichern. Problem ist, dass hier der Dateipfad nicht manuell gewählt werden kann. Danach rufe ich aber die Speichern unter Funktion von SW auf. Dann steht logischerweise der Dateiname vom letzten Speichern drin. Dann lösche ich die temporäre Datei wieder über das Makro.
Das funktioniert super, solange man ganz normal Speichern unter nutzt. Nun gibt es aber noch eine Möglichkeit die da heißt "Als Kopie speichern unter und öffnen" oder so ähnlich. Dabei erhalte ich eine Meldung, dass eine Datei mit dem selben Namen bereits geöffnet ist.

Ich arbeite noch daran.

Vielen Dank an Alle.

Gruß Daniel

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

ad_man
Mitglied
freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))


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

Beiträge: 1366
Registriert: 20.12.2003

SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000

erstellt am: 23. Mrz. 2015 11: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 saidan 10 Unities + Antwort hilfreich

Hallo Daniel,

ich weiß jetzt nicht, in welcher Sprache du programmierst, aber es gibt doch
bei VBA oder den .NET-Sprachen Standardkomponenten zum Auswählen von Ordnern
(FolderBrowserDialog). Wenn du dann den Pfad und den Dateinamen hast, so kannst
du diese doch zu einem kompletten Dateinamen zusammensetzen und dann mit SaveAs-
Methode dein Dokument speichern. Du gebrauchst dann keinen Speichern-unter-Dialog
mehr.

------------------
==========
Gruß
Andreas
==========

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)2024 CAD.de | Impressum | Datenschutz