Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Dateieigenschaft mit Dateinamen anpassen

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
  
EMV Wechselrichtersimulation mit CST Studio Suite®
Autor Thema:  Dateieigenschaft mit Dateinamen anpassen (5795 mal gelesen)
Rennwagenbauer
Mitglied
Ingenieur, Konstrukteur


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

Beiträge: 68
Registriert: 30.09.2007

SW2019Sp5.0; Pro.File V8; CADENAS; Windows 10

erstellt am: 26. Jan. 2010 00:43    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 an alle SolidWorker,

ich stehe vor einem kleinem Problem, aber für mich ist es unlösbar:

Ich möchte aus dem Dateinamen eine Dateieigenschaft erzeugen und zwar wie folgt:

Die ersten 3 Zeichen gefolgt von einem Leerzeichen, dann das 4. Zeichen gefolgt von einem Leerzeichen, dann 5. und 6. Zeichen gefolgt von einem Leerzeichen und dann das 7. und 8. Zeichen gefolgt von einem Leerzeichen und dann die Zeichen 9, 10 und 11.

Ich habe da mal einen Makroschnipsel gefunden, aus dem man sowas sicher machen kann, nur bin ich einfach (noch?) zu blöd dazu.

Option Explicit
Dim swApp          As SldWorks.SldWorks
Dim swModel        As SldWorks.ModelDoc2
Dim swCustPropMgr  As SldWorks.CustomPropertyManager
Dim FILENAME        As String
Dim ProjectName    As String
Dim DrawingNumber  As String
Dim PartTitle      As String
Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swCustPropMgr = swModel.Extension.CustomPropertyManager("")

'get needed info from model file name
FILENAME = swModel.GetTitle
ProjectName = Left(FILENAME, 4)
DrawingNumber = Left(FILENAME, 15)
Dim a As String

FILENAME = Replace(Replace(FILENAME, ".sldprt", "", , , vbTextCompare), ".sldasm", "", , , vbTextCompare)
PartTitle = Left(Right(FILENAME, Len(FILENAME) - 15), Len(FILENAME) - 15)
'Add Project Name to custom properties and add text
swCustPropMgr.Add2 "Project Name", swCustomInfoText, " "
swCustPropMgr.Set "Project Name", ProjectName

'Add Drawing Number to custom properties and add text
swCustPropMgr.Add2 "Drawing Number", swCustomInfoText, " "
swCustPropMgr.Set "Drawing Number", DrawingNumber

'Add part title to custom properties and add text
swCustPropMgr.Add2 "Part Title", swCustomInfoText, " "
swCustPropMgr.Set "Part Title", PartTitle
'Add part title to sumary page
swModel.SummaryInfo(swSumInfoTitle) = PartTitle


End Sub


Ich bedanke mich schon mal im Voraus für eure Hilfe!

------------------
I like SolidWorking!

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: 26. Jan. 2010 08:42    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 Rennwagenbauer 10 Unities + Antwort hilfreich

