Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  maximale Abmessungen (Bauraum) von Bauteil auslesen

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:  maximale Abmessungen (Bauraum) von Bauteil auslesen (2119 mal gelesen)
yamaha
Mitglied
Konstrukteur


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

Beiträge: 374
Registriert: 19.05.2004

Autocad/Inventor 2019, Windows 7 Pro 64Bit

erstellt am: 30. Apr. 2014 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

Hallo zusammen,

kann man irgendwie die maximalen Abmessungen
eines Bauteils auslesen oder ausrechnen.

Vielen Dank für eure Hilfe
Jörn

------------------
Gruß Jörn

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

RolandD
Mitglied



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

Beiträge: 533
Registriert: 07.01.2005

erstellt am: 30. Apr. 2014 17: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 Nur für yamaha 10 Unities + Antwort hilfreich

Hallo Jörn,

im US-Forum gibt es gerade einen ziemlich aktuellen Beitrag hier

Code:
'calculate length of part in x axis and place this dimension in length custom parameter
'length = Measure.ExtentsHeight
'MsgBox( length)

doc = ThisDoc.Document
def = doc.ComponentDefinition

'assume the part has only one surface body
sb = def.SurfaceBodies(1)

'rangebox
minPt = sb.RangeBox.MinPoint
maxPt = sb.RangeBox.MaxPoint

'calculate the range along X-Y-Z
'the unit of core API uses centimeter, so needs to convert it to unit of document

oUOM = doc.UnitsOfMeasure

' X is extent length:
X = Math.abs(minPt.X - maxPt.X)
length =  oUOM.ConvertUnits(X,"cm" ,oUOM.LengthUnits )

' Y is extent width:
Y = Math.abs(minPt.Y - maxPt.Y)
width =  oUOM.ConvertUnits(Y,"cm" ,oUOM.LengthUnits )
' Z is extent height:

Z = Math.abs(minPt.Z - maxPt.Z)
height =  oUOM.ConvertUnits(Z,"cm" ,oUOM.LengthUnits )


------------------
Gruß Roland

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: 01. Mai. 2014 06:42    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 yamaha 10 Unities + Antwort hilfreich

Hallo

Man sollte dabei die Einschränkungen der RangeBox nicht unerwähnt lassen. Die RangeBox garantiert nur nicht kleiner zu sein als das Bauteil. Sie kann aber größer sein. Somit wären die Abmessungen falsch. Sichtbare Arbeitselemente und Skizzen werden in die Rangebox mit einbezogen und können dadurch die Abmessungen verfälschen. Die RangeBox ist am Koordinatensystem ausgerichtet. Liegt das Bauteil, z.B. weil es über eine abgeleitete Komponenten erzeugt wurde, verdreht im Koordinatensystem, ermittelt die RangeBox auch nicht das was man vielleicht als Anwender erwartet.

------------------
MfG
Ralf

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

yamaha
Mitglied
Konstrukteur


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

Beiträge: 374
Registriert: 19.05.2004

Autocad/Inventor 2019, Windows 7 Pro 64Bit

erstellt am: 05. Mai. 2014 10:39    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 Roland,
vielen Dank für den Tip.
Hab den Code noch etwas angepaßt und bin direkt von der
ComponentDefinition zur Rangebox gegangen.
Für meinen anwendungsfall ist das OK.
=> Ralf, auch danke für deinen Hinweis.

Code:

        'Groesse des Models berechnen
        '=======================================================================================
        'calculate length of part in x axis and place this dimension in length custom parameter
        Dim objDef As Inventor.ComponentDefinition
        objDef = oDocAktuell.ComponentDefinition

        'rangebox
        Dim objMinPoint As Inventor.Point
        Dim objMaxPoint As Inventor.Point
        objMinPoint = objDef.RangeBox.MinPoint
        objMaxPoint = objDef.RangeBox.MaxPoint

        'calculate the range along X-Y-Z
        'the unit of core API uses centimeter, so needs to convert it to unit of document
        Dim objUnitsOfMeasure As Inventor.UnitsOfMeasure
        objUnitsOfMeasure = oDocAktuell.UnitsOfMeasure

        ' X is extent length:
        Dim dblWertX As Double
        dblWertX = Math.Abs(objMinPoint.X - objMaxPoint.X)
        Dim dbLaengeX As Double
        dbLaengeX = Math.Round(objUnitsOfMeasure.ConvertUnits(dblWertX, "cm", objUnitsOfMeasure.LengthUnits), 0)

        ' Y is extent width:
        Dim dblWertY As Double
        dblWertY = Math.Abs(objMinPoint.Y - objMaxPoint.Y)
        Dim dbLaengeY As Double
        dbLaengeY = Math.Round(objUnitsOfMeasure.ConvertUnits(dblWertY, "cm", objUnitsOfMeasure.LengthUnits), 0)

        ' Z is extent height:
        Dim dblWertZ As Double
        dblWertZ = Math.Abs(objMinPoint.Z - objMaxPoint.Z)
        Dim dbLaengeZ As Double
        dbLaengeZ = Math.Round(objUnitsOfMeasure.ConvertUnits(dblWertZ, "cm", objUnitsOfMeasure.LengthUnits), 0)

        LabelMaxModelX.Text = Format(dbLaengeX, "#,##0") & " mm"
        LabelMaxModelY.Text = Format(dbLaengeY, "#,##0") & " mm"
        LabelMaxModelZ.Text = Format(dbLaengeZ, "#,##0") & " mm"


10 Points for you.
And have an nice Day.

Gruss Jörn

------------------
Gruß Jörn

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

PaulSchuepbach
Mitglied
Programmierer



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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 12. Mai. 2014 14:43    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 yamaha 10 Unities + Antwort hilfreich

@Ralf und Jörn,

die Aussagen bez. RangeBox und Arbeitselementen treffen nur teilweise zu:

Die RangeBox der ComponentDefinition (wie in Jörn's Code) beinhalten auch alle Arbeitselemente. Das ist einfach zu prüfen, indem die RangeBox abgefragt und danach eine Arbeitsebene gösser gezogen wird - die RangeBox 'wächst' dann mit.

Die RangeBox im Code von Roland bezieht sich aber auf die ComponentDefinition.SurfaceBodies[1].RangeBox - also die Abmasse des reinen Körpers, was Jörn ja auch haben will.
Nur ein kleiner Schönheitsfehler: der RangeBox kommt dann aber nur für den 1. SurfaceBody - was machst Du bei einem Multi-Body Part ? Und was bei einem Flächen-Modell ?

...da musst nochmal ran, Jörn... 

Grüsse, Paul

------------------
Grüsse, Paul

Inventor-Programmierung
Online 3D-Ersatzteilkataloge - CAD Toolkit released...
Kostenmanagement mittels NLPP Analyse

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: 12. Mai. 2014 18:36    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 yamaha 10 Unities + Antwort hilfreich

Hallo

Stimmt, das es über den SurfaceBody geht hab ich schlicht überlesen. 
Aber in Jörn's Code trifft's wieder zu.
Ich werf's beim Thema RangeBox einfach gern dazwischen, da wir leidvoll erst nach ein paar Wochen drauf gekommen sind.
Ich hab mal einen Blog von Philippe Leefsma dazu gesehen, den man sich ansehen sollte.

------------------
MfG
Ralf

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