Wissenswertes

Clipping and offsetting algorithms

For optimizing geometry for cutting technologies there are a lot of important tools and algorithms out there to solve a lot of common problems. There are a lot of clipping algorithms out there. Most of them work kind a sweep line algorithm - that's a kind of scanning routine which mostly works by visiting elements and brute-forcing them with different methods.

https://de.m.wikipedia.org/wiki/Sweep_(Informatik)

Greiner Hormann Clipping Algorithm

used for polygon clipping. It can process both self-intersecting and non-convex polygons) - also known as EvenOdd problem

Bentley Ottmann Clipping Algorithm

a sweep line algorithm for listing all crossings in a set of line segments, i.e. it finds the intersection points (or, simply, intersections) of line segments (does not work for bezier paths)

Bush algorithm

https://github.com/anvaka/isect

Sutherland–Hodgman Algorithm

Vatti Clipping Algorithm

Allows clipping of any number of arbitrarily shaped subject polygons by any number of arbitrarily shaped clip polygons. Unlike the Sutherland–Hodgman and Weiler–Atherton polygon clipping algorithms, the Vatti algorithm does not restrict the types of polygons that can be used as subjects or clips. Even complex (self-intersecting) polygons, and polygons with holes can be processed. The algorithm is generally applicable only in 2D space

Libraries:

Weiler-Atherton Algorithm

Martinez-Rueda polygon clipping algorithm

Libraries:

Offsetting curves

 A really good primer about Bezier curves can be found at https://pomax.github.io/bezierinfo/#offsetting

2D/3D Geometrie Glossar

Für das Verständnis von 2D und 3D-Geometrie in Inkscape und Co. helfen ein paar Kurzerklärungen zu häufig verwendeten Begriffen und Abkürzungen.

  1. Objekt (auch Gegenstand oder Element, engl. object, item oder element)
    • Ein Ding oder eine Sache
  2. Gestalt (auch Form, Figur, Umriss oder Darstellung, engl. shape)
    • umgangssprachlich die äußere Form, Umriss, Wuchs oder die Erscheinung von Personen, Skulpturen oder allgemein von Lebewesen

  3. Körper (engl. solid oder body)
    • dreidimensionale Figur, die durch ihre Oberfläche beschrieben werden kann. Die Oberfläche eines Körpers kann dabei aus flachen oder gekrümmten Flächenstücken zusammengesetzt sein. Besteht die Oberfläche eines Körpers nur aus ebenen Flächenstücken, handelt es sich um einen Polyeder
  4. Geometrie (engl. geometry)

    • Teilgebiet der Mathematik, das sich mit den räumlichen und nicht räumlichen (ebenen) Gebilden befasst

  5. Graph (engl. graph)
    • abstrakte Struktur, die eine Menge von Objekten zusammen mit den zwischen diesen Objekten bestehenden Verbindungen repräsentiert. Die mathematischen Abstraktionen der Objekte werden dabei Knoten oder Ecken genannt
  6. Topologie (engl. topology)

    • Lehre von der Lage und Anordnung geometrischer Gebilde im Raum

  7. Raum (engl. space)
    • eine mit einer Struktur versehene Menge, z.B. eine in Länge und Breite eingrenzte Flächenausdehnung oder eine in Länge, Breite und Höhe eingegrenzte Volumenausdehnung

  8. Menge (engl. set)
    • ein Verbund oder eine Zusammenfassung einzelner Elementen
  9. Projektion (engl. projection)
    • Abbildung dreidimensionaler Objekte auf einer zweidimensionalen Ebene
  10. Abbildung (engl. image, figure oder presentation)

    1. das Abgebildete, bildliche Wiedergabe, einem Buch- oder Zeitschriftentext beigegebene bildliche Darstellung, die im Text Behandeltes veranschaulicht; Bild

  11. Leinwand (engl. canvas)
    • der Bildträger
  12. Zeichnung (engl. drawing)
    • eine an Punkten und Strichzügen orientierte Darstellungsform der Computertechnik
  13. Primitiv (engl. primitive)
    • Der Begriff (grafisches) Primitiv (das, Pl. Primitive) wird in der Computergrafik verwendet. Er bezeichnet elementare ein-, zwei- oder dreidimensionale geometrische Formen, z.B. Punkt, Linie, Polylinie, Spline, Polygon
  14. Vektor (engl. vector)
    •  Element eines Vektorraums:t ein Objekt, das zu anderen Vektoren addiert und mit Zahlen, die als Skalare bezeichnet werden, multipliziert werden kann
  15. Skalar (engl. scalar)
    1. mathematische Größe, die allein durch die Angabe eines Zahlenwertes charakterisiert ist
  16. Koordinate (auch Position, engl. coordinate)
    • Position von Punkten innerhalb eines Koordinatensystems
  17. Achse (engl. axis)
    • spezielle Bezugslinie, z.B. in einem Koordinatensystem
  18. Krümmung (engl. curvature oder bending)
    • bogenförmige Abweichung von einem geraden Verlauf

  19. Stetigkeit (engl. continuity)
    • beschreibt die Güte des Kontaktes zweier ebener Kurven bzw. Flächen in einem gemeinsamen Punkt
  20. Punkt (engl. point)
    • ein Objekt ohne jede Ausdehnung in einem beliebigen Raum. In einem zweidimensionalen Koordinatensystem eine Position aus X- und Y-Koordinate

  21. Scheitelpunkt / Wendepunkt (engl. vertex)
    • eine Stelle, an der sich Richtungen treffen. Allgemein auch als Punkt, Vektor oder Knoten bezeichnet
  22. Ebene (engl. plane)
    • unbegrenzt ausgedehntes flaches zweidimensionales Objekt
  23. Länge (engl. length)
    • Maß für den Weg (Ausdehnung) entlang einer Kurve
  24. Distanz (auch Entfernung  oder Abstand, engl. distance)
    • Länge der kürzesten Verbindung zweier Punkte
  25. Umfang (engl. circumference oder perimeter)
    • Länge der Begrenzungslinie einer ebenen Figur
  26. Fläche (engl. face oder surface)

    • zweidimensionale Teilmenge des dreidimensionalen Raumes. Eine Fläche kann sowohl flach, als auch gekrümmt sein

  27. Flächeninhalt (engl. area)
    • Maß für die Größe einer Fläche
  28. Volumen (auch Rauminhalt oder Kubikinhalt, engl. volume)
    • räumliche Inhalt eines geometrischen Körpers
  29. Begrenzung (auch Rand oder Umriss, engl. boundary)
    • äußere Linie eines Körpers, die sich von dem Hintergrund abhebt; der Abschluss ohne das Innere einer Teilmenge eines topologischen Raumes

  30. Hülle (auch Rumpf, engl. hull)
    • allgemeiner Begriff, der Gegenstände umfasst, die einen Raum bilden, indem sie eine flächige und vollständige bzw. weitgehende Grenze zwischen innen und außen schaffen
  31. Interior (auch Inneres, engl. interior)
    • Elemente, die im Inneren einer Begrenzung liegen
  32. Exterior (auch Äußeres, engl. exterior)
    • Elemente, die außerhalb einer Begrenzung liegen
  33. Linie (auch Strich, engl. stroke, dash or line)
    • zusammenhängendes, eindimensionales geometrisches Gebilde ohne Querausdehnung, Oberbegriff von Kurve, Gerade und Strecke; die kürzeste Verbindung zweier Punkte auf einer Oberfläche oder in einem Raum
  34. Strecke (engl. section oder segment)
    •  die kürzeste Verbindung zweier Punkte
  35. Strahl (auch Halbgerade, engl. ray oder half-line)
    • gerade Linie, die auf einer Seite begrenzt ist, sich aber auf der anderen Seite ins Unendliche erstreckt
  36. Kante (engl. edge)
    • Verbindungslinie zweiter benachbarter Ecken (bei Polyedern)
  37. Ecke (auch Knoten, engl. corner)
    • Element der Knotenmenge eines Graphen
  38. Fase (auch Voute, engl. chamfer)
    • abgeschrägte Fläche an einer Ecke oder Kante

  39. Rundung (auch Hohlkehle, engl. fillet)
    • Brechung einer Ecke oder Kante durch Ersetzen mit einem oder mehrenden tangential anschließenden Radien
  40. Pfad (auch Kantenzug, Weg oder Kantenfolge, engl. path)
    • Folge von Knoten, in welcher jeweils zwei aufeinanderfolgende Knoten durch eine Kante verbunden sind
  41. Zug (auch Kette, Reihe oder Zusammensetzung, engl. chain)
    • ein Verbund gleicher oder verschiedener Elemente
  42. Scheitelpunkt (Spitze, engl. cusp oder spinode)
    • ein Punkt auf einer Kurve, an dem ein bewegter Punkt seine Richtung umkehren muss. Ein Scheitelpunkt ist eine Art singulärer Punkt einer Kurve
  43. Tangente (engl. tangent)
    • eine Gerade, die eine gegebene Kurve in einem bestimmten Punkt berührt
  44. Sehne (engl. bowstring)
    • Verbindungsstrecke zweier Punkte auf einer Kurve. Der Teil einer Sekante, der zwischen den beiden Kurvenpunkten liegt
  45. Lot (auch Senkrechte, engl. perpendicular)
    • Strecke oder Gerade, die auf einer gegebenen Geraden oder Ebene senkrecht steht
  46. Sekante (engl. secant)
    • Gerade, die durch zwei Punkte einer Kurve geht
  47. Kontur (engl. contour)
    • äußere Linie eines Körpers

  48. Polylinie (engl. polyline)
    • zusammenhängende Folge von Liniensegmenten, die als einzelnes Objekt erstellt wird. Sie können gerade Liniensegmente, Bogensegmente oder eine Kombination aus beiden darstellen
  49. Gerade (auch gerade Linie, engl. straight line)
    • eine gerade, unendlich lange, unendlich dünne und in beide Richtungen unbegrenzte Linie
  50. Polygon (auch Vieleck, engl. polygon)
    • ebene geometrische Figur, die durch einen geschlossenen Streckenzug gebildet wird. Ein Polygon ist ein zweidimensionales Polytop
  51. Polytop (engl. polytope)

    • verallgemeinertes Polygon in beliebiger Dimension
  52. Polyeder (auc Vielflächner, engl. polyhedron)
    • Teilmenge des dreidimensionalen Raumes, welche ausschließlich von geraden Flächen begrenzt wird (Körper), beispielsweise ein Würfel oder ein Oktant eines dreidimensionalen Koordinatensystems
  53. Polygonzug (auch Streckenzug oder Linienzug, engl. traverse oder polygonal chain)
    • Ein Polygonzug oder Streckenzug ist in der Mathematik die Vereinigung der Verbindungsstrecken einer Folge von Punkten. Polygonzüge werden in vielen Teilgebieten der Mathematik verwendet, etwa in der Geometrie, der Numerik, der Topologie, der Analysis und der Funktionentheorie
  54. Kurve (auch gekrümmte Linie, engl. curve)
    • eindimensionales Objekt. Im Gegensatz etwa zu einer Geraden muss eine Kurve grundsätzlich keinen geraden, sondern kann vielmehr jeden beliebigen Verlauf annehmen
  55. Bogen (engl. arc oder sweep)
    • eil einer Kreislinie (Kreisbogen) oder beliebig nach einer Seite gekrümmte Linie
  56. Spirale (auch Schneckenlinie, engl. spiral)
    • Kurve, die um einen Punkt oder eine Achse verläuft und sich je nach Betrachterperspektive von diesem Zentrum entfernt oder sich ihm annähert
  57. Bézierkurve (engl. bezier curve)

    •  Kurvenverläufe, die durch zwei Endpunkte einer Kurve und die Parameter der an ihnen angelegten Tangenten definiert sind. Durch Unterteilung von Kurvenzügen lassen sich alle Kurven als Bézier-Kurven darstellen

  58. Polynomzug (auch Spline-Kurve, engl. spline, flat spline oder flexible curve)
    • mathematische Funktion, die eine Kurve parametrisch beschreibt
  59. Biarc (engl. biarc)
    • glatte Kurve, die aus zwei Kreisbögen besteht. Um den Biarc glatt zu machen, sollten die beiden Bögen an dem Verbindungspunkt, an dem sie sich treffen, dieselbe Tangente haben
  60. B-Spline (basis spline, short: B-spline)
  61. Kubische C2-Spline (engl. cubic spline)
  62. Bikubische C2-Spline (engl. bicubic spline)
  63. nicht-uniforme rationale B-Splines (Non-uniform rational B-Splines, short "NURBS")
    • mathematisch definierte Kurven oder Flächen
  64. Spur (engl. lane, track)
  65. Trajektorie (auch Bahnkurve, engl. trajectory)
    • Pfad oder Weg,Verlauf der Raumkurve, entlang der sich ein Körper oder ein Punkt, beispielsweise der Schwerpunkt eines starren Körpers, bewegt
  66. Bahn (engl. track oder path)
    • Strecke, die ein Körper in einer vorgeschriebenen Richtung durchmisst; Linie, die ein Körper im Raum durchläuft

  67. Bewegung (engl. move)
    1. affine Drehung oder Drehspiegelung im Raum; Ortsveränderung mit der Zeit
  68. Füllung (engl. fill oder infill)
    • Inhalt einer Fläche (Flächeninhalt) oder eines Volumen oder eine Ausfärbung
  69. Anfasser (engl. handle)
    • visuelles Element zum Modifizieren einer Kurve im Raum
  70. Strukturknoten (engl. node)
    • ein Punkt in einem Netzwerk oder Diagramm, an dem sich Linien oder Wege kreuzen oder verzweigen
  71. Transformation (engl. transform)
    •  Bewegung einer Punktmenge (Objekt) im als ruhend gedachten Raum (bzw. gegenüber einem als ruhend angenommenen Koordinatensystem)
  72. Muster (engl. pattern)
    • Struktur, die durch erneutes oder paralleles gleichförmiges Auftreten gekennzeichnet ist (gleichförmige Wiederholung oder Reproduktion)
  73. Schnitt (auch Kreuzung, Kreuzschnitt, Querung oder Querschnitt, engl. cut, intersection oder crossing, cross section)
    • Überschneidung oder Begegnung zweier oder mehrerer Elemente im gleichen Punkt oder der gleichen Kurve oder Fläche; es gibt Schnittpunkte, Schnittkurven und Schnittflächen (Querschnitt)
  74. Segment (auch Abschnitt, engl. segment)
    • Er wird unterschieden vom Segment, das einen Abschnitt bezeichnet
  75. Sektor (auch Ausschnitt, engl. sector)
    • etwas, das schneidet; bezeichnet einen Ausschnitt

