Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Teilstück des Dateinamens in Benutzerdefinierte Eigenschaften

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
  
Dassault Systèmes auf der Hannover Messe 2024 (kostenlose Tickets verfügbar)
Autor Thema:  Teilstück des Dateinamens in Benutzerdefinierte Eigenschaften (2764 mal gelesen)
Jakob-Wan
Mitglied
Konstrukteur


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

Beiträge: 11
Registriert: 24.09.2009

SW 2009 / SP 4.1

erstellt am: 24. Sep. 2009 08: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

Hallo,
ich bitte um Hilfe zu folgendem Anliegen:
Ich bräuchte bei den Einzelteilen in den Eigenschaften bei "Benutzerdefiniert"
den automatischen Eintrag des Dateinamens, aber davon nur die ersten drei Stellen.
Die Syntax für den Dateinamen ($PRP:"SW-Dateiname"), eingetragen bei "Wert / Textausdruck"
habe ich gefunden und das funktioniert auch. Bei "Evaluierter Wert" wird der korrekte Dateiname (ohne Endung) z.B. "243_Platte" eingetragen.

Aber: Gibt eine Syntax (ähnlich "SUBSTR"), damit von dem Namen nur die ersten drei Stellen (z.B. 243) eingetragen werden?
Oder: Kann man dafür einen eigenen "$PRP:-Befehl" erstellen, der in "Wert / Textausdruck" funktioniert?

Zur Info:
Diese drei ersten Stellen sind immer die Teilenummer, und ist gänzlich anders geordnet als die SW-Stückliste.
Bei den Explosions-Zeichnungen benötige ich aber meine Nummer, die sich dann mit "Stücklistensymbol >Stücklistensymboltext über >Benutzerfdefinierte Eigenschaften"
automatisch eintragen läßt.
Dies mache ich jetzt bei jedem Einzelteil manuell mit "Stücklistensymbol >Stücklistensymboltext über >Text"

Vielen Dank für Rückinfos

Gruß Jakob

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

BAB
Mitglied
Vertriebsleiter SolidWorks Applikationen


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

Beiträge: 365
Registriert: 15.07.2002

CSWP

erstellt am: 24. Sep. 2009 09:04    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 Jakob-Wan 10 Unities + Antwort hilfreich

Du hast ja die Möglichkeit auch über Excel die Dateieigenschaften zu schreiben. In Excel kannst du mit verschiedenen Funktionen, die Teile eines Textes auseinanderbrechen oder wieder zusammenfügen.
Stichwort Funktion TEXT
Gruß BAB

[Diese Nachricht wurde von BAB am 24. Sep. 2009 editiert.]

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

Jakob-Wan
Mitglied
Konstrukteur


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

Beiträge: 11
Registriert: 24.09.2009

SW 2009 / SP 4.1

erstellt am: 24. Sep. 2009 09: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 BAB,
die Funktionen und Anwendung von Excel (in meinem Fall wäre es die Funktion "=TEIL(Dateiname;1;3)" ist mir geläufig.
Leider weiß ich nicht wie ich das mit Excel in den "Eigenschaften" des SolidWorks-Teils umsetzen soll.
Könnest du bitte das noch etwas genauer erläutern.
Danke

Gruß Jakob

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

Volkmar Grube
Mitglied
Konstrukteur


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

Beiträge: 120
Registriert: 31.01.2009

WIN11 64Bit, SWX 2022, Delphi 10

erstellt am: 24. Sep. 2009 16:05    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 Jakob-Wan 10 Unities + Antwort hilfreich

Ich würde mir den Dateiname in eine Spalte holen, indem ich ihn als Eigenschaft definiere und dann eine zweite Eigenschaft für den Teilnamen definieren, welcher über Excel mit der ersten Spalte verknüft ist ($PRP@dname und $PRP@tname) tname ist dann ein substr von dname usw.
Ich habs jetzt allerdings nicht ausprobiert.

------------------
Grüße aus Dresden
Volkmar Grube

Es gibt keine Probleme, es gibt nur Aufgaben.

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

Jakob-Wan
Mitglied
Konstrukteur


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

Beiträge: 11
Registriert: 24.09.2009

SW 2009 / SP 4.1

erstellt am: 24. Sep. 2009 17:01    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 Volkmar,
das hört sich schon mal ganz gut an,
aber leider haperts bei mir an der Umsetzung.
Ich habe noch nie solche Daten in SolidWorks mit Excel verknüpft.
Könnte ich noch ein paar grundlegende Informationen bekommen?
Und wie kann ich das Excel-Ergebnis dann als Eigenschaft definieren?

Das hört sich sicher jetzt so an als hätte ich gar keine Ahnung,
aber momentan stehe ich wirklich etwas daneben.

Danke

Gruß Jakob

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

Jakob-Wan
Mitglied
Konstrukteur


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

Beiträge: 11
Registriert: 24.09.2009

SW 2009 / SP 4.1

erstellt am: 25. Sep. 2009 14:26    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 nun in Richtung "Makro" etwas experimentiert und auch schon einige Teilerfolge.
Damit das Ganze letztendlich komplett meinen Vorstellungen entspricht habe ich noch einige Punkte,
die noch offen sind und zu denen ich noch keine Lösung gefunden habe.

Den Ausgangscode "Dateieigenschaften erzeugen" habe ich von der Seite "http://solidworks.cad.de/mm_35.htm" von Stefan Berlitz.
Ich konnte ihn soweit abändern, dass nun bei manuellem Ausführen des Makros der Dateiname ausgelesen wird
siehe>Teilenamen = swApp.GetFirstDocument.GetTitle<
und dieser beim Eintrag in die Dateieigenschaften bei Wert auf die ersten drei Stellen gekürzt wird
siehe>Debug.Print ModelDoc.AddCustomInfo3(Config, Prop, swCustomInfoText, Mid(Teilenamen, 1, 3))<.
Das funktioniert soweit ganz gut.

Doch nun zum Feinschliff:

1.) Das Makro überschreibt den Eintrag nicht (ist aber nötig, falls der Name Mal geändert wird)
Was muß im Code geändert werden, damit bei jedem Ausführen des Makros der Eintrag überschrieben wird?

