Suche Unit zum Thema CSG Constructive Solid Geometry

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Frank Ranis
Beiträge: 201
Registriert: Do 24. Jan 2013, 21:22

Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Frank Ranis »

Hallo ,

hat irgend jemand eine Pascal-Unit und Examples zum Thema CSG (Constructive Solid Geometry).

Im Net finde ich haufenweise Quellcode in Javascript , C++ ect. , aber für Pascal sieht es mau aus.
Habe von diesen Sprachen aber keine Ahnung , wegen Portierung des Codes nach Pascal.

Gruß

Frank
www.flz-vortex.de

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Christian »

In GLScene gibts ne Unit dafür, ist aber ein recht komplexes Thema. Das Durchhaltevermögen etwas Code aus anderen Sprachen zu portieren sollte man schon haben.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Frank Ranis
Beiträge: 201
Registriert: Do 24. Jan 2013, 21:22

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Frank Ranis »

Hallo Christian,

Christian hat geschrieben:In GLScene gibts ne Unit dafür, ist aber ein recht komplexes Thema. Das Durchhaltevermögen etwas Code aus anderen Sprachen zu portieren sollte man schon haben.


Danke für deinen Tipp.
GLScene , habe ich mir vor ein paar Jahren mal angetan .
Allein die Installation unter LAZ damals , hat mich Tage gekostet , weil diese nicht lief und jenes nicht wollte.

Anfang des Jahres wollte ich es mir dann noch mal unter LAZ 1.6.4 installieren , aber alle Versuche sind in die Hose gegangen , dutzende Fehlermeldungen und dann hatte ich kein Lust mehr drauf.
Zumal ich ja wirklich nur den CSG-Teil brauche .

Mein Vorhaben ist , einfach zwei Dreieckbasierte Volumenkörper laden (so ala STL-FILE) , booleansche Operation drüber , Ergebnis zurückschreiben.

Es gibt ja Quellcode :
Javascript
https://github.com/evanw/csg.js/

Portiert nach Cpp
https://github.com/dabroz/csgjs-cpp

Oder auch das hier , was *.UNO auch immer ist
https://github.com/lorents/csg

Nur die Portierung gelingt mir leider nicht , weil ich die Orginalquellen mit meinen Programmierkenntnissen (anderer Sparchen) nicht übersetzt bekomme.
Die kleineren Routinen , wie Vector-Dot oder Vector-Cross ist ja nicht so das Problem , aber die Objektorientierten Sachen aus CPP oder Javaskript , da versage ich dann .

Gruß

Frank
www.flz-vortex.de

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Christian »

Aber für das was du machen willst könnte der GLScene Part durchaus reichen.
GLVectorFileUtils,GLFileSTL und der CSG Kram sollten ja im wesentlichen reichen.
Musst schon mal mit Details herausrücken wo du dann Probleme bei der Installation hattest.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Frank Ranis
Beiträge: 201
Registriert: Do 24. Jan 2013, 21:22

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Frank Ranis »

Hallo Christian,

Christian hat geschrieben:Aber für das was du machen willst könnte der GLScene Part durchaus reichen.
GLVectorFileUtils,GLFileSTL und der CSG Kram sollten ja im wesentlichen reichen.
Musst schon mal mit Details herausrücken wo du dann Probleme bei der Installation hattest.


GLVectorFileUtils kann ich in keinem Ordner von GLScene finden.

Sag mir doch bitte mal , wo im Net man eine aktuelle Version finden kann , die man ohne Probleme im LAZ installieren kann.

In der LAZ-Wiki gibt es eine Version
glscene-1.0.0.2

Unter
https://sourceforge.net/projects/glscene/files/GLScene/
findet man eine
GLScene_v1.5_for_Win32_Win64 ,
die aber wohl auf Delphi zugeschnitten ist , lauter *.dpk , von lpk nirgens was zu finden.

Und dann noch bitte eine Kurzanleitung in welcher Reihenfolge man die lpk's zu installieren hat .

Gruß

Frank
www.flz-vortex.de

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

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von wp_xyz »

Frank Ranis hat geschrieben:Unter
https://sourceforge.net/projects/glscene/files/GLScene/
findet man eine
GLScene_v1.5_for_Win32_Win64 ,
die aber wohl auf Delphi zugeschnitten ist , lauter *.dpk , von lpk nirgens was zu finden.

