BlackBoard Circuit Designer 1.1 verfügbar

OP #3255046
Lesenswert?

Hallo zusammen!

Kurze vielleicht gar nicht so unerhebliche Neuigkeit an dieser Stelle:

Ich habe heute die Version 1.1 vom BlackBoard Circuit Designer 
veröffentlicht.

Wesentliche Neuerungen sind:

- Die lang ersehnte NGSPICE Anbindung wurde umgesetzt
- Schaltplan Editor wurde massiv überarbeitet
- Viele neue Beispiele und Bauteile enthalten

Handbuch gibt es dann am Wochenende.

Die Details könnt Ihr dem Changelog entnehmen:

http://blackboard.serverpool.org/?p=91

Weiterhin habe ich die Seite komplett neu aufgesetzt und ein neues Forum 
installiert. Es läuft nun alles etwas übersichtlicher und flüssiger.

Viel Spass!

Gruß
Matthias
OP #3255121
Lesenswert?

Doku gelesen?

Linux/MacOS
Make sure you have installed the Java Runtime for your system. 
Blackboard needs version 1.6.10 and above.

1.) Unzip the BlackBoard package to a directory of your choice.

2.) Copy the following directories to your $HOME/.BlackBoard Folder:

datasheets
models
parts
simulators
symbols

3.) To start use Linux_Start.sh or OSX_Start.command on MacOS
Gast #3255229
Lesenswert?

Dabei hab ich vergessen zu fragen: Wenn man eines deiner Beispiele 
öffnet (z.B. kleine Gegentaktendstufe) und will sie als Bild 
exportieren, kann man irgendwie verhindern, dass die störenden, grünen 
Kreise in den Bauteilen angezeigt werden?

Gerhard
Gast #3255234
Lesenswert?

Ah, sorry for the noise, hab's gefunden. In Bearbeiten -> Einstellungen 
den Haken weg bei "Symbolmittelpunkt anzeigen". Vielleicht macht es 
Sinn, die Symbolmittelpunkte zwar anzuzeigen, aber nicht zu exportieren. 
Wer will in seiner Schaltung schon die grünen Punkte haben?!

Gerhard
Gast #3897675
Lesenswert?

Hallo Matthias,

sicher spreche ich auch für andere, wenn ich sage, dass es ein sehr 
schönes Tool ist!

Gibt's für dich noch die Möglichkeit, Kompilate mit den Installern für 
Windows und Linux irgendwo hochzuladen? Ich wollts heute am Netbook 
installieren und finde den Installer nicht mehr!

Gruß
sonicfan
#3898386
Lesenswert?

Hi,
ich habe es neulich auch gesucht.
Da das Tool unter so einer quelloffenen Lizenz erstellt wurde, spricht - 
denke ich - nichts dagegen es als Binary zur Verfügung zu stellen:

http://www.filehost.ro/31044066/BlackBoard_7z/


Ich habe einfach den nächsten Filehoster genommen den ich finden konnte.
Keine Garantie, dass es klappt. Keine Garantie, dass der Filehoster böse 
ist. Sorry ist leider rumänisch. Aber dem geschenkten Gaul ...

Gruß

@Moderator: Falls illegal oder nicht konform der Forenregeln. Bitte Post 
löschen.
Gast #3899367
Lesenswert?

Hallo Axel,

danke für den Upload. Ich erhalte nur beim Ausführen immer eine 
Fehlermeldung - in welchem Verzeichnis hast du denn das Blackboard 
installiert, von wo aus du es gezippt hast? Eventuell funktioniert es 
dann... oder hast du es auch so zum laufen bekommen?

Gruß
sonicfan
Gast #4005355
Lesenswert?

Hallo Matthias,

BlackBoard ist vermutlich genau das, was ich für kleinere Bastelprojekte 
und deren Doku suche. Leider habe ich hier ein Problem, auf das ich so 
noch in keinem Forum gestoßen bin:

Während das Einfügen von Dioden und deren Veränderung problemlos 
funktioniert, ist dies mit Widerständen leider nicht möglich. Ich kann 
beliebige Werte im Dialog eingeben, doch beim Klick auf OK passiert 
scheinbar nichts.

In der Shell sehe ich aber Java-Fehlermeldungen:
1
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
2
  at org.pmedv.blackboard.tools.ResistorFactory.createRings(ResistorFactory.java:168)
3
  at org.pmedv.blackboard.tools.ResistorFactory.getImageForValue(ResistorFactory.java:122)
4
  at org.pmedv.blackboard.tools.ResistorFactory.getResistor(ResistorFactory.java:83)
