| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: Properties ausfüllen (1611 / mal gelesen)
|
Volker E Mitglied Konstrukteur
 
 Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 19. Aug. 2016 18:45 <-- editieren / zitieren --> Unities abgeben:         
Hallo IV Gemeinde Ich habe da ein Problem mit Benutzerdefinierten Prpperties diese möchte ich über ein VBA Formular ausfüllen. Ich will die Properties zuerst ins Formular einlesen wenn ausgefüllt wenn nicht sollen sie über das Formular ausgefüllt werden. Das könnt man mit iLogic sehr einfach bewerkstelligen aber bei uns in der ist iLogic verboten worden. Jetzt könnt ich die Properties von Hand über die Standardmaske von IV eintragen aber die Properties sin teilweise so lang vom Namen dass sie nicht gut lesbar sind es dauer einfach zu lange bis ich das richte Propertie gesucht habe. Ich verstehe nicht warum er mir hier das Propertie nicht einliest. Kann mir einer von euch heften? Bin für jede Hilfe dankbar! Formular ist im Anhang hier mal mein Ansatz
Public Sub CustoProperties_Eintragen() ' ********************************************************** ' ** Vorhandene Custom Properties ablesen und in Formular bringen ** ' ********************************************************** ' Get the active document. ' gehe zum aktiven Dokument Dim invDoc As Document Set invDoc = ThisApplication.ActiveDocument ' Get the user defined (custom) property set. ' Gehe zum benutzerdefinierte (custom) Propertie Dim invCustomPropertySet As PropertySet Set invCustomPropertySet = invDoc.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}") For Each oPropSet In oDoc.PropertySets For Each oProp In oPropSet If oProp.invCustomProperty = "MF.DOKUMENTENNUMMER" Then Schriftkopf.MF_DOKUMENTENNUMMER = oProp.value End If Next Schriftkopf.Show End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ruzy5624 Mitglied Konstruktionsleiter / staatl. gepr. Techniker
 
 Beiträge: 280 Registriert: 01.07.2015 Product Design Suite 2018 Ultimate Visual Studio 2017 Windows 10 Pro Intel Xeon E3-1245 v5 @ 3,5GHz Nvidia Quadro M4000 8GB RAM 32GB 2x 24" Monitore FullHD SpaceMouse Pro
|
erstellt am: 20. Aug. 2016 09:28 <-- editieren / zitieren --> Unities abgeben:          Nur für Volker E
Guten Morgen, bin mir nicht hundertprozentig sicher, ob ich dein Problem richtig verstanden habe. Dein Formular konnte ich leider nicht einladen. Wenn ich es ohne das Formular richtig verstanden haben, dann versuch doch mal, ob das klappt: Code: Public Sub CustoProperties_Eintragen() ' ****************************************************************** ' ** Vorhandene Custom Properties ablesen und in Formular bringen ** ' ****************************************************************** ' Get the active document. ' gehe zum aktiven Dokument Dim invDoc As Document Set invDoc = ThisApplication.ActiveDocument ' Get the user defined (custom) property set. ' Gehe zum benutzerdefinierte (custom) Propertie Dim invCustomPropertySet As PropertySet Set invCustomPropertySet = invDoc.PropertySets.Item("Inventor User Defined Properties") Dim oProp As Property For Each oProp In invCustomPropertySet If oProp.Name = "MF.DOKUMENTENNUMMER" Then Schriftkopf.MF_DOKUMENTENNUMMER = oProp.Value End If Next Schriftkopf.Show End Sub
------------------ Mit Besten Grüßen Ruzy5624 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volker E Mitglied Konstrukteur
 
 Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 21. Aug. 2016 10:14 <-- editieren / zitieren --> Unities abgeben:         
 Hallo Ruzy5624 Nein funktioniert auch nicht. Aber hier noch einmal das Formular und die Bauteilvorlage Noch mal ich habe eine Kundenvorlage die ich benutzen muss dort sind die Benutzerproperties hinterlegt. Die werden eben überden den IV Dialog ausgefüllt. Nun ist es aber so dass der Kunde immer mehr Properties dazu geschrienen hat und viel ähneln sich am Anfang. Wenn man jetzt mit neuen Mitarbeitern arbeitet kommt es unweigerlich zu Fehlern. Ich möcht eben nur die Properties die wir ausfüllen müssen in einem Formular darstellen. Sie beim Starten des Makros einlesen wenn sie ausgefüllt sind wenn nicht werden die Werte ins Formular eingetragen und ans Bauteil übertragen. Porpertie Beispiel: MF.Abteilung_des_verantwortlichen_der Erstellung MF.Abteilung_des_verantwortlichen_der_Änderung
Den habe ich aus der IV Hilfe Code: Public Sub CustoProperties_Eintragen() ' ****************************************************************** ' ** Vorhandene Custom Properties ablesen und in Formular bringen ** ' ****************************************************************** ' Get the active document. ' gehe zum aktiven Dokument Dim invDoc As Document Set invDoc = ThisApplication.ActiveDocument ' Get the user defined (custom) property set. ' Gehe zum benutzerdefinierte (custom) Propertie Dim invCustomPropertySet As PropertySet Set invCustomPropertySet = invDoc.PropertySets.Item("Inventor User Defined Properties") Dim oProp As Property For Each oProp In invCustomPropertySet If oProp.Name = "MF.DOKUMENTENNUMMER" Then Schriftkopf.MF_DOKUMENTENNUMMER = prop.valueo End If Next Schriftkopf.Show End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ruzy5624 Mitglied Konstruktionsleiter / staatl. gepr. Techniker
 
 Beiträge: 280 Registriert: 01.07.2015 Product Design Suite 2018 Ultimate Visual Studio 2017 Windows 10 Pro Intel Xeon E3-1245 v5 @ 3,5GHz Nvidia Quadro M4000 8GB RAM 32GB 2x 24" Monitore FullHD SpaceMouse Pro
|
erstellt am: 21. Aug. 2016 11:05 <-- editieren / zitieren --> Unities abgeben:          Nur für Volker E
Hallo, jetzt habe ich auch das Formular eingeladen bekommen und verstanden wie es funktionieren soll  Hab das ganze mal etwas bearbeitet. Hier das Ergebnis-->
Bei mir funktioniert es  ------------------ Mit Besten Grüßen Ruzy5624 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volker E Mitglied Konstrukteur
 
 Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 21. Aug. 2016 11:59 <-- editieren / zitieren --> Unities abgeben:         
Hallo Ruzy5624 Danke für Deine Hilfe Habe es zwischenzeitlich auch hin bekommen zwar nicht so schön wie Dein Code aber gut. Das nächste Problem ist aber komplizierter die Properties heisen alle MF.Dokumentennummer usw. Ich kann einfach nicht den Text aus dem Tetfeld in die entsprechenden Properties übertragen. Kann das etwas mit dem Punkt zutun haben(MF.Dokumentennnummer)? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ruzy5624 Mitglied Konstruktionsleiter / staatl. gepr. Techniker
 
 Beiträge: 280 Registriert: 01.07.2015 Product Design Suite 2018 Ultimate Visual Studio 2017 Windows 10 Pro Intel Xeon E3-1245 v5 @ 3,5GHz Nvidia Quadro M4000 8GB RAM 32GB 2x 24" Monitore FullHD SpaceMouse Pro
|
erstellt am: 21. Aug. 2016 14:06 <-- editieren / zitieren --> Unities abgeben:          Nur für Volker E
Moin, hast du mal meine Lösung, also auch das Formular von mir eingeladen? Ich habe nicht nur das Modul erstellt, sondern auch gleich den Code für das Formular mit erstellt, sodass auf Knopfdruck die in das Formular eingetragenen Informationen in die iProperties geschrieben werden  Code Modul:
Code: Public Sub CustoProperties_Eintragen() ' ****************************************************************** ' ** Vorhandene Custom Properties ablesen und in Formular bringen ** ' ****************************************************************** ' Get the active document. ' gehe zum aktiven Dokument Dim invDoc As Document Set invDoc = ThisApplication.ActiveDocument ' Get the user defined (custom) property set. ' Gehe zum benutzerdefinierte (custom) Propertie Dim invCustomPropertySet As PropertySet Set invCustomPropertySet = invDoc.PropertySets.Item("Inventor User Defined Properties") Dim oProp As Property For Each oProp In invCustomPropertySet If oProp.Name = "MF.DOKUMENTENNUMMER" Then Schriftkopf.MF_DOKUMENTENNUMMER.Text = oProp.Value ElseIf oProp.Name = "MF.BENENNUNG_DEUTSCH" Then Schriftkopf.MF_BENENNUNG_DEUTSCH.Text = oProp.Value ElseIf oProp.Name = "MF.BENENNUNG_ENGLISCH" Then Schriftkopf.MF_BENENNUNG_ENGLISCH.Text = oProp.Value ElseIf oProp.Name = "MF.REVISION" Then Schriftkopf.MF_REVISION.Text = oProp.Value ElseIf oProp.Name = "MF.VERSION" Then Schriftkopf.MF_VERSION.Text = oProp.Value ElseIf oProp.Name = "MF.BLATTNUMMER" Then Schriftkopf.MF_BLATTNUMMER.Text = oProp.Value ElseIf oProp.Name = "MF.BLATTANZAHL" Then Schriftkopf.MF_BLATTANZAHL.Text = oProp.Value ElseIf oProp.Name = "MF.ABTEILUNG_DES_VERANTWORTLICHER_DER_ERSTELLUNG" Then Schriftkopf.MF_ABTEILUNG_DES_VERANTWORTLICHER_DER_ERSTELLUNG.Text = oProp.Value ElseIf oProp.Name = "MF.VERANTWORTLICHER_DER_ERSTELLUNG" Then Schriftkopf.MF_VERANTWORTLICHER_DER_ERSTELLUNG.Text = oProp.Value ElseIf oProp.Name = "MF.NAME_DES_ERSTELLERS" Then Schriftkopf.MF_NAME_DES_ERSTELLERS.Text = oProp.Value End If Next Schriftkopf.Show End Sub
Code Formular:
Code: Private Sub Beenden_Click() End End SubPrivate Sub Eintragen_Click() ' Get the active document. Dim invDoc As Document Set invDoc = ThisApplication.ActiveDocument Dim invCustomPropertySet As PropertySet Set invCustomPropertySet = invDoc.PropertySets.Item("Inventor User Defined Properties") invCustomPropertySet.Item("MF.DOKUMENTENNUMMER").Value = Schriftkopf.MF_DOKUMENTENNUMMER.Text invCustomPropertySet.Item("MF.BENENNUNG_DEUTSCH").Value = Schriftkopf.MF_BENENNUNG_DEUTSCH.Text invCustomPropertySet.Item("MF.BENENNUNG_ENGLISCH").Value = Schriftkopf.MF_BENENNUNG_ENGLISCH.Text invCustomPropertySet.Item("MF.REVISION").Value = Schriftkopf.MF_REVISION.Text invCustomPropertySet.Item("MF.VERSION").Value = Schriftkopf.MF_VERSION.Text invCustomPropertySet.Item("MF.BLATTNUMMER").Value = Schriftkopf.MF_BLATTNUMMER.Text invCustomPropertySet.Item("MF.BLATTANZAHL").Value = Schriftkopf.MF_BLATTANZAHL.Text invCustomPropertySet.Item("MF.ABTEILUNG_DES_VERANTWORTLICHER_DER_ERSTELLUNG").Value = Schriftkopf.MF_ABTEILUNG_DES_VERANTWORTLICHER_DER_ERSTELLUNG.Text invCustomPropertySet.Item("MF.VERANTWORTLICHER_DER_ERSTELLUNG").Value = Schriftkopf.MF_VERANTWORTLICHER_DER_ERSTELLUNG.Text invCustomPropertySet.Item("MF.NAME_DES_ERSTELLERS").Value = Schriftkopf.MF_NAME_DES_ERSTELLERS.Text End Sub
------------------ Mit Besten Grüßen Ruzy5624 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volker E Mitglied Konstrukteur
 
 Beiträge: 164 Registriert: 20.08.2012 Win 7 64 bit, Inventor 2015 Sp2 64 bit Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM Nvidia Quadro 4000 Space Explorer
|
erstellt am: 21. Aug. 2016 18:39 <-- editieren / zitieren --> Unities abgeben:         
|