Richtig, aber geh bei v1.4 rein, da gibt es eine Lazarus-Version. Ich COMPILIERE immer zuerst die RunTime-Version, dann die Designtime-Version und INSTALLIERE dann die Designtime-Version.

Beim Compilieren von GLSceneLCL_Runtime gab es bei mir (Laz trunk/FPC 3.04) Probleme, weil die Units LazFileUtils und LazUTF8 in der Uses-Zeile einiger Units fehlten. Außerdem wurde über eine Variable tm:TTextMetric gemeckert, weil eine "W"-Version erwartet wurde, also: tm: TTextMetricW, und damit wurde das Package compiliert.

GLSceneLCL_Designtime machte keine Probleme.

Die anderen Packages hatte ich anfangs nicht installiert, aber die Demos forderten ihrerseits weitere Packages an, diese habe ich dann jeweils nachinstalliert. Aber Achtung: einige Packages linken statisch weitere DLLs dazu, z.B. will GLSceneLCL_CgShader eine DLL cg.dll. Wenn die nicht gefunden wird, startet Lazarus nicht mehr. In diesem Fall solltest du die entsprechende DLL ins Windows-System32-Verzeichnis kopieren, oder wenn du diese DLL nicht findest, lazarus.exe löschen und die vor der Installation des Packages gesicherte lazarus.old.exe in lazarus.exe umbenennen, damit bist zu wenigstens wieder arbeitsfähig.

Wiegesagt, die Demos machen einige Probleme. Ich habe nicht alles ausprobiert, aber so richtig scheint der Autor diese nicht getestet zu haben, denn es fehlen in den Projekten immer die Anforderungen für die GLScene-Packages. Auch hier ein Hinweis: Wenn Packages fehlen, werden immer die Namen der Windowsversion gemeldet, du musst dann das package mit vorangestelltem GLSceneLCL_* ins Projekt eintragen (statt GLS_*).

Insgesamt macht das Paket einen dürftigen Eindruck. Es bedarf erheblich mehr Arbeit als ich reingesteckt habe, um alle Demos zum Laufen zu kriegen.

Frank Ranis
Beiträge: 201
Registriert: Do 24. Jan 2013, 21:22

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Frank Ranis »

Hallo wp_xyz,

wp_xyz hat geschrieben:
Frank Ranis hat geschrieben:Unter
https://sourceforge.net/projects/glscene/files/GLScene/
findet man eine
GLScene_v1.5_for_Win32_Win64 ,
die aber wohl auf Delphi zugeschnitten ist , lauter *.dpk , von lpk nirgens was zu finden.

Richtig, aber geh bei v1.4 rein, da gibt es eine Lazarus-Version. Ich COMPILIERE immer zuerst die RunTime-Version, dann die Designtime-Version und INSTALLIERE dann die Designtime-Version.

Beim Compilieren von GLSceneLCL_Runtime gab es bei mir (Laz trunk/FPC 3.04) Probleme, weil die Units LazFileUtils und LazUTF8 in der Uses-Zeile einiger Units fehlten. Außerdem wurde über eine Variable tm:TTextMetric gemeckert, weil eine "W"-Version erwartet wurde, also: tm: TTextMetricW, und damit wurde das Package compiliert.

GLSceneLCL_Designtime machte keine Probleme.

Die anderen Packages hatte ich anfangs nicht installiert, aber die Demos forderten ihrerseits weitere Packages an, diese habe ich dann jeweils nachinstalliert. Aber Achtung: einige Packages linken statisch weitere DLLs dazu, z.B. will GLSceneLCL_CgShader eine DLL cg.dll. Wenn die nicht gefunden wird, startet Lazarus nicht mehr. In diesem Fall solltest du die entsprechende DLL ins Windows-System32-Verzeichnis kopieren, oder wenn du diese DLL nicht findest, lazarus.exe löschen und die vor der Installation des Packages gesicherte lazarus.old.exe in lazarus.exe umbenennen, damit bist zu wenigstens wieder arbeitsfähig.

