Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Oberseite von BoundaryPatch ermitteln

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:  Oberseite von BoundaryPatch ermitteln (482 mal gelesen)
DerBrain87
Mitglied
Mathematiker


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

Beiträge: 84
Registriert: 29.04.2015

Inventor 2021

erstellt am: 24. Sep. 2015 08:49    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 erstmal,
ich suche eine Möglichkeit bei einem BoundaryPatch (Umgrenzungsfläche) zu Ermitteln welche Seite "oben" ist.
Hintergrund hierfür ist: ich Erstelle diese Fläche vollautomatisch aus 2 Splines (Außenkante und Innenkante) und möchte mit der Fläche einen Körper abschneiden. Die Fläche selbst kann man sich als etwas entarteten Kreisring vorstellen, der ein Rohr kürzen soll. die x-Koordinaten der Fläche sind alle größer 0. Ebenso liegt keine Flächennormale parallel zur yz-Ebene.
Der Körper ist vorgeben, das Erstellen der Fläche funktioniert genauso wie das wegschneiden via TrimSolid. Logischerweiße muss Inventor bei TrimSolid wissen welche der beiden Seiten von der Fläche beibehalten bleiben soll und welche weg muss. Ich möchte immer den Teil des Körpers entfernen, welcher auf  der vom Ursprung abgewanten Seite des Ursprungs liegt. Scheinbar zufällig schneidet Inventor mir bei
Code:
Call oSplitFeatures.TrimSolid(oFlaeche, oKoerper, true)

mal die richtige und mal die falsche Seite des Teils weg.

Mein Problem nun:
Um die richtge Seite zu Ermitteln benötige ich eine Normale dieser Fläche. Durch die Gegebenheiten der Fläche kann ich ohne Ausnahme aus einer Flächennormale auf die Ausrichtung der Fläche schließen und somit dem TrimSplid-Befehl nun true oder false im 3. Parameter richtig übergeben. Leider habe ich keine Idee, wie ich an die Normalenvektoren der Fläche komme:-(

Ich hoffe ihr könnt mir helfen
Gruß DerBrain87

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: 24. Sep. 2015 09:20    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 DerBrain87 10 Unities + Antwort hilfreich

Hi, schau dir mal dieses Beispiel an:

Code:

Public Sub IsCylindricalFaceInterior()
    Dim oDoc As Document
    Set oDoc = ThisApplication.ActiveDocument
   
    If Not Typeof oDoc.SelectSet(1) Is Face Then
        MsgBox "A face must be selected."
        Exit Sub
    End If
   
    Dim oFace As Face
    Set oFace = oDoc.SelectSet(1)
   
    If Not oFace.SurfaceType = kCylinderSurface Then
        MsgBox "A cylindrical face must be selected."
        Exit Sub
    End If
   
    Dim oCylinder As Cylinder
    Set oCylinder = oFace.Geometry
   
    Dim params(1) As Double
    params(0) = 0.5
    params(1) = 0.5
   
    ' Get point on surface at param .5,.5
    Dim points(2) As Double
    Call oFace.Evaluator.GetPointAtParam(params, points)
   
    ' Create point object
    Dim oPoint As point
    Set oPoint = ThisApplication.TransientGeometry.CreatePoint(points(0), points(1), points(2))
       
    ' Get normal at this point
    Dim normals(2) As Double
    Call oFace.Evaluator.GetNormal(params, normals)
   
    ' Create normal vector object
    Dim oNormal As Vector
    Set oNormal = ThisApplication.TransientGeometry.CreateVector(normals(0), normals(1), normals(2))
   
    ' Scale vector by radius of the cylinder
    oNormal.ScaleBy oCylinder.Radius
   
    ' Find the sampler point on the normal by adding the
    ' scaled normal vector to the point at .5,.5 param.
    Dim oSamplePoint As point
    Set oSamplePoint = oPoint
   
    oSamplePoint.TranslateBy oNormal
   
    ' Check if the sample point lies on the cylinder axis.
    ' If it does, we have a hollow face.
  
    ' Create a line describing the cylinder axis
    Dim oAxisLine As Line
    Set oAxisLine = ThisApplication.TransientGeometry.CreateLine _
        (oCylinder.BasePoint, oCylinder.AxisVector.AsVector)
       
    'Create a line parallel to the axis passing thru the sample point.
    Dim oSampleLine As Line
    Set oSampleLine = ThisApplication.TransientGeometry.CreateLine _
        (oSamplePoint, oCylinder.AxisVector.AsVector)
       
    If oSampleLine.IsColinearTo(oAxisLine) Then
        MsgBox "Interior face."
    Else
        MsgBox "Exterior face."
    End If
End Sub


------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools
FX64 LambdaSpect - Lichtsimulation mit Autodesk Inventor

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



E-Planer (m/w/d)
Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in den Technologiebereichen ...
Anzeige ansehenElektrotechnik, Elektronik
DerBrain87
Mitglied
Mathematiker


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

Beiträge: 84
Registriert: 29.04.2015

Inventor 2021

erstellt am: 24. Sep. 2015 09: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

oFace.Evaluator.GetNormal ist genau das was ich gesucht habe.
Irgendwie bin ich nicht auf die Idee gekommen, dass nicht nur Kurven sondern auch Fläche einen Evaluator haben könnten.
Danke!

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