2.) Momentan muß ich das Makro manuell ausführen.
Ist es möglich das Makro immer automatisch gleichzeitig beim Speichern des Teils mit auszuführen,
d.h. den Makro-Ausführbefehl irgendwo in der Part-Template (Teil.prtdot) fest zu hinterlegen?

3.) kann man bei SolidWorks einen VBA-Code fest in das Dokument mit einbinden (so wie bei Excel)?
Wenn nicht, wo sollte der VBA-Code (das Makro) abgelegt sein, damit der "automatische" Ausführbefehl in der Teile-Datei das Makro findet?
Oder kann man den Pfad zum Makro dazu festlegen?

Das sind sicher noch eine Menge Informationen die ich noch brauche, aber leider kenne ich mich nur in Excel-VBA einigermaßen gut aus.
Bei SolidWorks beginne ich erst damit und ich habe schon bemerkt, dass vieles ganz anders ist.

Hier noch der ganze VBA-Code:
' **********************************************************************
' Wenn konfigurationsspezifische Werte eingetragen werden sollen den
' Parameter "AllConfigs" auf 1 setzen.
'
' ACHTUNG:
' * ggf. vorhandene Attribute werden NICHT überschrieben
' * alle Dateieigenschaften werden als Typ Text angelegt
'
' 17.11.2006 Stefan Berlitz
'            Stefan.Berlitz@solidworks.cad.de
'            http://solidworks.cad.de
'            http://swtools.cad.de
' **********************************************************************

Const AllConfigs = 0


Option Explicit
Const swDocPART = 1
Const swDocASSEMBLY = 2
Const swDocDRAWING = 3

Public Enum swCustomInfoType_e
    swCustomInfoUnknown = 0
    swCustomInfoText = 30      '  VT_LPSTR
    swCustomInfoDate = 64      '  VT_FILETIME
    swCustomInfoNumber = 3    '  VT_I4
    swCustomInfoYesOrNo = 11  '  VT_BOOL
End Enum


Sub Main()

    Dim swApp As Object
    Dim ModelDoc As Object
    Dim ConfigCount As Long
    Dim ConfigNames As Variant
    Dim PropConfigs As New Collection
    Dim PropNames As New Collection
    Dim Prop As Variant
    Dim Config As Variant

    Dim PropType As Long
    Dim PropText As String
    Dim Teilenamen As String
    Dim i As Long

    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc = swApp.ActiveDoc
    Teilenamen = swApp.GetFirstDocument.GetTitle
    If ModelDoc Is Nothing Then
        ' Call MsgBox("Keine Datei geöffnet", vbOKOnly, "Information")
        Exit Sub
    End If
   
   
    PropNames.Add "Nummer"
 
    ConfigCount = ModelDoc.GetConfigurationCount
    ConfigNames = ModelDoc.GetConfigurationNames

   
    If AllConfigs = 0 Then
        PropConfigs.Add ""
    Else
        For i = 0 To ConfigCount - 1
            PropConfigs.Add ConfigNames(i)
        Next i
    End If

    For Each Config In PropConfigs
        For Each Prop In PropNames
            Debug.Print ModelDoc.AddCustomInfo3(Config, Prop, swCustomInfoText, Mid(Teilenamen, 1, 3))
        Next
    Next

End Sub


Herzlichen Dank für eine Unterstützung

Gruß Jakob

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