Hallo,
auch ich hatte vor einiger Zeit dieses Anliegen (siehe den Beitrag: http://ww3.cad.de/foren/ubb/Forum2/HTML/018475.shtml#000004).
Ich benutze das nachstehende Makro, um die ersten 3 Stellen des Dateinamens in die Benutzerdefinierten Eigenschaften einzutragen.
In Solidworks gibt es ja den Befehl >$:PRP:"SW-Dateiname"< den man bei Wert/Textausdruck eingeben kann. An diese Syntax kann man zwar weiteren Text anfügen (z.B.: $PRP:"SW-Dateiname"_Test),
aber leider ist es momentan nicht möglich den evaluierten Wert aus der Syntax >$:PRP:"SW-Dateiname"< gezielt zu kürzen.
(So wie z.B. bei dem Befehl: >SUBSTR 1, 3<, wo ein String-Wert von der ersten Stelle auf drei Zeichen eingekürzt wird.)
Ich habe diesbezüglich bereits bei SW einen Verbesserungantrag gestellt, das wird aber sicher noch dauern, weshalb ich mir momentan mit dem Makro behelfe.

Hier das Makro:

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 dummy
    Dim Teilenamen As String
    Dim i As Long

    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc = swApp.ActiveDoc
    Teilenamen = swApp.ActiveDoc.GetTitle
    '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
            dummy = ModelDoc.DeleteCustomInfo2("", Prop)
            Debug.Print ModelDoc.AddCustomInfo3(Config, Prop, swCustomInfoText, Mid(Teilenamen, 1, 3))
        Next
    Next
   
End Sub

Ich hoffe, ein wenig damit helfen zu können.

Gruß
Jakob

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

Rennwagenbauer
Mitglied
Ingenieur, Konstrukteur


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

Beiträge: 68
Registriert: 30.09.2007

SW2019Sp5.0; Pro.File V8; CADENAS; Windows 10

erstellt am: 26. Jan. 2010 09:02    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 Jakob,

ich bin was Makro-Programmierung angeht noch ein Kleinkind oder noch darunter. Ich werde mal schauen, ob ich daraus was basteln kann.

Vielleicht hat der ein oder andere hier ja auch noch ne Idee oder die Lösung.

Wenn ich was habe, dann stelle ich es rein.

Gruß Frank

------------------
I like SolidWorking!

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: 26. Jan. 2010 12:46    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 Rennwagenbauer 10 Unities + Antwort hilfreich

Hallo Frank,
ich habe mein Makro nach deiner Beschreibung geändert.
Ein Dateiname wird, wenn man das Makro ausführt, wie folgt in die "Benutzerdefinierten Eigenschaften" eingetragen:

Dateiname = abcdefghijk.sldprt
Eintrag bei "Benutzerdef. Eig." = abc d ef gh ijk

Den Eigenschaftsnamen kannst du bei >PropNames.Add "DateiName"< ändern.

Hier der geänderte Code: (P.S. Ich habe gerade bemerkt, dass der erste Code nicht vollständig war, sorry)

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 dummy
    Dim Teilenamen As String
    Dim i As Long

    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc = swApp.ActiveDoc
    Teilenamen = swApp.ActiveDoc.GetTitle
    If ModelDoc Is Nothing Then
        ' Call MsgBox("Keine Datei geöffnet", vbOKOnly, "Information")
        Exit Sub
    End If
   
   
    PropNames.Add "DateiName"
 
    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
            dummy = ModelDoc.DeleteCustomInfo2("", Prop)
            Debug.Print ModelDoc.AddCustomInfo3(Config, Prop, swCustomInfoText, Mid(Teilenamen, 1, 3) & " " & Mid(Teilenamen, 4, 1) & " " & Mid(Teilenamen, 5, 2) & " " & Mid(Teilenamen, 7, 2) & " " & Mid(Teilenamen, 9, 3))
        Next
    Next
   
End Sub


Viel Spaß damit....

Gruß
Jakob

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

Rennwagenbauer
Mitglied
Ingenieur, Konstrukteur


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

Beiträge: 68
Registriert: 30.09.2007

SW2019Sp5.0; Pro.File V8; CADENAS; Windows 10

erstellt am: 26. Jan. 2010 22: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

Super, Jakob.

Perfekt. Besten Dank. Das ist es. 

------------------
I like SolidWorking!

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

minority
Mitglied
Ingenieur


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

Beiträge: 135
Registriert: 14.06.2012

SWX 2013 SP4.0 Premium
Windows 7 x64
Intel Core i7 CPU @2,3GHz
8GB Ram
NVIDIA Quadro K2000M

erstellt am: 24. Mai. 2013 10:17    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 Rennwagenbauer 10 Unities + Antwort hilfreich

Hi,

ich weiß der Beitrag ist schon etwas älter, aber da dies das einzige Makro ist was ich gefunden habe hier im Forum was das macht was ich gern möchte wollt ich diesen Thread noch einmal ausgraben.

Ich versuche derzeit den Quelltext zu verstehen. Dabei sind mir folgende Passagen nicht so ganz klar.

1.

    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

Ok dabei werden die einzelnen Konfigurationen durchgegangen. Aber das Makro schreibt ja in die Benutzerdefinierten Eigenschaften, welche automatisch für alle Konfigurationen gelten. Ist es möglich in die Konfigurationsspezifischen Eigenschaften zu schreiben?

2.

        For Each Prop In PropNames
            dummy = ModelDoc.DeleteCustomInfo2("", Prop)
            Debug.Print ModelDoc.AddCustomInfo3(Config, Prop, swCustomInfoText, Mid(Teilenamen, 6, 4))
        Next

Was genau wird hier geschrieben. Debug.Print gibt doch eigentlich nur den Wert im Debugfenster aus, oder? Aber es wird trotzdem in die Eigenschaften geschrieben. Das verstehe ich nicht so ganz.

3. Ist es möglich mit dem gleichen Makro aus der Variable Dateinamen noch mehrere Eigenschaften abzuleiten? Wenn ich ab "PropNames.Add "Modellnummer" alles kopiere, dann erstellt der mir die Ergebnisse vom Debug.Print bei beiden Eigenschaften. Ich wollt gern einen Wert auslesen (8. Stelle des Namens) und abhängig davon eine CASE-Anweisung durchlaufen um die Bezeichnung zu ändern.

mfG m!no

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

minority
Mitglied
Ingenieur


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

Beiträge: 135
Registriert: 14.06.2012

SWX 2013 SP4.0 Premium
Windows 7 x64
Intel Core i7 CPU @2,3GHz
8GB Ram
NVIDIA Quadro K2000M

erstellt am: 24. Mai. 2013 11:35    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 Rennwagenbauer 10 Unities + Antwort hilfreich

Habs soweit erstmal gelöst bekommen, nun aber ein anderes Problem 

Ich habe eine Eigenschaft einlesen lassen welche nur aus einem Buchstaben besteht. Nun wollt ich diese in der Zeichnung in ein Schriftfeld mit einfügen. Aber immer wenn ich dann $PRPSHEET:"Typ" eingebe kommt nix raus. Sobald ich eine andere Eigenschaft nehme (alle länger als 1 Buchstabe) funktioniert das. Woran kann das liegen?

mfG m!no

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

minority
Mitglied
Ingenieur


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

Beiträge: 135
Registriert: 14.06.2012

SWX 2013 SP4.0 Premium
Windows 7 x64
Intel Core i7 CPU @2,3GHz
8GB Ram
NVIDIA Quadro K2000M

erstellt am: 24. Mai. 2013 11:56    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 Rennwagenbauer 10 Unities + Antwort hilfreich

Also wenn nen anderen Buchstaben außer D auslese funktioniert es  Na gut ist auch egal.

Hab ein viel wichtigeres Problem. Ich hab ja schon erwähnt, dass der die Eigenschaften immer in die Benutzerdefinierten reinschreibt. Ich brauch das ganze aber Konfigurationsspezifisch. Wie ist dafür der Befehl?

mfG

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 24. Mai. 2013 12:48    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 Rennwagenbauer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von minority:...
1.
...
Ok dabei werden die einzelnen Konfigurationen durchgegangen. Aber das Makro schreibt ja in die Benutzerdefinierten Eigenschaften, welche automatisch für alle Konfigurationen gelten. Ist es möglich in die Konfigurationsspezifischen Eigenschaften zu schreiben?

Genau das passiert im nächsten Teil:

Zitat:
Original erstellt von minority:
2.
        For Each Prop In PropNames
            dummy = ModelDoc.DeleteCustomInfo2("", Prop) 'Hier wird erst mal eine eventuell vorhandene benutzerdefinierte Dateieigenschaft gleichen Namens gelöscht
            Debug.Print ModelDoc.AddCustomInfo3(Config, Prop, swCustomInfoText, Mid(Teilenamen, 6, 4))
        Next

Was genau wird hier geschrieben. Debug.Print gibt doch eigentlich nur den Wert im Debugfenster aus, oder? Aber es wird trotzdem in die Eigenschaften geschrieben. Das verstehe ich nicht so ganz.



ModelDoc.AddCustomInfo3() ist eine Funktion mit einem Rückgabewert True oder False, und der wird eben von Debug.Print ausgegeben.

Der erste Parameter des Aufrufs ist der Konfigurationsname: ModelDoc.AddCustomInfo3(Config, Prop, swCustomInfoText, Mid(Teilenamen, 6, 4))
Steht dort nichts drin, dann wird das eine benutzerdefinierte Eigenschaft, steht dort ein existierender Konfigurationsname drin, dann wird das eben eine konfigurationsspezifische Eigenschaft, ganz einfach.

Im Zweifel schau dir mal die Beschreibungen in der API-Hilfe an.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat... |

[Diese Nachricht wurde von KMassler am 24. Mai. 2013 editiert.]

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

minority
Mitglied
Ingenieur


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

Beiträge: 135
Registriert: 14.06.2012

SWX 2013 SP4.0 Premium
Windows 7 x64
Intel Core i7 CPU @2,3GHz
8GB Ram
NVIDIA Quadro K2000M

erstellt am: 24. Mai. 2013 14:00    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 Rennwagenbauer 10 Unities + Antwort hilfreich

Hi,

danke für die Erklärung. Hat mir weitergeholfen =)

