can you please paste code.. I need help in with minimum distance logic.
Is there anyway that we can get min distance in X,Y and Z directions??
thanks in Advance.
Create two workpoints in your part "P1" and "P2".
Then the distance between these points can be calculated using MinimumDistance method.
Try this iLogic rule:
D = Measure.MinimumDistance("P1", "P2")
In assembly you may use this method to get the minimal distance between two occurrences.
See Inventor API Help for MeasureTools object description.
Creation of pointts will disturb the geometry and structure of the modeled part.
I am looking to get minimum distance from face to workpoint.
please find the attachment, can see what i am talking about.
Much appriciated for solution.
In my previous post I used workpoints only as one possible variant of measured objects.
MeasureTools.GetMinimumDistance method works with many entity types:
Part Face, Edge, Vertex, work features, 2d and 3d sketch entities Assembly FaceProxy, EdgeProxy, VertexProxy, work features and their proxies, 2d and 3d sketch entities and their proxies, ComponentOccurrences and their proxies Drawing DrawingViewCurve, GeometryIntent, 2d sketch entities.
See MeasureTools object detailed description in Inventor API Help.
You need to get the reference to the desired Face to be able to measure the distance to the workpoint.
Which method do you use?
In the following VBA sample I get this reference from the first element in the active assembly SelectSet object.
The name of component (BOX) and the name of workpoint (P1) are hardcoded.
Change them to appropriate values.
Important note: in assembly context SelectSet always returns proxy objects.
Private Sub MinDistance_1() Dim oAssyDoc As AssemblyDocument Set oAssyDoc = ThisApplication.ActiveDocument Dim oAssyDef As AssemblyComponentDefinition Set oAssyDef = oAssyDoc.ComponentDefinition '1) get the reference to the workpoint "P1" ' in the component "BOX" Dim oOcc As ComponentOccurrence Set oOcc = oAssyDef.Occurrences.ItemByName("BOX") Dim oDef As PartComponentDefinition Set oDef = oOcc.Definition Dim oWP As WorkPoint Set oWP = oDef.WorkPoints.Item("P1") 'create work point proxy object Dim oWPproxy As WorkPointProxy Call oOcc.CreateGeometryProxy(oWP, oWPproxy) '2) get the reference to the selected face Dim oSSet As SelectSet Set oSSet = oAssyDoc.SelectSet If oSSet.Count = 0 Then MsgBox "Select some face" Exit Sub End If Dim oObj As Object Set oObj = oSSet.Item(1) If Not (TypeOf oObj Is FaceProxy) Then MsgBox "Select some face" Exit Sub End If Dim oFaceProxy As FaceProxy Set oFaceProxy = oObj '3) Measurements Dim oMeasureTools As MeasureTools Set oMeasureTools = ThisApplication.MeasureTools Dim D As Double ' distance (cm) D = oMeasureTools.GetMinimumDistance(oFaceProxy, oWPproxy) MsgBox ("D, cm = " & FormatNumber(D, 3)) End Sub 'MinDistance_1
Log into access your profile, ask and answer questions, share ideas and more. Haven't signed up yet? Register