Part Design Dicke für STL-Dateien (solid)

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

WICHTIG: Bitte zuerst lesen, bevor Sie posten
jeno
Veteran
Posts: 1854
Joined: Sun Jun 29, 2014 10:41 am

Re: Part Design Dicke für STL-Dateien (solid)

Post by jeno »

freecad-heini-1 wrote: Sun Feb 16, 2020 9:04 am Wenn man sich die Punkte anzeIgen lässt, dann sieht der Drache so aus:
Drache_Punkte_2.png
Zwei Reihen von Punkten übereinander.

Im letzten Jahr sind einige Workbenches aufgetaucht um Dreicksflächen für den 3D-Druck bearbeiten zu können, sowie Airfols aus NACA-Punkten. Vielleicht findet man dort einen einfachen Workflow aus den Punkten eine Kurve zu erzeugen.

Aber selbst dann wird es nicht einfach einen "Offset" davon zu erzeugen wegen der Geometrie mit zum Teil zu geringen Abständen, siehe:
Drache_Punkte_3.png
Mal ist der Innenradius zu klein, mal der Außenradius. Immer dann, wenn Geometrien sich deswegen überscheiden, versagen die in Freecad vorhandenen Offset Möglichkeiten, sei es für Kurven wie auch für Flächen.
Ja, das ist in der Tat ziemlich fies. Ich bekomme auch in Blender die gleichen Probleme. Die äqidistante Verschiebung verursacht auch dort Überschneidungen im Netz. Ich denke der Ansatz mit der Vektorisierung der Kontur dürfte der einzig gangbare Weg werden.

Mit freundlichen
freecad-heini-1
Veteran
Posts: 7791
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Part Design Dicke für STL-Dateien (solid)

Post by freecad-heini-1 »

Leviathan wrote:Ping
Hallo Laviathan,
bitte erläutere uns die Hintergründe, was genau soll das werden?
Foliendruck / Folienschneider?

Welche Materialdicke, welches Material?

Die Form ist an manchen Stellen sehr filigran, deswegen müsste man mit Lupe und Pinzette arbeiten.

Wurde das bedacht?

Viele Grüße
Wilfried
Leviathan
Posts: 34
Joined: Sun Oct 29, 2017 10:33 am

Re: Part Design Dicke für STL-Dateien (solid)

Post by Leviathan »

Da bin ich mir noch nicht sicher. Willst du
a) den Drachen erhaben haben?
b) vertieft in der "Platte"?
c) eine Nut mit 0,5 mm tief in der Platte der Kontur des Drachen folgend?
Der Drache soll in eine Oberfläche vertieft eingelegt werden (2-farbige Intarsie). Naiv habe ich mir einfach vorgestellt, an jeder Stelle des Randes werden 0,5 mm hinzugegeben, damit man den Druck des Drachens in die Oberfläche mit der entsprechenden Vertiefung plan einlegen und festkleben kann.
Das Ganze ergibt dann mit anderen Bauteilen eine (hoffentlich) hübsche Box (siehe z.B. https://www.thingiverse.com/thing:3871463). Bisher war der Drachen einfach aufgesetzt ... das gefiel mir aber nicht 100%ig.
Eigentlich sollte das ein Übungsstück für eine andere "Rand"-Aufgabe sein, aber wenn ich die Dicke-Funktion schon hier falsch verstanden habe ...
freecad-heini-1
Veteran
Posts: 7791
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Part Design Dicke für STL-Dateien (solid)

Post by freecad-heini-1 »

Leviathan wrote: Sun Feb 16, 2020 1:08 pm aber wenn ich die Dicke-Funktion schon hier falsch verstanden habe ...
Freecad hat ein gutes Wiki, siehe:
https://www.freecadweb.org/wiki/PartDesign_Thickness/de
https://www.freecadweb.org/wiki/Part_Thickness/de
Leviathan
Posts: 34
Joined: Sun Oct 29, 2017 10:33 am

Re: Part Design Dicke für STL-Dateien (solid)

Post by Leviathan »

Hallo freecad-heini-1 ;-)
die Dokumentation hatte ich mir angesehen und geglaubt, sie korrekt zu verstehen. Zu bestehenden Objekten wird ein Rand hinzugefügt ... soweit so gut und sinnvoll und genau, was ich gesucht hatte. Leider tut es nicht, was ich zumindest dann erwartet hätte. Der Verweis auf die Dokus hilft mir also nicht weiter. Eine Idee, warum Thickness nicht funktioniert?
jeno
Veteran
Posts: 1854
Joined: Sun Jun 29, 2014 10:41 am

Re: Part Design Dicke für STL-Dateien (solid)

Post by jeno »

