fpvectorial

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

fpvectorial

Beitrag von fliegermichl »

Wenn ich die Beispielprogramme aus Examples verwende, dann geben die nur ein schwarzes Viereck mit weissem Rand aus. (z.B. svgviewer)

Das muss aber schonmal funktioniert haben, wenn ich mir die wiki Seite so anschaue.

Hat jemand einen Tip, wo man da schrauben muss?

kirchfritz
Beiträge: 172
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 3.0 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

Re: fpvectorial

Beitrag von kirchfritz »

Hi,
von welchem Beispielprogramm ist die Rede?
ScreenShot_2024_03_17.png
ScreenShot_2024_03_17.png (29.17 KiB) 5086 mal betrachtet

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: fpvectorial

Beitrag von fliegermichl »

svgviewer aber auch fpv3dviewer

kirchfritz
Beiträge: 172
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 3.0 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

Re: fpvectorial

Beitrag von kirchfritz »

svgviewer lädt einzelne svg Dateien.
Das sieht bei mir unter Windows zum Beispiel so aus:
Screenshot.png
Screenshot.png (93.98 KiB) 5074 mal betrachtet

wp_xyz
Beiträge: 4893
Registriert: Fr 8. Apr 2011, 09:01

Re: fpvectorial

Beitrag von wp_xyz »

Bei mir (Win 11, Laz/main+FPC 3.2.2) funktioniert's auch. OK, mit Einschränkungen, beim SVG gibt es noch massive Probleme..., aber ein schwarzes Rechteck sehe ich nirgends. Liegt das an deinem DarkMode? Welches Betriebssystem, welchen Lazarus hast du?

Wenn du SVG brauchst, rate ich dringend, BGRABitmap zu nehmen.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: fpvectorial

Beitrag von fliegermichl »

Eigentlich geht es mir um dxf Dateien. Die svg waren da nur mal so zum schauen und spielen.
Ich hatte einfach mal mit "dir /s *.svg" angefangen nach svg Dateien auf meiner Platte zu suchen und fand als erstes "C:\fpcupdeluxe64\fpcupdeluxe\lazarus\components\fpweb\images" und die werden alle einfach nur als schwarze Rechtecke angezeigt.

wp_xyz
Beiträge: 4893
Registriert: Fr 8. Apr 2011, 09:01

Re: fpvectorial

Beitrag von wp_xyz »

Ach so. Da hast du gerade problematische SVGs erwischt, mit denen fpvectorial Probleme hat...

Bzgl. DXF habe ich keine Erfahrung mit fpvectorial. Habe mit dem fpvviewer (auf ccr) gerade versucht, eine dort vorhandene dxf-Beispieldatei zu laden, das ging. (aber der fpvviewer compiliert mit Laz/main nicht - ist behelfsmäßig durch Auskommentieren der Fehlerstelle einfach zu beheben, aber das muss ich mir bei Gelegenheit mal genauer ansehen).

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: fpvectorial

Beitrag von fliegermichl »

Ah, ich hab mal weiter suchen lassen und fand "C:\Program Files\LibreOffice\help\media\icon-themes\cmd". Diese werden (fast) alle korrekt dargestellt.
Bei dem Projekt fpv3dviewer habe ich das OpenGLControl verkleinert und ein TImage platziert.
Dann habe ich die Units dxfvectorialreader, svgvectorialreader, fpvtocanvas und fpvectorial2canvas in die uses Liste hinzugefügt.
Einen Button mit der Aufschrift "Render" dazu platziert und in dessen Clickhandler "DrawFPVectorialToCanvas(VecDoc.GetPageAsVectorial(0), Image1.Canvas, 0, 0);" geschrieben.

Jetzt wird meine DXF Datei angezeigt.
Das ist mal ein guter Anfang. Darauf kann ich aufbauen.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: fpvectorial

Beitrag von fliegermichl »

DXF Dateien haben u.a. Layer. Bei denen kann man einstellen, welcher Linientyp, Linienfarbe usw. verwendet werden soll, ob die Objekte sichtbar, bearbeitbar usw. sind.
Etwas derartiges ist in TvVectorialDocument nicht vorgesehen.

Sollte man daher eher eine abgeleitete Klasse TvDXFVectorialDocument erstellen oder TvVectorialDocument erweitern?

wp_xyz
Beiträge: 4893
Registriert: Fr 8. Apr 2011, 09:01

Re: fpvectorial

Beitrag von wp_xyz »

fliegermichl hat geschrieben:
Fr 22. Mär 2024, 08:39
DXF Dateien haben u.a. Layer. Bei denen kann man einstellen, welcher Linientyp, Linienfarbe usw. verwendet werden soll, ob die Objekte sichtbar, bearbeitbar usw. sind.
Etwas derartiges ist in TvVectorialDocument nicht vorgesehen.

Sollte man daher eher eine abgeleitete Klasse TvDXFVectorialDocument erstellen oder TvVectorialDocument erweitern?
Zumindest gibt es eine Klasse TvLayer, und TvVectorialPage hat Methoden wie AddLayer, SetCurrentLayer etc. Könnte man da nicht diese dxf-layer-typische Information unterbringen. Gegenüber einem speziellen TvDXFVectorialDocument hätte das den Vorteil, dass die Information allen Dateiformaten zur Verfügung steht, und es sollte möglich sein, eine dxf-Datei als svg abzuspeichern.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: fpvectorial

Beitrag von fliegermichl »

Danke.
Stimmt. TvVectorialPage.AddEntity berücksichtigt auch, ob es einen aktiven Layer gibt und fügt das Element diesem hinzu. Andernfalls einer globalen Liste fEntities.
Also muß der TDXFVectorialreader erweitert werden, so daß er die Layer auch einliest.

Was dem Layer noch fehlt, ist eine Information, ob er sichtbar und bearbeitbar ist. Das kann man der Layerklasse ja aber noch beibringen. Pen, Brush, Style und Name hat er ja schon geerbt.

Antworten