5
  at org.pmedv.blackboard.dialogs.ResistorDialog$1.actionPerformed(ResistorDialog.java:94)
6
  at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
7
  at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
8
  at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
9
  at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
10
  at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
11
  at java.awt.Component.processMouseEvent(Component.java:6505)
12
  at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
13
  at java.awt.Component.processEvent(Component.java:6270)
14
  at java.awt.Container.processEvent(Container.java:2229)
15
  at java.awt.Component.dispatchEventImpl(Component.java:4861)
16
  at java.awt.Container.dispatchEventImpl(Container.java:2287)
17
  at java.awt.Component.dispatchEvent(Component.java:4687)
18
  at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
19
  at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
20
  at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
21
  at java.awt.Container.dispatchEventImpl(Container.java:2273)
22
  at java.awt.Window.dispatchEventImpl(Window.java:2719)
23
  at java.awt.Component.dispatchEvent(Component.java:4687)
24
  at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
25
  at java.awt.EventQueue.access$200(EventQueue.java:103)
26
  at java.awt.EventQueue$3.run(EventQueue.java:694)
27
  at java.awt.EventQueue$3.run(EventQueue.java:692)
28
  at java.security.AccessController.doPrivileged(Native Method)
29
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
30
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
31
  at java.awt.EventQueue$4.run(EventQueue.java:708)
32
  at java.awt.EventQueue$4.run(EventQueue.java:706)
33
  at java.security.AccessController.doPrivileged(Native Method)
34
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
35
  at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
36
  at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
37
  at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
38
  at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
39
  at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
40
  at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
41
  at java.security.AccessController.doPrivileged(Native Method)
42
  at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
43
  at java.awt.Dialog.show(Dialog.java:1082)
44
  at java.awt.Component.show(Component.java:1651)
45
  at java.awt.Component.setVisible(Component.java:1603)
46
  at java.awt.Window.setVisible(Window.java:1014)
47
  at java.awt.Dialog.setVisible(Dialog.java:1005)
48
  at org.pmedv.blackboard.commands.AddResistorCommand.execute(AddResistorCommand.java:77)
49
  at org.pmedv.core.commands.AbstractCommand.actionPerformed(AbstractCommand.java:32)
50
  at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
51
  at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
52
  at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
53
  at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
54
  at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
55
  at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
56
  at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
57
  at java.awt.Component.processMouseEvent(Component.java:6505)
58
  at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
59
  at java.awt.Component.processEvent(Component.java:6270)
60
  at java.awt.Container.processEvent(Container.java:2229)
61
  at java.awt.Component.dispatchEventImpl(Component.java:4861)
62
  at java.awt.Container.dispatchEventImpl(Container.java:2287)
63
  at java.awt.Component.dispatchEvent(Component.java:4687)
64
  at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
65
  at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
66
  at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
67
  at java.awt.Container.dispatchEventImpl(Container.java:2273)
68
  at java.awt.Window.dispatchEventImpl(Window.java:2719)
69
  at java.awt.Component.dispatchEvent(Component.java:4687)
70
  at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
71
  at java.awt.EventQueue.access$200(EventQueue.java:103)
72
  at java.awt.EventQueue$3.run(EventQueue.java:694)
73
  at java.awt.EventQueue$3.run(EventQueue.java:692)
74
  at java.security.AccessController.doPrivileged(Native Method)
75
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
76
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
77
  at java.awt.EventQueue$4.run(EventQueue.java:708)
78
  at java.awt.EventQueue$4.run(EventQueue.java:706)
79
  at java.security.AccessController.doPrivileged(Native Method)
80
  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
81
  at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
82
  at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
83
  at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
84
  at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
85
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
86
  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
87
  at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Das ganze läuft übrigens auf einem Linux Mint 64 Bit.

java -version meldet:
1
java version "1.7.0_25"
2
OpenJDK Runtime Environment (IcedTea 2.3.12) (7u25-2.3.12-4ubuntu3)
3
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

Leider habe ich keine Ahnung von Java und komme deshalb nicht weiter. 
Jeder Tip und jede Hilfe sind mir willkommen.

Danke sehr!
Gast #5816916
Lesenswert?

ich bin (unter linux) mit folgender vorgehensweise erfolgreich gewesen:
- master als zip von github geladen und nach "/home/.BlackBoard" 
entpackt
- inhalt von "blackboard-bin-1.1.3.zip" aus dem unterordner "install" in 
die root des verzeichnis von bb (s.o.) entpackt, vorhandene Dateien habe 
ich überschrieben
- jre von oracle geladen und in ein neues unterverzeichnis von bb (bspw. 
"jre") entpackt
- ein bash script in "/home/.BlackBoard" mit folgendem inhalt angelegt


