1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. PSblnkd

Beiträge von PSblnkd

  • Fehlermeldung 1.#INF u.a.

    • PSblnkd
    • 9. Februar 2011 um 10:03

    @progandy

    Danke für Deine Ausführungen, aber bei -

    "Und dieser verändert den Quellcode, sodass er die Befehle des Debuggers annimmt, da AutoIt keine Schnittstelle für einen echten Debugger bietet." -

    ergibt sich doch gleich die nächste Frage:
    Wieso muß ein Debugger den Quellcode verändern?
    Soweit ich die Arbeitsweise von Debuggern kenne (jedenfalls, was den STEP-Betrieb angeht) ist es doch so, daß ein Parser eine Codezeile nach der anderen Interpretiert/compiliert, sich die Einsprungsadresse der nächsten Zeile merkt, den Zeilencode ausführt und dann die Steuerung an das Betriebssystem zurückgibt. Beim nächsten STEP wird von der gemerkten Einsprungadresse wieder genauso verfahren. Eine Veränderung des Quellcodes ist dabei m.E. nicht notwendig.
    Anders natürlich bei meiner Hilfslösung mit temporären MsgBoxen. Die verändern tatsächlich den Quellcode, allerdings nicht die Wirkungsweise des eigentlichen Programms, wenn sie mit ";" deaktiviert sind - und einen Absturz gibt es deswegen schon gar nicht.

    Aber vielleicht kannst Du mich (uns) ja mal über die Notwenigkeit einer Schnittstelle für einen echten (was ist ein unechter?) Debugger aufklären.

    Und dann würde ich gern eine Begründung erfahren für die Aussage:

    "Und Scite4AutoIt wird von den AutoIt-Entwicklern erstellt und wie gesagt, diese haben kein Interesse an einem Debugger."

    Wenn SciTE4AutoIt von den AutoIt-Entwicklern erstellt wurde und Debuggerfunktionen im Rahmen einer IDE einfach dazu gehören, dann würde diese Aussage in sich einen Widerspruch bedeuten.
    Wieso haben die AutoIt-Entwickler kein Interesse an einer umfassend-komfortablen IDE?
    SciTE ist zwar zum Erstellen von Quellcodes, Syntax-Prüfen und exe-compilieren ein wirklich tolles Programm! Aber wieso soll man es damit bewenden lassen, wenn jederman weis, daß es in der Regel ohne Fehlersuche nicht geht. Und wieso können dann innerhalb von SciTE nicht brauchbar-komfortable Tools zur Verfügung stehen, die das Programmierer-Leben erleichtern?

    MbG

    PSblnkd

  • Fehlermeldung 1.#INF u.a.

    • PSblnkd
    • 7. Februar 2011 um 11:39

    @progandy

    Deinen ersten Satz verstehe ich ja noch, obwohl das nicht meine Frage beantwortet.
    Den zweiten Satz - erster Teil "Die AutoIt-Entwickler haben kein Interesse daran" kann ich auch noch nachvollziehen, weil die Software(-Sprache) AutoIt zwar Bestandteil von SciTE/Debugger ist (?), aber nicht abhängig davon.
    Was jedoch den zweiten Teil angeht "... und daher kann man einen Debugger nur damit erstellen, dass man den AutoIt-Quellcode verändert, so dass es auf die Befehle des "Debuggers" reagiert." - das kann ich auch fünfmal lesen, ohne dahinter zu kommen, was Du mir eigentlich damit sagen willst.

    Ich wollte eigentlich keinen Debugger erstellen (programmieren), sondern nur einen für mich (und sicherlich auch andere) brauchbaren benutzen.
    Deshalb die konstruktive Kritik an die Macher vom SciTE/Debugger, verbunden mit dem Wunsch, das an der Baustelle weitergearbeitet wird.
    Ich wäre jedenfalls jedem dankbar, wenn mir beim "CAD mit AutoIt" solche zuteil sein würde.

    Alternative IDEs sind ja bisher immer in den Anfängen steckengebleiben - oder habe ich da was übersehen?

    MbG

    PSblnkd

  • Fehlermeldung 1.#INF u.a.

    • PSblnkd
    • 5. Februar 2011 um 09:02

    autoBert

    SciTE ist eigentlich ganz toll, hat aber gar keine Debug-Funktion - Go oder Build (Compile) ist alles. Deshalb gibt es in meinem 1800-Zeilen-Code massenweise temporäre MsgBoxen, die bei Bedarf, d.h. bei irgendwelchen Problemen aktiviert werden können, somit die Abarbeitung anhalten und eine diesbezüglich wissenswerte Ausgabe produzieren.

    Bei mir gibt es eigentlich nur den einen Anspruch - nämlich CAD mit AutoIt zu realisieren.
    In anderen Programmiersprachen haben das Andere schon vielfach getan. In C++ gibt's das sogar als Opensource - aber sich da reinzudenken, ohne ausführliche Kommentierung, bzw. Programm-Beschreibung ist m.E. genauso aufwendig, als ob man das alles selbst neu macht.

    Ja, den Debugger kenne ich - ist irgendwie auf SciTE aufbaut - hat nur eine einfache Step-Funktion. Alles weitere, was ich oben anführte, fehlt (noch).
    Leider habe ich mit dem Tool keine guten Erfahrungen gemacht - entweder es funktioniert sehr eingeschränkt oder nicht richtig, manchmal auch gar nicht - und dann noch die Gefahr der Quellcode-Zerstörung (ist bei meinen Tests zwar nicht passiert, aber andere User wiesen bereits darauf hin).

    Auch in der Annahme, daß hier die Macher (oder deren "Zuträger") von SciTE/Debugger mitlesen, hatte ich den Beitrag gepostet.
    Es wäre sehr hilfreich, wenn es auf diesem Gebiet weitergeht...

    MbG

    PSblnkd

  • Wir bauen uns ein CAD

    • PSblnkd
    • 3. Februar 2011 um 09:32

    AntiSpeed

    Ich sehe nicht, wo bei mir "AutoIt" falsch geschrieben sein sollte..

    Deine Bedenken hinsichtlich GDI+ besser auf c++ zu setzen, kann ich nicht bestätigen. -
    Wie Du siehst, habe ich es umgesetzt - zwar noch nicht mit vollem Funktionsumfang, aber es kann sich sicherlich schon sehen lassen.
    Teste mal das Programm "CADnew.exe", dann wirst Du feststellen, daß die Ausführungsgeschwindigkeit bei Weitem ausreicht.

    CAD-Programme soll man nicht mit den hochgestochenen Echtzeit-Anforderungen von 3D-Spielen o.ä. vergleichen.
    Bei reinen CAD-Programmen (ohne Features mit Rendering-Funktionen o.ä.) liegen die Ressourcen des PC zum größten Teil solange brach, bis neue Eingabebefehle vorliegen, die aber dann in der Regel ohne merkbare Verzögerung abgearbeitet werden.

    MbG

    PSblnkd

  • Fehlermeldung 1.#INF u.a.

    • PSblnkd
    • 3. Februar 2011 um 09:16

    Schnitzel

    Ja, das Hauptprogramm läuft im OnEventModus 1.
    Doch dann ist eben nur mit dem Aufruf eines separaten Event-Handlers ohne Parameterübergabe was möglich.
    Deshalb habe ich das mit der temporären Umschaltung in den OnEventModus 0 umgangen.

    Wie gesagt - es funktioniert. Probier doch mal die 2.GUI "Eigenschaften Grafik-Objekte" in meinem "CAD mit AutoIt".
    Dort kannst Du Parameter verändern, die anschließend nach "OK" in das Parameter-Array zurückgeschrieben werden.
    Ein erneuter Aufruf der 2.GUI sollte das bestätigen.

    Warum soll's nicht eine vernünftige IDE mit Debugger geben? Arbeiten die Jungs von SciTE/Debugger nicht zusammen und wird da nicht mehr weiterentwickelt? - Mir fehlen z.B. die vielfältigen Möglichkeiten des Step-Betriebes

    - Einzelschritt
    - bis Cursor vorwärts, oder rückwärts
    - über eine ganze Routine (UP)

    nebst Fenster mit aktuellen Variablen-Log - vergleichsweise mit dem MS-Studio.

    MbG

    PSblnkd

  • Fehlermeldung 1.#INF u.a.

    • PSblnkd
    • 2. Februar 2011 um 09:51

    Schnitzel, Milla

    danke für Eure schnelle Antwort.
    Daß die Fehlermeldung 1.#INF auf eine Division / 0 hindeutet, hatte ich mir schon gedacht. Die Frage war aber, ob und wo eine Übersicht zu solchen kryptischen Ausgaben steht - mit Erklärung. Schließlich kann es da ja noch mehr geben oder? - Und dann steht man wieder da und weis nicht weiter...sollte unbedingt in der Hilfe ergänzt werden....

    Wünschenswert wäre auch in SciTE-IDE bzw. Debugger ein Variablen-Control-Fenster (so wie im MS-Studio) zu haben, da brauchte man nicht dauernd temporäre MsgBoxen zu setzen...mal als Tip an die Macher von SciTE.
    Wird der Debugger noch weiterentwickelt?

    Das Problem mit der Parameterübergabe bei GuiCtrlSetOnEvent habe umgangen, indem ich temporär - d.h. nur für die Aufrufs des Event-Handlers - den Event-Modus mit

    Opt("GUIOnEventMode", 0)

    eingestellt habe. Dann funktioniert auch das Abfragen mit @GUI_CTRL, aber was noch viel wichtiger ist - die in der aufrufenden Funktion definierten Variablen (z.B. die ID eines Eingabefeldes) sind dann noch gültig, weil die Abfage im der gleichen Funktion untergebracht werden kann und nicht noch ein weiteres UP aufgerufen werden muß. Am Ende der Funktion wird dann mit

    Opt("GUIOnEventMode", 1)

    der ursprüngliche Modus wieder hergestellt.
    Das Verfahren funktioniert einwandfrei - siehe "Ein CAD mit AutoIt" (GUI "Eigenschaften Graphic-Objekte").
    Vielleicht gibt's ja auch noch andere Möglichkeiten der Realisierung...

    MbG

    PSblnkd

  • Fehlermeldung 1.#INF u.a.

    • PSblnkd
    • 1. Februar 2011 um 10:32

    Beim Testen von speziellen Berechnungen und Ausgabe über eine temporäre MsgBox erhielt ich z.B. die kryptische Ausgabe "1.#INF".
    In der Hilfe konnte ich keine Erklärung dazu finden.
    Gibt es irgendwo eine Übersicht für solche "Kürzel"?

    Des weiteren suche ich nach einer Möglichkeit, bei der Event-Anweisung

    GUICtrlSetOnEvent($Button1Prop, "Button1OK")

    an das aufgerufene UP "Button1OK" bestimmte Variablen-Parameter zu übergeben.
    Das hätte Vorteile bei der Weiterverarbeitung.
    Globale Deklaration würde zwar gehen - halte ich aber nur im Notfall für richtig.
    Bei VB kann man an alle Funktionen Parameter übergeben - egal, von wo sie aufgerufen werden.

    MbG

    PSblnkd

  • Wir bauen uns ein CAD

    • PSblnkd
    • 1. Februar 2011 um 10:10

    Nach längerer Zeit Unterbrechung geht es nun weiter - trotz aller Bedenken, insbesondere von

    chip
    Daran sieht man, dass Du es nicht mal für nötig gehalten hast, mal in die zip reinzuschauen, Da ist eben nicht nur die exe drin, sondern auch ein Auszug vom letzten Stand des Entwicklungsberichtes, wo es um die technischen Intera der neuen Version geht.
    Da Du ja immer noch nicht verstanden hast, dass es bei diesem Projekt nicht um eine Konkurrenz zu bestehenden kommerziellen CAD-Programmen geht - hier nochmal zum Mitschreiben für Dich ganz persönlich: Es dient lediglich der Untersuchung von Programmier-Methoden, wie mit den AutoIt-Mitteln grundlegende CAD-Funktionen realisiert werden können.

    Da mir solcherart Arbeiten nicht als Veröffentlichung bekannt sind, trage ich mich natürlich auch mit dem Gedanken, den Entwicklungsbericht nebst vollständigen Quellcode in irgendeiner Art zu veröffentlichen (z.B. Buch mit CD).

    Doch jetzt zum letzten Stand der Arbeiten.
    Die Selection-Funktion für alle bisher implementierten Grafik-Objekte (LINE, RECT, CIRCLE) zu realisieren, erwies sich doch wesentlich schwieriger, als angenommen. In der zip ist wieder der betreffende Auszug aus dem Entwicklungsbericht enthalten.
    Die Selection-Funktion ist noch nicht vollkommen, aber man kann vorerst damit leben.
    Um die Selection-Funktion aufzurufen, ist der Pfeil-Button zu drücken. Mittels der Mouse wird in der Nähe des zu selektierenden Grafik-Objekts geclickt, um dann ein kleines Rechteck zu ziehen - am besten um die Enden oder Ecken bei Linien und Rechtecken.
    Eine erfolgreiche Selektierung wird durch rote Farbgebung und kleinen Kreisen an den Ecken gekennzeichnet. Beim CIRCLE wird ein gestricheltes Rechteck um die (virtuellen) Definitionspunkte gezeichnet - wieder mit kleinen Kreisen an den Ecken.
    Wird im Selection-Modus ein anders Grafik-Objekt selektiert, wird automatisch die Selektion des vorher markierten aufgehoben.

    Wenn ein Grafik-Objekt selektiert ist, kann mit der rechten Mouse-Taste eine Dialog-Form aufgerufen werden, wo alle (z.Zt.) relevanten Parameter des betreffenden Grafik-Objekts dargestellt werden. Dort es ist auch möglich, bestimmte Parameter zu ändern, z.B. die Farbe. Mit "OK" werden die ggf. veränderten Parameter wieder in das Parameter-Array zurückgeschrieben und man kann sofort die Änderungen an dem betreffenden Grafik-Objekt sehen.

    Soweit zum Stand. - Geplant ist in Folge die Einführung von Bezugspunkten (sog. RefPoints), womit dann weitere Manipulationen - z.B. Verschieben, Drehen usw. - möglich sein sollten. Außerdem stehen noch die Funktionen zur Parallel- und Senkrecht-Linie aus, sowie die Ansichten-Manipulation. Des Weiteren muss die Verwaltung der Grafik-Objekte im Parameter-Array erweitert werden, damit z.B. ein Löschen möglich ist, oder das Auslagern in eine Datei, bzw. des Laden von einer Datei.

    Wie man sehen kann - es gibt noch viel zu tun.

    An dieser Stelle möchte ich mich für die aufmunternden Worte von bugfix und dem Hilfeangebot von Christian ganz herzlich bedanken.
    Mit letzterem werde ich, wenn es seine Zeit erlaubt, eng zusammenarbeiten - heißt nicht, daß andere nicht ebenfalls willkommen sind.

    Codezeilen: ca. 1800
    Entwicklungsbericht: ca. 85 A4-Seiten

    Mit besten Grüßen aus Berlin

    PSblnkd

    Dateien

    CADnew04.zip 407,91 kB – 620 Downloads
  • Wir bauen uns ein CAD

    • PSblnkd
    • 5. Dezember 2010 um 11:09

    chip
    (Zitat) "...das schlicht niemand interesse daran hat ein CAD nachzubauen..." (die miserable Rechtschreibung ist nicht von mir)
    kann so auch nicht ganz stimmen, denn immerhin haben schon wieder 12 Leute die neueste Version von "CADnew03.zip" heruntergeladen.
    Leider bis jetzt ohne irgendeinen Kommentar.

    Deshalb freue ich mich besonders auf Alizame's Hinweis zur Löschfunktion.

    Ja, natürlich ist diese vorgesehen - nur muß dazu erst einmal die Selection-Funktion vollständig implementiert sein. Sonst weis das Programm nicht, was man löschen will.

    @Leroox 
    Du kannst guten Gewissens die exe starten. Da ist kein Virus versteckt - so viel Vertrauen habe ich auch in die Macher von SCiTE!
    Allerding ergab sich bei der exe-Erstellung ein merkwürdiger Effekt im Zusammenhang mit dem Antivir-Guard. Der lies nämlich die Erstellung nicht zu, so daß ich diesen erst zeitweise ausschalten mußte. Danach ging es und auch im Nachhinein wurde CADnew_03.exe nicht als "Schädling" erkannt.

    Außer der zip-Entpackung wird da auch nichts installiert. CADnew_03.exe ist direkt aus dem Ordner startbar.

    Ergänzung:
    Der von mir schon mehrfach erwähnte Entwicklungsbericht hat jetzt bereits 70 A4-Seiten.


    Mit winterlichen Grüßen aus Berlin - es ist Sonntag und es schneit immer noch...

    PSblnkd

  • Wir bauen uns ein CAD

    • PSblnkd
    • 2. Dezember 2010 um 10:25

    Nach dem "regen Interesse" Eurerseits zu dem Thema müsste ich eigentlich die Überschrift ändern in "Ich baue..."

    Tatsächlich hatte ich auf mehr Resonanz und konstruktive Hilfe gehofft - aber so ist es, wie so oft im Leben - im Erstfall steht man ganz allein auf der Matte.

    Da sich das "Selection"-Problem für mich doch viel komplizierter herausstellte, als zunächst angenommen, hat es auch eine ganze Weile gedauert bis zur Realisierung dieses Entwicklungsschrittes.

    Anbei ist die neueste Version "CADnew03" nebst einem Auszug aus dem aktuellen Entwicklungsbericht.
    Die neue Funktionalität im Vergleich zur verangegangenen bezieht sich auf die Realisierung der "Selection"-Funktion (Pfeil-Button) - allerdings mit der Einschränkung, dass bisher nur "LINE"-Objekte unterstützt werden.
    Selection von RECT- und CIRCLE-Objekten geht noch nicht.
    Die weitere Ausgestaltung der Selection-Funktion bzgl. Eigenschaftsdialog, Bezugspunkte und Weiteres, was schon früher angesprochen wurde, harrt noch der Realisierung.

    Bei den Überlegungen zur Selection von RECT-Objekten ist mir aufgefallen, dass man diese auch als zusammengesetzte LINE-Objekte betrachten kann, d.h., das wäre dann die erste Anwendung des Features "Group". Dazu bedarf es wiederum einiger umfangreicher Umbauarbeiten...

    Bisher besteht das Programm aus mehr als 1300 Codezeilen!

    Mit winterlichen Grüßen aus Berlin - an einem verschneiten Donnerstag

    PSblnkd

    Dateien

    CADnew03.zip 383,86 kB – 713 Downloads
  • Wir bauen uns ein CAD

    • PSblnkd
    • 10. Oktober 2010 um 10:24

    Das unprodukive Geplänkel persönlicher Image-Pflege der letzten beiden Beiträge hat doch meinen Ehrgeiz recht beflügelt, obwohl - wie sich nun offensichtlich herausstellt - ich hier bei diesem Thema allein auf weiter Flur bin.

    Sei's drum - wie versprochen - es geht weiter.

    Anbei der letzte Stand der Entwicklung mit Linien-, Rechteck- und Kreisfunktionalität. Zusätzlich ist ein Auszug aus dem aktuellen Entwicklungsbericht dabei - betreffend das Parameter-Array, der dann auch gleich zu der weiter unten aufgeführten Fragestellung führt.
    Das Parameter-Array wird in der aktuellen Version CADnew02.exe bereits verwendet - in Vorbereitung zu der als nächstens zu implementieren "Selection"-Funktion. Diese ist ebenfalls bereits ansatzweise implementiert, d.h. wenn man auf das neue Button mit dem Pfeil drückt, wird dieses in der althergebrachten Weise aktiviert mit versenkten Kanten dargestellt.

    Die weitere Funktionalität ist aber noch offen - und da könnte ich Eure Hilfe bzw. Anregung gebrauchen.

    Die "Selection"-Funktion soll ein im Grafik-Fenster der GUI sichtbares Grafik-Element (Objekt) auswählen, wenn man um dieses ein Markierungs-Rechteck zieht. Dieses Markierungs-Rechteck muß dabei nicht das ganze Objekt einschließen (ist u.U. manchmal auch gar nicht zweckmäßig).
    Wie ich bereits beschrieben habe, sind alle Grafik-Elemente mit ihren spezifischen Parametern im Parameter-Array (siehe Anhang) abgelegt.
    Aufgabe ist es nun, eine Strategie, bzw. Verfahren zu finden, welches das mit dem Markierungsrahmen gekennzeichnete Element im Grafik-Fenster der GUI in der Auflistung im Parameter-Array zu finden. Als Ausgangsdaten stehen die X/Y-Koordinatenwerte des Markierungs-Rechtecks links-oben und rechts-unten, sowie die Werte im Parameter-Array zur Verfügung.

    Wird das betreffende Element gefunden, soll es zum Zeichen dessen gekennzeichnet werden, z.B. durch eine andere Farbgebung und/oder mit kleinen Markierungs-Kreisen/Rechtecken an relevanten Punkten des Elementes (z.B. Anfangs- und Endpunkt bei LINE). Danach kann es dann hinsichtlich seiner Eigenschaften (Farbe usw.) über ein weiteres Dialog-Fenster manipuliert werden. Aber auch an weitere Bearbeitungen ist gedacht:
    Kopieren-Einfügen als neues Objekt, Verschieben usw.
    Dazu bedarf es dann noch einer weiteren Ausgestaltung der "Selection"-Funktion, wie z.B. das Hinzufügen von Bezugspunkten.

    Nun bin ich sehr gespannt auf Eure konstruktiven Beiträge.

    Edit:

    Mir ist gerade aufgefallen, daß in der gezippten Version CADnewXX.exe die Bottum-Bilder nicht erscheinen. Diese werden also offensichtlich in der Exe nur als Verweis hinterlegt, so daß man die Bildchen mit dazupacken muß. Das Starten der Exe aus der Zip führt nicht zum Erfolg - man muß die Zip wirklich auspacken, am besten in einen separaten Ordner.

    Mit herbstlichen Grüßen an einem sonnigen Sonntag aus Berlin

    PSblnkd

    Dateien

    CADnew02.zip 385,66 kB – 745 Downloads
  • Wir bauen uns ein CAD

    • PSblnkd
    • 19. September 2010 um 12:01

    AntiSpeed

    1. AutoIt - wie sonst ???

    2. Ich lerne schnell - bevor Du solch abfällige Bemerkungen machst, solltest Du Dir erst einmal das - zugegebenermaßen vorläufige - Ergebnis im Attachment anschauen. Deinen (möglicherweise) Anfänger-Status solltest Du nicht mit dem meinem vergleichen - da bin ich nun doch offensichtlich schon darüberhinaus.

    Und was Deine Rechtschreibung anbetrifft - na, lassen wir das lieber....

    Auf solche unkonstruktiven Beiträge kann man sicher verzichten!

    PSblnkd

  • Wir bauen uns ein CAD

    • PSblnkd
    • 19. September 2010 um 10:18

    Die Sommerpause ist vorbei und nun geht's wieder weiter...

    chrisatack
    Ich hatte mich mal etwas eingehender mit Deinem CAD-Programm befasst, ohne jetzt wirklich alle Deteils auf Anhieb zu verstehen. Interessant ist aber die Implementierung eines Gitternetzes und - wenn ich das richtig sehe - auch eines x/y-Lineals. Die eigentliche Zeichenfunktion hast Du offensichtlich mit der Buffer-Technologie realisiert, was mir bisher leider nicht gelungen ist.
    Weiterhin interessant ist aber - und deshalb auch meine Zeilen dazu - die neue Version der UDF "GDIP.au3". Diese ist offensichtlich eine wesentlich erweiterte Version der alten, in der AutoIt-Installation enthaltenen "GDI+.au3". Leider gibt es dazu keine Hilfe-Unterstützung in der Form, wie bei der alten. Die intern enthaltenen Text-Passagen sind bei der praktischen Arbeit nicht wirklich hilfreich - und das nicht nur, weil sie nur in englisch sind.
    Um Verwechslungen zu vermeiden, sollte die "neue GDIP.au3" besser "GDIPext.au3" benannt werden.

    Im Zusammenhang mit der Bearbeitung des CAD-Themas ist mir auch aufgefallen, daß es recht hilfreich sein könnte - vor allem für die hier offensichtlich auch vertretenen Spiele-Programmierer - wenn es eine Implementierung der DirectX-Technologie als UDF geben würde - so zu sagen als Alternative zu OpenGL.

    Doch zurück zum Projekt.

    Das Problem mit der Flackerei im Grafikfenster beim Ziehen einer Linie hat mich doch sehr beschäftigt.
    Nach dem GDI+-Tutorial von "Ubuntu" sollte dieses mit der sog. "Buffer-Technologie" behoben werden können. Leider habe ich das bisher trotz vielfältigen Versuchen nicht hinbekommen. Mir ist da aber eine andere Lösung eingefallen. Hier wieder ein Auszug aus dem aktuellen Entwicklungsbericht:

    Die dauernde Löschung des Grafik-Fensters bewirkt unschönes Flackern desselben, wenn mit der Mouse eine Linie gezogen wird. Möglicherweise könnte damit Abhilfe geschaffen werden (oder der Mangel vermindert werden), in dem statt jedes Mal das Grafik-Fenster zu löschen und anschließend neu aufzubauen, ein Objekt (in diesem Fall eine Linie) mit den gleichen Koordinaten gezeichnet wird – allerdings jetzt mit einem „weißen Pen“. Damit wird das Objekt auf dem weißen Hintergrund unsichtbar.
    Vorraussetzung ist dazu allerdings, daß die letzten Koordinaten zwischengespeichert werden, da mit jeder Mouse-Verschiebung neue Koordinaten erzeugt werden. 
    Mit der Aufgabe "Ersetzen der Komplett-Löschung des Grafikfensters durch nochmaliges Überschreiben der zuvor gezeichneten Linie mit den gleichen Koordinaten, aber diesmal mit weißem Pen“ wurde der gesamte Code überarbeitet, neu geordnet und in der Quelle „CADnew.au3“ abgelegt.

    Durch diese neue Version wird bei der Mouse-Verschiebung eine vorher gezeichnete Line unsichtbar und weil nunmehr keine dauernde Löschung des ganzen Grafikfensters vorgenommen werden muß, gibt auch kein „Flackern“ mehr.

    So schön, wie diese Routine jetzt auch „flackerfrei“ funktioniert, hat sie jedoch immer noch den Nachteil, daß vorher mit der Mouse gezeichnete Linien-Objekte wieder unsichtbar werden. Das ist natürlich so nicht gewollt und somit keine generelle Lösung des Problems. Es macht nicht viel Sinn, wenn man beim Zeichnen einer Linie, z.B. von, oder zu einem bestimmten Punkt eines vorhandenen Objektes, diesen fortan nicht mehr sehen kann.

    Eine genaue Untersuchung des o. g. Problems ergab jedoch, daß nur die mit der Mouse gezeichnete Linien-Objekte wieder verschwinden, während mittels Parameter-Eingabe und Enter gezeichnete Linien-Objekte davon nicht betroffen sind. Der o.g. Effekt ist nachvollziehbar, weil bei einem neu mit der Mouse zu zeichnenden Linien-Objekt ebenso, wie bei den laufenden Zeichenprozessen in UP MouseMove die vorher gezeichnete Linie mit weißem Pen überschrieben wird.

    Das Problem wurde mit einer einfachen If...Then-Abfrage gelöst und das Ergebnis ist im Anhang zu sehen. Als nächstes soll dann das Parameter-Array eingebunden werden und somit die Selection-Funktionalität u.a. vorbereitet werden. Das Zeichen von anderen Primitiven, wie Kreis und Rechteck usw. dürfte sich nach der grundlegenden Wegbereitung als relativ einfach erweisen.

    Leider habe ich von "ahnungslos" - welcher sich bisher als Einzigster bereit erklärte, daran mitzuarbeiten - nichts wieder gehört, nach dem ich ihm den vollständigen Quelltext nebst aktuellen Entwicklungsbericht geschickt hatte. Mail-Anfragen blieben unbeantwortet. - Schade!

    Es wird aber trotzdem weitergehen, auch wenn ich hier als Einzelkämpfer dastehe....

    Bis demnächst mit sonnigen Grüssen aus Berlin

    PSblnkd

  • Wir bauen uns ein CAD

    • PSblnkd
    • 6. August 2010 um 21:41

    Andere Leute liegen faul in der Sonne - ich habe mir wieder ein paar Gedanken gemacht, wie es weitergehen kann.

    Zitat- Auszüge aus dem Enwicklungsbericht:

    Mit der Programmierung der LINE-Funktionalität wurde gezeigt, wie eine Linie im Grafik-Fenster gezeichnet werden kann. Während mittels Konsoleneingabe erzeugte Linien bereits mehrfach dargestellt werden können, ist das bei der Mouse-unterstützten Variante nicht so. Hier wird durch die programmierte Funktionalität vor jedem Neuzeichen einer Linie das Grafik-Fenster gelöscht, so daß immer nur die zuletzt gezeichnete Linie zu sehen ist.
    Das ist unbefriedigend! 

    Außerdem ist es nicht möglich, im Nachgang irgendwelche Eigenschaften der Linie zu ändern – und sei es auch nur die Farbe. Das hängt mit der besonderen Wirkungsweise der GDI-Funktionalität zusammen, die anhand übergebener Parameter eigenständig die Linie zeichnet und zwar direkt im Bildwiederholspeicher der Grafik-Einheit (-Karte). Sind die Parameter an das GDI übergeben und die Linie ist gezeichnet, hat man dann darauf keinen Zugriff mehr. 

    Um die Parameter einer Linie (oder eines anderen Grafik-Objektes) ändern zu können, sowie weitere Funktionalität zu ermöglichen – insbesondere die Zeichnung mit den allen darin enthaltenen Grafik-Elementen abspeichern, bzw. auch laden zu können, muß man sich eines internen Hilfsmittels bedienen.

    Das kann mit zwei Methoden realisiert werden: 

    - Parameter-Array 
    - Parameter-Datenbank 

    Leider haben die in AutoIt definierte Arrays eine Größenbeschränkung von 64 Dimensionen (das könnte ausreichen) aber mit max. 2^24 (16 777 216) Einträgen insgesamt sind dann auch die Anzahl der zu verwaltenden Grafik-Elemente begrenzt. 

    Alternativ könnte auch mit einer Datenbank gearbeitet werden...(???)...na ich weis nicht... 

    In dem Parameter-Array sind alle Parameter jedes Grafik-Elements enthalten, welches bereits erzeugt wurde, bzw. welche als Datei abgespeichert waren und nun wieder geladen wurden.
    Zur Darstellung der Grafiken im Grafik-Fenster werden der Reihe nach alle Grafik-Elemente aus dem Array ausgelesen und dem GDI zum Zeichnen übergeben.
    Hier liegt dann auch der besondere Vorteil solcher Technologie, weil man damit in der Lage ist, nur bestimmte Bereiche der gesamten Grafik-Collection auszuwählen (z.B. für die Zoom- und Pan-Funktionalität) und Änderungen an den einzelnen Grafik-Elementen im Array vornehmen kann, worauf dann eine Aktualisierung der Darstellung im Grafik-Fenster vorgenommen wird. 

    Wie müsste ein solches Parameter-Array angelegt werden, mit welcher Struktur?
    In professionellen CAD-Programmen ist das eines der best gehüteten Geheimnisse. Durch Analyse offengelegter Schnittstellen kann man zwar einige Rückschlüsse ziehen, aber auch die propritären Datenformate abgespeicherter Zeichnungen geben hier nur wenig Einblicke in die Interna jedes kommerziellen CAD-Programms. 

    Soweit für heute...später geht's dann weiter... 
    Bin sehr gespannt auf Eure Meinungen dazu!


    MbG aus Berlin

    PSblnkd

  • Wir bauen uns ein CAD

    • PSblnkd
    • 5. Juli 2010 um 22:36

    chrisatack
    Alizame

    Vielen Dank für eure Code.
    Da es z.T. mit der Kommentierung nicht weit her ist, muß ich das erst mal in Ruhe durchforsten.
    Momentan bin ich beruflich wieder stark eingespannt, aber wenn es Neues zu berichten gibt, stehe ich wieder hier auf der Matte.
    Leider hat nur ein AutoIt-User mir seine Hilfe angeboten bei diesen - zugegebenermaßen - Mammutprojekt.

    Aber es wird werden und wenn's ohne Eure Hilfe nicht weitergeht - naja dann gibt's ja noch dieses Forum.

    Mit sommerlichen Grüßen aus Berlin

    PSblnkd

  • Wir bauen uns ein CAD

    • PSblnkd
    • 23. Juni 2010 um 10:58

    Eigentlich hatte ich ein wenig mehr Begeisterung erwartet und vielleicht den einen oder anderen Mitstreiter...

    Natürlich braucht man das Rad nicht neu zu erfinden, aber ich hatte ja schon dargelegt, warum ich mich mit diesem Thema befassen will.
    Es ist höchst interessant, macht Spaß und man kann sehr viel lernen, wenn man sich tiefgründig mit Problemen befassen muß, die zwar durch andere schon irgendwie gelöst wurden - nur wie, das ist halt nicht (mehr) bekannt...

    Damit Ihr seht, daß ich in der Zwischenzeit nicht untätig gewesen bin - das derzeitige Ergebnis ist anbei.

    Nach Entzippen und Start der "CAD.exe" sollte die Bedieneroberfläche zu sehen sein, wie bereits in "Ein CAD.pdf" abgebildet. Die Menüs sind noch alle ohne Funktion, lediglich die Schaltfläche "Einfache Linie" ist schon aktiv. Durch Drücken auf diese Schaltfläche (= Modus "Einfach Linie zeichnen") erscheinen links unten vier weitere Eingabefelder nebst Beschriftung. Dort können die Koordinaten der Anfangs- und Endpunkte der zu zeichenden Linie eingegeben werden und mit "ENTER"-Abschluß wird dann die Linie auf der Grafikfläche gezeichnet.
    Ebenfalls möglich ist derzeit schon das Linen-Zeichnen mit der Mouse. Dazu wird am gewünschten Anfangspunkt mit der Mouse auf die Grafikfläche geklickt - die Line "hängt" jetzt am Mouse-Cursor - und mit einem weiteren Mouseklick am Endpunkt wird die Linie gezeichnet. Die Anfangs- und Endkoordinaten der Linie werden laufend in den vier Eingabefeldern angezeigt.
    Eine Größenveränderung der GUI mit der Mouse ist ebenfalls möglich, allerdings sind mir dabei noch nicht alle Eventualitäten geglückt...

    Es würde mich sehr freuen, wenn sich jemand - oder auch mehrere - ernsthaft daran beteiligen wollen. Die Quelle und der bereits erwähnte aktuelle Entwicklungsbericht stehen zur Verfügung.

    Mit sommerlichen Grüßen aus Berlin

    PSblnkd

    Dateien

    CAD.zip 365,85 kB – 757 Downloads
  • Wir bauen uns ein CAD

    • PSblnkd
    • 13. Juni 2010 um 10:40

    Man muß ja nicht gleich ein Auto haben wollen, wenn's zunächst ein Fahrrad auch tut - im Klartext:

    Sicherlich sind die heute verfügbaren CAD alle (?) 3D-fähig und haben einen riesigen Funktionsumfang,
    aber auch diese haben einmal klein angefangen und zwar mit 2D.
    Wenn Ihr in die beigefügte pdf schaut, ist dort auch schon der Screenshot einer (teil-)fertige Bedieneroberfläche zu sehen.
    Um nicht die Übersicht zu verlieren, schreibe ich parallel zum Quelltext einen stets aktualisierten Entwicklungsbericht (Inhaltsverzeichnis in der pdf).
    Das ist insbesondere dann notwendig, wenn man noch weitere "Baustellen" so nebenbei zu betreuen hat.

    Wenn sich hier allgemeines Interesse breit machen sollte, werde ich auch weiter über die aktuellen Fortschritte berichten.
    Mithilfe, Diskussion und Kritik wird gern angenommen!

    Mit sommerlichen Grüssen

    PSblnkd

  • Wir bauen uns ein CAD

    • PSblnkd
    • 11. Juni 2010 um 10:30

    Hallo zusammen!

    Seit kurzem bin ich begeisterter AutoIt-User und habe mich nach einigen Probe-Skripts auch gleich an ein großes Projekt gewagt.
    Nun würde jeder dem entgegenhalten, dass man fertige CAD-Programme in allen Preislagen kaufen kann. Das ist natürlich richtig und ich kenne AutoCAD, wie auch das preiswertere TurboCAD, wobei letzteres von mir intensiv benutzt wird.
    Der Reiz an der Sache ist eigentlich die Umsetzung der vielfältigen Funktionen eines CAD-Programms mit dem Mitteln von AutoIt.
    OpenSource-CAD gibt es nur spärlich und mit diesbezüglicher Literatur dazu ist es auch nicht weit her.

    Ein solches Projekt ist also eine richtige Herausforderung und lernen kann man auch sehr viel dabei.

    Frage:
    Wen interessiert so etwas?
    Wer würde daran mitarbeiten wollen?

    Mit sommerlichen Grüssen aus Berlin

    PSblnkd

    Dateien

    Ein CAD.pdf 55,64 kB – 1.021 Downloads

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™