Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  UserParameter setzen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  UserParameter setzen (863 mal gelesen)
Speedy.X
Mitglied
Dipl.Ing.


Sehen Sie sich das Profil von Speedy.X an!   Senden Sie eine Private Message an Speedy.X  Schreiben Sie einen Gästebucheintrag für Speedy.X

Beiträge: 45
Registriert: 17.05.2005

erstellt am: 28. Jan. 2010 08:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Forum!

Ich stecke bei den UserParametern fest. (Inventor2009)

Von einer Baugruppe möchte ich die UserParameter aller beteiligten Teile auslesen
bzw. deren Wert ändern.
Das gelingt mir weder in der geöffneten Baugruppe via ComponentOccurrences
noch im ApprenticeServer.

Zur Zeit liste ich im ApprenticeServer alle Komponenten, öffne diese einzeln
und lese die Userparameter aus.

Kennt jemand einen besseren Weg?


Gruß

Rainer

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 28. Jan. 2010 12:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Speedy.X 10 Unities + Antwort hilfreich

Hallo

Ist zwar in VBA, aber probier's mal damit:

Code:
Option Explicit

Private Sub UserParamDingens()

Dim oAssDoc As AssemblyDocument
If ThisApplication.ActiveDocumentType = kAssemblyDocumentObject Then
    Set oAssDoc = ThisApplication.ActiveDocument
Else
    MsgBox "Kein Baugruppendokument - Exit"
    Exit Sub
End If

Dim oCompOcc As ComponentOccurrence
Dim oUserParams As UserParameters
Dim oUserParam As UserParameter
Dim sValueOld As String
Dim sValueNew As String
Dim oprop As Property
On Error Resume Next

For Each oCompOcc In oAssDoc.ComponentDefinition.Occurrences
 
    If oCompOcc.SubOccurrences.Count = 0 Then
        If oCompOcc.DefinitionDocumentType = kPartDocumentObject Then
 
            Set oUserParams = oCompOcc.Definition.Parameters.UserParameters
           
            For Each oUserParam In oUserParams
                sValueOld = oUserParam.Value
                oUserParam.Value = "1234567890" 'Sollte mit was Sinnvollem gefüllt werden
                Debug.Print "Datei: " & oCompOcc.Definition.Document.FullFileName & " alterWert" & oUserParam.Value; " --- neuer Wert " & oUserParam.Value
            Next
        End If
    Else
        Call AllSubOccs(oCompOcc)
    End If

Next

MsgBox "Fertsch"
End Sub

Private Sub AllSubOccs(ByVal oCompOcc As ComponentOccurrence)
    Dim oSubCompOcc As ComponentOccurrence
    Dim oUserParams As UserParameters
    Dim oUserParam As UserParameter
    Dim sValueOld As String
    Dim sValueNew As String
 
    On Error Resume Next
 
    For Each oSubCompOcc In oCompOcc.SubOccurrences
        If oSubCompOcc.SubOccurrences.Count = 0 Then
            If oSubCompOcc.DefinitionDocumentType = kPartDocumentObject Then
 
                Set oUserParams = oSubCompOcc.Definition.Parameters.UserParameters
           
                For Each oUserParam In oUserParams
                    sValueOld = oUserParam.Value
                    oUserParam.Value = "1234567890"
                    Debug.Print "Datei: " & oSubCompOcc.Definition.Document.FullFileName & " alterWert" & oUserParam.Value; " --- neuer Wert " & oUserParam.Value
                Next
            Else
                Call AllSubOccs(oSubCompOcc)
            End If
        End If
    Next
End Sub


------------------
MfG
RK

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Speedy.X
Mitglied
Dipl.Ing.


Sehen Sie sich das Profil von Speedy.X an!   Senden Sie eine Private Message an Speedy.X  Schreiben Sie einen Gästebucheintrag für Speedy.X

Beiträge: 45
Registriert: 17.05.2005

erstellt am: 28. Jan. 2010 18:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo RK,

fein, das hilft!
Wird in der API-Hilfe leider nicht beschrieben.
VBA passt auch, da die Parameter zum Teil auch
in Excel verwaltet werden.

Gruß und Danke

Rainer

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz