Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Punkt auf 3D-Fläche

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:  Punkt auf 3D-Fläche (1516 mal gelesen)
Frank88
Mitglied



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

Beiträge: 153
Registriert: 11.10.2004

AutoCAD 2018, Civil3D

erstellt am: 15. Jun. 2013 12: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

Hallo,

ich vermute, meine Frage ist hier schon mal aufgetreten, aber die Forensuche erbringt -wahrscheinlich mangels treffender Stichworte- keine Ergebnisse.
Ich möchte von einem Punkt innerhlb einer 3D-Fläche (2D-Koordinaten bekannt) die Höhe wissen. Wie gehe ich dazu vor?

Grüsse,
Frank

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

Siegfried Rief
Mitglied
Lehrer, Architekt


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

Beiträge: 249
Registriert: 16.11.2011

ACAD 2023, imos iX2017 im Novellnetz
Fachschule für Holztechnik Stuttgart

erstellt am: 15. Jun. 2013 15:45    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 Frank88 10 Unities + Antwort hilfreich

gebastelt:

an der gesuchten x/Y-Stelle einen Zylinder erstellen, der die Fläche schneidet. Den Zylinder mit der Fläche kappen und diesen abmessen Zentrum/Zentrum.

Gruß

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

Frank88
Mitglied



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

Beiträge: 153
Registriert: 11.10.2004

AutoCAD 2018, Civil3D

erstellt am: 15. Jun. 2013 17:04    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 Siegfried,

super, Dankeschön! Die gebastelten Lösungen sind die besten, weil sie immer funktionieren. In jeder Version, unabhängig von installierten Tools etc.
Ich hatte das schon mit einer Linie probiert, da geht's aber nicht. Nur mit der Funktion Volumenkörper - Kappen.

Grüsse, Frank

[Diese Nachricht wurde von Frank88 am 15. Jun. 2013 editiert.]

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

rexxitall
Mitglied
Dipl. -Ing. Bau


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

Beiträge: 266
Registriert: 07.06.2013

erstellt am: 15. Jun. 2013 17:47    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 Frank88 10 Unities + Antwort hilfreich

Hi
gebastelt: jau !!! - coole loesung waer ich so fix nicht drauf gekommen.

Wenn man mehr als ein paar dieser probleme hat.
google:
"vb6 area line intersection"
und
"vb6 point inside polygon".
Ich hab ein aehnlich gelagertes problem nur hab ich ca. 4000 von den flaechen. (ist bereits per vba geloest (inclusive speed problems))
Mit einer routine point in polygon ermitteln welche 3 punkte relavant sind
und dann eine routine drauf loslassen welche per vektorgeometrie den schnittpunkt einer geraden mit einer flaeche bestimmt.
Anbei die hauptroutinen als startpunkt.
Wie man aus ner 3dface polygonpunkte ermittelt steht in der vba hilfe

LG aus finnland

based on
http://alienryderflex.com/polygon/ - cool !

and a smallbasic (sourceforge !!!) demo/sample routine.

public type point3d
x as double
y as double
z as double

end type

'  Globals which should be set before calling this function:

' The function provides the following return codes
' point is not in polygon    : 0
' point is on polygonpoint    : 1
' point is on polygon segment : 2
' point is inside polyon      : 3

