Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  Koordinaten von Flaeche exportieren

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:  Koordinaten von Flaeche exportieren (4722 mal gelesen)
nofigu
Mitglied
Doktorand & Ex-Entwicklungsingenieur (Dipl.-Ing.(FH))

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

Beiträge: 5
Registriert: 17.12.2014

MS Windows 7 Enterprise
Intel i7-3370 @3.40GHz-16GB
Inventor Professional 2015

erstellt am: 17. Dez. 2014 19:08    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


expample.PNG

 
Ich habe eine beliebige Oberflaeche in Inventor 2015 und brauche die Koordinaten dieser Oberflaeche, um diese in Matlab weiterzuverarbeiten. Sprich ich braeuchte eine Moeglichkeit die Flaeche in ein gleichmaessiges Gitter zu diskretisieren, um sie als z=f(x,y) NxM Matrix weiterverwenden zu koennen.

Ich habe schon versucht per iLogic eine Funktion zu schreiben, die beliebig viele Arbeitspunkte auf dieser Oberflaeche erstellt und dann den Abstand dieser Arbeitspunkte zu einer Ursprungsebene misst, leider bis jetzt erfolglos.

Gibt es denn eine Moeglichkeit xyz Koordinaten einer Oberflaeche zu exportieren?

Ich wurde die Oberflaechmatrix ja gern direkt in Matlab erzeugen, das gelingt auch, falls ich die Funktion kenne (z.B. f(x,y)=x^2+y^2), allerdings moechte ich einige unstetige Freiformflaechen untersuchen. Und dazu ist es eben einfacher die Geometrie mit Inventor als Solid oder Oberflaeche zu erzeugen und anschliessend zu diskretisieren. Jetzt weiss ich leider nur nicht wie ich aus dieser CAD-Oberflaeche eine Matrix erstellen kann?

Im Anhang ist ein Beispiel zu finden - der Verstaendlichkeit wegen. In diesem Beispiel wird die Beispielflaeche in eine 15x15 Matrix diskretisiert.

Ich hoffe meine Fragestellung ist verstaendlich, und jemand kann mir helfen.

Ich freue mich auf eure Antworten.

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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


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

Beiträge: 6051
Registriert: 16.09.2004

Inventor Prof. bis 2022

erstellt am: 18. Dez. 2014 09:30    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 nofigu 10 Unities + Antwort hilfreich

Hallo,

Als eine erste Idee: ich habe mal zu Testzwecken in IV eine Erhebungsfläche zwischen zwei Splines erstellt, diese nach AutoCAD (als .dwg) exportiert, die dort angekommene Surface mit Ursprung zerlegt. Blieben übrig die begrenzenden Konturen. Aus diesen Konturen mittels Kantob viele kleine 3DFlächen erzeugt (Dichte läßt sich steuern). Von diesen 3DFlächen kann man die Koordinaten der Eckpunkte abfragen und weiterverarbeiten.
Ob dieser Weg bei Dir funktionieren kann hängt gewiß auch von der Form der zu diskretisierenden Fläche ab. Und einiger Aufwand (LISP für das Abfragen der Eckpunktkoordinaten und deren Aufbereitung) muß natürlich auch noch reingesteckt werden.

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9780
Registriert: 01.12.2003

AutoCAD 2.5 - 2024,
Inventor AIP 4-2024.2 Windows 11
i7, 96 GB, SSD, Quadro P2200

erstellt am: 18. Dez. 2014 10: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 Nur für nofigu 10 Unities + Antwort hilfreich

Ungetestet -evt. Kann man den STL Export mit einem Texteditor leicht umarbeiten

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

[Diese Nachricht wurde von CAD-Huebner am 18. Dez. 2014 editiert.]

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

Michael Puschner
Moderator
Rentner




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

Beiträge: 13003
Registriert: 29.08.2003

Toshiba Encore mit MS Office

Ein Programm sollte nicht nur Hand und Fuß, sondern auch Herz und Hirn haben.
(Michael Anton)

erstellt am: 18. Dez. 2014 13:40    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 nofigu 10 Unities + Antwort hilfreich


141218-2DPunkteProjizieren.jpg


141218-3DFlaechenPunkte.jpg

 
Zitat:
Original erstellt von nofigu:
... Sprich ich braeuchte eine Moeglichkeit die Flaeche in ein gleichmaessiges Gitter zu diskretisieren, um sie als z=f(x,y) NxM Matrix weiterverwenden zu koennen. ...

Willkommen bei CAD.DE und AUGCE!       
Vier wichtige Links für den problemlosen Einstieg:
Richtig Fragen - Nettiquette - Suchfunktion - System-Info


