| | | 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
Beiträge: 32 Registriert: 20.06.2005
|
erstellt am: 19. Jul. 2005 16:35 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 19. Jul. 2005 20:33 <-- editieren / zitieren --> Unities abgeben: Nur für Cookiie
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
Beiträge: 32 Registriert: 20.06.2005
|
erstellt am: 20. Jul. 2005 09:21 <-- editieren / zitieren --> Unities abgeben:
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 >>)
|