STL to Wireframe

3D Generatoren


Name Hinweis/Zweck
3Sweep Tool zum Erzeugen von 3D-Körpern aus 2D-Fotos und Grafiken
GCode Painter Zeichnungswerkzeug mit .gcode-Output
GCode Vessel Gefäße modellieren und mit .gcode-Output
osmbuildings.org Gebäude von OpenStreetMaps in STL umwandeln
Terrain2STL Geländedaten zu 3D-Modellen (.stl) überführen
Turbine .obj Generator Prozedurales Modellieren mit .obj-Output

 

3D Model Viewer / Browser

Hochladen, Managen, Darstellen, Einbetten von 3D-Modellen im Browser. Eine kleine Sammlung

Veraltetes, aber Interessantes

  1. https://github.com/cscott/thing-tracker
  2. https://github.com/garyhodgson/githubiverse-template
  3. https://github.com/garyhodgson/thing-tracker-site-template
  4. https://github.com/drewgates/models3d
  5. https://cadracks.github.io

Blender Tipps

Koplanare Flächen migrieren

Das Ziel: Flächenanzahl in Modellen reduzieren, z.B. weil man eine STL in ein OBJ konvertieren will. STL unterstützt nur Dreiecke, OBJ hingegen Polygone. OBJ Dateien haben in optimierter Struktur somit wesentlich weniger Kanten. Das ist vorteilhaft für Inkscape Plugins wie Import 3D Mesh und Paperfold.