Eine einfache Möglichkeit wäre diese:


  • Eine 2D-Skizze auf der xy-Ebene oder einer hierzu parallelen Ebene erstellen
  • Hierauf einen Punkt Rasterursprung skizzieren
  • Aus diesem Punkt mit der "Rechteckigen Anordnung" das gewünschte Raster erzeugen
  • Die 2D-Skizze schließen und eine 3D-Skizze erstellen
  • In der 3D-Skizze mit dem Befehl "Auf Fläche projizieren" Ausgabeoption "Entlang des Vektors projizieren" die Punkte in z-Richtung auf der Fläche abbilden (als Kurven werden hierbei auch Punkte akzeptiert, am besten die Fensterauswahl verwenden)
  • Die 3D-Skizze schließen
  • Das Makro von Igor (daywa1k3r) aus diesem Beitrag
    http://forum.cad.de/foren/ubb/Forum50/HTML/029433.shtml#000007
    verwenden, das die 3D-Punkte als CSV ausgibt
  • Achtung: Die Ausgabe erfolgt in der Einheit cm, obwohl mm als Text im Makro steht.
    Begründung und Korrektur siehe hier:
    http://forum.cad.de/foren/ubb/Forum50/HTML/029433.shtml#000013
    allerdings für oFace.Geometry.CenterPoint statt für die hier gebrauchten oSketchPoint3D.Geometry

Nun muss man nur noch aus den Werten die Matrix erstellen, z.B. in Excel, oder das Makro entsprechende anpassen.

Zitat:
Original erstellt von CAD-Huebner:
Ungetestet -evt. Kann man den STL Export mit einem Texteditor leicht umarbeiten

Das war auch mein erster Gedanke. Die Eckpunkte der Tesselierungsdreiecke ergeben aber nicht das geforderte gleichmaessige Gitter für die Matrix.

------------------
Michael Puschner
Autodesk Inventor Certified Expert
Autodesk Inventor Certified Professional
Mensch und Maschine Scholle GmbH

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

nofigu
Mitglied
Doktorand & Ex-Entwicklungsingenieur (Dipl.-Ing.(FH))

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

Beiträge: 5
Registriert: 17.12.2014

erstellt am: 18. Dez. 2014 13:59    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

Vielen Dank fuer all die schnellen Antworten!

Zitat:
Ungetestet -evt. Kann man den STL Export mit einem Texteditor leicht umarbeiten

Das habe ich schon versucht. Allerdings ist das Problem - wie von Michael erwaehnt - die Triangulierung.

Die Methode von Michael klingt gut und einfach. Ich werde das ganze gleich Mal ausprobieren. Das einzige Problem koennte die Feinheit des Gitters sein. Falls ich 500x500 Punkte braeuchte, koennte Inventor zu streiken beginnen :-)

Vielen Dank nochmals. Falls das ganze klappt, werde ich mich nochmals melden.

Gruesse aus Southampton,

nofigu

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

nofigu
Mitglied
Doktorand & Ex-Entwicklungsingenieur (Dipl.-Ing.(FH))

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

Beiträge: 5
Registriert: 17.12.2014

MS Windows 7 Enterprise
Intel i7-3370 @3.40GHz-16GB
Inventor Professional 2015

erstellt am: 19. Dez. 2014 15: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

So, das ganze funktioniert nun einwandfrei!

Das einzige "Problem" ist - wie ich schon vermutet hatte - die Rechenzeit. Bei 100x100 Punkten funktioniert das ganze gerade noch so. Mehr ist allerdings nicht drin. Vielleicht kann ich das ganze noch optimieren indem ich einen iLogic/vba code schreibe, der die Punkterstellung fuer mich uebernimmt, sodass Inventor die vielen Punkte garnicht erst anzeigen muss. Die Anzeige ist denke ich der Verursacher der langen Rechenzeit ...

Gruesse,

nofigu

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
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

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012 64Bi

erstellt am: 20. Dez. 2014 10: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 Nur für nofigu 10 Unities + Antwort hilfreich


ScanStrahlen.png


ScanHits.png


ScanKoordinaten.png

 
Zitat:
Original erstellt von nofigu:
...Vielleicht kann ich das ganze noch optimieren indem ich einen iLogic/vba code schreibe...

Das Makro sollte dem Zweck dienen und da es gut anpassbar ist kannst du es als Sandkasten benutzen:

Code:

