Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  UnitsOfMeasure?

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:  UnitsOfMeasure? (1107 mal gelesen)
Melanie
Mitglied



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

Beiträge: 30
Registriert: 14.10.2002

erstellt am: 12. Sep. 2003 11:09    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 Probleme beim Auslesen der Blechdicke. Die Einheit stimmt in Inventor (cm) nicht überein mit der ausgelesenen Einheit (mm).
Kann mir da jemand weiter helfen? Habe auch den Code mitgeliefert. Der Pfeil markiert die Stelle, wo ich das Problem entdeckt habe.


Code:

Public Function GetSheetMetalThickness() As Double
GetSheetMetalThickness = 0
On Error GoTo ERRORHANDLER
    If (oInventor Is Nothing) Then
      Exit Function
    End If
    ' Make sure the active document is a part document
    If Not (oInventor.ActiveDocument.Type = kPartDocumentObject) Then
      Exit Function
    End If
    ' Set a reference to the sheet metal document.
    Dim oPartDoc As PartDocument
    Set oPartDoc = oInventor.ActiveDocument
    ' Make sure the document is a sheet metal document.
    If oPartDoc.SubType <> "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then
        SetSheetMetalThickness = Value
        Exit Function
    End If
    ' Get the sheet metal component definition.  Because this is a part document whose
    ' sub type is sheet metal, the document will return a SheetMetalComponentDefinition
    ' instead of a PartComponentDefinition.
    Dim oSheetMetalCompDef As SheetMetalComponentDefinition
    Set oSheetMetalCompDef = oPartDoc.ComponentDefinition
    ' Get a reference to the parameter controlling the thickness.  You can't always
    ' rely on the name because the name will change in different languages and the user
    ' can edit the name in the Parameters dialog.
    Dim oThicknessParam As Parameter
    Set oThicknessParam = oSheetMetalCompDef.ActiveSheetMetalStyle.Thickness
    ' get the value of the parameter.
    Dim UnitsOfMeasure As UnitsOfMeasure
    Set UnitsOfMeasure = oPartDoc.UnitsOfMeasure
    Dim ValueStr As String
        ' Display the Name
    Debug.Print " Name:" & oThicknessParam.Name
        ' Display the Value
    Debug.Print "  Value: " & oThicknessParam.Value
        ' Display the units
   
---> Debug.Print "  Units: " & oThicknessParam.Units ' Falsch!
   
    ValueStr = oThicknessParam.Value & " " & oThicknessParam.Units
    GetSheetMetalThickness = UnitsOfMeasure.GetValueFromExpression(ValueStr, kMillimeterLengthUnits)
    Exit Function
ERRORHANDLER:
    Err.Clear
    GetSheetMetalThickness = 0
End Function


gruß Melanie

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 12. Sep. 2003 11:33    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 Melanie 10 Unities + Antwort hilfreich

Hi,

naja, er rechnet beim Blech wahrscheinlich in "mm". Die Eigenschaft Units ist aber Read/Write, so kannst du sie auf "cm" setzen, falls du ein Problem damit hast.

------------------
Grüße daywa1k3r

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

Melanie
Mitglied



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

Beiträge: 30
Registriert: 14.10.2002

erstellt am: 12. Sep. 2003 14:00    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

hi daywa1k3r,

Fehler gefunden! Es klappt, falls es dich interessiert hier die Lösung:

[Code]
Public Function GetSheetMetalThickness(ByVal oDocument As Variant) As String
GetSheetMetalThickness = ""
On Error GoTo ERRORHANDLER
    If (oDocument Is Nothing) Then
      Exit Function
    End If
    ' Set a reference to the sheet metal document.
    Dim oPartDoc As PartDocument
    Set oPartDoc = oDocument
    ' Make sure the document is a sheet metal document.
    If oPartDoc.SubType <> "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then
        Exit Function
    End If
    ' Get the sheet metal component definition.  Because this is a part document whose
    ' sub type is sheet metal, the document will return a SheetMetalComponentDefinition
    ' instead of a PartComponentDefinition.
    Dim oSheetMetalCompDef As SheetMetalComponentDefinition
    Set oSheetMetalCompDef = oPartDoc.ComponentDefinition
    ' Get a reference to the parameter controlling the thickness.  You can't always
    ' rely on the name because the name will change in different languages and the user
    ' can edit the name in the Parameters dialog.
    Dim oThicknessParam As Parameter
    Set oThicknessParam = oSheetMetalCompDef.ActiveSheetMetalStyle.Thickness
    ' get the value of the parameter.
    Dim UnitsOfMeasure As UnitsOfMeasure
    Set UnitsOfMeasure = oPartDoc.UnitsOfMeasure
    Dim ValueStr As String
        ' Display the Name
    Debug.Print " Name:" & oThicknessParam.Name
        ' Display the Value
    Debug.Print "  Value: " & oThicknessParam.Value
        ' Display the units
    ' Debug.Print "  Units: " & oThicknessParam.Units ' Falsch!
    Debug.Print "  Units: " & UnitsOfMeasure.GetStringFromType(kDatabaseLengthUnits)
   
    ValueStr = oThicknessParam.Value & " " & UnitsOfMeasure.GetStringFromType(kDatabaseLengthUnits)
    GetSheetMetalThickness = UnitsOfMeasure.GetStringFromValue(oThicknessParam.Value, kMillimeterLengthUnits)
    Exit Function
ERRORHANDLER:
    Debug.Print Err.Description
    Err.Clear
    GetSheetMetalThickness = ""
End Function

[\Code]

schönes Wochenende
Melanie

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