Wiegesagt, die Demos machen einige Probleme. Ich habe nicht alles ausprobiert, aber so richtig scheint der Autor diese nicht getestet zu haben, denn es fehlen in den Projekten immer die Anforderungen für die GLScene-Packages. Auch hier ein Hinweis: Wenn Packages fehlen, werden immer die Namen der Windowsversion gemeldet, du musst dann das package mit vorangestelltem GLSceneLCL_* ins Projekt eintragen (statt GLS_*).

Insgesamt macht das Paket einen dürftigen Eindruck. Es bedarf erheblich mehr Arbeit als ich reingesteckt habe, um alle Demos zum Laufen zu kriegen.


genau solche Aktionen hasse ich wie die Pest , man kommt von a nach b und nach stundenlanger Suche ist man dann völlig verwirrt und weis nicht mehr wo oben und unten ist und laufen tut es dann immer noch nicht.

Entweder ein Paket läßt sich innerhalb von ein paar Minuten , ohne Mecker installieren und nutzen , oder ich lasse es bleiben.
Das passiert leider ganz oft mit LAZ und wenn man sich dann eine neue LAZ-Version zulegt , fängt der Mist von vorne an.
Auch bei etlichen Beispielen im Wiki , oder auch bei LAZ-Demoprojekten aus dem Net ist es leider so , das man sich erst mühsam alles zusammensuchen muß,
wenn man denn fündig wird.

Daher versuche ich in den meisten Fällen , mit den Standard-Komponenten von LAZ zurechzukommen .
Zusätzlich benutze Units und andere Files werden dann in den Ordner des Projektes mit abgelegt , so das man diesen Ordner mit allen nötigen Files , z.B. auf
einem USB-Stick mitschleppen kann.
Wenn ich dann auf einen anderen Rechner weitermacht und dort auch nur eine Grundinstallation von LAZ hat , dann funtzt alles problemlos .
Hat man dann doch mal eine ganz tolle externe Komponente , läßt sich diese doch meist auch zur Laufzeit erzeugen .
Gut , bei visuellen Komponenten ist es dann etwas unschön , wenn diese nicht während der Entwicklung auf dem Form zu sehen und zu Berabeiten sind.

Etwas mehr Auswahl in der Standard-Komponenten-Liste bei der LAZ-Grundversion wäre schon nicht schlecht , ein wenig so in Richtung Thypon , natürlich nur
freie Komponenten (nichts geklautes) .

Ich probier noch mal die Installation der GLScene_v1.4 aus , hoffe mal es klappt.

Danke für deine INFOS .

Gruß

Frank
www.flz-vortex.de

TraumTaenzerDieter
Beiträge: 28
Registriert: So 14. Aug 2011, 09:11

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von TraumTaenzerDieter »

Diese Version
svn checkout svn://svn.code.sf.net/p/glscene/code/br ... GLSceneLCL
ist problemlos zu kompilieren und installieren (in Lazarus 1.8 RC4).

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Christian »

genau solche Aktionen hasse ich wie die Pest , man kommt von a nach b und nach stundenlanger Suche ist man dann völlig verwirrt und weis nicht mehr wo oben und unten ist und laufen tut es dann immer noch nicht.

Entweder ein Paket läßt sich innerhalb von ein paar Minuten , ohne Mecker installieren und nutzen , oder ich lasse es bleiben.


Du solltest jemanden bezahlen der für dich programmiert.
Entweder du willst dich mit Problemen beschäftigen. Oder du kaufst jemanden ein der das für dich tut.
Dacht mit das bei deinem ersten Beitrag schon, das du dich mit CSG übernehmen wirst, wenn ich aber solche Sprüche lese ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Frank Ranis
Beiträge: 201
Registriert: Do 24. Jan 2013, 21:22

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Frank Ranis »

Christian hat geschrieben:
genau solche Aktionen hasse ich wie die Pest , man kommt von a nach b und nach stundenlanger Suche ist man dann völlig verwirrt und weis nicht mehr wo oben und unten ist und laufen tut es dann immer noch nicht.

Entweder ein Paket läßt sich innerhalb von ein paar Minuten , ohne Mecker installieren und nutzen , oder ich lasse es bleiben.


Du solltest jemanden bezahlen der für dich programmiert.
Entweder du willst dich mit Problemen beschäftigen. Oder du kaufst jemanden ein der das für dich tut.
Dacht mit das bei deinem ersten Beitrag schon, das du dich mit CSG übernehmen wirst, wenn ich aber solche Sprüche lese ...