Suchbegriffe

  • Merge coplanar adjacent faces
  • flat triangles to polygons
  • triangles to quads

Lösung

"Decimate"-Modifier anwenden. Im Beispie reduzieren wir das Modell "M" von 26 Flächen auf 15 Flächen.

grafik.png grafik.png grafik.png

3D Scan / Reverse Engineering

Wir haben einen OpenScan 3D Scanner im FabLab.

Software

  • Regard3D
  • MeshLab
  • VisualSFM
    • + sehr schnelle Rekonstruktionszeit
    • + übersichtliche Bedienoberfläche
    • - zum Teil schwierig in Gang zu bekommen
    • - Output: Punktwolke (weitere Software für Meshing benötigt, z.B. CloudCompare oder Meshlab)
    • - nur private Nutzung gestattet
  • Alicevision Meshroom
    • + sehr angenehme Bedienoberfläche
    • + wird aktiv weiterentwickelt
    • + mittlere Rekonstruktionsgeschwindigkeit
    • + One-Click-Rekonstruktion
    • + Output: Punktwolke, Mesh, Textur
    • - benötigt CUDA fähige Grafikkarte (Nvidia)
  • Colmap
    • + übersichtliche Bedienoberfläche
    • + mittlere Rekonstruktionsgeschwindigkeit
    • - benötigt CUDA fähige Grafikkarte (Nvidia)
  • Autodesk MeshMixer
  • QLone