Ist bei dem

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

ein Fehler? Weil mit dem AllConfigs-Befehl kommt bei mir ein Fehler. Wenn ich da ConfigCount einsetze gehts. Habs jetzt folgendermaßen gemacht:

    PropNames.Add "a"
    PropNames.Add "b"
    PropNames.Add "c"
    PropNames.Add "d"
    PropNames.Add "e"
   
    ConfigCount = ModelDoc.GetConfigurationCount
    ConfigNames = ModelDoc.GetConfigurationNames

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

    For Each Config In PropConfigs
             
       
        a = Mid(Teilenamen, 11, 1)
     
        Select Case a
            Case "D"
                b = "xxx"
            Case "C"
                b = "yyy"
            Case "B"
                b = "zzz"
        End Select
   
        c = Mid(Teilenamen, 12, 1)
   
        Select Case c
            Case "D"
                d = """aaa"""
            Case "K"
                d = """bbb"""
        End Select
           
        dummy = ModelDoc.DeleteCustomInfo2(Config, PropNames.Item(1))
        dummy = ModelDoc.DeleteCustomInfo2(Config, PropNames.Item(2))
        dummy = ModelDoc.DeleteCustomInfo2(Config, PropNames.Item(3))
        dummy = ModelDoc.DeleteCustomInfo2(Config, PropNames.Item(4))
        dummy = ModelDoc.DeleteCustomInfo2(Config, PropNames.Item(5))
   
        Debug.Print ModelDoc.AddCustomInfo3(Config, PropNames.Item(1), swCustomInfoText, Mid(Teilenamen, 6, 4))
        Debug.Print ModelDoc.AddCustomInfo3(Config, PropNames.Item(2), swCustomInfoText, b)
        Debug.Print ModelDoc.AddCustomInfo3(Config, PropNames.Item(3), swCustomInfoText, """SW-Mass@@" & Config & "@" & Teilenamen & ".SLDPRT""")
        Debug.Print ModelDoc.AddCustomInfo3(Config, PropNames.Item(4), swCustomInfoText, d)
        Debug.Print ModelDoc.AddCustomInfo3(Config, PropNames.Item(5), swCustomInfoText, c)
       
       
    Next
   
   
End Sub

Könnte man das noch vereinfachen?

mfG m!no

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

minority
Mitglied
Ingenieur


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

Beiträge: 135
Registriert: 14.06.2012

SWX 2013 SP4.0 Premium
Windows 7 x64
Intel Core i7 CPU @2,3GHz
8GB Ram
NVIDIA Quadro K2000M

erstellt am: 24. Mai. 2013 14:28    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 Rennwagenbauer 10 Unities + Antwort hilfreich

Jetzt tut sich das nächste Problem auf  Also heut gehts echt rund.

Ich hab jetzt die Dicke des Teils ausgelesen als "d1@Dicke". Wenn ich das mache kann ich bei den KSE die Dicke für alle Konfigurationen durchschalten und sehe jedesmal eine andere Dicke. Wenn ich das nun in der Zeichnung über $PRPSHEET:"Dicke" verknüpfe nimmt er nur die im Bauteil gewählte Konfiguration und nicht die in der Zeichnung gewählte.

Jetzt hab ich über das Makro folgendes eintragen lassen: "d1@Dicke@@Config@Teil.sldprt" und JETZT geht es in der Zeichnung. Obwohl genau wie vorher für jede Konfiguration die Werte ausgelesen wurden und bei den KSE für jede Konfig die gleichen evaluierten Werte drin standen.

Ist das normal? PRPSHEET nimmt ja eigentlich die Konfig, welche in der Zeichnung verwendet wird oder?

mfG m!no (mit rauchendem Kopf ^^)

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: 24. Mai. 2013 15: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 Nur für Rennwagenbauer 10 Unities + Antwort hilfreich


allkonfneuber.png

 
Hallo mino,

Hast du alle Konfigurationen nach dem Makrodurchlauf auch neu berechnen lassen? Weil wenn du das nicht gemacht hast kann es sein das die evaluierten werte noch nicht korrekt überschrieben wurden. Siehst du z.B. daran wenn du beim durchblättern im Eigenschaftenfenster ein * vor den evaluierten Werten stehen hast.

Du könnstes ja mal im "Konfigurationen modifizieren" Fenster deine Konfigs alle mal durchrechnen lassen und schauen was SWX danach macht.

Gruß
Bernd

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

Staatlich anerkannte Deutschniete 

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

minority
Mitglied
Ingenieur


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

Beiträge: 135
Registriert: 14.06.2012

SWX 2013 SP4.0 Premium
Windows 7 x64
Intel Core i7 CPU @2,3GHz
8GB Ram
NVIDIA Quadro K2000M

erstellt am: 24. Mai. 2013 15:48    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 Rennwagenbauer 10 Unities + Antwort hilfreich

In den Eigenschaften stehen ja die Werte richtig drin. Nur in der Zeichnung nimmt er den richtigen Wert nicht wenn ich nur "d1@Dicke" in den Eigenschaften stehen habe.

Hab vorhin noch das gefunden:

$PRPSHEET:
Modell in der Ansicht, die in den Blatteigenschaften festgelegt wurde.

Wenn das Modell, das in den Blatteigenschaften für benutzerdefinierte Eigenschaften festgelegt wurde, Standard ist, wird bei Bezugshinweisen von Zeichenansichten das Modell in der Zeichenansicht, zu der der Bezugshinweis gehört, verwendet.

Bei Blatt- und Blattformat-Bezugshinweisen wird die erste Ansicht im FeatureManager verwendet.

Wenn eine Ansicht ausgewählt ist, wird das Modell für diese Ansicht in allen Fällen verwendet.

EDIT: Hab jetzt nochmal ausprobiert. Sobald ich hinter dem "d1@dicke" die Konfiguration wegnehme funnktioniert es in der Zeichnung nicht mehr. Dann nimmt er immer den Wert der im Bauteil aktiven Konfiguration. Obwohl ich den Wert DICKE auslesen lasse, welcher ja von d1@dicke abhängig ist. In den Eigenschaften selbst bleiben die evaluierten Werte komplett identisch. Äußerst merkwürdig.

mfG m!no

[Diese Nachricht wurde von minority am 24. Mai. 2013 editiert.]

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

minority
Mitglied
Ingenieur


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

Beiträge: 135
Registriert: 14.06.2012

SWX 2013 SP4.0 Premium
Windows 7 x64
Intel Core i7 CPU @2,3GHz
8GB Ram
NVIDIA Quadro K2000M

erstellt am: 24. Mai. 2013 16: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 Nur für Rennwagenbauer 10 Unities + Antwort hilfreich

Ich glaub ich hab die Lösung gefunden. Oder zumindest die Erklärung.

Wenn ich die Dicke auslesen lasse sucht der ja den zu "Dicke" zugehörigen Wert. Und der wird ja denk ich mal über das Bauteil ausgelesen. Wenn ich aber im Bauteil die Eigenschaft öffne steht dann da "d1@Dicke" und damit sucht er wahrscheinlich den Wert der auch aktuell vorliegt und nicht den Konfigurationsspezifischen.

Warum er das allerdings nicht in der aktiven Zeichnungskonfiguration sucht versteh ich persönlich nicht. 

Falls es doch anders ist.... lasst es mich wissen

mfG m!no

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