| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Auf dem Weg zur digitalen Auftragsmappe. (Phoenix/PDM,SOLIDWORKS,PDM System,PLM,PLM System), ein Anwenderbericht
|
Autor
|
Thema: Makro iProperty-Einträge (3167 mal gelesen)
|
cader1234 Mitglied
Beiträge: 2 Registriert: 18.06.2014
|
erstellt am: 18. Jun. 2014 08:19 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe ein Macro was mir Einträge in den Benutzerdefinierten IProperties erzeugt, wenn diese aber schon vorhanden sind bekomme ich eine Fehlermeldung und das Macro schmiert ab. Ich würde gern einen If Befehl verwenden, nur weiß ich nicht welchen Wert ich wie abfragen muß. Kann mir vielleicht jemand helfen? Hier mal der nur bedingt funktionierende Code. Grüße Sebastian. Code: ' Get the active document. Dim invDoc As Document Set invDoc = ThisApplication.ActiveDocument ' Get the user defined (custom) property set. Dim invCustomPropertySet As PropertySet Set invCustomPropertySet = invDoc.PropertySets.Item("Inventor User Defined Properties") ' Declare some variables that will contain the various values. Dim strText As String Dim dblValue As Double Dim dtDate As Date Dim blYesOrNo As Boolean ' Set values for the variables. strText = "" dblValue = 3.14159 dtDate = Now blYesOrNo = True ' Create the properties. Dim invProperty As Property Set invProperty = invCustomPropertySet.Add(strText, "W-Norm") Set invProperty = invCustomPropertySet.Add(strText, "Benennung") Set invProperty = invCustomPropertySet.Add(strText, "Zeichnung - Nr.") Set invProperty = invCustomPropertySet.Add(strText, "Bemerkung") Set invProperty = invCustomPropertySet.Add(strText, "A-Norm")
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
invhp Ehrenmitglied V.I.P. h.c. MB Techniker, AE, WKZmacher
Beiträge: 5552 Registriert: 16.05.2002 (fast) alles, was Autodesk im Mechanikbereich anbietet ;)
|
erstellt am: 18. Jun. 2014 08:38 <-- editieren / zitieren --> Unities abgeben: Nur für cader1234
Code: Public Sub TestiPropertyUpdate() ' Get the active document. Dim Doc As Document Set Doc = ThisApplication.ActiveDocument ' Update or create the custom iProperty. Call UpdateCustomiProperty(Doc, "Test", "Some Text") End Sub Public Sub UpdateCustomiProperty(ByRef Doc As Document, _ ByRef PropertyName As String, _ ByRef PropertyValue As Variant) ' Get the custom property set. Dim customPropSet As PropertySet Set customPropSet = Doc.PropertySets.Item( _ "Inventor User Defined Properties") ' Get the existing property, if it exists. Dim prop As Property On Error Resume Next Set prop = customPropSet.Item(PropertyName) ' Check to see if the above call failed. If it failed ' then the property doesn't exist. If Err.Number <> 0 Then ' Failed to get the existing property so create a new one. Set prop = customPropSet.Add(PropertyValue, PropertyName) Else ' Change the value of the existing property. prop.Value = PropertyValue End If End Sub
Quelle ------------------ Grüsse Jürgen <A" TARGET=_blank>http://modthemachine.typepad.com/my_weblog/2010/02/custom-iproperties.html ------------------ Grüsse Jürgen <A</A> HREF="http://inventorfaq.blogspot.com/" TARGET=_blank>Über 1400 Tipps in der Inventor FAQ</A> Inventor Schulungsvideos und eBook zum runterladen Die besten Tipps und Tricks für Einsteiger | für erfahrene Anwender | bei Inventor Abstürzen | die Simulation [Diese Nachricht wurde von invhp am 18. Jun. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cader1234 Mitglied
Beiträge: 2 Registriert: 18.06.2014
|
erstellt am: 18. Jun. 2014 08:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, vielen Dank hab den code aber leider nicht zum laufen bekommen... So hier klappts bei mir aber , falls es jemand interessiert:
Code: Public Sub UpdateVolume() ' Get the active part document. Dim invPartDoc As PartDocument Set invPartDoc = ThisApplication.ActiveDocument ' Get the volume of the part. This will be returned in ' cubic centimeters. Dim dVolume As Double dVolume = invPartDoc.ComponentDefinition.MassProperties.Volume ' Get the UnitsOfMeasure object which is used to do unit conversions. im oUOM As UnitsOfMeasure Set oUOM = invPartDoc.UnitsOfMeasure ' Convert the volume to the current document units. Dim strVolume As String strVolume = oUOM.GetStringFromValue(dVolume, _oUOM.GetStringFromType(oUOM.LengthUnits) & "^3") ' Get the custom property set. Dim invCustomPropertySet As PropertySet Set invCustomPropertySet = _invPartDoc.PropertySets.Item("Inventor User Defined Properties") ' Attempt to get an existing custom property named "Volume". On Error Resume Next Dim invVolumeProperty As Property Set invVolumeProperty = invCustomPropertySet.Item("Volume") If Err.Number <> 0 Then ' Failed to get the property, which means it doesn't exist ' so we'll create it. Call invCustomPropertySet.Add(strVolume, "Volume") Else ' We got the property so update the value. invVolumeProperty.Value = strVolume End If End Sub
[Diese Nachricht wurde von cader1234 am 18. Jun. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tschütte Mitglied Ingenieur, Maschinenbau
Beiträge: 180 Registriert: 21.01.2010 Inventor professional 2023 Win 10 pro 64 shining3D einscan 2X pro plus QuickSurface 2023 PLZ: 262.. 3D-Fokus.de
|
erstellt am: 18. Jun. 2014 09:01 <-- editieren / zitieren --> Unities abgeben: Nur für cader1234
Hallo Jürgen, das scheint mir vba zu sein. Geht so etwas auch mit iLogic? Wenn ja, was muss angepasst werden? Wenn nein, muss ich wohl meinen vba-Editor zum Laufen bringen und mich mehr mit vba beschäftigen :-S Beste Grüße Thomas ------------------ Freundliche Grüße Thomas Schütte Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
invhp Ehrenmitglied V.I.P. h.c. MB Techniker, AE, WKZmacher
Beiträge: 5552 Registriert: 16.05.2002 (fast) alles, was Autodesk im Mechanikbereich anbietet ;)
|
erstellt am: 18. Jun. 2014 09:27 <-- editieren / zitieren --> Unities abgeben: Nur für cader1234
|
tschütte Mitglied Ingenieur, Maschinenbau
Beiträge: 180 Registriert: 21.01.2010 Inventor professional 2023 Win 10 pro 64 shining3D einscan 2X pro plus QuickSurface 2023 PLZ: 262.. 3D-Fokus.de
|
erstellt am: 18. Jun. 2014 10:08 <-- editieren / zitieren --> Unities abgeben: Nur für cader1234
|