#!/bin/bash
BB_DIR=`dirname $0`
cd ${BB_DIR}
${BB_DIR}/jre/bin/java -jar BlackBoard.jar


--> wichtig ist imho, dass vor dem start der jar in das bb verzeichnis 
(der jar) gewechselt wird
--> wichtig ist imho, dass der Ordner des Programms im Home Verzeichnis 
liegt und ".BlackBoard" heißt
Gast #5993717
Lesenswert?

Servus, wenn du hier noch mal reinschaust, kannst du deine 
Vorgehensweise bitte noch ein wenig ausführlicher beschreiben.
Ich wäre für ein wenig Hilfe dankbar, ich werkle jetzt schon einige 
Stunden  und komme nicht zum Ziel.
Möglicherweise neu kompilieren, aber so was hab ich auch noch nie 
gemacht.

sputnik schrieb:
> ich bin (unter linux) mit folgender vorgehensweise erfolgreich
> gewesen:
> - master als zip von github geladen und nach "/home/.BlackBoard"
> entpackt
Habe ich gemacht

> - inhalt von "blackboard-bin-1.1.3.zip" aus dem unterordner "install" in
> die root des verzeichnis von bb (s.o.) entpackt, vorhandene Dateien habe
> ich überschrieben
OK ist geschehen

> - jre von oracle geladen und in ein neues unterverzeichnis von bb (bspw.
> "jre") entpackt
Ich habe eine Linuxversion runtergeladen und ins Verzeichnis bb enpackt 
und umbenannt in jre


> - ein bash script in "/home/.BlackBoard" mit folgendem inhalt angelegt
>
Wo im script steht der Name des BlackBoard Verzeichnis bb ?
Egal in welcher Kombination ich es versuche keine Chance.


> #!/bin/bash
> BB_DIR=`dirname $0`
> cd ${BB_DIR}
> ${BB_DIR}/jre/bin/java -jar BlackBoard.jar
>
> --> wichtig ist imho, dass vor dem start der jar in das bb verzeichnis
> (der jar) gewechselt wird
> --> wichtig ist imho, dass der Ordner des Programms im Home Verzeichnis
> liegt und ".BlackBoard" heißt
Gast #7190556
Lesenswert?

Matthias P. schrieb:
> Ich habe heute die Version 1.1 vom BlackBoard Circuit Designer
> veröffentlicht.

Eure README.md auf https://github.com/mpue/blackboard ist schon 2 Jahre 
alt und sagt:
> "To get Blackboard running an installed Java Runtime 8 is mandatory. This > will 
change in the near future."

Die Aussage ist korrekt, denn es compiliert derzeit ohne Fehler nur auf 
einer JDK 8er Version.
Aber neuere Distributionen liefern oft keine 8er JDK Version mehr mit.
Wollt ihr daher die Codebasis nicht mal auf eine aktuellere Java Version 
anpassen? Der letzte src commit war laut github vor über 2 Jahren.

Auch solltet ihr die Installationsanleitung in dem es heißt:
1
git clone git@github.com:mpue/blackboard.git
zu:
1
git clone https://github.com/mpue/blackboard.git
ändern, denn github erlaubt ansonsten keinen public Download, also eine 
Download ohne Account + hinterlegtem Public Key.

Außerdem könntet ihr vor dem ant Befehl auch darauf hinweisen bzw. 
automatisiert prüfen, dass die Java Version eine 8er Version sein soll.
Denn sonst compiliert der Code nicht.

Außerdem müsst ihr in eurer Installationsanleitung zuerst den Ordner
~/.BlackBird mit mkdir anlegen.
1
mkdir ~/.BlackBird
denn wenn man das nicht macht und einfach nur den Befehl
1
cp -R models ~/.BlackBoard
verwendet, dann werden alle Dateien aus models nach ~/.BlackBoard 
kopiert, aber nicht nach ~/.BlackBoard/models/ wo sie hinsollen.

Alternativ dazu könnt ihr auch:
1
cp -R models ~/.BlackBoard/models
schreiben.

Dann noch ein weiterer Punkt.
Bitte verwendet keine verstecken Verzeichnisse im Hauptverzeichnis des 
Nutzers für Konfigurationsdateien. Das ist veraltet.
~/.BlackBoard

Stattdessen haltet euch bitte an die XDG Base Directory Specification
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

Die Konfigurationsdateien gehören also entweder nach ~/.config/blackbird
oder nach ~/.local/share/blackbird
Auch solltet ihr keine Großbuchstaben für so etwas als Verzeichnisnamen 
verwenden und auch das CamelCase weglassen.

Wo genau, also ob ~/local/share/ oder ~/.config/ ist abhänig von den zu 
speichernden Daten. Genaueres dazu steht aber in der oben verlinkten XDG 
Base Dir Spezifikation.

Dann noch etwas zu der Start (Running) Anleitung in der README.md Datei.
Der Befehl:
1
java -Dsun.java2d.opengl=true -jar dist/lib/BlackBoard.jar
ist zwar gut gemeint, immerhin sagt der aus, dass OpenGL Beschleunigung 
verwendet werden soll, aber er ist kontraproduktiv, denn unter manchen
Installationen, z.b. in einer QEMU/KVM Virtual Machine mit der LLVMpipe 
als OpenGL Treiber führt dieser Befehl zu massiven Grafikfehlern.

Solche Hinweise gehören also eher in eine FAQ.
Stattdessen solltet ihr besser folgenden Befehl in die "Running" 
Anleitung reinschreiben:
1
java -jar dist/lib/BlackBoard.jar

denn der funktioniert dann auch und zwar ohne Grafikfehler und ist 
nebenbei bemerkt auch kürzer.

Noch besser wäre es natürlich, wenn ihr dem Code ein Shellscript 
beilegt, mit dem man dann die JRE und BlackBoard starten kann. Das hat 
den Vorteil, dass ihr Parameter definierten könntet, mit dem das 
Shellscript gestartet wird.
Z.B.
1
blackboard.sh --with-open-gl
oder dass ihr einfach die OpenGL Treiber abfragen könnt.

Zu der GUI noch eine Anmerkung.
In der Menüleiste unter Datei solltet ihr die "Beenden" Option ganz 
unten hinmachen, denn dort wird sie nach den meisten Interface User 
Guidelines auch erwartet.
Ihr habt momentan die Menüoptionen "Zuletzt geöffnet" und "Beispiel 
öffnen" ganz unten stehen.

Und dann noch eine Frage zu dem Programm.
Liege ich richtig in der Annahme, dass das Programm momentan noch keine
Übertragungshilfe vom Schaltplan zur Lochrasterplatine bietet?
Es also nicht so wie bspw. bei KiCAD ist, wo man, wenn man nach dem 
Erstellen des Schaltplans und Wechsel zum integrierten Layoutprogramm 
PCBnew alle Bauteile mit Hilfsverbindungslinien verbunden auf einem 
Haufen präsentiert bekommt und man sie dann noch noch im Layout 
entsprechend
platzieren muss und die Hilfsverbindungslinien (oder wie auch immer das 
heißen mag) dabei helfen die Bauteile richtig zu verbinden?
Denn genau das ist das, was ich eigentlich bräuchte, da ich gerade 
Fehler beim Übertrag vom Schaltplan zum Layout vermeiden möchte.

Ich habe so ein Feature in BlackBoard noch nicht gefunden. Daher meine 
Frage ob es so etwas im Programm gibt und falls ja, wo ich das finde?
Gast #7190594
Lesenswert?

Peter S. schrieb:
> Nano schrieb:
>> Matthias P. schrieb:
>>> Ich habe heute die Version 1.1 vom BlackBoard Circuit Designer
>>> veröffentlicht.
>
> Das schrieb er vor neun Jahren

Das war der aktuellste Thread zu dieser Software und um ihn zu erreichen 
(Stichwort: Automatische E-Mail Benachrichtigung) muss ich einen 
bestehenden Thread benutzen, denn ein neuer würde keine E-Mail 
Benachrichtigung auslösen.
Gast #7191425
Lesenswert?

Werauchimmer schrieb:
> Nano schrieb:
>> Eure README.md auf https://github.com/mpue/blackboard ist schon 2 Jahre
>> alt und sagt:
>
> Und die Antwort auf GitHub zu dem Java Versions Problem lautet:
>  Probably not, since this project is discontinued. I keep it online for
> the public, because there are many requests for that.
>
> https://github.com/mpue/blackboard/issues/25

Diese Antwort ist älter als der letzte Commit mit dem Kommentar "It's 
alive"
https://github.com/mpue/blackboard/commit/005d6bd4de9b55899c4da150c8d57dd9abf318e9

Und sollte das Projekt wirklich nicht mehr weiterentwickelt werden, dann 
sollte man so etwas in die README.md schreiben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren