Forum:SolidWorks
Thema:Makro unter PAC4SWX läuft nicht (ohne Pac schon)
Möchten Sie sich registrieren?
Wer darf antworten? Registrierte Benutzer können Beiträge verfassen.
Hinweise zur Registrierung Sie müssen registriert sein, um Beiträge oder Antworten auf Beiträge schreiben zu können.
Ihr Benutzername:
Ihr Kennwort:   Kennwort vergessen?
Anhang:    Datei(en) anhängen  <?>   Anhänge verwalten  <?>
Grafik für den Beitrag:                                                
                                                       
Ihre Antwort:

Fachbegriff
URL
Email
Fett
Kursiv
Durchgestr.
Liste
*
Bild
Zitat
Code

*HTML ist AUS
*UBB-Code ist AN
Smilies Legende
Netiquette

10 20 40

Optionen Smilies in diesem Beitrag deaktivieren.
Signatur anfügen: die Sie bei den Voreinstellungen angegeben haben.

Wenn Sie bereits registriert sind, aber Ihr Kennwort vergessen haben, klicken Sie bitte hier.

Bitte drücken Sie nicht mehrfach auf "Antwort speichern".

*Ist HTML- und/oder UBB-Code aktiviert, dann können Sie HTML und/oder UBB Code in Ihrem Beitrag verwenden.

T H E M A     A N S E H E N
Philwag

Beiträge: 76 / 0

Solidworks 2012 SP5.0
PDM Enterprise 12.5
Windows 7

Hallo liebes Board,

ich habe anhand eines anderen Beitrags schon einen Code für ein Makro gefunden und für mich etwas angepasst (http://forum.cad.de/foren/ubb/Forum2/HTML/019349.shtml).
Wenn ich das Makro manuell in SWX 2012 starte, dann funktioniert das Ganze auch soweit. Danach habe ich nach einer Möglichkeit gesucht das makro über alle Zeichnungen in einem Ordner laufen zu lassen und bin dann auf PAC4SWX gekommen.
Leider wirft er mir dort immer eine Fehlermeldung aus, zu sehen in Anhang.
Ich habe auch mal einen Screenshot mit dem Macro und den Einstellungen im PAC4SWX angehängt.

Da ich leider nicht sonderlich bewandert bin, was Makros angeht, kann mir da wer helfen?

Danke für die Hilfe

Anbei noch das Makro als Text, eventuell steckt dort auch ein Fehler drin:

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
    'Teilenamen = swApp.GetFirstDocument.GetTitle
   
    If ModelDoc Is Nothing Then
        ' Call MsgBox("Keine Datei geöffnet", vbOKOnly, "Information")
        Exit Sub
    End If
   
   
    PropNames.Add "BauteilnummerNEU"
    PropNames.Add "Beschreibung"
    PropNames.Add "Projektnummer_dyn"
 
    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("", PropNames.Item(1))
            dummy = ModelDoc.DeleteCustomInfo2("", PropNames.Item(2))
            dummy = ModelDoc.DeleteCustomInfo2("", PropNames.Item(3))
           
            Debug.Print ModelDoc.AddCustomInfo3(Config, PropNames.Item(1), swCustomInfoText, Mid(Teilenamen, 1, 12))
            Debug.Print ModelDoc.AddCustomInfo3(Config, PropNames.Item(2), swCustomInfoText, Mid(Teilenamen, 14, 60))
            Debug.Print ModelDoc.AddCustomInfo3(Config, PropNames.Item(3), swCustomInfoText, Mid(Teilenamen, 1, 5))
        Next
   
    Next
   
End Sub

GDawg

Beiträge: 2620 / 3646

SolidWorks_2o18 SP4.o
Win10_x64, Quadro_P2ooo.
VisualStudio_2o19_Pro.
FEM: Forge_NxT_HPC, ANSYS_WB.
3D-Printer: Ultimaker_2, Tinker_Gnome.

Der Modulname in PAC4SWX stimmt nicht mit Deinem Modulname überein. Könnte das der Fehler sein?
Siehe http://forum.cad.de/foren/ubb/uploads/Philwag/MacroundPACEinstellungen.jpg, dateiname != dateiname1.

------------------

Philwag

Beiträge: 76 / 0

Solidworks 2012 SP5.0
PDM Enterprise 12.5
Windows 7

Hallo und danke für den Hinweis.
Das hatte ich aber auch schon versucht, dateiname1 hatte ich nur auch ausprobiert, da ich einen Hinweis auf der Homepage von PAC4SWX gefunden habe, der das ausgesagt hat. Hatte leider keinen Einfluss.
GDawg

Beiträge: 2620 / 3646

SolidWorks_2o18 SP4.o
Win10_x64, Quadro_P2ooo.
VisualStudio_2o19_Pro.
FEM: Forge_NxT_HPC, ANSYS_WB.
3D-Printer: Ultimaker_2, Tinker_Gnome.

Hmmmm .... vielleicht main != Main 
Da ich PAC4SWX nicht habe, ist es schwierig zu sagen wo der Fehler liegen könnte. Da das Makro sonst läuft, kann es nur noch an PAC4SW liegen oder an den Einstellungen für Dein Makro.
Eigentlich sollte der Unterschied in der Benennung sehr wohl einen Einfluss haben. Sonst müsste man das gar nicht eingeben.

------------------

Philwag

Beiträge: 76 / 0

Solidworks 2012 SP5.0
PDM Enterprise 12.5
Windows 7

Hallo und Danke,

das mit Main großschreiben war eine gute Idee, leider auch nicht von Erfolg gekrönt.

StefanBerlitz

Beiträge: 8756 / 682

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

Hallo Philwag,

wie GDawg schon geschrieben hat vermute ich auch eine falsche Einstellung in PAC4SWX für die Parameter. Nach deinem Screenshot des Makros muss bei Module als Wert dateiname eingetragen werden (so heißt dein Modul im Makro) und als Procedure (Startprozedur) die main.

Ich hab dein Makro von oben einfach rauskopiert, in ein neues Makro bei mir geschmissen und in PAC4SWX eingebunden, klappt bei mir einwandfrei. Ich hab das Testmakro und den Screenshot meiner Einstellungen angehangen; vielleicht versuchst du es mit dem Makro mal, vielleicht ist noch irgendwas anderes in dem Makro selbst komisch. Ich hab allerdings von der lokalen Platte aus gearbeitet, nicht aus einem UNC-Pfad.

Anmerkung: wenn das Makro mittels PAC4SWX ans laufen kommt bitte nicht wundern, wenn es so aussieht, als tut sich in den Dokumenten nichts  PAC4SWX speichert nicht von sich aus, dass musst du in deinem Makro noch selbst übernehmen, sonst macht es die Dateieigenschaften dran und PAC4SWX schließt das wieder ohne zu speichern ... 

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de