Punkte (bzw. Koordinaten) aus Tabelle importieren

In diesem Forum Fragen und Diskussionen in Deutsch
Forum rules
Foren-Regeln und hilfreiche Informationen

WICHTIG: Bitte zuerst lesen, bevor Sie posten
markus
Posts: 8
Joined: Mon Oct 12, 2015 3:14 pm

Punkte (bzw. Koordinaten) aus Tabelle importieren

Postby markus » Mon Oct 12, 2015 3:51 pm

Liebe FreeCAD community,

Ich möchte Punkte (bzw. Koordinaten) aus einer Excel Tabelle importieren.

P1 = (x;y;z)
P2 = (x;y;z)
P3 = (x;y;z)
:
:
:
usw....

natürlich könnte ich jetzt jeden Punkt einzeln konstruieren, was bei einelnen Punkten ja auch nicht sonderlich aufwändig ist.
Wenn aber viele Punkte definiert werden müssen, ist das doch nur mit sehr großem Zeitaufwand möglich.

Bevor jetzt die Frage aufkommt, weshalb und wofür, möchte ich euch kurz aufklären.

Ich bin im Garten- und Landschaftsbau tätig, und errichte von Zeit zu Zeit auch kleinere Parkanlagen.
Ein Ziel dabei ist immer, die örtlichen Gegebenheiten zu nutzen.
So halten sich die Baggerarbeiten für die Geländemodellierung und somit auch die Kosten halbwegs in Grenzen.

Bei der Vermessung des Geländes werden die Messwerte ohnehin in eine Tabelle übertragen.
Nun könnte man die Tabelle so gestalten, bzw. formatieren, dass ich mittels FreeCAD eine Art digitales Geländemodell erstellen kann.

Vielen Dank schon mal im Voraus,

markus
User avatar
r-frank
Posts: 2181
Joined: Thu Jan 24, 2013 6:26 pm
Location: Möckmühl, Germany
Contact:

Re: Punkte (bzw. Koordinaten) aus Tabelle importieren

Postby r-frank » Mon Oct 12, 2015 5:38 pm

Hallo Markus.

Willkommen bei FreeCAD und im Forum.

Am schnellsten geht es vermutlich mit der Points-Workbench [Hab gerade entdeckt, dass es in der Wiki NULL Info darüber gibt ...].

In der Points Workbench kannst Du eine ASCII-Datei (z.B. mit dem Texteditor von Windows erstellt, Endung ".asc") einlesen, in der
Punkte mit 3 Koordinaten per Leerstelle getrennt und mit Punkt anstelle Komma aufgelistet sind.

Also Beispiel ...

So sieht Deine "Point_Cloud.asc"-Datei aus:

Code: Select all

4.3 -9.4 15.3
4.3 -9.4 25.3
4.3 -9.4 35.3
4.3 -9.4 45.3
4.3 -9.4 55.3
und nach Import (1. Icon links) gibt es folgendes Ergebnis:
Point_Cloud.jpg
Point_Cloud.jpg (313.42 KiB) Viewed 7280 times

In der Baum-Ansicht hast Du Dein Point-Cloud-Objekt.
Und in der Mitte des Bildschirmes die fünf Punkte (weiß und SEHR klein ...).
Du könntest jetzt z.B. mit der Draft-Workbench die Punkte per B-Spline verbinden und anschließend
dann mit Leitkurven sweepen oder Ähnliches.

Hoffe, das hilft Dir weiter.
[Und ich schau mal, dass ich das in der Wiki schon mal auf englisch hinterlege ...]

Gruß
Roland
Deutsche FreeCAD Tutorials auf Youtube
My GrabCAD FreeCAD-Projects
FreeCAD lessons for beginners in english

Native german speaker - so apologies for my english, no offense intended :)
markus
Posts: 8
Joined: Mon Oct 12, 2015 3:14 pm

Re: Punkte (bzw. Koordinaten) aus Tabelle importieren

Postby markus » Thu Oct 15, 2015 10:43 am

Erst mal vielen Dank für die schnelle Antwort.
Ich hab da allerdings noch ein Problem.
Ich nutze kein Windows, sondern Ubuntu 14.04.
Und der Texteditor (gedit) unter Ubuntu kann nicht im ".asc"-Format speichern.
wmayer
Site Admin
Posts: 16666
Joined: Thu Feb 19, 2009 10:32 am

Re: Punkte (bzw. Koordinaten) aus Tabelle importieren

Postby wmayer » Thu Oct 15, 2015 10:48 am

Und der Texteditor (gedit) unter Ubuntu kann nicht im ".asc"-Format speichern.
Das .asc-Format ist eine reine Textdatei. Also speicherst Du zunächst als datei.txt und änderst dann die Endung von Hand auf .asc.
User avatar
bernd
Posts: 11012
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: Punkte (bzw. Koordinaten) aus Tabelle importieren

Postby bernd » Thu Oct 15, 2015 11:32 am

r-frank wrote:... In der Baum-Ansicht hast Du Dein Point-Cloud-Objekt.
Und in der Mitte des Bildschirmes die fünf Punkte (weiß und SEHR klein ...).
Du könntest jetzt z.B. mit der Draft-Workbench die Punkte per B-Spline verbinden und anschließend
dann mit Leitkurven sweepen oder Ähnliches.
Kennt jemand eine Möglichkeit aus so einer Punktwolke ein Oberflächennetz zu erstellen? Daraus liesse sich ja mit den in FreeCAD vorhandenen Tools ein Geländekörper erstellen.

Hab auch schon mit digitalen Geländemodellen in FreeCAD gearbeitet. Bisher habe ich den Geländekörper aber immer mit unserem kommerziellen CAD erstellt und dann als Solid nach FreeCAD importiert.

@markus:
Falls die Punkte vom Vermesser als Tabellenkalkulation kommen kannst du auch direkt eine Textdatei aus Excel oder LibreOffice exportieren. Da kannst du die Formatierung selbst bestimmen und auf die Importfunktion der PointsWB anpassen.
User avatar
microelly2
Posts: 4690
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Punkte (bzw. Koordinaten) aus Tabelle importieren

Postby microelly2 » Thu Oct 15, 2015 2:27 pm

bernd wrote:Kennt jemand eine Möglichkeit aus so einer Punktwolke ein Oberflächennetz zu erstellen?
Dauert zwar ein bischen,aber ist leicht zu programmieren
Punkte auf die xy-Ebene abbilden
Alle Dreiecke bilden und die flächenkleinsten suchen
wmayer
Site Admin
Posts: 16666
Joined: Thu Feb 19, 2009 10:32 am

Re: Punkte (bzw. Koordinaten) aus Tabelle importieren

Postby wmayer » Thu Oct 15, 2015 3:32 pm

Es kommt vor allem darauf an, wie die 3D-Punkte vorliegen. Kommen die Punkte z.B. von einem 3D-Sensor, dann liegen die Punkte in einer Gitterstruktur vor. Die x- und y-Werte liegen dabei auf dem Gitter und die z-Koordinate gibt die Tiefeninformation an. Die Triangulierung dafür ist relativ einfach.

Liegen die Punkte in der Form vor, dass sie ein 3D-Objekt komplett beschreiben, kommt ein 3D-Triangulierer zum Einsatz. Die Bibliothek pointclouds bietet einen einfachen 3D-Triangulierer an, der auch in FreeCAD schon eingebaut, aber etwas versteckt ist. Dafür muss man pcl vorher installieren.

Code: Select all

import Mesh
import ReverseEngineering as Reen
points = ...
mesh = Reen.trianglate(points)
Mesh.show(mesh)
Die Qualität des Ausgabenetzes lässt aber oft zu wünschen übrig.
markus
Posts: 8
Joined: Mon Oct 12, 2015 3:14 pm

Re: Punkte (bzw. Koordinaten) aus Tabelle importieren

Postby markus » Wed Oct 21, 2015 8:33 am

Ich bin mittlerweile einen kleinen Schritt weiter.
Wenn ich die oben genannten Punkte kopiere und im Editor (gedit) einfüge,
kann ich das ganze auch im ".txt" - Format speichern.
Auch das ändern von Hand zum ".asc" - Format funktioniert problemlos.

Wenn ich jetzt versuche die "Punkte.asc" - Datei in FreeCAD zu importieren,
erscheinen allerdings nicht, wie eigentlich erwartet, fünf Punkte, sondern lediglich ein einziger Punkt.

Was mache ich falsch?
User avatar
r-frank
Posts: 2181
Joined: Thu Jan 24, 2013 6:26 pm
Location: Möckmühl, Germany
Contact:

Re: Punkte (bzw. Koordinaten) aus Tabelle importieren

Postby r-frank » Wed Oct 21, 2015 8:58 am

Hallo Markus.

Beim Erstellen eines neuen Dokumentes in FreeCAD ist die Ansicht "Oben" eingestellt.
Da sich die Punkte nur in den Z-Koordinaten unterscheiden erscheint da zuerst nur ein Punkt.

Wechsle mal auf axometrische Ansicht ...

Gruß
Roland
Deutsche FreeCAD Tutorials auf Youtube
My GrabCAD FreeCAD-Projects
FreeCAD lessons for beginners in english

Native german speaker - so apologies for my english, no offense intended :)
User avatar
bernd
Posts: 11012
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: Punkte (bzw. Koordinaten) aus Tabelle importieren

Postby bernd » Wed Oct 21, 2015 9:02 am

markus wrote:...Wenn ich jetzt versuche die "Punkte.asc" - Datei in FreeCAD zu importieren,
erscheinen allerdings nicht, wie eigentlich erwartet, fünf Punkte, sondern lediglich ein einziger Punkt....
Deine *.asc muss genau folgendes Format haben. Drei Punktkoordinaten mit leerzeichen getrennt.
Anbei eine FreeCAD datei und eine punkt datei. Damit kannst du testen. Deine datei sollte genauso aussehen. Lade doch mal eine Deiner Beispielpunktdateien hoch, dann finden wir den Fehler schnell.

wmayer wrote:Es kommt vor allem darauf an, wie die 3D-Punkte vorliegen. Kommen die Punkte z.B. von einem 3D-Sensor, dann liegen die Punkte in einer Gitterstruktur vor. Die x- und y-Werte liegen dabei auf dem Gitter und die z-Koordinate gibt die Tiefeninformation an. Die Triangulierung dafür ist relativ einfach...
Anbei eine FreeCAD datei mit einer Punktwolke, wie kann ich daraus eine Fläche und letztenendes einen Solid (compound) mit einer Basishöhe (untere Face des Körpers) von bsw 380000 (380 m) erstellen.


Punktdatei. Erst das .txt manuell entfernen.
terrain-points-fc.asc.txt
(236.3 KiB) Downloaded 349 times
FreeCAD datei der importierten Punkte
terrain-points.FCStd
(19.93 KiB) Downloaded 249 times
Last edited by bernd on Wed Jun 01, 2016 5:43 am, edited 2 times in total.