Hardware

SVG Werkzeuge


SVG Werkzeuge

Tools und Bibliotheken

SVG Werkzeuge

DXF to SVG, SVG to DXF

DXF and SVG are commonly used file formats to describe vector data for machine production (like laser cutters or waterjet machines). An also commonly occuring problem to solve is a conversion between DXF to SVG or vice versa because a lot of programs use only the one or the other format to perform steps like nesting or line optimization. That makes it harder to work without data loss or errors like offsets, wrong scaling, etc.

DXF to SVG

Tested and working

  1. Use Inkscape with default DXF importer (works with AutoCAD DXF R13) - fails on polylines sometimes
  2. AutodeskInventorLaserExporter (works but is very limited to only basic entities)
  3. DXF/DWG Importer - includes tools like ...
  4. https://github.com/voyager-gold/javascript-dxf-to-svg → works but seems to ignore units/sizes/scalefactors
  5. https://github.com/abey79/vpype + https://github.com/tatarize/vpype-dxf

  6. http://www.calvina.de/pstoedit

    1. We can use winder/svgToDxf or Zigazou/svg2dxf to utilize pstoedit to convert the SVG first into an EPS, and from EPS to DXF finally. This toolchain could be integrated into Export Layers extension of InkScape for Example. We can also re-write Export Layers to integrate the inhouse DXF export extension from inkscape

Tested and failed

  1. https://github.com/mduggan/dxf2svg → did not compile using MSYS2 with GCC and make
  2. https://github.com/mondalaci/dxf2svg2kicad
  3. https://github.com/aegis1980/cad_to_shapely → QCAD has to be used manually because community edition has no command line

SVG to DXF

Possible ways to convert are ...

SVG Werkzeuge

SVG Thumbnail Previews in Windows Explorer

Ubuntu hat diese Funktions beispielsweise von Haus aus integriert. SVG-Vorschaubilder in Windows werden nur über externe Software generiert. Dafür eignet sich beispielsweise die Erweiterung von tibold:

grafik.png

Alternativen:

SVG Werkzeuge

SVG Splitting

SVGSplit

SVGsplit dient dazu, „Gruppen“ (<g>-Tags) in svg-Dateien in einzelne svg-Dateien aufzuteilen. Es gibt sie dann auf der Seite aus und lädt sie automatisch herunter, verpackt als Zip-Datei. Dies ist nützlich für die Erstellung von SVG-Symbolen und funktioniert sehr gut mit Adobe Illustrator oder Inkscape. Speichern Sie einfach Ihre Quelldatei als SVG und legen Sie sie in das obige Feld. Alle Ebenennamen werden zu den neuen Dateinamen für die aufgeteilten SVGs.

SVG Werkzeuge

Slice STL in SVG Ebenen

Slicing mit IceSL

grafik.png

Output:

grafik.png

Beispiel-Import in Inkscape

grafik.png

Slicing mit Blender Laser Slicer Addon

Das folgende Addon zerschneidet ein 3D-Modell in SVG-Objekte: https://github.com/rgsouthall/laser_slicer

SVG Werkzeuge

SVG Merging

Mehrere SVG in eine SVG verschmelzen

Um zum Beispiel geschnittenen Dateien von IceSL zu einem SVG zusammenzuführen, kann das Tool zum Zusammenführen verwendet werden.

git clone https://github.com/bruno-fs/svg_stack.git

Ein Script zum Benutzen (als merge.cmd speichern)

@echo off
setlocal enabledelayedexpansion enableextensions
dir /b /a-d *_slice_*.svg > 000_files.list
set out=
for /F %%i in (000_files.list) do set out=!out! %%i
python C:\Users\youruser\Desktop\startup_slices_SVG\svg_stack\svg_stack.py %out% > test.svg

Messmethoden für Grafiken / GCode / Fertigungszeiten (Estimators)

Häufig fragt man sich während der Planung eines Projektes, wie man die Fertigungszeiten bzw. den Aufwand vorauskalkulieren kann. Auf dieser Seite finden sich Gedanken, Beispiele und Softwarelinks für die Estimation für übliche Aufwände wie Schneidzeiten (z.B. Laserschneiden, Wasserstrahlschneiden) von Konturen oder das Entgittern von Folien (Vinylschneiden).

Prinzipielle Abhängikeiten für Fertigungszeiten (wenn Linien "abgefahren" werden oder Bilddaten gerastert werden) sind u.a.:

  • DPI (Liniendichte)
  • Schneidgeschwindigkeit auf Geraden (Zweipunkt-Linien) und in Kurven (dynamischeres Verhalten mit "Slow Down" in der Kurve!)
  • max. Schneidgeschwindigikeit der Maschine
  • max. Leerlaufgeschwindigkeit der Maschine
  • Materialparameter (Dicke, Art) - häufige Faustregel: je dicker/härter, desto langsamer
  • Bearbeitungsmodus (vektoriell oder rasterisiert)
  • Vektorsortierung (Linienreihenfolge)

Die Komplexität einer Grafik, welche gelasert oder geplottet werden soll, kann aus verschiedenen Parametern ermittelt werden. Parameter sind unter anderem ...

  • ... bei Rastergrafiken
    • Anzahl der Farben
    • Flächenanteile der einzelnen Farben
    • Auflösung - Länge x Breite (px) bzw. DPI
    • Grafikschwerpunkt
    • Anzahl der einzelnen Inseln bzw. geschlossenen Konturen
    • Verhältnis Anzahl Inseln zu Bildgesamtgröße
    • kleinste/größte Linienstärken
    • ...
  • ... bei Vektorgrafiken
    • Anzahl der Farben
    • Länge der Linien
    • Flächenanteile der einzelnen Farben
    • Grafikschwerpunkt
    • Anzahl der einzelnen Inseln bzw. geschlossenen Konturen
    • Verhältnis Anzahl Inseln zu Bildgesamtgröße
    • Anzahl der Objekte (Warnung: kann auch Überschneidungen und Duplikate enthalten) - siehe Objekte in Grafiken zählen
    • Anzahl der Layer (Ebenen)
    • kleinste/größte Linienstärken
    • Anzahl Linien und Bögen
    • ...

Mit dem Zählen von Objekten in Grafiken lässt sich z.B: der Entgitteraufwand besser einschätzen, denn für jede Fläche, die aus einer Folie abgezogen werden muss, benötigt man mit Entgitterwerkzeugen viel Zeit - egal ob es sich um einen Schneidejob aus einem Laserschneider (z.B. Papier- oder Kartonbogen) oder ein Vinylplott (Folie) handekt. Setzt man pauschal für jede Fläche eine Zeit an, die es bedarf, um diese zu entfernen, lässt sich schnell abschätzen, ob es sinnvoll ist eine Grafik beispielsweise mit hohem Detailgrad zu plotten oder ob eine Detailgradreduktion sinnvoll ist. Professionelle Tools aus den Bereichen der Biologie und Naturwissenschaften (z.B. Zählen von Bakterien oder Zellen in einer Probe) können auch für das Zählen von Inseln in Plottgrafiken genutzt werden, z.B. 

  • ImageJ
  • CellProfiler
  • Media Cybernetics Image Pro Plus

Weitere hilfreiche Werkzeuge aus anderem Bereichen:

  • Inkscape mit vorher verinselten Vektorgrafiken eignet sich ebenso zum Zählen von Inseln/Objekten. Hilfreiche Tools zur Verinselung und Vektorisierung von Rastergrafiken:

als verinselte Vektorgrafiken zu verstehen sind Grafiken, bei denen Flächen gegeneinander sauber abgrenzen und nicht unsichtbar übereinanderlappen.

Übersicht Werkzeuge


ImageJ

ImageJ

Programm installieren und starten

grafik.png

Grafik öffnen (STRG + O)

Gezählt werden später die schwarzen Objekte auf weißem Hintergrund!

grafik.png grafik.png

Threshold konfigurieren (STRG + UMSCHALT + T)

grafik.png grafik.png

"apply" drücken und schließen

Counting Tool aufrufen

"Analyze" → "Analyze Particles ..."

grafik.png

  • "Size (pixel^2)"
    • Um alle Partikel zu zählen, belassen Sie es bei der Standardeinstellung 0 - Unendlich. Wenn zu viele kleine „Rauschpixel“ als Pixel gezählt werden oder Sie Partikel aufgrund ihrer Größe ausschließen möchten, passen Sie diese Werte an.
  • "Circularity"
    • Zirkularität schließt Partikel aus, je nachdem, wie nah an der perfekten Rundung sie sind. Um alles einzuschließen, bleiben Sie bei den Standardwerten 0,00 - 1,00. Um etwas auszuschließen, passen Sie diese Zahlen an, wobei Sie bedenken sollten, dass 1,00 ein perfekter Kreis und 0,00 eine gerade Linie ist.
  • "Show"
    • Outlines →  zeigt nummierte Objekte an

