Gibt es eine Möglichkeit, die benutzerdefinierten Eigenschaften einer Teiledatei zu löschen und neue automatisch wiederherzustellen? Wir haben eine Reihe von Dateien, die nicht über die von uns verwendeten Eigenschaften verfügen (z. B. Profildatei für den geschweißten Mechaniker). Ziel ist es, die neuen Eigenschaften in diesen Dateien schnell wiederherzustellen.
Wir verwenden die SW 2016 Premium-Version - Wir haben die MyCad-Tools nicht.
Ja, es ermöglicht Ihnen, vorhandene Eigenschaften zu aktualisieren oder neue zu erstellen, aber es gibt keine Möglichkeit, vorhandene Eigenschaften zu löschen, um nicht mit einer wichtigen Liste von Eigenschaften und unnötigen Feldern zu enden. Wie kann ich vorhandene Immobilien löschen?
Sie können den Taskplaner verwenden, um Ihre Eigenschaften zu erstellen und zu ersetzen, und wenn Sie die Makroaufzeichnung verwenden, um Eigenschaften zu löschen, die due nicht benötigt. Sie können es auch mit dem Scheduler starten und die betreffenden Dateien auswählen.
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim config As SldWorks.Configuration
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim lRetVal As Long
Dim ValOut As String
Dim ResolvedValOut As String
Dim wasResolved As Boolean
Dim nNbrProps As Long
Dim vPropNames As Variant
Dim vPropTypes As Variant
Dim vPropValues As Variant
Dim resolved As Variant
Dim custPropType As Long
Dim K As Long
Dim NomProperty As String
Set cusPropMgr = swModelDocExt.CustomPropertyManager("")
nNbrProps = cusPropMgr.Count
vPropNames = cusPropMgr.GetNames
For K = 0 To nNbrProps - 1
cusPropMgr.Get2 vPropNames(K), ValOut, ResolvedValOut
custPropType = cusPropMgr.GetType2(vPropNames(K))
If vPropNames(K) = "Description" Then
NomProperty = ResolvedValOut
End If
If vPropNames(K) = "Dessinateur" Then
PropMgr.Delete(vPropNames(K))
End If
Next K
Die Zeilen:
Wenn vPropNames(K) = "Beschreibung", dann PropertyName = AufgelöstValOut Ende, wenn
Messen Sie den Wert der benutzerdefinierten Eigenschaft "Beschreibung".
Die Zeilen:
Wenn vPropNames(K) = "Verfasser der Stellungnahme", dann PropMgr.Delete(vPropNames(K)) Ende, wenn
Löschen Sie die benutzerdefinierte Eigenschaft "Draftsman".
Ok, ich sehe das Prinzip, aber auf der Ebene des Makros weiß ich nicht genug in VBA, um es zu erstellen, habe ich versucht, ein Makro zu speichern, das die Eigenschaften löscht, aber es funktioniert nicht ... Das Makro ist fast "leer"
Perfekt, ich möchte noch eine letzte Sache im Aufgabenplaner tun, ich starte das Makro mit "Benutzerdefinierte Aufgabe ausführen", aber können wir diesen oder jenen Ordner anvisieren, ich möchte zuerst einen Test mit einigen der Dateien durchführen.
Ok, um die Erstellung einer neuen Eigenschaft in einem Ordner zu starten, aber um das Löschmakro zu verwenden, verwende ich "Aufgabe ausführen" (siehe beigefügtes Bild) es gibt keine Felder, die auf einen bestimmten Ordner verweisen ...
Ich weiß nicht genug über diese Funktion, aber nichts hindert Sie daran, sie in Ihrem Makro zu verwalten, indem Sie eine Datei laden, die die Liste Ihrer zu verarbeitenden 3D-Dateien enthält. Ihr Makro muss dann jede Datei in SW öffnen, die benutzerdefinierten Eigenschaften löschen und dann speichern, bevor Sie mit der nächsten fortfahren.
Ich hatte eine Weile gedacht, dass das Dienstprogramm "BatchProperties" von MyCad dafür gemacht ist, aber ich habe es nie geschafft, das zu tun, was Sie tun möchten....
Denn ich hatte das gleiche Bedürfnis wie du...
Wenn jemand es verwendet und erfolgreich ist, kann es nützlich sein, es zu erwerben, wenn Sie viele Dateien verarbeiten müssen.
Vielen Dank für Ihr Feedback und Ihre Erklärungen, aber mir fehlen wirklich die Fähigkeiten, um diese Art von Makro zu erstellen ... also halte ich es lieber einfach... Ist es möglich, das Makro über den Taskplaner zu starten, indem ein bestimmter Ordner angegeben wird? In einem zweiten Mal werde ich die neuen Eigenschaften über den Taskplaner hinzufügen (dieser zweite Teil ist für mich ok)
Ich weiß nicht, ob dies möglich ist, aber meiner Meinung nach muss das Makro immer noch alle Dateien analysieren, die in dem Ordner vorhanden sind, der vom Taskplaner als Argument übergeben worden wäre.
Für diese Art von Operation bin ich mir nicht sicher, ob der Taskplaner wirklich erforderlich ist (er wird nur verwendet, um das Makro zu einem gestaffelten Zeitpunkt auszuführen).
Ok, ich verstehe d. Roger, aber "ac cobra 427" zeigt an, dass Sie das Makro vom Taskplaner aus starten können ... AC Cobra 427 Können Sie mir sagen, wie ich vorgehen muss und wie ich nur die gewünschten Dateien auswähle (ok für benutzerdefinierte Eigenschaften, Nok, um das Makro für einige Dateien zu starten)
Dsl Ich habe den Taskplaner nie gebraucht, ich dachte, es funktioniert, weil sie davon sprechen, ein Makro starten zu können... Im schlimmsten Fall, wenn Sie die Mycad-Tools noch nie hatten, können Sie sie herunterladen und 1 Monat lang testen, denke ich...
Siehe Screenshots. Führen Sie die benutzerdefinierte Aufgabe aus.
Ansonsten, wie sieht der Code für VBA aus, um eine Eigenschaftsgrenze zu erstellen und einen Wert zuzuordnen, ich habe darüber nachgedacht, dies mit dem Aufgabenplaner zu tun, aber es funktioniert nicht sehr gut, es akzeptiert keine leeren Felder (z. B. wird die Beschreibung anschließend vom Zeichner manuell ausgefüllt)