LazPlan v0.3.0.0 - Schaltplansoftware

Vorstellungen von Programmen, welche mit Lazarus erstellt worden.

LazPlan v0.3.0.0 - Schaltplansoftware

Beitragvon compmgmt » 20. Jul 2017, 08:01 LazPlan v0.3.0.0 - Schaltplansoftware

Hallo,

da ich eine Ausbildung zum Elektroniker mache, möchte ich mir selbst eine Schaltplansoftware schreiben. Per Drag and Drop lassen sich alle Schaltsymbole in einem 8er Raster verschieben. Leitungen können nur an Schaltsymbolen platziert werden. Um Sie frei zu verlegen (z.B. eine L, N, PE "Schiene") wird als Start- und Endpunkt der "Blinde Punkt" in der Kategorie "Leitungen" verwendet.

Plattformen
Offizielle Unterstützung:
Win32-i386
Linux-i386
Linux-x86_64
Eine Binärdatei für Win64-x86_64 liegt nicht explizit bei. Es kann die von Win32-i386 verwendet werden.

Download
http://www.patrick-lampke.de/index.php?mode=&page=lazplan

Liste mit geplanten Schaltsymbolen
Code: Alles auswählen
   - Fehlerstromschutzeinrichtungen
      - RCD (FI)
   - IC-Bausteine
      - IC-Baustein (18 bis 48 Pins; in 2er Schritten)
   - Schaltkontakte
      - Öffner (Schalter)
      - Öffner (Taster)
      - Schließer (Schalter)
      - Schließer (Taster)
      - Wechselkontakt
      - Wechselschalter
   - Widerstände
      - Potientometer


Changelog
http://lazplan.patrick-lampke.de/docs/changelog.pdf

Bilder
Bild
LazPlan: Einfache Thyristorschaltung, die eine LED mit Vorwiderstand per Taster S1 ein- und Taster S0 ausschaltet.

Bild
LazPlan: Wende-Schützschaltung "Wende über Aus" mit Tast- und Schützverriegelung, sowie Selbsthaltung.

Bild
LazPlan: Netzteil 230VAC -> 24VDC mit Brückengleichrichter und Kondensator zum Glätten der Spannung.

Bild
SymEdit: Schaltsymboleditor für LazPlan

So, jetzt wünsche ich viel Spaß beim Testen und freue mich über Feedback:
http://www.patrick-lampke.de/index.php?mode=&page=lazplan

Gruß
Patrick Lampke
Zuletzt geändert von compmgmt am 1. Okt 2017, 05:36, insgesamt 52-mal geändert.
Signatur.exe hat eine Zugriffsverletzung ausgelöst und muss beendet werden
compmgmt
 
Beiträge: 272
Registriert: 25. Nov 2015, 17:06
Wohnort: in der Nähe von Stuttgart
OS, Lazarus, FPC: Win 10 Pro + Linux Manjaro 17.0.2 | Lazarus 1.6.4 | FPC 3.0.2 | 
CPU-Target: i386 + x86_64
Nach oben

Beitragvon corpsman » 20. Jul 2017, 08:46 Re: LazPlan - Schaltplansoftware

Also wenn ich bei deinem Link auf Herunterladen klicke, passiert nichts, warum hängst du ein 600k file nicht einfach an den Beitrag an ?

Wenn der Source Dabei ist, kann ich gern mal schaun ob es unter Linux compiliert.
--
Just try it
corpsman
 
Beiträge: 1013
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Kubuntu 14.04, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 32Bit
Nach oben

Beitragvon compmgmt » 20. Jul 2017, 10:27 Re: LazPlan - Schaltplansoftware

corpsman hat geschrieben:Also wenn ich bei deinem Link auf Herunterladen klicke, passiert nichts, warum hängst du ein 600k file nicht einfach an den Beitrag an ?
Sehr merkwürdig. Ja, ich häng es ran.

corpsman hat geschrieben:Wenn der Source Dabei ist, kann ich gern mal schaun ob es unter Linux compiliert.
Ja, würde theoretisch auf Linux laufen, ich häng den Source Code an ;)
Signatur.exe hat eine Zugriffsverletzung ausgelöst und muss beendet werden
compmgmt
 
Beiträge: 272
Registriert: 25. Nov 2015, 17:06
Wohnort: in der Nähe von Stuttgart
OS, Lazarus, FPC: Win 10 Pro + Linux Manjaro 17.0.2 | Lazarus 1.6.4 | FPC 3.0.2 | 
CPU-Target: i386 + x86_64
Nach oben

Beitragvon corpsman » 20. Jul 2017, 14:48 Re: LazPlan - Schaltplansoftware

So getestet :

Um es mit Lazarus kompilieren zu können musste ich die Unit Lazfileutils in die uses der wlazplan.pas eintragen.
im Ordner components hast du Verzeichnisse wie "Widerstände" die ä, ö, ü sind gar nicht gut, da würde ich englische Verzeichnisnamen empfehlen.

Code: Alles auswählen
 
procedure TWnd_LazPlan.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  // ObjectPath definieren
  ObjectPath := ExtractFilePath(Application.ExeName) + 'Components/';
  // CfgPath und CfgFile definieren
  CfgPath := GetEnvironmentVariable('appdata') + '\LazPlan';
   CfgFile := CfgPath + '
LazPlan.cfg';


Hart Kodierte Pathdelims sind nicht Plattformunabhängig besser :
Code: Alles auswählen
 
procedure TWnd_LazPlan.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  // ObjectPath definieren
  ObjectPath := ExtractFilePath(Application.ExeName) + 'Components'+PathDelim;
  // CfgPath und CfgFile definieren
  CfgPath :=  IncludeTrailingPathDelimiter(GetEnvironmentVariable('appdata')) + 'LazPlan'+PathDelim;
   CfgFile := CfgPath + 'LazPlan.cfg';     
 


Dann kommt noch 2 mal die Meldung das das Verzeichnis "/lazplan/" nicht erstellt werden kann, ich denke mal das liegt an GetEnvironmentVariable('appdata'), bin mir aber nicht sicher.

Ansonsten kann man es starten und "nutzen" siehe Screenshot.

So viel zum Thema Linux ;)

Viel Spass beim weiter entwickeln.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
--
Just try it
corpsman
 
Beiträge: 1013
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Kubuntu 14.04, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 32Bit
Nach oben

Beitragvon compmgmt » 20. Jul 2017, 17:31 Re: LazPlan - Schaltplansoftware

corpsman hat geschrieben:Um es mit Lazarus kompilieren zu können musste ich die Unit Lazfileutils in die uses der wlazplan.pas eintragen.
im Ordner components hast du Verzeichnisse wie "Widerstände" die ä, ö, ü sind gar nicht gut, da würde ich englische Verzeichnisnamen empfehlen.
Jo, das lässt sich ja leicht ändern.

corpsman hat geschrieben:Hart Kodierte Pathdelims sind nicht Plattformunabhängig besser :
Code: Alles auswählen
 
procedure TWnd_LazPlan.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  // ObjectPath definieren
  ObjectPath := ExtractFilePath(Application.ExeName) + 'Components'+PathDelim;
  // CfgPath und CfgFile definieren
  CfgPath :=  IncludeTrailingPathDelimiter(GetEnvironmentVariable('appdata')) + 'LazPlan'+PathDelim;
   CfgFile := CfgPath + 'LazPlan.cfg';     
 
Ja, Windows kann sowohl "/" als auch "\", aber mit PathDelim wäre es definitiv eleganter und sauberer.

corpsman hat geschrieben:Dann kommt noch 2 mal die Meldung das das Verzeichnis "/lazplan/" nicht erstellt werden kann, ich denke mal das liegt an GetEnvironmentVariable('appdata'), bin mir aber nicht sicher.
Ja, da kann man ja einfach mit einem ifdef schalter "Home" statt "appdata" unter Linux nehmen.
Signatur.exe hat eine Zugriffsverletzung ausgelöst und muss beendet werden
compmgmt
 
Beiträge: 272
Registriert: 25. Nov 2015, 17:06
Wohnort: in der Nähe von Stuttgart
OS, Lazarus, FPC: Win 10 Pro + Linux Manjaro 17.0.2 | Lazarus 1.6.4 | FPC 3.0.2 | 
CPU-Target: i386 + x86_64
Nach oben

Beitragvon itjump » 21. Jul 2017, 06:29 Re: LazPlan - Schaltplansoftware

compmgmt hat geschrieben:Ja, da kann man ja einfach mit einem ifdef schalter "Home" statt "appdata" unter Linux nehmen.


Vorsicht:, die Schreibweise ist äußerst wichtig, da Linux Case Sensitive. Normal schreibt man es als Umgebungsvariable so: $HOME aber es kann auch sein, das beim Programmieren das "$"-Zeichen nicht geschrieben wird, aber die groß - klein Schreibung ist sehr wichtig.

LG
ITjump
Dieses Forum hier ist Dreck
itjump
 
Beiträge: 179
Registriert: 13. Okt 2016, 17:35
Wohnort: Winnenden

Beitragvon compmgmt » 21. Jul 2017, 07:26 Re: LazPlan - Schaltplansoftware

itjump hat geschrieben:
compmgmt hat geschrieben:Ja, da kann man ja einfach mit einem ifdef schalter "Home" statt "appdata" unter Linux nehmen.


Vorsicht:, die Schreibweise ist äußerst wichtig, da Linux Case Sensitive. Normal schreibt man es als Umgebungsvariable so: $HOME aber es kann auch sein, das beim Programmieren das "$"-Zeichen nicht geschrieben wird, aber die groß - klein Schreibung ist sehr wichtig.

LG
ITjump
Der Variablenprä- und suffix wird weggelassen (unter Linux "$", unter Windows "%"). Und ja, "HOME" schreibt man komplett in groß. Hatte ich ja schon mal gefragt ;)
viewtopic.php?f=16&t=10182
Signatur.exe hat eine Zugriffsverletzung ausgelöst und muss beendet werden
compmgmt
 
Beiträge: 272
Registriert: 25. Nov 2015, 17:06
Wohnort: in der Nähe von Stuttgart
OS, Lazarus, FPC: Win 10 Pro + Linux Manjaro 17.0.2 | Lazarus 1.6.4 | FPC 3.0.2 | 
CPU-Target: i386 + x86_64
Nach oben

Beitragvon siro » 21. Jul 2017, 07:42 Re: LazPlan - Schaltplansoftware

Hallo compmgmt,
ich hab dein Programm grad mal runtergeladen und ausprobiert. Lief auf Anhieb unter Windows, jedoch nur die .exe Datei.
Ohne Anleitung, kam ich sofort zurecht. Funktioniert doch recht ordentlich.
Mit einem Doppeltklick auf das Listenelement könnte man die Taste "Schaltsymbol erstellen" direkt aufrufen, das lässt sich dann einfacher handhaben.
Mir gefällt es, einfach weiter machen.

Siro
Grüße von Siro
"C" verCehnfacht die Entwicklungszeit...
siro
 
Beiträge: 202
Registriert: 23. Aug 2016, 13:25
Wohnort: Berlin
OS, Lazarus, FPC: Windows 7 Windows 8.1 Windows 10 | 
CPU-Target: 64Bit
Nach oben

Beitragvon compmgmt » 21. Jul 2017, 08:16 Re: LazPlan - Schaltplansoftware

siro hat geschrieben:Hallo compmgmt,
ich hab dein Programm grad mal runtergeladen und ausprobiert. Lief auf Anhieb unter Windows, jedoch nur die .exe Datei.
Ohne Anleitung, kam ich sofort zurecht. Funktioniert doch recht ordentlich.
Mit einem Doppeltklick auf das Listenelement könnte man die Taste "Schaltsymbol erstellen" direkt aufrufen, das lässt sich dann einfacher handhaben.
Mir gefällt es, einfach weiter machen.

Siro
Vielen Dank für das Feedback :D

Gute Idee, hab ich direkt eingebaut. Zusätzlich ist mir dann auch noch die Idee gekommen, dass man gleiches mit der Beschriftung machen könnte, nur eben per Enter-Taste.


@corpsman Die entsprechenden Stellen sind jetzt geändert und es sollte unter Linux funktionieren:
Code: Alles auswählen
// CfgPath und CfgFile definieren
  {$ifdef mswindows}
    CfgPath := IncludeTrailingPathDelimiter(GetEnvironmentVariable('appdata')) + 'LazPlan' + PathDelim;
  {$else}
    CfgPath := IncludeTrailingPathDelimiter(GetEnvironmentVariable('HOME')) + '.LazPlan' + PathDelim;
  {$endif}

LG
compmgmt
Signatur.exe hat eine Zugriffsverletzung ausgelöst und muss beendet werden
compmgmt
 
Beiträge: 272
Registriert: 25. Nov 2015, 17:06
Wohnort: in der Nähe von Stuttgart
OS, Lazarus, FPC: Win 10 Pro + Linux Manjaro 17.0.2 | Lazarus 1.6.4 | FPC 3.0.2 | 
CPU-Target: i386 + x86_64
Nach oben

Beitragvon shokwave » 21. Jul 2017, 08:56 Re: LazPlan v0.0.0.1 - Schaltplansoftware

Sorry wenn ich mich einmische, aber wie wäre es mit
Code: Alles auswählen
//Pfad für Einstellungen ermitteln
CfgPath :=  GetAppConfigDir(False);
//Pfad wenn nicht vorhanden anlegen
if not DirectoryExists(CfgPath) then
  ForceDirectories(CfgPath);
mfg Ingo
shokwave
 
Beiträge: 409
Registriert: 15. Nov 2007, 16:58
Wohnort: Rudolstadt
OS, Lazarus, FPC: Win10 (L 1.6 FPC 3.0.0) | 
CPU-Target: i386,x64
Nach oben

Beitragvon compmgmt » 21. Jul 2017, 09:04 Re: LazPlan v0.0.0.1 - Schaltplansoftware

shokwave hat geschrieben:Sorry wenn ich mich einmische, aber wie wäre es mit
Code: Alles auswählen
//Pfad für Einstellungen ermitteln
CfgPath :=  GetAppConfigDir(False);
//Pfad wenn nicht vorhanden anlegen
if not DirectoryExists(CfgPath) then
  ForceDirectories(CfgPath);

Wäre genau so möglich, ja.

EDIT: Wenn man die Binärdatei umbennen würde, würde sich auch der Pfad ändern. Daher eher ungeeignet.
Zuletzt geändert von compmgmt am 21. Jul 2017, 13:04, insgesamt 1-mal geändert.
Signatur.exe hat eine Zugriffsverletzung ausgelöst und muss beendet werden
compmgmt
 
Beiträge: 272
Registriert: 25. Nov 2015, 17:06
Wohnort: in der Nähe von Stuttgart
OS, Lazarus, FPC: Win 10 Pro + Linux Manjaro 17.0.2 | Lazarus 1.6.4 | FPC 3.0.2 | 
CPU-Target: i386 + x86_64
Nach oben

Beitragvon wp_xyz » 21. Jul 2017, 10:07 Re: LazPlan v0.0.0.1 - Schaltplansoftware

