Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Neue iPropteries werden nicht abgespeichert

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:  Neue iPropteries werden nicht abgespeichert (517 / mal gelesen)
Starbuzz
Mitglied



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

Beiträge: 60
Registriert: 14.11.2014

erstellt am: 14. Jul. 2016 08:56    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,

ich habe ein VBA Skript, das folgendermaßen aussieht:

Sub iProperties()

    'Setze eine Referenz zum Bauteil
    Dim oPartDoc As PartDocument
    Set oPartDoc = ThisApplication.ActiveDocument

    'Physikalische Eigenschaften definieren
    Dim oMassProps As MassProperties
    Set oMassProps = oPartDoc.ComponentDefinition.MassProperties

    'Genauigkeit = hoch
    oMassProps.Accuracy = k_High
    On Error Resume Next
   
    'Gewicht merken und Runden
    realmass = (Round(oMassProps.Mass, 3))
    realmassvalue = (Round(oMassProps.Mass, 3))

    'Flaeche merken und Runden
    realarea = (Round(oMassProps.Area, 1))
    realareavalue = (Round(oMassProps.Area, 1))

    'Material lesen
    Dim oPropsets As PropertySets
    Set oPropsets = oPartDoc.PropertySets
    Dim oPropmaterial As Property
    Set oPropmaterial = oPropsets.Item("{32853F0F-3444-11d1-9E93-0060B03C1CA6}") _
    .ItemByPropId(kMaterialDesignTrackingProperties)
    Dim oPropmaterial_name As String
    oPropmaterial_name = oPropmaterial.Value

    'PROPERTIES SCHREIBEN (USER)
    Dim oPropSet As PropertySet
    Set oPropSet = oPropsets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
   
    'Wenn vorhanden dann löschen
    oPropSet.Item("GEWICHT").Delete
    oPropSet.Item("FLAECHE").Delete
    oPropSet.Item("WERKSTOFF").Delete
    'Neu schreiben
    Call oPropSet.Add(realmass, "Gewicht", 105)
    Call oPropSet.Add(realarea, "Fläche", 106)
    Call oPropSet.Add(oPropmaterial_name, "Werkstoff", 108)
On Error GoTo 0

End Sub


Fläche, Werkstoff und Gewicht werden eingetragen. Leider speichert er nicht die neuen iProperties (Datei speichern, schließen und neu öffnen).
Kann das mal einer von euch testen? Und was kann man dagegen tun?

Falls jemand noch eine andere Frage beantworten kann: Ich möchte die Fläche als ganze Zahl gerundet haben. Egal welchen Wert (hier ist es "1") ich bei:

realarea = (Round(oMassProps.Area, 1))
realareavalue = (Round(oMassProps.Area, 1))

eintrage, da tut sich auch nichts bei mir bzw. keine Änderung!

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

BernoAn
Mitglied



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

Beiträge: 164
Registriert: 16.01.2014

erstellt am: 14. Jul. 2016 10:06    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 Starbuzz 10 Unities + Antwort hilfreich

Hallo

Ersetze diese Zeile, dann geht es!

Code:

Set oPropSet = oPartDoc.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")

Gruß Berno

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



CAD Consultant (m/w/d)

Gräbert ist ein mittelständisches Softwareunternehmen mit Hauptsitz in Berlin und mit Grundlagen- und Produkt-Entwicklungszentren in 6 Ländern. Wir sind spezialisiert auf die Entwicklung von CAD-Software und CAD-Softwarelösungen für die DWG-Bearbeitung. Mit mehr als 40 Jahren Technologiekompetenz ist Gräbert Vorreiter in der Entwicklung von Lösungen über alle Plattformen und bietet Software für ...

Anzeige ansehenConsulting, Engineering
BernoAn
Mitglied



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

Beiträge: 164
Registriert: 16.01.2014

erstellt am: 14. Jul. 2016 14:20    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 Starbuzz 10 Unities + Antwort hilfreich

Zum Runden auf ganze Zahl

mach aus der 1 eine 0

Code:

realarea = (Round(oMassProps.Area, 0))
realareavalue = (Round(oMassProps.Area, 0))

Gruß Berno

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