| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: speichern unter (2109 / mal gelesen)
|
Enric Mitglied Ingenieurbüro
Beiträge: 249 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 29. Okt. 2020 18:03 <-- editieren / zitieren --> Unities abgeben:
Guten Abend liebe CAD Gemeinde, ich habe mal Benutzerdefinierte iProperties erstellt! Wenn ich das alte Modell nun aufrufe und als ein neues speichern möchte, würde ich die Benutzerdefinierten Werte automatisch löschen lassen wollen. Kann mir da einer weiter helfen und hat jemand eine Idee? Was man da berücksichtigen muss, ist, wenn mir jemand eine iLogic Regel vorschlägt, wird das alte Modell diese Regel aber noch nicht kennen. Für anregende Lösungen wäre ich dankbar. Gruß Enric
------------------ Konstruktion Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EIBe 3D Mitglied Dipl. - Ing. (FH)
Beiträge: 267 Registriert: 24.01.2020 HP Z4 G4 Workstation Xeon 3,6 32GB Nvidia P2000 WIN10 SW2015 SP5.0 SW2017 ************* Inv2018 akt.SP
|
erstellt am: 30. Okt. 2020 07:05 <-- editieren / zitieren --> Unities abgeben: Nur für Enric
Hallo Enric, eine Möglichkeit wäre eine globale iLogic Regel, welche du ausführen kannst anstatt den Button "Speichern unter" zu benutzen. Hier ein einfacher Grundaufbau Code:
Dim oApp As Application = ThisApplication Dim oDoc As Document = ThisDoc.Document 'Gibt den Speicherpfad vor Dim sFullPath As String = "C:\Temp\Neues_Bauteil.ipt" 'Holt alle Benutzerdefinierten iProperties Dim oCustomPropSet As Inventor.PropertySet = oDoc.PropertySets.Item("Inventor User Defined Properties") 'geht durch jedes benutzerdefinierte iProp und löscht es For Each oCustProp In oCustomPropSet oCustProp.Delete Next 'Speichert Kopie (True) des Teils oDoc.SaveAs(sFullPath, True) 'Schließt das vorhandene ohne zu Speichern oDoc.Close(True) 'Öffnet dein neues Teil oApp.Documents.Open(sFullPath)
Hier findest du weitere Möglichkeiten um z.B. nicht alle benutzerdefinierten iProperties zu löschen. Wichtig ist, das Ganze als globale Regel einzubringen. Grüße
EIBe 3D Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 30. Okt. 2020 09:47 <-- editieren / zitieren --> Unities abgeben: Nur für Enric
Moin Aber so darfst du vor jedem Speichern den Pfad in der iLogic Regel anpassen. Ich würde ganz simpel ein VBA-Makro nehmen und einen Button in den Benutzerbefehlen dafür erstellen. Bei Bedarf einmnal klicken und fertig. iLogic-Regeln lassen sich noch nicht in die Benutzerbefehle einfügen. Den Aufruf über den Regelbrowser finde ich zu umständlich. Mal noch ein paar ergänzende Fragen. Kommen die benutzerdefinierten iProps nur in Bauteilen oder auch in Baugruppen, Zeichnungen, Präsentationen vor? Können wirklich alle benutzerdefinierten iProps weg oder nur bestimmte? Sollen sie wirklich komplett gelöscht werden oder nur geleert? ------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Enric Mitglied Ingenieurbüro
Beiträge: 249 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 30. Okt. 2020 17:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, ich möchte nur die den Inhalt der Benutzerdefinierten iProps (Text) löschen. Wie sähe den dafür der Code? In VBA habe ich zu wenig Erfahrung! MfG Enric
------------------ Konstruktion Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 31. Okt. 2020 08:01 <-- editieren / zitieren --> Unities abgeben: Nur für Enric
Hallo Der folgende Code leert den Wert ALLER benutzerdefinierten iProperties. Die Typumwandlung in der GUI (Text, Zahl, Datum, Ja/Nein) erfolgt implizit und kann leider nicht zur Unterscheidung hergenommen werden. Falls es nur bestimmte, namentlich bekannte iProps sind, könnte man das Leeren darauf eingrenzen. Der jetzige "Gießkannenmodus" birgt immer das Risiko zu viel zu löschen. Öffne mit Alt+F11 den VBA-Editor Lege im Anwendungsprojekt (Default.ivb) ein neues Modul (mit sinnvollem) Namen an Kopiere den Code da rein Schließe den Editor Rechte Maustaste auf die Ribbonleiste --> "Benutzerbefehle anpassen..." Such auf der linken Seite unter "Makros" dein (sinnvoll) benanntes Script Füge es den Benutzerbefehlen hinzu Dialog schließen Ausprobieren Code:
Option ExplicitPublic Sub ClearAllUserDefinediProps() Dim oApp As Inventor.Application Set oApp = ThisApplication Dim oDoc As Document Set oDoc = oApp.ActiveDocument Dim oPropset As PropertySet Set oPropset = oDoc.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}") Dim oProp As Property For Each oProp In oPropset oProp.Value = "" Next End Sub
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Enric Mitglied Ingenieurbüro
Beiträge: 249 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 01. Nov. 2020 10:26 <-- editieren / zitieren --> Unities abgeben:
|
Enric Mitglied Ingenieurbüro
Beiträge: 249 Registriert: 29.02.2008 Einsatz: Inventor 2018
|
erstellt am: 01. Nov. 2020 10:46 <-- editieren / zitieren --> Unities abgeben:
|
RolandD Mitglied
Beiträge: 559 Registriert: 07.01.2005 i7-9700k 32GB DDR4-RAM Nvidia RTX 2060 SSD 970 m.2 Win10-64 (21H2) AIP 2020.3 Dell U3417W
|
erstellt am: 01. Nov. 2020 12:55 <-- editieren / zitieren --> Unities abgeben: Nur für Enric
|