QUOTE (DerDenDuNichtKennst @ 14.09.2010, 21:39 Uhr)

Hallo Sharky,
also als erstes mal zu Deiner "Referenz" 1000 Bohrungen auf einen Ring AD=200mm ID=180mm rotiert gleicher Abstand. . . ..
Das ist die Tomate. . . aus folgendem Grund . . . Das
CAD MUSS zu der Position an der sie sitzt auch
2. Die Oberfläche aus triangulierten Dreiecken berechnen für die Bohrung
3. Eine sinnvolle Oberfläche zwischen den Bohrungen berechnen (was bei 6mm Durchmesser ja ein nonsens seines gleichen ist. . . )
Das ganze ist so weil es ja ein Hybridmodelierer sein müsste sprich VOLUMEN und FLÄCHE
Zitat Sharky "Die interne Speicherung kann aber auch mit ganz wenigen Daten erfolgen; Durchmesser, Achse, Start- und Endpunkt und fertig"
Für Dein Popelprog ja weil das
1. nicht die Überschneidung der einzelnen Bohrungen überprüft!
2. uns keine Visuelle Darstellung der Bohrung geben kann! (was auch das CAD Programm berechnen muss so das die Grafik uns was zeigen kann)
3. keine Berechnung liefert wo sich an welchen Koordinaten die Bohrungen kreuzen. . .
4. Du eine ganz andere Grundlage für dein popel Prog nimmst weil du nur die Bohrung selbst berechnest
wo sind die anderen Koordianten die zwischen deinen Bohrungen noch vorhanden sind???
Also würde ich sagen berechnest Du nur einen Bruchteil von dem was Alibre berechnet
NOCHMAL WO SIND DEINE KOORDINATEN DER ZWISCHNERÄUME UND DER ENTSTEHENDEN SCHNITTFLÄCHEN ???
Gruß und frohes Grübeln
Ach, mein Bester, jetzt verstehe ich, was du in dem anderen Thread (Programmierung in OpenGL) gemeint hattest.
Du meintest, mir gingen die Argumente aus, Tatsache aber, ich hab in diesen Thread gar nicht mehr reingeschaut, weil ich kaum Zeit habe für irgendwas.
Nun mal TACHELES, mein BESTER:
1. Argument:
uns keine Visuelle Darstellung der Bohrung geben kann! (was auch das CAD Programm berechnen muss so das die Grafik uns was zeigen kann)Ätschibätschi, das kann ich jetzt problemlos mit OpenGL machen. Wie du ja schon mitbekommen haben solltest. Womöglich ist der Umstand, daß ich ganz kurzfristig, oder sagen wir besser RUCKARTIG innerhalb einiger Tage in OpenGL eingestiegen bin, auf deine dauernden Sticheleien zurückzuführen. Wenn man sich visuell in 2D oder 3D ausdrücken will, braucht man eine Grafikschnittstelle, das ist wohl wahr. Und bisher hatte ich keine, jetzt habe ich aber eine.

Goethe hatte eben doch recht, nämlich (Faust I):
Der Geist, der stets das Böse will und stets das Gute schafft.
2. Argument:
nicht die Überschneidung der einzelnen Bohrungen überprüft!Meine CAD überprüft das nicht. Warum auch? Das CAD kann ja nicht entscheiden, ob sich die Bohrungen überschneiden dürfen (vielleicht sollen die ja ?).
Mein C-Compiler kann allerdings eine Kollisionsprüfung machen. Und genau das hat er ja getan, wie gezeigt, danach legt man dann die Bohrungen wie erforderlich auseinander.
Oder anders: Man prüft, ob das geht. Ob man dann die Bohrungen bis an die Schmerzgrenze zusammenpappt, ist eine Frage des Designs.
3. Argument
keine Berechnung liefert wo sich an welchen Koordinaten die Bohrungen kreuzen. . . Du hast offenbar überhaupt keine Vorstellung von den Möglichkeiten einer Programmierung. Natürlich kann man jeden einzelnen Punkt im Raum daraufhin untersuchen, ob es Überschneidungen mit anderen Punkten im Raum gibt. Die Rechengeschwindigkeit eines C-Compilers, bezogen auf den Vergleich geometrischer Daten, die mittels Multiplikation ermittelt werden, liegt auf einem stinknormalem PC im Bereich einige Milliarden Koordinaten pro Sekunde.
Um die Überschneidungen dieser 36 Bohrungen in vielleicht 72.000 Umfangspunkten zu untersuchen, braucht es Millisekunden.
Voraussetzung natürlich, daß man sowas überhaupt programmieren kann. Geh mal davon aus, daß ich mit solchen Fingerübungen nicht an die Grenze meiner Möglichkeiten gerate.
4. Argument:
Du eine ganz andere Grundlage für dein popel Prog nimmst weil du nur die Bohrung selbst berechnest
wo sind die anderen Koordianten die zwischen deinen Bohrungen noch vorhanden sind???
Wiederum hast du offenbar meinen Gedankenansatz PROGRAMMIERTECHNISCH nicht verstanden.
Ich berechne hier die ZEITKRITISCHEN Parameter.
Damit verhält es sich so: 98 Prozent Rechenzeit bezieht sich auf diese, für den ganzen Rest, die Geometrie drumherum, und sei das ein U-Boot oder ein Flugzeugträger, reichen 2 Prozent von der Gesamtrechenzeit.
Um das mal zusammenzufassen:
Ich habe festgestellt, daß meine CAD (Alibre) zeitkritisch wird, wenn es Teilungen der beschriebenen Art berechnen soll. Es geht nicht um die umgebende Geometrie (da hat Alibre überhaupt kein Problem, was Wunder, wir modellieren in 2D und machen eine lineare Austragung von dem Ring oder modellieren ein Rechteck und machen einen Rotationskörper um eine Weltachse).
Und daraufhin überprüft, wie lange im Vergleich dazu ein C-Compiler benötigen würde, diese Teilungen incl. aller Daten der Bohrungen zu berechnen.
Und festgestellt, der C-Compiler berechnet das in den zeitkritischen Bereichen 2000mal schneller als die CAD.
Das ist Fakt.
Da gibt es nix dran zu interpretieren.
Weiterhin habe ich herausgefunden, daß sich diese auf den trigonometrischen Standard-Funktionen der Bibliothek beruhenden Berechnungen durch ausgefuchste Methoden noch wesentlich schneller machen lassen. Nämlich z. B., wie in dem anderen Thread DEZIDIERT AUFGEFÜHRT MIT PROGRAMMCODE, kann man die RECHENZEIT der Kreiskoordinaten INNERHALB der C-Programmierung durch Verwendung optimierter Algorithmen noch um den Faktor 30 reduzieren. Man überholt sich sozusagen selbst, durch optimierte Programmierung, um den Faktor 30. Nämlich wie aufgeführt, daß man anstelle die Koordinaten direkt aus den trigonometrischen Funktionen abzuleiten, eine indirekte Ableitung aus dem Einheitskreis macht. Bringt Faktor 30.
Heißt: Wendet man diesen Faktor auf den Faktor 2000 an, um den der C-Compiler bereits in nicht-optimierter Form der CAD überlegen ist, daß man die in Rede stehenden Koordinaten 60.000 mal schneller berechnen kann, als meine CAD das leistet. Dazu kommen dann noch 0.1-max 2 Prozent Rechenzeit für den Rest der Geometrie.
Davon geht aber die Welt nicht unter.
Denn der Witz ist nicht, ob der C-Comiler 2000 mal oder 60.000 mal schneller rechnen kann (kann er), sondern wie man die Ergebnisse interpretiert.
Würde man in einem Großprojekt komplizierte Geometrien berechnen müssen, würde man dazu keine CAD nehmen, sondern gezielt programmieren.
Was ich mit meiner CAD mache, nämlich mit der Hand gemütlich ein Kuchenstück auf das andere setzen, ist sowieso nicht zeitkritisch (obwohl es mich ärgert, daß ich 30 oder 50 Sekunden oder gar einige Minuten warten muß).
Würde das bei sehr komplexen Geometrien allerdings zeitkritisch werden (Bild ruckelt, lange Ladezeiten), müßten die Programmierer solcher CAD Anwendungen doch mal drüber nachdenken, ob sie bestimmte zeitkritische Routinen nicht optimieren. Wenn die als Basis eine C++ Programmierung haben und nicht irgendeine Datenbanksprache, ist sowas problemlos möglich. Man kann in C++ Programme sogar Assembler-Bausteine einfügen. Wenn so ein Programm auf einer Tertiär- oder Quartärsprache fußt, z. B. einer Datenbank-Ableitung, geht es allerdings nicht.
Da ich nicht professionell designen muß, ist mir das egal. Wäre ich professionell damit befaßt, würde ich mir die schnellste aller CAD Anwendungen aussuchen und demzufolge mich auch dafür interessieren, auf welcher Programmierbasis die sitzen. Ein nicht unvernünftiger Gedanke, oder?
Das ist die ganze Story.
Gruß Sharky
Der Beitrag wurde von sharky bearbeitet: 24.09.2010, 20:51 Uhr