Leviathan wrote: Sun Feb 16, 2020 5:13 pm Hallo freecad-heini-1 ;-)
die Dokumentation hatte ich mir angesehen und geglaubt, sie korrekt zu verstehen. Zu bestehenden Objekten wird ein Rand hinzugefügt ... soweit so gut und sinnvoll und genau, was ich gesucht hatte. Leider tut es nicht, was ich zumindest dann erwartet hätte. Der Verweis auf die Dokus hilft mir also nicht weiter. Eine Idee, warum Thickness nicht funktioniert?
Hi,
betrachte mal den Ausschnitt aus dem Netz
Thickness.png
Thickness.png (418.57 KiB) Viewed 515 times
Egal ob jetzt Freecad oder Blender. Dein Netz hat eine gegebene, starre Struktur. Thickness versucht nun ausgehend vom Ist-Zustand den Körper äquidistant (also senkrecht zur Oberfläche) zu vergrößern. Der untere Kantenzug wandert nach oben und der obere nach unten. Problem 1 ist der Endpunkt in der Spitze. Er ist gleichzeitig die Grenze der unteren und der oberen Kante. Wohin soll er nun hinwandern? Er könnte nur einer der beiden Richtungen folgen. Es ist egal weil beides falsch ist. Er sollte idealerweise nach rechts, was aber äqidistant widerspricht und zudem gibt es keine Information über die "richtige" Richtung. Problem 2 ist die Strecke der Verschiebung. Liegt die oberhalb des halben Abstands von unterem zu oberem Kantenzug schieben die "neuen" Grenzflächen in den Bereich des Körpers. Es gibt eine Überschneidung, sozusagen faltet sich der Körper in sich selber.
Beide Probleme sind schon schwierig vorausschauend zu erkennen. Von einer Lösung von solchen Problemen ganz zu schweigen.

Mit freundlichen
freecad-heini-1
Veteran
Posts: 7791
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Part Design Dicke für STL-Dateien (solid)

Post by freecad-heini-1 »

Und was noch hinzukommt sind die filigranen Geometrien. Das mit der Lupe und Pinzette war kein Scherz.
Drucke die Figur zum Spaß 1:1 auf ein Blatt Papier aus, dann siehst Du was ich meine.
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Part Design Dicke für STL-Dateien (solid)

Post by microelly2 »

Man kann versuchen. den Polygonzug durch eine BSpline zu ersetzen.
Davon dann eine neue Punktemenge durch discretize erzeugen.
Davon wieder eine BSpline
Für diese gibt es dann eine maximal mögliche Größe des Offsets, die geht.
Auf das Ergebnis dieses kleinen Offsets die Schritte wiederholt anwenden.
So bekommt man Schicht für Schicht drauf.
wmayer
Founder
Posts: 20324
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Part Design Dicke für STL-Dateien (solid)

Post by wmayer »

Mit diesem Script kann man die Kontur des Drachen extrahieren

Code: Select all

import math
shape=App.ActiveDocument.boolean001.Shape # der Name des aus dem Netz erzeugten Part-Objekts

mapEdgeFace = {}

for i in shape.Faces:
  for j in i.Edges:
    if j.hashCode() in mapEdgeFace:
      mapEdgeFace[j.hashCode()].append(i)
    else:
      mapEdgeFace[j.hashCode()] = [i]

filter=[]
upDir = App.Vector(0,0,1)
for i in shape.Edges:
  p1 = i.firstVertex().Point
  p2 = i.lastVertex().Point
  if math.fabs(p1.z) < 0.001 and math.fabs(p2.z) < 0.001:
    if i.hashCode() in mapEdgeFace:
      faces = mapEdgeFace[i.hashCode()]
      for j in faces:
        n = j.normalAt(0,0)
        if math.fabs(n.dot(upDir)) < 0.001:
          filter.append(i)
          break

comp=Part.Compound(filter)
Part.show(comp)
Die Außenkontur erhält man vollends mit

Code: Select all

sorted=Part.sortEdges(filter)
wire=Part.Wire(sorted[0])
Part.show(wire)
Daraus erhält man eine B-Spline-Kurve wie folgt:

Code: Select all

spline=wire.approximate(0.0001, 0.0001, 5000, 3)
Part.show(spline.toShape())
freecad-heini-1
Veteran
Posts: 7791
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Part Design Dicke für STL-Dateien (solid)

Post by freecad-heini-1 »

wmayer wrote: Mon Feb 17, 2020 11:58 am Die Außenkontur erhält man vollends mit

Code: Select all

sorted=Part.sortEdges(filter)
wire=Part.Wire(sorted[0])
Part.show(wire)
Daraus erhält man eine B-Spline-Kurve wie folgt:

Code: Select all

spline=wire.approximate(0.0001, 0.0001, 5000, 3)
Part.show(spline.toShape())
Danke Werner. Wie geht es danach weiter?
2D-Offset?
Ein Arch-Mauerelement in der Dicke und Höhe? Hier hätte man den Vorteil, dass man links- rechts- oder symmetrisch über Mitte "aufdicken" kann.
Post Reply