'  Note that division by zero is avoided because the division is protected
'  by the "if" clause which surrounds it.
Function POINT_IN_POLYGON_LINE_ALGORITHM(POLY() As POINT3D, P As POINT3D) As Long
    POINT_IN_POLYGON_LINE_ALGORITHM = 0
    Exit Function
    'from http://alienryderflex.com/polygon/
    Dim i As Integer
    Dim j As Integer
    Dim BOXMIN As POINT3D
    Dim BOXMAX As POINT3D
    Dim oddNodes As Boolean
    oddNodes = False
    POINT_IN_POLYGON_LINE_ALGORITHM = False
    Dim Det As Double
    j = UBound(POLY)
    For i = 0 To UBound(POLY)
        'are we directly on a polypoint ? (optional you could point point distace (Phytagoras) to make it more robust)
        If P.x = POLY(i).x And P.y = POLY(i).y Then
            POINT_IN_POLYGON_LINE_ALGORITHM = 1
            Exit Function
        End If
        If POLY(i).x <> POLY(j).x Or POLY(i).y <> POLY(j).y Then    'avoid error by duplicated polypoints
            'are we on a line segment  ?
            Det = (POLY(j).x - POLY(i).x) * (P.y - POLY(i).y) - (P.x - POLY(i).x) * (POLY(j).y - POLY(i).y)
            If Abs(Det) <= EPSILON Then

                If POLY(i).x < POLY(j).x Then
                    BOXMIN.x = POLY(i).x
                    BOXMAX.x = POLY(j).x
                Else
                    BOXMIN.x = POLY(j).x
                    BOXMAX.x = POLY(i).x
                End If

                If POLY(i).y < POLY(j).y Then
                    BOXMIN.y = POLY(j).y
                    BOXMAX.y = POLY(i).y
                Else
                    BOXMIN.y = POLY(j).y
                    BOXMAX.y = POLY(i).y
                End If

                If P.x >= BOXMIN.x And P.x <= BOXMAX.x And P.y >= BOXMIN.y And P.y <= BOXMAX.y Then
                    POINT_IN_POLYGON_LINE_ALGORITHM = 2
                    Exit Function
                End If
            End If
            'are we inside ?
            If ((POLY(i).y < P.y And POLY(j).y >= P.y Or POLY(j).y < P.y And POLY(i).y >= P.y) And (POLY(i).x <= P.x Or POLY(j).x <= P.x)) Then
                If (POLY(i).x + (P.y - POLY(i).y) / (POLY(j).y - POLY(i).y) * (POLY(j).x - POLY(i).x) < P.x) Then oddNodes = Not (oddNodes)
            End If
        End If
        j = i
    Next
    If oddNodes = True Then POINT_IN_POLYGON_LINE_ALGORITHM = 3
End Function

Sub intersect_line_plane(a As POINT3D, b As POINT3D, c As POINT3D, d As POINT3D, E As POINT3D, r As POINT3D)
'A-C = POINT on plane
'D-E = POINTs of line
'R = INTERSECTIONPOINT

'  Debug.Print "START INTERSECTION"
    Dim ED As POINT3D, BA As POINT3D, CA As POINT3D
    Dim MA, MB, mc, md, DEN, u As Double
    'INIT:
    'GERADE

    ED.x = E.x - d.x
    ED.y = E.y - d.y
    ED.z = E.z - d.z
    'FLAECHE
    BA.x = b.x - a.x
    BA.y = b.y - a.y
    BA.z = b.z - a.z

    CA.x = c.x - a.x
    CA.y = c.y - a.y
    CA.z = c.z - a.z
    'Inverse matritze)

    MA = BA.y * CA.z - BA.z * CA.y
    MB = BA.z * CA.x - BA.x * CA.z
    mc = BA.x * CA.y - BA.y * CA.x
    md = -(MA * a.x + MB * a.y + mc * a.z)
    DEN = (MA * ED.x + MB * ED.y + mc * ED.z)
    If DEN <> 0 Then
        u = -(MA * d.x + MB * d.y + mc * d.z + md) / DEN
    Else
        u = -(MA * d.x + MB * d.y + mc * d.z + md)
    End If
    'Rückeinsetzen = Schnittpunkt:
    r.x = d.x + u * ED.x
    r.y = d.y + u * ED.y
    r.z = d.z + u * ED.z
    ' Debug.Print "END INTERSECTION"
End Sub

------------------
Wer es nicht versucht, hat schon verlorn 
Und bei 3 Typos gibts den vierten gratis !

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

Frank88
Mitglied



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

Beiträge: 153
Registriert: 11.10.2004

AutoCAD 2018, Civil3D

erstellt am: 16. Jun. 2013 15:55    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,

tja, logisch, dass man dieses Problem nicht nur einmal hat...
So auf die Schnelle zum Weitermachen war di Bastellösung super.
Da ich aber derzeit nur an der Spitze eines Eisberges kratze, ist was automatisiertes schon besser. Eigentlich bin ich eher der Lispler aber VBA ist auch kein Problem.
Danke auch Dir.

Grüsse,
Frank

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

rexxitall
Mitglied
Dipl. -Ing. Bau


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

Beiträge: 266
Registriert: 07.06.2013

erstellt am: 19. Jun. 2013 23:26    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 Frank88 10 Unities + Antwort hilfreich

  Kein Thema   ! Kiitos = Danke !!!
Und wenn du den eisberg mal ausgehoben hast - hast die formeln 
------------------
Wer es nicht versucht, hat schon verlorn  
Und bei 3 Typos gibts den vierten gratis !

[Diese Nachricht wurde von rexxitall am 19. Jun. 2013 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