| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Angabe des Gewichtes mit 16 Stellen? (1079 mal gelesen)
|
Sodokan Mitglied Project Engineer
Beiträge: 25 Registriert: 27.03.2007
|
erstellt am: 04. Apr. 2007 14:44 <-- editieren / zitieren --> Unities abgeben:
Hallo, nachdem unser Systemhaus das Problem mit der Erweiterung des Inhaltscenters mit eigenen Teilen geklärt hat, habe ich noch das Problem mit der 16 stelligen Gewichtsangabe. Dabei konnte mir auch das Systemhaus nicht weiterhelfen. Inventor trägt mir immer die Masse mit der vollen Länge ein. Kennt jemand das Problem? Was kann ich tun, um die Angabe auf 3 Nachkommastellen zu begrenzen? Gruß Dieter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nightsta1k3r Ehrenmitglied V.I.P. h.c. plaudern
Beiträge: 11223 Registriert: 25.02.2004 Hier könnte ihre Werbung stehen!
|
erstellt am: 04. Apr. 2007 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für Sodokan
|
Sodokan Mitglied Project Engineer
Beiträge: 25 Registriert: 27.03.2007
|
erstellt am: 04. Apr. 2007 15:11 <-- editieren / zitieren --> Unities abgeben:
|
lbcad Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau und CAD-Trainer
Beiträge: 3823 Registriert: 15.02.2001 DELL Precision 7520 Win10Pro-64 Inventor mit Vault Professional 2024 --------------------- Während man es aufschiebt, verrinnt das Leben. Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.)
|
erstellt am: 04. Apr. 2007 15:32 <-- editieren / zitieren --> Unities abgeben: Nur für Sodokan
Da könnte ich dann mit VBA aushelfen: Code:
Function WieIstDasGewicht(oDoc As Inventor.Document) As String ' Set a reference to the UnitsOfMeasure object of the ' active document. Dim oUOM As UnitsOfMeasure Set oUOM = oDoc.UnitsOfMeasure Dim sMasse As String Dim sMasseWert As String Dim sMasseEinheit As String Dim dMasse As Double dMasse = oDoc.ComponentDefinition.MassProperties.Mass 'Debug.Print dMasse sMasse = oUOM.GetStringFromValue(oDoc.ComponentDefinition.MassProperties.Mass, oUOM.MassUnits) 'Debug.Print sMasse 'Debug.Print ' String auseinandernehmen sMasseWert = Left$(sMasse, InStr(1, sMasse, " ", vbTextCompare) - 1) sMasseEinheit = TrimExtended(Right$(sMasse, Len(sMasse) - InStr(1, sMasse, " ", vbTextCompare))) 'dMasse = CDbl(sMasseWert) Select Case sMasseEinheit Case Is = "kg" 'Debug.Print dMasse; " kg"; 'Debug.Print If (dMasse <= 0.001) Then 'Debug.Print "Umrechnung in MilliGramm" dMasse = Round(dMasse * 1000000, 3) sMasseEinheit = "mg" ElseIf ((0.001 < dMasse) And (dMasse <= 1)) Then 'Debug.Print "Umrechnung in Gramm" dMasse = Round(dMasse * 1000, 3) sMasseEinheit = "g" ElseIf ((1 < dMasse) And (dMasse <= 1000)) Then dMasse = Round(dMasse, 3) sMasseEinheit = "kg" ElseIf (dMasse > 1000) Then 'Debug.Print "Umrechnung in Tonnen" dMasse = Round(dMasse / 1000, 3) sMasseEinheit = "t" Else 'Debug.Print "keine Aktion" End If Case Else End Select sMasseWert = CStr(dMasse) sMasse = sMasseWert & " " & sMasseEinheit 'Debug.Print " = "; sMasse 'Debug.Print 'Debug.Print "-------------------------" 'Debug.Print WieIstDasGewicht = sMasse End Function
Sub GewichtHolen() 'Schreibt die Masse des Bauteils in die benutzerdefinierten Eigenschaften als Eigenschaft "Masse" 'Nur im Part: If Not ((ThisApplication.ActiveDocumentType = kPartDocumentObject) Or _ (ThisApplication.ActiveDocumentType = kAssemblyDocumentObject)) Then Exit Sub End If Dim oDoc As Inventor.Document Set oDoc = ThisApplication.ActiveDocument sMasse = WieIstDasGewicht(oDoc) 'Benutzerdefinierten Eintrag erzeugen 'Masse vorhanden? Dim bMasseDa As Boolean Dim oProp As Property bMasseDa = False For Each oProp In oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}") 'Benutzerdefiniert If oProp.Name = "Masse" Then bMasseDa = True Exit For End If Next 'Masse eintragen oder ändern If bMasseDa Then oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Masse").Value = sMasse Else oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Add sMasse, "Masse" End If
Set oApp = Nothing Set oDoc = Nothing Set oProp = Nothing Set oUOM = Nothing End Sub
Es wird also, wie die VBA'lern bekannt ist, das iProperty "Masse" erzeugt - oder upgedatet und das kann dann in der IDW rangezogen werden. Ich habe da das bekannte Programm noch etwas ergänzt um die Funktion, dass auch die Einheit variiert wird. Mir ging es etwas gegen den Strich, daß immer alles in kg angegeben wurde. Bei kleinen Teilen stand sonst immer 0,000 kg dort und bei großen Teilen machen vielleicht Tonnen einen Sinn. . ------------------ Gruß Lothar --------------------------------------------------- Während man es aufschiebt, verrinnt das Leben. Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hohenöcker Ehrenmitglied V.I.P. h.c. Ingenieur
Beiträge: 2386 Registriert: 07.12.2005 Inventor 2023 Ich mag beide Arten von Musik: Country und Western! S-Fanclub
|
erstellt am: 04. Apr. 2007 15:56 <-- editieren / zitieren --> Unities abgeben: Nur für Sodokan
|
Sodokan Mitglied Project Engineer
Beiträge: 25 Registriert: 27.03.2007
|
erstellt am: 17. Apr. 2007 10:24 <-- editieren / zitieren --> Unities abgeben:
Sorry für die späte Rückmeldung, aber ich war im Urlaub und da vermeide ich meist, mich an einen Rechner zu setzen. Lothar, vielen Dank erstmal für das Makro. Wenn ich das recht verstehe, kopiere ich das Makro in die idw. Im Schriftfeld frage ich dann das iProperty "Masse" ab. Frage: muß ich in den Vorlagen *.ipt und *.iam auch noch was ändern? Ich habs nicht so mit VB, deshalb meine Frage. Gruß Dieter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
S-Mortimer Mitglied CAD - Berater
Beiträge: 22 Registriert: 28.02.2007 AIP 11/2008, Win XP, Intel 2GHz DualCore, GeForce 1500fx, 2GB DDR, uralte Spacemaus
|
erstellt am: 17. Apr. 2007 10:54 <-- editieren / zitieren --> Unities abgeben: Nur für Sodokan
Hallo Dieter, unter Extras > Makro den Visual Basic Editor auf und das VBA-Projekt laden. Die Angaben werden in den Benutzerdefinierten Eigenschaften der iProperties eingetragen. Es ist nun möglich die gewünschten Daten durch eine Schriftfeldanpassung hinzuzufügen. Der Eintrag wird im Schriftfeld dem Text zugewiesen. Gruß Sebastian ------------------ Reden ist Schweigen und Silber ist Gold. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |