LazPlan v0.7 (Beta) - Schaltplansoftware

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
Antworten
Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: LazPlan v0.0.2.3 - Schaltplansoftware

Beitrag von Mathias »

Ich habs raus. Ich wollte auch den Trick mit "TImageList.Draw" anwenden um zu schauen, ob sie überhaupt in der ImageList sind. Aus irgend einem Grund geht es, wenn man das macht.
Dies kann ich nachvollziehen, aber nur bei nativen Windows, bei Wine hat dies keinen Einfluss.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: LazPlan v0.0.2.3 - Schaltplansoftware

Beitrag von Mathias »

Ich habe noch eine Bug entdeckt, betrifft nur Linux, wen man auf SmalIIcon stellt.

Code: Alles auswählen

  ListView1.ViewStyle := vsSmallIcon;
  ListView1.SmallImages := ImageList1;

Sieht das Ganze gleich aus, wie mit den grossen Iconen.

Unter Windows werden sie wie erwartet klein dargestellt, aber leider auch wie mit den oben beschriebenen Darstellungsfehler.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: LazPlan v0.0.2.3 - Schaltplansoftware

Beitrag von Timm Thaler »

Also mal ehrlich: Das gleiche Symbol mehrfach für verschiedene Drehungen und Spiegelungen anlegen halte ich für sehr unglücklich. Bei einem Transistor brauche ich dann 8 Einzelsymbole, 4 Drehungen, und zu jeder Drehung 2 Spiegelungen. Und ich weiss beim Aufnehmen des Symbols noch nicht, wie rum das mal im Schaltplan stehen wird. Will ich die Diode horizontal statt vertikal, muss ich das Symbol austauschen.

Ein Symbol und als Eigenschaften Rotation und Spiegelung.

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: LazPlan v0.0.2.3 - Schaltplansoftware

Beitrag von compmgmt »

@Timm Thaler: lies dir mal die letzten Beiträge durch oder schau auf die erste Seite in die Wunschliste ;)

Ich bin halt leider auch kein Oktopus mit Acht Armen, der alles gleichzeitig machen kann ;)

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: LazPlan v0.0.2.3 - Schaltplansoftware

Beitrag von compmgmt »

So, nun kann man die Schaltsymbole um 0°, 90°, 180° und 270° von der Ursprungsposition aus drehen. Allerdings drehen sich die Anschlusspins noch nicht mit, was ich jetzt einbauen werde. Ebenso kommt dann noch die Spiegelung.

edit: Jetzt sind auch die Pins fertig. Fehlt nur noch die Horizontale und Vertikale Spiegelung.
Dateianhänge
Motor gedreht
Motor gedreht

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: LazPlan v0.0.2.3 - Schaltplansoftware

Beitrag von MacWomble »

Bitte verstehe mich jetzt nicht falsch, ich will nicht nörgeln sondern konstruktiv kritisieren

Du hast ein wirklich tolles Projekt begonnen und möchtest dieses sicher auch irgendwann zur Verwendung bereit stellen!

Die Symbole als Pixelgrafik macht das Programm m.E. uninteressant. Das hatten wir in den 80ern.

Warum machst du dir so viel Mühe mit Pixelsymbolen, anstatt ein Vectormodell zu erstellen, in welchem die Symbole einheitlich verwaltet werden?
Du steckst viel Aufwand in die Programmierung - was richtig ist, aber auf halbem Weg ziehst du die Bremsen an. Denke auch an Verkleinerungen/Vergrößerungen der Pläne. Mit Pixelgrafik wird auch das nichts.

Lass dir aber bitte nicht den Mut und die Lust an diesem Projekt nehmen, nur weil ich hier meine Meinung kund tue!
Andere sehen das evtl. anders als ich.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: LazPlan v0.0.2.3 - Schaltplansoftware

Beitrag von compmgmt »

Mit Vektorgrafiken ist es natürlich wesentlich besser, allerdings mag ich gerade diesen alten Pixel Stil (auch wenn er nicht mehr Zeitgemäß ist). Klar, vergrößern und verkleinern wird schwer bzw nahezu unmöglich, das ist aber für mich ok und völlig ausreichend.

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: LazPlan v0.0.2.3 - Schaltplansoftware

Beitrag von MacWomble »

OK, aber du könntest in Vektorgrafiken z.B. die Pins definieren, ohne deren Position übermitteln zu müssen. Beschriftungen können dynamisch mitgeführt werden etc. Alles Sachen, die im Endeffekt notwendig sind und dein Programm bei besserem Komfort einfacher/flexibler gestalten würden. Neue Symbole könnten einfach hinzugefügt werden, ohne zusätzlich Logik programmieren zu müssen. :shock:

OK, aber es ist deine Entscheidung. Ich wünsch dir dennoch viel Spaß und Erfolg.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: LazPlan v0.0.3.0 - Schaltplansoftware

Beitrag von compmgmt »

So, Drehung und Spiegelung sind fertig gestellt. Wenn damit jetzt alles funktioniert, werden ab sofort mehr Schaltsymbole eingebaut.

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: LazPlan v0.0.3.0 - Schaltplansoftware

Beitrag von Mathias »

So, Drehung und Spiegelung sind fertig gestellt.

Mit dem hat sich ein Fehler eingeschlichen.
Wen man den Dreiphasenmotor spiegelt, hat man ein "3" welche auf die falsche Seite guckt.

Wenn damit jetzt alles funktioniert, werden ab sofort mehr Schaltsymbole eingebaut.

Das mit der Vektor-Grafik würde ich nochmals überlegen, wen man eine UltraHD-Schirm oder in Zukunft noch grössere Auflösungen hat, wird man irgendwan die Symbole mit der Lupe suchen müssen. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: LazPlan v0.0.3.0 - Schaltplansoftware

Beitrag von compmgmt »

Mathias hat geschrieben:
So, Drehung und Spiegelung sind fertig gestellt.

Mit dem hat sich ein Fehler eingeschlichen.
Wen man den Dreiphasenmotor spiegelt, hat man ein "3" welche auf die falsche Seite guckt.
Kann ich leider nicht ändern, da nunmal das komplette Bitmap gedreht wird. Allerdings ist die Spiegelung auch nicht für sowas gedacht, sondern eher für Dioden oder Transistoren. Deswegen haben die Motoren als einzige Schaltsymbole und immer noch die alte Ausrichtung.

Mathias hat geschrieben:
Wenn damit jetzt alles funktioniert, werden ab sofort mehr Schaltsymbole eingebaut.

Das mit der Vektor-Grafik würde ich nochmals überlegen, wen man eine UltraHD-Schirm oder in Zukunft noch grössere Auflösungen hat, wird man irgendwan die Symbole mit der Lupe suchen müssen. :wink:
Ich hab aber sehr wenig Erfahrung auf dem Gebiet und aktuell auch keine Lust mich da rein zu lesen, da das ganze auch verdammt aufwändig ist am Ende zu programmieren ;)

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: LazPlan v0.0.3.0 - Schaltplansoftware

Beitrag von Mathias »

Ich hab aber sehr wenig Erfahrung auf dem Gebiet und aktuell auch keine Lust mich da rein zu lesen, da das ganze auch verdammt aufwändig ist am Ende zu programmieren ;)
Wen man ein CAD, oder was ähnliches finden, welches ein sehr einfaches Format hat, so wie es bei Bitmap das XPM gibt, welches alles in Text speichert, wird dies etwa gleich einfach sein, wie mit den Bitmaps.

Kann ich leider nicht ändern, da nunmal das komplette Bitmap gedreht wird. Allerdings ist die Spiegelung auch nicht für sowas gedacht, sondern eher für Dioden oder Transistoren. Deswegen haben die Motoren als einzige Schaltsymbole und immer noch die alte Ausrichtung.
Da du zu jedem Symbol eine CFG-Datei hast, könntest du die Spiegelung mit einem Parameter sperren.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: LazPlan v0.0.3.0 - Schaltplansoftware

Beitrag von Timm Thaler »

compmgmt hat geschrieben:Ich hab aber sehr wenig Erfahrung auf dem Gebiet und aktuell auch keine Lust mich da rein zu lesen, da das ganze auch verdammt aufwändig ist am Ende zu programmieren ;)


Nope, ist es nicht. Hab ich auch erst gedacht, aber als ich meine Diagramme als PNG in einem Konsolenprogramm erzeugen wollte, bin ich über den Aufwand mit Pixelgrafik in der Konsole gestolpert. Daraufhin habe ich mir SVG angesehen und war begeistert: Das ist wie HTML schreiben, nur für Bilder. Du hast Linien, Kreis, Ellipsen, Rechteck, Polygon, Pfade, Text, Gruppierung, Liniendicke, Linienfarbe... und kannst alles direkt bestimmen. Du kannst zum Beispiel einen Text "Ident" im Symbol haben und einen Text "Value", und bei der Darstellung diese direkt durch "M1" und "5kW" ersetzen. Du kannst die Pinbezeichnungen aller Pins als Text festlegen, in einer Gruppe "Pins" zusammenfassen und dann bei der Darstellung diese Gruppe ausblenden oder ihr eine andere Farbe geben.

Und das Beste: Die Liste der Schaltsymbole in der Wikipedia enthält - genau - SVGs. https://de.wikipedia.org/wiki/Liste_der_Schaltzeichen_(Elektrik/Elektronik) Du musst also nichtmal selber malen.

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: LazPlan v0.0.3.0 - Schaltplansoftware

Beitrag von compmgmt »

Timm Thaler hat geschrieben:
compmgmt hat geschrieben:Ich hab aber sehr wenig Erfahrung auf dem Gebiet und aktuell auch keine Lust mich da rein zu lesen, da das ganze auch verdammt aufwändig ist am Ende zu programmieren ;)


Nope, ist es nicht. Hab ich auch erst gedacht, aber als ich meine Diagramme als PNG in einem Konsolenprogramm erzeugen wollte, bin ich über den Aufwand mit Pixelgrafik in der Konsole gestolpert. Daraufhin habe ich mir SVG angesehen und war begeistert: Das ist wie HTML schreiben, nur für Bilder. Du hast Linien, Kreis, Ellipsen, Rechteck, Polygon, Pfade, Text, Gruppierung, Liniendicke, Linienfarbe... und kannst alles direkt bestimmen. Du kannst zum Beispiel einen Text "Ident" im Symbol haben und einen Text "Value", und bei der Darstellung diese direkt durch "M1" und "5kW" ersetzen. Du kannst die Pinbezeichnungen aller Pins als Text festlegen, in einer Gruppe "Pins" zusammenfassen und dann bei der Darstellung diese Gruppe ausblenden oder ihr eine andere Farbe geben.

Und das Beste: Die Liste der Schaltsymbole in der Wikipedia enthält - genau - SVGs. https://de.wikipedia.org/wiki/Liste_der_Schaltzeichen_(Elektrik/Elektronik) Du musst also nichtmal selber malen.
Achso, wenn das also wirklich nicht so schwierig ist, kann man das nutzen. Dann werde ich mal da mal in den nächsten Tagen rein lesen. Die Schaltsymbole in Wikipedia dürften CreativeCommons sein und daher sollte es ja (wie du es schreibst) kein Problem sein, diese zu nutzen.

Noch mal kurz zur aktuellen Drehung und Spiegelung: Mir ist gestern Abend noch eingefallen, dass ich zwar das Schaltsymbol um 90°, 180°, 270° drehen und horizontal bzw. vertikal spiegeln kann, aber nicht kombiniert. D. h. drehen und dann spiegeln geht gar nicht :lol:

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

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

Re: LazPlan v0.0.3.0 - Schaltplansoftware

Beitrag von wp_xyz »

Timm Thaler hat geschrieben:Nope, ist es nicht. Hab ich auch erst gedacht, aber als ich meine Diagramme als PNG in einem Konsolenprogramm erzeugen wollte, bin ich über den Aufwand mit Pixelgrafik in der Konsole gestolpert. Daraufhin habe ich mir SVG angesehen und war begeistert: Das ist wie HTML schreiben, nur für Bilder. Du hast Linien, Kreis, Ellipsen, Rechteck, Polygon, Pfade, Text, Gruppierung, Liniendicke, Linienfarbe... und kannst alles direkt bestimmen. Du kannst zum Beispiel einen Text "Ident" im Symbol haben und einen Text "Value", und bei der Darstellung diese direkt durch "M1" und "5kW" ersetzen. Du kannst die Pinbezeichnungen aller Pins als Text festlegen, in einer Gruppe "Pins" zusammenfassen und dann bei der Darstellung diese Gruppe ausblenden oder ihr eine andere Farbe geben.

Und das Beste: Die Liste der Schaltsymbole in der Wikipedia enthält - genau - SVGs. https://de.wikipedia.org/wiki/Liste_der_Schaltzeichen_(Elektrik/Elektronik) Du musst also nichtmal selber malen.

Du zählst hier nur die Vorteile auf, vergisst aber die Nachteile: Es gibt keinen Renderer für SVG in der LCL, vor allem einen, der mit der Handhabung von Bitmaps vergleichbar wäre. Es gibt zwar fpvectorial, aber das hat lauter Macken (wobei einfache Liniengraphiken funktionieren sollten - müsste man mal ausprobieren), und bgrabitmap kann das ebenfalls darstellen, nur muss sich der TS dann in diese neue Bibliothek einarbeiten. SVG bedeutet auf jeden Falle eine massive Änderung im Projekt des TS (die allerdings früher oder später sowieso kommen wird).

Antworten