Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Konfigutationsspezifische Dateieigenschaften 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
  
PLM TechnologieForum Hannover
Autor Thema:  Konfigutationsspezifische Dateieigenschaften auslesen (2322 mal gelesen)
OK2103
Mitglied
Konstrukteur

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

Beiträge: 3
Registriert: 06.08.2014

SWX2014 SP4.0

erstellt am: 06. Aug. 2014 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 hab mittlerweile schon sämtliche Suchergebnisse durchgestöbert aber leider nichts passendes gefunden. Mein Problem ist folgendes. Ich benutze ein Makro, dass die Blätter einer sldrw Datei als einzelne PDF Dateien ausgibt. Der Wunsch wäre nun, dass die Dateinamen der PDF Dateien sich zusammensetzen aus Artikelnummer_Artikelbezeichnung_Zeichnungsrevision. Die Artikelnummer und die Artikelbezeichnung sind in der entsprechenden part bzw. assembly Datei die auf die auf dem Zeichnungsblatt abgebildet ist, allerdings in den konfigurationsspezifische Dateieigenschaften. Das die Zeichnungsrevision mit angehängt wird, funktioniert, aber hat wie lautet die genaue Syntax für den Befehl, dass ich Beispielsweise die Variable "MatNr" mit dem ausgelesenen Wert befülle? Oder gibts evtl. schon sowas und ich hab nur nach dem falschen gesucht? Wäre für jede Hilfe dankbar!

VG Olli

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

DerRalle
Mitglied
Konstrukteur


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

Beiträge: 13
Registriert: 12.03.2013

erstellt am: 06. Aug. 2014 18: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 OK2103 10 Unities + Antwort hilfreich

Hallo,

da gibt es einige Möglichkeiten eine ist in der Hilfe beschrieben:

SWX-API-Hilfe

Aber im Prinzip kommt es darauf an wie das Makro zur Zeit aufgebaut ist und wo man dann die Information abgreift.

Also Makro veröffentlichen. 

Habe gerade nochmal nachgeschaut:

Ich hole bei mir den CustomPropertyManager der entsprechenden Config:

z.B.:

Code:
Dim config as String 'Name der Konfiguration
Dim SwPropMgrConfig As CustomPropertyManager = SwModelDocExt.CustomPropertyManager(config)

und lese aus diesem die Eigenschaften aus, die für diese Konfiguration gültig sind.

[Diese Nachricht wurde von DerRalle am 06. Aug. 2014 editiert.]

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

OK2103
Mitglied
Konstrukteur

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

Beiträge: 3
Registriert: 06.08.2014

SWX2014 SP4.0

erstellt am: 07. Aug. 2014 08: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

Guten Morgen,

hier der verwendete Code:

******************************************************************
Option Explicit

Dim swApp As SldWorks.SldWorks

Sub main()

    Set swApp = Application.SldWorks
   
    'check for valid solidworks application
    If swApp Is Nothing Then
        MsgBox "Error Connecting to SolidWorks. Please Try Again.", vbCritical
        Exit Sub
    End If
   
    'declare and set modelDoc object
    Dim swDoc As ModelDoc2
    Set swDoc = swApp.ActiveDoc
   
    'check for valid document
    If swDoc Is Nothing Then
        MsgBox "Unable to Connect to a Valid SolidWorks Drawing.", vbCritical
        Exit Sub
    End If
   
    'check for valid drawing
    If swDoc.GetType <> SwConst.swDocumentTypes_e.swDocDRAWING Then
        MsgBox "Unable to Connect to a Valid SolidWorks Drawing.", vbCritical
        Exit Sub
    End If
   
    'Declare and set drawing object
    Dim swDwgDoc As DrawingDoc
    Set swDwgDoc = swDoc
   
    'declare and set exporter object
    Dim swExporter As SldWorks.ExportPdfData
    Set swExporter = swApp.GetExportFileData(SwConst.swExportDataFileType_e.swExportPdfData)
   
    'declare and set output directory to current path
    Dim outputPath As String
    'outputPath = getFolderFromFullPath(swDoc.GetPathName)
    outputPath = "C:\SWXExport\"

   
    'create and set array for sheet names
    Dim sheetNames As Variant
    sheetNames = swDwgDoc.GetSheetNames
   
    'create and set object for current sheet
    Dim CurDwgSheet As Sheet
    Set CurDwgSheet = swDwgDoc.GetCurrentSheet
   
    'create base out name
    Dim outputFileName As String
'    outputFileName = getTitleFromFullTitle(swDoc.GetTitle, CurDwgSheet.GetName)
   
   
    'Variablen für den Zeichnungsnamen
    Dim Rev As String
    Dim MatNr As String
    Dim MatBez As String
       
    'errors and warnings objects
    Dim lErrors As Long
    Dim lWarnings As Long
    Dim i As Integer
    Dim bRet As Boolean
   
    'create frame and status bar pane object
    Dim statusPane As StatusBarPane
    Dim swFrame As SldWorks.Frame
   
    Set swFrame = swApp.Frame
    Set statusPane = swFrame.GetStatusBarPane
    statusPane.Visible = True
   
   
    'loop through and export each sheet
    For i = 0 To UBound(sheetNames)
       
        Stop
        ' Dateinamen zusammenstellen
        Rev = swDoc.CustomInfo("Revision")
        'MatNr = ' diese konfigurationsspezifische Information kann aus dem referenzierten Modell gelesen werden... nur wie?
        'MatBez = ' diese konfigurationsspezifische Information kann aus dem referenzierten Modell gelesen werden... nur wie?
        outputFileName = MatNr + "_" + MatBez + "_" + Rev
       
      'update status pane
        statusPane.Text = "Exporting " + sheetNames(i)
       
        'update exporter object
        bRet = swExporter.SetSheets(SwConst.swExportDataSheetsToExport_e.swExportData_ExportSpecifiedSheets, sheetNames(i))
       
        'check for errors
        If bRet = False Then
            MsgBox "Error Creating PDF on Sheet: " + Str(i)
            Exit Sub
        End If
     
        'save out pdf
        bRet = swDoc.Extension.SaveAs(outputPath + outputFileName + ".pdf", SwConst.swSaveAsVersion_e.swSaveAsCurrentVersion, SwConst.swSaveAsOptions_e.swSaveAsOptions_Silent, _
            swExporter, lErrors, lWarnings)
       
        'check for errors
        If bRet = False Then
            MsgBox "Error Creating PDF on Sheet: " + Str(i)
            CatchErrors lErrors
            Exit Sub
        End If
           
    Next i
   
End Sub

Private Function getFolderFromFullPath(thefullpath As String) As String
   
    'returns the path without the filename
    getFolderFromFullPath = Strings.Mid(thefullpath, 1, Strings.Len(thefullpath) - ((Strings.Len(thefullpath) - Strings.InStrRev(thefullpath, "\"))))
   
End Function

Private Function getTitleFromFullTitle(thefulltitle As String, thesheetname As String) As String
   
    'returns filename without sheet name
    getTitleFromFullTitle = Strings.Mid(thefulltitle, 1, Strings.Len(thefulltitle) - ((Strings.Len(thefulltitle) - Strings.InStrRev(thefulltitle, thesheetname) + 4)))
   
End Function

Private Sub CatchErrors(theError As Long)
   
    Select Case theError
       
        Case 0
       
        Case SwConst.swFileSaveError_e.swGenericSaveError
       
            MsgBox "File Saving Error", vbExclamation
           
        Case SwConst.swFileSaveError_e.swReadOnlySaveError
           
            MsgBox "File Saving Error: Read-Only Rights", vbExclamation
           
        Case SwConst.swFileSaveError_e.swFileNameEmpty
       
            MsgBox "File Saving Error: Empty Filename", vbExclamation
       
        Case SwConst.swFileSaveError_e.swFileNameContainsAtSign
       
            MsgBox "File Saving Error: Invalid FileName Character", vbExclamation
           
        Case SwConst.swFileSaveError_e.swFileSaveFormatNotAvailable
       
            MsgBox "File Saving Error: Invalid File Format", vbExclamation
           
        Case SwConst.swFileSaveError_e.swFileSaveAsNameExceedsMaxPathLength
       
            MsgBox "File Saving Error: Filename Exceeds Maximum Path Length of 255 Characters", vbExclamation
           
    End Select

End Sub
*******************************************************************

Das Makro habe ich mal gefunden und ein bisschen umgemodelt. Es funktioniert soweit auch so wie ich es brauche, nur dass ich die konfigurationsspezifischen Dateieigenschaften des Models nicht auslesen kann. Wie würde der Code in diesem Fall lauten?

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

Stefan65
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 48
Registriert: 14.02.2014

Dell Precision 5820
Windows 10 Enterprise 64bit
Intel Xeon W-2123 @ 3.60GHz
16GB RAM
NVIDIA Quadro P2000
SolidWorks 2018 SP5
DBWorks-R17 SP2.5

erstellt am: 07. Aug. 2014 11: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 OK2103 10 Unities + Antwort hilfreich

Hallo Olli,
schau doch mal hier nach, dort habe ich ein Makro erstellt welches alle konfigurationsspezifischen Dateieigenschaften ausliest und sie in einer Tabelle auf einer Zeichnung einträgt. Vielleicht hilft dir das ja bei deinem Problem.

http://ww3.cad.de/foren/ubb/Forum2/HTML/023298.shtml#000010

Gruß Stefan

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

OK2103
Mitglied
Konstrukteur

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

Beiträge: 3
Registriert: 06.08.2014

SWX2014 SP4.0

erstellt am: 07. Aug. 2014 17: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

Servus Stefan,

danke für die Info! Ich denke, das ist das was ich suche. Ich schau mir das mal an, was ich da in mein Makro reinbasteln kann! Melde mich dann nochmal.

Gruß Olli

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