So wie ich ich das sehe, setzt dein Programm den Schaltplan aus Bitmaps zusammen. Das ist ok, soweit du nur an einem sauber gezeichneten Schaltplan interessiert bist. Allerdings verschenkst du viele Möglichkeiten. Z.B. könntest du aus dem Schaltplan eine Netzliste für SPICE zusammenstellen; damit könntest du die Funktion der Schaltung simulieren und würdest sehen, ob und wie sie funktioniert, ohne irgendetwas löten zu müssen (https://de.wikipedia.org/wiki/SPICE_(Software)). Dazu musst du alle Knoten (= Verbindungspunkte) durchnummerieren und die elektischen Eigenschaften des Bauelements zwischen jeweils zwei (oder drei, oder mehr - je nach Bauelement) angeben, z.B. "R1 1 2 1k" - d.h. "zwischen den Punkten 1 und 2 liegt das Bauteil R1; das "R" bedeutet, dass es sich um einen Widerstand handelt, und dieser hat den Wert 1kOhm). Eine relativ umfangreiche kostenlose Version von SPICE ist LTSpice: http://www.linear.com/designtools/software/ (allerdings mit Fokus auf den Bauelementen von Linear Technolgies (LT)). Nach dem laden der SPICE-Datei (es gibt viele Beispiele) klickst du auf Run, bekommst den Schaltplan und kannst mit einer Art Tastkopf die einzelnen Knoten der Schaltung anklicken und siehst den Verlauf der Spannung.
wp_xyz
 
Beiträge: 2183
Registriert: 8. Apr 2011, 08:01

Beitragvon mse » 21. Jul 2017, 10:38 Re: LazPlan v0.0.0.1 - Schaltplansoftware

wp_xyz hat geschrieben:Allerdings verschenkst du viele Möglichkeiten. Z.B. könntest du aus dem Schaltplan eine Netzliste für SPICE zusammenstellen; damit könntest du die Funktion der Schaltung simulieren und würdest sehen, ob und wie sie funktioniert, ohne irgendetwas löten zu müssen (https://de.wikipedia.org/wiki/SPICE_(Software)).

In diesem Zusammenhang kann man auch Ngspice erwähnen:
https://de.wikipedia.org/wiki/Ngspice
Das letzte Release ist zwar schon eine Weile her, die Git-Version wird laufend weiterentwickelt. Der letzte master-commit ist von 2017-07-18.
Für Ngspice es die in Free Pascal geschriebene Oberfläche MSEspice:
https://sourceforge.net/projects/mseuniverse/
mse
 
Beiträge: 1635
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon siro » 21. Jul 2017, 10:48 Re: LazPlan v0.0.0.1 - Schaltplansoftware

Grad nochmal das aktuelle heruntergeladen.

Den Doppelklick hast Du nun eingeführt.

Code: Alles auswählen
procedure TWnd_LazPlan.LB_ObjectsDblClick(Sender: TObject);
begin
   Btn_CreateObjectClick(Btn_CreateObject);
end;
 
 
Da brauchst aber nur schreiben:

Btn_CreateObjectClick(self);

Man übergibt eigentlich fast immer den Sender, also den Auslöser des Ereignisses.
Self steht dann für deine ListBox LB_Objects
Das wird aber bei Dir eh nicht ausgewertet und ist somit egal.

Compiliert bekomme ich es, aber wenn ich das Programm starte bekomme ich eine Fehlermeldung:
List index (-1) out of bounds
Grüße von Siro
"C" verCehnfacht die Entwicklungszeit...
siro
 
Beiträge: 202
Registriert: 23. Aug 2016, 13:25
Wohnort: Berlin
OS, Lazarus, FPC: Windows 7 Windows 8.1 Windows 10 | 
CPU-Target: 64Bit
Nach oben

Beitragvon compmgmt » 21. Jul 2017, 12:10 Re: LazPlan v0.0.0.1 - Schaltplansoftware

wp_xyz hat geschrieben:So wie ich ich das sehe, setzt dein Programm den Schaltplan aus Bitmaps zusammen. Das ist ok, soweit du nur an einem sauber gezeichneten Schaltplan interessiert bist. Allerdings verschenkst du viele Möglichkeiten. Z.B. könntest du aus dem Schaltplan eine Netzliste für SPICE zusammenstellen; damit könntest du die Funktion der Schaltung simulieren und würdest sehen, ob und wie sie funktioniert, ohne irgendetwas löten zu müssen (https://de.wikipedia.org/wiki/SPICE_(Software)). Dazu musst du alle Knoten (= Verbindungspunkte) durchnummerieren und die elektischen Eigenschaften des Bauelements zwischen jeweils zwei (oder drei, oder mehr - je nach Bauelement) angeben, z.B. "R1 1 2 1k" - d.h. "zwischen den Punkten 1 und 2 liegt das Bauteil R1; das "R" bedeutet, dass es sich um einen Widerstand handelt, und dieser hat den Wert 1kOhm). Eine relativ umfangreiche kostenlose Version von SPICE ist LTSpice: http://www.linear.com/designtools/software/ (allerdings mit Fokus auf den Bauelementen von Linear Technolgies (LT)). Nach dem laden der SPICE-Datei (es gibt viele Beispiele) klickst du auf Run, bekommst den Schaltplan und kannst mit einer Art Tastkopf die einzelnen Knoten der Schaltung anklicken und siehst den Verlauf der Spannung.
Ist mir durchaus bewusst. Sowas hatte ich evtl später vor, aber vorerst mache ich das ganze mit Bitmaps
Signatur.exe hat eine Zugriffsverletzung ausgelöst und muss beendet werden
compmgmt
 
Beiträge: 272
Registriert: 25. Nov 2015, 17:06
Wohnort: in der Nähe von Stuttgart
OS, Lazarus, FPC: Win 10 Pro + Linux Manjaro 17.0.2 | Lazarus 1.6.4 | FPC 3.0.2 | 
CPU-Target: i386 + x86_64
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Programme



Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 2 Gäste

porpoises-institution
accuracy-worried