' Ein Bauteil in die Baugruppe platzieren (auf positive Z Achse) und Makro starten.
' Das Bauteil wird auf die XY Ebene projiziert
' Auf der Projektion wird ein Raster (xCount x yCount) erstellt
' Die Strahlen werden von dem Raster in +Z Richtung (0, 0, 1) geschickt (optional Arbeitsachse erstellt)
' Wenn ein Strahl das Bauteil trifft wird ein Punkt erstellt (optional Arbeitspunkt)
' Die X, Y und Z Koordinaten sowie die Entfernung zur Baugruppen Ursprung werden gemerkt
' Die Resultate werden in "C:\Temp\ScanCoords.csv" gespeichert (csv Semikola separiert)
' Die Datei wird mit Standardanwendung geöffnet

' FX64 daywa1k3r, Igor Zupevc, 20.12.2014

Sub WriteScanCoordsToFile()
    Dim oAsm As AssemblyDocument
    Set oAsm = ThisApplication.ActiveDocument
   
    ' Sollte immer das erste Bauteil in der Baugurppe sein
    Dim oProbe As ComponentOccurrence
    Set oProbe = oAsm.ComponentDefinition.Occurrences.Item(1)
   
    ' Rastergröße 2 dimensional - falls x und y immer gleich sind kann das hier vereinfacht werden
    Dim xCount, yCount As Double
    xCount = 20
    yCount = 20
   
    ' Raster Offset in x und y Richtung
    Dim xOffset, yOffset As Double
    xOffset = (oProbe.RangeBox.MaxPoint.X - oProbe.RangeBox.MinPoint.X) / xCount
    yOffset = (oProbe.RangeBox.MaxPoint.Y - oProbe.RangeBox.MinPoint.Y) / yCount
   
    ' Verschiebe Vektor in x und y Richtung
    Dim xVector, yVector As Vector
    Set xVector = ThisApplication.TransientGeometry.CreateVector((oProbe.RangeBox.MaxPoint.X - oProbe.RangeBox.MinPoint.X) / xCount, 0, 0)
    Set yVector = ThisApplication.TransientGeometry.CreateVector(0, (oProbe.RangeBox.MaxPoint.Y - oProbe.RangeBox.MinPoint.Y) / yCount, 0)
   
    ' Strahl Ursprung - einer der Punkte auf dem Raster
    Dim vOrigin As Point
    Set vOrigin = oProbe.RangeBox.MinPoint
   
    ' Strahl Richtung - immer +Z - So gesehen immer senkrecht zur Scanebene
    Dim vDirection As UnitVector
    Set vDirection = ThisApplication.TransientGeometry.CreateVector(0, 0, 1).AsUnitVector
   
    ' Für Raytracing benötigten Objekte
    Dim oObjects As ObjectsEnumerator
    Dim oHits As ObjectsEnumerator
    Dim oHit As Point
    Dim sOut As String
    sOut = "X (mm);Y (mm);Z (mm);Distance (mm)" & vbCrLf
   
    Dim i, j As Integer
    ' Aus jedem Punkt im Raster ein Strahl in Richtun Bauteil schicken
    For i = 0 To xCount
        For j = 0 To yCount
            ' oAsm.ComponentDefinition.WorkAxes.AddFixed vOrigin, vDirection ' Debug Ray
            ' Finden von Objekten die der Strahl getroffen hat
            oAsm.ComponentDefinition.FindUsingRay vOrigin, vDirection, 0.01, oObjects, oHits, False
           
            ' Die Hits für die Ausgabe ablegen
            For Each oHit In oHits
                ' oAsm.ComponentDefinition.WorkPoints.AddFixed oHit ' Debug Point
                sOut = sOut & Round(oHit.X * 10, 4) & ";" _
                            & Round(oHit.Y * 10, 4) & ";" _
                            & Round(oHit.Z * 10, 4) & ";" _
                            & Round(oHit.DistanceTo(oAsm.ComponentDefinition.WorkPoints.Item(1).Point) * 10, 4) & vbCrLf
            Next
           
            ' Zum nächsten Y Punkt verschieben
            vOrigin.TranslateBy yVector
        Next
        ' Neue Reihe - Y zurücksetzen
        vOrigin.Y = oProbe.RangeBox.MinPoint.Y
       
        ' Zum nächsten X Punkt verschieben
        vOrigin.TranslateBy xVector
    Next
   
    ' Datei erstellen
    Dim sFilePath As String
    sFilePath = "C:\Temp\ScanCoords.csv"
   
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim oFile As Object
    Set oFile = fso.CreateTextFile(sFilePath)
   
    ' Ergebnise in die Datei schreiben
    oFile.WriteLine sOut
    oFile.Close
    Set fso = Nothing
    Set oFile = Nothing

    ' Datei mit Standardapplikation öffnen
    Dim oShell As Object
    Set oShell = CreateObject("Shell.Application")
    oShell.Open (sFilePath)
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

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)2024 CAD.de | Impressum | Datenschutz