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
|