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
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP