Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Aktualisierung der Eigenschaft Masse

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:  Aktualisierung der Eigenschaft Masse (6348 mal gelesen)
Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2008 SP1 MDT2008 WIN XP SP2, Vista x64
Asus A8N-SLI, AMD Opteron 180 , 4GB,
Quadro FX 3400

erstellt am: 02. Dez. 2007 22:05    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 Leute,

ich möchte via VBA die das Material und bei Bedarf die Masse eines Bauteils einstellen können.
Also entweder über die Materialeigenschaften von Inventor berechnen lassen oder eben
manuell eintragen.
Das habe ich auch im Prinzip hinbekommen.
Leider bin ich aber nicht in der Lage, den Befehl "Masseeigenschaften aktualisieren"
, via VBA auszuführen.
Die neuen Werte werden also immer erst von Inventor übernommen und in den Iproperties sichtbar, wenn ich das Dokument schließe und neu öffne.
Das liegt daran, das ich bisher nicht verstehe, wie ich auf die Befehle von Inventor via VBA zugreifen kann.
Ich weiß zwar, das es sich um den CommandManager drehen muss, aber mir fehlt ein einfaches Beispiel dazu, wie man das realisiert.
Ich finde auch keine Auflistung der möglichen Kommandos.

Für einen Tip wäre ich dankbar.

Grüße

Manfred

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 02. Dez. 2007 23:16    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 Manfred Zirk 10 Unities + Antwort hilfreich

Hallo Manfred,

in der API-Hilfe sollte ein Beispiel zum auslesen der Masse sein.
Wenn die Masse momentan nicht aktuell ist wird sie neu berechnet.

Gruß
Reinhard

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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2008 SP1 MDT2008 WIN XP SP2, Vista x64
Asus A8N-SLI, AMD Opteron 180 , 4GB,
Quadro FX 3400

erstellt am: 03. Dez. 2007 08:50    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 Reinhard,

wenn man manuell Veränderungen an der Masseberechnung in den Properties vornimmt,
Z.B. die Masse als Benutzerwert einträgt, dann muss ich als Benutzer
explizit sagen - übernehmen bzw. berechnen.
Erst dann erfolgt die Neubrechnung im aktuellen Dokument.
Sezt man dann die Masse wieder auf die automatische Berechnung, dann
steht im Feld Masse erstmal "N/V".
Die Berechnung erfolgt erst, wenn "Übernehmen" gedrückt wird.

Ich möchte die Masse neu berechnen und im geöffneten Dokument
die Werte aktualisieren.
Das funktioniert weder mit odoc.update noch odoc.rebuild.
Es muss also noch eine Möglichkeut geben, die Masseberechnung neu anzustoßen.
Das sollte sich hinter dem Befehl "Masseeigenschaften aktualisieren aus der Menüleiste verbergen.

In der API konnte ich bisher leider kein Beispiel finden, wie man die Masse aktualisiert.
Noch gibt es bei den Massproperties des Dokuments eine Methode "neu brechnen"...

Grüße

Manfred

 

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 03. Dez. 2007 10:27    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 Manfred Zirk 10 Unities + Antwort hilfreich

probier mal das:

If oDoc.DocumentType <> kDrawingDocumentObject Then
   
        Dim oMassProps As MassProperties
        Set oMassProps = oDoc.ComponentDefinition.MassProperties
        Dim omass As String
       

        If oDoc.RequiresUpdate = True Then
            Call oDoc.Update
        End If
       
        omass = oMassProps.Mass
        Call omass2prop(omass, oDoc)
               
    End If

Gruß
Reinhard

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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2008 SP1 MDT2008 WIN XP SP2, Vista x64
Asus A8N-SLI, AMD Opteron 180 , 4GB,
Quadro FX 3400

erstellt am: 03. Dez. 2007 21:46    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 Reinhard,

Danke für das Beispiel.

In dem Beipiel rufst du eine Subroutine omass2Prop (omass,ODoc)
auf.
Leider fehlt deren Inhalt oder verstehe ich dein Beispiel nicht ganz richtig?

Grüße

Manfred

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 03. Dez. 2007 22:02    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 Manfred Zirk 10 Unities + Antwort hilfreich

Hallo Manfred,

die Subroutine kannst du löschen.
Zum Aktualisieren der Masse ist die nicht nötig.

Gruß
Reinhard

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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2008 SP1 MDT2008 WIN XP SP2, Vista x64
Asus A8N-SLI, AMD Opteron 180 , 4GB,
Quadro FX 3400

erstellt am: 03. Dez. 2007 23:31    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 Reinhard,

ich habe nochmal herumprobiert, die Methoden doc.update oder doc.rebuild
bewirken da nichts.
oDoc.requiresUpdate ist liefert immer False, wenn man an den Masseeigenschaften
herumspielt.
Erst nach der manuellen Übernahme wird die Veränderung erkannt.
Ich habe es dann endlich geschafft, den Inventorbefehl "Masseeigenschaften aktualisieren"
via VBA zu starten.
Jetzt erhalte die erwarteten Ergebnisse.

Grüße

Manfred
 

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 04. Dez. 2007 00:08    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 Manfred Zirk 10 Unities + Antwort hilfreich

Hallo Manfred,

das Aktualisieren der Masse wird mit

Code:
omass = oMassProps.Mass

angestoßen.

Code:
oDoc.RequiresUpdate

bewirkt eine Aktualisierung des Dokuments.

Mach doch mal bitte ein neues Part und schau dir die Masse an.
Die Masse sollte den Wert "N/V" haben.
Jetzt führst du den Code aus und schaust dir wieder die Masse an.
Was steht da jetzt?

Gruß
Reinhard

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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2008 SP1 MDT2008 WIN XP SP2, Vista x64
Asus A8N-SLI, AMD Opteron 180 , 4GB,
Quadro FX 3400

erstellt am: 04. Dez. 2007 19:17    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 Reinhard,

Danke für die Erklärung.
Mir war nicht klar, das das Beschreiben der Variablen
eben auch Neuauswertung der Masse einschließt.
Deshalb habe ich auch dein Beispiel als unvollständig betrachtet.
Allerdings benötigt das Dokument bei mir dann kein Update.
Die neuen Werte stehen direkt in den Properties.
Ich habe es mit der Auswertung von Requiresupdate probiert,
dieser Wert bleibt immer False.

Grüße

Manfred

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 04. Dez. 2007 21:30    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 Manfred Zirk 10 Unities + Antwort hilfreich

Hallo Manfred,

die Abfrage "requiresupdate" ist drin, weil es sein kann, dass das Dokument ein Update erfordert bevor die Masse berechnet wird, z.B. bei Baugruppen oder Abgeleiteten Komponenten.
Kann aber auch bei normalen Parts vorkommen.
Versuch mal folgendes:

- modelliere irgendwas
- aktualisiere die Masse
- ändere einen Parameter über die Paramterliste
- jetzt ist der Blitz aktiv und requiresupdate=true

Die Routine steht bei mir in einem Klassenmodul, das beim Speichern aufgerufen wird. Dadurch habe ich immer aktuell gespeicherte Dokumente und immer das aktuelle Gewicht in den IPTs, IAMs.

Gruß
Reinhard

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