Was bedeuten die Parameter 10000 und 3.5?wmayer wrote:Code: Select all
import ReverseEngineering as Reen points=App.ActiveDocument.terrain.Points mesh=Reen.triangulate(points, 10000, 3.5) import Mesh Mesh.show(mesh)
Punkte (bzw. Koordinaten) aus Tabelle importieren
Re: Punkte (bzw. Koordinaten) aus Tabelle importieren
Re: Punkte (bzw. Koordinaten) aus Tabelle importieren
10000: http://docs.pointclouds.org/1.7.1/class ... ff22d70454Was bedeuten die Parameter 10000 und 3.5?
3.5: http://docs.pointclouds.org/1.7.1/class ... d0189f8042
Re: Punkte (bzw. Koordinaten) aus Tabelle importieren
So, mit git commit 212e2bf19c24f hat nun auch der B-Spline-Fit von pcl Einzug gehalten.
Als Testdatensatz kann man den Stanford bunny nehmen. aus der .pcd-Datei lässt sich einfach eine .asc-Datei erzeugen: entferne Zeile 2-10 und ändere Dateierweiterung von pcd auf asc
Zum Vergleich mit dem anderen Fit:
Code: Select all
import ReverseEngineering as Reen
spline=Reen.fitBSpline(Points=App.ActiveDocument.bunny.Points)
shape=App.ActiveDocument.addObject("Part::Spline","Spline")
shape.Shape=spline.toShape()
Zum Vergleich mit dem anderen Fit:
Code: Select all
import ReverseEngineering as Reen
points = App.ActiveDocument.bunny.Points
data = [(i.x,i.y,i.z) for i in points.Points]
surf=Reen.approxSurface(Points=data,UDegree=2,VDegree=2,NbUPoles=18,NbVPoles=18,Smooth=True,Weight=0.01,Grad=0.9,Bend=0.1,Iterations=5,Correction=True,PatchFactor=1.2)
shape=App.ActiveDocument.addObject("Part::Spline")
shape.Shape=surf.toShape()
Re: Punkte (bzw. Koordinaten) aus Tabelle importieren
Hallo liebe FreeCAD'er,
das importieren von Punkten (bzw. Koordinaten) hat Dank eurer Hilfe wunderbar funktioniert.
Recht herzlichen Dank nochmal.
Jetzt stehe ich aber vor dem nächsten Problem.
Ich möchte wieder Punkte importieren, diesmal aber mit anderen Parametern.
Und zwar Endpunkte von Vektoren.
Hier ein Beispiel:
Punkt 0: Endpunkt des Vektors 0 [Startpunkt x=0, y=0 ; Winkel a = 0 Grad (liegt also auf der x-Achse) ; Länge = 1000mm]
Punkt 1: Endpunkt des Vektors 1 [Startpunkt x=0, y=0 ; Winkel b = 1 Grad ; Länge = 995mm]
Punkt 2: Endpunkt des Vektors 2 [Startpunkt x=0, y=0 ; Winkel c = 2 Grad ; Länge = 990mm]
usw. ....
Alle Punkte (Endpunkte der Vektoren) sollen auf der X-Y Ebene liegen.
Der Startpunkt der einzelnen Vektoren ist in diesem Fall immer der gleiche, nämlich: x=0 ; y=0 ;
Der Winkel der Vektoren zur X-Achse sollte in diesem Fall jeweils um 1 Grad zunehmen,
die Länge der Vektoren sollte jeweils um 5mm abnehmen.
Und wie bereits erwähnt, benötige ich eigentlich nur die Endpunkte der Vektoren.
Vielleicht könnt Ihr mir helfen.
Vielen Dank für eure Mühen schon mal im Voraus.
Markus
das importieren von Punkten (bzw. Koordinaten) hat Dank eurer Hilfe wunderbar funktioniert.
Recht herzlichen Dank nochmal.
Jetzt stehe ich aber vor dem nächsten Problem.
Ich möchte wieder Punkte importieren, diesmal aber mit anderen Parametern.
Und zwar Endpunkte von Vektoren.
Hier ein Beispiel:
Punkt 0: Endpunkt des Vektors 0 [Startpunkt x=0, y=0 ; Winkel a = 0 Grad (liegt also auf der x-Achse) ; Länge = 1000mm]
Punkt 1: Endpunkt des Vektors 1 [Startpunkt x=0, y=0 ; Winkel b = 1 Grad ; Länge = 995mm]
Punkt 2: Endpunkt des Vektors 2 [Startpunkt x=0, y=0 ; Winkel c = 2 Grad ; Länge = 990mm]
usw. ....
Alle Punkte (Endpunkte der Vektoren) sollen auf der X-Y Ebene liegen.
Der Startpunkt der einzelnen Vektoren ist in diesem Fall immer der gleiche, nämlich: x=0 ; y=0 ;
Der Winkel der Vektoren zur X-Achse sollte in diesem Fall jeweils um 1 Grad zunehmen,
die Länge der Vektoren sollte jeweils um 5mm abnehmen.
Und wie bereits erwähnt, benötige ich eigentlich nur die Endpunkte der Vektoren.
Vielleicht könnt Ihr mir helfen.
Vielen Dank für eure Mühen schon mal im Voraus.
Markus
Re: Punkte (bzw. Koordinaten) aus Tabelle importieren
Das ist im Prinzip eine Archimed'sche Spirale, wobei die Punkte in Polarkoordinaten gegeben sind.Der Winkel der Vektoren zur X-Achse sollte in diesem Fall jeweils um 1 Grad zunehmen,
die Länge der Vektoren sollte jeweils um 5mm abnehmen.
Mit diesem Script sollten die Punkte wie gewünscht erzeugt werden können:
Code: Select all
import math
import Points
start = 1000
step = 5
pts=[App.Vector((start-step*i)*math.cos(math.radians(i)),(start-step*i)*math.sin(math.radians(i)),0) for i in range(start/step+1)]
p=Points.Points()
p.addPoints(pts)
Points.show(p)
-
- Veteran
- Posts: 7791
- Joined: Tue Jan 07, 2014 11:10 am
- Contact:
Re: Punkte (bzw. Koordinaten) aus Tabelle importieren
Ich brauche das demnächst auch mal.
Punkte in die Points-Workbench importieren klappt.
Wie geht es ab hier weiter?
Wer kann mir das bitte Schritt für Schritt verständlich erklären?
Was ist das mit dem Git?
OS: Ubuntu 16.04.1 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.6703 (Git)
Build type: None
Branch: releases/FreeCAD-0-16
Hash: 2ce5c8d2e3020d05005ed71f710e09e9aa561f40
Python version: 2.7.11+
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
Punkte in die Points-Workbench importieren klappt.
Wie geht es ab hier weiter?
Wer kann mir das bitte Schritt für Schritt verständlich erklären?
Was ist das mit dem Git?
OS: Ubuntu 16.04.1 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.6703 (Git)
Build type: None
Branch: releases/FreeCAD-0-16
Hash: 2ce5c8d2e3020d05005ed71f710e09e9aa561f40
Python version: 2.7.11+
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
Re: Punkte (bzw. Koordinaten) aus Tabelle importieren
Werner hatte damals genau in Bezug auf die Disskussion einige neue Funktionen hinzgefügt. FreeCAD nutzt zur Verwaltung seines Source codes die Software Git. Wenn eine Änderung am FreeCAD Sourcecode erstellt wird wird diese mit einem commit in die software Git eingepflegt. Du kannts dir alle commits schön anschauen. Siehe hier: https://github.com/FreeCAD/FreeCAD/commits/master Das ist das officealle Repository von FreeCAD. Da kannst du mit verfolgen in welchem Tempe FreeCAD voranschreitet.freecad-heini-1 wrote:Ich brauche das demnächst auch mal.
Punkte in die Points-Workbench importieren klappt.
Wie geht es ab hier weiter?
Wer kann mir das bitte Schritt für Schritt verständlich erklären?
Was ist das mit dem Git?
Werner posted dann öfters ohne grosser Erklären einen Link auf den commit den er im FreeCAD sourcen gemacht hat. Macht er öfters so, ohne grosses drum herum kurz erklärt wo das problem ist ohne jeglichen hinweis ob er das programmiert oder nicht. Einige zeit später kommt dann nur en post mit dem link auf den fix oder die neue funktion oder eben auch nicht.
In Bezug auf die Funktionen hier. Schliesse dich mal mit micrelley2 kurz. Das hier war vor seiner geodata workbench. Ich glaube die kann das jetzt evtl. sogar noch besser. Ansonsten einfach einen Ausschnitt der Daten posten und wir machen das dann live mit deinen Daten mit pcl.
gruss bernd
-
- Veteran
- Posts: 7791
- Joined: Tue Jan 07, 2014 11:10 am
- Contact:
Re: Punkte (bzw. Koordinaten) aus Tabelle importieren
Hallo bernd,
ich habe noch keine Daten. Das kann noch einige Wochen dauern bis die Daten eigescannt werden können, weil die Teile dazu noch nicht fertig sind.
Mir geht es aber schon mal darum mich mit der Thematik vertraut zu machen.
Der Kopf in diesem Thread hilft mir und dem Themenstarter:
viewtopic.php?p=145028#p145028
Viele Grüße
Wilfried
ich habe noch keine Daten. Das kann noch einige Wochen dauern bis die Daten eigescannt werden können, weil die Teile dazu noch nicht fertig sind.
Mir geht es aber schon mal darum mich mit der Thematik vertraut zu machen.
Der Kopf in diesem Thread hilft mir und dem Themenstarter:
viewtopic.php?p=145028#p145028
Viele Grüße
Wilfried
Re: Punkte (bzw. Koordinaten) aus Tabelle importieren
Hello,wmayer wrote:Leider (noch) nicht mit FreeCAD.Wow, ist zwar nicht das womit ich sinnvoll weiterarbeiten kann, aber wie geht das ?!?
Mit Python ist das durchaus machbar, aber ich habe (für das obige Beispiel) den Shape builder verwendet. Dazu muss man zuerst aus dem Mesh in Shape erzeugen, dann geht man zu den vier Eckpunkten um die Koordinaten zu erfahren. Da die Fläche (mehr oder weniger) in Richtung z-Achse zeigt, erstellt man vier neue Punkte mit jeweils denselben x-,y-Koordinaten und z entsprechend so, dass die vier Punkte auf einer Ebene liegen.Die Grundfläche wüsste ich noch, aber mit den seitenflächen hab ich meine mühe. Wie kann ich die mit python erstellen. Das endziel wäre ein solid wie im beigefügten screen. (der ist importiert mittels ifc.)
Nun hat man alles beisammen, um den Shape builder zu starten. Zunächst erstellt man sich die acht Kanten und dann die fünf Flächen. Danach baut man aus den Flächen eine Shell und dann ein Solid.
Sorry for the english,my german is not that good. I have a problem similar to the one you have provided solution here. I have used triangulation for a surface via meshlab,because the mesh from trigulate in Freecad gave a very incomplete mesh with various elements missing some overlapping.
Regardless my problem now is that i am unable to create the faces for the sides as the triangulation provides small edges and it is not feasible to select every single edge. I would be grateful if you could point me in the right direction.
- microelly2
- Veteran
- Posts: 4688
- Joined: Tue Nov 12, 2013 4:06 pm
- Contact:
Re: Punkte (bzw. Koordinaten) aus Tabelle importieren
There are some possibilites depending on the quality of your dataarvindm93 wrote: Hello,
Sorry for the english,my german is not that good. I have a problem similar to the one you have provided solution here. I have used triangulation for a surface via meshlab,because the mesh from trigulate in Freecad gave a very incomplete mesh with various elements missing some overlapping.
Regardless my problem now is that i am unable to create the faces for the sides as the triangulation provides small edges and it is not feasible to select every single edge. I would be grateful if you could point me in the right direction.
1. convert a mesh to a part with Part workbench: create shape from mesh
2. use a python script to build the shape on an optimized way if your data have a "nice" structure
3. approximate/interpolate your data to get BSpline surfaces
You may get more detailed tipps, when you post your data here in the forum.
Weil das hier der deutsche Bereich ist
1. Neben der Möglichkeit, ein Mesh direkt über Menü zu konvertieren
2. lohnt sich der Blick in die Daten, um mit einem Skript schneller zu sein. Oft haben die Daten schöne Strukturen, aus denen sich Flächen generieren lassen: Was aussieht wie eine Kugel, ist meist auch eine Kugel.
3. Mesh sind immer nur Näherungen mit großen Datenmengen, mit der Annäherung durch ein gutes Nurbs Modell kann man viel Punkte und damit Rechenzeit sparen. quelle http://www.sintef.no/globalassets/uploa ... vadina.pdf