fpvectorial
- 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
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?
Das muss aber schonmal funktioniert haben, wenn ich mir die wiki Seite so anschaue.
Hat jemand einen Tip, wo man da schrauben muss?
-
- 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
Hi,
von welchem Beispielprogramm ist die Rede?
von welchem Beispielprogramm ist die Rede?
- 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
svgviewer aber auch fpv3dviewer
-
- 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
svgviewer lädt einzelne svg Dateien.
Das sieht bei mir unter Windows zum Beispiel so aus:
Das sieht bei mir unter Windows zum Beispiel so aus:
Re: fpvectorial
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.
Wenn du SVG brauchst, rate ich dringend, BGRABitmap zu nehmen.
- 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
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.
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.
Re: fpvectorial
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).
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).
- 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
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.
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.
- 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
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?
Etwas derartiges ist in TvVectorialDocument nicht vorgesehen.
Sollte man daher eher eine abgeleitete Klasse TvDXFVectorialDocument erstellen oder TvVectorialDocument erweitern?
Re: fpvectorial
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.fliegermichl hat geschrieben: ↑Fr 22. Mär 2024, 08:39DXF 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?
- 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
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.
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.