Auswertung anpassen

"Results" → "Set Measurements ..."

grafik.png

  • skewness = Schiefe
  • kurtosis = Wölbung
  • centroid = Schwerpunkt

Ergebnisse prüfen und vergleichen

grafik.png grafik.png grafik.png

grafik.png

Die Gesamtanzahl von Flächen in der Grafik ergibt sich aus Anzahl Positivbild + Anzahl Negativbild → im Beispiel: 18 + 11 = 29, wobei der Außenrahmen des Canvas im Negativ weitere Randflächen erzeugt!

Visicut

Visicut

  • Gesamtdauer des Schneid- bzw. Graviervorgangs anzeigen
Inkscape

Inkscape

Pfad ausmessen

Measure Path erlaubt das Messen von Flächeninhalten, Konturlängen, etc.

Objekte zählen

grafik.png

grafik.png

Oder auch über ...

Bildkonvertierung mit Imagetracer.js

grafik.png grafik.png

mit den Optionen:

  • Number of colors to use on palette = 2
  • Color quantitization will be repeated this many times = 1

Indem wir die Erweiterung "Styles to layers" verwenden und nach Fill-Color sortieren, können wir die Elementmengen je Layer anzeigen

NC Corrector

NC Corrector

GCode analysieren (Schneidweg, Gesamtdauer des Schneidvorgangs):

  • Gesamtpfadlänge
    • Gesamtpfadlänge Bögen
    • Gesamtpfadlänge Linien
  • Gesamtanzahl Elemente
    • Gesamtanzahl Linien
    • Gesamtanzahl Bögen

Tracing / Edge Detection Software

Mit den folgenden Werkzeugen können Sie Bilder vektorisiert oder nachgezeichnet werden:

AutoSvg

Autosvg is tracing tool, which can convert image format like (jpg,png,gif) into vector

CorelDRAW

Inkdrop

Artsy pixel image to vector graphics converter

Inkscape

Siehe Tracing/Images/Edge Detection

IrfanView

LineTracer

LineTracer is a graphical application for vectorizing and tidying up scanned line-art sketches and drawings. It is primarily meant to to help illustrators and animators.


Roland CutStudio

Skeleton Tracing

A new algorithm for retrieving topological skeleton as a set of polylines from binary images.

StibbleGen

Software that can create stipple drawings and “TSP art,” from image files

Vector Magic

VTracer

Raster to Vector Graphics Converter

ZebraTrace

ein einfaches Werkzeug, um Bitmap-Bilder in ein Muster von Kurven mit variabler Breite umzuwandeln. Sie können die Anzahl der Kurven, die Auflösung, die minimale und maximale Breite und die Funktionen zum Plotten der Kurven einstellen. Die Anwendung wurde in erster Linie für die Gestaltung von Guilloché-Mustern und alle Arten von kreativen Gravuren entwickelt. ZebraTrace hat eine Qt5-basierte Benutzeroberfläche und ist in Python geschrieben.

grafik.png

Lasercutter / Waterjet Cutter Software

Reine Laser Software

Suites für Wasserstrahlschneiden, Plasmaschneiden und Laserschneiden

fogleman/primitive mit Windows

Reproduktion von Bildern mit geometrischen Primitiven. das Tool erzeugt wohlgefällige Grafiken. Quelle: primitive

grafik.png

Google Go Installieren

https://go.dev/dl/

Primitive Projekt klonen

Öffnen einer neuen cmd-Shell und ausführen:

go get -u github.com/fogleman/primitive

Windows 64 Bit Executable erzeugen

https://github.com/golang/go/wiki/WindowsCrossCompiling

cd C:\
git clone https://github.com/fogleman/primitive.git
cd primitive
set GOOS=windows
set GOARCH=amd64
go build -o primitive.exe main.go

grafik.png

Puzzle Generatoren

Es gibt eine ganze Reihe verschiedener Puzzle Generatoren im Netz. Hier eine Auswahl bzw. unsere Recherche

grafik.png grafik.png grafik.png

Ein paar Beispiele von draradech

Laser Cutter Test mit draradech jigsaw

Ähnlich wie Lasercut Jigsaw sind auch in der Software von draradech keine Algorithmen verbaut, um die Teile einzeln im Vektorfile zu speichern. So wird das Puzzlegitter durch vertikale und horizontale Kurven ausgedrückt. Ein erster Test sieht vielversprechend aus, wenn auch die Puzzleteile leider viel zu klein geraten sind. Außerdem wurde im folgenden Beispiele erst danach festgestellt, dass es clever wäre, wenn man die Rückseite des Puzzles vorher einfärbt, damit sich später Teileober- und Unterseiten klar unterscheiden lassen. Das im Beispiel gelaserte Tempelhofer Feld (Berlin) hat einige Himmelspassagen, die genauso hell (=ungraviert) sind, wie die blanke Rückseite.

Als Empfehlung:

grafik.png grafik.png grafik.png grafik.png grafik.png

Offtopic: Vollfarb-Puzzle Test auf 0,9mm Finnpappe

Das folgende Lasercut-Beispiel aus Finnpappe wurde mit Inkscape (Puzzle Konturen) erzeugt und das Motiv mit Transferdruck vor dem Lasern aufgedruckt. Siehe Transferdruck (Sublimation) auf Holz und Pappe.

grafik.png grafik.png grafik.png

Abwicklungen von 3D Modellen zu 2D Patterns

Abwicklungen von 3D Modellen zu 2D Patterns

dxf2papercraft

dxf2papercraft is an open source flattener, available at https://sourceforge.net/projects/dxf2papercraft/files

Documentation page: https://dxf2papercraft.sourceforge.net

command line options

Usage: ./dxf2papercraft [options] infile3D.dxf outfile2D.dxf
 
convert a polygonal 3D object into a 2D cut-out sheet for
producing a paper model of the object using glue and scissors
Copyright by Thomas Haenselmann <givenname@familyname.de>
 
Options:
 
 -m, --nomerge        no merging of faces into single polygon
 -n, --number         print face numbers
 -d, --divide         draw each face separate
 -o, --overlap        allow overlapping faces in cut-out sheet
 -h, --hide           hide glue tabs
 -f, --force          force glue tabs, even if intersecting faces
 -p, --split 8,17     face number 8 and 17 get disconnected from the rest
                      (use -n to see face numbers in 2D DXF file)
 -s, --strategy 0..5  0: draw smallest polygon first / 1: draw largest first
                      2: as ordered in file / 3: keep adjacent faces continuous
                      4: stretch 2D layout wide / 5: keep layout dense
 -?, --help           display this text

Converting dxf2papercraft generated DXF file output to SVG

Using dxf2papercraft generates 2D DXF output from 3D DXF input. We can use some tools to convert away the DXF to a neutral format like SVG.

kabeja (works)

Some tests with conversion of dxf2papercraft dxf output to SVG files

./dxf2papercraft/dxf2papercraft -d test3d.dxf test2d.dxf
sed -i 's/ENDSEQ/ENDSEC/g' test2d.dxf
cd kabeja/
java -jar launcher.jar -nogui -pipeline svg ../test2d.dxf ../test2d.svg
cd ../
inkscape test2d.svg

OpenSCAD (failed)

The dxf generated output from dxf2papercraft is not usable with openscad (we could use openscad to convert).

import(file="/home/tomate/mightyscape/papercraft_unfold/test.dxf");
WARNING: Unsupported DXF Entity 'SEQEND' (170) in "test.dxf".
WARNING: Unsupported DXF Entity 'VERTEX' (63c) in "test.dxf".
WARNING: Unsupported DXF Entity 'POLYLINE' (170) in "test.dxf".

How to create usable input files for dxf2papercraft?

dxf2papercraft only handles 3D DXF files. A lot of files are not shipped in this format. So how we can convert models to 3D DXF to use dxf2papercraft?

Blender "Import AutoCAD DXF format (.dxf) Addon

On Linux and Windows we can use Blender to import models like STL or OBJ. We can write a usable DXF file for dxf2papercraft.

grafik.png

admesh

admesh is a simple tool which works well to make 3D DXF files

sudo apt install admesh
admesh 3dprint-bolt.stl --write-dxf 3dprint-bolt.dxf

admesh is able to generate DXF files from STL files too. But trying to import larger files may give error

dimeModel::largestHandle: 0
terminate called after throwing an instance of 'std::bad_alloc'
hat(): std::bad_alloc
Aborted (core dumped)

How to improve dxf2papercraft?

In conclusion there are some ToDos to make dxf2papercraft better