Hallo Christian,

Ich habe mich ja mit dem Thema schon ein paar Monate lang beschäftigt .
Und nachdem ich in Sachen Pascal-Unit nichts gefunden hatte ich versucht den C++ - Code (https://github.com/dabroz/csgjs-cpp) nach Pascal zu portieren.
Wegen der für mich unverständlichen Syntax von C ist hat das aber leider nicht so recht funktioniert .
Wenn ich in der Lage wäre die C-Routinen anhand eines Beispiel-Code's per Debugger durchzuspielen um mir In-Output anzuschauen dann könnte ich parallel dazu meine Pascal-Prog schreiben und alle Routinen schön abchecken.

Mein letzter Gedanke war dann halt , hier im Forum mal nach einer CSG-Unit nachzufragen.

Die GLScene-Version v1.4 , die wp_xyz vorgeschlagen hat , habe ich jetzt installiert bekommen.
Dann habe ich die CSG-Demo geladen und die läßt sich auch kompilieren , allerdings spinnt die Darstellung der Formular-Anzeige nun völlig , siehe 1Bild.
Des weiteren bekommt man noch beim Ausführen des Programm in der IDE eine Fehlermeldung EPBuffer-Exception .
Das muß am GLScene liegen , denn andere Projekte lassen sich problemlos laden und ausführen.
Die EXE läßt sich aber ganz gewöhlich starten und beenden ohne Fehler.

Gruß

Frank

Matsch auf dem Form.jpg

Fehlermeldung.jpg
www.flz-vortex.de

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Christian »

Warscheinlich liegt beides an falschen Viewer Einstellungen.
OpenGL braucht als erstes einen "kompatiblen" Rendering Context. Mit den Standars Einstellungen des Viewers lässt sich der auch immer erstellen. Wenn man dort aber ein paar Parameter eingestellt hat die die Grafikkatre nicht unterstützt, kommt genau das bei raus.
Meldung 2 sagt das auch recht gut im Klartext das die Grafikkarte keinen Support für die Extension ARP-pbuffer mitbringt.
Mit dem CSG Kram hat das aber definitiv nichts zu tun. Am besten du löscht den Viewer nochmal vom Formular, tust einen neuen drauf und weist dem die Scene zu. Dann müsste das eigentlich schon gehen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Frank Ranis
Beiträge: 201
Registriert: Do 24. Jan 2013, 21:22

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Frank Ranis »

Hallo ,

Christian hat geschrieben:Warscheinlich liegt beides an falschen Viewer Einstellungen.
OpenGL braucht als erstes einen "kompatiblen" Rendering Context. Mit den Standars Einstellungen des Viewers lässt sich der auch immer erstellen. Wenn man dort aber ein paar Parameter eingestellt hat die die Grafikkatre nicht unterstützt, kommt genau das bei raus.
Meldung 2 sagt das auch recht gut im Klartext das die Grafikkarte keinen Support für die Extension ARP-pbuffer mitbringt.
Mit dem CSG Kram hat das aber definitiv nichts zu tun. Am besten du löscht den Viewer nochmal vom Formular, tust einen neuen drauf und weist dem die Scene zu. Dann müsste das eigentlich schon gehen.


Habe mir die halbe Nacht mit GLScene um die Ohren geschlagen.
Mehrfach deinstalliert und wieder neu und auch das LAZ selber komplett geputzt und neu gemacht .
Jetzt scheint es so halbwegs zu tuddeln .

Dann habe ich mir diverse Infos zum Erstellen von GLScene-Objekten (zur Laufzeit) aus dem Net besorgt und daraus eine Minimal-Anwendung gebaut , siehe Anhang.
Man trägt oben die beiden STL-Input-Files in die Editfelder ein und unten noch den Namen des Outpufiles.
Die STL-Inputfiles müssen lokal im Ordner der EXE stehen .

Dann eine der Booleanschen Operationen wählen und den Button drücken.
Heraus fällt dann das veschnittene Result.stl.

Danke euch für die Hilfe.

Gruß

Frank

CSG_per_CLSCENE_Demo.zip
(1.55 MiB) 177-mal heruntergeladen
www.flz-vortex.de

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Suche Unit zum Thema CSG Constructive Solid Geometry

Beitrag von Christian »

Schick.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten