Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Abstand messen bei importierten Bauteil

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:  Abstand messen bei importierten Bauteil (1067 mal gelesen)
Cookiie
Mitglied



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

Beiträge: 32
Registriert: 20.06.2005

erstellt am: 19. Jul. 2005 16:35    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 Leute,

ich hab ein kleines Problem bei dem ich momentan nicht weiterkomme.
Ich bekomme eine IGES oder STEP-Datei, die öffne ich im Inventor. Dann brauche ich die Höhe des Bauteils. Im Inventor gehe ich einfach auf "Abstand messen" klicke ober und unterseite des Bauteils an und habe meine Höhe angezeigt.
Aber wie bekomme ich das nun per API oder VBA hin?
Die Hilfe hat mir da bis jetzt nicht helfen können, werd da aber morgen noch weitersuchen.
Ich hoffe einer hat da ne Idee oder sogar schon eine Lösung parat.

Gruß Cookiie

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

PaulSchuepbach
Moderator
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: 19. Jul. 2005 20: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 Cookiie 10 Unities + Antwort hilfreich

Hallo Michael,

wenn Dein Part sauber nach X, Y und Z ausgerichtet reinkommt, dann kannst Du mit 'RangeBox' finden, was Du sucht:

Private Sub getBoundingBox()
 
  Dim oApp As Inventor.Application
  Set oApp = ThisApplication
 
  Dim oDoc As PartDocument
  Set oDoc = oApp.ActiveDocument
 
  Dim oUOM As UnitsOfMeasure
  Set oUOM = oDoc.UnitsOfMeasure
 
  Dim oBody As SurfaceBody
  Set oBody = oDoc.ComponentDefinition.SurfaceBodies(1)
 
  Debug.Print oUOM.GetStringFromValue(oBody.RangeBox.MinPoint.X, oUOM.LengthUnits)
  Debug.Print oUOM.GetStringFromValue(oBody.RangeBox.MinPoint.Y, oUOM.LengthUnits)
  Debug.Print oUOM.GetStringFromValue(oBody.RangeBox.MinPoint.Z, oUOM.LengthUnits)
 
  Debug.Print oUOM.GetStringFromValue(oBody.RangeBox.MaxPoint.X, oUOM.LengthUnits)
  Debug.Print oUOM.GetStringFromValue(oBody.RangeBox.MaxPoint.Y, oUOM.LengthUnits)
  Debug.Print oUOM.GetStringFromValue(oBody.RangeBox.MaxPoint.Z, oUOM.LengthUnits)
 
End Sub


Jetzt braucst Du nur noch die beiden Z-Werte miteinander zu verrechnen und schon hast Du hie Bauteilhöhe.


Grüsse,

Paul

www.morecam.ch/cad.htm

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

Cookiie
Mitglied



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

Beiträge: 32
Registriert: 20.06.2005

erstellt am: 20. Jul. 2005 09:21    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 Paul,

jetzt muß ich das nur noch in meinen Programmcode integrieren.
Einzeln klappts ja schon, nur hab ich ne Baugruppe, da zickt er noch etwas rum, wegen ungleichen Datentyp, aber das bekomm ich auch noch hin.
Aber trotzdem vielen Dank, das ist ein sehr guter Ansatz mit ich gut arbeiten kann.

Gruß Michael

Edit:
Problem gelöst, mußte bei mir nur noch eine Zeile hinzufügen, der Rest war schon so vorhanden, weil ich das Bauteil vorher schon setze und die Objekte deswegen schon vorhanden waren und ich direkt drauf zugreifen kann.

Code:

    Dim oLeiterplatte As AssemblyComponentDefinition
    Set oLeiterplatte = ThisApplication.ActiveDocument.ComponentDefinition
    Dim oLPTG As TransientGeometry
    Set oLPTG = ThisApplication.TransientGeometry
    Dim oLPMatrix As Matrix
    Set oLPMatrix = oLPTG.CreateMatrix
    Call oLPMatrix.SetTranslation(oLPTG.CreateVector(0, 0, 0))
    Dim oLPOcc As ComponentOccurrence
    Set oLPOcc = oLeiterplatte.Occurrences.Add(projpfad & "\3DModelle\lp\" & LPdatei, oLPMatrix)
    oLPOcc.Name = LPname
   
    'misst die Dicke der Leiterplatte
    LPDicke = oLPOcc.RangeBox.MaxPoint.z - oLPOcc.RangeBox.MinPoint.z <-- neue Zeile

[Diese Nachricht wurde von Cookiie am 20. Jul. 2005 editiert.]

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