Hallo Zusammen,
nach einigen Monaten ist mein Elektronik-CAD-Programm endlich halbwegs
vorzeigbar: https://github.com/carrotIndustries/horizon
Auch wenn es schon alles von Schaltplan bis Gerber-Export da ist, gibt
es immer noch mehr als genug Dinge, die anders/besser werden müssen, bis
man damit ernsthaft Platinen entwickeln kann.
Viel Spaß damit,
Lukas
Und du bist dir sicher, das eine Vielzahl von Leuten dein Programm
ausprobieren, nutzen und weiterempfehlen werden, weil es sich ja so
leicht von jedermann installieren läßt ?!?
Jeder "Electronic-CAD-Programm" - Nutzer ist ja automatisch auch ein
fähiger Programmierer, der sich mit sowas
"For building on Windows, use MSYS2
Dependencies:
Gtkmm3
libepoxy
cairomm-pdf
librsvg
util-linux (on linux only)
yaml-cpp
sqlite "
easy
("It's as easy as make.")
auskennt ....
[Wer Ironie gefunden hat, darf sie behalten ]
Lukas K. schrieb:> nach einigen Monaten ist mein Elektronik-CAD-Programm endlich halbwegs> vorzeigbar: https://github.com/carrotIndustries/horizon
Was ist den hier los ?
Hat hier jemand den CAD-ÖTZI aus Versehen aufgetaut ? ?
Ob er wohl checkt wie es in dieser bösen CAD-Welt zugeht.
Es bleibt zu hoffen,
dass er nicht dieser listigen Autodesk-Schlange anheimfällt :-( ?
----
Bitte nicht allzu ernst nehmen ;-)?
Ich frage mich halt, ob es mit deinem Wissen nicht andere Projekte
gibt die einen weitaus größeren Nährwert versprechen,
als wie hier alte 'Suppen' aufzuwärmen.
Lukas K. schrieb:> Hallo Zusammen,>> nach einigen Monaten ist mein Elektronik-CAD-Programm endlich halbwegs> vorzeigbar: https://github.com/carrotIndustries/horizon>> Auch wenn es schon alles von Schaltplan bis Gerber-Export da ist, gibt> es immer noch mehr als genug Dinge, die anders/besser werden müssen, bis> man damit ernsthaft Platinen entwickeln kann.>> Viel Spaß damit,> Lukas
Nur 6 commits auf github??
Sieht auf den Screenshots aber schonmal vielversprechend aus. Werde es
bei Gelegenheit mal ausprobieren.
@hardyf: Wenn Du erwartest, dass Dir andere Leute das Denken abnehmen,
dann solltest Du Dir vielleicht ein anderes Hobby suchen.
Michael B. schrieb:> Wenn man schon von vorne anfängt, hat man wenigstens> keine Altlasten und kann bei Standards beginnen:
Das ist zwar im Prinzip richtig, aber ein Standard nutzt wenig, wenn man
ihn als einziger benutzt. Den firmenübergreifenden Standard für
Leiterplatten-CAD gibt es nicht, und meiner Ansicht nach besteht auch
wenig Hoffnung. Ich habe selbst schon Konversionsprogramme geschrieben
und weiss, an welchen Kleinigkeiten eine 1:1 Umwandlung scheitert - nur
als ganz einfaches Beispiel, man hat 6eckige Lötaugen und im Zielsystem
gibt es das nicht. Von komplexeren Sachen wie differential Lines
garnicht erst zu reden.
Georg
PS besonders "beliebt" sind grundsätzliche Unterschiede in der
Definition von beliebigen Flächen.
> @hardyf: Wenn Du erwartest, dass Dir andere Leute das Denken abnehmen,> dann solltest Du Dir vielleicht ein anderes Hobby suchen.
Ja, und die Keramikkondensatoren töpfern wir auch selbst.
Was Ich an Gihub überhaupt nicht leiden kann, ist das komplett
unsoriterte und unübersichtliche Schema!
Man kriegt ein Repository hingeknallt, das weder Übersicht hat noch
schafft! Und die Nutzer führen auch keine Übersicht ein!
Richtig wäre, mal
1) Beschreiben, WAS das ist
2) für welchen Nutzerkreis es sein soll
3) Wie es funktioniert!
Dazu braucht es ein Übersichtsdigramm, welche Module es gibt, wie man
sie benutzt, was man dazu noch braucht und in dem Fall, dass es nur
sourven sind, wie man sie zusammenbaut.
Also
a) Schnittstellen zur Aussenwelt
b) Schnittstellen inten
c) Bedienerfunktionalität.
All das wäre in einigem richtigen Projekt sauber und übersichlich
vorhanden und dokumentiert, damit es auch einer nutzen kann.
So ist das einfach nur ein großer Saustall und Chaos!
Leider gilt das auch für dieses Projekt. Das macht es unmöglich, da mit
einzusteigen, Interesse zu wecken oder einen in die Lage zu versetzen,
einzuschätzen, ob man es verwenden kann.
DAS IST DER GRUND; WARUM AUS SOLCHEN PROJEKTEN NIX WIRD. DA ENTWROGT
JEMAND NUR SEINEN MÜLL; DEN ER IM KOPF HAT IN FORM VON SOFTWARE AUF
EINEM OFFENEN SERVER.
eigentlich ist das dann nicht viel mehr, als eine Müllhalde ...
............
und wenn Ich jetzt noch etwas zu der Notwendigkeit eines CAD-Programmes
sagen würde, wäre es ganz haarig ...
Bernd K. schrieb:> Ingenieur schrieb:>> Was Ich an Gihub überhaupt nicht leiden kann>> Und was hat das mit Github zu tun?
Nix.
Aber wenn man schon gewohnt ist alles umsonst haben zu wollen dann ist
es doch auch egal worüber man meckert^^
Ansonsten @ingenieur: Ja, etwas mehr Effort könnte so ein Projekt sicher
vertragen.
Wann willst Du mit was helfen? Hardy F. hat ja schon festgestellt, dass
ein Build für Windows hilfreich wäre...
@Lukas K.: Nette Idee :-)
Aber wenn Du nicht "Alleinunterhalter" bleiben willst, dann solltest Du
evtl. eine minimale SW Beschreibung anlegen (meist reichen die
"normalen" Doxygen Kommentare schon aus).
DU (!) weisst ja, was Du wie implementiert hast. Alle Anderen müssten
sich das erst zusammensuchen, was unnötiger Aufwand ist.
Hast Du schon eine Idee wie sich das Projekt weiterentwickeln soll?
/regards
Ich bekomms es nicht compiliert:
In file included from /usr/include/c++/5/bits/stl_algobase.h:64:0,
from /usr/include/c++/5/bits/char_traits.h:39,
from /usr/include/c++/5/ios:40,
from /usr/include/c++/5/ostream:38,
from /usr/include/c++/5/iostream:39,
from util/uuid.hpp:8,
from pool/part.hpp:2,
from pool/part.cpp:1:
/usr/include/c++/5/bits/stl_pair.h: In instantiation of ‘constexpr
std::pair<_T1, _T2>::pair(_U1&&, _U2&&) [with _U1 = const
nlohmann::basic_json<>&; _U2 = const nlohmann::basic_json<>&;
<template-parameter-2-3> = void; _T1 = bool; _T2 =
std::__cxx11::basic_string<char>]’:
pool/part.cpp:10:30: required from here
/usr/include/c++/5/bits/stl_pair.h:145:64: error: call of overloaded
‘basic_string(const nlohmann::basic_json<>&)’ is ambiguous
: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
^
In file included from /usr/include/c++/5/string:52:0,
from /usr/include/c++/5/bits/locale_classes.h:40,
from /usr/include/c++/5/bits/ios_base.h:41,
from /usr/include/c++/5/ios:42,
from /usr/include/c++/5/ostream:38,
from /usr/include/c++/5/iostream:39,
from util/uuid.hpp:8,
from pool/part.hpp:2,
from pool/part.cpp:1:
/usr/include/c++/5/bits/basic_string.h:476:7: note: candidate:
std::__cxx11::basic_string<_CharT, _Traits,
_Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits,
_Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc
= std::allocator<char>]
basic_string(basic_string&& __str) noexcept
^
/usr/include/c++/5/bits/basic_string.h:398:7: note: candidate:
std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const
std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT =
char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]
basic_string(const basic_string& __str)
^
/usr/include/c++/5/bits/basic_string.h:390:7: note: candidate:
std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const
_Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]
basic_string(const _Alloc& __a)
^
Makefile:238: die Regel für Ziel „pool/part.o“ scheiterte
make: *** [pool/part.o] Fehler 1
tester schrieb:> Ich bekomms es nicht compiliert:
Hm, welcher GCC? Bei mir hier baut's mit GCC 6.3.1 und clang 3.9.1.
Ich hab mir die Zeile mal angesehen, versuch mal das zu ändern:
Wo vorher war:
3162534373 .. schrieb:> Wenn Push&shove Routing dabei ist, dann tue ich mir sogar komplizierte> Installation an ;)> Ohne Push&shove ist es doch sinnlos
Push-and-shove gibt's noch nicht, aber der Router weicht immerhin schon
den meisten Hindernissen aus. Der push-and-shove-Router von KiCAD hat
änhlich viele lines of code wie horizon derzeit, um mal so die
Komplexität darzustellen...
@ Lukas
Ich würde sehr gern dein Programm mal ausprobieren.
Ich komme aber mit Selbstcompilieren nicht klar.
Da habe ich in der Schule wohl nicht aufgepasst damals vor 5x Jahren...
Also bitte versuche einen fertigen Windows-Build mit dazuzustellen auf
der Seite.
Es dürften sicher paar mehr Leute ganz dankbar dafür sein so wie auch
ich.
Lukas K. schrieb:> Hm, welcher GCC? Bei mir hier baut's mit GCC 6.3.1 und clang 3.9.1.
Bei mir der Standard gcc/g++ 5.4 von Ubuntu 16.04. Aber der Patch läuft,
ich konnte part.cpp kompilieren. Jetzt hängt er bei schematic.cpp.
Die Meldung ist dieses Mal etwas länger. Ist als Anhang dabei...
Andreas H. schrieb:> Aber wenn Du nicht "Alleinunterhalter" bleiben willst, dann solltest Du> evtl. eine minimale SW Beschreibung anlegen (meist reichen die> "normalen" Doxygen Kommentare schon aus).> DU (!) weisst ja, was Du wie implementiert hast. Alle Anderen müssten> sich das erst zusammensuchen, was unnötiger Aufwand ist.
Als ganz groben Anhaltspunkt gibt's den Abschmitt "Theory of operation"
in der README, damit sollte man schonmal halbwegs wissen wo vorne ist.
Doxygen-Dokumentation hatte ich persönlich nie als wirklich hilfreich
empfunden, da darin oft erklärt ist, was auch eine Zeile drunter im Code
steht, aber die grobe Struktur fehlt.
> Hast Du schon eine Idee wie sich das Projekt weiterentwickeln soll?
Unabhängig von dem Programm selber:
Pool befüllen, dass man auch sinnvolle Schaltpläne und Boards machen
kann.
Kurz/mittelfristige ziele:
- Platzieren von Bauteilen einfacher machen
Liste von zuletzt benutzten Bauteilen; den Dialog "Select Part"
auch als nicht modales Fenster zur Verfügung stellen.
- Parametrische Suche: Die pool-parametric.db wird schon erzeugt, fehlt
"nur noch" ne hübsche GUI drüber.
- DRC: mit der clipper-Library ist der algorithmisch schwere Teil
(Polygon-Operationen) schon erledigt, fehlt noch die gesamte
Infrastruktur außenrum.
- GUI für die constraints. Die als JSON zu bearbeiten und mit UUIDs zu
hantieren macht derzeit gar keinen Spaß.
- "Projekt-Manager", dass man sich nicht mehr die Argumente für
horizon-imp selber ausdenken muss, sondern einfach Klicken kann.
Nicht vergessen: Rom wurde auch nicht an einem Tag erbaut (und auch
nicht in einer Nacht)
tester schrieb:> Ich bekomms es nicht compiliert
Schön das Du es probierst :-)
Benutzt Du MSYS2 (<-- 2 !!!)?
Lukas K. schrieb:> Bei mir hier baut's mit GCC 6.3.1
Unter MSYS2 ist afaik GCC5 erst seit Anfang Januar verfügbar. Vieleicht
liegt es daran?
/regards
Michael B. schrieb:> AutoTrax macht beispielsweise eigentlich alles richtig, schönes> Programm, alles möglich dabei, nicht zu teuer. Und bekommt trotzdem seit> 10 Jahren keinen Fuss an den Boden.>> https://dexpcb.com/
Das Programm sieht super aus. Aber die Webseite aus dem letzten
Jahrtausend.
Vorallem mit diesen käsig eingefügten Stock-Fotos:
https://dexpcb.com/Company
Es scheint aber alles zu haben...
Ich versteh aber auch nicht wieso es noch ein neues gibt. LibreCAD ist
doch auch gerade durchs Forum hier gehuscht... Prinzipiell find ichs
aber gut, man weiss ja nie, welches von den vielen Free Software
Programmen dann letztendlich die breitere User-Basis bekommt.
Was ich aus meinen Softwareprojekten aber gelernt hatte:
Wenn man in einem Forum, in dem es nicht hauptsächlich um
Softwareentwicklung geht, postet, dann sollte man eine ZIP oder EXE oder
tar.gz/.deb (für Ubuntu) parat haben. Sonst bekommt man eben genau die
Sprüche und Probleme zu lesen wie oben (been there, done that).
Es ist letztendlich immer die Frage welche Motivation hinter dem Projekt
steckt. Wenn man nur ausprobieren will, ob man es theoretisch hinbekommt
sowas zu programmieren, dann ist ca. ab dem jetzt erreichten Stand die
Luft raus. Wenn man etwas schreibt, damit mans selbst benutzt, dann
gehts meist noch weiter. Aber selbst gebastelte Lösungen, die nicht noch
von anderen mit getragen werden, werden erfahrungsgemäß irgendwann
abgelöst. Beispielsweise wenn man in ein paar Jahren selbst ein Feature
braucht welches andere Programme (KiCAD, Eagle, ...) haben, aber nicht
die Zeit hat es selbst zu implementieren, weil man das Projekt seit 5
Monaten nicht mehr angefasst hat und zu faul ist sich wieder in den Code
einzuarbeiten.
Prinzipiell kann ich es aber nur unterstützen und finde es absolut
großartig, dass Entwickler weiterhin Projekte für die Allgemeinheit
schreiben und den Quelltext veröffentlichen.
Würde aber gerne wissen wo sich Horizon und bspw. auch LibreCAD relativ
zu KiCAD positionieren. Ein Problem bei KiCAD ist ja nachweislich die
etwas merkwürdige Benutzerführung. Wenn man sich aber einmal zurecht
gefunden hat, kommt man sehr gut damit klar - "eigentlich".
Andreas H. schrieb:> Benutzt Du MSYS2 (<-- 2 !!!)?
Evtl. verstehe ich dich falsch, aber MSYS2 ist doch für Windows der
Cygwin Posix Layer, oder? Ich versuche, das ganze unter Ubuntu 16.04 zu
kompilieren, also brauche ich kein MSYS!
tester schrieb:> Ich versuche, das ganze unter Ubuntu 16.04 zu> kompilieren, also brauche ich kein MSYS!
Ne,das brauchst Du dann wirklich nicht, Ich dachte dass Du unter Windows
arbeitest :-)
/regards
Lukas K. schrieb:> Als ganz groben Anhaltspunkt gibt's den Abschmitt "Theory of operation"> in der README, damit sollte man schonmal halbwegs wissen wo vorne ist.
Den Teil fand ich (nicht böse gemeint) eher wirr.
"Unit" ist sehr ungünstig gewählt, weil man bei CAD als Unit immer an
eine Masseinheit denkt (typischerweise gibt es davon ja Mehrere, die der
Benutzer nur zum Teil sieht.
Anyway. Lt. README wäre die atomare "Unit" ein Gate? Also ist ein Pin
(des Gates) was? Und ein Pin(-typ) kann ja auch in mehreren
unterschiedlichen "Units" vorkommen.
Du verstehst meine Verwunderung?
> Doxygen-Dokumentation hatte ich persönlich nie als wirklich hilfreich> empfunden, da darin oft erklärt ist, was auch eine Zeile drunter im Code> steht, aber die grobe Struktur fehlt.
Das ist leider SOOOO wahr. Aber man muss solche Fehler ja nicht
unbedingt wiederholen^^
>>> Hast Du schon eine Idee wie sich das Projekt weiterentwickeln soll?> Unabhängig von dem Programm selber:> Pool befüllen, dass man auch sinnvolle Schaltpläne und Boards machen> kann.
Spricht etwas dagegen einen Eagle/KiCad/Whatever -> Horizon Converter zu
basteln?
Dann füllt sich das von selbst.
>> Kurz/mittelfristige ziele:
Ich Deinen Text etwas umsortiert schreib da mal frech meine Gedanken
dazwischen :-D
> - Platzieren von Bauteilen einfacher machen> Liste von zuletzt benutzten Bauteilen; den Dialog "Select Part"> auch als nicht modales Fenster zur Verfügung stellen.> - Parametrische Suche: Die pool-parametric.db wird schon erzeugt, fehlt> "nur noch" ne hübsche GUI drüber.> - GUI für die constraints. Die als JSON zu bearbeiten und mit UUIDs zu> hantieren macht derzeit gar keinen Spaß.> - "Projekt-Manager", dass man sich nicht mehr die Argumente für> horizon-imp selber ausdenken muss, sondern einfach Klicken kann.
Wäre es nicht sinnvoller Horizon erst mal vollständig zum laufen zu
kriegen bevor man "Comfortfkt's" einbaut? Z.B.:
> - DRC: mit der clipper-Library ist der algorithmisch schwere Teil> (Polygon-Operationen) schon erledigt, fehlt noch die gesamte> Infrastruktur außenrum.>
Was behandelt der DRC denn? Clearance & width sind ja die
Minimalforderungen. Wenn der Router Necking können soll, dann muss der
DRC aber auch Mintracewidth handhaben können, ggf. auch mit
Längenbeschränkungen.
Ist Dein Router (if any) schon DRC aware (d.h. berücksichtigt er alle
DRC Rules)? Ansonsten hast Du da noch eine große Baustelle.
Appropos Baustelle: Du schreibst "der Router weicht immerhin schon
den meisten Hindernissen aus".
Was für einen Router hast Du denn da am Start?
(SOWAS habe ich z.B. gesucht)
Und finally: ERC? Ich hab nur kurz in die Quellen reingeschaut aber I/O
directions bei den Gates ist mir nicht aufgefallen.
> Nicht vergessen: Rom wurde auch nicht an einem Tag erbaut (und auch> nicht in einer Nacht)
Du hattest doch in diesem Leben nichts anderes mehr vor (hoffe ich)?
/regards
Andreas H. schrieb:> Lukas K. schrieb:>> Als ganz groben Anhaltspunkt gibt's den Abschmitt "Theory of operation">> in der README, damit sollte man schonmal halbwegs wissen wo vorne ist.>> Den Teil fand ich (nicht böse gemeint) eher wirr.> "Unit" ist sehr ungünstig gewählt, weil man bei CAD als Unit immer an> eine Masseinheit denkt (typischerweise gibt es davon ja Mehrere, die der> Benutzer nur zum Teil sieht.>> Anyway. Lt. README wäre die atomare "Unit" ein Gate? Also ist ein Pin> (des Gates) was? Und ein Pin(-typ) kann ja auch in mehreren> unterschiedlichen "Units" vorkommen.> Du verstehst meine Verwunderung?
Bei KiCAD gibt's auch "Unit" im sinne von nicht-Maßeinheit. Schlechte
Ausrede, aber so ist's nun eben...
Ich versuch's nochmal zu erklären, diesmal andersherum:
Das logische Bauteil (ohne Gehäuse, etc) ist in einer "Entity"
definiert. Eine solche Enity kann mehrere Gates haben (Gatter, Opamps,
IO-Bänke, etc).
Nun haben mehrere Entities die selben Gates, z.B. Quad- und Doppel-opamp
haben beide vier bzw zwei Opamp-Gates. Daher bietet es sich an, die
Gates mit ihren Pins nicht innerhalb der Entities zu definieren, sondern
extern davon und die Gates diese Definition referenzieren zu lassen.
Ebendiese nennt sich dann "Unit".
Ich hoffe ich habe damit nicht noch mehr Verwirrung gestiftet...
> Spricht etwas dagegen einen Eagle/KiCad/Whatever -> Horizon Converter zu> basteln?> Dann füllt sich das von selbst.
Wäre ein doch bedeutender Aufwand, man müsste eben gemeinsame Gates über
Bauteile hinweg finden, daraus Units machen, etc. Die Platzierung von
Texten ist dann wahrscheinlich vollkommens im Eimer, weil das jeder
geringfügig anders macht.
Für einzelne Bauteile (große Mikrocontroller z.B.) kann ein solcher
Importer durchaus sinnvoll sein. Einen Massenimport ohne
Qualitätskontrolle wünsche ich mir allerdings nicht.
Auch ist man ohne Importer gezwungen, horizon zu benutzen und gibt dann
hoffentlich sinnvolles Feedback, was einen nicht so gefällt...
Wenn jemand einen schreibt, der zufriedenstellend funktioniert, habe ich
nichts dagegen :)
>> Wäre es nicht sinnvoller Horizon erst mal vollständig zum laufen zu> kriegen bevor man "Comfortfkt's" einbaut? Z.B.:
Durchaus, alles eine Sache der Prioritäten.
> Was behandelt der DRC denn? Clearance & width sind ja die> Minimalforderungen. Wenn der Router Necking können soll, dann muss der> DRC aber auch Mintracewidth handhaben können, ggf. auch mit> Längenbeschränkungen.
Genau, das war auch so mein Gedanke.
> Ist Dein Router (if any) schon DRC aware (d.h. berücksichtigt er alle> DRC Rules)? Ansonsten hast Du da noch eine große Baustelle.
Er legt keine Leiterbahn, so dass der Minimalabstand zu anderen Netzen
unterschritten wird, aber schmiegt sich nicht an diese auf DRC-Abstand
an.
> Appropos Baustelle: Du schreibst "der Router weicht immerhin schon> den meisten Hindernissen aus".> Was für einen Router hast Du denn da am Start?> (SOWAS habe ich z.B. gesucht)
Ist recht primitiv: Der routet immer zwei Segmente (eines davon
horziontal/vertikal und eines im 45°-Winkel), und versucht durch
"umdrehen" der zwei Segmente DRC-Fehler zu vermeiden. Wenn das nicht
klappt, bleibt der Track da stehen, wo's als letztes keinen DRC-fehler
gab. Nicht vergleichbar mit dem was KiCAD macht, aber immerhin etwas.
> Und finally: ERC? Ich hab nur kurz in die Quellen reingeschaut aber I/O> directions bei den Gates ist mir nicht aufgefallen.
Die gibt es, allerdings nur in der Datenstruktur:
https://github.com/carrotIndustries/horizon/blob/master/pool/unit.hpp#L25
Wenn es DRC gibt, sollte dabei als Nebenprodukt eine Infrastruktur für
"Checks" rausfallen, in die man dann auch ERC einhängen können sollte.
Lukas K. schrieb:> Doxygen-Dokumentation hatte ich persönlich nie als wirklich hilfreich> empfunden, da darin oft erklärt ist, was auch eine Zeile drunter im Code> steht, aber die grobe Struktur fehlt.
Das habe ich früher auch mal gedacht. Mittlerweile habe ich -- dank der
freundlichen Hilfe eines großen Meisters und meiner Erfahrung -- jedoch
festgestellt, daß doxygen & Co. hervorragende und nützliche
Dokumentation erzeugen können, wenn der Entwickler seinen Code sauber
dokumentiert hat.
Ganz unabhängig davon, ob Du doxygen oder ähnliche Werkzeuge magst oder
nicht: wenn Du andere Entwickler dazu animieren willst, bei Deinem
Projekt mitzuhelfen, solltest Du ihnen den Einstieg so einfach wie
möglich machen. Und das beginnt nun einmal mit einer ordentlichen
Dokumentation.
Solche Werkzeuge können einem natürlich nicht die Arbeit abnehmen,
seinen Code ordentlich und verständlich zu dokumentieren. Aber wenn man
das macht, also: Klassen, Methoden, Variablen und vor allem die Konzepte
und Schichten der Software vernünftig dokumentiert, dann können doxygen
& Co. daraus eine sehr gute Dokumentation erzeugen. Und mit dieser
Dokumentation können dann die vorhandenen und neuen Entwickler viel
schneller verstehen, was gemacht wird, wo es gemacht wird, wie es
gemacht wird und warum.
Klar, so wie Dein Code bisher dokumentiert ist -- nämlich gar nicht, wie
ein zugegeben oberflächlicher Blick zeigt -- wird kein Werkzeug der Welt
daraus etwas Sinnvolles machen können. Keine Software kann Informationen
aus dem Nichts generieren. Nicht einmal doxygen. ;-)
tester schrieb:> Lukas K. schrieb:>> Hm, welcher GCC? Bei mir hier baut's mit GCC 6.3.1 und clang 3.9.1.>> Bei mir der Standard gcc/g++ 5.4 von Ubuntu 16.04. Aber der Patch läuft,> ich konnte part.cpp kompilieren. Jetzt hängt er bei schematic.cpp.> Die Meldung ist dieses Mal etwas länger. Ist als Anhang dabei...
Ubuntu im Allgemeinen ist wohl ne mittelgroße Baustelle, da auch in
Ubuntu 16.10 nur Gtk 3.20 dabei ist, ich aber Funktionen von Gtk
benutze, die es erst seit 3.22 gibt. Nichts was unbedingt notwendig ist,
aber die #if GTK_CHECK_VERSION() kommen auch nicht von alleine...
Schaut also aus, als liefe horizon derzeit nur auf Arch Linux und Fedora
25. Hoppla.
Baendiger schrieb:> Gibt es gar keine Screenshots?
Ich finde auch, dass fehlende Scennshots abschreckend wirken.
Wer weiß, was man sich da im Worst-Case-Fall einfängt und nicht
alles findet der Virenscanner. Vielleicht lernst der TO noch, sonst
kann er sein Projekt gleich begraben.
Cyborg schrieb:> Baendiger schrieb:>> Gibt es gar keine Screenshots?>> Ich finde auch, dass fehlende Scennshots abschreckend wirken.> Wer weiß, was man sich da im Worst-Case-Fall einfängt und nicht> alles findet der Virenscanner. Vielleicht lernst der TO noch, sonst> kann er sein Projekt gleich begraben.
EDA Sw für Leute die nicht lesen können wäre bestimmt eine Marktlücke.
Der lesekundige Teil der Menschheit wird dann damit abgespeist:
https://github.com/carrotIndustries/horizon/tree/master/screenshots
/regads
tester schrieb:> Lukas K. schrieb:>> Hm, welcher GCC? Bei mir hier baut's mit GCC 6.3.1 und clang 3.9.1.>> Bei mir der Standard gcc/g++ 5.4 von Ubuntu 16.04. Aber der Patch läuft,> ich konnte part.cpp kompilieren. Jetzt hängt er bei schematic.cpp.> Die Meldung ist dieses Mal etwas länger. Ist als Anhang dabei...
War nun doch weniger aufwändig als gedacht:
https://github.com/carrotIndustries/horizon/commit/bf16b4bfb8179641f8a21b1eee4dfbbb7cf2a065
Baut nun auf Ubuntu 16.04, der Part-Editor tut auch, ob der interaktive
Manipulator funktioniert, konnte ich nicht testen, da meine VM kein
OpenGL 3 kann.
Lukas K. schrieb:> Bei KiCAD gibt's auch "Unit" im sinne von nicht-Maßeinheit. Schlechte> Ausrede, aber so ist's nun eben...
Genau das. Schlechte Ausrede :-)
>> Ich versuch's nochmal zu erklären, diesmal andersherum:> Das logische Bauteil (ohne Gehäuse, etc) ist in einer "Entity"> definiert. Eine solche Enity kann mehrere Gates haben (Gatter, Opamps,> IO-Bänke, etc).> Nun haben mehrere Entities die selben Gates, z.B. Quad- und Doppel-opamp> haben beide vier bzw zwei Opamp-Gates. Daher bietet es sich an, die> Gates mit ihren Pins nicht innerhalb der Entities zu definieren, sondern> extern davon und die Gates diese Definition referenzieren zu lassen.> Ebendiese nennt sich dann "Unit".>> Ich hoffe ich habe damit nicht noch mehr Verwirrung gestiftet...>
Nö, leider nicht. Ein "logisches Bauteil" ist doch nur eine Funktion
(ggf mit einem Symbol). Den Parametern muss man, genau wie dem Result
einen Namen geben (Ports). Die vergibt man pro Funktion (z.B. Q = A &
B). Mehr kann man jetzt noch nicht zuordnen.
Erst wenn das Ganze in ein Device wandert, dann ist die Art & Anzahl der
Funktionen definiert. Und erst jetzt kann (und muss) man den Ports
eindeutic Pins zuordnen (Pin == das wo Du Dich raufsetzen und pieksen
kannst, zumindest bei z.B. THT Bauteilen). Dann hätten Deine Funktionen
endlich unterschiedliche "Namen" für die Pors der jeweiligen Funktionen
(Q1 = A1 & B1, Q2 = A2 & B2 usw).
Du hast also ZWEI Sachen. Die "Ports" an der "Funktion" und die "Pins"
am Gehäuse. Ports haben z.B. elektrische Parameter (z.B In-/Output),
Pins eher Mechanische (Fläche, evtl. Drill usw.).
Ob es wirklich sinnvoll ist, dem jetzt nochmal "frei gewählte"
Bezeichnungen zuzuordnen? Ich sehe da wenig Sinn.
>> Spricht etwas dagegen einen Eagle/KiCad/Whatever -> Horizon Converter zu>> basteln?>> Dann füllt sich das von selbst.>> Wäre ein doch bedeutender Aufwand, man müsste eben gemeinsame Gates über> Bauteile hinweg finden, daraus Units machen, etc. Die Platzierung von> Texten ist dann wahrscheinlich vollkommens im Eimer, weil das jeder> geringfügig anders macht.>> Für einzelne Bauteile (große Mikrocontroller z.B.) kann ein solcher> Importer durchaus sinnvoll sein. Einen Massenimport ohne> Qualitätskontrolle wünsche ich mir allerdings nicht.>
Checken muss man das sowieso. Ich kenne auch kaum Leute, die die Libs
der Tools benutzen, ohne vorher die Bauteile, die sie benutzen, mal
geprüft zu haben. Auch EDA Hersteller machen Fehler^^
> Auch ist man ohne Importer gezwungen, horizon zu benutzen und gibt dann> hoffentlich sinnvolles Feedback, was einen nicht so gefällt...
Das ist Mutig. Denn niemand ist GEZWUNGEN horizon für irgendetwas zu
benutzen. Im Gegenteil. Ich würde meine eigenen Libs ungern nochmal
einhacken müssen.
>> Was behandelt der DRC denn? Clearance & width sind ja die>> Minimalforderungen. Wenn der Router Necking können soll, dann muss der>> DRC aber auch Mintracewidth handhaben können, ggf. auch mit>> Längenbeschränkungen.>> Genau, das war auch so mein Gedanke.>
Ich habe beim Überfliegen auch nirgens irgendwelche Grids gefunden
(übersehen?) Man kann ja gridless routen. Aber wenn Du Gridless Placen
willst, dann hast Du evtl. interessante Diskussionen mit dem Bestücker
(zumindest ältere PicknPlace Automaten hatten da Limits).
>> Ist Dein Router (if any) schon DRC aware (d.h. berücksichtigt er alle>> DRC Rules)? Ansonsten hast Du da noch eine große Baustelle.>> Er legt keine Leiterbahn, so dass der Minimalabstand zu anderen Netzen> unterschritten wird, aber schmiegt sich nicht an diese auf DRC-Abstand> an.>
Muss er auch nicht unbedingt (Diff-Pairs mal ausgenommen).
>> Und finally: ERC? Ich hab nur kurz in die Quellen reingeschaut aber I/O>> directions bei den Gates ist mir nicht aufgefallen.>> Die gibt es, allerdings nur in der Datenstruktur:> https://github.com/carrotIndustries/horizon/blob/master/pool/unit.hpp#L25>> Wenn es DRC gibt, sollte dabei als Nebenprodukt eine Infrastruktur für> "Checks" rausfallen, in die man dann auch ERC einhängen können sollte.
Nö. Das sind zwei (fast) komplett unterschiedliche Baustellen. Ob da
zwei Pins geneinander treiben ist dem Router genauso egal, wie die
Tatsache, das ein Netz nur Eingänge als Pins hat.
Andersherum interessiert es den ERC nicht wenn Du 20A über eine 6mil
Leitung jagst oder 20KV mit 10mil clearance routest.
/regards
Lukas K. schrieb:> Schaut also aus, als liefe horizon derzeit nur auf Arch Linux und Fedora> 25.Lukas K. schrieb:> konnte ich nicht testen, da meine VM kein> OpenGL 3 kann.
Wäre vielleicht sinnvoll, die Anforderungen (compiler, HW) etwas zu
reduzieren. Ansonsten fallen viele potentielle Tester schon mal weg,
selbst wenn du es Dir antust für diverse OS Packages zu bauen.
Spätestens bei Graphikkarten kanns eng werden.
KiCad hat z.B. eine ganze Zeit mit einem Problem von WxWidgets mit GTK3
gekämpft. Und da konnte KiCad garnichts dafür.
Was spricht denn gegen eine "konservative" Toolchain (bei Linux z.B.
Debian Jessie oder RH/CentOs6, bei Windows Win7, bei Mac k.A.^^)?
Das Ganze mit AutoConf oder cMake erleichtert auch das Portieren.
Auch GTK3 erfreut sich ja anscheinend zunehmender Unbeliebtheit, wenn
man so einigen Foren glauben darf.
/regards
Hardy F. schrieb:> Also bitte versuche einen fertigen Windows-Build mit dazuzustellen auf> der Seite.
Hardy: wenn sich ein Programm selbst noch als „halbfertig“ bezeichnet,
dann sind Leute, die es sich nicht selbst compilieren können oder
wollen ohnehin keine sinnvollen Alpha-Tester. Falls da wirklich
„was abgeht“, dann musst du damit rechnen, dass du das täglich oder
aller zwei Tage neu bauen musst, damit du nicht die Bugs nochmal
versuchst zu finden, die seither schon beseitigt sind. In dieser Phase
kann man sowas einfach nicht durch vorgekochte Builds erschlagen.
Ich weiß auch nicht, inwiefern es wirklich Sinn hat, das x-te
Programm dieser Art anzufangen, aber das wird die Zeit sicher zeigen.
Solange es Lukas erstmal nur aus Spaß an der Freude gemacht hat, ist
es doch nur fair, wenn er anderen die Möglichkeit einräumt, es
ebenfalls zu testen und ggf. Verbesserungen vorzuschlagen. Aus eigener
Erfahrung kann ich natürlich sagen, dass solche Vorschläge am besten
die Form eines "diff" annehmen :) (oder bei github wahrscheinlich eines
pull requests).
Vielleicht orientiert ihr euch an bereits bestehenden Workflows. Kicad
erinnert mich an OrCad und lässt sich so von mir fast intuitiv bedienen.
Vielleicht springt ihr in die Bresche und macht nen Adler-Kompatiblen
Workflow. Da dürfte dann für viele User der Grund zum Wechsel werden.
Andreas H. schrieb:> Erst wenn das Ganze in ein Device wandert, dann ist die Art & Anzahl der> Funktionen definiert.
Da liegt der Hund begraben. In horizon gibt es da noch den
Zwischenschritt "Entity". Für die Netzliste ist ein Quad-Nand-Gatter in
CMOS-4000er Logik in DIP Gleichwertig mit einem 74HC in (theoretisch
BGA). Wenn man sich mitten im Design-Prozess anders entscheidet, ist es
problemlos bei einem Component (instantiierte Entity) das Part
auszutauschen, ohne dass die Netzliste was davon mitbekommt.
Andreas H. schrieb:> Ich habe beim Überfliegen auch nirgens irgendwelche Grids gefunden> (übersehen?) Man kann ja gridless routen. Aber wenn Du Gridless Placen> willst, dann hast Du evtl. interessante Diskussionen mit dem Bestücker> (zumindest ältere PicknPlace Automaten hatten da Limits).
Das Raster kommt daher, dass der Cursor auf's grid einschnappt.
Andreas H. schrieb:>> Wenn es DRC gibt, sollte dabei als Nebenprodukt eine Infrastruktur für>> "Checks" rausfallen, in die man dann auch ERC einhängen können sollte.>> Nö. Das sind zwei (fast) komplett unterschiedliche Baustellen.
Klar, die Implementierung der Checks ist vollständig verschieden, am
Ende vom Tag können beide aber die gleiche Infrastruktur zur
Konfiguration und Darstellung der Ergebnisse nutzen.
Was Toolchains, etc anbetrifft: Mittlerweile baut's ja auf Ubuntu 16.04
und kommt auch mit Gtk 3.18 zurecht.
OpenGL 3.2 ist leider Pflicht, da zum Rendern u.A. geometry shader
verwendet werden. Mag zwar erstmal unnütz klingen, ist voraussichtlich
bei großen Boards von Vorteil. Ist jetzt auch schon über 7 Jahre her,
dass das wirklich neu war.
Andreas H. schrieb:> Auch GTK3 erfreut sich ja anscheinend zunehmender Unbeliebtheit, wenn> man so einigen Foren glauben darf.
War absehbar, dass das kommt ;) Ich persönlich kann das Gejammer nicht
nachvollziehen, works for me.
Jörg W. schrieb:> Hardy: wenn sich ein Programm selbst noch als „halbfertig“ bezeichnet,> dann sind Leute, die es sich nicht selbst compilieren können oder> wollen ohnehin keine sinnvollen Alpha-Tester.
Da ist was wahres dran. Rein technisch sind windows-Builds kein Problem
[1], nur erwarten viele Windows-user, dass dann eine Exe rausfällt, auf
die sie doppelklicken können und was sinnvolles passiert - so weit ist
horizon nun noch nicht. Auch wünsche ich mir, dass von den Anwendern
backtraces, etc kommen. "horizon-imp.exe funktioniert nicht mehr" ist da
nicht wirklich hilfreich.
Auch bräuchte ich für die Windows-Builds sowas wie nen buildbot, denn
ich will nicht nach jedem commit meine Windows-VM anwerfen müssen.
[1]
https://github.com/carrotIndustries/horizon/blob/master/make_bindist.sh
Lukas K. schrieb:> Auch bräuchte ich für die Windows-Builds sowas wie nen buildbot, denn> ich will nicht nach jedem commit meine Windows-VM anwerfen müssen.
ich würd jetzt in dieser frühen Phase erstmal primär kein Gewicht auf
zeitnahe Windows-Builds (oder andere Exotenplatformen) legen sondern auf
das System konzentrieren unter dem auch primär die Entwicklung
stattfindet, und da brauchst Du auch keine Binaries zu bauen, das machen
die Tester und Mitentwickler eh selbst. Früher oder später wirst Du dann
jemanden finden der genug Interesse an Windows hat daß der sich um die
Windows-Builds kümmert.
Bernd K. schrieb:> Früher oder später wirst Du dann jemanden finden der genug Interesse an> Windows hat daß der sich um die Windows-Builds kümmert.
Oder man kann sich dann auch wirklich die Infrastruktur selbst mal
aufsetzen. Ich habe mittlerweile (bei AVRDUDE) lernen müssen, dass
das am Ende schneller geht als zu hoffen, dass sich einer der
Windowsianer zu sowas freiwillig hinreißen lässt. :( Das hat dann
das Kuriosum, dass dabei Windows-Builds enstehen, die selbst beim
Bauen nie ein Windows gesehen haben. :-)
Bernd K. schrieb:> Früher oder später wirst Du dann> jemanden finden der genug Interesse an Windows hat
Es ist allerdings fragwürdig, die überwiegende Mehrheit der CAD-Benutzer
von vornherein vom Testen auszuschliessen. Aber für Linux-Fanatiker ist
das natürlich konsequent.
Der grundlegende Irrtum ist wohl, dass man eine abgeschottete
Linux-Brüderschaft als "Kunden" sieht, und nicht Leute, die
Leiterplatten entwerfen. Muss aber jeder Entwickler selber wissen. Nur
nicht später wundern, wenn keiner das Programm benutzt.
Georg
Georg schrieb:> Der grundlegende Irrtum ist wohl, dass man eine abgeschottete> Linux-Brüderschaft als "Kunden" sieht,
Wieso Linux?
Das Ding compiliert ja offenbar unter Windows. Vermutlich bekommt
man es auch unter anderen Systemen zum Laufen. Es sind also nicht
Windows-Nutzer per se ausgeschlossen, wie du das unterschwellig
darstellst.
> und nicht Leute, die> Leiterplatten entwerfen.
Das ist erstmal völlig unabhängig vom OS: in solch einer frühen
Entwicklungsphase wirst du so oder so keine Platinendesigner groß
finden, die da ernsthaft gewillt wären mitzuentwickeln. Es wurde
ja schon dargelegt, dass „Kunden“, die als Feedback dann lediglich
„horizon.exe hat einen Fehler verursacht und wurde beendet“ oder
„ich hätte gern Feature XYZ, bevor ich mir das ansehe“ in so einer
Entwicklunsphase sowieso nicht zielführend sind. In dieser Phase
braucht man Leute, die Bugs nicht nur melden, sondern zumindest
analysieren, oder die eben auch mal anfangen, wenigstens über die
Implementierung eines Features nachzudenken.
Opensource kennt in diesem Sinne erstmal keine „Kunden“, sondern
eher „Macher“ (auch wenn dieser Begriff mittlerweile anderweitig
verzerrt worden ist). Das ist ein sehr grundlegender Unterschied
zu Bezahlsoftware.
Übrigens ignorierst du geflissentlich, dass ein großer Teil der
CAD-Szene im IC-Design, das ja durchaus mit Platinendesign verwandt
ist, historisch auf großen UNIXen und heute nach wie vor massiv auf
Linux abläuft. Ist also keineswegs so, dass es da keine Anwender
gäbe. Aber das wissen natürlich Leute, die in ihrer abgeschotteten
Windows-Brüderschaft herumwerkeln, vermutlich gar nicht (um mal
deine Worte zu gebrauchen).
Stefan schrieb:> was ist an Autotrax nicht gut?
Das sollte ihr bitte in einem eigenen Thread diskutieren.
Den hier hat Lukas angefangen, um über horizon zu diskutieren.
Stefan schrieb:> das wird noch sowieso nie einer benutzen also völlig wertlos
Also ich mache als Hobby auch viele Dinge die niemand benutzt. Beim
Hobby ist der Weg das Ziel. Solange es Spaß macht spricht nichts
dagegen.
Lukas K. schrieb:> Wer sich ins Abenteuer stürzen will..
Nun ja, so ganz im Prinzip ist es allemal lobenswert, wenn jemand
anfängt, sich mit so einem Projekt eine Mühe zu geben. Aber wer soll
sich da zusätzlich ins Abenteuer stürzen?
Eigentlich müßte man mMn so ein Projekt völlig anders angehen, nämlich
mit einem Dokument, PDF oder LibreOffice oder so, wo die Grundprinzipien
entwickelt und dargestellt sind. Dort gehört also hinein, wie das ganze
Programm von seiner ineren Logik her funktionieren soll, wie die Daten
gehalten werden sollen, wie das Userinterface funktionieren soll, also
wie man mit dem Programm später umgehen kann.
So etwas ist tausendmal wichtiger als sofort in die Tasten zu hauen. Es
ist aber nötig vor jeglichen Programmieranstrengungen - zum einen
damit man selber sowie eventuelle Mitarbeiter wissen, wie das Ganze
zusammenspielen soll und zum anderen, damit interessierte Anwender ihre
Sicht auf die Dinge einbringen können. Sonst wird das Ganze mal wieder
ein Ding, das nur aus Sicht der Programmierer konstruiert wurde und an
den tatsächlichen Bedürfnissen der Benutzer vorbeigeht.
Man mag sowas ein Pflichtenheft nennen, ich würde das zunächst nur ein
Papier zur Ideen-konsolidierung nennen. Wenn sich das dann entwickelt,
kommen interne Schnittstellen-Definitionen hinzu, damit verschiedene
Leute an verschiedenen Teilen arbeiten können ohne sich gegenseitig zu
hakeln.
Aber so, wie es vorliegt? Wer soll sich da hineinknien, um mühselig
herauszufinden, wie hier was funktionieren soll? Nee, ich selber bin da
außen vor, ich mache nix in cpp, sondern allenfalls mit Delphi oder
Lazarus. Aber die Wahl einer Programmiersprache oder einer Toolchain ist
mMn zweitrangig. Zuerst geht es um den tatsächlichen Systementwurf - und
den vermisse ich hier.
W.S.
Lukas K. schrieb:> Andreas H. schrieb:>> Erst wenn das Ganze in ein Device wandert, dann ist die Art & Anzahl der>> Funktionen definiert.>> Da liegt der Hund begraben. In horizon gibt es da noch den> Zwischenschritt "Entity". Für die Netzliste ist ein Quad-Nand-Gatter in> CMOS-4000er Logik in DIP Gleichwertig mit einem 74HC in (theoretisch> BGA). Wenn man sich mitten im Design-Prozess anders entscheidet, ist es> problemlos bei einem Component (instantiierte Entity) das Part> auszutauschen, ohne dass die Netzliste was davon mitbekommt.
Was bringt das? Eine Netzliste ist doch on-the-fly erzeugt und ändert
sich während des Schematic entrys laufend (bei Backanotation ja auch
noch).
Der Sinn will sich mir nicht erschliessen, sry. Ich sehe da z.Z. nur
potentielle Fehlerquellen.
>> Andreas H. schrieb:>> Ich habe beim Überfliegen auch nirgens irgendwelche Grids gefunden>> (übersehen?) Man kann ja gridless routen. Aber wenn Du Gridless Placen>> willst, dann hast Du evtl. interessante Diskussionen mit dem Bestücker>> (zumindest ältere PicknPlace Automaten hatten da Limits).> Das Raster kommt daher, dass der Cursor auf's grid einschnappt.>
Das Raster IST das Grid. Und das ist ja nicht nur dort wo der Cursor
ist.
Ich entnehme Deiner Aussage mal, dass es mindestens ein Grid gibt :-)
> Andreas H. schrieb:>>> Wenn es DRC gibt, sollte dabei als Nebenprodukt eine Infrastruktur für>>> "Checks" rausfallen, in die man dann auch ERC einhängen können sollte.>>>> Nö. Das sind zwei (fast) komplett unterschiedliche Baustellen.> Klar, die Implementierung der Checks ist vollständig verschieden, am> Ende vom Tag können beide aber die gleiche Infrastruktur zur> Konfiguration und Darstellung der Ergebnisse nutzen.
Never. DRC geht auf geometische Daten, dem ERC reicht eine "annotierte"
Netzliste (annotiert meint hier, das die Pins noch die "Direction"
Attribute brauchen).
Ansonsten könntest Du keinen ERC machen, bevor das Layout steht^
(Ok, theoretisch könntest Du Parasitics aus dem Layout extrahieren &
prüfen. Aber das ist eine GAAANZ andere Geschichte.)
>> Auch GTK3 erfreut sich ja anscheinend zunehmender Unbeliebtheit, wenn>> man so einigen Foren glauben darf.>> War absehbar, dass das kommt ;) Ich persönlich kann das Gejammer nicht> nachvollziehen, works for me.
Nimm was Dir Spass macht. Aber wenn es nachher nur bei 30% der Leute
läuft dann macht es auch wenig Sinn, oder?
Und einen kleinen Vorgeschmack hast Du ja gestern schon bei tester
mitbekommen. Das Ganze dann *100^^
/regards
Georg schrieb:> Der grundlegende Irrtum ist wohl, dass man eine abgeschottete> Linux-Brüderschaft als "Kunden" sieht, und nicht Leute, die> Leiterplatten entwerfen.
DEIN grundlegender Irrtum ist, dass OSS Entwickler soviel Zeit haben,
dass sie neben der Weiterentwicklung auch noch Unmengen an Hilferufen
bearbeiten können.
Das wird meist noch nerviger wenn die "Kunden", wie Du sie nennst, meist
nicht mal vernünftige Fehler-/Environmentbeschreibungen liefern.
Und das findest Du bei Linux/Windows/Mac "Kunden" gleichermassen.
W.S. schrieb:> Eigentlich müßte man mMn so ein Projekt völlig anders angehen, nämlich> mit einem Dokument, PDF oder LibreOffice oder so, wo die Grundprinzipien> entwickelt und dargestellt sind.
Im Prinzip schon. Aber das kann man auch im Forum diskutieren. Gerade am
Anfang fliessen dann auch Erfahrungn von Anderen ein ohne das erst mal
viel "Papier" gemacht wird.
Mir würde es auch nur bedingt Spass machen, erst mal eine komplette Spec
zu schreiben (das V-Modell nervt auf Arbeit schon genug).
> Aber so, wie es vorliegt? Wer soll sich da hineinknien, um mühselig> herauszufinden, wie hier was funktionieren soll?
Da gibts aber einige Hinweise auf der Projektseite.
/regards
P.S:
W.S. schrieb:> Nee, ich selber bin da außen vor, ich mache nix in cpp, sondern> allenfalls mit Delphi oder Lazarus.
Ich leiste mir meist nicht den Luxus mich auf eine Programmiersprache
festzubeissen. Aber bei Lazarus wäre ich dabei (Delphi geht ja leider
nur unter Windows). Dann wäre man z.B. schon einen Großteil des
"Buildwahns" los.
Lukas K. schrieb:> OpenGL 3.2 ist leider Pflicht
Tja, das ist z.Zt. das Problem. Nach dem letzet git pull ist die
Compilierung durchgelaufen, danke dafür. Aber starten kann ich es nicht:
xxxxx@HPi7:~/src/horizon$ ./horizon-imp -c sch.json block.json
constr.json
(horizon-imp:5550): GLib-GObject-CRITICAL **: g_value_take_object:
assertion 'G_IS_OBJECT (v_object)' failed
horizon-imp: Couldn't find current GLX or EGL context.
Mein X.org Server scheint nur OpenGL 3.0 zu haben:
xxxxx@HPi7:~/src/horizon$ glmark2
=======================================================
glmark2 2014.03+git20150611.fa71af2d
=======================================================
OpenGL Information
GL_VENDOR: X.Org
GL_RENDERER: Gallium 0.4 on AMD TURKS (DRM 2.43.0, LLVM 3.8.0)
GL_VERSION: 3.0 Mesa 11.2.0
=======================================================
Hm... eingebaut ist eine Radeon HD6570, die sollte das eigentlich
können.
Nach https://wiki.ubuntuusers.de/Grafikkarten/AMD/radeon/ sogar
OpenGL4.1, aber mindestens OpenGL3.3. Mal sehen...
Also, prüfst du irgendwo im Quelltext die OpenGL Version? Die
Grafikkarte sollte Shader 3.3 können, der Treiber scheint aber nach
außen hin
nur die 3.0 zu melden. Den Error-String "Couldn't find current GLX or
EGL context" habe ich im Quelltext nicht gefunden, um die Stelle zu
lokalisieren...
xxxxx@HPi7:~/src/horizon$ glxinfo | grep version
#server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
Max core profile version: 3.3
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.2.0
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.0 Mesa 11.2.0
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.2.0
OpenGL ES profile shading language version string: OpenGL ES GLSL ES
3.00
Fehler hatte wohl doch nichts mit OpenGL zu tun. Aus
imp/main_window.cpp:
[...] x->add_from_resource("/net/carrotIndustries/horizon/window.ui");
Wie viele hardcodierte Pfade sind denn da drin?
xxxxx@HPi7:~/src/horizon$ grep -r -i "/net/carrotIndustries/horizon" |
wc
36 151 4173
Ok, habe jetzt mal einen Symlink angelegt. Recht viel weiter komme ich
leider nicht:
xxxxx@HPi7:/net/carrotIndustries/horizon$ ./horizon-imp -c sch.json
block.json constr.json
terminate called after throwing an instance of 'Gio::ResourceError'
Abgebrochen (Speicherabzug geschrieben)
Gut für heute...
Andreas H. schrieb:> Aber das kann man auch im Forum diskutieren.
Im Prinzip - ja. Aber so ganz blank - ohne wenigstens ein Anfangspapier?
Nee. geht nicht.
Du siehst ja an den Beiträgen kurz unter deinem, was da losgeht.
Ärger mit OpenGL ist doch eigentlich etwas, das so unendlich lowlevel
ist, daß es die eigentliche Funktionalität garnicht berührt. Also MUSS
man eine Trennung einziehen zwischen der CAD-Funktionalität und solch
niederen Dingen wie Betriebssystem, GraKa und so weiter - versteh das
richtig: es ist beides vonnöten, aber es muß strikt auseinander gehalten
werden.
Womit wir wieder beim Papier mit der Grundsatzrede (a la Honecker.. oder
lieber nicht) sind. Es hat wirklich keinen Zweck, draufloszucoden,
solange kein "Honecker"-Papier existiert, das wenigstens einigermaßen
ausdiskutiert ist.
Beruflich kenne ich das so, daß im Gremium ein Papier im Word-Format
existiert, wo reihum jeder seinen Senf reinschreibt - und das wird dann
beim nächsten Treffen diskutiert. Dann geht die nächste Runde los.. eben
so lange, bis alle abgenickt haben.
W.S.
W.S. schrieb:> das wird dann> beim nächsten Treffen diskutiert. Dann geht die nächste Runde los.. eben> so lange, bis alle abgenickt haben.
Da hast du die Zeichen der Zeit nicht erkannt - in Zukunft zählt nur
noch die Methode Trump, Abweichler werden sofort standrechtlich
erschossen und technische Fragen werden durch alternative Fakten gelöst.
Im Ernst, Konsens ist sowas von gestrig.
Georg
Lukas K. schrieb:> mein Elektronik-CAD-Programm endlich halbwegs> vorzeigbar:
Hallo Lukas!
Ja was soll ich sagen? Zunächst sollte ich Dir wohl mal meine
Anerkennung aussprechen -- Du bist einer der wenigen hier, die mal etwas
zustande bringen, statt immer nur rumzumosern.
Du kennst ja sicher meinen Schaltplaneditor, den ich vor einigen Jahren
mal in Ruby programmiert hatte (http://ssalewski.de/PetEd.html.en), und
auch meinen Toporouter(http://ssalewski.de/Router.html.en). Da war das
Interesse ja praktisch null. Oder den Schaltplaneditor, den hier jemand
vor etwa einem jahr in Jawa präsentiert hatte -- auch null Interesse.
Aber du wirst wohl eh nicht erwarten, dass sich jemand an Deinem Projekt
beteiligt.
Was mich doch etwas wundert: Wenn Du schon in C++ programmieren magst,
warum hast Du dann nicht gleich Qt verwendet? Die Kombination ist doch
eigentlich ganz gut. Und GTK ist ja momentan extrem unbeliebt bei
Anwendern. Manch mal denke ich, dass ich der Einzige bin, der es noch
verwendet. Community ist ja auch so gut wie tod. Aber gut, einige wenige
arbeiten im stillen Kämmerlein wohl doch noch an GTK4, vielleicht wird
GTK dann wieder populärer. Es soll ja immerhin ein Vulkan Backend geben!
Und wenn schon GTK, dann hätte man ja auch eine moderne und schönere
Sprache nehmen können. Language Bindings gibt es ja reichlich, vom mir
für GTK3, aber auch für Rust oder Crystal hatte ich welche gesehen. Oder
aber, man hätte das ganze eher Web-basiert aufziehen können -- davon
schwärmen ja einige (ich selber weniger). Also Java-Script, HTLM5 oder
so. Tablet Support.
Du hast OpenCL verwendet -- alle Achtung, dass hatte ich mir damals
nicht zugetraut. Aber Cairo ist eigentlich auch noch schnell genug -- na
ja gerade so.
Ja ich werde mir Dein Projekt wahrscheinlich mal ansehen. Falls Du es
tatsächlich fortführst, künnte ich ja drüber nachdenken, Dein
Dateiformat zu übernehmen. Momentan verwende ich das gEDA Format, aber
das gEDA Projekt ist ja wohl auch recht tod. Allerdings, wenn ich
irgendwann mal daran weiterarbeite, werde ich von Ruby wohl auf Nim
umsteigen. Abernatürlich gibt es genügend andere interessante Aufgaben.
Stefan S. schrieb:> Ja was soll ich sagen? Zunächst sollte ich Dir wohl mal meine> Anerkennung aussprechen -- Du bist einer der wenigen hier, die mal etwas> zustande bringen, statt immer nur rumzumosern.
Freut mich sehr auch mal das zu lesen :)
In gewisser maßen kann man horizon als "opinionated software"
bezeichnen. Horizon ist die Materialisierung eines EDA-Programms, so wie
ich es mit meiner Erfahrung für richtig und sinnvoll erachte. Dass das
andere Leute nicht so sehen, ist dann eben so. Allen kann man's eh nie
recht machen.
Stefan S. schrieb:> Du kennst ja sicher meinen Schaltplaneditor, den ich vor einigen Jahren> mal in Ruby programmiert hatte (http://ssalewski.de/PetEd.html.en), und> auch meinen Toporouter(http://ssalewski.de/Router.html.en). Da war das> Interesse ja praktisch null.
Leider nicht, aber in der Tat scheint das Interesse der Leute hier an
nicht-mainstream EDA-Tools im allgemeinen eher gering zu sein. Vor
einiger Zeit hatte ich hier mal (keine Ahnung warum im Forum "Markt")
auf PCB elegance aufmerksam gemacht:
Beitrag "PCB Elegance" Hat genau niemanden
interessiert.
Ähnlich mit librepcb: Beitrag "librepcb Free Schematic und PCB Editor Erfahrungen Leistungsvergleich" Auf
das Projekt wurde ich auch erst zufällig auf dem 33C3 aufmerksam.
Stefan S. schrieb:> Was mich doch etwas wundert: Wenn Du schon in C++ programmieren magst,> warum hast Du dann nicht gleich Qt verwendet?
Historisch gewachsen. Ich hatte schon seit ca. 5 Jahren GUIs mit Gtk
programmiert, praktisch nur mit Python und hab hab damit sehr gute
Erfahrungen gemacht. Horizon hatte ursprünglich als eine Kombination von
C und python angefangen, wurd' mir dann irgendwann zu doof und ich hab'
dann C genommen. Das ging gut, bis ich UUIDs durch GObject schieben
wollte und mir der GObject-Krams zu umständlich erschien.
Dann hatte ich mir mal C++ und Gtkmm angesehen und die Kombination für
perfekt befunden. Mit Qt hatte ich noch nie wirklich was am Hut, hatte
aber auch nie das Gefühl, dass mir als Entwickler was bei Gtkmm fehlt.
Vielleicht auch eine Mischung aus Vendor-Lockin und Stockholm-Syndrom...
Die Gtk-Entwickler sind im IRC und in bugreports auch durchaus
hilfreich, kann mich diesbezüglich nicht beschweren.
Persönlich gefallen mir auch die Client-Side decorations von Gtk nach
anfänglicher Skepsis gut, als Beispiel der Footprint-Generator aus
horizon im Anhang.
Stefan S. schrieb:> Language Bindings gibt es ja reichlich, vom mir> für GTK3, aber auch für Rust oder Crystal hatte ich welche gesehen.
C++ mag zwar ein wenig altbacken wirken, aber mit C++ hat man noch die
größte Chance Leute zu finden die das auch können. Außerdem ist die
Nutzerbasis von Gtk-Bindings zu z.B. Rust nochmal geringer, als die von
Gtkmm.
>Oder> aber, man hätte das ganze eher Web-basiert aufziehen können -- davon> schwärmen ja einige (ich selber weniger). Also Java-Script, HTLM5 oder> so. Tablet Support.
Bloß nicht. Die Frameworks im Web-bereich haben eine gefühlte
Haltbarkeitszeit von 3 Monaten, danach ist schon wieder das nächste hip.
Gtk und C++ sind da deutlich gemächlicher.
Stefan S. schrieb:> Du hast OpenCL verwendet -- alle Achtung, dass hatte ich mir damals> nicht zugetraut. Aber Cairo ist eigentlich auch noch schnell genug -- na> ja gerade so.
Eben. OpenGL war mehr so nen Angstreflex, dass später auch mal größere
Boards halbwegs schnell rendern. Auch dreht die GPU eh größtenteils
Däumchen, warum die nicht mit Malen vom Grid, Linien mit runden Enden
und schraffierten Dreiecken beauftragen? Schaden kann's ja nicht und das
OpenGL-programmieren mit shadern und so macht auch Spaß.
Lukas K. schrieb:> aber in der Tat scheint das Interesse der Leute hier an> nicht-mainstream EDA-Tools im allgemeinen eher gering zu sein.Stefan S. schrieb:> Du kennst ja sicher meinen Schaltplaneditor, den ich vor einigen Jahren> mal in Ruby programmiert hatte (http://ssalewski.de/PetEd.html.en), und> auch meinen Toporouter(http://ssalewski.de/Router.html.en). Da war das> Interesse ja praktisch null. Oder den Schaltplaneditor, den hier jemand> vor etwa einem jahr in Jawa präsentiert hatte -- auch null Interesse.
Ihr solltet mal eure Scheukappen bei Seite schieben und mal überlegen
warum das so ist.
Euer Wissen, das ja anscheinend vorhanden ist, könnte man sicherlich
'gewinnbringender' an den Mann bringen.
il Conte schrieb:> Ihr solltet mal eure Scheukappen bei Seite schieben und mal überlegen> warum das so ist.
... wenn die Fähigkeit, das Programmieren zu beherrschen, nur mit
Gleichgesinnten geteilt wird, dann darf man sich nicht beklagen, wenn
die "Übriggebliebenen" sich leider mangels ebendieser Fähigkeiten
abwenden...
Wenn man jemandem etwas hinstellt, mit dem er nicht umgehen kann, wird
er sich damit nicht beschäftigen.
Lukas K. schrieb:> Leider nicht, aber in der Tat scheint das Interesse der Leute hier an> nicht-mainstream EDA-Tools im allgemeinen eher gering zu sein. Vor> einiger Zeit hatte ich hier mal (keine Ahnung warum im Forum "Markt")> auf PCB elegance aufmerksam gemacht:> Beitrag "PCB Elegance" Hat genau niemanden> interessiert.
Doch. Nur ist ein EDA-Tool einfach nur dazu da seine Schaltung mit einer
Leiterplatte zu verheiraten. Es muß schon einen Grund geben sein bisher
verwendetes Tool ersetzen zu wollen, da die Einarbeitung bis man mit was
Neuem produktiv arbeiten kann ganz schön lange dauert. Und Leute die
wirklich gut programmieren können und richtig gut
Entwickeln/Entflechten können sind wirklich rar.
Michael X. schrieb:> Und Leute die wirklich gut programmieren können und richtig gut> Entwickeln/Entflechten können sind wirklich rar.
Wobei ich die Idee des Toporouters schon mal nett fände. Weiß ja
nicht, inwiefern man den vielleicht auch mit KiCad verheiraten
könnte?
Ist aber 'ne andere Baustelle, hier geht's um horizon. Auch, wenn ich
selbst keine Ressourcen frei habe, finde ich die Diskussion darum
allemal interessant und werde hier weiter mitlesen.
Michael X. schrieb:> Es muß schon einen Grund geben sein bisher> verwendetes Tool ersetzen zu wollen, da die Einarbeitung bis man mit was> Neuem produktiv arbeiten kann ganz schön lange dauert.
Das ist nur ein Teil des Problems, wichtiger ist meist die Tatsache,
dass zahlreiche, u.U. hunderte fertige Layouts existieren, die weiter
gepflegt werden müssen. Für Elektronik-Firmen ist CAD-Layout eine
strategische Software, die die Existenz der Firma beeinflussen kann. Es
kann schon zur Katastophe werden, wenn die BWLer entscheiden, dass die
Entwickler plötzlich mit anderer Software arbeiten müssen.
Es ist also vernünftig, bei solchen Fragen sehr konservativ zu sein.
Georg
Georg schrieb:> Das ist nur ein Teil des Problems, wichtiger ist meist die Tatsache,> dass zahlreiche, u.U. hunderte fertige Layouts existieren, die weiter> gepflegt werden müssen.
Kein großes Argument: die Benutzung einer neuen Software zwingt doch
keinen dazu, die alte deswegen gleich zu verschrotten.
Aber Georg, für derartige Entscheidungsfragen ist es bei horizon ganz
gewiss zu früh, ich schätze mal wenigstens 5 Jahre zu früh. Das ist
jetzt keine Missachtung von Lukas' Leistung, aber er nennt es ja selbst
„halbfertig“. Erst müsste es also mal fertig werden, und dann noch so
interessant für Platinendesigner werden, dass sie überhaupt drüber
nachdenken, sich in eine weitere Software einzuarbeiten.
Wenn Lukas ein wenig eher damit fertig geworden wäre, hätte er jetzt
vielleicht ein paar angep***ste Adler-Nutzer als willige Betatester
haben können, aber dazu hätte horizon erstmal Beta-Charakter haben
müssen. So weit ist es wohl noch nicht.
Jörg W. schrieb:> Wenn Lukas ein wenig eher damit fertig geworden wäre, hätte er jetzt> vielleicht ein paar angep***ste Adler-Nutzer als willige Betatester> haben können, aber dazu hätte horizon erstmal Beta-Charakter haben> müssen. So weit ist es wohl noch nicht.
Was Du da schreibst gilt aber eher für kommerzielle Software, und ich
glaube nicht, dass Lukas ersthaft hofft, sein Programm mal teuer
verkaufen zu können.
Bei EDA-CAD wäre gerade in der frühen Phase, wenn etwa 30 % fertig sind,
die Mitwirkung anderer sinnvoll und hilfreich -- etwa durch gut
durchdachte Vorschläge, Problemlösungen, oder womöglich sogar durch
Programmcode. Wenn alles schon fast fertig ist, dann kann man nicht mehr
viel ändern, und es bleibt im wesentlichen nur das Mosern.
Aber die breite Masse postet heute eben lieber Fotos von ihrem
Mittagessen auf Fakebook, sucht Pokemons oder guckt Videos. Und das ist
auch völlig OK.
Stefan S. schrieb:> Aber die breite Masse postet heute eben lieber Fotos von ihrem> Mittagessen auf Fakebook, sucht Pokemons oder guckt Videos.
Jetzt erinnerst du an Sokrates.
> Bei EDA-CAD wäre gerade in der frühen Phase, wenn etwa 30 % fertig sind,> die Mitwirkung anderer sinnvoll und hilfreich
Nur, dass du in dieser Phase eben noch niemanden da bekommen wirst,
der das wenigstens halbwegs produktiv benutzen will. Diese Leute
hatte ich als Eagle-Umsteiger im Blick, von denen es gerade ein paar
mehr geben dürfte als zuvor.
Entwickeln und "produktiv benutzen" sind bei einem größeren
Softwareprojekt schon sehr verschiedene Sachen. In der Anfangsphase kann
man Ideen und Problemlösungen einbringen, die Software damit aktiv
mitgestalten und womöglich Freude daran haben. Produktiv nutzen kann man
so ein Programm in dieser Phase aber eher nicht, schon gar nicht wenn
man wirklich Platinen herstellen lässt und auf deren Funktionsfähigkeit
angewiesen ist. Später, wenn das Programm weitgehend fertig ist, kann
man es hoffentlich produktiv nutzen, aber dann wird man sich auf
Fehlerberichte beschränken und hoffen das sie irgendwann behoben werden.
Letzteres hatte ich lange Jahre bei gEDA beobachtet -- fast alle neuen
Ideen oder größeren Erweiterungen wurden von einigen Altusern abgelehnt,
und selbst ohne diese Ablehnung wäre es für Neulinge schwer diese ohne
Hilfe der ursprünglichen Entwickler zu implementieren.
Ach Lukas, was mir gerade noch einfällt...
Wie machst Du das mit der Textausgabe in den Gerber-Dateien? Am
Bildschirm hat man ja zunächst hochwertige Fonts, etwa Truetype oder was
auch immer, bei mir wäre das Pango-Rendering. Gerber hat ja aber keine
wirklichen Fonts, man muss also alles durch Linien und Kreisbögen
darstellen. gEDA/PCB verwendet auch am Bildschirm primitive Fonts, die
aus Kreisbögen und Linien bestehen, darunter leidet aber die
Darstellungsqualität. Mein Ansatz wäre gewesen, zunächst echte Fonts zu
verwenden und die dann in Linien/Kreisbögen für Gerber zu wandeln.
Und noch eine andere Bemerkung: Wenn ich ein C++ Freund wäre, hätte ich
womoglich auf Qucs mit Qt aufgebaut -- da hätte man Schaltplan- und
Simulation schon mal, und müsste dann nur noch den Platinenteil machen.
Hast Du schon über Simulations-Anbindung nachgedacht?
Dein Git-Reposity werde ich mir demnächst ansehen, ich bin mir
eigentlich sicher dass es sich lohnt, blos momentan ist die Zeit etwas
knapp...
Stefan Salewski schrieb:> Mein Ansatz wäre gewesen, zunächst echte Fonts zu verwenden und die dann> in Linien/Kreisbögen für Gerber zu wandeln.
Den Vorteil dieses Ansatzes sehe ich darin, dass man schon alles
für den Bildschirm fix & fertig hat und dass die Geschwindigkeit
dafür optimiert ist. Der Nachteil ist, dass man eine deutlich
höhere Genauigkeit vorgegaukelt bekommt, als sich am Ende erzielen
lässt. Man neigt meiner Erfahrung nach dann dazu, viel zu kleine
Schriften zu benutzen.
Ja, das ist richtig.
Ergänzung: Vielleicht möchte man ja auf der Platine chinesische oder
kyrillische Schrift haben. Deshalb denke ich, dass man tatsächlich die
Wandlung von einer echten hochwertigen Unicode-Schrift am Bildschirm zu
Linien/Bögen auf Gerber machen sollte. Vielleicht kennt ja jemand eine
Bibliothek die so etwas schon gut macht?
Ist extended Gerber eigentlich immer noch "State of the Art"? Vor ca. 5
Jahren war das noch so, ich glaube ich hatte dazu sogar hier mal
gefragt. Neueres weiß ich dazu aber nicht, aber ich errinnere mich
dunkel, dass es zwei "modernere" Alternativ-Formate gab.
Stefan Salewski schrieb:> aber ich errinnere mich> dunkel, dass es zwei "modernere" Alternativ-Formate gab
Modern muss nicht besser heissen. ODB++ löst zwar manche Probleme,
andere aber nicht, auch weil sie garnicht lösbar sind - es gibt nun mal
keine Norm für Lagenbezeichnungen, das macht jeder wie er will, und
neben üblichen wie "Top" oder "Bestückungsseite" gibt es ungefähr so
viele wie Layouter. Ausserdem, was heisst bei einer heutigen Schaltung
überhaupt "BS" oder "Oben"? Und ist die Lage 1 die obere oder die erste
innen??
Folglich muss der CAD-Mann beim Hersteller selber interpretieren, welche
Datei im Layerstack wohin gehört, genau wie bei Gerber auch, das ist die
Hauptarbeit den ganzen Tag über.
Dazu ist ODB++ eine traditioneller Unix-Albtraum, für jedes Objekt wird
eine eigene Datei in einem bestimmten Verzeichnis angelegt, so dass ein
Layout mit ODB++ leicht aus tausend kleinen Dateien besteht,
selbstverständlich ohne Dateiendung, von denen auch unzählige den
gleichen Dateinamen haben, reisst das mal auseinander, sind alle Daten
verloren.
Aber du kannst dich ja mal im Netz über ODB++ einlesen.
Georg
Stefan Salewski schrieb:> Ist extended Gerber eigentlich immer noch "State of the Art"?
An sich schon, es gibt aber eine neuere Spec von Ucamco, die sich
Gerber X2 nennt.
Hallo Stefan.
Stefan Salewski schrieb:> Ergänzung: Vielleicht möchte man ja auf der Platine chinesische oder> kyrillische Schrift haben. Deshalb denke ich, dass man tatsächlich die> Wandlung von einer echten hochwertigen Unicode-Schrift am Bildschirm zu> Linien/Bögen auf Gerber machen sollte. Vielleicht kennt ja jemand eine> Bibliothek die so etwas schon gut macht?
Schau mal nach dem Cenon Projekt. Die bearbeiten allgemein Vektor
Formate und darunter auch SVG und Gerber. Die könnten passende
Bibliotheken entwickelt haben.
http://www.cenon.info> Ist extended Gerber eigentlich immer noch "State of the Art"?
Grundsätzlich ja. Es gibt zwar mittlerweile ein "X2", aber das ist voll
rückwärtskompatibel zu extended Gerber. Die einzige Ergänzung sind
"Attribute"
Desweiteren taucht bei vielen Gerber Elementen in der Ucamco
Dokumentation der Hinweis auf, dass sie nach Möglichkeit nicht mehr
verwendet werden sollen. Damit soll Gerber weiter vereinfacht werden.
Trozdem bleiben sie bestehen, damit auf diesen Unterlagen basierende
Gerber Software immer noch mit alten Daten umgehen kann.
FAQ zu Gerber X2:
https://www.ucamco.com/files/downloads/file/131/the_gerber_file_format_version_2_faq_de.pdf?ffadb605ad51e2ab5d87820700d9d26c
Die z.Z. aktuelle Spezifikation von Gerber X2 Revision 2016.12 ist hier:
https://www.ucamco.com/files/downloads/file/81/the_gerber_file_format_specification.pdf?cb3475a30bcf27121f13b2f307f8231b> Vor ca. 5> Jahren war das noch so, ich glaube ich hatte dazu sogar hier mal> gefragt. Neueres weiß ich dazu aber nicht, aber ich errinnere mich> dunkel, dass es zwei "modernere" Alternativ-Formate gab.
Ja, OBD++ und IPC-2581. Ersteres ist aber nicht offen, und zweiteres nur
halb, was für Austauschformate ein "No-Go" ist.
Desweiteren sind auf XML basierende Verfahren wie IPC-2581 schon wieder
deutlich komplizierter als Gerber.
Gerber schlägt halt so leicht keiner. Und wenn ich mir unbedingt eine
Alternative ausdenken müsste, würde ich z.B. eher zu einer Art Lisp
Notation greifen. ;O)
http://www.mikrocontroller.net/articles/Gerber-Tools#Alternativen_zu_Gerber
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
C lover schrieb:> @Stefan Salewski> Kannst du den Toporouter Algorithmus beschreiben,> so dass man ihn in C nachbauen kann?
Besser wohl in C++, weil CGAL benutzt wird, aber mit etwas Mühe geht es
sicher auch in C.
Du guckst am Besten zunächst mal kurz in die zugrunde liegende
Doktorarbeit, zumindest in die ersten Kapitel.
Constrained-Delaunay-Triangulation und Appolonius Graph von CGAL. Und
der Rest ist eben der Ruby Code, der sollte mit minimalen
Ruby-Kenntnissen lesbar sein und ist eigentlich schon die vollständige
Dokumentation, mehr braucht man wirklich nicht. Ich glaube es waren rund
2k lines of code Ruby, alles recht einfach. Gut bis auf das Sortieren
der Bahnen von innen nach aussen, das ist so als ob man solche
Aussteckformen für Kuchenteig sortiert, so dass sie ineinander passen.
Da habe ich mir wirklich einen abgebrochen, mein räumliches
Vorstellungsvermögen ist wohl nicht so gut. Mit C wird es natürlich
etwas mehr Code, die Doktorarbeit sprach von 14k, aber die hatten wohl
auch nicht CGAL als Grundlage. Übrigens, wenn ich das gleich von Anfang
an in C probiert hätte, hätte ich das nie in annehmbarer Zeit
hinbekommen. Aber jetzt die Übertragung von Ruby nach C sollte schon
möglich sein. Die Frage wäre ob man es gleich komplett portiert, oder in
Teilen. Weiss ich nicht. Nach Nim würde ich es komplett Portieren, ich
kenne mich mit Ruby und Nim etwas aus, da ist das keine große Sache.
Blos ich müsste die Bindings für Nim zu CGAL machen, auch keine große
Sache, aber ich habe keine Lust momentan. Das sparst Du Dir mit C oder
C++.
Noch eine Warnung: Der Toporouter verträgt sich ganz schlecht mit
bereits manuell gerouteten Bahnen. Das war der Haupt-Kritikpunkt der
gEDA-Leute. Deshabl macht es auch nicht viel Sinn den Router als
externes Programm einzusetzten, man müsste ihn schon in ein PCB-Programm
einbinden, so dass man dann interaktiv Bauteile verschieben kann, so
dass der Router alles fertig bekommt. Ein paar weitere Gedanken mag man
auf der gEDA Mailingliste im Archiv finden, ich habe viele Details schon
wieder etwas vergessen und errinnere mich gerade so Stück für Stück
wieder...
Hallo Georg.
Georg schrieb:> Es ist allerdings fragwürdig, die überwiegende Mehrheit der CAD-Benutzer> von vornherein vom Testen auszuschliessen. Aber für Linux-Fanatiker ist> das natürlich konsequent.
Der Grund, dafür Linux zu nehmen ist wohl eher der, dass sich dort
leichter etwas entwickeln lässt.
Und in dem Stadium können das eigentlich auch nur Leute testen, die weit
genug wären, selber daran zu programmieren.
>> Der grundlegende Irrtum ist wohl, dass man eine abgeschottete> Linux-Brüderschaft als "Kunden" sieht, und nicht Leute, die> Leiterplatten entwerfen. Muss aber jeder Entwickler selber wissen. Nur> nicht später wundern, wenn keiner das Programm benutzt.
Wer open source macht, hat in dem Sinne keine "Kunden". Und bei open
source Nutzern sind viele mit Linux Kenntnissen. ;O)
Und bei ser viel kommerzieller Software sehe ich, dass als "Kunde" der
Entscheider betrachtet wird, der das Zeug kauft, und nicht der, der
damit umgehen muss. ;O)
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Bernd W. schrieb:> Lesefutter
Die erste Arbeit kannte ich gar nicht.
Aber das entscheidende Werk ist die Arbeit von Tal Dayan von 1997.
Übrigens, ich habe nicht wirklich alles verstanden, insbesondere nicht
wie das Ripup and Retry funktionieren könnte.
Übrigens, einen alternativen Toporouter gab es ja in gEDA/PCB, war als
Google Summer als Code Project um 2008 gemacht, gleich in C. Hat
Ansatzweise funktioniert, hat aber niemand verstanden, und der Autor war
dann schnell wieder weg. Der Code ist wohl noch in gEDA/PCB, soll aber
entfernt werden, da damit niemend zurecht kommt.
Der entscheidende Teil damit ein neues Layoutprogramm überhaupt
angenommen wird ist garantiert nicht der Autorouter egal ob das Ding
Topo, Gridless, "Freestyle" oder sonstwas heißt bzw. kann. Mir scheint,
dass die Programmierer lieber so einen Autorouter schreiben da man da
viel weniger Schnittstellen zur Außenwelt hat und sich nicht mit den
Wünschen der Anwender auseinandersetzen muss.
Viel wichtiger sind die folgenden Punkte die leicht erlernbar und
bedienbar sein müssen.
Schaltplansymbole erstellen; Bibliotheken
Schaltplaneingabe
Bauteile für das Layout aufsetzen (pads, drills, ...); Bibliotheken
Bauteile platzieren
Verdrahten: Leitungen ziehen, schieben abknicken, 45°; Flächen zeichnen,
Flächen füllen; online DRC,....
Gerber Ausgabe
Bernd W. schrieb:> Und bei ser viel kommerzieller Software sehe ich, dass als "Kunde" der> Entscheider betrachtet wird, der das Zeug kauft
Aber das ist doch auch genau richtig - ich habe es schon erlebt, dass
die Entwickler sich vollkommen eindeutig nach sorgfältiger Evaluation
für eine bestimmte Software entschieden haben, aber eine ganz andere
gekauft wurde, weil die Geschäftsführer mit den Managern des Herstellers
zusammen Golf spielten. Das war in dem speziellen Fall nicht nur sowieso
eine Katastrophe, sondern die Software wurde im folgenden Jahr
eingestellt und so waren einige Millionen in den Sand gesetzt.
Aber egal was man davon hält, man muss sich danach richten, wie beim
Kunden die Entscheidungen getroffen werden, auch wenn das absurd oder
auch völlig korrupt ist. Dem Ingenieur kann man nichts verkaufen.
Georg
Helmut S. schrieb:> Mir scheint,> dass die Programmierer lieber so einen Autorouter schreiben da man da> viel weniger Schnittstellen zur Außenwelt hat und sich nicht mit den> Wünschen der Anwender auseinandersetzen muss.
Ja sicher. Man macht halt das, womit man seinen Lebensunterhalt
verdient, oder das, was interessant ist und was man sich noch halbwegs
zutraut. Nur selten fällt beides zusammen. Manchmal macht man auch öde
Dinge unentgeltlich, weil man denkt dass sie für die Allgemeinheit
nützlich sind oder Leute danach fragen -- aber letzteres trifft auf den
EDA-Bereich weniger zu, Eagle oder KiCad ist den meisten gut genug.
Hallo Georg.
Georg schrieb:>> Und bei ser viel kommerzieller Software sehe ich, dass als "Kunde" der>> Entscheider betrachtet wird, der das Zeug kauft, und nicht der, der>> damit umgehen muss. ;O)> Aber das ist doch auch genau richtig -
~~~~
~~~
~~
~
> Aber egal was man davon hält, man muss sich danach richten, wie beim> Kunden die Entscheidungen getroffen werden, auch wenn das absurd oder> auch völlig korrupt ist.
Eben. Und open Source hat in dem Sinne halt keine "Kunden". Ser viel
open Source wird aus Spass geschrieben, weil man es mal endlich so
machen möchte, wie man es selber für richtig hält, oder open Source wird
aus Verzweiflung und mit einem "dicken Hals" geschrieben, weil man sich
über den gekauften Kram geärgert hat oder man einfach nichts passendes
findet.
Letzteres kann durchaus der Fall sein, wenn die Anwendung so speziell
ist, das kein Markt existiert. Das kommt öfter vor als man denkt.
Letztendlich ist man damit selber sein eigener "Kunde" und Entscheider.
;O)
Und aus allen den Gründen ist die Funktionalität von kommerzieller
Software nur sehr bedingt ein Masstab für open Source, auch wenn vieles
halt ähnlich ist.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Helmut S. schrieb:> Mir scheint,> dass die Programmierer lieber so einen Autorouter schreiben da man da> viel weniger Schnittstellen zur Außenwelt hat und sich nicht mit den> Wünschen der Anwender auseinandersetzen muss.
Was soll diese Bemerkung denn eigentlich im Kontext dieses Threads
bedeuten? Hier geht's um "horizon", und dafür ist dein Kommentar
wohl völlig daneben. Das kümmert sich just um die Dinge, die du
da genannt hast, zumindest bereits zu einem großen Teil (und nennt
sich ja selbst nur „halbfertig“).
Der Topo-Router würde mich als externe Engine für ein KiCad wohl
schon interessieren, da könnte einem auch die Programmiersprache
egal sein – aber das gehört dann nicht mehr in diesen Thread.
BTT: habe mir mal einen GCC 5.x installiert und versucht, das Teil auf
meinem FreeBSD zu compilieren. Allerdings kommen da nicht nur
Warnungen, sondern an vielen Stellen noch Fehlermeldungen des Compilers.
Meine C++-Kenntnisse sind vermutlich nicht gut genug um einzuschätzen,
ob dabei das eigentliche Problem in meiner Umgebung zu suchen ist oder
im Code von "horizon". Lukas, wenn es dich interessiert, kann ich das
Buildlog mal hochladen.
Ein Beispiel, welches ich jetzt schon mehrmals gesehen habe:
1
./json.hpp:10455:51: error: 'to_string' is not a member of 'std'
> Was soll diese Bemerkung denn eigentlich im Kontext dieses Threads
bedeuten? Hier geht's um "horizon", und dafür ist dein Kommentar
wohl völlig daneben.
Der Thread gleitet hier im Moment in Richtung Autorouter. Hier geht es
aber nicht um einen Autorouter sonder um Horizon, ein neues
Layout-Programm. Da ist der Autorouter nur ein kleiner Teil davon und
der wird erst interessant, wenn alles andere fertig ist und Anhänger
gefunden hat. Macht doch einen Extra-Thread auf mit dem Thema ich
schreibe einen Autorouter.
Jörg W. schrieb:> BTT: habe mir mal einen GCC 5.x installiert und versucht, das Teil auf> meinem FreeBSD zu compilieren. Allerdings kommen da nicht nur> Warnungen, sondern an vielen Stellen noch Fehlermeldungen des Compilers.> Meine C++-Kenntnisse sind vermutlich nicht gut genug um einzuschätzen,> ob dabei das eigentliche Problem in meiner Umgebung zu suchen ist oder> im Code von "horizon".>> Ein Beispiel, welches ich jetzt schon mehrmals gesehen habe:>>
1
> ./json.hpp:10455:51: error: 'to_string' is not a member of 'std'
2
> {"path", path + "/" + std::to_string(i)},
3
>
Eigentlich gehört die Funktion to_string() seit C++11 zum Namensraum
std:
http://de.cppreference.com/w/cpp/string/basic_string/to_string
Da das Makefile allerdings "-std=c++14" vorgibt, ist der Fehler
zumindest etwas merkwürdig. Wie sieht denn der Compileraufruf vor dem
Fehler aus?
Ohne jetzt die einzelnen Leute zu zitieren:
Als Font nehme ich die Hershey-Fonts:
http://paulbourke.net/dataformats/hershey/ Da sind durchaus auch
nicht-ASCII Zeichen drin, nur sind die älter als Unicode, d.h. man muss
die Zuordnung von Codepoint zu index manuell machen:
https://github.com/carrotIndustries/horizon/blob/master/canvas/text.cpp#L242
Truetype-Fonts mache ich aus von Jörg angesprochenen Gründen nicht.
Autorouter sind gleichauf mit Simulation "out of scope" für mich, stehen
also auf keinerlei (imaginären) Roadmap. Bevor man an sowas überhaupt
denkt, braucht man wichtigere Dinge wie, ERC, DRC oder mehr GUI.
Bauen auf Freebsd: Man hat mir gesagt, dass das mit der libc++ von
FreeBSD zusammenhängt. Probier mal
http://stackoverflow.com/questions/35869206/freebsd-error-to-string-is-not-a-member-of-std
Wenn's das repariert, bau ich das so in die Makefile ein.
Lukas K. schrieb:> Als Font nehme ich die Hershey-Fonts:
Das ist ein interessanter Kompromiss!
Ich vermute mal, für den übrigen Text, der nicht auf der Leiterplatte
erscheinen wird, benutzt Du einen echten Font?
DRC hast Du also noch nicht? Für Liniensegmente ist das ja wohl noch
einfach, aber ich wüsste so spontan nicht, wie man das für Kreisbögen
effizient macht, insbesondere wenn die Bogensegmente auch noch unter
einem beliebigen Winkel gedreht sind.
Stefan Salewski schrieb:> Lukas K. schrieb:>> Als Font nehme ich die Hershey-Fonts:>> Das ist ein interessanter Kompromiss!>> Ich vermute mal, für den übrigen Text, der nicht auf der Leiterplatte> erscheinen wird, benutzt Du einen echten Font?
Nein. Truetype=Fonts machen unter Umständen Probleme bei der Skalierung
und sind schwerer zu rendern. Und so unansehnlich sind die Hershey-Fonts
nun auch nicht.
> DRC hast Du also noch nicht? Für Liniensegmente ist das ja wohl noch> einfach, aber ich wüsste so spontan nicht, wie man das für Kreisbögen> effizient macht, insbesondere wenn die Bogensegmente auch noch unter> einem beliebigen Winkel gedreht sind.
Bögen hab' ich derzeit nicht. Für Polygon-Operationen (online-drc)
verwende ich http://www.angusj.com/delphi/clipper.php.
Eigentlich ist DRC ganz einfach: Alles Kupfer auf einem Layer
einsammeln, nach Netzen gruppieren, das zu testende Netz um die
Clearance expandieren und mit den übrigen Netzen schneiden. Der ganze
algorithmisch schwere teil ist schon in clipper gelöst.
./json.hpp: In member function 'float nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType>::lexer::str_to_float_t(float*, char**) const':
38
./json.hpp:8860:20: error: 'strtof' is not a member of 'std'
Hardy F. schrieb:> Eigentlich gehört das Thema in die Programmiererecke verschoben.
Man könnte es auch nach "Projekte & Code" schieben.
Gibt es Meinungen, wo es sinnvoller wäre?
Jörg W. schrieb:> Man könnte es auch nach "Projekte & Code" schieben.
Das wollte ich auch schon anmerken. Nachdem ich diesen Thread zum ersten
mal gesehen hatte, hatte ich ein paar Tage später Probleme ihn zu
finden, ich hatte mir schon gedacht, Lukas hätte ihn ob blöder
Kommentare wieder gelöscht!
Übrigens, den Thread mit dem Java Schaltplaneditor kann ich auch nicht
wieder finden, muss gut ein jahr her sein. An den Namen des Tools kann
ich mich nicht errinnern.
Eigentlich müsste man solche Projekte im Wiki sammeln!
Stefan Salewski schrieb:> Eigentlich müsste man solche Projekte im Wiki sammeln!
Es gibt doch einen Artikel Schaltplaneditoren. Da spräche doch
nichts dagegen, am Ende eine Liste mit Links auf entsprechende
Threads einzufügen.
Edit: Habe mit einem Link auf diesen Thread begonnen. Wer noch weitere
Threads kennt, möge sie einfach einfügen.
Sheeva P. schrieb:> Eigentlich gehört die Funktion to_string() seit C++11 zum Namensraum> std:
OK, nachdem ich das hier ergugelt habe:
http://www.bsdforen.de/threads/problem-gcc-and-std-to_string.31386/
sieht es mir mittlerweile einfach so aus, als wäre GCC völlig
glibc-zentrisch geworden. Die vielen _GLIBCXX_VISIBILITY() in den
vom GCC installierten Headern weisen auch alle in diese Richtung.
Daher habe ich mir clang 3.8 installiert und benutzt. Nun kommen
wenigstens keine Trivialitäten mehr als Fehler raus. Anbei das
Buildlog eines "gmake -k".
Es sind eine ganze Reihe davon dabei:
1
In file included from util/uuid.hpp:8:
2
In file included from /usr/include/c++/v1/iostream:38:
3
In file included from /usr/include/c++/v1/ios:216:
4
In file included from /usr/include/c++/v1/__locale:15:
5
In file included from /usr/include/c++/v1/string:439:
6
In file included from /usr/include/c++/v1/algorithm:626:
7
/usr/include/c++/v1/utility:294:15: error: no viable overloaded '='
8
first = __p.first;
9
~~~~~ ^ ~~~~~~~~~
Da sind Verweise auf die FreeBSD-Headers drin, möglicherweise sind
diese zu alt? Vielleicht ließe sich aber auch ein Workaround finden?
Es gibt aber auch eine Reihe anderer Dinge, die mir schon Probleme in
horizon zu sein scheinen. Vielleicht will Lukas ja mal einen Blick
reinwerfen. Kann mir vorstellen, dass ein clang unter Linux die
genauso anmeckern würde.
Diese Fehler kommen Wohl daher, dass einige der in der map gespeicherten
Felder const sind.
Unabhängig davon braucht horizon mindestens Gtkmm 3.18. Aus
unerfindlichen Gründen ist Gtk 3.18 zwar in den Freebsd-ports, Gtkmm
aber nur in 3.16...
Ich habe das Java-Tool dann doch noch mit google gefunden:
Beitrag "HobbyCi Schaltplan Entwicklungsprogramm"
Ist doch schon zwei Jahre her, und war wohl, wie ich bereits vermutet
hatte, eher ein Osterferienprojekt.
Aber wer mag kann es ja auch im Wiki eintragen.
Lukas K. schrieb:> Diese Fehler kommen Wohl daher, dass einige der in der map gespeicherten> Felder const sind.
Siehst du da eine Abhilfe?
> Unabhängig davon braucht horizon mindestens Gtkmm 3.18. Aus> unerfindlichen Gründen ist Gtk 3.18 zwar in den Freebsd-ports, Gtkmm> aber nur in 3.16...
Der Port wird vom gnome-Team bei FreeBSD gepflegt. Ich kann mir
vorstellen, dass man da mit Upgrades vorsichtig ist, um nicht das
gesamte Gnome komplett nachziehen zu müssen.
Da ich Gnome nicht als Desktop-Umgebung benutze, riskiere ich nicht
sehr viel, wenn ich mal einen Upgrade von gtkmm versuche.
Edit: naja, man hätte es sich denken können:
1
Package dependency requirement 'giomm-2.4 >= 2.46.1' could not be satisfied.
2
Package 'giomm-2.4' has version '2.44.0', required version is '>= 2.46.1'
3
Package dependency requirement 'pangomm-1.4 >= 2.38.1' could not be satisfied.
4
Package 'pangomm-1.4' has version '2.36.0', required version is '>= 2.38.1'
5
Package dependency requirement 'cairomm-1.0 >= 1.12.0' could not be satisfied.
6
Package 'cairomm-1.0' has version '1.10.0', required version is '>= 1.12.0'
Das zöge dann eine größere Update-Orgie nach sich, da habe ich gerade
nicht die Zeit dafür.
Eventuell kann ich das mal in einem Jail probieren (lightweight VM).
Michael B. schrieb:> AutoTrax macht beispielsweise eigentlich alles richtig, schönes> Programm, alles möglich dabei, nicht zu teuer. Und bekommt trotzdem seit> 10 Jahren keinen Fuss an den Boden.>> https://dexpcb.com/
Hmm.
Download kostenlos ... alles außer Gerber Export ...
Kompatibel mit Windows (Liste von Windows-Versionen)
Das ist die komischste Variante von "macht beispielsweise eigentlich
alles richtig" die ich seit langem gesehen habe. Wenn ich bereit wäre,
für EDA auf Windows zurück zu gehen, dann hätte ich aber ganz andere
Auswahl. Will ich aber gar nicht. Genauso wenig, wie ich die Postkutsche
als Alternative zum ICE in Betracht ziehe ...
Ach so, zurück zum Thema ...
OpenGL zwingend für ein EDA? GTK und & Freunde in einer "blutige Kante"
Version? Nein, danke.
Wirklich. Ich brauche meine Kiste hier zum arbeiten. Sind die bleeding
edge features von GTK & Co wirklich notwendig? Kann ich mir irgendwie
nicht so recht vorstellen. Und andererseits ist mein Leidensdruck gar
nicht mal besonders hoch. pcb funktioniert prima für meine Bedürfnisse.
Versteh mich recht: ich bin Neuem gegenüber eigentlich recht
aufgeschlossen. Aber das Problem ist nicht so sehr ein Mangel an
EDA-Systemen, als vielmehr die Unzahl an (selbstredend zueinander
inkompatiblen) Nischenlösungen. Ein weiteres Produkt in einer weiteren
Nische erscheint mir daher wenig verlockend.
Axel S. schrieb:> OpenGL zwingend für ein EDA?
Ist bei KiCad am Ende auch so. Naja, man kann dort auch den
Cairo-Renderer noch nehmen, aber der ist langsamer.
Ich stecke da nicht drin, aber OpenGL scheint außer 3D eben auch im
2D-Bereich einige Nettigkeiten gegenüber Standard-X11 zu bieten zu
haben (shading und dergleichen).
> GTK und & Freunde in einer "blutige Kante"> Version?
Vielleicht könnte Lukas ja hier ein bisschen erzählen, was seine
Motivation ist.
Aber: das ist ja im Moment (bezüglich der Anwender) noch reiner
Entwicklungs-Vorlauf. Dahingehend finde ich es nicht grundsätzlich
daneben, mit vergleichsweise „moderner Technik“ ins Rennen zu gehen,
denn man kann getrost davon ausgehen, dass das in zwei, drei Jahren
dann bei den potenziellen Anwendern in der Tat Standard sein wird.
CAD/EDA macht man ja nun seit jeher nicht gerade auf der letzten
Kiste, die gerade noch irgendwo in der Ecke zu finden ist.
Alex W. schrieb:> Gibt es auch eine downloadbare ausführbare Datei für Win und Linux? Ich> will nicht anfangen zu compilieren, nur um es zu testen!
Geduld, mein lieber. Ich bin gerade am Projekt-Manager, wenn der
halbwegs fertig ist, gibt es auch eine Executable auf die man
doppelklicken kann und was sinnvolles geschieht. Für Windows sollt's
dann sogar für 'ne mit NSIS zusammengeklickte setup.exe reichen.
Binaries für Linux gibt's von mir nicht, da solche unüblich sind und eh
immer gegen die falschen Bibliotheken linken. Git pull und make sollten
nun für den durchschnittlichen Linux-user auch keine schwarze Magie
sein...
Betreffend OpenGL und Gtk:
Kicad verwendet im Gegensatz zu horizon die veraltete OpenGL API mit
glBegin/glEnd. Funktioniert zwar überall, wird dies auch auf absehbare
Zeit tun, aber ist eben obsolet und wird auch von Gtk nicht unterstützt.
OpenGL in Version 3 haben wir nun auch schon seit über 5 Jahren, wird
Zeit, dass das auch eingesetzt wird. Bleeding edge wär's wenn ich Vulkan
verlangen würde...
Warum nicht auf der CPU mit cairo oder so malen? In jedem Computer
steckt eine Grafikkarte die genau für so Dinge wie Polygone malen, etc
da ist. Wär' ja schade, wenn die sich langweilt.
Gtk 3.18 gibt's auch schon seit über einem Jahr, auch nicht mehr
bleeding edge. Wie auch schon von Jörg angesprochen, horizon ist ein
Projekt für die Zukunft, insofern ist es nur richtig mit nicht-obsoleter
Technik anzufangen.
Warum Gtk und nicht Qt? (alles andere muss nicht wirklich sein) Mir
gefällt die Art, wie die Entwickler von Gtk (und Gnome) über UI-Schemata
von Windows 95 hinausdenken und dabei einen gelungene Kombination aus
Konzepten aus dem Mobile- und Desktop-Umfeld finden.
Mag nicht jedermanns Geschmack sein, ich mag's.
Mag sein. Das stört Lukas aber nicht, und es ist sein Projekt. Wer
bleeding edge haben will (und das ist sein Projekt), sollte sich daran
nicht stören.
Es verbietet übrigens m.W. niemand, .deb- oder .rpm-Packages zu bauen
und zur Verfügung zu stellen. Nein, ich tue es nicht, keine Zeit.
Lukas K. schrieb:> Git pull und make sollten> nun für den durchschnittlichen Linux-user auch keine schwarze Magie> sein...
Als Softwareentwickler sollte ich dem eigentlich nur zustimmen können.
Aber es ist eben nicht nur "git pull" und dann einfach "make"
in das Terminal kloppen. Man muss schon wissen was man tut wenn es
Probleme gibt. Meine Frau würde ich als "durschnittlichen" Linux-user
bezeichnen. Sie hat Linux gute 10 Jahre als Anwender benutzt
(sie hat es sogar selbstständig ohne mein Wissen installiert).
Ein Tutorial für einen trivialen Build-Prozess hätte sie auch ohne
Probleme durchgearbeitet bekommen. Aber sobald da Abhängigkeiten
dazu kommen, die man installieren muss, und wissen muss,
dass Gtk1 != Gtk2 != Gtk3 != Qt begibt man sich als "durchschnittlicher"
doch schnell aufs Glatteis. Und wenn dann noch ein Compiler-Fehler dazu
kommt, und man mangels Verständnis rätselraten muss woher das Problem
wohl kommen mag, dann ist auch dem letzten 0815-Anwender die Laune
vergangen.
Unter Anleitung ist das alles kein Problem, aber wenn man sonst
niemanden
hat den man direkt fragen kann und der die Zeit hat sich mit einem
hinzusetzen,
ist das alles nix.
Als fortgeschrittener Softwareentwickler überschätzt man meist auch
seine
Kollegen. Ich seh doch schon wie meine Kollegen auf Arbeit von
weitergehenden
Funktionalitäten von SVN (Also bspw. mal das Tortoise-Diff-Tool
aufrufen,
oder ein Tag setzen, oder ein Update auf eine spezifische Revision
machen)
überfordert sind. Das betrifft nicht nur meine 50+ Kollegen, sondern
auch
den einen frischen Uni-Abgänger. Das ist breit gestreut, viele unserer
FH/Uni-Praktikanten sind extrem fähig. Die kennen sich zum Teil auch
bestens
mit Github aus und können sich fix in neues einarbeiten. Ist aber alles
meiner Erfahrung nach sehr individuell und breit gestreut.
Lukas K. schrieb:> Binaries für Linux gibt's von mir nicht, da solche unüblich sind und eh> immer gegen die falschen Bibliotheken linken. Git pull und make sollten> nun für den durchschnittlichen Linux-user auch keine schwarze Magie> sein...
Völlig korrekt. Bin ganz deiner Meinung. Ich finde es bei Linux grade so
gut dass es da nicht überall Binaries gibt sondern man immer selber
bauen kann.
Zwei Hinweise:
a) sollte -Wall enabled sein, das ist lobenswerterweise im Makefile der
Fall. Ich würde aber ruhig noch -Werror dazusetzen.
b) check den Source mal mit CppCheck. Da kommen Tonnen von Warnungen.
Idealerweise sollte da gar nichts kommen, und bei den Dingen, die
wirklich so gehören, sollte in der Projektdokumentation (später!)
begründet werden, wieso diese Warnungen trotzdem OK sind.
c) das sind eine Menge an Abhängigkeiten von verschiedenen Autoren. Das
wird noch viel Arbeit mit Build, Troubleshooting und Wartung werden,
wenn es mehr als "auf meinem Rechner läuft's ja" werden soll. Da sollte
man sich frühzeitig Gedanken um die Versionsverwaltung der Gesamtkette
machen.
d) Doku: wenn ich im Readme lese: "To explain horizon's operation it's
best to start with the library structure:", ist das ein Warnzeichen.
Klar, die Erklärung, wie das Programm intern arbeitet, geht
logischerweise über Interna.
Aber man muß da aufpassen, darüber nicht den Nutzer aus den Augen zu
verlieren - und statt eines Designs für einen Workflow dann haufenweise
Interna zu exportieren und dem Benutzer um die Ohren zu hauen. Das
passiert schnell mal, wenn kein UI-Design stattfindet bzw. dies als
nachrangig betrachtet wird, bis es zu spät ist.
Ach ja.. mal Sourcemonitor drüberlaufen lassen. Scheint gut aufgeteilt
zu sein, keine extremen Monsterfunktionen - Kompliment.
Besonders json.hpp könnte ein Kandidat für etwas Refactoring werden,
aber in geringerem Maße sollte man auch clipper.cpp, tool_delete.cpp,
schematic.cpp und polypartition.cpp im Auge behalten.
Was aber die Code-Doku angeht, es sind insgesamt gesehen arg wenig
Kommentare drin. Man kann das auch als undokumentierten Code ansehen.
Solange Du das Projekt eh alleine machen willst, mag es noch halbwegs
angehen, obwohl ich persönlich bei so undokumentiertem Code ja schon
nach 6 Monaten Probleme hätte zu erinnern, was ich mir dabei gedacht
hatte.
Das kann die spätere Fehlersuche schwierig machen, weil Du dann aus dem
Code entnehmen mußt, was er hätte tun sollen, was er stattdessen tut,
und wie der Bug aussieht.
Mit "was er hätte tun sollen" meine ich natürlich keine
Redundanzkommentare wie "i++; // increment i by 1", sondern welche, die
den Sinn dahinter erläutern, denn der ist nicht im Quelltext. Quelltext
sagt, WAS denn WIE implementiert ist, aber nicht WARUM und WOZU.
Nop schrieb:> Solange Du das Projekt eh alleine machen willst, mag es noch halbwegs> angehen, obwohl ich persönlich bei so undokumentiertem Code ja schon> nach 6 Monaten Probleme hätte zu erinnern, was ich mir dabei gedacht> hatte.
Ich bin also nicht allein ;-)
> Das kann die spätere Fehlersuche schwierig machen, weil Du dann aus dem> Code entnehmen mußt, was er hätte tun sollen, was er stattdessen tut,> und wie der Bug aussieht.>> Mit "was er hätte tun sollen" meine ich natürlich keine> Redundanzkommentare wie "i++; // increment i by 1", sondern welche, die> den Sinn dahinter erläutern, denn der ist nicht im Quelltext. Quelltext> sagt, WAS denn WIE implementiert ist, aber nicht WARUM und WOZU.
Ja. Es muss noch nicht einmal jede Funktion extra kommentiert werden.
Es ist wichtiger, bspw. zu jedem Modul wirklich einen richtigen
ausführlichen Text zu schreiben, in dem erklärt wird, was das Modul
überhaupt macht und wie dessen einzelne Funktionen zusammenspielen.
Dann kann man sich viel besser in die Denkweise dessen hineinversetzen,
der das Modul geschrieben hat.
Nach sechs Monaten (und noch mehr nach ein paar Jahren) sind diese Texte
mehr als Gold wert :-}
Nop schrieb:> Besonders json.hpp könnte ein Kandidat für etwas Refactoring werden,
Ja, Code von dritten immer refaktorieren! Stabiler Code ist toter Code.
Ein weiterer Tip: Nicht das Projekt über-organisieren. Im frühen
Stadium ist es glaub ich wichtiger, dass es gut genug funktioniert
um bei anderen Entwicklern erstmal Interesse auszulösen.
Bekomm die Grundfunktionalität so früh wie möglich stabil.
Bau ein paar automatisierte Tests, damit du noch effektiv refaktorieren
kannst ohne zuviel kaputt zu machen. Genug Tests dass du dich sicher
fühlst, und nicht soviele dass sie dich nerven wenn du eine API
mal änderst. Das ist so meine Pi*Daumen-Regel dabei.
Hier sind viele gute Tipps, auch Code-Doku die von "Nop" erwähnt wird
ist nicht allzu unwichtig. Aber übertreibs nicht, wenn jemand wirklich
einen nenneswerten Beitrag liefern will, dann lässt er sich auch nicht
von fehlenden Kommentaren aufhalten. Wichtig ist da eher, dass du
zur Kommunikation da bist. Bspw. ein IRC-Channel oder ein
nicht zugespammtes E-Mail-Verzeichnis.
Robin R. schrieb:> Nop schrieb:>> Besonders json.hpp könnte ein Kandidat für etwas Refactoring werden,>> Ja, Code von dritten immer refaktorieren! Stabiler Code ist toter Code.
Den Spruch werd ich ausdrucken und in Großformat an den Eingang zu
unserem Entwickler-Keller hängen.
Robin R. schrieb:> Ja, Code von dritten immer refaktorieren! Stabiler Code ist toter Code.
Muß man abwägen. Wenn der Code von jenen Dritten noch aktiv
weiterentwickelt wird, hat Refactoring keinen Sinn, weil es das Updaten
unnötig schwierig macht.
Andererseits habe ich auch schon Code übernommen - zigtausend Zeilen mit
diversen Funktionalitäten in einer einzigen Datei. Wenn ich die Funktion
"alle Vorkommnisse in der aktiven Datei suchen" regelmäßig brauche, um
die Definition einer Funktion überhaupt noch zu finden, dann weiß ich,
daß ein Refactoring überfällig ist.
> wenn jemand wirklich einen nenneswerten Beitrag liefern will,>dann lässt er sich auch nicht von fehlenden Kommentaren aufhalten
Doch, denn sinnvolle Kommentare setzen hätte den Entwickler wenig Zeit
gekostet - das so herauszufinden würde mich als Nachfolger die fünffache
Zeit kosten. Wer so mit meiner Zeit umgeht, bekommt davon einfach keine.
Chris D. schrieb:> Ich bin also nicht allein ;-)
So ziemlich jeder, der schonmal seinen eigenen Senf drei Jahre danach
nochmal anfassen mußte, hat sich entweder über gute Kommentierung
gefreut, oder in dem Moment verstanden, wieso sie gut gewesen wäre. :-)
Peter schrieb:> Mal für Dumme Windows User wie mich, gibt es auch einen fertigen> Installer?
Nein, wurde doch schon geschrieben. Einfach mal den ganzen Thread
lesen …
Das ist im Moment eher Entwickler-Baustelle, also was für Leute, die
wirklich in irgendeiner Weise mitmachen wollen. „Mitmachen“ heißt
dabei nicht notwendigerweise, eigenen Code beizutragen, aber wenn
man als Tester mitmachen will, muss man in so einer frühen Phase
damit rechnen, in kürzeren Abständen (immer, wenn sich wesentlich
was getan hat) neu zu bauen, ansonsten testet man Dinge, die so schon
gar nicht mehr aktuell sind.
Alternative: die Tests in einer VM machen, allerdings muss die VM dann
die gewünschte OpenGL-Funktionalität unterstützen.
Das habe ich dann wohl überlesen, dabei hatte ich mich recht gut von
oben bis unten durch gekämpft.
Auch ein 2 Tage alter Intaller würde mir zeigen ob ich dem Projekt
weiter folgen sollte.
Vg, Peter
Peter schrieb:> Auch ein 2 Tage alter Intaller würde mir zeigen ob ich dem Projekt> weiter folgen sollte.
Das mag ich dir glauben, aber sowas zu pflegen bindet einiges an
Energie beim Entwickler, die er in dieser Phase wohl lieber in die
Sache selbst steckt.
Nop schrieb:> Zwei Hinweise:>> a) sollte -Wall enabled sein, das ist lobenswerterweise im Makefile der> Fall. Ich würde aber ruhig noch -Werror dazusetzen.
Hm, einige Warnungen könnte ich in der Tat noch ausbügeln, war bis jetzt
bloß zu faul dafür. Werror muss jetzt nicht unbedingt sein, je nach
Compiler und dessen Version können schon mal Warnings dazu kommen
> b) check den Source mal mit CppCheck.
Danke für den Tip, mit welchen Optionen hast du cppcheck laufen lassen?
Vieles scheinen ja implizite Konstruktoren zu sein, manchmal war das
auch so gewünscht.
Horizon ist mein erstes C++-Projekt, wenn jemand Tipps zu C++14 hat, her
damit.
> c) das sind eine Menge an Abhängigkeiten von verschiedenen Autoren.
Meinst du mit Abhänigkeiten, die die im Repository selber drin sind
(json, clipper, etc) oder das ganze externe (Gtk, etc)? Viele von den
externen Abhängigkeiten sind Projekte mit recht guten "Track record",
denke mal, daran wird's nicht scheitern.
> d) Doku: wenn ich im Readme lese: "To explain horizon's operation it's...
Vielleicht habe ich hier eine etwas verzerrte sich auf die Dinge, aber
Units, Entitites, etc. Sind Begriffe die auch in der GUI auftauchen,
insofern sollte man als Anwender schon wissen, was damit gemeint ist.
Die Tools sind ein anderes Beispiel dafür: Alle Änderungen am Dokument
(Schaltplan, Board, etc) müssen durch ein Tool (oder property editor)
stattfinden: von Verschieben über löschen bis zum einfügen aus der
Zwischenablage. Andere Programme mögen das intern vielleicht ähnlich
lösen, bei horizon wird das so direkt an den Anwender durchgereicht. Ich
bevorzuge es Dinge, die ich benutze halbwegs zu verstehen. Wenn das
mentale Modell mit dem Tatsächlichen Aufbau der Anwendung übereinstimmt,
umso besser.
Nop schrieb:> Ach ja.. mal Sourcemonitor drüberlaufen lassen. Scheint gut aufgeteilt> zu sein, keine extremen Monsterfunktionen - Kompliment.
Hätte ich anders erwartet, insb. die expand()-Methoden von Board und
Schematic sind doch ein wenig ausufernd...
> Besonders json.hpp könnte ein Kandidat für etwas Refactoring werden,> aber in geringerem Maße sollte man auch clipper.cpp, tool_delete.cpp,> schematic.cpp und polypartition.cpp im Auge behalten.
json, clipper und polypartition sind externe Libraries, die damit
angepriesen werden nur aus 1...2 Dateien zu bestehen. Solang die
funktionieren ist mir's egal, ob die 10kLOC haben.
Das tool_delete ist leider der Architektur geschuldet. Da der
interaktive manipulator der selbe für alles von Symbol bis Board ist,
sind auch die tools die selben - das Tool zum Löschen von einem Symbol
ist das selbe wie zum Löschen von einem Track. Einiges aus dem Tool
könnte man allerdings in's Schematic/Board/etc verschieben.
> Was aber die Code-Doku angeht, es sind insgesamt gesehen arg wenig> Kommentare drin. Man kann das auch als undokumentierten Code ansehen.
Das stimmt in der Tat, vielleicht wird's bald besser...
Robin R. schrieb:> Wichtig ist da eher, dass du> zur Kommunikation da bist. Bspw. ein IRC-Channel oder ein> nicht zugespammtes E-Mail-Verzeichnis.
Dazu sind der Thread hier und issues auf github vorgesehen.
Lukas K. schrieb:> Werror muss jetzt nicht unbedingt sein, je nach> Compiler und dessen Version können schon mal Warnings dazu kommen
Stimmt, aber im Moment sind die Versionen ja ohnehin festgezogen, auch
bei den Libraries. Für "später", wenn Du ins richtige Release gehst,
kann's sinnvoll sein, das wieder rauszunehmen.
Vorteil: Du kriegst bei den jetztigen pre-alpha-Testern keine
Bugreports, die letztlich an Dingen lagen, welche der Compiler schon
bemerkt hatte.
> Danke für den Tip, mit welchen Optionen hast du cppcheck laufen lassen?
Einfach Defaults und alles an, inklusive Stilwarnungen. Ich nehm aber
auch Windows und die GUI dafür - auch wenn ich dann u.a. mit Cygwin
entwickele. Stilwarnungen kann man aber auch kollektiv wegklicken, wenn
sie so gar nicht zum eigenen Stil passen.
> Vieles scheinen ja implizite Konstruktoren zu sein, manchmal war das> auch so gewünscht.
Ich vermeide Warnungen wegen Implizitheit, damit der nachfolgende
Programmierer sieht, daß ich da nichts vergessen habe, sondern das genau
so gewollt habe.
> Meinst du mit Abhänigkeiten, die die im Repository selber drin sind> (json, clipper, etc) oder das ganze externe (Gtk, etc)?
Die im Repo sind noch unkritisch, weil Du selber derjenige bist, der da
mögliche Updates zentral einpflegen und testen wird.
> Viele von den> externen Abhängigkeiten sind Projekte mit recht guten "Track record",> denke mal, daran wird's nicht scheitern.
Ich denke dabei gar nicht mal an Bugs, sondern an Änderungen, die
bestehende Funktionalität unabsichtlich zerbrechen. Sowas wie neulich
bei Cryptkeeper plus Enc_FS. Allein schon die Bugreports später werden
schwer auszuwerten: Geht mit Lib X in Version Y, aber nicht mit Version
Z.
Dummerweise kann man auch nicht dem Anwender sagen, er soll halt nur Lib
X bis maximal Version Y installieren, weil ein anderes Programm dann
garantiert Version Y+1 als Mindestanforderung hat.
> Vielleicht habe ich hier eine etwas verzerrte sich auf die Dinge, aber> Units, Entitites, etc. Sind Begriffe die auch in der GUI auftauchen,> insofern sollte man als Anwender schon wissen, was damit gemeint ist.
Ich würde die Anleitung für den Endnutzer strikt getrennt von der Doku
für andere Programmierer halten, und auch das technische Niveau sollte
ein ganz anderes sein. Beim Endnutzer geht es letztlich als
Grundanliegen nicht darum, das Programm selber zu verstehen, sondern
darum, wie man mit dem Programm die Aufgaben löst, zu denen es da ist.
Ganz andere Mentalität.
Ein epic fail in der Nutzerführung ist es, wenn man das Programm dazu
verstehen muß. Daß man die Materie an sich verstehen muß bei so einer
Software, ist hingegen klar - wer nicht weiß, was ein Layout überhaupt
ist, zählt aber auch nicht zur Zielgruppe.
> Andere Programme mögen das intern vielleicht ähnlich> lösen, bei horizon wird das so direkt an den Anwender durchgereicht.
Autsch. Das ist Offenlegung von Interna und Vermeidung von
Designentscheidungen, was letztlich beim Anwender abgeladen wird.
Ist nicht verkehrt, wenn man diese Möglichkeit eröffnet, aber dann als
Fallback, den man zum Troubleshooting nehmen kann, wenn das Programm
nicht geht wie gewünscht. An sich sollte das Programm aber selber das
tun, was es tun muß, um die gewünschte Aufgabe zu erreichen, ohne daß
man ihm das alles erst manuell sagen muß.
Das macht Nutzerführung schwieriger, als es aussieht, und deswegen ist
es nicht damit getan, am Ende einen GUI-Wrapper drüberzulegen. Der
Schlüssel als Entwickler ist es, nicht feature-orientiert zu denken,
sondern Workflow-oriientiert.
> Ich bevorzuge es Dinge, die ich benutze halbwegs zu verstehen.
Da geht das Programmiererdenken los, und wenn es das Grunddesign der
Anwendung ist, werden Anwender damit nie glücklich. Das bleibt ein Tool
von Programmierern für Programmierer.
Wenn ich in Word einen Text schreibe, mache ich mir ja auch keine
Gedanken über die internen Datenstrukturen von Word.
> Hätte ich anders erwartet, insb. die expand()-Methoden von Board und> Schematic sind doch ein wenig ausufernd...
Sourcemonitor mißt Komplexität, nicht Zeilenlänge. Viele einfache Zeilen
sind gut zu verstehen, wenige komplexe auch, aber viele komplexe
(lokaler Spaghetticode) nicht.
> json, clipper und polypartition sind externe Libraries, die damit> angepriesen werden nur aus 1...2 Dateien zu bestehen.
OK, dann ist das ein Feature. Wobei Refactoring auch nicht unbedingt
heißt, die Dateien zu zerlegen, sondern auch einzelne Funktionen, die in
der Komplexität nach oben gehen. Aber wenn's eh externe Dinge sind, die
aktiv gepflegt werden, ergibt ein Fork keinen Sinn.
> Dazu sind der Thread hier und issues auf github vorgesehen.
Ich würde vor allem auf Dauer kein synchrones Kommunikationsmedium wie
IRC empfehlen. Das kostet nämlich aasig Zeit. Es ist effizienter, die
Fragen zu sammeln, und wenn 10 Leute mehr oder weniger dasselbe wissen
wollen, das in der Online-FAQ einmal zu beantworten. Deine Zeit als
Entwickler ist schließlich kostbar.
Auf jeden Fall wünsche ich bei dem Projekt gutes Gelingen!
Lukas K. schrieb:> Doxygen-Dokumentation hatte ich persönlich nie als wirklich hilfreich> empfunden, da darin oft erklärt ist, was auch eine Zeile drunter im Code> steht, aber die grobe Struktur fehlt.
Du siehst das Problem, aber ziehst den falschen Schluss daraus!
Es wird häufig falsch dokumentiert. Aber das ist nicht Doxygen
anzulasten, sondern dem, der falsch dokumentiert.
Ich benutze Doxygen fast von Anfang an, und mache damit (und graphviz)
nicht nur meine Codedokumentation, sondern erstelle nebenbei auch noch
die Onlinehilfe zum Programm als html + chm, und für Papierfetischisten
alles auch als pdf zum selberausdrucken.
Michael L. schrieb:> Ich benutze Doxygen fast von Anfang an, und mache damit (und graphviz)> nicht nur meine Codedokumentation, sondern erstelle nebenbei auch noch> die Onlinehilfe zum Programm als html + chm, und für Papierfetischisten> alles auch als pdf zum selberausdrucken.
Ja und?
Dann steht auf dem Ausgedruckten auch bloß das, was im Quelltext zwei
Zeilen drunter auch bloß steht - sowas ist keine Dokumentation! Egal ob
im chm oder pdf Format.
Merke dir mal, daß eine Dokumentation - wenn sie gut ist - eine Menge
Informationen beinhaltet, die eben NICHT aus anderen Quellen auf dem PC
zusammengesammelt werden können, sondern aus dem Vermögen eines
menschlichen Autors kommen, Dinge sinnvoll und erhellend erklären zu
können.
Ein Programm hingegen kann immer nur aus Maschinentext einen anderen
Maschinentext erzeugen - es fehlt einfach die menschliche Kreativität
und der menschliche Geistes-Horizont.
W.S.
W.S. schrieb:> Ein Programm hingegen kann immer nur aus Maschinentext einen anderen> Maschinentext erzeugen - es fehlt einfach die menschliche Kreativität> und der menschliche Geistes-Horizont.
Die Doku ist natürlich immer nur so gut wie deren Autor.
Doxygen kann deutlich mehr als nur wiederzukäuen, was zwei Zeilen
darunter im Code steht … Kreative Inhalte muss jedoch natürlich
immer noch der Mensch liefern, das ist bei Doxygen nicht anders als
bei Word, LibreOffice, DocBook oder LaTeX.
Gute Doku zu schreiben braucht auch Erfahrung, ganz besonders mit den
WTF-Momenten bei schlecht dokumentierten Projekten. Außerdem noch den
Willen, es besser zu machen.
Viele Opensource-Projekte kranken entweder daran, daß der Entwickler von
Doku keine Ahnung hat, weder von technischer Doku noch von Userdoku (und
von Usability auch nicht), oder an der "scratch-my-itch"-Einstellung.
Letztere führt im Wesentlichen dazu, totalen Müll zusammenzustoppeln,
aber sich dank der Ausrede "Opensource" dabei auch noch großartig
vorzukommen. Ganz nach dem Motto "sobald ich kein Geld bekomme, kann ich
auch endlich mal Mist machen".
Michael L. schrieb:> Es wird häufig falsch dokumentiert. Aber das ist nicht Doxygen anzulasten,
sondern dem, der falsch dokumentiert.
Hast du einen Vorschlag, wie man in Doxygen sinnvoll dokumentiert? Ich
setze Doxygen ein, lerne aber gerne dazu.
EDIT: gibt es für SourceMonitor eine grobe Richtlinie, welche
Komplexität noch ok ist und wo man was tun sollte?
Gruß von Max, der in diesem Thread schon eine Menge gelernt hat
Max G. schrieb:> Hast du einen Vorschlag, wie man in Doxygen sinnvoll dokumentiert?
Es gehört halt nicht nur ein Stück Beschreibung vor jedem Funktionskopf
dazu, die möglichst mehr als nur die Parameter erklärt, sondern jede
logische Einheit (kann eine Datei sein, muss nicht) sollte oben einen
größeren Textblock haben, der zum „Großen Ganzen“ dieser Einheit eine
Beschreibung enthält. Man kann auch logische Gruppen über mehrere
Dateien bilden.
Für Dinge, die nicht in den normalen Sourcecode passen, kann man immer
noch „Additional Pages“ hinterlegen. Es hat sich eingebürgert, dass
man dafür Dateien mit der Endung .dox schreibt, die inhaltlich einfach
Doxygen-Sourcecode sind (also wie ein einziger großer /** ... */
Kommentar aussehen). Weiß nicht, mittlerweile kann Doxygen wohl auch
Markdown verarbeiten, damit habe ich noch keine Erfahrung, vielleicht
sieht das ja besser aus.
Was sich auch bewährt hat ist, dass man zu „verknispelte“ Dinge vor
dem Leser der Doku verbirgt, so in etwa:
1
/**
2
* This function implements some foo bar.
3
*/
4
#ifdef DOXYGEN
5
voidfoobar(intmumble);
6
#else
7
staticinlinevoidfoobar(intmumble){
8
__asm__("foo bar\n"
9
:mumble);
10
#endif
Der Makro „DOXYGEN“ wird dann im doxygen.conf gesetzt. Ohne das #ifdef
würde Doxygen den Nutzer mit dem gesamten inline-Asm überfallen, mit
dem #ifdef dagegen hinterlegt man etwas Lesbareres.
p.s.: Natürlich ist und bleibt Doxygen ein Tool in erster Linie für
Programmierer-Dokumentation. Eine Anwenderdoku würde ich damit nicht
schreiben, aber so weit dürfte „horizon“ noch nicht sein.
Max G. schrieb:> Hast du einen Vorschlag, wie man in Doxygen sinnvoll dokumentiert? Ich> setze Doxygen ein, lerne aber gerne dazu.
Es geht bei der Dokumentation von Klassen, Funktionen und Methoden
weniger darum den Inhalt des Namens der Jeweiligen Abstraktion zu
wiederholen alla:
1
int countAnswers; // Antworten-Zähler der die Antworten zählt
Es geht darum, dass du dem nächsten sinnvolle Tips für die Verwendung
mit gibst. Meine Daumenregel heisst: "Wenn du nichts sinnvolles
schreiben kannst, schreib wenigstens ein Beispiel wie man es Verwendet."
Ein Beispiel aus einem meiner Projekte:
1
/// Setzt den Datenbank-Cursor auf die nächste Ergebnis-Zeile und liest die Zeile aus.
2
/// Es ist notwendig beim ersten Zugriff auf die Ergebnisse auch Result::next
3
/// aufzurufen, daher ergibt sich folgendes Idiom um über die Zeilen eines
4
/// SQL-Ergebnisses zu iterieren:
5
///
6
///~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7
/// ResultPtr r = db.execute(...);
8
/// for (r->next(); r->available(); r->next())
9
/// {
10
/// // ... r->row() ...
11
/// }
12
///~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13
/// @return true wenn eine Ergebnis-Zeile verfügbar ist und nicht das Ende der Datenmenge erreicht wurde.
14
/// (das selbe wie available() zurückgeben würde)
15
/// @sa available()
16
bool next();
Und wie Jörg schon schrieb, genau das selbe gilt auch für die
gesamte Klasse. Sag dem Leser, wie er die Klasse benutzt, was er für
andere Klassen braucht, welche Methoden in welcher Reihenfolge
aufgerufen werden müssen und wie sie im Zusammenhang stehen.
Bei der Dokumentation von bisher undokumentiertem Code sehe ich auch
immer zu, dass mindestens die "äußeren" APIs dokumentiert sind.
Also die High-Level APIs die für einen Anwender wichtig sind.
Komplett internen code der den kram nur implementiert versehe ich
meist nur mit API-Dokumentation wenn ich die Zeit und Muße dazu habe.
In den Internas ist es mir meist wichtiger komplizierte Code-Teile
mit hilfreichen Kommentaren zu versehen, damit der nächste weiß wieso
etwas so komisch implementiert ist, oder wo die Fallstricke sind bei
der Modifikation.
PS: Ich schreib die Doku auch häufig für mich selbst. Weil ich nach 2
Wochen auch nicht mehr ganz genau weiss wie man eine API benutzt. Darum
sind mir Beispiel so wichtig. Da kann ich schnell Copy&Paste machen wenn
ich faul bin und anpassen. Die Doxygen-Doku ist auch meistens schneller
aufgerufen als die Tests der jeweiligen Bibliothek, in welchen die API
ja meist nochmal Beispielhaft niedergeschrieben ist. Achja, und für
generische Komponenten kann ich wirklich automatisierte Tests empfehlen.
Ich persönlich nutze booost::test - aber das Setup davon kann manchmal
etwas kompliziert sein.
Läuft bei mir unter Windows 10. Hab leider keine Komponenten sichtbar
platziert bekommen im Schematic. Konnte sie auswählen und hatte dann son
Magenta-Farbenen Marker aufm Plan. Reinzoomen ging nicht, liegt aber
vermutlich eher dran, dass ich keine Maus zur Hand hatte?
Der Tool-Popover reagiert teilweise sehr langsam. Bspw hab ich versucht
"zoom" zu tippen, aber er hat sehr träge reagiert. Konnte aber aufm
ersten Blick nix am Code erkennen, was das Verhalten erklärt.
Zum Code habe ich nur folgende, vollkommen subjektive und auf
Geschmack basierende Gedanken, die sich hauptsächlich um
die Formatierung drehen: Ich rücke lieber mit Spaces ein.
Die Zeilen sind ´relativ unlesbar, weil 152 Zeichen lange Zeilen mit
dem Auge schwer zu lesen sind (Das Auge muss die Höhe ja bei jedem
horizontalen Sprung justieren).
Manche Methoden sind recht lang. bspw. Schematic::expand.
Und ich bin ein Freund von Leerräumen beim Formatieren.
Also "if (a == b)" statt "if(a == b)" und mehr Leerzeilen.
Die Kopplung der Klassen untereinander ist relativ hoch. Bspw. muss
Schematic offenbar sehr genau wissen, wie ein Symbol genau funktioniert
und aufgebaut ist: "sym->component->entity->prefix" - das koppelt
die Implementierung vom Symbol sehr stark an Schematic.
bzgl. meines letzten Posts: Das sind natürlich zum Teil auch
Stil-/Geschmacks-Fragen. Aber meiner Erfahrung nach ist gut lesbarer
Code auch einfach zu wartender Code.
Dass Schematic etwas über die Komponenten mit denen es hantiert ist
auch kein gravierendes Problem, aber man sollte ein Auge drauf haben
wenn der Code anfängt (stark) zu wachsen.
Unter Windows 7 öffnet sich leider weder der Schematic noch das Board,
es kommt nur ein weißer Kasten - und es scheinen unsichtbare
Bedienelemente
vorhanden zu sein, der Cursor ändert nämlich seine Form an bestimmten
Positionen und der Kasten lässt sich auch größer/kleiner ziehen.
Robin R. schrieb:> Läuft bei mir unter Windows 10. Hab leider keine Komponenten sichtbar> platziert bekommen im Schematic. Konnte sie auswählen und hatte dann son> Magenta-Farbenen Marker aufm Plan. Reinzoomen ging nicht, liegt aber> vermutlich eher dran, dass ich keine Maus zur Hand hatte?
Hört sich nach OpenGL-Problem an (Shader für den Inhalt konnten nicht
kompiliert werden). Was für eine Grafikkarte hast du? CAD ohne Maus
macht natürlich nur wenig Sinn..
Wenn du debuggen willst, musst du wohl selber Bauen und den imp direkt
auf mingw starten:
https://github.com/carrotIndustries/horizon/blob/master/build_win32.md
Dann kommt auch sinnvolle Ausgabe, was schief gelaufen ist.
Robin R. schrieb:> Der Tool-Popover reagiert teilweise sehr langsam.
Keine Ahnung was 'sehr' heißt, eine gewisse Verzögerung ist aber drin:
https://developer.gnome.org/gtk3/stable/GtkSearchEntry.htmlRobin R. schrieb:> Unter Windows 7 öffnet sich leider weder der Schematic noch das Board,> es kommt nur ein weißer Kasten - und es scheinen unsichtbare> Bedienelemente> vorhanden zu sein, der Cursor ändert nämlich seine Form an bestimmten> Positionen und der Kasten lässt sich auch größer/kleiner ziehen.
Der Projektmanager tut aber? Hört sich wieder nach OpenGL-Problem an...
Windows 7: Intel HD Graphics 4000, GPU Caps Viewer liefert folgende
Infos:
OpenGL 3.3 (Intel(R) HD Graphics 4000 with 132 ext.)
OpenCL 1.1, Intel(R) HD Graphics 4000 compute units:16@350MHz
Report hab ich hier hochgeladen (gpu_caps_viewer_report_win7.txt)
Windows 10: Nvidia GeForce 840M
OpenGL 4.5 (GeForce 840M/PCIe/SSE2 with 360 ext.)
OpenCL 1.2, GeForce 840M compute units:3@1124MHz
Report hab ich auch hochgeladen (gpu_caps_viewer_report_win10.txt)
PS: Die Intel-Karte scheint offenbar keine Geometry Shader Texture Units
zu haben. Daher kann da natürlich auch der Shader nicht laufen.
Lukas K. schrieb:> Robin R. schrieb:>> Läuft bei mir unter Windows 10. Hab leider keine Komponenten sichtbar
[.snip.]
> Was für eine Grafikkarte hast du? CAD ohne Maus> macht natürlich nur wenig Sinn..
Habs jetzt nochmal mit Maus (via VNC nach Hause) probiert, das Problem
ist nur der initiale Zoom. Wenn ich weiter rein Zoome (mit Mausrad)
sehe ich die Komponente auch richtig, und nicht nur den
mangenta-farbenen
Selektionsmarker. Touch-Pad-Support is auch ersmtal nicht wichtig,
bei KiCAD bleibt mir auch nur F2/F3 zum Zoomen übrig. Morgens/Abends
im Bett hab ich halt keine Maus zur Hand ;-)
Finds übrigens super, dass Undo/Redo bereits in so früher Phase
eingebaut ist - sowas nachträglich einbauen is immer ein Krampf...
OpenGL-Mäßig ist die NVidia-Karte halt eher aufm aktuellen Stand.
Ist auch ein Lenovo-Consumer-Laptop, die Windows 7 Kiste ist
ein 3-4 Jahre alter Büro-Dell-Rechner.
Ich kann gut verstehen, dass man aktuelle OpenGL-Features nutzen will.
Aber sollte es nicht schon ausreichen wenn man mit vertext buffer
objects
arbeitet?
PS: Auf dem Windows 7 Rechner bekomme ich folgende Fehlerausgabe (mit
einer selbst-compilierten Version ausm Git):
1
(horizon-imp.exe:2356): Gdk-WARNING **: Compile failure in fragment shader:
2
ERROR: 0:10: 'texture2D' : no matching overloaded function found (using implicit conversion)
3
ERROR: 0:10: 'assign' : cannot convert from 'const float' to 'FragUserData 4-component vector of float'
Robin R. schrieb:> PS: Auf dem Windows 7 Rechner bekomme ich folgende Fehlerausgabe (mit> einer selbst-compilierten Version ausm Git):>>
1
(horizon-imp.exe:2356): Gdk-WARNING **: Compile failure in fragment
2
shader:
3
ERROR: 0:10: 'texture2D' : no matching overloaded function found
4
(using implicit conversion)
5
ERROR: 0:10: 'assign' : cannot convert from 'const float' to
6
'FragUserData 4-component vector of float'
Oh, das schaut nach einem Bug in Gtk/Gdk bzw. dem Intel-Treiber aus. Ist
der aktuell? Passt auch dazu, dass das Fenster komplett leer ist. Zum
Test, starte mal gtk3-demo aus der mingw-Konsole und öffne die
OpenGL-Demo. Die sollte dann auch kaputt sein.
Schnapp' dir nen Hexeditor und mach die libgdk-3-0.dll aus dem
mingw-Verzeichnis auf. Nach Offset 0x87340 texture2D durch texture
ersezten (2D durch zwei Leerzeichen ersetzen) Schau mal nach, ob's dann
klappt.
Lukas K. schrieb:> Oh, das schaut nach einem Bug in Gtk/Gdk bzw. dem Intel-Treiber aus. Ist> der aktuell? Passt auch dazu, dass das Fenster komplett leer ist. Zum> Test, starte mal gtk3-demo aus der mingw-Konsole und öffne die> OpenGL-Demo. Die sollte dann auch kaputt sein.
Jo, die OpenGL-Demo is auch kaputt, selbe Symptome.
Bzgl. der Treiber hab ich keine Ahnung.
>> Schnapp' dir nen Hexeditor und mach die libgdk-3-0.dll aus dem> mingw-Verzeichnis auf. Nach Offset 0x87340 texture2D durch texture> ersezten (2D durch zwei Leerzeichen ersetzen) Schau mal nach, ob's dann> klappt.
Hmm, damit hab ich bei mir die gtk3-demo nur komplett kaputt bekommen.
In dem von dir Angehängten Report steht was von
- Driver: 8.15.10.2639 (2-1-2012) - GL:ig7icd64.dll
bei Intel gibt's einen von 2016
https://downloadcenter.intel.com/download/25977/Intel-Graphics-Driver-for-Windows-10-and-Windows-7-8-1-15-33-?product=81499
Wenn du magst, kannst du mal mit dem dein Glück versuchen.
Robin R. schrieb:> Touch-Pad-Support is auch ersmtal nicht wichtig,> bei KiCAD bleibt mir auch nur F2/F3 zum Zoomen übrig. Morgens/Abends> im Bett hab ich halt keine Maus zur Hand ;-)
Auf X11 und Wayland erkennt das Canvas-Widget, wenn ein Input-Event von
'nem Trackpoint kam und "pannt" dann, anstatt zu scrollen. Zum zoomen
dann ctrl festhalten. Damit ist horizon auch recht brauchbar ohne Maus
zu bedienen.
Robin R. schrieb:> Ich kann gut verstehen, dass man aktuelle OpenGL-Features nutzen will.> Aber sollte es nicht schon ausreichen wenn man mit vertext buffer> objects arbeitet?
Mit geometry shadern macht's eben mehr Spaß ;) Lästiger Kram, wie z.B.
Linien mit abgerundeten Ecken malen geht recht bequem im Zusammenspiel
von Geometry- und Fragment-Shader.
Lukas K. schrieb:> In dem von dir Angehängten Report steht was von> - Driver: 8.15.10.2639 (2-1-2012) - GL:ig7icd64.dll> bei Intel gibt's einen von 2016> https://downloadcenter.intel.com/download/25977/Intel-Graphics-Driver-for-Windows-10-and-Windows-7-8-1-15-33-?product=81499>> Wenn du magst, kannst du mal mit dem dein Glück versuchen.
Die Intel-Treiber wollen leider nicht direkt auf diesem Dell-Rechner,
aber die Treiber von der Dell-Webseite haben dann zumindest das
Fehlerbild geändert. Jetzt bekomme ich immerhin ein Fenster,
aber der Canvas ist nicht zu sehen (nur der graue Gtk-Hintergrund).
Selbes Bild auch mit gtk3-demo.
Immerhin gehts unter Win10 auf dem neueren Rechner.
Auch wenn's hier die letzten Monate doch eher still geworden ist, ist
die Entwicklung von horizon nicht stehen geblieben.
Neben Annehmlichkeiten wie GUI zum Verwalten von Bauteilen und Projeken
sind Funktionen wie interaktives regelbasiertes Routing und DRC
hinzugekommen.
Seht selbst:
https://github.com/carrotIndustries/horizon#horizon-is-a-free-eda-package
Ja, ich hatte vor einigen Tagen auch mal kurz hineingeschaut.
Mitstreiter haben sich ja wohl sogut wie keine gefunden, und hier in dem
Thread gab es soweit ich mich errinnere nur gemecker --war ja auch nicht
anders zu erwarten.
Ich werde mir demnächst mal dein Dateiformat und dein Vorgehen beim
Bauteilentwurf ansehen. Denn mein high level GTK3 Nim wrapper ist nun
endlich weitgehend fertig, so dass ich auch mal wieder etwas an meinen
Programmen arbeiten könnte. Die kompatibilität mit gEDA werde ich wohl
aufgeben, das scheint ja eh keiner mehr zu benutzen.
Hast Du eigentlich mal probiert, wie viel schneller Dein GL Zeichnen im
Vergleich zu Cairo's CPU Backend ist? Denn Cairo's GL Backend ist ja
seltsamerweise langsamer als das CPU Backend. Kürzlich fand ich Intels
https://github.com/intel/fastuidraw
Das ist schon ganz interessant, aber wohl noch unfertig. 9 mal schneller
als cairo CPU.
Stefan S. schrieb:> Hast Du eigentlich mal probiert, wie viel schneller Dein GL Zeichnen im> Vergleich zu Cairo's CPU Backend ist? Denn Cairo's GL Backend ist ja> seltsamerweise langsamer als das CPU Backend.
Ausprobiert habe ich da noch nichts, wenn man sich aber mal ansieht wie
furchtbar langsam Kicads Cairo-GAL canvas ist... Cairo mit OpenGL zu
beschleunigen halte ich auch für nur mäßig zielführend, da cairos
Zeichenmodell nicht so wirklich zu dem von OpenGL passt.
Ja das ist richtig.
Nach
https://www.x.org/wiki/Events/XDC2016/Program/rogovin_fast_ui_draw/
ist SkiaGL ja auch nicht wesentlich schneller als Cairo.
Aber wenn man schon mit OpenGL zeichnet sollte man schon geglättete
diagonale Linien, Bezier-Kurven und auch hochwerttige Fonts haben. Und
dann wird es leider schon wieder aufwendiger und langsamer.
Hast Du Deine GL Zeichenroutinen auf dem GL-Area Demo mit dem Dreieck
aufgebaut?
Stefan S. schrieb:> Ja das ist richtig.>> Nach>> https://www.x.org/wiki/Events/XDC2016/Program/rogovin_fast_ui_draw/>> ist SkiaGL ja auch nicht wesentlich schneller als Cairo.>> Aber wenn man schon mit OpenGL zeichnet sollte man schon geglättete> diagonale Linien, Bezier-Kurven und auch hochwerttige Fonts haben. Und> dann wird es leider schon wieder aufwendiger und langsamer.
MSAA wäre in der Tat machbar, ist halt Aufwand:
https://www.khronos.org/opengl/wiki/Multisampling#Render-to-FBO Für die
anderen Methoden müsste der GdkGLContext MSAA können, was nicht der Fall
ist.
Was Fonts anbetrifft: Die derzeit verwendeten Hershey-Fonts sind mir
hübsch genug. Andere Programme, die echte Truetype-Schriften verwenden
haben mitunter Probleme damit, diese entsprechend dem Rest drum herum zu
skalieren. Text, der bei einer Zoomstufe passt, ragt dann bei einer
anderen schon ins Symbol nebendran...
> Hast Du Deine GL Zeichenroutinen auf dem GL-Area Demo mit dem Dreieck> aufgebaut?
Jep, hauptsächlich der Boilerplate-Code zum Shader aufsetzen ist
größtenteils aus der Demo übernommen. Irgendwo muss man ja mal anfangen
;)
Stefan S. schrieb:> Mitstreiter haben sich ja wohl sogut wie keine gefunden,
Naja, interessieren würde es mich schon, aber ich denke,
ich bin technisch und mental nicht mit euch kompatibel.
Mein normales Desktop Environment ist der fvwm2, und
übliche Projekte umfassen bei mir 1000 Zeilen tcl/tk-Code
(eher weniger als mehr).
> [...] so dass ich auch mal wieder etwas an meinen Programmen> arbeiten könnte.
Du bist der Stefan S., der die psychedelischen Bilder, die
der topologische Router produziert hat, auf der Homepage
zeigt!?
> Die kompatibilität mit gEDA werde ich wohl aufgeben,
Sehr schade.
> das scheint ja eh keiner mehr zu benutzen.
Ich spiele gelegentlich damit herum. -- Das Projekt scheint
sich totgelaufen zu haben. Kennt jemand Hintergründe?
Ich habe den diffusen Eindruck, dass sich die Entwickler auf
faule Kompromisse "geeinigt" haben, die dann doch niemand
wirklich wollte.
Im Vergleich zum nächsten, (n+1)ten All-in-one-Klotz fände
ich es WIRKLICH wichtig, eine Software zu haben, die eine
klare Aufgabenteilung ermöglicht.
Generell scheint meine persönliche Vorstellung von Software-
ergonomie mit der der Programmierer absolut inkompatibel zu
sein. Ideen gäbe es schon -- allein, ich bin programmier-
technisch nicht versiert genug, sie umzusetzen.
Possetitjel schrieb:> Du bist der Stefan S., der die psychedelischen Bilder, die> der topologische Router produziert hat, auf der Homepage> zeigt!?
Ja sicher.
>>> Die kompatibilität mit gEDA werde ich wohl aufgeben,>> Sehr schade.>>> das scheint ja eh keiner mehr zu benutzen.>> Ich spiele gelegentlich damit herum. -- Das Projekt scheint> sich totgelaufen zu haben. Kennt jemand Hintergründe?
Da gibt es eine vielzahl von Gründen. Der ursprüngliche Hauptentwickler
und auch auch viele andere Entwickler haben sich nach und nach
zurückgezogen. Neue Ideen oder größere Veränderungen wurden von den
wenigen alten Usern stets abgelehnt. Dann war gEDA/PCB ja nur mit Mühe
unter Windows zum Laufen zu bringen. GTK ist eh nicht mehr so beliebt,
und die Entwicklung mit plain C ist eben auch sehr zäh. Und Scheme als
Script- und Konfigurationssprache ist auch nicht jedermanns Sache.
Wobei es seit gut einem Jahr wohl ein neues Project PCB-RND bzw.
gEDA-RND gibt. Ich hatte aber nur die Ankündigung gesehen, u.a. C89 und
soll auch mit reinem X11 funktionieren, also auch ohne GTK. So macht man
sich das Leben wieder sehr schwer.
>> Im Vergleich zum nächsten, (n+1)ten All-in-one-Klotz fände> ich es WIRKLICH wichtig, eine Software zu haben, die eine> klare Aufgabenteilung ermöglicht.
Das war gEDA/PCB ja, und gerade das wurde aber sehr viel kritisiert. Die
meisten wollten lieber alles in einem Programm und sind dann zum Teil zu
KiCad abgewandert.
> Generell scheint meine persönliche Vorstellung von Software-> ergonomie mit der der Programmierer absolut inkompatibel zu> sein. Ideen gäbe es schon -- allein, ich bin programmier-> technisch nicht versiert genug, sie umzusetzen.
Man muss ja nicht unbedingt C++ verwenden. Und auch nicht Haskell oder
Rust. Es gibt ja heute eine Reihe von recht einfachen aber doch sehr
leistungsfähigen Sprachen, da kann schon jeder, der etwas denken kann
auch programmieren. Mit den GUI's sieht es natürlich noch immer
schlechter aus, für Qt kommt wohl im wesentlichen nur C++ in frage, oder
eventuell Python. Für GTK gibt es Bindings für viele Sprachen, mit
unterschiedlicher Qualität. Aber Programmieren kann man ja auch Dinge
die keine GUI benötigen. Oder man macht Webanwendungen, Java-Script und
Konsorten scheinten ja immer beliebter zu werden. Oder C# oder Android
Apps.
ich schrieb:> Wird hier eigentlich das selbe Programm vorgestellt, über das hier> diskutiert wird?> Youtube-Video "Neues ECAD-Programm horizon (GPN17)"
Mein Gott, diese abhackte Sprechweise ist für mein Gehör einfach nicht
kompatibel. Für mich wieder mal ein Beispiel für die vielen nahezu
unzumutbaren "Tutorials" (um es mal so zu nennen) die eher abschrecken
als motivieren.
Abgesehen davon, brauchbare EDA-Software zu schreiben gehört nach meiner
Erfahrung (als Nutzer) mit zum Schwierigsten was man sich vornehmen kann
und ist unmöglich als One-Man-Show erfolgreich umzusetzen. Wieviel
Mann-Jahre developer time beispielsweise wurden bisher an eagle
ver(sch)wendet und bis heute hat eagle quirks, die manch einen zur
Verzweiflung oder zur Konkurrenz treiben.
Das Problem bei EDA ist nämlich, dass es extrem um die Feinheiten, d.h.
das Zusammenspiel zwischen Schaltplan, Layout und Bibliothekshandling
(schnelle Erstellung, Pflege, hohe Vollständigkeit, 3D etc.) geht und
schon Kleinigkeiten einem das Leben schwer machen können. Für ein
Ein-Mann-Projekt ist das in absehbarer Zeit (wir reden über JAHRE!!)
viel zu schwierig umzusetzen und alle die hier falsche Hoffnung und
Schulterklopf befördern werden selber so eine halbgare Software NIEMALS
einsetzen. Was bleibt ist später eines der unzähligen angefangenen und
verwaisten Projekte, bei denen der Ersteller schlicht die Lust daran
verloren hat.
Leute, Leute schrieb:> Mein Gott, diese abhackte Sprechweise ist für mein Gehör einfach nicht> kompatibel.
Hast du mal ein Video (oder Audio) von einem Konferenzvortrag, den
du gehalten hast? Klingt er denn viel besser?
> Für mich wieder mal ein Beispiel für die vielen nahezu> unzumutbaren "Tutorials" (um es mal so zu nennen) die eher abschrecken> als motivieren.
Thread nicht gelesen, aber rummaulen.
Das Teil ist absolut noch nichts, was irgendwie Nutzern derzeit
zugemutet werden soll. Folglich ist das Video auch kein „Tutorial“,
sondern eine Darstellung des Arbeitsstandes.
Wenn du hier nur als Nutzer daherkommen willst, bist du wohl mehr
als ein Jahr zu früh.
> Abgesehen davon, brauchbare EDA-Software zu schreiben gehört nach meiner> Erfahrung (als Nutzer) mit zum Schwierigsten was man sich vornehmen kann> und ist unmöglich als One-Man-Show erfolgreich umzusetzen.
Aha. Du erklärst, dass du selbst nur Nutzer bist, weißt aber dabei
sofort, dass das als One-Man-Show nicht zu machen ist.
Das leuchtet sofort ein. Deine Erfahrungen als Nutzer ermöglichen
dir natürlich einen grundlegenden Rundumblick dafür, wie ein Entwickler
in diesem Bereich so arbeiten muss …
Leute, Leute schrieb:> Was bleibt ist später eines der unzähligen angefangenen und> verwaisten Projekte, bei denen der Ersteller schlicht die Lust daran> verloren hat.
Na und? Selbst wenn es so kommen würde, was gibts daran auszusetzen? Wer
was macht hat recht, wie man in der Szene sagt. Ich meine die Kritik war
ja nicht mal konstruktiv... man hätte ja zum Beispiel das was gut ist
herausstellen und vorschlagen können seine Mann-Jahre in ein vorhandenes
Projekt wie KiCad einzubringen?
Whatever - dem TO viel Erfolg und hört nicht auf Miesepeter. Wer macht,
hat recht!
Jörg W. schrieb:> Leute, Leute schrieb:>>> Mein Gott, diese abhackte Sprechweise ist für mein Gehör einfach nicht>> kompatibel.>> Hast du mal ein Video (oder Audio) von einem Konferenzvortrag, den> du gehalten hast? Klingt er denn viel besser?>>> Für mich wieder mal ein Beispiel für die vielen nahezu>> unzumutbaren "Tutorials" (um es mal so zu nennen) die eher abschrecken>> als motivieren.>> Thread nicht gelesen, aber rummaulen.
Kannst es ja überlesen wenn es dir nicht passt.
> Das Teil ist absolut noch nichts, was irgendwie Nutzern derzeit> zugemutet werden soll. Folglich ist das Video auch kein „Tutorial“,> sondern eine Darstellung des Arbeitsstandes.
Es wird auch später niemandem nutzen, weil der Ersteller bereits mit dem
Vortrag selbst überfordert ist. Sorry, aber so wirkt das nun mal auf
mich.
> Wenn du hier nur als Nutzer daherkommen willst, bist du wohl mehr> als ein Jahr zu früh.
Man sein, aber auch in einem Jahr wird sich daran nichts ändern. Ist
meine Prognose. Du brauchst sie nicht zu teilen.
>> Abgesehen davon, brauchbare EDA-Software zu schreiben gehört nach meiner>> Erfahrung (als Nutzer) mit zum Schwierigsten was man sich vornehmen kann>> und ist unmöglich als One-Man-Show erfolgreich umzusetzen.>> Aha. Du erklärst, dass du selbst nur Nutzer bist, weißt aber dabei> sofort, dass das als One-Man-Show nicht zu machen ist.
Ja, ich schreibe keine EDA SW. So verrückt kann ich gar nicht sein.
Schau dir doch mal an was z.B. Abacom als EDA so anbietet. Wieviele
Leute haben an deren SW nun seit wie vielen Jahren geschrieben und noch
immer wird deren SW mehr als "Platinenmaler" angesehen, als als echte
EDA-SW. Glaubst du der Threadersteller wird es jemals schaffen auch nur
auf deren Niveau aufzuschließen?
> Das leuchtet sofort ein. Deine Erfahrungen als Nutzer ermöglichen> dir natürlich einen grundlegenden Rundumblick dafür, wie ein Entwickler> in diesem Bereich so arbeiten muss …
Darum geht es nicht. Es geht darum zu erkennen, wann man sich mit einer
Aufgabe übernimmt. Hier werden womöglich falsche Hoffnungen geweckt oder
warum wurde dieser Thread hier eröffnet? Irgendwann soll die SW hier
doch mal benutzbar sein oder etwa nicht? Schau dir doch nur mal den Mist
bei gEDA an. Wer will denn sowas benutzen? Das Netz strotzt nur so von
halbgaren Projekten, gerade im Bereich der SW-Entwicklung. Wer will denn
seine Platinen mit einer SW layouten, deren Möglichkeiten extrem
beschnitten sind und Schicksal ungewiss ist?
Mir reichen übrigens meine Quirks bei Diptrace. Mit denen kann ich
einigermaßen leben.
Miesepeter schrieb:> Leute, Leute schrieb:>> Was bleibt ist später eines der unzähligen angefangenen und>> verwaisten Projekte, bei denen der Ersteller schlicht die Lust daran>> verloren hat.>> Na und? Selbst wenn es so kommen würde, was gibts daran auszusetzen?
Anscheinend bist du noch nie auf schlechte SW hereingefallen.
> Wer> was macht hat recht, wie man in der Szene sagt.
"Die Szene"? Was soll das sein? Leute die auf die schnelle was
zusammencodieren und meinen dann das Ei des Kolumbus neu erfunden zu
haben? Davon gibt es mehr als genug. Nach ein paar Jahren ist die Lust
dann weg und zurück bleibt eine Baustelle, die keiner mehr braucht bzw.
verprellte Nutzer.
> Ich meine die Kritik war> ja nicht mal konstruktiv...
Doch ist sie. Lass es sein! Verbessere meinetwegen lieber KiCAD aber
versuche die nicht an Dingen die in die Hose gehen müssen.
> Whatever - dem TO viel Erfolg und hört nicht auf Miesepeter. Wer macht,> hat recht!
Wer das falsche macht gerät in seine Sackgasse. Wer das überdies nicht
erkennt ist doof. Sorry, aber so ist es. Wer einfach mal ein bisschen
herumcodieren möchte darf das natürlich tun. Aber dann den Ball flach
halten und nicht falsche Hoffnungen wecken.
Jörg W. schrieb:> Das Teil ist absolut noch nichts, was irgendwie Nutzern derzeit> zugemutet werden soll.
Hast du dir's in der aktuellen Version mal angesehen? Inzwischen hat's
einige Annehmlichkeiten, die man so in anderer EDA-Software (z.B. KiCad)
doch sehr vermisst:
- Schaltplaneditor, der mehr als nur ein Malprogramm ist
- Sinnvolles Bauteilmanagement
- Flexible Regeln für Abstände, Leiterbahnbreite, etc.
Im Gegensatz zu vor 9 Monaten kann man nun auch alles aus der GUI machen
und muss keine Shell mehr anfassen. (Für dich wahrscheinlich weniger ein
Problem)
https://github.com/carrotIndustries/horizon/wiki/Feature-overview
Leute, Leute schrieb:> Kannst es ja überlesen wenn es dir nicht passt.
Genauso gut könntest du deinen Beitrag zu Thema auch bleiben lassen.
In der dargebotenen Form mag dein Beitrag deinem Ego vielleicht helfen,
mehr auch nicht. Vom TE haben wir im Gegensatz zumindest durchaus
verwertbare Dinge sehen können, einschließlich des Auftritts auf einer
Konferenz. Er hat eine Software geschaffen, die zumindest in gar nicht
so kleinen Teilen das tut, was sie soll. Das ist deutlich mehr als
die Miesmacherei, die du hier ablässt. (Dabei bestreite ich keineswegs,
dass es noch ein langer Weg bis zum fertigen "Produkt" ist,
> Es geht darum zu erkennen, wann man sich mit einer Aufgabe übernimmt.
Wer bist du denn, dass ausgerechnet du dazu berufen sein mögst, das
zu erkennen?
Im Gegensatz zum TE bist du einfach nur ein anonymer Forenposter. Wenn
es an der Substanz fehlt, muss man sich dann an Äußerlichkeiten
aufziehen („Mein Gott, diese abhackte [sic] Sprechweise …“).
Geh bitte wieder zurück irgendwo hin, wo du produktiver wirken kannst,
aber verschon diesen Thread einfach mit deiner Miesepeterei.
Jörg W. schrieb:>> Abgesehen davon, brauchbare EDA-Software zu schreiben>> gehört nach meiner Erfahrung (als Nutzer) mit zum>> Schwierigsten was man sich vornehmen kann und ist>> unmöglich als One-Man-Show erfolgreich umzusetzen.>> Aha. Du erklärst, dass du selbst nur Nutzer bist, weißt> aber dabei sofort, dass das als One-Man-Show nicht zu> machen ist.
Das ist ein Umkehrschluss, der naheligend -- und meiner
Meinung nach auch zutreffend -- ist: Wäre es als One-Man-Show
machbar, dann hätte es schon jemand gemacht. EDA-Software
gibt es schließlich reichlich.
Was mich verzweifeln lässt, das ist der Eindruck, dass
niemand -- wirklich NIEMAND -- Interesse daran hat, eine
echt modularisierte Software auf die Beine zu stellen. Mit
"modularisiert" meine ich nicht "Quelltext besteht aus
mehreren Teilen", sondern: alle missionskritischen Interfaces
(Dateiformate, ggf. auch APIs) sind offengelegt und werden
aktiv gepflegt.
Das würde natürlich voraussetzen, dass reichlich Arbeit in das
Entwickeln eines tragfähigen Datenmodelles geht, und diese Zeit
steht dann natürlich nicht mehr dafür zur Verfügung, sich über
die "modernste" Grafik-Bibliothek die Köpfe einzuschlagen...
Der Vorteil dieser Modularisierung liegt auf der Hand: Es sind
alle Abstufungen von All-in-one-Mammutsoftware bis hin zu
einzelnen Werkzeugen für jeden Zweck machbar, und der Anwender
müsste keine exclusive Entscheidung für EIN Werkzeug treffen,
die dann alle anderen ausschließt.
Das kommerzielle Anbieter das nicht wollen (weil es den "Vendor-
lock-in" verhindert), ist mir ohne weiteres klar. Warum aber die
FOSS-Gemeinde nicht in der Lage ist, das hinzubekommen, wird mir
auf Dauer ein Rätsel bleiben.
Lukas K. schrieb:> Hast du dir's in der aktuellen Version mal angesehen?
Nein, sorry, ich fürchte, dass ich schon auf zu vielen Hochzeiten
selbst tanze. :) Ich wünsche dir aber auf jeden Fall viel Erfolg
damit, und es würde mich durchaus freuen, wenn das Projekt an Fahrt
aufnimmt (einschließlich weiterer Mitwirkender).
Possetitjel schrieb:> Mit "modularisiert" meine ich nicht "Quelltext besteht aus mehreren> Teilen", sondern: alle missionskritischen Interfaces (Dateiformate, ggf.> auch APIs) sind offengelegt und werden aktiv gepflegt.
Leute, die Opensource Datenmodelle abstrahieren, sind halt noch
deutlich dünner geseht als Opensource-Programmierer. Programmieren
macht Spaß, diejenigen, denen das Pflegen von Datenmodellen so viel
Spaß macht, dass sie dies auch noch in ihrer Freizeit tun, dürfte es
nur wenige geben.
Leute, Leute schrieb:> Wer das falsche macht gerät in seine Sackgasse. Wer das> überdies nicht erkennt ist doof. Sorry, aber so ist es.> Wer einfach mal ein bisschen herumcodieren möchte darf> das natürlich tun. Aber dann den Ball flach halten und> nicht falsche Hoffnungen wecken.
Könnte es sein, dass Du Deine Prioritäten etwas merkwürdig
setzt?
Ist Dir das Diffamieren fremder Leistungen tatsächlich SO
wichtig, dass am Ende keine Energie mehr über bleibt, ein
Sachargument zu formulieren?
Jörg W. schrieb:> Leute, Leute schrieb:>> Kannst es ja überlesen wenn es dir nicht passt.>> Genauso gut könntest du deinen Beitrag zu Thema auch bleiben lassen.
Und das bestimmst du also?
> In der dargebotenen Form mag dein Beitrag deinem Ego vielleicht helfen,> mehr auch nicht.
Ach Gott, spar dir deine persönliche Agitation.
> Vom TE haben wir im Gegensatz zumindest durchaus> verwertbare Dinge sehen können, einschließlich des Auftritts auf einer> Konferenz.
Die ziemlich unerträglich ist. Für meine Ohren jedenfalls.
> Er hat eine Software geschaffen,
Nö. Er hat mal was zusammencodiert, das niemand braucht und auch niemand
benutzen wird. Ginge das alles so einfach hätten wird zig gute EDA
Pakete. Haben wird aber nicht. Warum wohl?!
> die zumindest in gar nicht> so kleinen Teilen das tut, was sie soll.
Das reicht nicht. Nicht mal ansatzweise.
> Das ist deutlich mehr als> die Miesmacherei, die du hier ablässt. (Dabei bestreite ich keineswegs,> dass es noch ein langer Weg bis zum fertigen "Produkt" ist,
DU Bist es der auf Mies macht mein lieber. Nur mal zu deiner Erinnerung.
Hier hat jemand einen Thread aufgemacht und zum BENUTZEN seines
Programms aufgefordert. Zitat
"Viel Spaß damit,"
Welcher Spaß??? Wer Platinen erstellt braucht keine Spaßbaustelle,
sondern ein ZUVERLÄSSIGES Programm. Alles andere ist Mumpitz. Und Beta
Tester einer Pre-Alpha-Software spielen ist auch kein Spaß.
>> Es geht darum zu erkennen, wann man sich mit einer Aufgabe übernimmt.>> Wer bist du denn, dass ausgerechnet du dazu berufen sein mögst, das> zu erkennen?
Das ist inhärent mit der ausgesuchten Aufgabe verknüpft. Dazu brauche
ich keine Berufung um das zu erkennen. Mir genügt meine Erfahrung
bisheriger EDA-SW, um zu beurteilen, wie viel wichtige aber oft schlecht
umgesetzte Details einen zur Weißglut bringen können. Es braucht nicht
noch mehr halbgare EDA. Gerade Leiterplattenprojekte sind wenig geeignet
um mit SW gepflegt zu werden, die das Schicksal verwaister Projekte in
wenigen Jahren teilen werden. Besser man bedenkt das vorher als
hinterher dumm dazustehen.
> Im Gegensatz zum TE bist du einfach nur ein anonymer Forenposter. Wenn> es an der Substanz fehlt, muss man sich dann an Äußerlichkeiten> aufziehen („Mein Gott, diese abhackte [sic] Sprechweise …“).
Ja, ich bin es leid auf diese YouTube Videos hereinzufallen, die keinen
Mehrwert beeinhalten, weil sie ziemlich unerträglich sind. Wenn ich
nicht tanzen kann gehe ich auch nicht auf die Bühne zum vortanzen.
> Geh bitte wieder zurück irgendwo hin, wo du produktiver wirken kannst,> aber verschon diesen Thread einfach mit deiner Miesepeterei.
Spare dir diese billige Polemik. Mit falschem Schulterklopf erweist du
dem TE nur einen Bärendienst.
Possetitjel schrieb:> Ist Dir das Diffamieren fremder Leistungen tatsächlich SO> wichtig, dass am Ende keine Energie mehr über bleibt, ein> Sachargument zu formulieren?
Ich diffamiere hier niemandem. Hier wird aber wie schon im Mittelalter
der Überbringer der Nachricht mal wieder gesteinigt und somit ein Forum
wie des Öfteren ad absurdum geführt.
Mal abgesehen davon, was erwartest du? Das ich meine Zeit damit
verbringe eine SW zu testen, die ich nie benutzen werde? Wozu? Ich gab
meine Meinung dazu ab und Meinungsfreiheit besteht doch hoffentlich noch
oder etwa nicht mehr?!
Speichere den Thread hier ab, hole ihn in 5 Jahren wieder heraus und
schaue, ob die SW dann beispielsweise KiCAD überholt hat. Ich sage dir
voraus, in 5 Jahren (oder deutlich früher) wird diese SW in der
Versenkung verschwunden sein und mit sowas verschwende ich nicht meine
kostbare Zeit.
Vergleiche einfach mal mit der Verbesserung über die Zeit bei anderer
EDA SW, wie wenig wirklich neues hinzukommt und wieviel Bugs ausgeräumt
werden müssen, die die Anwender nerven. Das willst du dir nicht
freiwillig antun.
Und achte mal darauf, wer welche Ausreden benutzt, um die SW des TE erst
gar nicht anzufassen.
Jörg W. schrieb:> Possetitjel schrieb:>> Mit "modularisiert" meine ich nicht "Quelltext besteht>> aus mehreren Teilen", sondern: alle missionskritischen>> Interfaces (Dateiformate, ggf. auch APIs) sind offengelegt>> und werden aktiv gepflegt.>> Leute, die Opensource Datenmodelle abstrahieren, sind halt> noch deutlich dünner geseht als Opensource-Programmierer.> Programmieren macht Spaß, diejenigen, denen das Pflegen> von Datenmodellen so viel Spaß macht, dass sie dies auch> noch in ihrer Freizeit tun, dürfte es nur wenige geben.
Das ist eine sehr interessante Antwort.
Bitte korrigiere mich, wenn ich Dich missverstehe. -- Ich
lese aus Deiner Anwort drei Gedanken heraus (oder inter-
pretiere sie hinein -- wie man will):
1. Du bietest eine Erklärung für den von mir geschilderten
Sachverhalt an. Das bedeutet implizit, dass Du meine
Darstellung (dass sich nämlich niemand wirklich um die
Interoperabilität über Projektgrenzen hinweg schert) im Kern
für zutreffend hältst.
2. Du widersprichst meinem Wunsch nach mehr Interoperabilität
nicht. Das heißt für mich: Hier spricht nicht (nur) meine
subjektive, völlig fehlgeleitete Wahrnehmung, sondern hier
steckt möglicherweise ein WIRKLICHES Problem, mit dem noch
andere Leute außer mir kämpfen.
3. Im Grunde hast Du ja nur die Binsenweisheit "FOSS-
Programmierer programmieren genau das, was sie selbst haben
und benutzen wollen" auf den konkreten Fall angewendet. (Die
Formel scheint mir im Großen und Ganzen auch zuzutreffen;
sie erklärt zumindest, warum es deutlich mehr Compiler als
fehlerfreie WYSIWYG-Bürosoftware gibt.)
Daraus ergibt sich: Die Chancen, Mitglieder des Kernteams
eines Projektes zu mehr Interoperabilität zu überreden,
sind begrenzt. Dinge, die fehlen, werden eher ins eigene
Projekt aufgenommen, als die Möglichkeit zu schaffen, sie
"außerhalb" zu erledigen.
Man müsste also von außen her, d.h. als Nicht-Projektmitglied
sehen, was man tun kann.
Leute, Leute schrieb:> Possetitjel schrieb:>> Ist Dir das Diffamieren fremder Leistungen tatsächlich SO>> wichtig, dass am Ende keine Energie mehr über bleibt, ein>> Sachargument zu formulieren?>> Ich diffamiere hier niemandem.
Hmm.
Lass mich bitte als Vorrede folgendes feststellen: Ich
bin infolge gewisser Akkumulation von Lebenserfahrung
inzwischen ein Verfechter des Prinzips "Erkläre nichts
durch bösen Willen, was durch Blödheit hinreichend erklärt
ist".
Daher bemühe ich mich weiterhin, Dir keine pure Lust an
der Beleidigung zu unterstellen, sondern gehen davon aus,
dass Du TATSÄCHLICH NICHT MERKST, dass jeder zweite Satz
von Dir eine Unverschämtheit ist.
> Mal abgesehen davon, was erwartest du?
Reden wir mal nicht von "erwarten", bleiben wir bei "wünschen":
Ich wünsche mir, dass Du beginnst, zwischen Deinem persönlichen
Frust auf der einen und den Sachargumenten auf der anderen
Seite zu unterscheiden.
> Ich gab meine Meinung dazu ab und Meinungsfreiheit besteht> doch hoffentlich noch oder etwa nicht mehr?!
Die Meinungsfreiheit besteht aber "leider" auch für die
Leute, die Dich für einen Rüpel und Pöbelmeier halten und
dies auch deutlich zum Ausdruck bringen.
> Vergleiche einfach mal mit der Verbesserung über die Zeit> bei anderer EDA SW, wie wenig wirklich neues hinzukommt und> wieviel Bugs ausgeräumt werden müssen, die die Anwender> nerven. Das willst du dir nicht freiwillig antun.
Das ist ja eine durchaus zutreffende Beobachtung. Auch wenn
ich den Frust (vermutlich besser, als Du glaubst) verstehen
kann -- bist Du WIRKLICH der Meinung, Lukas hört Dir zu, wenn
Du ihn im Wesentlichen mit Beleidigungen überschüttest?
Vergessen wir nicht: Er hat diesen Faden aufgemacht, um sein
Projekt vorzustellen.
> Und achte mal darauf, wer welche Ausreden benutzt, um die> SW des TE erst gar nicht anzufassen.
Schon wieder: "Ausreden".
Du unterstellst SOFORT Unredlichkeit, ohne auch nur den
Versuch zu unternehmen, den Gegenüber zu verstehen (nein,
ich meine nicht "auf nette Weise Verständnis heucheln", ich
meine: Echtes Verstehen. Ganz altmodisch.)
So -- abseits der Formfragen: Du machst meiner Meinung nach
einen Fehler, wenn Du kommerzielle und freie Software in
einen Topf wirfst.
Natürlich sind die Probleme für den Anwender in beiden
Fällen dieselben -- nämlich mangelnde Interoperabilität
unterschiedlicher Produkte. Die Ursachen sind aber verschieden:
Bei kommerzieller Software ist der "Vendor-lock-in" gewolltes
und erklärtes Ziel; man umschreibt das höflich als "Kunden-
bindung".
Bei freier Software ist es lediglich die Folge der Mentalität
der Programmierer.
Ich halte diesen kleinen, aber feinen Unterschied für wichtig:
Es ist eine Sache, wenn Programmierer nicht unbedingt von
sich aus auf Interoperabilität hinarbeiten -- wer in einem
Projektteam mitarbeitet, will ja DIESES Projekt voranbringen,
und nicht dafür sorgen, dass der Anwender ebensogut auch eine
andere Software benutzen kann :)
Eine völlig andere Geschichte wäre es aber, sich der Zusammen-
arbeit mit dem "EDA Interoperability Project" zu verweigern,
wenn es denn ein solches gäbe.
Das ist meiner Meinung nach der Punkt, an dem man ansetzen
muss.
Stefan S. schrieb:> Possetitjel schrieb:>> Ich spiele gelegentlich damit herum. -- Das Projekt [gEDA]>> scheint sich totgelaufen zu haben. Kennt jemand Hintergründe?>> Da gibt es eine vielzahl von Gründen. [...]
Danke; ungefähr so etwas hatte ich vermutet.
> Wobei es seit gut einem Jahr wohl ein neues Project PCB-RND> bzw. gEDA-RND gibt.
Tausend Dank für diesen Hinweis.
Es scheint so zu sein, dass es das Projekt faktisch seit
ungefähr 2013 gibt, nur "offiziell" ist der Fork erst seit
Kurzem.
Verblüffend: Für pcb-rnd gibt's ein Debian-Paket (ab 9.x).
Das Kernteam ist zwar mit 8 Leuten ziemlich klein, scheint
aber aktiv zu sein. Noch ist also nicht alles verloren :)
Mal schauen.
Possetitjel schrieb:> Lass mich bitte als Vorrede folgendes feststellen: Ich> bin infolge gewisser Akkumulation von Lebenserfahrung> inzwischen ein Verfechter des Prinzips "Erkläre nichts> durch bösen Willen, was durch Blödheit hinreichend erklärt> ist".
Deine Lebensweisheiten behalte bitte für dich.
> Daher bemühe ich mich weiterhin, Dir keine pure Lust an> der Beleidigung zu unterstellen, sondern gehen davon aus,> dass Du TATSÄCHLICH NICHT MERKST, dass jeder zweite Satz> von Dir eine Unverschämtheit ist.
Deine Unterstellung ist eine Unverschämtheit. Greife dir bitte mal an
die eigene Nase.
>> Mal abgesehen davon, was erwartest du?
Hier in diesem Forum erwarte ich absolut nichts mehr. Ich gebe hier dann
und wann nur noch meine Meinung zum besten.
> Reden wir mal nicht von "erwarten", bleiben wir bei "wünschen":>> Ich wünsche mir, dass Du beginnst, zwischen Deinem persönlichen> Frust auf der einen und den Sachargumenten auf der anderen> Seite zu unterscheiden.
Schon wieder eine Unterstellung. Merkst du eigentlich, dass du hier
anderen den Umgangston anmahnst und selber zu Unverschämtheiten greifst?
>> Ich gab meine Meinung dazu ab und Meinungsfreiheit besteht>> doch hoffentlich noch oder etwa nicht mehr?!>> Die Meinungsfreiheit besteht aber "leider" auch für die> Leute, die Dich für einen Rüpel und Pöbelmeier halten und> dies auch deutlich zum Ausdruck bringen.
Ich will dir mal was sagen, wenn man hier nicht mal mehr feststellen
kann, dass gewisse YouTube Videos einfach eine Zumutung sind, dann ist
es traurig um uns alle bestellt. Seid ihr inzwischen so vergutmenschelt,
so empfindlich geworden, dass man euch das nicht mehr sagen darf? Ist
dieses Land mittlerweile total verweichlicht? Auf der anderen Seite
reagieren Gutmenschen wie ihr bei jeder kleinen Kritik dann sofort mit
Schaum vorm Mund und Beleidigungen. Wie reagierst du denn
beispielsweise, wenn ein talentloser Sänger auf der Bühne meint er sei
ein toller Hecht. In Wahrheit aber ist der Kerl nur eine akustische
Zumutung. Lobst du ihn dann vor deinen Kumpels über Klee, weil er's
"doch irgendwie probiert hat und dafür Anerkennung verdient"? Meinst du,
du tust so einem Menschen damit einen Gefallen?
> bist Du WIRKLICH der Meinung, Lukas hört Dir zu, wenn> Du ihn im Wesentlichen mit Beleidigungen überschüttest?
Nochmal zum Mitschreiben für dich, ich habe hier niemanden beleidigt.
Ich habe bloß zwei Dinge angemerkt, nämlich
1. der Vortrag tut mir in den Ohren weh (zu deinem Trost, die meisten
Youtuber können keine gescheiten Vorträge abliefern)
2. ein 1-Mann-EDA-Projekt wird NIEMANLS was werden. Dazu ist
EDA-Software einfach zu komplex.
Wo ist da bitte jetzt die Beleidigung?
> Vergessen wir nicht: Er hat diesen Faden aufgemacht, um sein> Projekt vorzustellen.
Und wozu dann, wenn ihn Kommentare nicht interessieren? Geht's ihm dann
um Lobhudelei?
Wir sind hier nun mal nicht auf bzw. in der Walldorfschule. Zwischen gut
gemeint und gut gemacht liegt oftmals ein großer und entscheidender
Unterschied. Wer so viel Zeit und Power über hat sollte die besser für
sinnvolleres einsetzen (was er natürlich darf, aber ich muss es ja nicht
gut finden oder?!).
Da es aber wie meistens völlig sinnlos ist hier weiter zu kommentieren
beenden wir das Thema halt. Die Zeit wird zeigen wer recht behält. Hier
ist übrigens schon mal einer erschienen der (angeblich) eine EDA SW
erstellen wollte. Daraus wurde auch nix.
Leute, Leute schrieb:>> Lass mich bitte als Vorrede folgendes feststellen: Ich>> bin infolge gewisser Akkumulation von Lebenserfahrung>> inzwischen ein Verfechter des Prinzips "Erkläre nichts>> durch bösen Willen, was durch Blödheit hinreichend erklärt>> ist".>> Deine Lebensweisheiten behalte bitte für dich.
Aber Deine eigene Lebenserfahrung soll hier als guter Rat taugen?
Warum nur Deine, aber nicht die von Possetitjel oder Jörg?
Doppelmoral?
> Deine Unterstellung ist eine Unverschämtheit. Greife dir bitte mal an> die eigene Nase.
Der Ton macht die Musik, und Du hast den Ton zuerst angeschlagen.
> 1. der Vortrag tut mir in den Ohren weh (zu deinem Trost, die meisten> Youtuber können keine gescheiten Vorträge abliefern)
Ich tue mir Videos nur im Notfall an. Text/Grafik ist mir lieber.
Videos erfordern eine zu hohe Konzentration.
> 2. ein 1-Mann-EDA-Projekt wird NIEMANLS was werden. Dazu ist> EDA-Software einfach zu komplex.
Als Projekt sicher nicht. Trozdem wird derjenige, der sich in dieser
Form damit befasst, eine Menge lernen.
1) Über Programmieren
2) Darüber, wie Schaltungen entwickelt werden, und wie man Platinen
layoutet.
3) Wie Platinen in der Fabrik hergestellt werden
4) Über sich selber.
Unter diesen Aspekten sehr sinnvoll.
> Wo ist da bitte jetzt die Beleidigung?
Die steckt im Tonfall und in Deiner Missachtung der Tatsache, dass es
noch andere als die von Dir angeführten Gründe gibt. ;O)
> Wir sind hier nun mal nicht auf bzw. in der Walldorfschule.
Und das ist auch gut so <grusel> ....trozdem macht auch hier der Ton die
Musik, und wenn Du halt als testosteronschwangerer Vollmacho rumtrötest,
musst Du Dich wegen des Zurücktrötens nicht wundern.
Wenn ein Hirsch im Wald röhrt, wird schon ein anderer antworten. ;O)
Nicht das mich der Krach stört, aber konstruktiv ist halt was anderes.
> Wer so viel Zeit und Power über hat sollte die besser für> sinnvolleres einsetzen (was er natürlich darf, aber ich muss es ja nicht> gut finden oder?!).
Es steht Dir nicht an, darüber zu Urteilen, wie andere Leute ihr Leben
einrichten. Abgesehen davon, das es viele verschiedene gleichberechtigte
Ansichten geben wird, spielt da viel zu viel Zufall und Kompromiss
hinein, um ein Hineinreden zu rechtfertigen. Wir alle kennen die Deteils
der Hintergründe und Randbedingungen des TO nicht. Dein Rat könnte zwar
möglicherweise willkommen sein, aber wer in diesem Tonfall rät, will in
wirklichkeit Kommandieren.
Persönlich sehe ich es eher als Hybris, wenn man den Versuch macht, sein
Leben zu planen.
> Die Zeit wird zeigen wer recht behält. Hier> ist übrigens schon mal einer erschienen der (angeblich) eine EDA SW> erstellen wollte. Daraus wurde auch nix.
Na und? Ich habe auch mal mit sowas herumgespielt. Ist stecken
geblieben. War aber lehrreich und hat Spass gemacht.
Jetzt habe ich es auch seit Jahren nicht mehr angefasst, obwohl es mich
hin und wieder kitzelt.
Und, wenn die Umstände günstiger (oder ungünstiger,
interpretationsfrage) sind, mache ich das vieleicht auch wieder. Ich
habe aber auch nie erwartet, dass etwas grossartiges dabei heraus
kommt.**)
Damit Du nicht meinst, ich wüsste nicht, wovon ich spreche, hier der
Link darauf:
https://www.mikrocontroller.net/wikifiles/5/5a/PyGerberAnalyse_B5_13Jun2013.zipLeute, Leute schrieb:> Mir reichen übrigens meine Quirks bei Diptrace. Mit denen kann ich> einigermaßen leben.
Liegt hier der Hase im Pfeffer? Machst Du in Wirklichkeit Werbung auf
eine unterschwellige Art und Weise? ;O)
Irgendwie habe ich aber den Verdacht, als Werbung ist das auch ein
Schuss in den Ofen. ;O)
**) Immerhin hätte ich durch die Beschäftigung damit zweimal fast eine
Stelle bekommen. ;O)
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Hallo Lukas,
Ich habe mit WIN7 und WIN10 getestet.
Ich wollte in Rules -> Copper Clearance die 0,1mm ändern. Seit dem
Versuch sind da nur noch 0.000mmm egal welche Zahl ich eintippe. Im
Layout werden dadurch pads und traces in planes nicht mehr ausgespart.
Übrigens scheint die eingebaute Abstandsfunktion fälschlicher Weise die
Mitte der Traces zu nehmen statt deren Rand.
Das ist jetzt für mich nicht tragisch, weil ich eh nur die Bedienung
teste. Gibt es eine Liste welche Funktionen nicht gehen aber bereits ein
Fenster öffnen?
Dein Demo-Projekt funktioniert nicht in WIN7,10. Da kommt die
Fehlermeldung:
Error opening project
parse error - unexpected '<'
OK
Gruß
Helmut
> Ich wollte in Rules -> Copper Clearance die 0,1mm ändern. Seit dem
Versuch sind da nur noch 0.000mmm egal welche Zahl ich eintippe.
Hab mal nochmals versucht den Wert zu ändern. Ergebins: Man kann nur
ganze Millimeter eingeben, z. B. 1, 2... bis 100mm. 1mm will ich
natürlich da nie haben. Scheint ein echter Bug zu sein.
Rufus Τ. F. schrieb:> Ins Blaue gefragt: Könnte das ein Dezimalpunkt ./. Dezimalkomma-Problem> sein? Versuch mal, statt "0.1" "0,1" einzugeben, oder umgekehrt.
Hallo Rufus,
danke, das hat geholfen. Wenn ich 0,2 eintippe statt 0.2, dann
funktioniert es. Angezeigt wird dann 0.200.
1.
> Übrigens scheint die eingebaute Abstandsfunktion fälschlicher Weise die
Mitte der Traces zu nehmen statt deren Rand.
Diese Aussage ziehe ich zurück. Der Abstand wird richtig berechnet.
Dafür habe ich ein anderes Problem. Wenn ich in dem Fall im angehängten
screenshot ein Update Planes mache, dann bleibt von dem gefüllten
Polygon nur noch eine einzige vertikale Linie an dessen ursprünglich
linkem Rand übrig. Auch ein erhöhen der Priorität hat da nicht geholfen.
Was mache ich da falsch?
2.
> KiCad's awesome push'n shove router
Bei mir schiebt wird da nichts geschoben.
Wo schaltet man den in horizon ein?
Das mit den Dezimaltrenner ist nun repariert.
Helmut S. schrieb:> 1.>>> Übrigens scheint die eingebaute Abstandsfunktion fälschlicher Weise die> Mitte der Traces zu nehmen statt deren Rand.>>> Diese Aussage ziehe ich zurück. Der Abstand wird richtig berechnet.>> Dafür habe ich ein anderes Problem. Wenn ich in dem Fall im angehängten> screenshot ein Update Planes mache, dann bleibt von dem gefüllten> Polygon nur noch eine einzige vertikale Linie an dessen ursprünglich> linkem Rand übrig. Auch ein erhöhen der Priorität hat da nicht geholfen.> Was mache ich da falsch?>
Ich kann jetzt auf dem Bild nicht erkennen, zu welchen Netzen der Track
da rechts und die Plane gehören. Gehören die zum selben Netz? Wenn ja,
muss die Mittellinie das Tracks (derzeit) innerhalb (nicht auf der
Kante) des Polygons liegen, damit die als verbunden erkannt werden. Wenn
die Plane sonst nirgendwo angeschlossen ist, wird die nicht gefüllt,
wenn orphans deaktiviert sind.
> 2.>>> KiCad's awesome push'n shove router>> Bei mir schiebt wird da nichts geschoben.> Wo schaltet man den in horizon ein?
Die Shove-Funktionalität wird derzeit von horizon noch nicht
unterstützt, ich hab' mal die Doku angepasst...
Helmut S. schrieb:> Dein Demo-Projekt funktioniert nicht in WIN7,10. Da kommt die> Fehlermeldung:> Error opening project> parse error - unexpected '<'
Seltsam, in der Projektdatei ist kein '<' enthalten:
https://github.com/carrotIndustries/horizon-test-project/blob/master/pic32-eth.hprj
Hast du auch das Zip heruntergeladen und entpackt? Das '<' sieht mir
doch nach einer HTML-Datei aus.
Hallo Lukas,
1.
Das mit dem Update Planes funktioniert jetzt auch mit den traces entlang
und in der plane. Am Anfang ging es nicht. Vielleicht habe ich einfach
etwas falsch bedient.
2.
> Seltsam, in der Projektdatei ist kein '<' enthalten:https://github.com/carrotIndustries/horizon-test-p...
Hast du auch das Zip heruntergeladen und entpackt? Das '<' sieht mir
doch nach einer HTML-Datei aus.
Ich habe das Demo-Projekt als Einzeldateien heruntergeladen.
Wo gibt es da einen zip-file?
2.
Wo ist eigentlich das GND-Symbol im Schaltplaneditor? Ich finde es
nicht.
Helmut S. schrieb:> Hallo Lukas,>> 1.> Das mit den Update Planes funktioniert jetzt auch mit den traces entlang> und in der Plane. Am Anfang ging es nicht. Vielleicht habe ich einfach> etwas falsch bedient.
Ist in der aktuellsten Version auch repariert ;)
>> 2.>> Seltsam, in der Projektdatei ist kein '<' enthalten:> https://github.com/carrotIndustries/horizon-test-p...> Hast du auch das Zip heruntergeladen und entpackt? Das '<' sieht mir> doch nach einer HTML-Datei aus.>>> Ich habe das Demo-Projekt als Einzeldateien heruntergeladen.> Wo gibt es da einen zip-file?https://github.com/carrotIndustries/horizon-test-project
Bei dem grünen Knopf "Clone or Download" gibt es die Option "Download
ZIP".
>> 2.> Wo ist eigentlich das GND-Symbol im Schaltplaneditor? Ich finde es> nicht.
Die GND-Symbole sind deutlich anders gelöst als in anderen
Applikationen:
https://github.com/carrotIndustries/horizon/wiki/Schematic-editor#power-symbols
Horizon is a free EDA package ...
Nach Monaten des Schweigens kommt dieses Horizon wieder in die
Diskussion. Na fein, sagt unsereiner sich...
..aber wenn man sich mal die zugehörige Seite
"https://github.com/carrotIndustries/horizon"
anschaut, dann landet man in einer hoffnungslos mit LowLevel-Details
überfrachteten Seite.
Wo ist da der Anfang?
Wo ist da die nötige Struktur?
Erwartet der Autor, daß man sich als eventueller Interessent durch alle
Details (block, board, canvas, canvas3d, clipper, ...) durchwühlt?
Nee, Leute. So wird das nix bis ewig.
Ein simples blinky.c kann jeder auch ohne jegliche Projektplanung
schreiben, aber bei einem Projekt wie ein komplettes EDA-System es
darstellt, braucht es ganz am Anfang ein gut durchdachtes und
schriftlich fixiertes Konzept und die Struktur des Ganzen. Wer das nicht
formulieren will oder kann, der wird unweigerlich scheitern.
Und wenn man dann sowas lesen darf:
"Seems like people really want to have Windows binaries, so I made
some: horizon-zip"
...dann vergeht einem die Lust, die 34 MB herunterzuladen und eventuell
sogar auch noch auszuprobieren.
Also: Es fehlt das Konzept. Mal wieder. Ich hatte dies ja bereits bei
Diptrace angemahnt, später ebenfalls bei Kicad. Aber es ist wohl immer
so bei hochambitionierten Programmierern, daß sie ihr Baby nur nach
ihren eigenen Gesichtspunkten bepflegen, keinen wirklichen Blick für die
eventuellen Anwender haben und auf die Frage nach ihrem Konzept mit
persönlicher Beleidigtheit reagieren.
Also Horizon ist offenbar dediziert NICHT für Windows-Benutzer gedacht.
Auch eine echte Darstellung, wie Horizon denn überhaupt funktioniert,
also wie das Zusammenspiel zwischen Schematics, Layout und anderen
Teilen wie Bibliotheken, Rulechecks (erc, drc, hf, therm, usw.)
organisiert ist, glänzt durch vollständige Abwesenheit. Von einem
User-Manual will ich erst garnicht reden.
Auch von angedachten Interfaces zu Dingen, die über den gewöhnlichen
Kram hinausgehen, wie z.B. distributed elements, Feldanalysen usw. kann
man nichts lesen. Jaja, unsereiner wäre durchaus an einem ECAD
interessiert, das wenigstens ansatzweise die Dinge, die man mit Ansoft
oder Sonnet sich gestalten kann, importieren oder wenigstens nachbilden
kann. Aber das wären ja wieder Dinge aus der vernachlässigbaren
Windows-Ecke...
Nein, Horizon ist keineswegs "a free EDA package", sondern bislang nur
ne Art Fingerübung die so tut, als ob sie sowas wäre. Der einzigen Rat,
den ich hier geben könnte würde lauten: der/die Autoren täten besser,
wenn sie ihre Arbeitskraft einsetzen würden, um Kicad vom Kopf auf die
Füße zu stellen, also dessen Geburtsfehler ausmerzen. Das wäre
zielführender.
W.S.
Frank K. schrieb:> Compilieren geht soweit, jedoch weigert sich rpmbuild ein Package zu> erstellen da noch ein paar Warnings im Code sind:
Sind repariert.
Hallo Lukas,
mit dem zip-download funktioniert das Demo-design.
Das Power-Symbol für GND bekomme ich jetzt auch hin nach deinem letzten
Hinweis.
Die clearance rules werden jetzt mit',' angezeigt.
Ich möchte bei einigen traces die Breite ändern.
Warum ist eigentlich im Layout das Feld für Track->width grau(nicht
änderbar)?
Gruß
Helmut
Helmut S. schrieb:> Warum ist eigentlich im Layout das Feld für Track->width grau(nicht> änderbar)?
Das liegt daran, dass der Schalter "Width from rules" an ist. Damit
werden die Leiterbahnbreiten entsprechend der Regeln unter "Track Width"
gesetzt. Wie bei allen anderen Regeln auch wird die angewendet, die als
erstes zutrifft.
Lukas K. schrieb:> Helmut S. schrieb:>> Warum ist eigentlich im Layout das Feld für Track->width grau(nicht>> änderbar)?>> Das liegt daran, dass der Schalter "Width from rules" an ist. Damit> werden die Leiterbahnbreiten entsprechend der Regeln unter "Track Width"> gesetzt. Wie bei allen anderen Regeln auch wird die angewendet, die als> erstes zutrifft.
Danke, darauf hätte ich selber kommen sollen. :-)
Das Kupfer geht ja bis zur Boardkante bei dem Demoboard. Das solltest
mal ändern und z. B. 0,8mm Abstand einbauen. Muss dazu die GND-plane
verkleinert werden oder gibt es eine "routing outline"?
Für Windows-Benutzer
Hier loslegen
https://github.com/carrotIndustries/horizon
Ganz unten auf der Seite
"Getting Started" > See the "wiki"
Dann ist man hier.
https://github.com/carrotIndustries/horizon/wiki/Getting-started
"Get Horizon"
Windows -> "here" -> horizon.zip -> neueste Version nehmen.
Die zip-Datei in einem beliebigen Verzeichnis entpacken, z. B.
C:\horizon
Wieder auf diese Seite gehen:
https://github.com/carrotIndustries/horizon/wiki/Getting-started
Get the pool -> download the zipped pool
Auch in C:\horizon speichern und dort entpacken.
https://github.com/carrotIndustries/horizon/wiki/Getting-started
"Open the project manager"
C:\horizon\horizon\horizon-prj-mgr.exe starten.
Siehe Wiki wie man den "pool" anlegt.
Dabei dort pool.json in C:\horizon\horizon-pool-master wählen.
C:\horizon\horizon-pool-master
Jetzt kann man entweder mit einem Schaltplan starten.
Am besten erst noch das Demo-Design laden.
Den Link zum Demo-Design gibt es unter "Example project".
https://github.com/carrotIndustries/horizon-test-project
"Clone or download" wählen -> Download zip
Den in C:\horizon speichern und auspacken.
Open Project -> C:\horizon\horizon-test-project-master\pic32-eth.hprj
Jetzt auf Top Schematic und/oder Board klicken.
W.S. schrieb:> Ein simples blinky.c kann jeder auch ohne jegliche> Projektplanung schreiben, aber bei einem Projekt wie> ein komplettes EDA-System es darstellt, braucht es> ganz am Anfang ein gut durchdachtes und schriftlich> fixiertes Konzept und die Struktur des Ganzen.
Naja, was hältst Du von folgender Interpretation:
Du brauchst (genauso wie ich) für alles, was komplizierter
als blinky.c ist, ein durchdachtes Konzept.
Lukas hat (nach eigener Aussage) bisher 26'000 Zeilen Code
geschrieben (und brauchte offenbar kein Konzept).
Also ist "horizon" für Lukas nicht komplizierter als für
uns blinky.c.
Betrüblich für uns, aber erfreulich für Lukas :)
> Also: Es fehlt das Konzept. Mal wieder. Ich hatte dies ja> bereits bei Diptrace angemahnt, später ebenfalls bei Kicad.
Niemand will Probleme. Alle wollen Lösungen. Gilt auch für
Programmierer.
Und im Hobby will man sich ganz sicher von niemandem mahnen
lassen.
> Aber es ist wohl immer so bei hochambitionierten> Programmierern, daß sie ihr Baby nur nach ihren eigenen> Gesichtspunkten bepflegen, keinen wirklichen Blick für> die eventuellen Anwender haben
Entschuldigung: Hat Lukas IRGENDWO zugesichert, dass er Dich,
mich oder die Welt mit seinem Programm glücklich machen will?
Ich wüsste nicht, wo.
Er sagt in seinem Vortragsvideo nur: Er sei mit den vorhandenen
EDA-Programmen nicht zufrieden gewesen und hätte daher begonnen,
sein eigenes zu schreiben. Genau das tut er.
Jetzt braucht er Tester, und deswegen bittet er darum, das
Programm zu testen.
> Auch eine echte Darstellung, wie Horizon denn überhaupt> funktioniert,
Wozu?
Hat Lukas IRGENDWO um Hilfe beim Programmieren gebeten?
> Nein, Horizon ist keineswegs "a free EDA package", sondern> bislang nur ne Art Fingerübung die so tut, als ob sie sowas> wäre.
Hältst Du es für denkbar, dass Deine Ansicht darüber, was ein
"free EDA package" können muss, NICHT die einzig richtige ist?
> Der einzigen Rat, den ich hier geben könnte würde lauten:> der/die Autoren täten besser, wenn sie ihre Arbeitskraft> einsetzen würden, um Kicad vom Kopf auf die Füße zu stellen,> also dessen Geburtsfehler ausmerzen. Das wäre zielführender.
Habe ich das richtig verstanden: Es wäre das Beste für Lukas,
wenn er die Software programmieren würde, die W.S. gerne haben
will?
Nee, also ganz ehrlich: Für die Software, die DU gerne haben
willst, musst schon DU SELBST das Projekt auf die Beine stellen.
(Das bedeutet nicht zwingend, dass Du auch alles selbst
programmieren musst.)
Helmut S. schrieb:> Das Kupfer geht ja bis zur Boardkante bei dem Demoboard. Das solltest> mal ändern und z. B. 0,8mm Abstand einbauen. Muss dazu die GND-plane> verkleinert werden oder gibt es eine "routing outline"?
Genau da bin ich gerade dran ;) Aus der "Clearance Copper - NPTH"-Regel
wird eine "Copper - Non copper Regel", die dann den Abstand von
Kupferdingen, wie Track, Plane, etc. zu Nicht-Kupferdingen wie
NPTH-Löchern und eben Boardkante beschreibt.
Possetitjel schrieb:> Lukas hat (nach eigener Aussage) bisher 26'000 Zeilen Code> geschrieben (und brauchte offenbar kein Konzept).
Wer sagt denn, dass er kein Konzept hat?
Ein solches muss ja nicht zwingend irgendwo aufgeschrieben sein,
vor allem dann nicht, wenn man es als One-Man-Show startet. Dafür
reicht ein Konzept im Kopf völlig aus.
Auch KiCad ist mal als One-Man-Show gestartet worden …
Wenn ich mal mein OS (und damit auch den Compiler) aktualisiert habe,
schau ich mir Horizon auf jeden Fall auch mal an. Vermutlich wird
Lukas dann von mir als erstes einen Satz Patches für FreeBSD erhalten.
:-)
Jörg W. schrieb:> Auch KiCad ist mal als One-Man-Show gestartet worden …
Das wollte ich gerade schreiben. Bis auf sehr wenige Teile, die von
seinen Studenten beigesteuert wurden, hat der gute Jean-Pierre das bis
2006 ganz alleine aus dem Boden gestampft.
Und 2006 war es definitiv benutzbar, denn zu dem Zeitpunkt bin ich
damals von Eagle zu Kicad gewechselt (u.a. wegen fehlender
Hierarchie-Möglichkeiten) und habe nicht wirklich etwas vermisst -
insbesondere nicht die Einschränkungen bei Eagle ;-)
Es ist wie immer: viele reden und haben überall Bedenken - und die
anderen fangen einfach mal an.
Also: dass man für eine brauchbare ECAD-Software ein vielköpfiges,
permanentes Entwicklerteam benötigt, ist offenbar falsch.
> Wenn ich mal mein OS (und damit auch den Compiler) aktualisiert habe,> schau ich mir Horizon auf jeden Fall auch mal an. Vermutlich wird> Lukas dann von mir als erstes einen Satz Patches für FreeBSD erhalten.> :-)
Wir sind mit Kicad zufrieden, aber trotzdem ist das ein tolles Projekt.
Hut ab vor Deiner Leistung, Lukas!
Jörg W. schrieb:> Wer sagt denn, dass er kein Konzept hat?>> Ein solches muss ja nicht zwingend irgendwo aufgeschrieben sein,> vor allem dann nicht, wenn man es als One-Man-Show startet. Dafür> reicht ein Konzept im Kopf völlig aus.
Genau so ist's. Das "Konzept" ist ja auch nichts feststehendes, sondern
mehr etwas, das sich im Laufe der Zeit an neue Gegebenheiten und
Gelerntes anpasst. Was aufgeschriebenes wäre derzeit eh nach kürzester
Zeit veraltet. Führt halt dazu, dass man einige Dinge mehrfach
grundlegend überarbeiten muss. Ganz ohne Plan läuft die Entwicklung auch
nicht ab, siehe eine der letzten Folien aus dem Vortrag:
Aktuelle / Zeitnahe Entwicklungen
=================================
• DRC, Verbesserung des Routers
Insb. ersteres ist geschehen. Ohne mir jetzt alle Opensource-EDA
Applikationen im Detail angesehen zu haben, behaupte ich mal,
mittlerweile, das leistungsfähigste und flexibelste Regelsystem zu
haben.
• Netzklassen aufräumen
Ist geschen.
• Layer erweitern
Ebnefalls.
• Kupferflächen füllen
Auch.
Zukunft
=======
• ERC
Gibt's noch nicht wirklich, ist auch mehr Arbeit als kompliziert zu
implementieren.
• 3D-Export/Darstellung
3D-Darstellung (ohne Bauteile) gibt's. Seit gestern auch mit Innenlagen.
3D-Export wird darauf hinauslaufen kicad2step zu portieren:
https://github.com/KiCad/kicad-source-mirror/tree/master/utils/kicad2step
• GUI für Pool, Entities, etc.
Gibt's.
• Parametrische Suche
War noch nicht wichtig genug, ist aber auch mehr ein nice-to-have.
• Integration des KiCAD-Routers
Ist geschehen, wenn auch noch Dinge wie Routen von diffpairs und
length-tuning noch nicht unterstützt werden. (Shove ist so gut wie
fertig)
Chris D. schrieb:> Hut ab vor Deiner Leistung, Lukas!
Danke an dich und einige andere für die netten Worte!
Jörg W. schrieb:> Possetitjel schrieb:>>> Lukas hat (nach eigener Aussage) bisher 26'000 Zeilen>> Code geschrieben (und brauchte offenbar kein Konzept).>> Wer sagt denn, dass er kein Konzept hat?
Och, Menno.
Das sagt niemand -- das war nur eine notwendige Annahme,
damit mein boshafter Vergleich funktioniert.
Hallo Lukas,
in deiner neuesten Version für WIN stürzt horizon-imp.exe bei "Update
Planes" ab. Bitte wieder lauffähig machen.
Version: horizon-2017-10-23-1433.zip
Gruß
Helmut
Helmut S. schrieb:> in deiner neuesten Version für WIN stürzt horizon-imp.exe bei "Update> Planes" ab. Bitte wieder lauffähig machen.
Bis die neue Version kompiliert ist, reicht's wenn du in den Rules bei
Copper - Non-Copper Clearance was einträgst. Ohnehin sollte da was drin
stehen, damit auch was sinnvolles verwendet wird.
Lukas K. schrieb:> Helmut S. schrieb:>> in deiner neuesten Version für WIN stürzt horizon-imp.exe bei "Update>> Planes" ab. Bitte wieder lauffähig machen.>> Bis die neue Version kompiliert ist, reicht's wenn du in den Rules bei> Copper - Non-Copper Clearance was einträgst. Ohnehin sollte da was drin> stehen, damit auch was sinnvolles verwendet wird.
Hallo Lukas,
danke. Damit funktioniert "Update Planes" wieder.
Gruß
Helmut
W.S. schrieb:> Horizon is a free EDA package ...>> Nach Monaten des Schweigens kommt dieses Horizon wieder in die> Diskussion. Na fein, sagt unsereiner sich...>> ..aber wenn man sich mal die zugehörige Seite> "https://github.com/carrotIndustries/horizon"> anschaut, dann landet man in einer hoffnungslos mit LowLevel-Details> überfrachteten Seite.
Links oben auf der Seite gibt's den Punkt Issues...
> ... bei einem Projekt wie ein komplettes EDA-System es> darstellt, braucht es ganz am Anfang ein gut durchdachtes und> schriftlich fixiertes Konzept und die Struktur des Ganzen. Wer das nicht> formulieren will oder kann, der wird unweigerlich scheitern.
Allumfassende, am besten noch perfekte Konzepte? Viel Spaß in der
Realität...
Im besten Fall gibt's genügend Zeit/Geld, um mehrere Iterationen zu
machen, die sich dem annähern
> Also: Es fehlt das Konzept. Mal wieder. Ich hatte dies ja bereits bei> Diptrace angemahnt, später ebenfalls bei Kicad. Aber es ist wohl immer> so bei hochambitionierten Programmierern, daß sie ihr Baby nur nach> ihren eigenen Gesichtspunkten bepflegen, keinen wirklichen Blick für die> eventuellen Anwender haben und auf die Frage nach ihrem Konzept mit> persönlicher Beleidigtheit reagieren.
1. Muss jemand die genannten Programme verwenden?
2. Gibt's Alternativen?
3. Wo ist dann das Problem?
> Also Horizon ist offenbar dediziert NICHT für Windows-Benutzer gedacht.
s.o.
> ...> Auch von angedachten Interfaces zu Dingen, die über den gewöhnlichen> Kram hinausgehen, wie z.B. distributed elements, Feldanalysen usw. kann> man nichts lesen. Jaja, unsereiner wäre durchaus an einem ECAD> interessiert, das wenigstens ansatzweise die Dinge, die man mit Ansoft> oder Sonnet sich gestalten kann, importieren oder wenigstens nachbilden> kann. Aber das wären ja wieder Dinge aus der vernachlässigbaren> Windows-Ecke...
1. Seit wann sind Ansys bzw. Ansoft oder Sonnet Windows-only?
2. "It's far from finished" heißt, zumindest für mich, vielleicht
Alpha-Version. Ob man noch Alpha dazuschreiben muss? Vielleicht gar
nicht so verkehrt...
3. Ist das ganze Open Source und etwas Hilfe bspw. mit Links zu den
Dateiformaten der genannten Systeme oder zu Libraries/Kovertierern, die
damit umgehen können, wären vielleicht nicht schlecht.
4. In einer Alpha-Version würde ich so was nicht implementieren, da
gibt's wichtigeres. Ansonsten siehe 3. und vielleicht einen netten
Feature Request schreiben.
> Nein, Horizon ist keineswegs "a free EDA package", sondern bislang nur> ne Art Fingerübung die so tut, als ob sie sowas wäre. Der einzigen Rat,> den ich hier geben könnte würde lauten: der/die Autoren täten besser,> wenn sie ihre Arbeitskraft einsetzen würden, um Kicad vom Kopf auf die> Füße zu stellen, also dessen Geburtsfehler ausmerzen. Das wäre> zielführender.
Warum? Wenn einem Kicad bspw. nicht gefällt, warum sollte man dann dort
Zeit investieren?
Arc N. schrieb:> Warum? Wenn einem Kicad bspw. nicht gefällt, warum sollte> man dann dort Zeit investieren?
Den allerwenigsten gefällt GAR NICHTS an KiCAD.
Wer aber den Schaltplaneditor von gEDA, den Layouteditor
von KiCAD und die Bauteilverwaltung von Horizon verwenden
will, ist angeschissen.
Sag mal Lukas, hast Du eigentlich schon eine Idee bezüglich Simulation?
Ich habe da leider überhaupt nichts -- das ist auch einer der Gründe
warum ich in den letzten Jahren an meinen Programmen nicht
weitergearbeitet habe.
Mit gEDA war Simulation mit Spice oder GnuCap ja sehr zäh. Ich vermute
mal KiCad und sämtliche kommerziellen Programme unterstützen jetzt
Simulation. Tina-Ti hatte ich mal kurz verwendet, das war schon recht
gut nutzbar. (Leider war das Ergebnis völlig falsch, weil das Modell
eines OP falsch war.)
Ich vermute mal, dass Simulation heute ein entscheidendes Kriterium für
eine EDA Software ist.
Das ist ein gutes Argument. Ich bin auch ehe dafür die Simulation mit
KiCAD weiterzutreiben und dort zu investieren, als noch ein neues
Programm aufzuziehen.
Ich würde das nicht zu sehr in den Vordergrund stellen. Es wäre
natürlich nett, wenn man einen Simulator andocken könnte, aber mal
ehrlich, sowie da ein Mikrocontroller oder sowas im Spiel ist, kannst
du sowieso nie mehr alles simulieren, weil die Gesamtfunktion der
Schaltung massiv von der Software abhängt. Dafür müsste man dann
jeweils wieder Modelle in die Simulation einklinken können.
Da hat es eher Sinn, einzelne Teilbaugruppen gelegentlich zu simulieren.
Simulation ist ohnehin ein weites Feld. Der Anfänger will seinen
Colpitts-Oszillator simulieren, der UHF-Entwickler dagegen wird das
fertige Layout auf einem HF-Material simulieren wollen …
Stefan S. schrieb:> Sag mal Lukas, hast Du eigentlich schon eine Idee bezüglich> Simulation?
Worauf zielt die Frage?
Klassische Schaltungssimulation (konzentrierte Bauelemente)
oder Simulation parasitärer Elemente im Layout?
> Mit gEDA war Simulation mit Spice oder GnuCap ja sehr zäh.
Was bedeutet das?
> Ich vermute mal, dass Simulation heute ein entscheidendes> Kriterium für eine EDA Software ist.
Also irgendwie verstehe ich die Welt nicht mehr... ist
vemutlich eine Altersfrage...
Ich verlange doch von meinem Oszi auch nicht, dass er Kaffee
kocht, Kinderlieder singt, Bratkartoffeln brät und eine
Bandbreite von 1GHz hat.
Wenn ich einen Schaltplan zeichnen will, möchte ich ein
Schaltplanzeichenprogramm nehmen.
Wenn ich ein Layout entwickeln will, möchte ich einen
Layouteditor starten.
Wenn ich simulieren will, starte ich einen Simulator.
Possetitjel schrieb:> Wenn ich simulieren will, starte ich einen Simulator.
Naja, es ist natürlich schon hübsch, wenn man den Schaltplan für
eine Simulation nicht nochmal zeichnen muss, sondern den bereits im
EDA-Tool gezeichneten dafür nehmen kann. Gleiches fürs Layout
bezüglich einer EM-Feld-Simulation.
Aber ich halte das auch eher für ein untergeordnetes Argument. Eine
Simulation steht und fällt ohnehin mit den Modellen.
Possetitjel schrieb:> Wenn ich einen Schaltplan zeichnen will, möchte ich ein> Schaltplanzeichenprogramm nehmen.> Wenn ich ein Layout entwickeln will, möchte ich einen> Layouteditor starten.> Wenn ich simulieren will, starte ich einen Simulator.
full ack!
vor allem ist das schematic für die simulation sicher nicht ident mit
dem für's layout.
73
Jörg W. schrieb:> Possetitjel schrieb:>> Wenn ich simulieren will, starte ich einen Simulator.>> Naja, es ist natürlich schon hübsch, wenn man den Schaltplan> für eine Simulation nicht nochmal zeichnen muss, sondern den> bereits im EDA-Tool gezeichneten dafür nehmen kann. Gleiches> fürs Layout bezüglich einer EM-Feld-Simulation.
Na klar.
Kompatible DATEIFORMATE setze ich eigentlich voraus; notfalls
tut's ein funktionierender Export/Import.
Aber genau DAS ist ja offensichtlich nicht gegeben.
> Aber ich halte das auch eher für ein untergeordnetes Argument.> Eine Simulation steht und fällt ohnehin mit den Modellen.
Naja... ich gehe schon soweit mit, dass Software, die praktisch
anwendbar sein will, auch die in der Praxis auftretenden Arbeits-
abläufe unterstützen muss.
Ich vertrete aber die -- offenbar völlig veraltete -- Meinung,
dass die Software MIR dienen soll, und nicht umgekehrt ich die
Software loben, preisen und ihre Schlingen und Windungen besser
und besser studieren muss.
Jörg W. schrieb:> aja, es ist natürlich schon hübsch, wenn man den Schaltplan für> eine Simulation nicht nochmal zeichnen muss,
Das ist mit Verlaub nicht nur "hübsch" sondern essenziell! Bei einer
größeren Schaltung möchte Ich nicht alles zweimal eingeben. Zumindest
eine Netzliste muss exportierbar sein und dabei müssen vor allem die
leeren, nicht vorhanden Bautteile als dummies mit verdrahtet sein, damit
man sie in der Simulation direkt ersetzen kann.
Hans schrieb:> vor allem ist das schematic für die simulation sicher> nicht ident mit dem für's layout.
Ja.
Und das geht noch weiter. Viele Schaltpläne, die hier auf
µC.net so vorgestellt werden, sehen einfach besch***en aus
und sind eine Zumutung.
Ich habe mal darüber nachgedacht, warum das so oft so ist, und
bin zu dem Ergebnis gekommen, dass der klassische Schaltplan
aus der Zeit der diskreten Bauelemente stammt: Relativ viele
Bauteile, einfache, klar erkennbare Funktion für jedes Bauteil,
wenige Anschlüsse an jedem Bauteil.
Mikrocontroller oder FPGAs sind aber das genaue Gegenteil von
diskreten Bauelementen. Der klassische Schaltplan ist also für
diese Schaltungsteile vielleicht gar nicht die optimale
Darstellungsform.
Wünschenswert wäre vielleicht, dass man auch Daten in
tabellarischer Form (Pinbelegungen z.B.) in die Software
hineinfüttern kann. Aber damit ist natürlich NICHT gemeint,
dass die EDA-Software ein "Spreadsheet-Plugin" bekommt, das
sich selbstverständlich ganz anders bedient als Excel oder
OOCalc und dessen Datenformat selbstverständlich zu nichts
anderem auf der Welt kompatibel ist.
Notwendig wäre, dass Daten, die heutzutage sowieso schon
irgendwo (außerhalb der EDA-Software) anfallen, vernünftig
weiterverarbeitet werden können.
Mar. W. schrieb:> Jörg W. schrieb:>> aja, es ist natürlich schon hübsch, wenn man den Schaltplan>> für eine Simulation nicht nochmal zeichnen muss,>> Das ist mit Verlaub nicht nur "hübsch" sondern essenziell!> Bei einer größeren Schaltung möchte Ich nicht alles zweimal> eingeben.
Genau mein Reden.
Nur muss das auch für die Schaltung gelten, die der Kollege
vor fünf Jahren mit KiCAD entwickelt hat und die ich heute
mit Horizon weiterentwickeln muss.
Jeder Koch hat einerseits Bratpfannen und andererseits das
Schnitzel.
Nur die so moderne und fortschrittliche Software-Branche hält
es für normal, dass man natürlich Meier-Schnitzel nur mit
Meier-Eiern und Meier-Semmelbröseln verfeinern und auch NUR
in Meier-Bratpfannen auf Meier-Herden mit Meier-Gas braten
darf, wobei die Flamme mit Meier-Hölzern angezündet worden
sein muss.
Simulation unmittelbar in horizon will ich in der Tat nicht haben.
Horizon soll in erster Linie ein gutes Programm werden um Schaltpläne zu
zeichnen und damit Boards zu machen. Erstmal nicht mehr. Warum schreit
keiner, dass ERC noch vollständig fehlt, man keine differentiellen
Leitungen routen kann, es keine Thermals in Flächen gibt, oder die
Darstellung von Pad-Namen im Board noch sehr zu wünschen Übrig lässt?
Was ich sagen will: Es mag sinnvoll sein, Simulation in das Tool, mit
dem man auch Boards macht integriert zu haben. Derzeit gibt es aber noch
unzählige andere Baustellen, Simulation wäre dann ein doch sehr
aufwändiges I-Tüpfelchen. Daher spreche ich mich derzeit aktiv gegen
jegliche Art von Simulations-Integration in horizon aus. Siehe auch:
Wenn andere Programme (z.B. KiCad) nachwievor einen Schaltplaneditor
haben, der keine Ahnung von Netzen hat und den Anwender Junctions nach
Gutdünken platzieren lässt, aber schon dabei sind SPICE-Integration zu
entwickeln liegt meines Erachtens der Fokus bei der Entwicklung falsch.
Ja, Standards wären in der Tat schön, doch abgesehen von recht
primitiven Spice-Netzlisten und Gerber gibt es in der Branche nichts
wirklich brauchbares, was auch Anwendung findet.
Possetitjel schrieb:> Wünschenswert wäre vielleicht, dass man auch Daten in> tabellarischer Form (Pinbelegungen z.B.) in die Software> hineinfüttern kann.
Geht schon:
https://github.com/carrotIndustries/horizon/wiki/Working-with-the-Pool-Manager-and-Part-Wizard#create-all-new-part
Verbindungen nicht nur im Schaltplan zu zeichnen ist in der Architektur
schon seit Anfang an vorgesehen, da in Horizon die Netzliste und nicht
der Schaltplan die Primärquelle ist. Wenn z.B. an einem Netz ein Label
hängt, drückt dieses Label nicht etwa dem Netzegment den eingetippten
Namen auf, sondern zeigt eben den Name des Netzes an.
Lukas K. schrieb:> Simulation unmittelbar in horizon will ich in der Tat> nicht haben.
Was bedeutet das? Also: Was soll "unmittelbar in horizon"
bedeuten?
1. Interpretation: "Horizon bringt eigenen Simulator mit".
Naja... also ich weiss nicht, wie KiCAD das tatsächlich macht,
aber wenn die KiCAD-Leute in Anbetracht von gnucap, qucs, Spice,
LTSpice... ihre eigene Numerik schreiben, dann haben sie nicht
mehr alle Tassen im Schrank. Meine Meinung.
Die Numerik komplett neu zu entwickeln, wenn es Simulatoren
mit bereits etablierten und akzeptierten Schnittstellen gibt,
die man integrieren kann, ist komplett dämlich.
2. Interpretation: "Keine Möglichkeit, externen Simulator
auf Knopfdruck aufzurufen".
??? Warum nicht?
Das bekomme ja sogar ich mit Tcl/Tk hin, wenn ich mir Mühe
gebe. Wo ist das Problem?
> Horizon soll in erster Linie ein gutes Programm werden um> Schaltpläne zu zeichnen und damit Boards zu machen. Erstmal> nicht mehr. Warum schreit keiner, dass ERC noch vollständig> fehlt, man keine differentiellen Leitungen routen kann, es> keine Thermals in Flächen gibt, oder die Darstellung von> Pad-Namen im Board noch sehr zu wünschen Übrig lässt?
Weil Du auf technische Details fixiert bist, die vom Standpunkt
eines Selbständigen bzw. einer kleinen Klitsche aus völlig
nebensächlich sind.
> Ja, Standards wären in der Tat schön,
Tja, das sehen wir offenbar etwas verschieden. Meiner
Meinung nach sind Standards im industriellen Zeitalter
und im Zeichen des weltweiten Handels nicht "schön",
sondern eine absolute Notwendigkeit.
Was glaubst Du, wie der Maschinenbau ohne Normteile
und ohne Standards für die technischen Zeichnungen
aussähe?
Richtig: Wie im Mittelalter.
Jetzt weisst Du auch, welche Meinung ich zum Stand der EDA-
Software habe (nicht DEINER EDA-Software, sondern DER EDA-
Software ganz allgemein).
> doch abgesehen von recht primitiven Spice-Netzlisten> und Gerber gibt es in der Branche nichts wirklich> brauchbares, was auch Anwendung findet.
Richtig.
Warum das bei kommerziellen Programmen so ist, ist augen-
scheinlich: Der Wunsch nach "Kundenbindung" bewirkt das.
(Es gibt da einen hübschen Wikipädie-Artikel dazu. Sinn-
gemäßes Zitat: "Die Hersteller von EDA-Software waren erst
nach massiver Intervention durch große Kunden bereit,
Exportschnittstellen in ihrer Software vorzusehen.")
Warum aber machen FOSS-Programmierer, die frei von vielen
Zwängen der kommerziellen Anbieter sind, diesen Scheissdreck
nach?
> Possetitjel schrieb:>> Wünschenswert wäre vielleicht, dass man auch Daten in>> tabellarischer Form (Pinbelegungen z.B.) in die Software>> hineinfüttern kann.>> Geht schon:
Um so besser.
Ändert aber nichts am grundsätzlichen Problem.
> Verbindungen nicht nur im Schaltplan zu zeichnen ist in der> Architektur schon seit Anfang an vorgesehen, da in Horizon> die Netzliste und nicht der Schaltplan die Primärquelle ist.
Ich hatte schon damals herausgelesen, dass Du einige sehr
sinnvolle Ansätze verfolgst, die ich von anderen Projekten
nicht kenne.
Trotzdem sehe ich Dein Projekt wie Baumgartners Stratosphären-
sprung: Ich bewundere die persönliche Leistung aufrichtig --
aber es ist letztlich für mich uninteressant, weil nichts
konkret für mein eigenes Leben, mein eigenes Tun daraus folgt.
Bitte nicht falsch versehen: Das ist keine Kritik an Deinem
Tun oder Deinen Entscheidungen. Es ist Dein Projekt (und
schätzungsweise ein Hobby und kein Broterwerb), und Du bist
völlig frei in Deinem Tun und Lassen.
Meine Worte sind keine Kritik an Dir, sondern sollen nur eine
Erklärung meines Verhaltens sein: Obwohl ich auf der Suche
nach für mich geeigneter EDA-Software bin, habe ich (bis jetzt)
nicht den Eindruck, dass Deine Software für mich in Frage kommt.
Die Schwerpunkte, die Du in Deiner Arbeit setzt, scheinen mir
mit meinen Wünschen in keiner Weise kompatibel.
Hi, ich wollte die aktuelle Version auch mal wieder testen, unter
Xubuntu 16.04. Problem: imp.cpp bricht ab. Zur Info habe ich noch die
Versionen der Abhängokgeiten angehängt. Geclont habe ich heute.
tester@HPi7:~/src/horizon/horizon$ sudo apt install libyaml-cpp-dev
libsqlite3-dev util-linux librsvg2-dev libcairomm-1.0-dev
libepoxy-dev libgtkmm-3.0-dev uuid-dev libboost-dev libzmq5
libzmq3-dev libglm-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
»libboost-dev« ist bereits die neuste Version (1.58.0.1ubuntu1).
»libcairomm-1.0-dev« ist bereits die neuste Version (1.12.0-1).
»libglm-dev« ist bereits die neuste Version (0.9.7.2-1).
»libgtkmm-3.0-dev« ist bereits die neuste Version (3.18.0-1).
»librsvg2-dev« ist bereits die neuste Version (2.40.13-3).
»libsqlite3-dev« ist bereits die neuste Version (3.11.0-1ubuntu1).
»libyaml-cpp-dev« ist bereits die neuste Version (0.5.2-3).
»libzmq3-dev« ist bereits die neuste Version (4.1.4-7).
»libzmq5« ist bereits die neuste Version (4.1.4-7).
»libepoxy-dev« ist bereits die neuste Version (1.3.1-1ubuntu0.16.04.2).
»util-linux« ist bereits die neuste Version (2.27.1-6ubuntu3.3).
»uuid-dev« ist bereits die neuste Version (2.27.1-6ubuntu3.3).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 47 nicht
aktualisiert.
g++ -c -I. -Iblock -Iboard -Icommon -Iimp -Ipackage -Ipool -Ischematic
-Iutil -Iconstraints -g3 -D_USE_MATH_DEFINES -fdata-sections
-ffunction-sections -pthread -std=c++11 -pthread -I/usr/include/uuid
-I/usr/include/gtkmm-3.0 -I/usr/lib/x86_64-linux-gnu/gtkmm-3.0/include
-I/usr/include/atkmm-1.6 -I/usr/include/gtk-3.0/unix-print
-I/usr/include/gdkmm-3.0 -I/usr/lib/x86_64-linux-gnu/gdkmm-3.0/include
-I/usr/include/giomm-2.4 -I/usr/lib/x86_64-linux-gnu/giomm-2.4/include
-I/usr/include/pangomm-1.4
-I/usr/lib/x86_64-linux-gnu/pangomm-1.4/include
-I/usr/include/glibmm-2.4 -I/usr/lib/x86_64-linux-gnu/glibmm-2.4/include
-I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0
-I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0
-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0
-I/usr/include/gio-unix-2.0/ -I/usr/include/mirclient
-I/usr/include/mircore -I/usr/include/mircookie -I/usr/include/cairo
-I/usr/include/pango-1.0 -I/usr/include/harfbuzz
-I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo
-I/usr/include/cairomm-1.0
-I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include
-I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include
-I/usr/include/cairo -I/usr/include/librsvg-2.0
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12
-I/usr/include/cairo -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1
-I/usr/include/freetype2 -I/usr/include/libpng12 -MP -MMD -pthread -Wall
-Wshadow -std=c++14 -O3 imp/imp.cpp -o imp/imp.o
imp/imp.cpp: In member function ‘bool
horizon::ImpBase::handle_click(GdkEventButton*)’:
imp/imp.cpp:498:20: error: ‘class Gtk::Menu’ has no member named
‘popup_at_pointer’
context_menu->popup_at_pointer((GdkEvent*)button_event);
^
imp/imp.cpp:516:19: error: ‘class Gtk::Menu’ has no member named
‘popup_at_pointer’
context_menu->popup_at_pointer((GdkEvent*)button_event);
^
Makefile:419: die Regel für Ziel „imp/imp.o“ scheiterte
make: *** [imp/imp.o] Fehler 1
Ich baue grade openSUSE rpms, Tumbleweed geht schon, leap 42.3 baut
gerade, und auch für Raspi (ARM). Unter openSUSE können die Binaries mit
1
zypper ar https://download.opensuse.org/repositories/home:/frank_kunz/openSUSE_Tumbleweed/ horizon_repo
2
zypper ref
3
zypper in horizon
installiert werden. Oder einfach yast nehmen. Zudem versuche ich mich an
einem Appimage. Damit soll es möglich sein das Programm auf (nahezu)
beliebigen Distros auszuführen, also so was ähnliches wie das Windows
Package für Linux. Mal sehen ob es klappt.
Die rpm Packages enthalten nur die kompilierten Binaries, der Pool und
das Beispielprojekt muss separat von github geladen werden (wie im wiki
beschrieben).
Gruß,
Frank
ps: Benutzung auf eigene Gefahr.
tester schrieb:> Brauche wohl ein Ubuntu 17.04 oder 17.10...
Ja ist natürlich etwas schade dass es für dich nun nicht funktioniert
hat.
Aber GTK 3.20 oder 3.22 sollte man schon haben, wenn man denn testen
will. Viele Dinge waren vor 3.20 unspezifiziert, und 3.22 ist ja wohl
nun auch schon seit ca. einem Jahr erhältlich und das ist ja praktisch
auch die Langzeitversion, bis dann GTK4 kommt.
Einen Hinweis welche GTK Version nötig ist hatte ich auf Lukas Seite so
auf den ersten Blick auch nicht gesehen.
Mar. W. schrieb:> Das ist ein gutes Argument. Ich bin auch ehe dafür die Simulation mit> KiCAD weiterzutreiben und dort zu investieren, als noch ein neues> Programm aufzuziehen.
Eine Simulation die aus dem PCB-Programm kommt und nicht alle benötigten
SPICE-Modelle bereits kennt hat verloren. Die Pin-Reihenfolge in einem
SPICE-Modell(subcircuit) hat überhaupt nichts mit der Pin-Reihenfolge
des realen Bauteils zu tun. Selbst die Anzahl der Pins ist
unterschiedlich. Ohne dieses Wissen, kann das PCB-Programm keine
vernünftige Netzliste für SPICE generieren. Man müsste bereits beim
Aufsetzen der Symbole im Schaltplan-Programm auch die Pins des
SPICE-Modells definieren. Daran scheitern schon die meisten die wenig
über SPICE wissen. So etwas kann man z. B. in der Software von Cadence
und Mentor machen. KiCad hat dazu vermutlich überhaupt nichts
vorgesehen.
Lukas sollte die komplette Zeit in das PCB-Programm, den
Schaltplaneditor und in den Bauteileeditor investieren und besser keine
Zeit für Simulationstools investieren.
Lukas K. schrieb:> Warum schreit keiner, dass ERC noch vollständig fehlt,
Weil ein gut durchlaufender ERC aus Sicht eines Anwenders oft mehr
Arbeit macht als er Nutzen bringt.
Was ist denn ein Pin eines Steckverbinders, ist es eine Signalquelle,
eine Signalsenke, oder ist es vielleicht eine daran zugeführte
Versorgungsspannung? Ist ein Pin an einem Mikrocontroller eine
Signalquelle oder -senke, oder vielleicht beides?
Solange ein 7400 zwei Eingänge und einen Ausgang pro Gatter hatte, war
die Welt da noch einfach.
Wichtig ist, dass man ordentlich erkennt, ob ein Bauteilpin auch
tatsächlich an die Verbindung angeschlossen worden ist oder nicht. Aus
der Zeit, in der ich mal mit Eagle gearbeitet habe, habe ich noch in
Erinnerung, dass man das dort nicht richtig gesehen hatte und es einem
daher passieren konnte, dass man ein „in der Luft hängendes“ Pin
produziert hat. (Das ist aber sehr lange her, ich hoffe mal, dass
neuere Eagle-Versionen da besser geworden sind.) Das war eigentlich
einer der wesentlichen Punkte, wo der ERC mal hilfreich war, einem die
gar nicht angeschlossenen Pins zu benennen.
Das mit den Konstruktoren ist repariert, kommt wohl davon, wenn man nur
auf Arch Linux und MSYS2 baut, die beide doch recht "bleeding edge"
sind. Mit gcc 7.2 und clang 5 baute es auch schon so...
tester schrieb:> Es werden wohl noch mehr Funktionen von >gtkmm3.18 verwendet:> GtkFileChooserNative ist erst ab 3.20 dabei
Uff, ich hatte erst vor kurzem alle Filechooser auf GtkFileChooserNative
umgebaut, damit die Windows-Fraktion auch ihren gewohnten "Datei
Öffnen"-Dialog bekommt. Gtk 3.20 ist jetzt auch schon über 1 Jahr alt...
Du könntest mal versuchen, den commit bei dir zu reverten:
https://github.com/carrotIndustries/horizon/commit/28779193432251564b054de65118561d3575ce84
Re DRC: Mir Schwebte vor im Zuge von DRC zu Implementieren, dass man die
elektrische Richtung von Pins im Schaltplan überschreiben kann, eben für
Mikrocontroller und Steckverbinder. Steht und fällt natürlich mit der
Sorgfalt und Motivation des Anwenders...
Frank K. schrieb:> Ich baue grade openSUSE rpms, Tumbleweed geht schon, leap 42.3 baut> gerade, und auch für Raspi (ARM).
Schick, auch wenn es meines Erachtens noch ein wenig zu früh für
RPM-Pakete ist, aber jeder so wie er will :) Horizon wird wahrscheinlich
nicht auf dem Raspberry PI laufen, da der Renderer OpenGL 3 braucht.
Jörg W. schrieb:> Wichtig ist, dass man ordentlich erkennt, ob ein Bauteilpin auch> tatsächlich an die Verbindung angeschlossen worden ist oder nicht.
Siehe Anhang, sollte deutlich genug sein ;) Eagle, KiCad und bestimmt
einige andere Programme stellen Verbindung im Schaltplan her, indem Pin
und Linie auf dem selben Punkt liegen. Damit öffnet man natürlich
solchen Problemen Tür und Tor. Bei horizon kann das prinzipiell nicht
auftreten, da die Linie "weiß", mit welchen Pin von welchem Symbol sie
verbunden ist.
Lukas K. schrieb:>> Wichtig ist, dass man ordentlich erkennt, ob ein Bauteilpin auch>> tatsächlich an die Verbindung angeschlossen worden ist oder nicht.>> Siehe Anhang, sollte deutlich genug sein ;) Eagle, KiCad und bestimmt> einige andere Programme stellen Verbindung im Schaltplan her, indem Pin> und Linie auf dem selben Punkt liegen. Damit öffnet man natürlich> solchen Problemen Tür und Tor.
Naja, solange da so ein kleines Viereck ist, welches beim Anschließen
der Linie verschwindet, funktioniert das durchaus (so kenne ich es von
BAE, so macht es auch KiCad). Bei Eagle erinnere ich mich dran, dass
es da irgendwie (damals) kein derartiges Kennzeichen gab, damit war
das immer problematisch.
> Bei horizon kann das prinzipiell nicht auftreten, da die Linie "weiß",> mit welchen Pin von welchem Symbol sie verbunden ist.
Naja, aber irgendwoher muss die Linie das ja "wissen", also irgendwann
muss der Benutzer sie das erste Mal mit dem Pin verbunden haben. Da
ist ja der springende Punkt.
Ich habe früher mit Protel Advanced Schematic einiges gemacht, da gab es
eine direkte Integration des PLD-Entwurfs mit Verbindung des Pinnings
zwischen PLD und PSB, Übergabe an das design tool / den PLD-Compiler und
vor allem einen Netzlisten-Export im SPICE-Format. Simuliert wurde das
in MicroSIM pSPICE.
Sicher hat es nicht für alles ein Modell gegeben und nicht bei jeder
Schaltung macht eine Simulation Sinn, aber der Vorteil eines
integrierten tools mit Schnittstellen an die einschlägigen Simulatoren
ist sehr vorteilhaft im Sinne eines Master-Designs. Du konntest also die
digitale Schaltung komplett in einem tool bauen und Dich dann
entscheiden, was davon ins PLD gezogen wird. Unschätzbar nützlich, um
vorhandene Digitalschaltungen zu importieren und auf PLDs zu bringen.
Das war der Stand Mitte/Ende der 90er!
Etwas später wurde dann MicroSIM von Orchad gekauft und die haben ihr
eigenes SCH drübergestülpt, allerdings ohne einen PLD Entwurf. Parallel
ist Protel in Altium aufgegangen, wieder ohne PLD oder gar FPGA tool. Ab
da haben sich auch die FPGA tools losgelöst und verselbständigt und ihre
eigenen Editoren gehabt. Ich erinnere mich noch gut an mein erstes
Xilnx4000 design.
Possetitjel schrieb:> Mikrocontroller oder FPGAs sind aber das genaue Gegenteil von> diskreten Bauelementen. Der klassische Schaltplan ist also für> diese Schaltungsteile vielleicht gar nicht die optimale> Darstellungsform.
Da bin Ich ganz bei Dir und das propagieren FPGA-Entwickler schon seit
einer Dekade! FPGA Entwicklung passiert 1 Abstraktionsebene und damit
mindestens einen Layer weiter oben als der Schaltplan. Von daher sind
Schaltplantools immer eine Beschränkung.
> Wünschenswert wäre vielleicht, dass man auch Daten in> tabellarischer Form (Pinbelegungen z.B.) in die Software> hineinfüttern kann.
Genau das passiert auch. Mentor's HDL-Designer unterstützt das z.B. -
nennt sich "interface based design", man beginnt mit den Ports. Leider
ist das nicht integral in beide Richtungen mit der Entity-Verwaltung
verknüpft.
Da bräuchte man schon was anderes.
Da ist Simulink z.B. weiter, indem es alle denkbaren Blöcke, wie C,
embedded MATLAB / VHDL jeweils als Design halten kann. Leider hat das
wieder andere Einschränkungen.
Lukas, ich hatte gestern abend auch mal versucht es zu kompilieren.
Leider lässt sich bei mir derzeit zmqpp wegen
https://bugs.gentoo.org/628200
nicht installieren. Ich werde demnächst da mal nachfragen und es dann
später erneut versuchen.
Stefan S. schrieb:> Lukas, ich hatte gestern abend auch mal versucht es zu kompilieren.>> Leider lässt sich bei mir derzeit zmqpp wegen>> https://bugs.gentoo.org/628200>> nicht installieren. Ich werde demnächst da mal nachfragen und es dann> später erneut versuchen.
Das sind die falschen C++-Bindings. Ich brauche nur die zmq.hpp aus
https://github.com/zeromq/cppzmq Bei Arch ist die schon im zeromq-Paket
mit drin.
Weiter vorne im Thread hatte ja schonmal jemand bemängelt, dass keine
Binary-Pakete verfügbar sind.
Mach bitte nicht den Fehler wie viele andere OSS Entwickler, dass die zu
sehr auf die Inputs von anderen Entwicklern geben, anstatt die
Anwender von vorneherein im Focus zu haben.
Ein potentieller Anwender braucht aber niederschwelligen Zugang zu dem
Programm, indem er sich einfach ein Binärpaket ziehen kann.
GitHub bietet Integration von TravisCI, etc., da kann man leicht
automatische Builds und Bereitstellung als "Releases" (im Github-Sinne)
realisieren.
Tu deiner tollen Entwicklungsarbeit diesen Gefallen.
Lukas K. schrieb:> Das sind die falschen C++-Bindings.
Ach.
Erfolgreich installiert hatte ich schon
net-libs/zeromq-4.2.2-r2:0/5::gentoo
und
net-libs/cppzmq-0_pre150606::gentoo
Aber damit bekomme ich
1
imp/imp.cpp: In constructor ‘horizon::ImpBase::ImpBase(const string&)’:
2
imp/imp.cpp:24:42: error: no matching function for call to ‘zmq::socket_t::connect(std::__cxx11::basic_string<char>&)’
imp/imp.cpp:645:1: error: expected ‘}’ at end of input
23
}
24
^
25
imp/imp.cpp: In constructor ‘horizon::ImpBase::ImpBase(const string&)’:
26
imp/imp.cpp:645:1: error: expected ‘)’ at end of input
27
imp/imp.cpp:645:1: error: expected ‘}’ at end of input
28
imp/imp.cpp:645:1: error: expected ‘}’ at end of input
29
imp/imp.cpp: At global scope:
30
imp/imp.cpp:645:1: error: expected ‘}’ at end of input
31
make: *** [Makefile:419: imp/imp.o] Error 1
Deshalb dachte ich, dass vielleicht net-libs/zmqpp-4.1.2::gentoo fehlt,
welches ich nicht installieren konnte.
Mit c++ Fehlermeldungen habe ich so meine Probleme, was da z.B. bei CGAL
kam war für mich nicht nachvollziehbar.
Aber ich will dich nicht von der Arbeit abhalten, ich habe im moment eh
nicht die Zeit mich mit Horizon näher zu beschäftigen.
Stefan S. schrieb:> net-libs/cppzmq-0_pre150606::gentoo
In dieser doch recht alten Version ist connect noch nicht für
std::string überladen, das kam erst in diesem commit:
https://github.com/zeromq/cppzmq/commit/34c8e4395c94d34a89bbeaaf2b8f9c94a8293c84
Da musst du wohl den Maintainer anstupsen, dass der das mal
aktualisiert...
me@example.com schrieb:> Weiter vorne im Thread hatte ja schonmal jemand bemängelt, dass keine> Binary-Pakete verfügbar sind.
Für Windows gibt es welche, siehe wiki. Bei den Linuxen scheitert's ja
mehr daran, dass einige Distros zu alte Versionen von Abhängigkeiten
mitbringen, da helfen auch Binärpakete nicht viel.
Lukas K. schrieb:> tester schrieb:>> Es werden wohl noch mehr Funktionen von >gtkmm3.18 verwendet:>> GtkFileChooserNative ist erst ab 3.20 dabei> Uff, ich hatte erst vor kurzem alle Filechooser auf GtkFileChooserNative> umgebaut, damit die Windows-Fraktion auch ihren gewohnten "Datei> Öffnen"-Dialog bekommt. Gtk 3.20 ist jetzt auch schon über 1 Jahr alt...
Das war jetzt eher ein Feedback und keine Kritik. Ich finde es ja toll,
dass du so ein Projekt stemmst und weiter machst. Feedback halt nur,
dass z.Zt. die Benutzer von 16.04 LTS außen vor sind, da ich jetzt keine
sinnvolle Möglichkeit gefunden habe, gtk 3.22 parallel zu installieren.
Und das ganze gtk Subsystem auszutauschen ist mir zu riskant.
Mein Hauptrechner hat eigentlich immer die LTS drauf, mein Hauptnotebook
z.Zt. Mint 18.2. Leider ist das auch nicht aktuell genug. Ich habe noch
ein Core2Duo mit 2 GB, denn könnte ich mal updaten, evtl. sogar mal
Arch. Aber meine beiden Hauptrechner (beide i7, einmal Desktop und
einmal Notebook, da will ich nicht unbedingt viel mit dem Core2Duo
rummachen) sind halt im Moment nicht in der Lage horizon zu kompilieren.
Gut ich könnte die Windows Version von horizon probieren, aber
eigentlich will ich das nicht... Linux ist halt meine
Hauptarbeitsplatform.
tester schrieb:> Lukas K. schrieb:>> tester schrieb:>>> Es werden wohl noch mehr Funktionen von >gtkmm3.18 verwendet:>>> GtkFileChooserNative ist erst ab 3.20 dabei>> Uff, ich hatte erst vor kurzem alle Filechooser auf GtkFileChooserNative>> umgebaut, damit die Windows-Fraktion auch ihren gewohnten "Datei>> Öffnen"-Dialog bekommt. Gtk 3.20 ist jetzt auch schon über 1 Jahr alt...>> Das war jetzt eher ein Feedback und keine Kritik. Ich finde es ja toll,> dass du so ein Projekt stemmst und weiter machst. Feedback halt nur,> dass z.Zt. die Benutzer von 16.04 LTS außen vor sind, da ich jetzt keine> sinnvolle Möglichkeit gefunden habe, gtk 3.22 parallel zu installieren.> Und das ganze gtk Subsystem auszutauschen ist mir zu riskant.
Probier mal den Patch im Anhang anzuwenden, dann sollte es auch mit Gtk
3.18 funktionieren. Oder du wartest einfach bis zum nächsten LTS, dann
ist horizon auch schon weiter ;)
Selbiges Problem habe ich auch, mit der
34fc55078949d3b2989deb5abf0b0c27fe355a82 ging es noch.
Gruß,
Frank
Edit: Hatte ich, mit 8e1f6aa geht kompilieren wieder.
Hallo Lukas,
ich habe Probleme beim Leitungverlegen mit Vias.
Ich bekomme es gerade nicht (mehr) hin an einem Stück Leitung - via -
Leitung zu ziehen..
x Leitung ziehen
v Via setzen
2 auf Lage 2 gehen
Wie jetzt auf Lage 2 weiter machen?
Bei mir fliegt mit LMB oder RMB das Via weg. Das wars dann leider.
Gruß
Helmut
Possetitjel schrieb:> Hältst Du es für denkbar, dass Deine Ansicht darüber, was ein> "free EDA package" können muss, NICHT die einzig richtige ist?
Nö.
> Habe ich das richtig verstanden: Es wäre das Beste für Lukas,> wenn er die Software programmieren würde, die W.S. gerne haben> will?
Richtig.
Sowas ist nicht wahlfrei - im Gegensatz zu persönlichen Vorlieben, also
ob man z.B. Brünette mehr mag als Blondinen.
Hier geht's um Softwarequalität und Benutzbarkeit - und die richtet sich
danach, wie die Anwender damit klarkommen und was sie damit alles machen
können ohne an die Grenzen zu stoßen. Also am tragfähigen und richtig
umgesetzten Konzept. Das ist ein absolutes MUSS, sonst wird bis zu
Lukas' Rente nix rechtes draus.
Mich graust es bei der Gelegenheit lesen zu müssen, daß Lukas selber
schreibt, daß er kein Konzept hat, weil dieses ja mit der Zeit veralten
würde.
Arc N. schrieb:> Warum? Wenn einem Kicad bspw. nicht gefällt, warum sollte man dann dort> Zeit investieren?
Weil dort bereits einiges an Konzept und Software vorhanden ist,
selbiges jedoch noch immer auf falsch gelegten Fundamenten steht.
Es wäre allerdings abzuwägen, wieviel Arbeit inzwischen nötig ist, um
Kicad in die richtige Richtung zu bringen und ob es nicht evtl.
einfacher ist, selbiges einfach abzureißen und die Baugrube neu
auszubaggern. Das ist eventuell dann doch ein Grund, was Neues
aufzuziehen - aber dazu braucht's mehrere Leute oder nen fetten Sponsor
- und natürlich das festgenagelte Konzept, sonst ist keine
Zusammenarbeit möglich und jeder macht, was ihm grad einfällt.
Possetitjel schrieb:> Ich vertrete aber die -- offenbar völlig veraltete -- Meinung,> dass die Software MIR dienen soll, und nicht umgekehrt ich die> Software loben, preisen und ihre Schlingen und Windungen besser> und besser studieren muss.
Nun, ganz meine Ansicht. In diesem Punkt treffen wir uns.
Lukas K. schrieb:> Warum schreit> keiner, dass ERC noch vollständig fehlt, man keine differentiellen> Leitungen routen kann, es keine Thermals in Flächen gibt, oder die> Darstellung von Pad-Namen im Board noch sehr zu wünschen Übrig lässt?
Ganz einfach: Weil derartige Details einer späteren Maneuverkritik
vorbehalten sind. Hier geht es (zumindest mir) zu allererst um die
wirkliche Basis des Ganzen. Wenn man die systematische Herangehensweise
nicht einhält, geht es einem wie Kicad: katastrophale
Bibliotheks-Konzeption, keine Annotationen vor oder zurück, aber nen
Push&Shove-Router basteln wollen.
Lukas K. schrieb:> Wenn andere Programme (z.B. KiCad) nachwievor einen Schaltplaneditor> haben, der keine Ahnung von Netzen hat und den Anwender Junctions nach> Gutdünken platzieren lässt, aber schon dabei sind SPICE-Integration zu> entwickeln liegt meines Erachtens der Fokus bei der Entwicklung falsch.
Sag ich doch! Sag ich doch die ganze Zeit.
Ein wirklich gutes Konzept hingegen hält locker 20 Jahre. Man sieht das
bei Eagle, wo selbst krassesten Einflußnahmen von Farnell und AD es
schwer haben, das Programm kaputt zu machen. OK, AD hat es auf
nichttechnische Weise jetzt wohl geschafft.
Aber das ist ne andere Baustelle.
Laß dir das Konzept von Eagle ruhig nochmal ganz gründlich durch den
Kopf gehen: die innere Datenbank, die Skript/Kommandozeile, die
Tool-Funktionalität. Ja, das sind alles keine Dinge, die an der
sichtbaren Oberfläche glänzen, aber sie sind wesentlich für die gute
Funktionalität.
W.S.
W.S. schrieb:> Weil dort bereits einiges an Konzept und Software vorhanden ist,> selbiges jedoch noch immer auf falsch gelegten Fundamenten steht.
Wenn du das logisch zu Ende denkst, würde es bedeuten, dass man das,
was da ist, sowieso komplett einreißen müsste, um eben neue Fundamente
zu setzen.
Was ist da eigentlich dann der Unterschied zu einem neuen Programm?
Ach ja, wenn schon neues Programm, dann könnte man ihm ja auch einen
neuen Namen geben … wie wär's eigentlich mit "Horizon"?
:-))
Helmut S. schrieb:> Bei mir fliegt mit LMB oder RMB das Via weg. Das wars dann leider.
Ah, das passiert wenn du in den Via-Rules keine Regel oder keine Regel
mit Padstack hast. Du solltest mindestens eine Via-Regel haben, die auf
alles matcht, so wie im Anhang.
Es ist mir nun endlich gelungen mein erstes AppImage zu erstellen :-)
Es kann hier herunter geladen werden:
https://download.opensuse.org/repositories/home:/frank_kunz/AppImage/
dann ausführbar machen und starten. Ich konnte es nicht auf
verschiedenen Linux Distributionen testen daher keine Garantie dass es
überall startet.
Das AppImage ist dazu gedacht um horizon testen zu können ohne die
Software selber kompilieren zu müssen, also nicht für den
Produktiveinsatz.
Gruß,
Frank
Hallo Lukas,
danke es klappt jetzt. Ich denke so ungefähr habe ich den "Dreh" jetzt
heraus.
Mist, gerade ESC gedrückt und "alles" ist weg. Ich glaube ich sollte
diese ESC-Taste wegmachen. :-)
Bitte diese Taste entschärfen. Die macht mehr kaputt als sie hilft.
Gruß
Helmut
W.S. schrieb:> Possetitjel schrieb:>> Hältst Du es für denkbar, dass Deine Ansicht darüber,>> was ein "free EDA package" können muss, NICHT die einzig>> richtige ist?>> Nö.
Naja, an Selbstbewusstsein mangelt es Dir jedenfalls
nicht... :)
>> Habe ich das richtig verstanden: Es wäre das Beste für>> Lukas, wenn er die Software programmieren würde, die W.S.>> gerne haben will?>> Richtig.> Sowas ist nicht wahlfrei - im Gegensatz zu persönlichen> Vorlieben, also ob man z.B. Brünette mehr mag als Blondinen.
Doch -- aber auf einer anderen Ebene.
> Hier geht's um Softwarequalität und Benutzbarkeit - und die> richtet sich danach, wie die Anwender damit klarkommen [...]
Ja -- aber wo hat Lukas proklamiert, dass Du seine Software
anwenden können sollst?
Solange Lukas der einzige maßgebliche Anwender ist, ist seine
Ansicht bindend. Das muss weder Dir noch mir gefallen, aber
das ist einfach Fakt.
> Mich graust es bei der Gelegenheit lesen zu müssen, daß> Lukas selber schreibt, daß er kein Konzept hat, weil> dieses ja mit der Zeit veralten würde.
Naja ... ICH würde es auch anders machen. Lukas macht es
eben so.
Ich stimme Dir ja in der Sache zu -- aber das alles wird
erst dann interessant, wenn Lukas explizit erklärt, dass
seine Software für die Benutzung durch andere Leute gedacht
ist.
In seinem Vortrag gibt er als Motivation nur an: IHM
gefiel die existierende Software nicht, und deshalb hat
er angefangen, seine eigene zu schreiben. Da ist keine Rede
davon, dass Horizon auch FÜR ANDERE LEUTE irgendwie nützlich
und zweckmäßig sein soll.
> Es wäre allerdings abzuwägen, wieviel Arbeit inzwischen> nötig ist, um Kicad in die richtige Richtung zu bringen> und ob es nicht evtl. einfacher ist, selbiges einfach> abzureißen und die Baugrube neu auszubaggern.
Ich denke, dass diese Radikalität der falsche Ansatz ist.
Die Welt ist nicht schwarz/weiss.
> - und natürlich das festgenagelte Konzept,
Konzept: Ja.
Festgenagelt: Nein.
Das Konzept sollte das Rückgrat des Ganzen sein: Tragfähig,
aber dennoch flexibel.
Das kann man nicht "vorher" ein für alle mal festlegen;
das ist ein "moving target".
> sonst ist keine Zusammenarbeit möglich und jeder macht,> was ihm grad einfällt.
Hmm. Das kenne ich anders.
> Ganz einfach: Weil derartige Details einer späteren> Maneuverkritik vorbehalten sind. Hier geht es (zumindest> mir) zu allererst um die wirkliche Basis des Ganzen.
Ja.
Der Punkt ist: Ich vermute, dass Lukas und Du die "wirkliche
Basis des Ganzen" an völlig verschiedenen Stellen seht.
Für mich wäre entscheidend, ob die Software für den Einsatz
in einem Kleinunternehmen geeignet ist. Ausgangspunkte wären
der Datenfluss und die Arbeitsabläufe.
Konnektivität nach außen ("Interoperabilität") wäre für mich
viel wichtiger als jeder Komfort innerhalb der Software.
> Ein wirklich gutes Konzept hingegen hält locker 20 Jahre.
Ich fürchte, Programmierer und Anwender verstehen unter
"Konzept" VÖLLIG unterschiedliche Dinge. Ich glaube, dass
hier das Grundübel liegt.
Helmut S. schrieb:> Bitte diese Taste entschärfen. Die macht mehr kaputt als sie hilft.
In der aktuellen Version tut nun ESC genau dasselbe wie Rechtsklick in
Tools.
Lukas K. schrieb:> Helmut S. schrieb:>> Bitte diese Taste entschärfen. Die macht mehr kaputt als sie hilft.>> In der aktuellen Version tut nun ESC genau dasselbe wie Rechtsklick in> Tools.
Hallo Lukas,
danke habe es gleich ausprobiert. So gefällt mir die Funktion von ESC.
Die nun mögliche Änderung der Farbe der Lagen und die Wahl zwischen
Umrandung, schraffiert und gefüllt gefällt mir.
Ist es beabsichtigt, dass beim verlegen von Leitungen die Zählweise 1
top, 2 bot, 3 inner-1 und 4 inner-2 ist? Ich habe damit kein Problem.
Gruß
Helmut
Helmut S. schrieb:> Ist es beabsichtigt, dass beim verlegen von Leitungen die Zählweise 1> top, 2 bot, 3 inner-1 und 4 inner-2 ist? Ich habe damit kein Problem.
Jep, das war so beabsichtigt, damit man Top und Bottom immer gleich
bequem und schnell erreichen kann.
Hallo Lukas,
ich würde gerne mal im PCB die Hintergrundfarbe auf schwarz stellen.
Kann ich das in einer Config-Datei einstellen oder ist das hart kodiert?
Gruß
Helmut
Helmut S. schrieb:> Hallo Lukas,>> ich würde gerne mal im PCB die Hintergrundfarbe auf schwarz stellen.> Kann ich das in einer Config-Datei einstellen oder ist das hart kodiert?>> Gruß> Helmut
Das ist momentan hardcoded.
War nur eine Frage der Zeit, bis sich das jemand wünscht. Ich hab' mir
das auch schon gelegentlich gewünscht, war bis jetzt aber immer zu faul
das zu implementieren. Im EEVBlog-Forum wünschte man sich auch noch
einstellbare Tastenkürzel.
Wird so langsam wohl mal Zeit, dass der interaktive Manipulator einen
Einstellungsdialog und Config-Datei bekommt...
Lukas K. schrieb:> Helmut S. schrieb:>> Hallo Lukas,>>>> ich würde gerne mal im PCB die Hintergrundfarbe auf schwarz stellen.>> Kann ich das in einer Config-Datei einstellen oder ist das hart kodiert?>>>> Gruß>> Helmut>> Das ist momentan hardcoded.> ...> War nur eine Frage der Zeit, bis sich das jemand wünscht.
Hallo Lukas,
Ich wünsche mir die Möglichkeit eine schwarzen Hintergrund zu haben. Ich
finde den blauen Hintergrund anstrengend.
Außerdem wünsche ich mir die die Möglichkeit Punkte statt '+' für das
Grid zu wählen.
Der erste Punkt mit dem schwarzen Hintergrund wäre mir jetzt erstmal
wichtiger als der mit den Gridpunkten.
Gruß
Helmut
Helmut S. schrieb:> Ich wünsche mir die Möglichkeit eine schwarzen Hintergrund zu haben. Ich> finde den blauen Hintergrund anstrengend.
Du verwechselst das hier womöglich mit einem Wunschkonzert? Was Lukas
sich wünscht ist wahrscheinlich eher konstruktive Mitarbeit -- muss ja
nicht gleich perfekter C++ Code sein, ein paar gute, ausformulierte
Ideen und Algorithmen könnten wir auch gebrauchen...
Stefan S. schrieb
> Du verwechselst das hier womöglich mit einem Wunschkonzert?
Ich finde die Tester und Anwender sollten auch ihre Erfahrungen und
Wünsche einbringen dürfen. Natürlich habe ich erst mal kein Problem,
wenn Lukas seiner Vision die er für dieses Programm hat treu bleibt.
Ja gut, ich sollte in der Tat auch nicht für Lukas sprechen...
Allerdings, bevor Dinge wie Farbwünsche wirklich Sinn machen sind wohl
noch einige Tausend Stunden Arbeit nötig. Und Du hattest ja noch einige
andere Wünsche geäussert.
Was meinst Du Helmut, sollte man Bauteile tatsächlich in einer Datenbank
verwalten, oder doch besser als einzelne Dateien? Die Frage stelle ich
mit gerade, da ich die Kompatibilität mit dem gEDA/PCB Format wohl
aufgeben werde.
Und dann ist da natürlich die Frage, wie man Bauteile am besten
definiert. Wie bei gEDA, wo alles mit einem Symbol startet, dem man dann
u.a. den Footprint hinzufügt -- das gefiel mir nie so recht.
Momentan denke ich an etwas, wo man mit den "Pins" beginnt, also etwa
"VCC", "VEE", "+", "-", "Out" für einen OP. Dann irgendein Mapping um
die Pins auf Schaltplansymbole und Footprints abzubilden., wobei
natürlich Symbol- und Footprint-Varianten möglich sind. Etwa auch
Symbole mit und ohne Power Pins.
Ah -- Horizon hat gerade erfolgreich zuende kompiliert, hat aber ein
paar Minuten dedauert. Mal sehen ob ich es starten kann.
Jörg W. schrieb:> Wenn du das logisch zu Ende denkst, würde es bedeuten, dass...
Tja. Irgendwann ist quasi der PONR überschritten - jedenfalls bei der
Fliegerei. Auch bei C sieht man das deutlich. Ich hatte das bei Kicad
schon vor geraumer Zeit angemahnt, denk mal an die ewigen Diskussionen
mit Bernd Wiebus, der noch immer nicht einsehen will, daß man in
Schaltplänen logische Symbole hat und nicht Abbilder von DIL-Gehäusen
und der partout nicht einsehen will, daß die Konsistenz zwischen SCH und
BRD sowie Symbolen und Footprints was ganz Essenzielles ist. Kann jeder
nachlesen in der Historie dieses Boards.
Aber gehe du mal lieber nicht einfach nur mal so mit "Wenn..Dann"-Sätzen
an das Problem heran. Womöglich kann man ne Menge mittleren Zeuges grad
bei Kicad durchaus retten - aber dazu müßte man die Nase tief in die
Quellen stecken - und ich tu's nicht, ich hab ja Eagle. Andererseits
hat man durchaus ein Gefühl von Verantwortung dahingehend daß man den
Leuten, die grad dabei sind Bockmist zu bauen, der hinterher nur noch
schwer bis garnicht korrigierbar ist, SAGEN muß, daß sie grad Bockmist
bauen. OK, manche fühlen sich dabei in ihrer Genialität auf den Schlips
getreten - aber da muß unsereiner halt durch.
W.S.
Possetitjel schrieb:> Ich fürchte, Programmierer und Anwender verstehen unter> "Konzept" VÖLLIG unterschiedliche Dinge. Ich glaube, dass> hier das Grundübel liegt.DAS ist eigentlich schon seit langem völlig klar und eigentlich auch
jedermann bekannt. Geht mir im Prinzip als Programmierer und Anwender
auch so: Die Sichtweise als Programmierer unterscheidet sich diametral
von der Sichtweise des Anwenders. Und ganz besonders dann, wenn die
Logiken auseinanderfallen. Siehe die Programmiersprache C oder der
"WISSENSCHAFTLICHE" Sozialismus. Wenn man die Fundamente erstmal schief
und falsch gelegt hat, kann man ganz wunderbar ein ganz schiefes und
falsches, aber in sich konsistentes und schein-logisches Gebäude drauf
errichten. Als Anwender (oder Bewohner) sieht man das anschließend sehr
sehr SEHR viel anders.
Was meinst du, weswegen ich hier so penetrant darauf herumhacke daß es
allen anderen graust, zu allererst ein wirklich tragfähiges Konzept
auszuarbeiten und schriftlich zu fixieren? Das ist überhaupt kein Spaß!
W.S.
Und es läuft, Lukas! Ich sehe es mir dann in den nächsten Wochen mal
genauer an.
Ich bin gestern übrigens mal angefangen meinen Schaltplaneditor von Ruby
nach Nim zu portieren. Sind leider doch ganze 6000 Zeilen, wird also
etwas dauern.
Lukas K. schrieb:> Das ist momentan hardcoded.>> War nur eine Frage der Zeit, bis sich das jemand wünscht. Ich hab' mir> das auch schon gelegentlich gewünscht, war bis jetzt aber immer zu faul> das zu implementieren. Im EEVBlog-Forum wünschte man sich auch noch> einstellbare Tastenkürzel.>> Wird so langsam wohl mal Zeit, dass der interaktive Manipulator einen> Einstellungsdialog und Config-Datei bekommt...
Merkst du jetzt was?
Mit meinem Rufen nach dem Konzept komme ich mir inzwischen vor wie Cato
d.Ä.
W.S.
Stefan S. schrieb:> Was meinst Du Helmut, sollte man Bauteile tatsächlich in> einer Datenbank verwalten, oder doch besser als einzelne> Dateien?
In einzelnen Dateien.
Wenn die EDA-Software die Bauteildaten aus einzelnen Dateien
im Filesystem liest, gibt es eine Chance, eine externe
Datenbank zu basteln, die die Bauteildaten verwaltet und
passend für mehrere EDA-Pakete exportieren kann.
Wenn jede EDA-Software seine eigene Datenbank mitbringt,
ist Austauschbarkeit der Daten noch weiter erschwert.
> Die Frage stelle ich mit gerade, da ich die Kompatibilität> mit dem gEDA/PCB Format wohl aufgeben werde.
Schade. Noch jemand, dem Interoperabilität egal ist. Naja.
Im YT-Video erwähnt er eine SQLlite-Datenbank, die er aufbaut aus
JSON-Dateien.
Hm, also wenn Helmut sich die Sache näher ansieht, scheint es
interessant zu sein und einen gewissen ersten Fortschritt inne zu haben.
Nur wie lange wird die Sache weiterentwickelt? Lukas ist 23 und in dem
Alter hat man abwechselnde Interessen.
Ansonsten kann ich nur sagen, zumindest im Video sieht es schon gut aus.
SkyOS war auch mal erwartungsvoll, da scheint die Frau mit Kind alles
gestoppt zu haben.
Ansonsten ist Entwiclung als Einmann-Team immer die effizienteste Form.
Bis es dann eine gewisse Größe überschreitet. Falls es zu diesem
Zeitpunkt dann zu unstruktiert ist, stirbt es unmittelbar.
Possetitjel schrieb:> In einzelnen Dateien.>> Wenn die EDA-Software die Bauteildaten aus einzelnen Dateien> im Filesystem liest, gibt es eine Chance, eine externe> Datenbank zu basteln, die die Bauteildaten verwaltet und> passend für mehrere EDA-Pakete exportieren kann.>> Wenn jede EDA-Software seine eigene Datenbank mitbringt,> ist Austauschbarkeit der Daten noch weiter erschwert.>
Ich hätte jetzt eher erwartet, dass die meisten eine Datenbank
bevorzugen. Wobei ich bisher wenig Erfahrung mit Datenbanken habe, aber
so schwierig ist deren Nutzung wohl nicht.
>> Die Frage stelle ich mit gerade, da ich die Kompatibilität>> mit dem gEDA/PCB Format wohl aufgeben werde.>> Schade. Noch jemand, dem Interoperabilität egal ist. Naja.
Nein, Interoperabilität war mir schon wichtig, daher hatte meine Ruby
Version des Schaltplaneditors ja das gEDA-Format verwendet, und der
Rubberband-Router das gEDA/PCB Format. Blos, wer benutzt denn momentan
noch gEDA/PCB? Und selbst den gEDA/PCB Leuten gefiel ihr Format nicht
wirklich.
Mit einem bestimmten Dateiformat kompatibel zu bleiben ist nunmal ein
Mehraufwand und eine Einschränkung. Als ich mit den Programmen vor
einigen Jahren anfing, da gab es noch einige mehr gEDA/PCB Nutzer und
ich hatte gedacht, dass von deren Seite auch etwas Interesse vorhanden
wäre.
Das KiCad Format kenne ich nicht. Lukas Dateiformate werde ich mir aber
mal ansehen.
Und Konverter kann man ja immer Schreiben, wenn es ein offenes Format
ist. Das können sogar Leute mit wenig Programmierkenntnissen in der
Sprache ihrer Wahl tun.
Bei dem PCB-Format frage ich mich, wie weit man sich am XGerber-Format
orientieren sollte. Natürlich nicht 1:1, XGerber ist ein LowLevel
Format. Aber so ganz grundsätzlich kann man sich schon daran
orientieren. Dass es etwa im wesentlichen Linien, Kreisbögen und
Polygone gibt.
W.S. schrieb:> ich tu's nicht, ich hab ja Eagle
Dann bleib doch einfach dabei.
Ob andere „Bockmist“ bauen, diese Einschätzung darfst du gern mehr als
nur dir überlassen. Auch wenn ich Horizon im Moment noch nicht selbst
ausprobiert habe, scheint mir die Menge an Diskussion, die hier
mittlerweile entsteht, keineswegs in diese Richtung zu gehen …
An deinen Ansprüchen gemessen, würdest du vermutlich auch Altium
Designer als „Bockmist“ abtun, weil es sich nicht so verhält wie Eagle.
Abdul K. schrieb:> Ansonsten ist Entwiclung als Einmann-Team immer die effizienteste Form.> Bis es dann eine gewisse Größe überschreitet. Falls es zu diesem> Zeitpunkt dann zu unstruktiert ist, stirbt es unmittelbar.
Man sollte den Code unbedingt klein halten, dann können sich andere im
Prinzip einarbeiten. KiCad und LibreCad haben wohl etwa beide ca. eine
Million Zeilen C++ Code. Das ist schon fast Wahnsinn.
Weiter oben hatte wohl jemand geschieben, dass Lukas momentan 27k Zeilen
hat. Ich denke das geht noch, aber viel mehr sollte es auch nicht
werden.
Stefan S. schrieb:> Weiter oben hatte wohl jemand geschieben, dass Lukas momentan 27k Zeilen> hat. Ich denke das geht noch, aber viel mehr sollte es auch nicht> werden.
Wie soll das denn bitte funktionieren, wenn man die Funktionalität
erweitern will?
Uff, so viel auf einmal:
Irgendeine Art von "Einstellungen" war früher oder später eh geplant. Im
letzten Jahr Entwicklung, in dem einziger "Anwender" ich war, war das
eben nicht so wichtig. Jetzt wo auch andere Leute mit anderen Vorlieben
das Programm benutzen wollen, braucht's das eben. Wenn Dialog und
Infrastruktur erstmal da sind, finden sich auch recht schnell weitere
Zwecke, die sinnvoll zu nutzen.
Einzeldateien oder Datenbank? Beides! Einzeldateien sind gut geeignet um
versionskontrolliert verwaltet zu werden, allerdings sucht's sich darin
schlecht. Mit Datenbanken ist es genau umgekehrt. Daher sind die
Primärquellen Einzeldateien, deren Metadaten dann lokal in eine
Datenbank importiert werden. Die ganzen "Browser" im pool manager für
Units, etc. sind dann eine recht dünne Schicht GUI über SQL.
Das Dateiformat ist jetzt nichts besonderes. Die C++-Klassen werden
einfach nach JSON serialisiert.
Abdul K. schrieb:> Ansonsten kann ich nur sagen, zumindest im Video sieht es schon gut aus.
Jetzt, einige Monate später, ist's noch besser ;)
Lukas K. schrieb:> Das Dateiformat ist jetzt nichts besonderes. Die C++-Klassen werden> einfach nach JSON serialisiert.
ja, so wollte ich es jetzt auch machen. Damit macht man sich das Leben
sehr einfach -- aber das ist dann natürlich zu nichts kompatibel.
Eines noch: Die executables sind ja riesig! Gut, da ist wohl sämtlicher
Debugging-Code enthalten, aber trotzdem:
1
$ ls -l ../horizon/horizon-prj-mgr
2
-rwxr-xr-x 1 stefan stefan 63936488 Oct 28 20:54 ../horizon/horizon-prj-mgr
3
stefan@nuc ~/pet $ ls -l ../horizon/horizon-imp
4
-rwxr-xr-x 1 stefan stefan 176220480 Oct 28 20:53 ../horizon/horizon-imp
Stefan S. schrieb:> Die executables sind ja riesig!
Frag doch mal lieber mit "size" statt "ls -l". Ansonsten bekommst
du die Größe aller Debug-Symbole (Strings, Namen etc.) mit.
W.S. schrieb:> Ich hatte das bei Kicad schon vor geraumer Zeit angemahnt,> denk mal an die ewigen Diskussionen mit Bernd Wiebus, der> noch immer nicht einsehen will, daß man in Schaltplänen> logische Symbole hat und nicht Abbilder von DIL-Gehäusen
Ja, überwiegend ist das so.
> und der partout nicht einsehen will, daß die Konsistenz> zwischen SCH und BRD sowie Symbolen und Footprints was> ganz Essenzielles ist.
Wie das? Das (allgemeine) Symbol eines npn-Transistors hat
keinen Footprint. Und -- nein, ich will NICHT wählen müssen,
ob das ein BF199 oder eine 2N3904 sein soll, wenn ich den
SCHALTPLAN zeichne.
> Womöglich kann man ne Menge mittleren Zeuges grad bei> Kicad durchaus retten - aber dazu müßte man die Nase tief> in die Quellen stecken - und ich tu's nicht, ich hab ja> Eagle.
Naja, das verstehe ich -- aber dann hat es wenig Sinn, zu
meckern.
> Andererseits hat man durchaus ein Gefühl von Verantwortung> dahingehend daß man den Leuten, die grad dabei sind Bockmist> zu bauen, der hinterher nur noch schwer bis garnicht> korrigierbar ist, SAGEN muß, daß sie grad Bockmist bauen.
Das Problem des Rechthabers ist nicht, dass er Unrecht hätte --
das Problem des Rechthabers ist, dass ihm niemand mehr zuhört!
Außerhalb akademischer Kreise will es niemand haben, dass Du
(nur) ein PROBLEM aufwirfst. Entweder Du kannst die Lösung für
das Problem umsetzen, oder Du spielst das Spiel mit, das andere
vorgeben, egal, wie falsch Dir das scheint.
Einen Mittelweg sehe ich nicht.
In der aktuellen Version funktioniert nun dank gepatchtem Gtk die
3D-Vorschau auch auf Windows.
Possetitjel schrieb:> Und -- nein, ich will NICHT wählen müssen,> ob das ein BF199 oder eine 2N3904 sein soll, wenn ich den> SCHALTPLAN zeichne.
Horizon kann genau das. Man kann ohne "Part" anfangen und später mit
"assign Part" dem "Component" ein "Part" zuweisen. Nachträglich kann man
natürlich das Part auch austauschen.
Ich habe hier nicht alles gelesen, aber bezüglich der Simulation wollte
ich noch kurz was einwerfen:
Obwohl ich Altium zur Verfügung habe und das auch Simulieren kann, nutze
ich noch immer viel lieber LTSpice für analoge Geschichten.
Man kann sowieso nur selten die komplette Schaltung simulieren - man
simuliert nur die kritischen Teile davon.
Das sieht dann teilweise auch ganz anders aus als im Schaltplan fürs
Layout weil man viel experimentiert...
Also es ist absolut nicht essentiell da Spice einzubauen. Das geht auch
extern.
Für HF-Kram gibts dann wieder andere Tools...
Stefan S. schrieb:> Possetitjel schrieb:>> In einzelnen Dateien.>>>> Wenn die EDA-Software die Bauteildaten aus einzelnen Dateien>> im Filesystem liest, gibt es eine Chance, eine externe>> Datenbank zu basteln, die die Bauteildaten verwaltet und>> passend für mehrere EDA-Pakete exportieren kann.>>>> Wenn jede EDA-Software seine eigene Datenbank mitbringt,>> ist Austauschbarkeit der Daten noch weiter erschwert.>>>> Ich hätte jetzt eher erwartet, dass die meisten eine Datenbank> bevorzugen.
Das tue ich ja auch.
Ich will nur keine Datenbank, die spezifisch für DIESE EDA-SOFTWARE
ist!
Ich will genausowenig, dass die EDA-Software eine eigene Versions-
verwaltung mitbringt. Ich will, dass die Userdaten, die ich mit
der EDA-Software produziere, mit DER externen Versionsverwaltung
verwaltet werden können, die ICH auswähle.
> Nein, Interoperabilität war mir schon wichtig, daher hatte> meine Ruby Version des Schaltplaneditors ja das gEDA-Format> verwendet,
Ohh. Deinen Schaltplaneditor habe ich irgendwie übersehen.
> Mit einem bestimmten Dateiformat kompatibel zu bleiben ist> nunmal ein Mehraufwand und eine Einschränkung.
Ja:
Kompatibilität ist eine Einschränkung für den Programmierer.
Inkompatibilität ist eine Einschränkung für den Nutzer.
Wenn wir uns die Unmenge inkompatibler Software ansehen, wissen
wir, wer das Sagen hat.
> Als ich mit den Programmen vor einigen Jahren anfing, da gab> es noch einige mehr gEDA/PCB Nutzer und ich hatte gedacht,> dass von deren Seite auch etwas Interesse vorhanden wäre.
Ja... das war wohl einfach Pech.
> Und Konverter kann man ja immer Schreiben, wenn es ein> offenes Format ist. Das können sogar Leute mit wenig> Programmierkenntnissen in der Sprache ihrer Wahl tun.
Ja, das ist ein Anfang, und darauf wird es wohl vorläufig
hinauslaufen.
Der nächste Schritt wäre aus meiner Sicht, dass es eine
generische Software gibt, die z.B. Schaltplansymbole und
Footprints verwaltet und diese in allen in Frage kommenden
Formaten exportieren kann (gEDA, KiCAD, horizon, Fritzing...:)
> Bei dem PCB-Format frage ich mich, wie weit man sich am> XGerber-Format orientieren sollte. Natürlich nicht 1:1,> XGerber ist ein LowLevel Format. Aber so ganz grundsätzlich> kann man sich schon daran orientieren. Dass es etwa im> wesentlichen Linien, Kreisbögen und Polygone gibt.
Hauptpunkt ist mMn das abstrakte Datenmodell, das dahinter-
steht. Wenn die einen eine turing-vollstände Beschreibungs-
sprache nehmen und die anderen Bitmaps, dann werden auch
Konverter zur Herausforderung.
Jörg W. schrieb:> Ob andere „Bockmist“ bauen, diese Einschätzung darfst du> gern mehr als nur dir überlassen.
Nun... W.S. steht zumindest nicht völlig allein mit seiner
Meinung.
Auch Lukas scheint dieser Ansicht zu sein -- sonst hätte er
sein Projekt ja nicht angefangen... :)
> An deinen Ansprüchen gemessen, würdest du vermutlich auch> Altium Designer als „Bockmist“ abtun,
Zum Teil, ja.
> weil es sich nicht so verhält wie Eagle.
Nee, deshalb nicht.
Possetitjel schrieb:> Auch Lukas scheint dieser Ansicht zu sein -- sonst hätte er sein Projekt> ja nicht angefangen... :)
W.S. bezog diese seine Kritik allerdings auf Lukas.
> Nee, deshalb nicht.
Bei W.S. schon, ist ja nicht das erste Mal, dass er das propagiert.
Alles, was nicht den gleichen Workflow hat wie Eagle ist bei ihm halt
„Bockmist“. Das ist zumindest der Eindruck, den ich über die Jahre
gewonnen habe.
Lukas schrieb:
> In der aktuellen Version funktioniert nun dank gepatchtem Gtk die
3D-Vorschau auch auf Windows.
Hallo Lukas,
das sieht ja richtig gut aus. Speziell das "Explode" finde ich cool. Auf
diese Art, kann man sehr anschaulich zeigen was in der Leiterplatte
passiert. Eine echte Bereicherung speziell auch für den
Ausbildungsbereich. Auf dem Bildschirm sieht das durch die Möglichkeit
die Platine in 3D zu drehen/kippen/schieben noch viel schöner aus.
Danke nochmals für die Bereitstellung von Binaries für Windows. Damit
bist du anderen Open-Source Projekten weit voraus. Bei Octave hat es 15
Jahr gedauert bis es offizielle Windows-Binaries gab.
Gruß
Helmut
Frank K. schrieb:> Es ist mir nun endlich gelungen mein erstes AppImage zu erstellen :-)>> Es kann hier herunter geladen werden:> https://download.opensuse.org/repositories/home:/frank_kunz/AppImage/>> dann ausführbar machen und starten. Ich konnte es nicht auf> verschiedenen Linux Distributionen testen daher keine Garantie dass es> überall startet.>> Das AppImage ist dazu gedacht um horizon testen zu können ohne die> Software selber kompilieren zu müssen, also nicht für den> Produktiveinsatz.>> Gruß,> Frank
Hallo Frank,
Ich habe heute eines deiner Iamges auf Ubuntu 17.10 gestart. Es geht ein
Fenster von horizon auf und dann kommt in einer box die Fehlermeldung
Gtk-Message: Failed to load module "canberra-gtk-module".
Kann jemand einem Linux-Laien wie mir sagen wie und von wo ich das
fehlende Gtk installieren kann. Auf der Entwickler-Webseite von Gtk gibt
es nur "sourcen" zum selber kompilieren.
Gruß
Helmut
Ubuntu 17.10
Bin jetzt einen Schritt weiter.
GTK3 von hier installiert.
https://launchpad.net/ubuntu/bionic/amd64/gir1.2-gtk-3.0/3.22.25-0ubuntu1
Die Fehlermeldung ist jetzt weg.Ich kann das Demo-Layout von Lukas laden
und bearbeiten.
Neue Probleme:
1.
Die Planes werden trotz "Update Planes" nicht gefüllt dargestellt.
Ist das ein Problem meiner Grafikkarte (GTX260)?
2.
3D Ansicht
Beim Anklicken von 3D zerbröselt es die Grafik im Layoutfenster. Fehlt
dafür noch eine weitere Software?
Hallo Helmut,
Die Idee der AppImages ist dass Du nichts zusätzlich installieren musst,
das Image sollte alle nötigen libs, etc. enthalten. Ich habe
canberra-gtk-module noch hinzugefügt, der Build lauft gerade. Sollte so
bis in ein paar Minuten fertig sein falls Du es noch mal testen
möchtest. Zu den neuen Problemen (update planes, 3D zerbröseln) kann ich
noch nicht viel sagen, vielleicht fehlt noch eine lib welche für die
korrekte Darstellung benötigt wird. Ich versuche das noch mal mit einem
ubuntu 17.10 in einer virtualbox nachzustellen.
Gruß,
Frank
Leute, Leute schrieb:> Nach ein paar Jahren ist die Lust> dann weg und zurück bleibt eine Baustelle
... so wie es auch bei Eagle ist.
Ich dachte echt dass die irgend wann mal ein paar Features hinzutun
werden, aber da ist ja seit Jahren nichts mehr wirklich passiert.
Die wollen das aktuelle Programm so verkaufen wie es ist weil ihnen die
Lust fehlt etwas zu verändern.
(die Veränderungen seit 4.16 sind lächerlich)
Ich würde mir gerne auf zwei Monitoren jeweils eine Ebene anzeigen
lassen und wenn ich auf einer etwas verschiebe, dann sehe ich das auf
beiden Monitoren.
Wenn man mehrere Lagen hat wäre das eindeutig übersichtlicher.
Wenn ich mit der Maus irgend wo lang gehe wäre es schön wenn die
entsprechenden Teile, welche reagieren wenn man dann auf die Maustaste
drückt vorher aufleuchten, dann sieht man schon vorher welche
Leitung/Bauteil der Mauszeiger im Fokus hat und welche dann beim Klick
markiert ist.
Mike J. schrieb:> Ich würde mir gerne auf zwei Monitoren jeweils eine Ebene anzeigen> lassen und wenn ich auf einer etwas verschiebe, dann sehe ich das auf> beiden Monitoren.> Wenn man mehrere Lagen hat wäre das eindeutig übersichtlicher.>
Ja, so ist es ja bei vielen Texteditoren, etwa auch bei meinem Nim
Editor: Man kann den gleichen Text in mehreren Fenstern darstellen,
ändert man in einem Fenster etwas, wird das auch in den anderen Fenstern
sichtbar. Das kann man ja auch bei der Platinenansicht machen. Ob man da
zwei Monitore braucht? Bei den aktuellen 4k Monitoren hat man ja schon
viel Inhalt auf einem Bildschirm, etwa drei Fenster nebeneinander. Ich
denke GTK unterstützt auch Mehrmonitorbetrieb, so dass man das machen
kann. Ich habe momentan aber nur einen 4K Monitor. Bei mehr als einem
muss man den Kopf immer so viel drehen, das behagt mir persönlich nicht
so sonderlich.
> Wenn ich mit der Maus irgend wo lang gehe wäre es schön wenn die> entsprechenden Teile, welche reagieren wenn man dann auf die Maustaste> drückt vorher aufleuchten, dann sieht man schon vorher welche> Leitung/Bauteil der Mauszeiger im Fokus hat und welche dann beim Klick> markiert ist.
Ja, das würde ich wohl auch so machen. Bei meinem Schaltplaneditor war
es ja schon so, dass Elemente angehoben mit Schatten dargestellt werden,
wenn der Mauszeiger über ihnen schwebt.
Frank K. schrieb:> Es ist mir nun endlich gelungen mein erstes AppImage zu erstellen :-)
Kannst Du ein kleines Beispielprojekt in dem Appimage versenken, so dass
man direkt spielen kann ohne sich zunaechst mit den Pools
auseinandersetzten zu muessen?
Danka
:-D
Hab das Programm gerade getestet.
Habe nur den Pool hinzugefügt und dann mein erstes Projekt angefangen.
Es wäre schön wenn dieser Pool sich beim Start automatisch in das
Verzeichnis lädt aus dem ECAD ausgeführt wird.
home.../Programme/ecad/
In dem Verzeichnis habe ich die App "horizon-...-x86_64.AppImage" und
den Pool abgelegt.
- Bei der Auswahl der Bauteile wäre es schön wenn man eine Darstellung
des entsprechenden Schaltsymbols sehen könnte, damit man weiß was man
gerade in der Hand hält.
- Es ist etwas komisch dass bei den Widerständen schon Werte stehen.
- Die Bauteilliste könnte in Baugruppen unterteilt sein, zum Beispiel
Transistoren, LEDs, Versorgungssymbole (GND, Vcc, +3.3V ...),
Steckverbinder, Chips, Widerstände usw.
- Jetzt fehlt die Leiste (mit dem Stift, spiegeln des Bauteils, Move,
Copy usw.) welche es bei Eagle gibt, momentan verbinde ich die Pins im
Schaltplan indem ich die Pins aneinander führe. Habe ich da etwas
übersehen?
- Es ist etwas nervig dass man zum bewegen der Bauteile immer den
"Move"-Knopf drücken muss.
- Es wäre besser wenn sich das Bauteil nach einem Klick auf Move im
Schaltungseditor direkt unter dem Mauszeiger befindet. (also die Mitte
des Bauteils direkt unter dem Mauszeiger plazieren)
Momentan ist das Bauteil dann teilweise noch sehr weit verschoben zum
Mauszeiger.
Mike J. schrieb:> - Bei der Auswahl der Bauteile wäre es schön wenn man eine Darstellung> des entsprechenden Schaltsymbols sehen könnte, damit man weiß was man> gerade in der Hand hält.
Ja, aber wie macht man das konkret? Wo soll die Preview-Area angeordnet
sein? Bei gschem hatten sie den Preview zum Schluss in den
Dateiauswahldialog integriert, das gefiel mir auch nicht sonderlich.
>> - Es ist etwas nervig dass man zum bewegen der Bauteile immer den> "Move"-Knopf drücken muss.
Ist das wirklich noch so? Nach meiner Meinung sollte möglist alles
funktionieren, ohne das man spezielle Tools anwählen muss. Verschieben
z.B. einfach: Maus über Bauteil, Knopf Drücken und Bewegen. Oder neue
Leitung: Maus über Pin, Knopf drücken und loslassen, und die Leitung
hängt an der Maus. Maus über Text, Mausrad dreht den Text. Maus über
Bauteil, Mausrad dreht Bauteil. Maurad über freier Fläche: Zoom. Usw.
Beim Schaltplaneditor hatte ich soweit alles hinbekommen, dass man
praktisch fast nie das Tool wechseln muss. Beim Layouteditor sollte es
möglichst ähnlich sein, da müsste man aber über die Konketisierung
nachdenken.
Wobei ich gerade sehe, ich hatte ja sogar die Bedienung aufgeschrieben:
Unter Usage:
http://ssalewski.de/PetEd.html.en
Soweit ich mich errinnere ging das wirklich recht gut. Die
Programmierung war zwar etwas kniffelig, aber das sollte Lukas
hinbekommen.
Stefan S. schrieb:> Wobei ich gerade sehe, ich hatte ja sogar die Bedienung> aufgeschrieben:> Unter Usage:>> http://ssalewski.de/PetEd.html.en>> Soweit ich mich errinnere ging das wirklich recht gut.
Ich bin gerade dabei, das mal auszuprobieren. Allerdings
habe ich das Problem, dass GTK3 notwendig, aber auf meiner
Kiste nicht verfügbar ist; das dauert also noch.
Die Version von 2012 startet.
Possetitjel schrieb:> Ich bin gerade dabei, das mal auszuprobieren.
Das würde ich jetzt nicht unbedingt machen.
Gut, bei mir läuft es noch, ruby-gnome2 gibt aber einige
Debugging-Meldungen. Und ich kann auch keinen Schaltplan öffnen, da ich
gEDA nicht mehr installiert habe, und damit die Symbole nicht vorhanden
sind. Start mit leerem Plan einfach mit "ruby peted.rb" geht bei mir,
oder auch mit einem der beiliegenden Symbole.
Nun ja, geschrieben hatte ich es 2011 oder 2012 -- ist eben schon lange
her...
Helmut S. schrieb:> 3D Ansicht> Beim Anklicken von 3D zerbröselt es die Grafik im Layoutfenster. Fehlt> dafür noch eine weitere Software?
Kannst du mal einen Screenshot davon machen? Die OpenGL-Unterstützung
von Gtk ist noch recht neu und recht wenig Software verwendet die
derzeit ernsthaft. Insofern sind da bugs nicht verwunderlich...
Mike J. schrieb:> Wenn ich mit der Maus irgend wo lang gehe wäre es schön wenn die> entsprechenden Teile, welche reagieren wenn man dann auf die Maustaste> drückt vorher aufleuchten, dann sieht man schon vorher welche> Leitung/Bauteil der Mauszeiger im Fokus hat und welche dann beim Klick> markiert ist.
Ist bei horizon so, wenn du im "hover select"-Modus (esc-Taste drücken)
bist.
Uwe B. schrieb:> Kannst Du ein kleines Beispielprojekt in dem Appimage versenken, so dass> man direkt spielen kann ohne sich zunaechst mit den Pools> auseinandersetzten zu muessen?
Derzeit speichern Projekte ihre Bauteile nicht lokal zwischen, ohne Pool
kann man das Beispielprojekt nicht aufmachen.
Mike J. schrieb:> - Bei der Auswahl der Bauteile wäre es schön wenn man eine Darstellung> des entsprechenden Schaltsymbols sehen könnte, damit man weiß was man> gerade in der Hand hält.
Das könnte ich dem Part Browser in der Tat noch spendieren.
> - Es ist etwas komisch dass bei den Widerständen schon Werte stehen.> - Die Bauteilliste könnte in Baugruppen unterteilt sein, zum Beispiel> Transistoren, LEDs, Versorgungssymbole (GND, Vcc, +3.3V ...),> Steckverbinder, Chips, Widerstände usw.
Man will keinen generischen 10kOhm-Widerstand im Schaltplan haben, den
kann man nirgendwo kaufen. Jedes Bauteil im Schaltplan hat Hersteller
und Teilenummer, sodass man (in Zukunft) direkt die Stückliste bei
octopart einwerfen kann. Für Hühnerfutter werden die Teilenummern aus
der CPL von octopart verwendet. Zur suche gibt es die tags.
Versorgungssymbole sind keine "normalen" Symbole, die sind fest
eingebaut. Derzeit gibt es nur "GND". Siehe
https://github.com/carrotIndustries/horizon/wiki/Schematic-editor#power-symbols> - Jetzt fehlt die Leiste (mit dem Stift, spiegeln des Bauteils, Move,> Copy usw.) welche es bei Eagle gibt, momentan verbinde ich die Pins im> Schaltplan indem ich die Pins aneinander führe. Habe ich da etwas> übersehen?
Leertaste drücken, dann kommt ein Menü mit allen verfügbaren Tools, da
stehen auch die Tastenkürzel dran. Oder auf "Help" klicken, da steht
auch was jede Taste macht.
> - Es ist etwas nervig dass man zum bewegen der Bauteile immer den> "Move"-Knopf drücken muss.
Einfach "m" drücken.
> - Es wäre besser wenn sich das Bauteil nach einem Klick auf Move im> Schaltungseditor direkt unter dem Mauszeiger befindet. (also die Mitte> des Bauteils direkt unter dem Mauszeiger plazieren)> Momentan ist das Bauteil dann teilweise noch sehr weit verschoben zum> Mauszeiger.
Da unterscheiden sich wohl die Geschmäcker. So lange das Bauteil relativ
dem Mauszeiger folgt passt für mich alles.
Stefan S. schrieb:> Ist das wirklich noch so? Nach meiner Meinung sollte möglist alles> funktionieren, ohne das man spezielle Tools anwählen muss. Verschieben> z.B. einfach: Maus über Bauteil, Knopf Drücken und Bewegen. Oder neue> Leitung: Maus über Pin, Knopf drücken und loslassen, und die Leitung> hängt an der Maus. Maus über Text, Mausrad dreht den Text. Maus über> Bauteil, Mausrad dreht Bauteil. Maurad über freier Fläche: Zoom
Ich nutze das AppImage (unter XUbuntu 17.10):
horizon-1509392238.1462df3-Build44.1.glibc2.14-x86_64.AppImage
Frank K. schrieb:> Hallo Helmut,>> Die Idee der AppImages ist dass Du nichts zusätzlich installieren musst,> das Image sollte alle nötigen libs, etc. enthalten. Ich habe> canberra-gtk-module noch hinzugefügt, der Build lauft gerade. Sollte so> bis in ein paar Minuten fertig sein falls Du es noch mal testen> möchtest. Zu den neuen Problemen (update planes, 3D zerbröseln) kann ich> noch nicht viel sagen, vielleicht fehlt noch eine lib welche für die> korrekte Darstellung benötigt wird. Ich versuche das noch mal mit einem> ubuntu 17.10 in einer virtualbox nachzustellen.>> Gruß,> Frank
Hallo Frank,
Ich habe gerade mal deine neueste Version auf 17.10 gestartet obwohl ich
da schon GTK 3 installiert hatte.
Die Planes werden immer noch nicht gefüllt dargestellt!
Beim drücken auf 3D erscheint eine Messagebox: OpenGL context creation
failed
Danach ist die Grafik im Layoutfenster korrupt/unbrauchbar. Man hat Mühe
das Layoutfenster im Blindflug zu schließen.
Gruß
Helmut
Helmut S. schrieb:> Ich habe gerade mal deine neueste Version auf 17.10 gestartet obwohl ich> da schon GTK 3 installiert hatte.>> Die Planes werden immer noch nicht gefüllt dargestellt!
Ich konnte es nicht lassen und habe auf einem Rechner Xubuntu 17.10
installiert. Damit konnte ich die aktuelle Version von horizon
problemlos (nach ein paar apt install ...) übersetzen. Ich musste kein
gtk aus fremden Quellen (PPA) nachinstallieren, den o.g. Fehler sehe ich
nicht, ganz fehlerfrei ist die 3d Darstellung aber auch nicht.
tester schrieb:> ganz fehlerfrei ist die 3d Darstellung aber auch nicht.
Kannst du mal einen Screenshot machen? So hilft mir diese Aussage recht
wenig...
Jörg W. schrieb:> Dann bleib doch einfach dabei.>> Ob andere „Bockmist“ bauen, diese Einschätzung darfst du gern mehr als> nur dir überlassen.
Manchmal frag ich mich, warum ausgerechnet DU es partout nicht fertig
bringst, sachlich zu bleiben und dich darum zu bemühen, einen Nutzwert
in die Diskussionen einzubringen. Ständig wirst du an der unpassendsten
Stelle persönlich. Brauchst du das mental?
Also: es gibt ne Menge Leute, die ebenso viele Projekte planen und
anfangen - und nur ein kleiner Teil davon wird sein Zeugs zu Ende
kriegen und damit einen Erfolg haben. Das ist so und es war schon immer
so. Die viele Arbeit, die all die anderen in ihr Zeugs gesteckt haben
ist hingegen für die Katz, denn aus deren Projekten wird zum Schluß
nichts.
UND DAS IST DERART SCHADE DRUM, daß unsereiner eben nicht schadenfroh
daneben steht um zuzugucken wie sich jemand verrennt und dann scheitert.
Jedenfalls mir geht das so und deswegen sag ich jemandem, der grad
Bockmist baut, daß er es tut. Der Rest liegt dann bei ihm, entweder
kapiert er es und reißt sein Steuer herum oder er rümpft die Nase und
macht weiter so wie bisher.
Aber das ist was ganz anderes als deine ständigen Unterstellungen wie
z.B. hier bezüglich Altium Designer. Abgesehen davon kannst du in den
Untiefen dieses Forums ne Einschätzung des AD nachlesen, die ich vor
geraumer Zeit nach einer Vorführ-Erfahrung auf der Embedded verfaßt
habe. Du hättest nachlesen und schlichtweg sachlich bleiben können.
W.S.
Hm... mit nicht ganz fehlerfrei meinte ich, dass die Darstellung der
Solder Mask nach schwarz abgesoffen ist, wenn man die Platine zu sehr in
die waagrechte gedreht hat. Schaut man mehr aus der Senkrechten drauf,
wird sie wieder grün. Nichts, was jetzt wirklich entscheidend wäre.
Lukas K. schrieb:> tester schrieb:>> ganz fehlerfrei ist die 3d Darstellung aber auch nicht.>> Kannst du mal einen Screenshot machen? So hilft mir diese Aussage recht> wenig...
Nach dem Drücken auf 3D kommt ja erstmal eine Fehlermeldung:
OpenGL context creation failed
Von 3D ist dann nichts zu sehen. Wenn amn dann ein resize des
Layoutfensters macht sieht das aus wie im Anhang (2. Bild,
Screenshot_from_2017-10-31_19-04-30.png)
Neueste AppImage: Siehe drittes Bild,
Screenshot_from_2017-10-31_19-10-55.png
Da sind ein Teil der Toolbuttons in dem Button rechts mit den 3 kleinen
waagrechten Strichen versteckt. Vermutlich wurde das Image mit einer
anderen Bilschirmauflösung generiert. Ich habe hier HD-Auflösung
(1920...).
AppImage von gestern und von heute
Im Layoutfenster werden die Planes nicht gefüllt. Ich weiß immer noch
nicht ob das an meiner Grafikkarte liegt. Ich werde mich jetzt wohl
wieder der Windows-Version widmen. Die läuft ohne Probleme.
Gruß
Helmut
Lukas K. schrieb:> Man will keinen generischen 10kOhm-Widerstand im> Schaltplan haben,
Doch, unbedingt.
Es ist in Ordnung, wenn Du Deine Software ausschließlich
an DEINEM Arbeitsablauf ausrichtest.
Aber BITTE sieh von unzutreffenden Verallgemeinerungen
ab.
Ich habe ziemlich oft Bedarf nach "abstrakten" Schaltplänen.
Das Auswählen der (abstrakten) Bauteile und das Definieren
der Schaltungstopologie ist bei mir der erste Schritt.
Die Dimensionierung ist der zweite, und die endgültige
Festlegung der Bauteiltypen (=kaufbare Produkte) der dritte.
--> Deine Software ist für mich nicht geeignet.
(Das ist kein Problem; Du machst nichts falsch. Ich wollte
es nur explizit feststellen.)
> Jedes Bauteil im Schaltplan hat Hersteller und Teilenummer,
Super.
Wenn ich den Hersteller wechsle, müsste ich den Schaltplan
anpassen :/
@helmut: Verwendest du Wayland oder X11? Xubuntu 17.10 verwendet
standardmäßig X11, während das "normale" Ubuntu Wayland nimmt. Lt c't
liegt da noch manches im argen, evtl. rühren hier die Probleme her.
@Lukas: Wie stellt man beim routen die Leiterbahngröße ein?
Possetitjel, sehe ich auch so.
Helmut, du baust ein Ethernet-Interface mit einer Alpha-Software? Hast
du so viel Zuversicht oder zu viel Freizeit? Soll kein Vorwurf sein.
W.S. schrieb:> UND DAS IST DERART SCHADE DRUM, daß unsereiner eben nicht> schadenfroh daneben steht um zuzugucken wie sich jemand> verrennt und dann scheitert. Jedenfalls mir geht das so> und deswegen sag ich jemandem, der grad Bockmist baut, daß> er es tut.
Dein Fehler liegt in Deiner (unausgesprochenen) Voraussetzung,
dass DEINE Einschätzung für irgend etwas relevant ist, was
LUKAS tut.
Ist es aber nicht (zumindest nicht automatisch).
> Der Rest liegt dann bei ihm, entweder kapiert er es und> reißt sein Steuer herum oder er rümpft die Nase und macht> weiter so wie bisher.
Der Punkt ist, dass es von Lukas' Standpunkt aus kein
Bockmist IST.
Jedes Werturteil (wie Deinst: "Bockmist") setzt einen
Wertmaßstab voraus.
Nicht Dein Urteil an sich ist der Fehler -- sondern die
Tatsache, dass Du Deinen eigenen Wertmaßstab als richtig,
objektiv gegeben und nicht diskutabel ansiehst.
Auf dieser Basis kannst Du natürlich nicht vestehen, was
Lukas tut.
Abdul K. schrieb:> Helmut, du baust ein Ethernet-Interface mit einer Alpha-Software? Hast> du so viel Zuversicht oder zu viel Freizeit? Soll kein Vorwurf sein.
Das ist das Demo-Projekt.
tester schrieb:> Abdul K. schrieb:>> Helmut, du baust ein Ethernet-Interface mit einer Alpha-Software? Hast>> du so viel Zuversicht oder zu viel Freizeit? Soll kein Vorwurf sein.>> Das ist das Demo-Projekt.
So ist es. Damit kann man einfach mal Leitungen und Planes zeichnen,
verschieben und probieren. Das ist keine Schaltung die man jetzt
aufbauen soll. Ich finde das ist eine gute Sache.
Oben stand, man könne keine Demos mit in die Auslieferung einbinden.
Daher hat mich das gewundert ich folgerte, Helmut hat gleich mal richtig
reingehauen.
W.S. schrieb:> UND DAS IST DERART SCHADE DRUM, daß unsereiner eben nicht schadenfroh> daneben steht um zuzugucken wie sich jemand verrennt und dann scheitert.
Im Moment bist du der Einzige hier, der das, was da gerade mit
Horizon passiert, als „Scheitern“ deklariert. Im Gegenteil, Lukas
hat den Thread Anfang des Jahres gestartet, danach war es recht
lange eher still. Jetzt dagegen hat zumindest die Diskussion auch
von Leuten, die es getestet haben, doch gut Fahrt aufgenommen.
> Aber das ist was ganz anderes als deine ständigen Unterstellungen wie> z.B. hier bezüglich Altium Designer.
Das ist einfach mein Eindruck, den ich nach deinen wiederholten
Eagle-Lobpreisungen bekommen habe. Ich bin weit davon entfernt, Eagle
irgendwie als unbenutzbar hinzustellen, aber dass es im Bereich der
EDA-Programme eher eins ist mit ziemlich vielen Ecken und Kanten, ist
meist auch denjenigen klar, die es aktiv benutzen. Das ist dann eher
eine „ist gut genug für mich“-Entscheidung als eine „so und nur so
hätte ich mir ein EDA-Programm vorgestellt“.
> Abgesehen davon kannst du in den> Untiefen dieses Forums ne Einschätzung des AD nachlesen, die ich vor> geraumer Zeit nach einer Vorführ-Erfahrung auf der Embedded verfaßt> habe. Du hättest nachlesen und schlichtweg sachlich bleiben können.
Sorry, nach einem Anonymus im Forum zu suchen ist ja schlimmer als
nach einer Nadel im Heuhaufen. Falls du einen Link hast, lese ich
es mir gern durch und korrigiere diese meine Meinung.
Oha... der "Interactive Router" kann schon (etwas) Push'n'Shove. Im
"router" Unterverzeichnis ist einiges an Quelltext vom KiCad PnS Router.
Ist ja kein Problem, beides ist GPL3.
Geht ja richtig rund hier, ich hoff' jetzt nichts wichtiges vergessen zu
haben:
tester schrieb:> dass die Darstellung der> Solder Mask nach schwarz abgesoffen ist, wenn man die Platine zu sehr in> die waagrechte gedreht hat.
Das ist schlechtes flat shading bei der Arbeit ;) Die 3D-Vorschau
entstand durch halbes implementieren einiger OpenGL-Tutorials, da ist in
der Tat noch Luft nach oben. Wenn sich wer da austoben und das schöner
machen will, oder einfach umsetzbare Vorschläge hat, gerne doch.
Possetitjel schrieb:> Super.> Wenn ich den Hersteller wechsle, müsste ich den Schaltplan> anpassen :/
Nein. Am Beispiel Widerstand mal erklärt, wie ich mir das vorgestellt
hab: Horizon unterscheidet "Part" und "Entity". Jeder Widerstand mit
zwei Beinen, egal welcher Wert und Hersteller ist durch die Entity
"Two-terminal Resistor" definiert. Das Part fügt dem dann Hersteller,
Wert, Teilenummer und Package hinzu. Wichtig für die Netzliste ist die
Entity. Mit dem Tool "Assign Part" kann man ohne den Schaltplan
anderweitig anzufassen z.B. aus einem 1k 0603 einen 10k 0402 Widerstand
machen.
tester schrieb:> @Lukas: Wie stellt man beim routen die Leiterbahngröße ein?
Dazu gibt es zwei Optionen: Zu bevorzugen ist es die Leiterbahnbreite in
den Regeln festzulegen. Wie bei Altium auch werden die Reglen von oben
nach unten abgearbeitet und die erste zutreffende wird appliziert. Wenn
die Leiterbahnen mal anders werden sollen, kann man im Property Editor
rechts im Bild "Width from Rules" aus machen und eine Leiterbahnbreite
eintippen. Oder man drückt während des Routens "w" um die Größe
einzutippen. Mit "W" wird wieder die aus den Regeln ausgewählt. (Hab
wohl vergessen, das in den Tooltip aufzunehmen, kommt gleich)
tester schrieb:> @Lukas: Das mit den "Zero lenght track" ist ja ganz nett. Aber warum> verhinderst du die Entstehung solcher Tracks nicht komplett?
Mit dem Kicad-Router sollten die eigentlich nicht allzu oft entstehen.
Bis jetzt war der Leidensdruck nicht groß genug, mich darum zu kümmern,
dass die auch verschwinden.
tester schrieb:> Oha... der "Interactive Router" kann schon (etwas) Push'n'Shove. Im> "router" Unterverzeichnis ist einiges an Quelltext vom KiCad PnS Router.> Ist ja kein Problem, beides ist GPL3.
Ja, ich hab den Router von den CERN-Leuten eingebaut. War einiges an
Aufwand, hat sich aber definitiv gelohnt. War auch nur möglich, weil der
Router selber recht unabhängig von KiCad gehalten ist und sein eigenes
Datenmodell mitbringt. Ich behaupte jetzt mal, dass der Router in
horizon erst sein wahres Potential entfalten kann, da das was KiCad
unter "Design Rules" versteht doch sehr zu wünschen übrig lässt.
Helmut S. schrieb:> Da sind ein Teil der Toolbuttons in dem Button rechts mit den 3 kleinen> waagrechten Strichen versteckt.
Das ist Absicht ;) In
https://github.com/carrotIndustries/horizon/commit/1462df3376afdfab499fcf60aaa4c89fe56fa840
hab ich die Oberflächen der grafischen Editoren ein wenig aufgeräumt und
nicht allzu oft benötigt Tools in das Hamburger-Menü gestopft.
Helmut S. schrieb:> Von 3D ist dann nichts zu sehen. Wenn amn dann ein resize des> Layoutfensters macht sieht das aus wie im Anhang (2. Bild,> Screenshot_from_2017-10-31_19-04-30.png)
Dann ist das Wohl ein Bug in der Gtk-Version bzw. dem Zusammenspiel mit
X11/Wayland die Ubuntu beiliegt...
Dass das nicht-füllen der Planes an der GPU liegt kann ich mir gerade
nicht so richtig ausmalen, da diese (aus OpenGL-Sicht) genau so wie
gefüllte Pads gezeichnet werden.
>> Helmut S. schrieb:>> Von 3D ist dann nichts zu sehen. Wenn amn dann ein resize des>> Layoutfensters macht sieht das aus wie im Anhang (2. Bild,>> Screenshot_from_2017-10-31_19-04-30.png)>> Dann ist das Wohl ein Bug in der Gtk-Version bzw. dem Zusammenspiel mit> X11/Wayland die Ubuntu beiliegt...>
Dieses Problem habe ich bei dem selben Rechner auch in Ubuntu 16.04 und
da ist kein Wayland drin.
Kann natürlich auch an der doch älteren Grafikkarte liegen. Müsste mal
schauen ob ich noch eine Festplatte opfere und Ubuntu 17.10 auf einenm
anderen Rechner testen kann.
Helmut S. schrieb:
>> Da sind ein Teil der Toolbuttons in dem Button rechts mit den 3 kleinen>> waagrechten Strichen versteckt.> Das ist Absicht ;) In> https://github.com/carrotIndustries/horizon/commit...> hab ich die Oberflächen der grafischen Editoren ein wenig aufgeräumt und
nicht allzu oft benötigt Tools in das Hamburger-Menü gestopft.
Mir hatte die ältere Version besser gefallen. Bin da aber flexibel. Wer
weiß schon wieviel "Knöpfe" da noch kommen. :-)
Lukas K. schrieb:> Possetitjel schrieb:>> Super.>> Wenn ich den Hersteller wechsle, müsste ich den Schaltplan>> anpassen :/>> Nein. Am Beispiel Widerstand mal erklärt, wie ich mir das> vorgestellt hab: Horizon unterscheidet "Part" und "Entity".> Jeder Widerstand mit zwei Beinen, egal welcher Wert und> Hersteller ist durch die Entity "Two-terminal Resistor"> definiert. Das Part fügt dem dann Hersteller, Wert,> Teilenummer und Package hinzu. Wichtig für die Netzliste> ist die Entity.
Kein schlechter Ansatz, aber nicht zu Ende gedacht.
Possetitjel schrieb:> Kein schlechter Ansatz, aber nicht zu Ende gedacht.
Was fehlt? Man kann auch erstmal generische Bauteile (nur Entity) ohne
Part platzieren und erst gegen Ende Parts zuweisen, wenn einem das so
besser gefällt.
Lukas K. schrieb:> Possetitjel schrieb:>> Kein schlechter Ansatz, aber nicht zu Ende gedacht.>> Was fehlt?
Der Wille zur Beschränkung :)
Ich denke seit einigen Monaten über eine Bauteildatenbank
nach und weiss daher, dass die Relation von Herstellern,
Typen, Footprints usw. kompliziert ist.
Datenblätter (in unterschiedlichen Versionen), SPICE-
Modelle und Lieferanten wollen auch noch verwaltet sein,
von (firmeninternen) Bauteilnummern, Stücklisten und
Bestellungen gar nicht zu reden...
Der Kern einer Layoutsoftware ist, dass man Footprints
platzieren und Leiterzüge verlegen kann. Über den ganzen
Rest soll sie mir so wenig Vorschriften machen wie möglich.
Possetitjel schrieb:> Über den ganzen Rest soll sie mir so wenig Vorschriften machen wie> möglich.
Vorschriften nicht, aber den Rest mitverwalten ist nicht schlecht.
Bei Altium kann man eine externe Datenbank für die Teileverwaltung
reinhängen, das kann bspw. eine Excel-Tabelle sein. Die enthält
dann außer Symbol und Footprint noch beliebig weitere Spalten, die
man beim Erstellen der BOM rausdumpen kann. Damit bekommt man eine
BOM, die man direkt dem Fertiger in die Hand drücken kann.
Excel ist dabei (leider) offenbar ein ziemlicher de-facto-Standard.
Wenn man das nicht direkt erzeugen will, kann man natürlich allemal
auch CSV rauswerfen und das hernach in Excel oder Openoffice Calc
reinziehen.
Als Datenbank sollte sicher auch eine SQL-DB gehen, aber sowas hat
halt nicht jeder, und bis auf sqlite brauchen sie einen Server. Gibt's
für sqlite ein gescheites Frontend zum Editieren? Das scheint mir
ansonsten der wesentliche Grund zu sein, warum die Leute da eine
Excel-Tabelle nehmen. Die ist ansonsten ja eher nachteilig, bspw.
kann man sie nicht im Excel schreibend öffnen, wenn Altium sie gerade
in den Fingern hat.
>>> Helmut S. schrieb:>>> Von 3D ist dann nichts zu sehen. Wenn amn dann ein resize des>>> Layoutfensters macht sieht das aus wie im Anhang (2. Bild,>>> Screenshot_from_2017-10-31_19-04-30.png)>>>> Dann ist das Wohl ein Bug in der Gtk-Version bzw. dem Zusammenspiel mit>> X11/Wayland die Ubuntu beiliegt...>>>Dieses Problem habe ich bei dem selben Rechner auch in Ubuntu 16.04 und
da ist kein Wayland drin.
Kann natürlich auch an der doch älteren Grafikkarte liegen. Müsste mal
schauen ob ich noch eine Festplatte opfere und Ubuntu 17.10 auf einenm
anderen Rechner testen kann.
Ich habe jetzt das AppImage auf einem Rechner mit neuerer
Grafikkarte(GTX560) mit Ubuntu 17.10 (Wayland, X) getestet.
https://download.opensuse.org/repositories/home:/frank_kunz/AppImage/
Die Flächen werden jetzt wie gewünscht auch gefüllt dargestellt.
Der Aufruf von 3D wirft eine Fehlermeldung, aber keine 3D Ansicht.
Fenster: Erstellen des OpenGL-Kontetxts ist gescheitert.
Anschließend kann man auch mit dem PCB nicht mehr vernünftig
weiterarbeiten da ab da massive Grafikfehler im PCB-Fenster auftreten.
Schade. Für mich steht fest, dass da irgend eine Bibliothek fehlt.
Da werde ich wohl endgültig auf einem WIN-PCB weitertesten. Auspacken ->
funktioniert.
Hallo Lukas, bitte die WIN-Version aktuell halten.
http://0x83.eu/horizon-zip/
Gruß
Helmut
Helmut S. schrieb:> Schade. Für mich steht fest, dass da irgend eine Bibliothek fehlt.
Das zieht sich doch schon durch den ganzen Thread. Eine typische
FOSS-Geschichte - einfach alles an Abhängigkeiten reinziehen, was
irgendwie sexy ist, kost ja nix. Und sich dann wundern, wieso das
Ergebnis ausschließlich auf dem Dev-Rechner läuft.
Und natürlich bleeding edge, damit man LTS-Anwendern mal gepflegt zeigen
kann, wie verwerflich es schon rein moralisch ist, einen Linuxrechner
für etwas anderes als Systemupdates und Alphatests nutzen zu wollen.
Nop schrieb:> Das zieht sich doch schon durch den ganzen Thread.
Nörgeltanten wie du ziehen sich leider auch schon durch den ganzen
Thread. Ich denke, darauf könnten nicht nur Lukas sondern auch seine
Tester gern verzichten.
Jörg W. schrieb:> Ich denke, darauf könnten nicht nur Lukas sondern auch seine> Tester gern verzichten.
So, das denkst Du. Shoot the messenger, was? Und was denkst Du sonst
noch so? Daß die Problematik besser wird, wenn keiner sie anspricht?
Nop schrieb:> Daß die Problematik besser wird, wenn keiner sie anspricht?
Dass bis dann, wenn das Programm für die Massen spruchreif wird, die
derzeit als „verfrüht“ betitelten Versionen irgendwelcher Bibliotheken
sowieso Standard sein werden.
Das schrieb ich übrigens auch schon zu Beginn des Threads. Über einen
Teil dessen, was damals noch „bleeding edge“ war, diskutiert nun schon
keiner mehr.
Aber Hauptsache, man kann pauschal auf „typisch FOSS“ meckern. Etwas
Substanzielles beitragen – ничего, nada, wozu auch?
Jörg W. schrieb:> Dass bis dann, wenn das Programm für die Massen spruchreif wird, die> derzeit als „verfrüht“ betitelten Versionen irgendwelcher Bibliotheken> sowieso Standard sein werden.
Es ist aber nicht nur ein Problem für die Massen, sondern schon fürs
Testing. Wie man leicht mitlesen kann, wenn man nicht in einer
primitiven "shoot the messenger"-Denke festklebt.
> Aber Hauptsache, man kann pauschal auf „typisch FOSS“ meckern.
Diese Problematik IST nunmal typisch für FOSS.
> Etwas Substanzielles beitragen
Substantieller als Du mit "shoot the messenger" wäre ich ja schon, wenn
ich auch nur die Uhrzeit ansagen würde. Wenn EINES jeder Art von
vernünftigem testen abträglich ist, dann Jubelperser, die um Himmels
Willen keine Probleme hören wollen.
Von Profizeug wie Erwägungen, inwieweit Testergebnisse ohne jedes
Config-Management überhaupt irgendeine Aussage haben, will ich gar nicht
erst anfangen.
Aber gut, ich bin ja schon ruhig. Keiner hat was gesagt, keiner hat was
gesehen, HURRAAAAA alles gut. Jetzt zufrieden?!
Jörg W. schrieb:> Vorschriften nicht, aber den Rest mitverwalten ist nicht> schlecht.
Hmmja.
Der Knackpunkt dabei sind letztlich die Projektdaten: Kann
ich mit denen unabhängig von DIESER konkreten Software etwas
anfangen oder nicht?
Für Datenblätter, SPICE-Modelle und SPICE-Files ist das
gewährleistet; für Gerber-Daten auch. Aber dazwischen?
Ja, gut... Netzlisten. Und sonst?
> Bei Altium kann man eine externe Datenbank für die> Teileverwaltung reinhängen, das kann bspw. eine> Excel-Tabelle sein.
Altium scheint allgemein ziemlich viel richtig zu machen,
will mir scheinen.
Nach meinem Eindruck ist das eine zwei-Klassen-Gesellschft:
Einerseits die Anwender, die mehrere Tausend Euro für die
ECAD-Software raushauen können, und andererseits alle die,
die das nicht können und mit Target, Eagle &Co. leben müssen.
> Excel ist dabei (leider) offenbar ein ziemlicher> de-facto-Standard. Wenn man das nicht direkt erzeugen> will, kann man natürlich allemal auch CSV rauswerfen> und das hernach in Excel oder Openoffice Calc reinziehen.
Ein schlechter Standard ist besser als gar keiner. Schlecht
für die Programmierer, gut für die Anwender. Excel verwenden
die Leute sowieso, das ist also erstens vorhanden, und das
können die Leute zweitens halbwegs bedienen.
> Als Datenbank sollte sicher auch eine SQL-DB gehen, aber> sowas hat halt nicht jeder,
So ganz blicke ich da sowieso nicht durch.
Selbst OpenOffice bringt OOBase mit. Es wäre doch das
Logischste von der Welt, dass man die Daten, die zu komplex
für Excel sind, damit verwaltet. Das scheint aber im großen
und ganzen nicht üblich zu sein.
An der Datenmenge kann's nicht liegen. Selbst heftig
produzierende Kleinunternehmen kommen mit 10'000 Datensätzen
in der Bauteildatenbank aus; da lacht jede Datenbank drüber.
Mysteriös...
Helmut S. schrieb:> Der Aufruf von 3D wirft eine Fehlermeldung, aber keine 3D Ansicht.> Fenster: Erstellen des OpenGL-Kontetxts ist gescheitert.
Selbiges Problem sehe ich auch, interessanterweise auch auf meinem
System auf dem die lokal kompilierten Binaries problemlos laufen.
> Anschließend kann man auch mit dem PCB nicht mehr vernünftig> weiterarbeiten da ab da massive Grafikfehler im PCB-Fenster auftreten.
Das habe ich auch mit Ubuntu 17.10 beobachtet. Könnte was mit Wayland zu
tun haben, ist aber nur Spekulation.
Ab diesem Punkt (OpenGL/3D) wird es wohl kompliziert AppImages zu bauen.
Etwas Google Suche hat da auch mehr Beiträge mit Problemen als Lösungen
gefunden. Vielleicht könnte Softrendering erzwungen werden, dann würde
die Arbeit mit horizon aber wohl keinen Spaß mehr machen. Zur Not hilft
nur selber kompilieren, zum Glück ist das mit FOSS möglich... ;-)
Gruß,
Frank
> Zur Not hilft nur selber kompilieren, zum Glück ist das mit FOSS möglich... ;-)
Das habe ich gleich mal probiert.
Anleitung von hier:
https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Linux
sudo apt install libyaml-cpp-dev libsqlite3-dev util-linux librsvg2-dev
\
libcairomm-1.0-dev libepoxy-dev libgtkmm-3.0-dev uuid-dev
libboost-dev \
libzmq5 libzmq3-dev libglm-dev
Dann zip-Datei mit "clone or download" geholt und ausgepackt. Dann make.
make
Das compiliert eine Menge Files und bricht dann ab mit Fehlermeldung
siehe unten.
make: *** Keine Regel vorhanden, um das Ziel „.git/HEAD“,
benötigt von „gitversion.cpp“, zu erstellen. Schluss.
Was muss man da mit "git" vorher machen/installieren?
dann sollte "make" durch laufen. Das Problem ist wohl dass in der *.zip
Datei keine git Metadaten enthalten sind. Diese werden jedoch benötigt
um einen git-Versionsstring in die Applikation einzukompilieren.
Gruß,
Frank
Hallo Frank,
vielen Dank für deine Hilfe. Ohne deine Anleitung hätte ich das nicht
geschafft.
Git hatte ich hier schon geholt. Wusste aber dann nicht weiter.
https://www.howtoforge.com/tutorial/install-git-and-github-on-ubuntu-14.04/
git clone https://github.com/carrotIndustries/horizon.git
Gerade ist der Compiler fertig geworden.
Habe dann im Dateimanager auf horizon-prj-mgr Doppelklick gemacht. Dann
kam eine Fehlermeldung: "horizon-pool-mgr" konnte nicht angezeigt
werden. Irgendwas mit fehlendem MIME Type kam dann auch noch.
Ich habe dann das Ganze aus einem Terminal gestartet.
./horizon-prj-mgr
Hurra. Es geht, auch 3D geht fehlerlos.
(Inzwischen ist aus meiner Ubuntu 17.10 Wayland zwangsweise ein Ubuntu
17.10 X geworden nachdem ich versuchsweise den NVIDIA Grafiktreiber
installiert hatte.)
Ich glaube da bekomme ich jetzt so etwas wie eine Äquatortaufe wie bei
den Seefahrern, wenn sie das erste Mal den Äquator erreicht haben.
Gruß
Helmut
Mac G. schrieb:> Obwohl ich Altium zur Verfügung habe und das auch Simulieren kann, nutze> ich noch immer viel lieber LTSpice für analoge Geschichten.
Hast Du die Möglichkeiten von Altium und pSpice voll ausgenutzt?
> Man kann sowieso nur selten die komplette Schaltung simulieren - man> simuliert nur die kritischen Teile davon.
Gut, das ist wahr.
> Für HF-Kram gibts dann wieder andere Tools...
Hyper-Lnyx?
Hallo Lukas,
erstmal Danke für die Energie, die du in horizon steckst. Ich habe
bisher nicht viele EDA Programme genutzt, muss aber sagen, das horizon
spätestens auf den zweiten Blick recht gut bedienbar ist. Vorallem, weil
du einige gute Konzepte von Blender übernommen hast.
Ich habe mal Debian-Pakete erstellt, was insgesamt ganz reibungslos
klappte. Den Pool habe ich auch in ein eigenes Paket gesteckt und dabei
ist die Frage aufgekommen, ob man mehrere Pools gleichzeitig nutzen kann
und wo die erstellte
Pool-Datenbank abgelegt wird? Kann man die .json Dateien read-only unter
/usr/share/horizon ablegen und diesen Pool damit allen Nutzern zur
Verfügung stellen? Muss die pool.db dann auch dort liegen oder könnte
die auch unter /var/lib/horizon oder möglicherweise für jeden Benutzer
in ~/.horizon/ abgelegt werden? Kann ein Benutzer einen eigenen Pool in
seinem Home ablegen?
Uwe
PS: Ein eigenes Forum oder eine Mailingliste hat horizon nicht, oder?
Ah, du warst also der mit den Issues, auf github letztens. Danke fürs
Testen, gibt doch immer wieder Dinge die einem durch die Lappen gehen.
Uwe S. schrieb:> erstmal Danke für die Energie, die du in horizon steckst. Ich habe> bisher nicht viele EDA Programme genutzt, muss aber sagen, das horizon> spätestens auf den zweiten Blick recht gut bedienbar ist. Vorallem, weil> du einige gute Konzepte von Blender übernommen hast.
Danke für die Blumen :) Schön dass das mal jemandem auffällt. Ich hatte
nur mal kurz Blender benutzt und Dinge wie das Leertaste-Menü und dass
der Cursor am Canvas-Rand wieder zurückspringt haben mir gefallen und
waren recht einfach einzubauen.
> Den Pool habe ich auch in ein eigenes Paket gesteckt und dabei> ist die Frage aufgekommen, ob man mehrere Pools gleichzeitig nutzen kann> und wo die erstellte> Pool-Datenbank abgelegt wird? Kann man die .json Dateien read-only unter> /usr/share/horizon ablegen und diesen Pool damit allen Nutzern zur> Verfügung stellen? Muss die pool.db dann auch dort liegen oder könnte> die auch unter /var/lib/horizon oder möglicherweise für jeden Benutzer> in ~/.horizon/ abgelegt werden? Kann ein Benutzer einen eigenen Pool in> seinem Home ablegen?
Den Pool zu paketieren halte ich für nicht sinnvoll. Mir schwebte der
Pool in der Anwendung so vor: Der Anwender klont sich den Pool irgendwo
in sein Home und macht regelmäßig git pull. Eigene Bauteile sollen dann
auch in dem Pool angelegt und mit Pull request eingepflegt werden.
Derzeit ist das ein muss wenn man sein Projekt veröffentlichen will, da
Projekte die verwendeten Bauteile nicht zwischenspeichern. Steht aber
auch noch auf meiner todo-Liste, dass sich das ändert. Mal sehen, wie
die Idee mit dem globalen Pool so in der Praxis bewährt, falls
tatsächlich mal eine signifikante Anzahl von Leuten horizon ernsthaft
benutzt.
> PS: Ein eigenes Forum oder eine Mailingliste hat horizon nicht, oder?
Für's Erste müssen der Thread hier und die Issues auf github reichen. So
groß war der Andrang bis jetzt noch nicht, dass sich das lohnen würde.
Inzwischen gibt's auch einige neue potentiell nützliche Features:
- Man kann Canvas-Farbe und Grid-Darstellung einstellen
- "Dimensions" um im Board Abstände zu kennzeichnen
- Beim Routen wird nun wie bei KiCad oder Altium das Netz hervorgehoben
- Cross-Probing von Schaltplan zu Board und umgekehrt
Lukas K. schrieb:>> Uwe S. schrieb:>> Den Pool habe ich auch in ein eigenes Paket gesteckt und dabei>> ist die Frage aufgekommen, ob man mehrere Pools gleichzeitig nutzen kann>> und wo die erstellte>> Pool-Datenbank abgelegt wird? Kann man die .json Dateien read-only unter>> /usr/share/horizon ablegen und diesen Pool damit allen Nutzern zur>> Verfügung stellen? Muss die pool.db dann auch dort liegen oder könnte>> die auch unter /var/lib/horizon oder möglicherweise für jeden Benutzer>> in ~/.horizon/ abgelegt werden? Kann ein Benutzer einen eigenen Pool in>> seinem Home ablegen?>> Den Pool zu paketieren halte ich für nicht sinnvoll. Mir schwebte der> Pool in der Anwendung so vor: Der Anwender klont sich den Pool irgendwo> in sein Home und macht regelmäßig git pull. Eigene Bauteile sollen dann> auch in dem Pool angelegt und mit Pull request eingepflegt werden.> Derzeit ist das ein muss wenn man sein Projekt veröffentlichen will, da> Projekte die verwendeten Bauteile nicht zwischenspeichern. Steht aber> auch noch auf meiner todo-Liste, dass sich das ändert. Mal sehen, wie> die Idee mit dem globalen Pool so in der Praxis bewährt, falls> tatsächlich mal eine signifikante Anzahl von Leuten horizon ernsthaft> benutzt.
Dann wird es in der Tat kritisch, wenn Andere Anwender Bauteile ändern
und ich mir
diese Änderungen auf mein Board hole. Für diesen Fall müsste man die
verwendeten Bauteile auch im Projekt ablegen und nur auf Wunsch aus dem
Pool
auf den aktuellen Stand bringen. Ich glaube, dass man auf Dauer nicht um
einen lokalen Pool herumkommt. Auch, weil für viele Anwender der Umgang
mit git eine zu große Hürde ist. Ein globaler Pool erfordert vorallen
genaue Regeln für die Vergabe von Bezeichnern und Dateinamen sowie eine
sinnvolle Ordnerstruktur, sonst endet das schnell im Chaos.
Eine grundsätzliche Frage zur Erstellung von Bauteilen haben ich auch
noch.
Wenn man z.B. ein DIP8 Package für einen ATtiny85 erstellt, dann kann so
ein
Package durchaus unterschiedliche Padstacks verwenden. Beispielsweise
durchgängig runde Padstacks oder 7 runde und einen eckigen für Pin 1,
oder
auch ovale Padstacks. Dem Part ordnet man genau ein Package zu. Was ist,
wenn der Anwender dieses Parts ein anderes Package verwenden möchte, das
sich nur in den Padstacks unterscheidet? Braucht man dann mehrere Parts?
In dem Zusammenhang noch eine Frage. Kann man die Zuordnung des Packages
zum Part nachträglich ändern? Mir scheint als wird diese Zuordnung mit
der Erstellung des Parts vorgenommen und kann nicht mehr geändert werden
(es sei denn, man ändert direkt die .json Datei)
> >> PS: Ein eigenes Forum oder eine Mailingliste hat horizon nicht, oder?> Für's Erste müssen der Thread hier und die Issues auf github reichen. So> groß war der Andrang bis jetzt noch nicht, dass sich das lohnen würde.>> Inzwischen gibt's auch einige neue potentiell nützliche Features:> - Man kann Canvas-Farbe und Grid-Darstellung einstellen> - "Dimensions" um im Board Abstände zu kennzeichnen> - Beim Routen wird nun wie bei KiCad oder Altium das Netz hervorgehoben> - Cross-Probing von Schaltplan zu Board und umgekehrt
Stoße ich bestimmt noch drauf, wenn ich mich mal an ein Board mache.
Uwe
Es wäre schön wenn sich die Nutzer mit Benutzernummer und Passwort in
der Bibliothek einloggen würden.
Wenn sie dann im Programm sind können sie dann ein Bauteil anklicken und
es auf ihren Account im Internet laden.
Alle anderen Nutzer sehen diese Bauteile dann ebenfalls und können
darunter Kommentare schreiben oder dieses Bauteil bewerten.
Es wäre schön wenn das alles aus der Anwendung heraus funktionieren
würde, also ohne Browser.
Für die Bauteile bräuchte man auch eine Versionierung und Mods müssten
verhindern dass Unfug getrieben wird.
Schön wäre es wenn man eine Favoritenliste anlegen kann in der nur die
Bauteile sind die man so braucht.
z.B. Widerstände, Kondensatoren, generell den Atmel-Chips-Ordner oder
man wählt sogar nur den ATmega328P.
Wenn ich nur SMD-Widerstände der Bauform 0603 verwende, dann sollte
dieser Typ wenn man einen Widerstand einfügt als Voreinstellung
gespeichert werden.
Wie verändert ihr eigentlich die Breite der Leitungen?
Mike J. schrieb:> Mods müssten verhindern dass Unfug getrieben wird.
Ziemlich viel Aufwand, meinst du nicht?
Industrielle Anwender (falls die jemals im Blickfeld sein sollten)
brauchen das alles nicht. Die wollen in den meisten Fällen sowieso
alles von A bis Z selbst machen. OK, Symbole für Widerstände und
Transistoren nimmt man sicher gern mit, aber alles, was nennenswert
komplexer ist, gibt man da nicht aus der Hand.
Uwe S. schrieb:> Dem Part ordnet man genau ein Package zu. Was ist,> wenn der Anwender dieses Parts ein anderes Package verwenden möchte, das> sich nur in den Padstacks unterscheidet? Braucht man dann mehrere Parts?
Derzeit ja, mal nachdenken wie man das am sinnvollsten handhaben kann.
> In dem Zusammenhang noch eine Frage. Kann man die Zuordnung des Packages> zum Part nachträglich ändern?
Eigentlich ist es nicht vorgesehen bereits im Pool vorhandene Bauteile
zu Verändern. Zeitnah wird es noch ein "Deprectated"-Flag geben.
Rein technisch gibt es hingegen keinen Grund weshalb das Package nicht
änderbar ist. In einer früheren Version des Part Editors ging das auch
mal, aber die Logik wurde mir dann für den Nutzen zu komplex und ist
dann als der Pool Manger kam rausgeflogen.
Mike J. schrieb:> Es wäre schön wenn sich die Nutzer mit Benutzernummer und Passwort in> der Bibliothek einloggen würden. [...]
Gibt es doch schon, nennt sich github. Das deckt so ziemlich alle der
Punkte ab, bis auf vielleicht Integration in die Anwendung. Wem die cli
von git nicht gefällt, der soll eben einen der Zahlreichen GUI-Clients
verwenden. Auf Server-Krams mit Benutzerverwaltung hab ich keinen Bock,
das können und machen andere schon besser. Wenn jemand git-Integration
in den Pool Manger einbauen will, gerne doch.
Mike J. schrieb:> Schön wäre es wenn man eine Favoritenliste anlegen kann in der nur die> Bauteile sind die man so braucht.
Gibt es schon im "Part Browser" im Projektmanager.
Mike J. schrieb:> Wie verändert ihr eigentlich die Breite der Leitungen?
Wurde von mir schon weiter oben im Thread ausführlich beantwortet.
Jörg W. schrieb:> Industrielle Anwender (falls die jemals im Blickfeld sein sollten)> brauchen das alles nicht.
Genau. Auch wenn das jetzt ein wenig arg ambitioniert klingen mag, sehe
ich als Zielgruppe Entwickler von Projekten ca. dieser Größenordnung:
http://hforsten.com/third-version-of-homemade-6-ghz-fmcw-radar.html
Damit könnte es vielleicht auch für so manche Firma in ferner Zukunft
interessant werden.
Im Firmeneinsatz ist dann in der Tat vorgesehen, dass man sich seinen
eigenen Pool pflegt. Der "Community"-Fall ist dann ähnlich, nur dass wir
eben alle bei der selben Firma sind ;)
Lukas K. schrieb:> Gibt es doch schon, nennt sich github. Das deckt so ziemlich alle der> Punkte ab, bis auf vielleicht Integration in die Anwendung.
Bezüglich der Integration würde es ausreichen einen visuellen diff für
Schaltplan, Board und Packages zu haben. Also einen Viewer der zwei
Board|Schematic|Package Dateien laden und diese vergleicht indem z.B.
beide in unterschiedlichen Farben übereinander gelegt werden.
Ich habe so etwas für KiCAD gabastelt, allerdings ist das recht
unhandlich. Für den Schaltplan checke ich (in git) exportierte PDF
Dateien mit ein, diese vergleiche ich dann mit diffpdf. Für Board
Dateien generiere ich Gerber Dateien welche ich mit einchecke, diese
lege ich dann auf zwei separate Layer (grün/rot) in gerbv, diese werden
dann, bei Überlappung, gelb angezeigt, sonst in rot oder grün.
Mike J. schrieb:> Wie verändert ihr eigentlich die Breite der Leitungen?
Helmut S. schrieb:
> Warum ist eigentlich im Layout das Feld für Track->width grau(nicht> änderbar)?
Das liegt daran, dass der Schalter "Width from rules" an ist. Damit
werden die Leiterbahnbreiten entsprechend der Regeln unter "Track Width"
gesetzt. Wie bei allen anderen Regeln auch wird die angewendet, die als
erstes zutrifft.
Das Makefile (eines der ersten Dinge auf die ich schaue) sieht schonmal
ordentlich aus.
Problem: es wird eine neuere gtkmm-Version benötigt, die in vielen
LTS-Distros nicht drin ist (bitte nicht immer auf bleeding-edge
verlassen - das macht grade im Industrie-Bereich Schmerzen ;-)).
Wäre schön, wenns auch ohne GLArea ginge.
gtk(mm) hochziehen macht man auch nicht gerade in der Kaffepause,
zieht einen ziemlich langen Rattenschwanz nach sich.
Enrico W. schrieb:> bitte nicht immer auf bleeding-edge> verlassen
Diese Diskussion hatten wir schon ganz am Anfang. Kannst du da
nachlesen, bevor du versuchst, sie hier neu aufzurollen.
Enrico W. schrieb:> Wäre schön, wenns auch ohne GLArea ginge.
Und das schon gar nicht. GLArea kam mit GTK 3.16 -- darauf hatten viele
gewartet, da es die Interaktion mit GL stark vereinfachen sollte. Und
GTK 3.16 ist ja schon jetzt extrem alt, GTK3.20 oder 22 sollte heute
eigentlich jeder haben. Wenn Horizon fertig ist, haben wir eh längst
GTK4.
Enrico W. schrieb:> Problem: es wird eine neuere gtkmm-Version benötigt, die in vielen> LTS-Distros nicht drin ist
Ich habe extra ein Xubuntu 17.10 aufgesetzt, damit compiliert Horizon
(nach ein paar apt install) out-of-the-box. Selbst der Fehler von Frank
K. (am 8.11.) kam bei mir nicht. 17.10 hat gcc 7.2. Ich bin inzwischen
davon abgewichen, hier Backports zu fordern, weil
1) wenn Horizon für Endanwender benutzbar wird, sind eh die nächsten LTS
Versionen da. Allerdings hoffe ich, dass dann Horizon nicht immer noch
bleding edge ist, sondern z.B. mit der Ubuntus LTS 18.4 kompilierbar.
Darauf sollte man achten
2) so sehr ich KiCad schätze, so nervt mich dann doch auch die
verschiedenen Canvases. Horizon setzt gleich auf OpenGL, und dass ist
gut. Ich habe gestern mit der neusten Version (von Horizon) mal eine
Stunde gelayoutet. Der interaktive Router mit walk-around und PnS ist
wirklich schon brauchbar!
3) Lukas scheint echt fähig zu sein! (Lob!) Ich will, dass er seine Zeit
in die Weiterentwicklung (neue Features, Bugfixes) von Horizon steckt,
nicht in Backports.
Mir macht das Benutzen von Horizon inzwischen fast mehr Spaß als KiCad.
Abgestürzt ist es mir gar nicht. Auch der Bauteileeditor scheint
brauchbar zu sein. Alles wichtige scheint da zu sein! Lob!
Wenn ich mehr Zeit habe, werde ich ein paar Bauteile anlegen und mal ein
Projekt durchziehen. Das Pool Konzept ist (wenn man glaubt, es halbwegs
verstanden zu haben) von der Idee her nicht schlecht.
https://github.com/carrotIndustries/horizon/wiki/The-Pool
Allerdings wird man wohl für (fertige) Projekte einen lokalen Pool haben
wollen, oder man freezed die verwendeten Bauteile in der entsprechenden
Version. Merkt sich der Pool die verwendete Version? Github sollte dies
ja tun, aber auch der Pool auf meinem Rechner?
Was ich beim layouten am meisten vermisst haben, war eine Option,
verbundenen Leiterbahnsegmente auf einmal zu selektieren.
Aber nochmal Lob an Lukas, bisher gute Arbeit!
tester schrieb:> Merkt sich der Pool die verwendete Version? Github sollte dies> ja tun, aber auch der Pool auf meinem Rechner?
Dazu noch was: Wenn man ein Bauteil einsetze, dann prüft man ja, ob es
für die Verwendung im Projekt geeignet, das "Richtige" ist. Nach diesem
Vorgang möchte man ja keine Änderungen mehr. Wenn nun "jemand" im Github
Pool das Bauteil ändert, hat man ja möglicherweise ein Problem. Auch
wenn man ein Projekt weitergibt, sollte der Empfänger ja genau das
"richtige" Bauteil verwenden.
Mögliche Lösungsansätze:
1) Ein lokaler Pool, der zum Projekt abgespeichert bzw. mitgegeben wird
Problem: Jetzt hat man durch die Hintertür das Libs Konzept wieder
eingeführt, was zum Chaos führen kann
2) Horizon holt sich vom Github Pool genau das passende Bauteil in der
damals verwendeten Version. Das sollte möglich sein. Problem: Wenn der
Server nicht mehr erreichbar ist. Lösung: Auch der lokale Pool (als
Clone von Github Pool) hat alle Versionen, nicht nur die aktuellste.
Kann dann natürlich mit der Zeit sehr groß werden.
3) Horizon speichert zusätzlich alle verwendeten Bauteile im Projekt mit
ab
Bei einer Änderung des Bauteils kommt eine Nachricht, die die
Unterschiede des lokalen Bauteils und des aktuellen aufzeigt (diff).
Unterschied zur Lösung 1: Der "lokale" Pool für das Projekt ist hier
versteckt. Er tritt nur auf, wenn explizit von Horizon eine Veränderung
in einem bereits verwendeten Bauteil entdeckt wird.
Ach ja: Im Moment sollte man in dieses Problem wohl noch keine größere
Zeit investieren, es aber im Hinterkopf behalten.
tester schrieb:> Dazu noch was: Wenn man ein Bauteil einsetze, dann prüft man ja, ob es> für die Verwendung im Projekt geeignet, das "Richtige" ist. Nach diesem> Vorgang möchte man ja keine Änderungen mehr. Wenn nun "jemand" im Github> Pool das Bauteil ändert, hat man ja möglicherweise ein Problem. Auch> wenn man ein Projekt weitergibt, sollte der Empfänger ja genau das> "richtige" Bauteil verwenden.
Sorry aber genau dieser Absatz sollte dir doch zeigen wie abstrus die
Idee ist, quasi live auf öffentliche Bauteil-Repos zuzugreifen.
NIEMAND der auch nur fortgeschrittener Hobbist ist, tut oder will so
was.
Ohne lokale Libs ist das ganze im (Semi) Prof. Bereich TOT. Hat von euch
denn so gar niemand Erfahrung in diesem Bereich?
Cyblord -. schrieb:> Sorry aber genau dieser Absatz sollte dir doch zeigen wie abstrus die> Idee ist, quasi live auf öffentliche Bauteil-Repos zuzugreifen.
Witzbold! Warum schrieb ich denn den Beitrag? Warum habe ich darauf
hingewiesen und sogar mögliche Lösungsansätze gebracht?
> NIEMAND der auch nur fortgeschrittener Hobbist ist, tut oder will so> was.
Im Moment interessiert es aber nicht! Außerdem kann man jetzt schon
Lösung 1 verwenden, also einen lokalen Pool zum Projekt betreiben.
> Ohne lokale Libs ist das ganze im (Semi) Prof. Bereich TOT. Hat von euch> denn so gar niemand Erfahrung in diesem Bereich?
Du bist wohl wie ein Tierarzt, der bei der geringsten Wunde beim Hund
als einzige Lösung "einschläfern" bleibt.
Lukas K. schrieb:> Horizon kann genau das. Man kann ohne "Part" anfangen und später mit> "assign Part" dem "Component" ein "Part" zuweisen. Nachträglich kann man> natürlich das Part auch austauschen.Lukas K. schrieb:> Man will keinen generischen 10kOhm-Widerstand im Schaltplan haben, den> kann man nirgendwo kaufen. Jedes Bauteil im Schaltplan hat Hersteller> und Teilenummer, sodass man (in Zukunft) direkt die Stückliste bei> octopart einwerfen kann.
Hm... irgendwie widersprichst du dir da. Ich kann zwar generische Parts
plazieren, z.B. den "base 0805 resistor", kann dem aber keine Werte
zuweisen, also z.B. "10k". So macht das aber IMHO wenig Sinn. Ich will
ja gerade beim Schaltplanzeichnen erst mal die Grundfunktionalität
darstellen, ohne mich jetzt schon beim Hühnerfutter um die
Bestellnummern kümmern zu müssen. Beim "basteln" kümmere ich mich eh
nicht darum, da wird der vorhandene 0805 10k Widerstand aufgelötet.
Lukas K. schrieb:> Was fehlt? Man kann auch erstmal generische Bauteile (nur Entity) ohne> Part platzieren und erst gegen Ende Parts zuweisen, wenn einem das so> besser gefällt.
Wie geht das? Oder anders formuliert: Wie kann ich im Schaltplaneditor
einem generischen Bauteil einen Wert zuweisen?
Auch würde dieses Vorgehen die Bauteilebibliotheken gewaltig aufblähen.
Grad bei Widerständen wird wird oft eine ganze Serie in dem Datenblatt
über einen Kamm geschert und oft noch nicht mal genaue Abmessungen der
Lötpads angegeben nur z.B. 0805.
tester schrieb:> Hm...
Gut, dann hast Du es auch noch nicht verstanden :-)
Ich würde einen Auswahlprozess bevorzugen, wo ich zunächst z.B. nur
"Diode", "Widerstand" oder "OpAmp" wähle. Weil ich ja oft noch gar nicht
genau weiss was ich später genau haben will. Nachteil ist, dass man
später sämtliche Elemente exakt spezifizieren muss, also etwa für alle
Kondensatoren den Footprint eintragen. Wenn man gleich eine Kondensator
mit Footprint gewäht hätte, hätte man diesen einfach nur kopieren können
und wäre fertig -- etwa für die Abblockkondensatoren.
Und dann möchte ich, dass man zunächst etwa "Widerstand" wählt, und erst
dann das Bildchen dazu, also Kästchen oder ZickZack. Und dieses Bildchen
soll man später auch ändern können.
Bei OpAmp möchte ich OpAmpSingle wählen können, und dann entweder ein
Bildchen mit VCC/VEE oder zwei separate Bildchen, eins für In+/In-/Out
und eins für Power.
Grundsätzlich wäre der Dialog bei mir: Bauteil wählen, das durch seine
Pins spezifiziert ist. Jeder Pin hat einen Namen wie etwa Vcc oder ARef.
Dann die Bildchen wählen, wobei eine Map_Datei die ursprünglichen Pins
den Pins des Bildchens zuordnet. Eine weitere Map_Datei ordnet den Pins
die Pads im Footprint zu.
Ja, wenn man selbst überlegt statt irgendeine andere EDA Software
abzukupfern, dann ist es nicht ganz so einfach.
Na ich werde demnächst erst mal meinen Ruby Schaltplaneditor nach Nim
portieren, vorläufig bleibe ich beim gEDA Fileformat. Später lese ich
dann noch mal Lukas Ideen nach.
tester schrieb:> Hm... irgendwie widersprichst du dir da. Ich kann zwar generische Parts> plazieren, z.B. den "base 0805 resistor"
Du kannst auch Components platziern, "place component" heißt das tool
dazu. Da ist dann weder Package noch Part noch Wert daran. Die Netzliste
kennt nur Components mit Entities. Optional kann dann dem Component ein
Part zugewiesen werden, wobei die Entity des Parts gleich der Entity des
Components sein muss.
tester schrieb:> Auch würde dieses Vorgehen die Bauteilebibliotheken gewaltig aufblähen.
Jedes Part im Pool braucht eine MPN, damit man einfach die BOM erzeugen
kann.
Stefan S. schrieb:> Ich würde einen Auswahlprozess bevorzugen, wo ich zunächst z.B. nur> "Diode", "Widerstand" oder "OpAmp" wähle. Weil ich ja oft noch gar nicht> genau weiss was ich später genau haben will.
Genau so ist es. Siehe oben.
Stefan S. schrieb:> Grundsätzlich wäre der Dialog bei mir: Bauteil wählen, das durch seine> Pins spezifiziert ist. Jeder Pin hat einen Namen wie etwa Vcc oder ARef.
So ist es hier auch.
> Dann die Bildchen wählen, wobei eine Map_Datei die ursprünglichen Pins> den Pins des Bildchens zuordnet.
Theoretisch können einer Unit mehrere Symbole zugeordnet sein.
> Eine weitere Map_Datei ordnet den Pins> die Pads im Footprint zu.
Ist bei horizon im Part mit drin.
Hallo Lukas,
was macht denn "smash" mit einem Bauteil im Schaltplan bzw. im
PCB-Layout?
Ich sehe da keinerlei Änderung des Bauteils, wenn ich "smash" wähle.
Lukas K. schrieb:> tester schrieb:>> Hm... irgendwie widersprichst du dir da. Ich kann zwar generische Parts>> plazieren, z.B. den "base 0805 resistor">> Du kannst auch Components platziern, "place component" heißt das tool> dazu. Da ist dann weder Package noch Part noch Wert daran. Die Netzliste> kennt nur Components mit Entities. Optional kann dann dem Component ein> Part zugewiesen werden, wobei die Entity des Parts gleich der Entity des> Components sein muss.
Ok, jetzt wird mir die Vorgehensweise klarer. Aber ist das "zuweisen"
nicht eher ein "ersetzen"? Wenn ich meinem Component "two terminal
resistor" ein "base 0805 resistor" zuweise, ist mein Value Wert "10k"
wieder weg. Also muss letzten Endes genau ein Part mit den nötigen
Werten existieren.
Ok, das geht schnell, mit "Create Part from Part" im Pool Manager. Ok,
verstanden, nicht die schnellste Lösung aber machbar.
Helmut S. schrieb:> Ich sehe da keinerlei Änderung des Bauteils, wenn ich "smash" wähle.
Da hat wohl einer nie EAGLE benutzt ;) Smash macht, dass man im
Schaltplan und Board die einem Symbol/Package zugeordneten Texte
verschiebbar werden. Braucht man also spätestens wenn man auf dem Board
die Silkscreen-Texte verschieben will.
tester schrieb:> Also muss letzten Endes genau ein Part mit den nötigen> Werten existieren.
Genau, einen Widerstand mit einem Wert den man eintippt kann man nicht
bei Digikey kaufen.
> Ok, das geht schnell, mit "Create Part from Part" im Pool Manager. Ok,> verstanden, nicht die schnellste Lösung aber machbar.
Es ist Leuten auch freigestellt, Parts mit Skripten en masse zu
erzeugen, wenn man z.B. eine ganze Serie von Widerständen einpflegen
will.
Lukas K. schrieb:> Braucht man also spätestens wenn man auf dem Board die Silkscreen-Texte> verschieben will.
Eigentlich eins der Features, die ich nach dem Weggang von Eagle nie
vermisst habe – jetzt, wo du es sagst.
Wenn man einen Text verschieben will, fasst man ihn einfach an und
schiebt ihn. Während des Schiebens wird sinnvoller Weise eine Linie
dargestellt, zu welchem Bauteil der Text denn gehört. Dabei ist es
ziemlich egal, ob ich nun gerade im Layout oder im Schaltplan bin;
Texte aus dem Weg zu schieben, braucht man in beiden.
Wenn überhaupt, dann braucht man eher das Gegenteil mal: für ein
bestimmtes Bauteil die Texte auf Standardanordnung zurücksetzen. Habe
ich aber, ehrlich gesagt, auch höchst selten Bedarf dafür.
Könnte eigentlich Horizon in einer VMware laufen? Das wäre eine
Variante, wie ich mir mal sowas wie das genannte Xubuntu 17.10 parallel
zu Produktivsystemen installieren könnte, um Horizon zu testen.
Bezüglich 3D in der VM: Altium Designer hat kein Problem damit, und
läuft durchaus flüssig.
Ok, jetzt zum Pool Manager. Ich habe versucht, einen 2x2- Pin Header
anlegen (für den RPi). Es gab ja nur einen Padstack mit Loch, der war
mir zu klein. Ich wollte einen neuen anlegen, habe aber nicht geschafft,
ihm einen Namen zuzuweisen. Edit: Ok, gefunden, man muss im Editor auf
den "Pfeil nach unten" klicken. Ok, wenn man es nicht weiß... die
Menüzeilen von Horizon sind nicht gerade intuitiv. Ich hätte jetzt eher
in einem Menü Datei gesucht, z.B. "Set Name". Dort könnte man auch das
"Save" unterbringen.
Aber: wie werde ich meine missglückten Versuche wieder los?
Jörg W. schrieb:> Lukas K. schrieb:>> Braucht man also spätestens wenn man auf dem Board die Silkscreen-Texte>> verschieben will.>> Eigentlich eins der Features, die ich nach dem Weggang von Eagle nie> vermisst habe – jetzt, wo du es sagst.
Schön ist's nicht so hat sich das leider ergeben... Mal sehen ob mir in
Zukunft da noch was besseres einfällt. Man kann ja auch einfach alles
markieren und smash drücken.
> Könnte eigentlich Horizon in einer VMware laufen? Das wäre eine> Variante, wie ich mir mal sowas wie das genannte Xubuntu 17.10 parallel> zu Produktivsystemen installieren könnte, um Horizon zu testen.> Bezüglich 3D in der VM: Altium Designer hat kein Problem damit, und> läuft durchaus flüssig.
Könnte gut funktionieren wenn VMWare OpenGL 3 kann.
tester schrieb:> Aber: wie werde ich meine missglückten Versuche wieder los?
Im Dateimanager dies JSON-Dateien löschen. Wie oben geschrieben, soll
was einmal im Pool ist eigentlich drin bleiben, daher kann der Pool
Manager nichts löschen.
tester schrieb:> Ok, gefunden, man muss im Editor auf> den "Pfeil nach unten" klicken.
Seit gerade eben gibt es da nun einen Platzhaltertext.
tester schrieb:> Der interaktive Router mit walk-around und PnS ist> wirklich schon brauchbar!
Ich will mich hier jetzt nicht mit fremden Federn schmücken, das ist
einfach der Router, den Leute am CERN für KiCad gebaut haben. Ich hab'
den nur eingebaut.
tester schrieb:> Aber nochmal Lob an Lukas, bisher gute Arbeit!
Danke für die Blumen :)
Uwe B. schrieb:> wirst Du auf der FOSDEM im EDA Devroom vortragen?
Ist eingereicht, mal sehen ob's akzeptiert wird ;)
tester schrieb:> Jetzt hänge ich. Was muss ich wo eintragen, damit ich das Part> erfolgreich speichern kann?
Okay, jetzt wo ich das so seh' ist "Location" der falsche Name für die
Felder. Filename wäre besser, weil da der volle Dateiname mit
.json-Endung rein muss.
Stefan S. schrieb:> Ich würde einen Auswahlprozess bevorzugen, wo ich zunächst> z.B. nur "Diode", "Widerstand" oder "OpAmp" wähle. Weil> ich ja oft noch gar nicht genau weiss was ich später genau> haben will.
Ahh. Ich bin also doch nicht GANZ allein. Danke, Stefan.
> Nachteil ist, dass man später sämtliche Elemente exakt> spezifizieren muss, also etwa für alle Kondensatoren den> Footprint eintragen.
Um diese Zuordnung zu erleichtern, kann man vom User
wählbare Standardannahmen vorsehen. So kenne ich das
auch aus der Praxis: "Wenn nix anderes gesagt wird, ist
Hühnerfutter immer 0805" -- nur als Beispiel.
> Wenn man gleich eine Kondensator mit Footprint gewäht> hätte, hätte man diesen einfach nur kopieren können> und wäre fertig -- etwa für die Abblockkondensatoren.
Naja, das entspricht nicht meiner Denk- und Arbeitsweise.
Wenn ich einen Schaltplan male, will ich nicht darüber
nachdenken müssen, welche Prüfspannung und welche Belast-
barkeit der Widerstand haben muss -- da will ich nur
einen abstrakten, idealen Widerstand in die Schaltung
einfügen.
Wenn die Schaltung dimensioniert ist, guckt man sowieso
häufig nochmal durch, ob sich das benötigte Bauelemente-
sortiment verkleinern lässt.
> Und dann möchte ich, dass man zunächst etwa "Widerstand"> wählt, und erst dann das Bildchen dazu, also Kästchen> oder ZickZack. Und dieses Bildchen soll man später auch> ändern können.
Genau. Das ärgert mich auch immer. -- Dazu braucht man
aber eine Taxonomie für die Bauteile; die Symbole müssten
entsprechende Tags mitbringen, die angeben, in welche
Äquivalenzklasse sie gehören. Rein elektrisch ist ja
scheissegal, ob da ein Ami- oder ein DIN-Widerstand drin
ist.
Eigentlich wünsche ich mir, dass man einen Schaltplan
mit Ami-Symbolen laden und per Knopfdruck alles auf
Euro-Symbole umstellen kann.
> Bei OpAmp möchte ich OpAmpSingle wählen können, und dann> entweder ein Bildchen mit VCC/VEE oder zwei separate Bildchen,> eins für In+/In-/Out und eins für Power.
Ahh. Die Idee ist gut. Man bräuchte einen DRC für den Schalt-
plan und entsprechende Entwurfsregeln, die angeben, dass jeder
"abstrakte" OPV auch eine Stromversorgung braucht.
Eigentlich bräuchte man zwei Schaltpläne bzw. zwei Ansichten:
Eine mit der "abstrakten" Schaltung, und eine, aus der die
Zuordnung hervorgeht, welcher abstrakte OPV zusammen mit
welchen anderen in einem Gehäuse steckt. Hier müsste man
festlegen (können), wo Pinswap/Gateswap zugelassen ist und
wo nicht.
> Grundsätzlich wäre der Dialog bei mir: Bauteil wählen, das> durch seine Pins spezifiziert ist.
Ja -- wobei das "abstrakte" Pins sind, nicht die greifbaren
Anschlüsse am Gehäuse.
> Jeder Pin hat einen Namen wie etwa Vcc oder ARef. Dann die> Bildchen wählen, wobei eine Map_Datei die ursprünglichen> Pins den Pins des Bildchens zuordnet. Eine weitere Map_Datei> ordnet den Pins die Pads im Footprint zu.
Angewandte Graphentheorie.
Die (topologische) Struktur des Schaltplans ändert sich nicht,
wenn ein Bauteil durch ein äquivalentes oder verträgliches
Bauteil ersetzt wird. Ein Festwiderstand lässt sich (topologisch)
äquivalent durch einen anderen Festwiderstand oder einen
ungepolten Kondensator ersetzen; verträgliche Ersetzung geht
durch einen Elko oder eine Diode; Ersetzung durch einen Transistor
geht nicht.
Konkrete Bauteile oder gar Footprints kommen erst viel später
ins Spiel.
> Na ich werde demnächst erst mal meinen Ruby Schaltplaneditor> nach Nim portieren,
Warum? Ist dir Ruby nicht mehr exotisch genug?
> vorläufig bleibe ich beim gEDA Fileformat.
Schön. -- Totgesagte leben übrigens länger: Im Chat sagte der
Boss von pcb-rnd, dass auch ein Fork für gschem in Arbeit ist.
Possetitjel schrieb:> Warum? Ist dir Ruby nicht mehr exotisch genug?
Ruby mit seinem Bytecode-Interpreter und dynamischer Typisierung wäre
heute wie auch Python eben nicht mehr meine erste Wahl. 2010 als ich mit
Ruby anfing war das noch anders, da gab es all die interessanten neuen
Sprachen noch nicht. Und die GTK3-Unterstützung von Ruby ist wohl auch
nicht mehr ganz so toll, Ruby-GTK scheint auch kaum jemand noch zu
verwenden. Und Ruby ist in den letzten Jahren ja (leider) vom Python
weitgehend abgehängt worden.
Aber bei den neuen Sprachen hat man nahezu die Geschwindigkeit von C und
die Einfachheit bzw. das Abstraktionsniveau von Ruby/Python. Und für
grössere Projekte bietet die statische Typisierung Vorteile. Ob nun Nim
die beste Wahl war wird man dann in 10 Jahren sehen -- mir scheint es
momentan die universellste Sprache zu sein, und ich habe auch schon
einige Zeit in die GTK Bindings investiert. Aber ich wüsste fast ein
Dutzend weiterner sehr interessanter Sprachen -- Crystal hätte sich
vielleicht noch eher angeboten, da es Ruby sehr ähnlich ist.
Stefan S. schrieb:> Possetitjel schrieb:>> Warum? Ist dir Ruby nicht mehr exotisch genug?>> Ruby mit seinem Bytecode-Interpreter und dynamischer> Typisierung wäre heute wie auch Python eben nicht mehr> meine erste Wahl.
Dynamische Typisierung sehe ich ein -- aber wen interessiert
der Bytecode?
Wenn es WIRKLICH nicht schnell genug läuft, muss man über
einen besseren Algorithmus nachdenken oder die kritischen
Teile in eine "richtige" Programmiersprache übertragen.
Scriptsprachen sehe ich als Werkzeug für "Rapid Prototyping".
> Und die GTK3-Unterstützung von Ruby ist wohl auch nicht> mehr ganz so toll, Ruby-GTK scheint auch kaum jemand noch> zu verwenden. Und Ruby ist in den letzten Jahren ja (leider)> vom Python weitgehend abgehängt worden.
Die Logik erschließt sich mir nicht.
Wer auf der Suche nach seiner ersten Scriptsprache ist, ist
natürlich ziemlich frei in seiner Entscheidung -- und wird
sich auch bei sehr neuen Sprachen umsehen.
Wer eine Sprache halbwegs beherrscht und ein konkretes Problem
lösen will -- warum sollte der freiwillig wechseln?
Was der Anwendungssoftware fehlt, ist doch nicht technischer
Schnickschnack, sondern echte Integration in die Arbeits-
abläufe. Das hängt nicht von der Programmiersprache ab.
> Aber bei den neuen Sprachen hat man nahezu die Geschwindigkeit> von C
Wann braucht man das?
Was C vor 20 Jahren konnte, kann heute eine Scriptsprache.
> Und für grössere Projekte bietet die statische Typisierung> Vorteile.
Ja -- den Punkt kann ich nachvollziehen.
(Bei dynamischer Typisierung weiss man nicht, wo man die
Kommentare hinschreiben soll -- SCNR)
> Ob nun Nim die beste Wahl war wird man dann in 10 Jahren> sehen -- mir scheint es momentan die universellste Sprache> zu sein, und ich habe auch schon einige Zeit in die GTK> Bindings investiert.
Gerade im Kontext dieses Threads verstehe ich das nicht.
Ich konnte von Deinem Schaltplaneditor nur eine uralte
Version ausprobieren, weil bei mir zufälligerweise nur
GTK2 (und nicht GTK3) installiert ist.
Als Grund für GTK habe ich das Anti-Aliasing beim Rendering
herausgelesen.
Also habe ich experimentiert. Die gEDA-Symbole sehen ohne
Antialiasing übel aus. Man kann Antialiasing mit Standard-Tk
emulieren, wenn man Symbole mit unterschiedlichen Linienbreiten
grau und schwarz übereinanderdruckt. Nicht gerade elegant, aber
es sieht VIEL besser aus -- und funktioniert mit Standard-Tk.
Wozu nochmal genau brauche ich GTK3?
Noch was zu den Padstacks: Bei den Parametern habe ich den "Text"
einfach von vorhanden TH Pad kopiert. Das sieht alles nach RPN aus,
Forth?
Was ist der Hintergrund, hier ein Script einzubauen?
Possetitjel schrieb:>Als Grund für GTK habe ich das Anti-Aliasing beim Rendering>herausgelesen.
Nein. GTK hat mit dem Rendering nichts zu tun. Ich zeichne derzeit mit
Cairo, da es einfach zu nutzen ist und sehr gute Qualität liefert. Auch
Bezier-Kurven, und Backends wie PDF. Vor GTK 3.16 gab es noch keine
GL-Area, da war die Nutzung von OpenGl in GTK Anwendungen schwierig und
aufwendig. Ich werde erstmal bei Cairo bleiben. Wirklich schöne Grafiken
sind mit GL nicht so einfach realisierbar.
> Wozu nochmal genau brauche ich GTK3?
Woher soll ich wissen was Du brauchst. Vielleicht kommst Du ja auch ganz
ohne Computer aus?
Wenn Du jetzt meinst gegenüber GTK2? Das wird ja seit Jahren nicht mehr
gepflegt -- will das noch irgendwer nutzen? Und ob Ruby mit GTK2 besser
funktioniert, weiss ich nicht -- 2011 ging Ruby 1.8 mit GTK2 in der Tat
recht gut.
Aber Sprachen wie Ruby/Python mit Bytecode-Interpreter sind halt eher
etwas langsam. Da ist selbst Go und Haskell weit schneller. Tatsächlich
gibt es nur wenige Fälle, wo Performance egal ist. Bei EDA braucht man
schon etwas Leistung, und man möchte halt nicht immer den neuesten
Rechner kaufen müssen, der einem dann mit Volllast den Akku leersaugt.
tester schrieb:> Was ist der Hintergrund, hier ein Script einzubauen?
Horizon kann Padstacks die aus mehreren Shapes zusammengesetzt sind,
z.B. "SMD half obround". Um Dinge wie Größe, Abstand der Lötstopmaske,
etc. anzupassen müssen Position und Größe der einzelnen Shapes
entsprechend angepasst werden. Die simpelste Lösung, die mir dazu
einfiel, war eben Padstacks ein Skript beizulegen was dies anhand der
Parameter macht. Eine "richtige" Skriptsprache wie Python oder TCL
wollte ich an der Stelle nicht haben, da die Skripte nicht beliebig
lange laufen dürfen. Dokumentiert ist die Sprache an dieser Stelle:
https://github.com/carrotIndustries/horizon/wiki/Parameter-programs
Stefan S. schrieb:> Possetitjel schrieb:>>>Als Grund für GTK habe ich das Anti-Aliasing beim>>Rendering herausgelesen.>> Nein. GTK hat mit dem Rendering nichts zu tun.
Dann verstehe ich's nicht.
>> Wozu nochmal genau brauche ich GTK3?> [...]>> Wenn Du jetzt meinst gegenüber GTK2?
Nein, ich meine z.B. gegenüber Tk.
Tcl/Tk ist der historische Ursprung; Tkinter (Python) ist
mW Standard; Perl/Tk und Ruby/Tk sind zumindest verfügbar.
Wenn man eine ausgesprochene Nischenanwendung (wie EDA) im
Sinn hat, wäre es doch logisch, die rein technischen Hürden
niedrig zu halten, damit von den ohnehin wenigen potenziellen
Mitstreitern nicht auch noch welche durch vermeidbare
Komplikationen abgeschreckt werden.
Davon ist z.B. beim Original-gEDA auch nix zu merken (Scheme?!
Warum denn nicht gleich Brainfuck?); pcb-rnd proklamiert aber,
es besser zu machen.
Du schriebst, Du habest reichlich "Zeit in die GTK-Bindings
investiert" (was immer das heissen mag).
Entschuldige mein tiefgreifendes Unwissen, aber ich habe
(mangels Wissen und mangels Bedarf) noch nie Zeit in irgend
welche Tcl-Bindings investiert. In meinem Script steht etwas
wie "canvas .c; pack .c", und dann kann ich loszeichnen.
Das geht, soweit ich gehört habe, so ähnlich auch in python,
ruby oder perl. Was fehlt noch?
> Aber Sprachen wie Ruby/Python mit Bytecode-Interpreter sind> halt eher etwas langsam.
Ja und?
Das Problem bei dem ganzen EDA-Krempel liegt doch nicht in der
internen Verwaltung der Daten, sondern in der Wechselwirkung
von GUI und Arbeitsablauf.
Da man sowieso eine Trennung von GUI und Geschäftslogik haben
will, kann man die Datenhaltung auch in irgendwas compiliertes
auslagern, wenn die Zeit dafür reif ist. (Schätzungsweise
könnte man das sogar einer SQL-Datenbank beibringen.)
Niemand sagt, dass die Anwendung vollständig und auf Dauer in
einer Scriptsprache geschrieben sein muss -- aber es ist ein
guter Startpunkt, um das GUI und die eigene Arbeitsweise
aneinander anzupassen.
> Da ist selbst Go und Haskell weit schneller.
Mich würde mal ein detailierter Vergleich zwischen Ruby und
Tcl interessieren -- nicht wegen "Meiner ist länger", sondern
um eine sachliche Entscheidungsgrundlage zu haben.
Da ich ausschließlich Tcl verwende, kann ich nicht vergleichen.
> Tatsächlich gibt es nur wenige Fälle, wo Performance egal> ist.
Du möchtest doch jetzt nicht ernsthaft behaupten, dass
Graphikkarten mit Füllraten im GPixel/s-Bereich und Prozessoren
mit GFLOPS/s nicht schnell genug sind, ein paar Dutzend
zweidimensionale (!) schwarz-weisse (!) Symbole anständig auf
den Bildschirm zu bringen?
> Bei EDA braucht man schon etwas Leistung,
Das wäre erst noch zu beweisen.
Was schätzungsweise wirklich Leistung braucht, ist diese
schreckliche Zoomerei mit dem Mausrad, die ja leider Standard
ist. Die Schaltplansymbole rendern könnte auch ein Z80, die
Verbindungen legen und auf Mausereignisse reagieren auch.
> und man möchte halt nicht immer den neuesten Rechner kaufen> müssen, der einem dann mit Volllast den Akku leersaugt.
Natürlich, da sind wir einer Meinung.
Die Kernfrage ist aber, was man mit der verfügbaren Leistung
anfängt.
Beim Herumlesen auf Deiner Homepage hatte ich (schon vor
Jahren) Hoffnung geschöpft, weil Du einige aus meiner Sicht
ziemlich kluge Entscheidungen getroffen hast:
- Du hast Dich auf einen Schaltplaneditor beschränkt,
- Du hast gute Ergonomie als ausdrückliches Ziel formuliert,
- Du hast Dich aus dem Symbolvorrat von gEDA bedient und
- Du hast rapid-prototyping-mäßig eine Scriptsprache verwendet.
Leider ist programmiertechnisch unsere Schnittmenge leer; Du
verwendest Ruby/GTK3 (mit Kurs auf Nim/GTK3), ich bin bei
Tcl/Tk. Bis Ruby/Tk oder Tcl/GTK könnte ich Dir wahrscheinlich
auf längere Sicht entgegenkommen, aber mehr kann ich nicht
leisten. GUI-Toolkit UND Sprache wechseln kann ich nicht.
Also wird es wohl auf dem Stand bleiben, den Du enttäuscht
beklagt hast: Es interessiert sich (scheinbar) niemand für
Deine Software.
>Du schriebst, Du habest reichlich "Zeit in die GTK-Bindings>investiert" (was immer das heissen mag).>Entschuldige mein tiefgreifendes Unwissen, aber ich habe>(mangels Wissen und mangels Bedarf) noch nie Zeit in irgend>welche Tcl-Bindings investiert.
Solche Bindings fallen ja nicht so einfach vom Himmel. Für Nim gibt es
zwar das Tool c2nim das einem für low-level Bindings viel Arbeit
abnimmt, aber es bleibt doch viel Arbeit. Und auch mit
gobject-introspection, mit dessen Hilfe ich die High-Level Bindings
gemacht habe, bleibt es viel Arbeit.
Aber die Leute, die Bindings für andere Sprachen wie Python, Ruby, Perl,
C++ usw. gemacht haben hatten wohl noch weit mehr Arbeit.
>Du möchtest doch jetzt nicht ernsthaft behaupten, dass>Graphikkarten mit Füllraten im GPixel/s-Bereich und Prozessoren>mit GFLOPS/s nicht schnell genug sind, ein paar Dutzend>zweidimensionale (!) schwarz-weisse (!) Symbole anständig auf>den Bildschirm zu bringen?
Ja bei Linux ist das leider so, sofern die CPU das Rendering macht.
Cairo wie auch Skia und andere CPU Rendering Bibliotheken sind nicht
besonders schnell. Daher hat Lukas ja auch gleich OpenGL verwendet.
Wobei auch OpenGl für hochqualitative Liniengraphiken nicht so
sonderlich schnell ist. Für Cairo gibt es ein OpenGL Backend, das aber
langsamer als das CPU Backend ist.
Intel werkelt ja gerade an FastUIDraw, und GTK4 hat ein Vulkan Backend.
Zusammen mit Wayland wird es dann hoffentlich alles deutlich schneller.
>Was schätzungsweise wirklich Leistung braucht, ist diese>schreckliche Zoomerei mit dem Mausrad, die ja leider Standard>ist. Die Schaltplansymbole rendern könnte auch ein Z80, die>Verbindungen legen und auf Mausereignisse reagieren auch.
Auch wenn Du Dinge verschiebst musst Du ja die aufgedeckte Fläche neu
Zeichnen, für jeden Maustick neu, also bis zu 60 mal pro Sekunde. Und
wenn man sich das Leben sehr einfach machen will, zeichnet man jeweils
den kompletten Screen komplett neu. Mit OpenGL kann man das machen, mit
CPU-Rendering stösst man da aber schnell an Grenzen. Man kann dann aber
für Objekte Bounding-Boxen definieren und zeichnet jeweils nur das, was
unter dem sich bewegenden Object ist neu. Ist aber etwas mehr
Programmierarbeit.
>ich bin bei Tcl/Tk.
Gibt es denn überhaupt noch ernsthafte Software mit grösserem
Anwenderkreis die das verwendet? Mir fällt da nicht viel ein.
Stefan S. schrieb:>>Du schriebst, Du habest reichlich "Zeit in die GTK->>Bindings investiert" (was immer das heissen mag).>>Entschuldige mein tiefgreifendes Unwissen, aber ich>>habe (mangels Wissen und mangels Bedarf) noch nie>>Zeit in irgend welche Tcl-Bindings investiert.>> Solche Bindings fallen ja nicht so einfach vom Himmel.
Nein, natürlich nicht.
Mir dämmert aber langsam, dass wir möglicherweise in
verschiedenen Welten leben.
In Tcl hat man von Hause aus Zugriff auf das Tk, dessen
Canvas komplette Graphik (inklusive PostScript-Export)
bietet. Im Prototyp-Stadium ist also ohnehin klar, dass
die Graphikausgabe von Tk erledigt wird; damit kann man
das GUI, die Benutzerführung usw. erproben und schon
kleinere Projekte bearbeiten.
Falls man später schnellere Graphik braucht (was bisher
bei mir noch nie der Fall war), muss man zu einer externen
Bibliothek übergehen oder die Anwendung portieren -- aber
dann ist die Grundstruktur des Programmes schon in der
Praxis getestet.
Deswegen sind mir die "richtungsweisenden" Diskussionen
über die beste Graphikbibliothek bisher verschlossen
geblieben -- man will sowieso zuerst einen Prototypen in
einer Scriptsprache bauen, und welche Graphik der verwendet,
steht bei mir sowieso fest.
>>Du möchtest doch jetzt nicht ernsthaft behaupten, dass>>Graphikkarten mit Füllraten im GPixel/s-Bereich und>>Prozessoren mit GFLOPS/s nicht schnell genug sind, ein>>paar Dutzend zweidimensionale (!) schwarz-weisse (!)>>Symbole anständig auf den Bildschirm zu bringen?>> Ja bei Linux ist das leider so, sofern die CPU das> Rendering macht. Cairo wie auch Skia und andere CPU> Rendering Bibliotheken sind nicht besonders schnell.
Naja, wie schon gesagt: Tk bietet einen komplett graphik-
fähigen Canvas; um die Benutzerführung usw. zu testen,
war der mir bisher schnell genug.
Da man Programmlogik und Userinterface sowieso programm-
technisch trennen will, sollte die Einbindung einer
externen Graphikbibliothek kein Hexenwerk sein, wenn das
notwendig wird. Habe ich aber noch nie gemacht.
> Auch wenn Du Dinge verschiebst musst Du ja die aufgedeckte> Fläche neu Zeichnen, für jeden Maustick neu, also bis zu> 60 mal pro Sekunde.
Naja.
> Und wenn man sich das Leben sehr einfach machen will,> zeichnet man jeweils den kompletten Screen komplett neu.
Ja -- jetzt kommen wir der Wahrheit näher: Schonender
Umgang mit der Rechenleistung macht den Programmierern
einfach keinen Spaß.
Es ist ja auch viel leichter, die Schuld auf die schlechten
APIs zu schieben, als Algorithmen zu entwickeln, die mit
wenig Rechen-/Graphikleistung auskommen.
> Mit OpenGL kann man das machen, mit CPU-Rendering> stösst man da aber schnell an Grenzen.
Ja -- wie der Zyniker in mir schon sagte: Software zu
schreiben, die TROTZ beschränkter Ressourcen gut bedienbar
ist, ist einfach nicht hipp. Also macht es keiner.
>>ich bin bei Tcl/Tk.>> Gibt es denn überhaupt noch ernsthafte Software
Vereinzelt bin ich über solche gestolpert; kann aber aus dem
Hut keine Namen nennen. Tcl/Tk wird aktiv weiterentwickelt;
Version 8.6 bringt ziemlich viele Erweiterungen.
Ich sehe das auch nicht als Werkzeug, um auf Dauer größere
Applikationen zu entwickeln. Für rapid prototyping finde
ich es ideal.
> mit grösserem Anwenderkreis die das verwendet? Mir fällt> da nicht viel ein.
Mir auch nicht -- aber ich gestehe, dass mir das VOLLSTÄNDIG
egal ist. Tcl/Tk kann (fast) alles, was ich brauche, um zu
einem für mich akzeptablen Ergebnis zu kommen. (Numerik geht
nicht gut; das ist ein Furunkel am Arsch. Umgang mit Binär-
dateien ist grenzwertig.)
In der alten Firma gab's eine recht lustige Arbeitsteilung:
Unser Programmierer hat kein Tcl verwendet, fand es aber
einfach genug zu lesen, um die von mir zusammengenagelten
Prototypen verstehen und in die offizielle Applikation
integrieren zu können. Das war ziemlich cool.
So, ich habe mir jetzt mal die Mühe gemacht und einen Schaltplan
gezeichnet. Dazu noch ein paar Anmerkungen:
- Im Prinzip ist alles da! Manches ist nur etwas umständlich. Horizon
ist mir dabei aber nicht abgestürzt. Ist also schon relativ stabil!
- Im Schaltplan Editor erkennt Horizon nicht, wenn zwei Pins von
Bauteilen auf einer Junction liegen. Im angehängten Beispiel ist z.B. C5
und C6 nicht verbunden. Wenn man das Bauteil verschiebt (vom Juction
weg), erkennt Horizon, dass es nicht verbunden ist.
- Ich habe ein paar Bauteile angelegt. Am einfachsten geht Hühnerfutter,
die kann man sehr schön im Horizon Pool Manager durch "Make Part from
Part" anlegen. Dabei kann man sowohl den Pool Manager als auch den
Projekt Manager mit Schema und PCB offen lassen. Nach dem Anlegen bzw.
einem "Update Pool" sind die Bauteile vorhanden
- Etwas komplizierter sind ganz neue Bauteile. Ich bin meist so
vorgegangen, dass ich erst im Pool Manager ein Package angelegt und dann
den Part Wizard gestartet habe. Das funktioniert soweit. Nervig sind nur
die vielen Eintragungen am Ende des Managers. Siehe
Beitrag "Re: Neues, halbfertiges Elektronik-CAD-Programm"
Oft trägt man doch immer die gleichen Verzeichnisse ein. Z.b. für den
Wolfson WM8731 Codec:
Evtl. könnte man das sinnvoll vorbelegen. Wenn man z.B. des Filenamen
für die Entity eingegeben hat, dass für Untits, Symbols und Parts das
automatisch übernommen wird. Wichtig ist dann noch, die Units und
Entities durchzugehen, um fehlende Einträge zu ergänzen, wie z. B. den
Prefix bei Entities.
- Padstack. Ich habe mir alle Pads, die ich benötige, neu angelegt.
Später bin ich dann drauf gekommen, dass man wohl vorhandene Pads neu
skalieren kann. Trifft das zu?
- Raster: Beim Bearbeiten von Schaltplänen und Packages kann ich kein
Raster (mehr) einstellen. Dachte, dass dies schon mal ging. Wenn man
Objekte mit gedrückter ALT Taste verschiebt, kann man zwar das Raster
ausschalten, aber beim Versuch, mit der linken Maustaste die neue
Position festzulegen, hüpft dann das Objekt trotzdem wieder auf einem
Rastpunkt. Wenn man ALT gedrückt hält, wird der Mausklick nicht
angenommen.
- Auch das Ausrichten eines neuen Objekts an bestehenden Objekten nervt
manchmal, z.b. wenn man im Schaltplan Objekte dicht nebeneinander
platzieren möchte. Kann man dies ausschalten?
- Variabler Text: Gibt es neben $RD bei den Packages und $REFDES und
$VALUE bei den Symbolen weitere?
- Neue Bauelemente: Ich habe ja nun ein paar angelegt, bin mir aber
unsicher, ob ich die hochladen soll, da die sicher noch Fehler haben.
Fazit: Auch wenn es noch nicht ganz rund läuft, kann man mit Horizon
schon arbeiten. Lob!
Noch was: Horizon meckert ja, wenn man zwei Netze den selben Namen gibt.
Man muss ja den Namen, wenn er schon mal vorhanden ist, per "Move net
segment to other net" oder "Move net segment to new net" zuweisen. Was
spricht dagegen, Horizon dies implizit machen zu lassen, wenn ein
Netzname eingegeben wird der schon mal vorhanden ist? Weil der Netzname
intern an einer UUID hängt?
Powersymbole habe ich gar nicht verwendet, sondern bin nur über die
Netznamen gegangen. Irgend welche Nachteile?
tester schrieb:> So, ich habe mir jetzt mal die Mühe gemacht und einen Schaltplan> gezeichnet. Dazu noch ein paar Anmerkungen:
Vielen, vielen Dank!
> - Im Prinzip ist alles da! Manches ist nur etwas umständlich. Horizon> ist mir dabei aber nicht abgestürzt. Ist also schon relativ stabil!>> - Im Schaltplan Editor erkennt Horizon nicht, wenn zwei Pins von> Bauteilen auf einer Junction liegen. Im angehängten Beispiel ist z.B. C5> und C6 nicht verbunden. Wenn man das Bauteil verschiebt (vom Juction> weg), erkennt Horizon, dass es nicht verbunden ist.
Okay, die Verbindung so wie im Bild 6 sind in horizon nicht sinnvoll
möglich. Pins von Symbolen können nur mit Netzlinien verbunden sein,
nicht direkt mit Junctions oder anderen Pins. Einfach ein bisschen
vertikal auseinanderschieben, dass an dem Pin ein bisschen Linie
dranhängt. Aber ja, dass in Bild 6 keine Warnung kommt ist ein bug.
> - Ich habe ein paar Bauteile angelegt. Am einfachsten geht Hühnerfutter,> die kann man sehr schön im Horizon Pool Manager durch "Make Part from> Part" anlegen. Dabei kann man sowohl den Pool Manager als auch den> Projekt Manager mit Schema und PCB offen lassen. Nach dem Anlegen bzw.> einem "Update Pool" sind die Bauteile vorhanden
Genau so war das gedacht :)
> - Etwas komplizierter sind ganz neue Bauteile. Ich bin meist so> vorgegangen, dass ich erst im Pool Manager ein Package angelegt und dann> den Part Wizard gestartet habe. Das funktioniert soweit.
Sehr schön :)
> Evtl. könnte man das sinnvoll vorbelegen. Wenn man z.B. des Filenamen> für die Entity eingegeben hat, dass für Untits, Symbols und Parts das> automatisch übernommen wird. Wichtig ist dann noch, die Units und> Entities durchzugehen, um fehlende Einträge zu ergänzen, wie z. B. den> Prefix bei Entities.
Bald kommt ein Knopf, damit man die Einträge vom Part zum Symbol, etc
kopieren kann.
> - Padstack. Ich habe mir alle Pads, die ich benötige, neu angelegt.> Später bin ich dann drauf gekommen, dass man wohl vorhandene Pads neu> skalieren kann. Trifft das zu?
Genau. Padstacks sind parametrierbar. Wenn du z.B. einen rechteckiges
SMD-Pad brauchst, kannst du den "SMD rectangular" Padstack verwenden und
dann mit dem Tool "Edit pad parameter set" Höhe und Breite festlegen.
Derzeit fehlen noch einige wichtige übliche Padstacks, in Zukunft sollte
man dann für die Mehrzahl aller Bauteile die vorhandenen parametriert
verwenden können.
> - Raster: Beim Bearbeiten von Schaltplänen und Packages kann ich kein> Raster (mehr) einstellen. Dachte, dass dies schon mal ging.
Beim Schaltplan ist das Raster festgenagelt, damit's auch zu den
Symbolen passt. Beim Package funktioniert es bei mir.
> Wenn man> Objekte mit gedrückter ALT Taste verschiebt, kann man zwar das Raster> ausschalten, aber beim Versuch, mit der linken Maustaste die neue> Position festzulegen, hüpft dann das Objekt trotzdem wieder auf einem> Rastpunkt. Wenn man ALT gedrückt hält, wird der Mausklick nicht> angenommen.
Im Schaltplan/Board/Package?
> - Auch das Ausrichten eines neuen Objekts an bestehenden Objekten nervt> manchmal, z.b. wenn man im Schaltplan Objekte dicht nebeneinander> platzieren möchte. Kann man dies ausschalten?
Derzeit noch nicht. Die aktuelle Lösung ist es weiter ran zu zoomen.
> - Variabler Text: Gibt es neben $RD bei den Packages und $REFDES und> $VALUE bei den Symbolen weitere?
Nein, geplant ist es aber, Werte aus den parametrischen Daten, wie z.B.
die Spannungsfestigkeit von Kondensatoren hier verfügbar zu machen.
> - Neue Bauelemente: Ich habe ja nun ein paar angelegt, bin mir aber> unsicher, ob ich die hochladen soll, da die sicher noch Fehler haben.
Kannst die ja mal irgendwo hochladen, dann kann ich mir's mal ansehen.
tester schrieb:> Noch was: Horizon meckert ja, wenn man zwei Netze den selben Namen gibt.> Man muss ja den Namen, wenn er schon mal vorhanden ist, per "Move net> segment to other net" oder "Move net segment to new net" zuweisen. Was> spricht dagegen, Horizon dies implizit machen zu lassen, wenn ein> Netzname eingegeben wird der schon mal vorhanden ist?
Das sind zwei paar Schuhe:
Bei "Move net segment to..." werden keine Netze zusammenlegt. Wie der
Name des Tools sagt, werden lediglich alle Pins auf dem ausgewählten
Netzsegment auf das neue Netz verschoben.
Beim Netz umbenennen müsste ein Net merge, ähnlich wie beim Verbinden
von zwei Netzen mit Netzlinien durchgeführt werden. Es sind dann im
Gegensatz zu oben alle Netzsegmente betroffen.
Von der Architektur her ist es nicht schön machbar beim Netz Umbenennen
Netze zusammenzulegen.
> Powersymbole habe ich gar nicht verwendet, sondern bin nur über die> Netznamen gegangen. Irgend welche Nachteile?
Powersymbole gibt es derzeit eh nur für GND, da würden sie ein wenig
schöner ausschauen als die Labels. Nachteile ergeben sich daraus keine,
ist der Netzliste egal.
tester schrieb:> Fazit: Auch wenn es noch nicht ganz rund läuft, kann man mit Horizon> schon arbeiten. Lob!
Schön zu hören, dass auch andere Leute ohne, dass ich direkt daneben
steh was mit horizon anfangen könnnen ;)
tester schrieb:> 3) Horizon speichert zusätzlich alle verwendeten Bauteile im Projekt mit> ab
Seit gerade eben gibt es das. Windows-Builds dauern noch ein bisschen.
Mit Fenster im Anhang (zu Erreichen aus dem Projektmager) kann man sich
dann ansehen, welche Teile sich im Pool gegenüber dem Projekt-Cache
geändert haben oder im Pool fehlen (z.B. weil man ein Projekt von wem
anders bekommen hat, der seine Bauteile nicht in den globalen Pool
merged hat).
Derzeit gibt es als diff nur einen json-Patch. Dass das nicht wirklich
optimal ist, ist mir klar. Kann in Zukunft ja noch besser werden :)
Lukas K. schrieb:> Ah, das passiert wenn du in den Via-Rules keine Regel oder keine Regel> mit Padstack hast. Du solltest mindestens st eine Via-Regel haben, die auf> alles matcht, so wie im Anhang.
Ist mir jetzt auch passiert. Evtl. koennte man die Via-Rule als default
einbauen.
Lukas K. schrieb:> Im Schaltplan/Board/Package? [Alt Taste + linke Maustaste]
Gebraucht hätte ichs bei den Symbols. Ich wollte kleine Pfeile an das
3,5mm Klinkenbuchsensymbol anbringen.
Lukas K. schrieb:>> Wenn man Objekte mit gedrückter ALT Taste verschiebt, kann man zwar das>> Raster ausschalten, aber beim Versuch, mit der linken Maustaste die neue>> Position festzulegen, hüpft dann das Objekt trotzdem wieder auf einem>> Rastpunkt. Wenn man ALT gedrückt hält, wird der Mausklick nicht>> angenommen.>> Im Schaltplan/Board/Package?
Generell: ALT ist ein unglücklicher Modifier für die Maus.
Im fvwm wird der seit Jahren dafür benutzt, dass man Fenster
manipulieren kann, ohne über den Fensterrahmen gehen zu müssen.
ALT+LMB beispielsweise verschiebt dort ein Fenster.
Damit sieht die Applikation ein solches Event dann nie.
Jörg W. schrieb:> Generell: ALT ist ein unglücklicher Modifier für die Maus.
Jetzt wo du es sagst, fällt mir auch wieder ein, dass so ziemlich jeder
X11-Fenstermanager ALT als Modifier zum Fenster verschieben verwendet.
Ich verwende schon des längeren i3wm, da hab' ich mir den Modifier auf
Super eingestellt.
Seit gerade eben kann man den Modifier für feines Grid auch auf Ctrl
umstellen.
tester schrieb:> Ist mir jetzt auch passiert. Evtl. koennte man die Via-Rule als default> einbauen.
War ein bisschen mehr Aufwand, als die anderen Rules, ist aber nun drin.
Pool musst auch noch aktualisieren, damit das tut.
Lukas K. schrieb:> tester schrieb:>> - Padstack. Ich habe mir alle Pads, die ich benötige, neu angelegt.>> Später bin ich dann drauf gekommen, dass man wohl vorhandene Pads neu>> skalieren kann. Trifft das zu?>> Genau. Padstacks sind parametrierbar. Wenn du z.B. einen rechteckiges> SMD-Pad brauchst, kannst du den "SMD rectangular" Padstack verwenden und> dann mit dem Tool "Edit pad parameter set" Höhe und Breite festlegen.> Derzeit fehlen noch einige wichtige übliche Padstacks, in Zukunft sollte> man dann für die Mehrzahl aller Bauteile die vorhandenen parametriert> verwenden können.
Was mir in diesem Zusammenhang noch nicht einleutet, ist der Button
"Apply to all pads". Wirkt das mit dem Klick auf den Button oder ist das
eine Einstellung für den Parameter. Egal was ich mache, ein Pad im
gleichen Package verändert sich nicht.
Uwe
Uwe S. schrieb:> Was mir in diesem Zusammenhang noch nicht einleutet, ist der Button> "Apply to all pads". Wirkt das mit dem Klick auf den Button oder ist das> eine Einstellung für den Parameter. Egal was ich mache, ein Pad im> gleichen Package verändert sich nicht.
Mit "All" sind alle alle Pads gemeint, die ausgewählt waren, als du das
tool gestartet hast. Also alle, die in der Combobox oben im Fenster
auswählbar sind. Der Knopf macht erstmal nichts weiter, als den Wert
auch für alle anderen Pads im Fenster einzutragen.
Lukas K. schrieb:> Uwe S. schrieb:>> Was mir in diesem Zusammenhang noch nicht einleutet, ist der Button>> "Apply to all pads". Wirkt das mit dem Klick auf den Button oder ist das>> eine Einstellung für den Parameter. Egal was ich mache, ein Pad im>> gleichen Package verändert sich nicht.>> Mit "All" sind alle alle Pads gemeint, die ausgewählt waren, als du das> tool gestartet hast. Also alle, die in der Combobox oben im Fenster> auswählbar sind. Der Knopf macht erstmal nichts weiter, als den Wert> auch für alle anderen Pads im Fenster einzutragen.
Danke. Jetzt habe ich es verstanden und es funktioniert.
PCB-Layout
Warum werden bei m(ove) die DRCs nicht beachtet?
Vias und Leitungen lassen sich beliebig in Pads schieben obwohl die zu
einem anderen Netz gehören. So war das doch bestimmt nicht gedacht oder
doch?
Siehe Bild.
Helmut S. schrieb:> So war das doch bestimmt nicht gedacht oder> doch?
Leider ja, das Move-Tool hat weiß nichts von Design Rules. Der
Kicad-Router kann wohl Tracks unter Beachtung von Abständen verschieben,
mal sehen wie man das am besten eingebaut bekommt.
Lukas K. schrieb:> Helmut S. schrieb:>> So war das doch bestimmt nicht gedacht oder>> doch?>> Leider ja, das Move-Tool hat weiß nichts von Design Rules. Der> Kicad-Router kann wohl Tracks unter Beachtung von Abständen verschieben,
OK. Mit "Run Checks" werden die Fehler angezeigt, aber schöner wäre es
schon wenn beim verschieben die "design rules" beachtet würden. Ich bin
wohl zu verwöhnt von einem extrem teuren PCB-Programm.
Gegenüber dem "move" bei Kicad sieht dein "move" ja schon jetzt
mächtiger aus.
> mal sehen wie man das am besten eingebaut bekommt.
Vielleicht das Ganze dann noch ein/ausschaltbar.
Helmut S. schrieb:> wohl zu verwöhnt von einem extrem teuren PCB-Programm.
Na das sollte man ja hinbekommen. Boundingbox (Rechteck) für Pads,
Traces usw. RTree aus CGAL um Überlappungen grob zu finden, und dann ein
wenig Geometrie für die sich überlappenden Boxen.
Ich habe mich jetzt mal angemeldet (tester). Mein Demoprojekt habe ich
soweit fertig gestellt und wollte mal Gerber erstellen lassen, dabei ist
der Layout Editor dann abgestürzt und jetzt kann ich das Layout nicht
mehr öffnen. Es kommt die Fehlermeldung
Habe jetzt selbst etwas experimentiert. Durch rausschmeißen der
folgenden Zeilen (try and error) aus dem via-block von board.json konnte
ich die Datei wieder laden:
Gerber-Export funktioniert nun, lag daran, dass in einem von deinen
Padstacks Polygone mit 0 Ecken waren. Die müssen wohl entstanden sein
beim Löschen von Polygonen mit runden ecken, sollte nun auch nicht mehr
passieren.
Dass es sich gar nicht mehr öffnen lassen wollte kam daher, das mit der
3D-Vorschau bereits beim Laden berechnet wurde. Dabei ist poly2tri
hingefallen, weil beim Quarz ein Loch direkt auf der Kante des
Silkscreens liegt und dabei ein für poly2tri unverträgliches Polygon bei
rauskommt. Mal sehen, was sich da machen lässt... Jetzt stürzt es erst
beim Öffnen der 3D-Vorschau ab wenn das Via so liegt.
Noch ein paar Vorschläge:
1) Schaltplan + Layout als .png exportieren (so werden mehr Details als
bei Bildschirmfotos sichtbar)
2) Die Fenster sollten sich ihre Größe merken
3) Im Layout wäre es sehr hilfreich, wenn man nicht nur ein einzelnes
Segment sondern ein ganze Kette von Segmenten (Leiterbahnzug)
selektieren könnte. Wenn man merkt, dass ein Leiterbahnzug völlig falsch
liegt und man ihn komplett löschen muss, nervt es, wenn man jedes
Segment einzeln anwählen muss.
4) Was ich an KiCad zu schätzen gelernt habe, war, dass man temporär den
Ursprung des Zeichenblattes verlegen kann.
Aber bis jetzt eine super Arbeit. Beim letzten "git pull" kam neuer
Programmcode für differentielle Leiterbahnen mit...
Klaus R. schrieb:> Ja, läuft! Super! Anbei das Projekt + ein paar Bilder.
Ich muss sagen, ich bin beeindruckt :)
Klaus R. schrieb:> 4) Was ich an KiCad zu schätzen gelernt habe, war, dass man temporär den> Ursprung des Zeichenblattes verlegen kann.
Jau, diese Funktion braucht man ständig!
Bau auch noch gleich ein, dass man einen selektierten Block um genau x/y
verschieben kann^^
Klaus R. schrieb:> Noch ein paar Vorschläge:>> 1) Schaltplan + Layout als .png exportieren (so werden mehr Details als> bei Bildschirmfotos sichtbar)
Den Schaltplan kann man bereits als mehrseitiges PDF exportieren.
Board-als-PDF kommt dann im Zuge mit Assembly Diagram export.
> 2) Die Fenster sollten sich ihre Größe merken
Du meinst die Fenster des interaktiven Manipulators?
(Schaltplan/Board/...-Editor)
Mal nachdenken, wie das am Sinnvollsten umsetzbar ist. Für jede Datei
einzeln merken? Für jeden Dateityp?
> 3) Im Layout wäre es sehr hilfreich, wenn man nicht nur ein einzelnes> Segment sondern ein ganze Kette von Segmenten (Leiterbahnzug)> selektieren könnte. Wenn man merkt, dass ein Leiterbahnzug völlig falsch> liegt und man ihn komplett löschen muss, nervt es, wenn man jedes> Segment einzeln anwählen muss.
Seit soeben gibt es zwei Tools dazu:
Select More: Wählt alle Tracks bis zum nächsten Pad aus
Select net segment: Wählt alle zusammenhängenden Tracks aus
> 4) Was ich an KiCad zu schätzen gelernt habe, war, dass man temporär den> Ursprung des Zeichenblattes verlegen kann.
Mir wollte nie so recht einleuchten, wozu das im Detail gut sein soll.
Kannst mir auf die Sprünge helfen?
Mampf F. schrieb:> Bau auch noch gleich ein, dass man einen selektierten Block um genau x/y> verschieben kann^^
Gibt's schon: "Move exactly"
Klaus R. schrieb:> Aber bis jetzt eine super Arbeit. Beim letzten "git pull" kam neuer> Programmcode für differentielle Leiterbahnen mit...
Erwarte nicht zu viel, der Router ist ein wenig hakelig zu bedienen,
aber iirc. war das auch schon in KiCad so.
Lukas K. schrieb:> Mir wollte nie so recht einleuchten, wozu das im Detail gut sein soll.> Kannst mir auf die Sprünge helfen?
Der Ursprung des Zeichenblatts legt auch fest, wo das Grid beginnt.
Beispielweise möchte man eine LED-Platine designen und die 10*10 LEDs
sollen alle im Abstand 400mil sein, während aber die Platinenkante
selbst in mm gezeichnet ist.
Irgendwas passt ja dann zwangsläufig nicht ins Raster ... Man würde dann
einfach den Ursprung auf die Mitte der Platine setzen und auf 100mil
umstellen und alles wäre super :)
Das geht nicht mit Relativ-Koordinaten direkt - da müsste man die
Platine sonst wirklich um den Ursprung herum zeichnen, weil
relativ-Koordinaten nicht das Grid ändern - bzw den Grid-*Ursprung*
Lukas K. schrieb:> Den Schaltplan kann man bereits als mehrseitiges PDF exportieren.> Board-als-PDF kommt dann im Zuge mit Assembly Diagram export.
PNG wäre interessant wegen den "Screenshots" fürs Forum :-). Dank FullHD
Monitor gehen schon echte Screenshots, aber wenn man einen Schaltplan
detailliert zwecks Diskussion einstellen möchte... PDF sind ja nur b/w.
> Du meinst die Fenster des interaktiven Manipulators?
Ja... anbei zwei Std Fenster Größen, wie sie bei mir aufgehen. Man
beachte das Symbol Fenster...
> Mal nachdenken, wie das am Sinnvollsten umsetzbar ist. Für jede Datei> einzeln merken? Für jeden Dateityp?
Ja... eine .horizon Datei im Home Directory?
> Select More: Wählt alle Tracks bis zum nächsten Pad aus> Select net segment: Wählt alle zusammenhängenden Tracks aus
Ja super! Danke!
> [diff pairs] Erwarte nicht zu viel, der Router ist ein wenig hakelig zu> bedienen, aber iirc. war das auch schon in KiCad so.
Ich wollte es nur erwähnen. Diff-Pairs brauche ich eher selten.
Noch eine Frage: Während ich langsam eine Idee von den "Rules" bekomme
(und die meisten Fehler wegbekommen habe), sind mir die Fehler mit den
NTPH Löchern noch ein Rätsel.
Klaus R. schrieb:> sind mir die Fehler mit den> NTPH Löchern noch ein Rätsel.
Das Problem ist, dass die Löcher NPTH, also nicht platiert sind. Solche
Löcher werden üblicherweise für mechanische Befestigungsbohrungen
verwendet. Die Löcher für Pads sind normalerweise immer platiert. (Kann
im Padstack in den Eigenschaften vom Loch eingestellt werden)
Du hast dir ja eigene Padstacks für deine Pads gemacht? Warum hast du
nicht die vorhanden benutzt und parametriert?
Mit dem Tool "Edit Pad" (war mal "Edit Pad parameter set") kannst du nun
auch den Padstacks von Pads austauschen. Pad löschen und neu anlegen
wird nicht funktionieren, da sich dann die UUID vom Pad ändert.
Lukas K. schrieb:> (Kann im Padstack in den Eigenschaften vom Loch eingestellt werden)
Danke, das war's.
> Du hast dir ja eigene Padstacks für deine Pads gemacht? Warum hast du> nicht die vorhanden benutzt und parametriert?
Zum Zeitpunkt des Erstellens wusste ich das schlicht nicht!
Klaus R. schrieb:> Lukas K. schrieb:>> Du hast dir ja eigene Padstacks für deine Pads gemacht? Warum hast du>> nicht die vorhanden benutzt und parametriert?>> Zum Zeitpunkt des Erstellens wusste ich das schlicht nicht!
Ich habe es auch erst später verstanden. Wenn man es dann aber
konsequent umsetzt, kommt man recht wenigen Padstacks aus. Das Konzept
ist gut!
Uwe
Noch ein kleiner Bug: Im Packages Editor nutzt "Draw Line Rectangle"
immer den Top Copper Layer, unabhängig davon, welcher Layer gerade
ausgewählt ist. Ein Hotkey dafür wäre schön.
Und noch einer: Am Ende des Part Wizards wird beim anlegen der
Verzeichnisse für Entites, Units, Symbols und Parts nicht geprüft, ob
die Verzeichnisse schon vorhanden sind.
Klaus R. schrieb:> Und noch einer: Am Ende des Part Wizards wird beim anlegen der> Verzeichnisse für Entites, Units, Symbols und Parts nicht geprüft, ob> die Verzeichnisse schon vorhanden sind.
Auch repariert.
Hallo,
erst mal danke an Klaus für das komplette Beispiel
"rpicodec-2017-11-13.tgz". Ich habe mal die Gerber Files von dem Projekt
erzeugt und mit einem Gerber Viewer - ViewMate (Pentalogix) -
angeschaut. Beim Import des "bottom-layer" .gbl kommt eine
Fehlermeldung. Ich habe dann "Ja" gedrückt. Das Ergebnis sieht aber auf
den ersten Blick korrekt aus. Was könnte da der Fehler sein?
Meine Version von horizon ist von ca. 23Uhr (heute).
Hallo Lukas.
Da ich mehr Anwender bin und weniger Programmierer:
Gibt es fertige Windows Versionen (32bit)?
Also Installer oder auch Portabel (entpacken und starten).
Wäre es möglich diese und auch für andere (Win 64Bit / Linux 32/64)
gleich immer mit zu machen. Von mir aus auch nur jede Woche oder nach
schweren Fehlern.
Grüße, Uli
Uli schrieb:> Wäre es möglich diese und auch für andere (Win 64Bit / Linux 32/64)> gleich immer mit zu machen. Von mir aus auch nur jede Woche oder nach> schweren Fehlern.
Vielleicht hilft dir das schon mal zum Einstieg.
Windows Versionen gibt es hier. Die Neueste dort ist von gestern.
https://github.com/carrotIndustries/horizon/wiki/Getting-started
Die Startseite.
https://github.com/carrotIndustries/horizon
Ziemlich unten auf "wiki" klicken. Da geht es dann weiter.
Obwohl ich kein Programmierer bin, kompiliere ich jetzt selbst in
Windows.
#Einmalig mysys2 installieren
Anleitung siehe Webseite von Lukas.
https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Windows
#Im home/user Verzeichnis von mysys2 ein Verzeichnis anlegen.
mkdir horizonxyz
mysys2 starten. Ein Terminal geht auf. In dem Terminal wird dann
gearbeitet.
#Vom home-Verzeichnis in dieses Verzeichns wechseln.
cd horizonxyz
#Die Source-Files herunterladen.
git clone http://github.com/carrotIndustries/horizon
#In das von clone angelegte Unterverzeichnis horizon wechseln.
cd horizon
#Kompilieren mit allen logischen cores des Prozessors. Beispiel i7 mit 4
cores + hyperthreading.
make -j 8
Die debug-Symbole aus den Files löschen.
strip horizon-*
#Die WIN-Version im Ordner "dist" ablegen
./make_bindist.sh
Im Unter-Ordner "dist" ist dann ein Verzeichnis horizon. Das ist das
Programmverzeichnis für die Windows-Version.
Helmut S. schrieb:> Das Ergebnis sieht aber auf> den ersten Blick korrekt aus. Was könnte da der Fehler sein?
War wohl persönliches Unvermögen, Dinge richtig aus der
Gerber-Spezifikation abzutippen. Ist repariert.
Helmut S. schrieb:> Die debug-Symbole aus den Files löschen.>> strip horizon-*
Das macht auch schon die ./make_bindist.sh beim Erstellen des
dist-Verzeichnisses.
Also Lukas, ich muss es doch noch mal schreiben, ich bin schon sehr
beeindruckt wie weit Du schon gekommen bist. Ich nehme mal stark an dass
Du bisher nur einige tausend Stunden, vielleicht maximal 5000, an dem
Programm gearbeitest hast. Und dann schon einen funktionierenden
Schaltplaneditor, einen Layouteditor, Gerber Export und OpenGL. Wenn
man das Vergleicht mit der elend langsamen Weiterentwicklung etwa von
gEDA/PCB. Oder auch KiCad, wo sich ja auch über viele Jahre nur sehr
wenig getan hatte.
Dein Beispielil zeigt also, dass komplette Neuentwicklungen wirklich
Sinn machen.
...schließe mich meinem Vorredener an, habs zwar bisher nicht angeguckt,
aber beeindruckt gelesen was hier diskutiert wird.
>Sinn machen.
^Sinn machen^Sinn haben^
Gruß,
Holm
Stefan S. schrieb:> Dein Beispielil zeigt also, dass komplette Neuentwicklungen wirklich> Sinn machen.
Ja, mir geht es auch so ... Und die Code-Qualität und das Wissen das
dahinter steckt ... Schon sehr beeindruckend.
Leider leider entwickeln sich 90% eines Programms in 10% der Zeit ...
Die anderen 10% benötigen dann 90% Zeit.
Die zeitaufwändigen Sachen kommen vermutlich erst ... Bug-fixing und
Usability ... Das ist dann immer das Stadium, in dem ich die Lust an
etwas verliere und mir etwas neues zum Basteln suche :/
Hallo Lukas,
ich habe nochmal eine Frage zu den Swap-Groups der Unit's. Wozu braucht
man die? Können etwas pins einer Swap-Group getauscht werden? Hat die
Nummer der Swap-Group eine Bedeutung?
Uwe
Uwe S. schrieb:> Können etwas pins einer Swap-Group getauscht werden? Hat die> Nummer der Swap-Group eine Bedeutung?
Für Pins soll die Swap group in Zukunft für's Pinswapping verwendet
werden:
0 bedeutet nicht tauschbar, für alle anderen Nummern sind Pins mit
gleicher Nummer tauschbar. (So wie bei EAGLE auch)
Für Gates in Entities analog dazu. (Gateswapping)
Bis jetzt kam mir nur noch keine zündende Idee, wie man das elegant
implementieren kann.
Was die Entwicklung anbetrifft: An einigen Stellen habe ich mir das
Leben (vielleicht zu) einfach gemacht:
1. Schematic::expand() und Board::expand() Diese Methoden befüllen
Schaltplan und Board mit Informationen aus der Netzliste, Räumen im
Schaltplan Linien und Junctions auf, wenden im Board die Parameter auf
Packages an, Berechnen airwires, etc. Alles das geschieht nach jedem
Tool. D.h. auch wenn man nur eine Kleinigkeit angefasst hat, wird alles
neu berechnet. Aktuell scheint das von der Geschwindigkeit her noch kein
Problem zu sein, mal sehen wie lange das noch so bleibt.
2. Canvas::render() Rendert (macht aus Packags, Pads, etc. Linien und
Dreiecke) immer alles neu und Trianguliert auch die Planes damit die von
der GPU gerendert werden könnnen. Das geschieht, wenn ein Tool aktiv ist
nach jeder Benutzereingabe. Durch den KiCad-Router hat das Canvas
Möglichkeiten bekommen, bereits gerenderts zu löschen und Dinge
nachträglich zum gerenderten hinzufügen. Vielleicht wird diese
Funktionalität in Zukunft auch noch von mehr Tools genutzt werden, wenn
Canvas::render zum Flaschenhals wird.
3. DRC hat quadratische Komplexität. DRC ist in sich recht
abgeschlossen, d.h. man kann dort einfach ohne weitere Umbauten
optimieren.
Die Idee dabei war: Erstmal Komplexität vermeiden und machen, dass es
funktioniert. Schneller bekommt man es später immer noch.
Nachtrag zum Kompilieren der WIN version auf einem WIN-PC.
Einmalig mysys2 installieren. Anleitung siehe Webseite von Lukas.
https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Windows
Gtk-Bug, Grafikfehler nach dem 3D Aufruf
--
In dem zip von mir ist eine gepatchte libgdk (ja, gdk, kein Tippfehler)
Kopier' mal die libgdk-3-0.dll aus meinem zip nach C:\msys64\mingw64\bin
--Lukas
--- WIN version erzeugen
In WIN mysys2 starten. Ein Terminal geht auf. In dem Terminal wird dann
gearbeitet.
#Im home/user Verzeichnis von mysys2 ein Verzeichnis anlegen.
$ mkdir horizonxyz
#Vom home-Verzeichnis in dieses Verzeichns wechseln.
$ cd horizonxyz
#Die Source-Files herunterladen.
$ git clone http://github.com/carrotIndustries/horizon
#In das von clone angelegte Unterverzeichnis horizon wechseln.
$ cd horizon
#Kompilieren mit allen logischen cores des Prozessors. Beispiel i7 mit 4
cores + hyperthreading.
$ make -j 8
#Die WIN-Version im Ordner "dist" erzeugen.
$ ./make_bindist.sh
Im Unter-Ordner "dist" ist dann ein Verzeichnis horizon. Das ist das
Programmverzeichnis für die Windows-Version.
Helmut S. schrieb:> In dem zip von mir ist eine gepatchte libgdk (ja, gdk, kein Tippfehler)> Kopier' mal die libgdk-3-0.dll aus meinem zip nach C:\msys64\mingw64\bin
Mittlerweile braucht man kein gepatchtes Gtk/gdk mehr, letzte Woche gab
es ein Bugfix-release von Gtk mit dem Patch drin, das es auch schon in
msys2 geschafft hat. Einfach in der mingw64-shell "pacman -Syu"
eingeben, damit alle Pakete auf den aktuellen Stand gebracht werden.
Danke Lukas, nach dem update von mysys2 geht es jetzt ohne den Austausch
der libgdk-3-0.dll.
-----------------------------------------------------------
Aleitung zum Kompilieren der WIN version auf einem WIN-PC.
Einmalig mysys2 installieren. Anleitung siehe Webseite von Lukas.
https://github.com/carrotIndustries/horizon/wiki/B...
--- WIN version erzeugen
In WIN mysys2 starten. Ein Terminal geht auf. In dem Terminal wird dann
gearbeitet.
#Im home/user Verzeichnis von mysys2 ein Verzeichnis anlegen.
$ mkdir horizonxyz
#Vom home-Verzeichnis in dieses Verzeichns wechseln.
$ cd horizonxyz
#Die Source-Files herunterladen.
$ git clone http://github.com/carrotIndustries/horizon
#In das von clone angelegte Unterverzeichnis horizon wechseln.
$ cd horizon
#Kompilieren mit allen logischen cores des Prozessors damit es schnell
geht. Beispiel CPU mit 4 cores + hyperthreading -> -j 8.
$ make -j 8
#Die WIN-Version im Ordner "dist" erzeugen.
$ ./make_bindist.sh
Im Unter-Ordner "dist" ist dann ein Verzeichnis horizon. Das ist das
Programmverzeichnis für die Windows-Version.
Ich wollte die Zoom-Stufen bei Bedarf kleiner machen (damit z.B. ein
Schaltplan gut den Bildschirm ausfüllt). Wenn man jetzt Shift drückt,
dann wir der Zoom-Faktor (bzw. Exponent) statt 1.5 auf 1.1 gesetzt.
Klaus R. schrieb:> Wenn man jetzt Shift drückt,> dann wir der Zoom-Faktor (bzw. Exponent) statt 1.5 auf 1.1 gesetzt.
Danke für die Idee, ich hab das gerade mal in leicht anderer Form
eingebaut.
Klaus R. schrieb:> Oh, gut. Frage: Was macht "g drag and keep slope"?
Damit bleiben beim schieben der schrägen Leitung die vertikalen Segmente
immer vertikal. Das hilft um ein schönes 45° Routing zu erhalten.
Hallo Lukas
ich bin jetzt auch neugierig geworden und wollte mir dein Programm
anschauen.
Compilieren war nach der Aktualisierung der benötigten Pakete kein
Problem.
Die Ausgabe in den GL Canvas scheint es aber mit meiner Hardware nicht
zu gehen:
Diese Meldungen tauchen in der Konsole auf:
SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name, GROUP_CONCAT(tags.tag, ' '), parts.filename FROM parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages ON packages.uuid = parts.package WHERE parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid ORDER BY parts.MPN COLLATE naturalCompare ASC
3
col 2
4
create proc
5
spawn /home/data/Downloads/horizon/horizon-imp -c /home/helmut/CAD/Horizon/HB test 1/top_sch.json /home/helmut/CAD/Horizon/HB test 1/top_block.json
6
Linking failure: Vertex info
7
-----------
8
0(2) : warning C7568: #version 330 not fully supported on current GPU target profile
9
0(13) : error C5108: unknown semantics "INSTANCEID" specified for "gl_InstanceID"
10
11
Fragment info
12
-------------
13
0(2) : warning C7568: #version 330 not fully supported on current GPU target profile
Helmut B. schrieb:> Ist meine Hardware zu alt? Oder siehst du noch einen Ansatzpunkt, dein> Programm zum laufen zu bringen?
Scheint so als sei die zu alt: Laut Wikipedia kann die GeForce 6100 wohl
nur OpenGL 2.1, das reicht nicht. Die Karte ist aber auch schon deutlich
über 10 Jahre alt... So spontan fällt mir da nichts ein, wie es ohne
OpenGL 3-GPU funktionieren könnte.
Hallo Helmut,
falls du noch einen neueren WIN7/WIN10 PC hast, kannst du ja mal die
kompilierte WIN-Version herunterladen und damit testen. Die Neueste ist
vom 18.11.2017.
http://0x83.eu/horizon-zip/
Helmut S. schrieb:> warum haben Vias keinen Netznamen?
Aktuell erhalten Vias ihr Netz durch den Track, der mit der Junction
verbunden ist. Unverbundenen Vias Netze zuordnen zu können steht aber
auch auf meiner zeitnahen Todo-Liste.
Abdul K. schrieb:> Hm, also kann man deine Software nur auf neuen Geräten verwenden?
Neuer im Sinne von Jünger als ~8 Jahre, ja. Horizon ist aber auch mehr
ein Projekt für die Zukunft, bis es denn mal "ausgereift" ist, haben
auch mehr Leute eine GPU, die OpenGL 3 kann. OpenGL 3 ist jetzt auch
schon ~8 Jahre alt und mit OpenGL 2 will man heutzutage nichts mehr neu
anfangen...
Lukas K. schrieb:> Unverbundenen Vias Netze zuordnen zu können steht aber> auch auf meiner zeitnahen Todo-Liste.
Wenn das geht, wärst du zumindest in diesem Punkt dem KiCad schon
voraus^^
Via-Stitching geht zwar mit KiCad auch, aber nur umständlich ... Braucht
man aber oft und ist daher eine eigentlich recht wichtige Funktion.
Mampf F. schrieb:> Wenn das geht, wärst du zumindest in diesem Punkt dem KiCad schon> voraus^^
Ist drin: Man kann nun Vias mit dem "Set via net"-Tool Vias, die ohne
Netz auf dem Board liegen ein Netz zuweisen.
Lukas K. schrieb:> Mampf F. schrieb:>> Wenn das geht, wärst du zumindest in diesem Punkt dem KiCad schon>> voraus^^>> Ist drin: Man kann nun Vias mit dem "Set via net"-Tool Vias, die ohne> Netz auf dem Board liegen ein Netz zuweisen.
Danke, dass man gleich mehrere Vias selektieren kann und denen auf einen
Schlag das gleiche Netz, z. B. GND, zuweisen kann.
Hallo Lukas,
als ich heute das Board eines kleinen Beispielprojekts öffnen wollte,
stürzte
mir horizon-imp mit status code 6 ab. Das hier mal gepostete Raspberrypi
Projekt zeigt dieses Verhalten nicht. Bei meinem Projekt tritt der
Fehler auch dann auf, wenn ich Versionen von horizon der letzten Tage
verwende. Es muss also irgendwo in meinem Projekt oder meinem lokalen
Pool begründet sein. Wie kreise ich den Fehler am besten ein?
Uwe
Lukas K. schrieb:> Helmut S. schrieb:>> So war das doch bestimmt nicht gedacht oder>> doch?>> Leider ja, das Move-Tool hat weiß nichts von Design Rules. Der> Kicad-Router kann wohl Tracks unter Beachtung von Abständen verschieben,> mal sehen wie man das am besten eingebaut bekommt.
Jetzt gibt es das Tool "Drag track interactive" (g), um einen Track zu
verschieben. Mehrere Tracks kann das Tool nicht, dafür werden andere
Tracks automatisch aus dem Weg geschoben.
Lukas K. schrieb:>> Jetzt gibt es das Tool "Drag track interactive" (g), um einen Track zu> verschieben. Mehrere Tracks kann das Tool nicht, dafür werden andere> Tracks automatisch aus dem Weg geschoben.
Das heißt, du hast jetzt schon einen Push&Shove Router eingebaut, den
KiCad erst seit kurzem hat und Eagle noch garnicht?
Kranker scheiß :D
Mampf F. schrieb:> Das heißt, du hast jetzt schon einen Push&Shove Router eingebaut, den> KiCad erst seit kurzem hat
Ich hab den von KiCad eingebaut.
K. J. schrieb:> ber starten tut es> leider nicht.
Du startest auch die falschen Binaries. Unmittelbar startbar sind nur
horizon-prj-mgr und horizon-pool-mgr, siehe
https://github.com/carrotIndustries/horizon/wiki/Getting-startedUwe S. schrieb:> #8 0x000000010025f524 in> horizon::Track::Connection::Connection(nlohmann::basic_json<std::map,> std::vector, std::__cxx11::basic_string<char, std::char_traits<char>,> std::allocator<char> >, bool, long,
Ich hab gerade mal was gepushed, funktioniert's nun?
Hat schonmal auf einem Kubuntu 17.10 kompiliert.
Diese Pakete musste ich nachinstallieren:
uuid-dev
gtkmm-3.0-dev
libcairomm-1.0-dev
libzmqpp-dev
Und das hier:
libglm-dev
Bei den 4 Paketen oben hat das Makefile schon gemeckert. Bei libglm-dev
erst der Compiler.
Jetzt muss ich mal kucken, wie man das Programm startet ;)
Lukas K. schrieb:> Alles in allem> überschaubarer Aufwand und auch ohne wirkliche Dokumentation gut machbar> gewesen.
Wer kann der kann...
Mein tiefer Reepekt vor dem ganzen Projekt Lukas!
Lukas K. schrieb:> Uwe S. schrieb:>> #8 0x000000010025f524 in>> horizon::Track::Connection::Connection(nlohmann::basic_json<std::map,>> std::vector, std::__cxx11::basic_string<char, std::char_traits<char>,>> std::allocator<char> >, bool, long,>> Ich hab gerade mal was gepushed, funktioniert's nun?
Und wie! Danke.
Hallo Lukas,
noch eine Frage. Bisher konnte man mit Shift und Bewegen der Maus den
Canvas verschieben. Jetzt klappt das nur noch mit gleichzeitigem
Maus-Links-Klick. Vermutlich hattest du deine Gründe dafür. Blöd ist
allerdings, dass dieser Links-Klick dann nicht nur die Verschiebung
startet, sondern z.B. auch den Start einer Linie oder eines Tracks
setzt. Etwas konkreter: Geöffnet ist das Board und ich möchte einen
Track routen, drücke also 'x'. Jetzt stelle ich fest, dass der Canvas
verschoben werden muss, betätige als Shift, linke Maustaste und schiebe
den Canvas passend. Leider habe ich damit aber auch gleichzeitig das
Routen des Tracks gestartet. Also erstmal ESC, dann verschieben und
nochmal 'x'. Mache ich was falsch?
Uwe
Lukas K. schrieb:> Lukas K. schrieb:>> Helmut S. schrieb:>>> So war das doch bestimmt nicht gedacht oder>>> doch?>>>> Leider ja, das Move-Tool hat weiß nichts von Design Rules. Der>> Kicad-Router kann wohl Tracks unter Beachtung von Abständen verschieben,>> mal sehen wie man das am besten eingebaut bekommt.>> Jetzt gibt es das Tool "Drag track interactive" (g), um einen Track zu> verschieben. Mehrere Tracks kann das Tool nicht, dafür werden andere> Tracks automatisch aus dem Weg geschoben.
Hallo Lukas,
habe es gerade mal ausprobiert. Diese neue Funktion ist schon richtig
gut.
Jetzt muss ich nur noch lernen wie man neue Bauteile definiert. :-)
Uwe S. schrieb:> Jetzt klappt das nur noch mit gleichzeitigem> Maus-Links-Klick. Vermutlich hattest du deine Gründe dafür. Blöd ist> allerdings, dass dieser Links-Klick dann nicht nur die Verschiebung> startet, sondern z.B. auch den Start einer Linie oder eines Tracks> setzt.
Mir hatte das mit dem Shift ohne klicken nicht gefallen, weil das kaputt
ging, wenn shift außerhalb des Canvas losgelassen wurde. Jetzt wird
shift-click für Tools ignoriert.
Jörg W. schrieb:> Wenn ich mal mein OS (und damit auch den Compiler) aktualisiert habe,> schau ich mir Horizon auf jeden Fall auch mal an. Vermutlich wird Lukas> dann von mir als erstes einen Satz Patches für FreeBSD erhalten. :-)
Ich mach' mal wieder einen Versuch, nachdem ich das FreeBSD auf
das letzte 10-stable hochgezogen habe (11.x wird demnächst auch noch
werden). OS-native Clang (3.4.1) macht noch kein C++14, aber ich
habe ohnehin noch einen GCC 6 daliegen, der compiliert das zumindest
erst einmal.
Ein bisschen seltsam sind die vielen
1
-pthread -D_THREAD_SAFE
beim Compilieren; in jeder Zeile taucht dieses Konstrukt mehrere
tausend(!) Mal auf.
ØMQ hat mich ein Weilchen gekostet: die FreeBSD-Ports folgen hier
der offiziellen Strategie von ØMQ und trennen die Bibliothek von den
C++-Bindings, die man in cppzmq findet. Erst damit hat man dann
zmq.hpp.
Der Compiler läuft damit dann durch, aber der Linker wirft noch
viele Fehler. Manches sieht mir recht seltsam aus, aber es ist
Mitternacht, und ich geh' dann erstmal ins Bett. Ich hänge das
Logfile vom Linker mal an.
Jörg W. schrieb:> Ich hänge das> Logfile vom Linker mal an.
So auf den ersten Blick fällt mir auf, dass du mit gcc linkst. Versuch's
doch mal mit dem g++
Lukas K. schrieb:> So auf den ersten Blick fällt mir auf, dass du mit gcc linkst.
Ja, ich hatte mit
1
gmake CC=gcc6 CXX=g++6
gebaut. Offenbar benutzt du aber nicht CXX sondern CC.
Mit
1
gmake CC=g++6
verschwinden die Fehler bezüglich der C++-Standardbibliothek, aber
es bleiben viele Fehler für Glib unt Gtk.
glibmm ist 2.50.1, gtkmm ist 3.22.0. Zu alt?
Ich habe diese beiden gerade für alle Fälle auch nochmal mit dem
GCC 6 (statt des Clang aus dem Basis-OS) neu compiliert und baue
Horizon nochmal. Mal sehen, ob das was ändert.
Lukas K. schrieb:> K. J. schrieb:>> ber starten tut es>> leider nicht.>> Du startest auch die falschen Binaries. Unmittelbar startbar sind nur> horizon-prj-mgr und horizon-pool-mgr, siehe> https://github.com/carrotIndustries/horizon/wiki/Getting-started
Ja danke das war es, jetzt scheitert es am OpenGL3, ok das kann meine
Grafikkarte nicht, schade werde aber trotzdem das Projekt von dir
weiterverfolgen, macht schon einen guten eindruck, mal schauen bin eh
auf der suche nach einer neuen Grafikkarte.
Jörg W. schrieb:> Ich habe diese beiden gerade für alle Fälle auch nochmal mit dem GCC 6> (statt des Clang aus dem Basis-OS) neu compiliert und baue Horizon> nochmal. Mal sehen, ob das was ändert.
Ja, war schon besser. Hatte dann noch Linkerfehler für Cairo und
YAML, sodass ich cairomm und yaml-cpp ebenfalls mit GCC 6 neu
compiliert habe. (Ich vermute, bei yaml-cpp hätte der Upgrade an
sich genügt.) Damit lässt es sich nun linken.
Weiß nicht, ob der Clang in FreeBSD 11 dann C++14 bereits beherrscht;
wenn, dann wären damit alle Versionsvoraussetzungen „aus der Dose
raus“ erfüllt. Damit zeigt sich eigentlich, dass Lukas' Strategie,
zu Beginn der Entwicklung „bleeding edge“ zu benutzen und davon
auszugehen, dass diese in hinreichend kurzer Zeit ohnehin mainstream
werden, offenbar funktioniert.
Leider werde ich erst morgen abend wieder vor der FreeBSD-Kiste sitzen,
um zu testen, ob's auch funktioniert. Im Moment bin ich mir noch nicht
ganz sicher bezüglicher der GL-Version – in der Ausgabe von glxinfo
sind so viele verschiedene Versions-Strings drin. :/
Hab's geschafft, via VNC auf die Maschine zuzugreifen.
Wenn ich den Schaltplaneditor aus dem Project Manager starten will,
bekomme ich:
1
SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name, GROUP_CONCAT(tags.tag, ' '), parts.filename FROM parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages ON packages.uuid = parts.package WHERE parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid ORDER BY parts.MPN COLLATE naturalCompare ASC
2
col 2
3
create proc
4
5
(<unknown>:7194): glibmm-ERROR **:
6
unhandled exception (type std::exception) in signal handler:
(Weiß nicht, ob die SELECT-Ausschrift eventuell schon davor dort stand.)
Stack trace im Coredump zeigt auf das Release-Event des GTK-Buttons,
scheint sonst nicht wirklich interessante zu sein.
Jörg W. schrieb:> what: can't find executable
Der Projektmanager muss rausfinden, wo der "interaktive Manipulator"
(Schaltplan/Boardeditor) liegt und guckt dazu in dem Verzeichnis nach,
indem auch er selber liegt:
https://github.com/carrotIndustries/horizon/blob/master/util/util.cpp#L45
FreeBSD kann wohl kein /proc/self/exe
Ich freue mich über Patches :)
Jörg W. schrieb:> in der Ausgabe von glxinfo> sind so viele verschiedene Versions-Strings drin. :/
"OpenGL core profile version string" ist was du brauchst. Das muss >= 3
sein.
Lukas K. schrieb:> FreeBSD kann wohl kein /proc/self/exe
Es gibt ein /proc/curproc/file, welches ein Symlink auf das eigene
Executable ist. Darüber müsste sich das arrangieren lassen, wenn
ich das richtig sehe.
> Ich freue mich über Patches :)
Schau' ich mir an.
> "OpenGL core profile version string" ist was du brauchst. Das muss >= 3> sein.
OpenGL core profile version string: 3.3 (Core Profile) Mesa 17.2.4
Sieht also gut aus. :)
Lukas K. schrieb:> Ich freue mich über Patches :)
OK, der war einfach. :) Funktioniert offenbar wirklich genauso wie
Linux, heißt halt nur anders.
Fliegt dann aber trotzdem 'raus:
Jörg W. schrieb:> Funktioniert offenbar wirklich genauso wie Linux, heißt halt nur anders.
ps: /proc-Filesystem ist unter FreeBSD nicht verpflichtend vorhanden.
Sollte man vielleicht irgendwo im Wiki vermerken. Wenn es jemand
nicht hat, kann er diese Zeile in /etc/fstab hinzufügen:
Jörg W. schrieb:> + std::locale::global(std::locale("C"));
Hm, das ist nicht so schön, dann geht's auf deutschen FreeBSDs kaputt.
Probier's mal mit std::locale::global(std::locale(std::setlocale(LC_ALL,
"")));
Ich bin schwer beeindruckt. Das Programm gefällt mir sehr. Ich bin
gerade dabei, mich etwas einzuarbeiten und möchte ein kleines Projekt
damit umsetzen. Es sieht ja schon sehr gut benutzbar aus. Das Konzept
der Pools gefällt mir vor allem sehr gut. Das meiste, was ich in den 1
bis 2 Stunden, die ich jetzt davor sitze, entdeckt habe, wirkt sehr
durchdacht!
Zwei kleines Sachen sind mir aufgefallen:
1. Rechtecke mit abgerundeten Ecken versagen leider, wenn die Rundungen
überlappen. Hintergrund ist, dass ich einen kleinen Punkt als
Pin-1-Indikator setzen wollte. Dafür schien ein Rechteck mit runden
Ecken die einfachste Lösung. Leider funktioniert der Grenzfall Eckradius
gleich halber Kantenlänge nicht. Mit größerem Radius wird es nicht
besser (siehe Anhang).
2. Es wäre schön, wenn es eine Möglichkeit gäbe, Ecken von Linien zu
entfernen oder Linien aufzutrennen. Ich wollte einen komplizierteren
Platinenumriss zeichnen und habe dafür zuerst das grobe Rechteck gemalt,
was sehr bequem ging. Nur leider sehe ich keinen Weg, wie ich an einer
Ecke noch etwas „wegschneiden” kann, weil die Linien immer als Rechteck
verbunden sind und ich dieses nicht auftrennen kann, oder einen weiteren
Knick einfügen kann.
Ich hoffe das war so weit einigermaßen verständlich ;)
Jörg W. schrieb:> Ich verstehe noch nicht ganz, was du damit erreichen willst. Nur das> Dezimalzeichen zurücksetzen?
Das Problem war, dass ich zum Einlesen von Zahlen strtod verwende, was
locale-Abhängig ist und die Formatierung mit streams machen. strtod
benutzt automatisch die System-Locale, nur die streams stehen
standardmäßig auf "C". Ziel davon ist es, dass wenigstens der
Dezimaltrenner gleich der System-Locale ist.
Jonas F. schrieb:> Das meiste, was ich in den 1> bis 2 Stunden, die ich jetzt davor sitze, entdeckt habe, wirkt sehr> durchdacht!
Sehr schön :)
> Zwei kleines Sachen sind mir aufgefallen:>> 1. Rechtecke mit abgerundeten Ecken versagen leider, wenn die Rundungen> überlappen. Hintergrund ist, dass ich einen kleinen Punkt als> Pin-1-Indikator setzen wollte. Dafür schien ein Rechteck mit runden> Ecken die einfachste Lösung. Leider funktioniert der Grenzfall Eckradius> gleich halber Kantenlänge nicht. Mit größerem Radius wird es nicht> besser (siehe Anhang).
Das passiert, da das entstehende Polygon dann sich selbst schneidet bzw.
berührt. Das gefällt der Library, die das Polygon trianguliert nicht so
gut und die gibt dann komische Dinge aus. Ich bau noch ein, dass das
wenigstens mit dem Tool nicht passieren kann.
Als Pin1-Markierung ist es zu bevorzugen, die vorhandenen Linien zu
kürzen/verlängern wie in
http://www.ocipcdc.org/archive/What_is_New_in_IPC-7351C_03_11_2015.pdf
beschrieben.
>> 2. Es wäre schön, wenn es eine Möglichkeit gäbe, Ecken von Linien zu> entfernen oder Linien aufzutrennen. Ich wollte einen komplizierteren> Platinenumriss zeichnen und habe dafür zuerst das grobe Rechteck gemalt,> was sehr bequem ging. Nur leider sehe ich keinen Weg, wie ich an einer> Ecke noch etwas „wegschneiden” kann, weil die Linien immer als Rechteck> verbunden sind und ich dieses nicht auftrennen kann, oder einen weiteren> Knick einfügen kann.
Horizon unterscheidet zwischen Linien und Polygonen. Linien sind für
Dinge zu verwenden, die keine geschlossene Fläche darstellen, z.B.
Linien auf dem Silkscreen. Alles was eine Fläche (z.B. Board-Outline)
wird mit Polygonen dargestellt. Polygone sind prinzipiell immer
geschlossen. Aber ja, du hast recht, man kann derzeit nur Ecken löschen
und keine neuen einfügen. Das kommt noch recht zeitnah.
Lukas K. schrieb:> Ziel davon ist es, dass wenigstens der Dezimaltrenner gleich der> System-Locale ist.
Hmm. Geänderte Dezimaltrenner ist das, was ich an diesem ganzen
l16n-Kram am meisten hasse. Ich ärgere mich regelmäßig darüber,
dass FreeCAD auf meinem Linux-Laptop ein "57.6 mm" völlig
missinterpretiert, weil dort halt die komplette Umgebung auf
deutsch steht (und ich zu faul war, das bislang zu ändern). An
deutsche Menüs und Fehlermeldungen könnte ich mich ja zur Not noch
gewöhnen, an geänderte Dezimaltrenner aber gar nicht.
Auf meinem FreeBSD habe ich daher nur LC_CTYPE überhaupt auf deutsch
stehen, der Rest ist nicht gesetzt.
Ich wäre ja dafür, den Dezimaltrenner in den Preferences durch den
Nutzer überschreibbar zu machen …
Ich hoffe mal, der wird dann nicht für das Einlesen deiner JSON-Daten
benutzt. ;-)
OK, ich werde mir morgen mal anschauen, welche Variante auf FreeBSD
da funktioniert. Bin ja auch gespannt, mit dem Programm dann mal
real ein bisschen zu spielen, nach alldem, was die anderen inzwischen
hier geschrieben haben.
Sodele, das Tool zum Hinzufügen von Ecken in Polygonen ist drin und das
Tool zum malen von Polygonen mit runden ecken erzeugt keine ungültigen
Polygone mehr.
Jörg W. schrieb:> Ich wäre ja dafür, den Dezimaltrenner in den Preferences durch den> Nutzer überschreibbar zu machen …
Hört sich sinnvoll an, mal drüber nachdenken...
> Ich hoffe mal, der wird dann nicht für das Einlesen deiner JSON-Daten> benutzt. ;-)
Da haben schon andere dran gedacht ;)
Mit
diff --git a/Makefile b/Makefile
index 077c01c..c5b6baf 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-CC=g++
+CC?=g++
PKGCONFIG=pkg-config
kann man den benötigten Kompiler über eine Umgebungsvariable setzen.
Uwe B. schrieb:> kann man den benötigten Kompiler über eine Umgebungsvariable setzen.
Mal ne frage in die Runde: Müsste da nicht eigentlich CXX verwendet
werden?
Uwe B. schrieb:> Paralleles Bauen auf Mehrkernmaschinen wäre schön...
make -j 8, etc. funktioniert
Okay, mein Fehler. Ich hatte env CC="g++-6" CFLAGS=-j9 make in der tcsh
versucht. env CC="g++-6" make -j9 kommt deutlich schneller zum nächsten
Problem:
Wshadow -std=c++14 -O3 imp/tool_popover.cpp -o imp/tool_popover.o
In file included from imp/imp.cpp:1:0:
imp/imp.hpp:19:19: fatal error: zmq.hpp: Datei oder Verzeichnis nicht
gefunden
#include <zmq.hpp>
^
compilation terminated.
Das ganze auf Opensuse 42.2 und gcc6.
Lukas K. schrieb:> Uwe B. schrieb:>> kann man den benötigten Kompiler über eine Umgebungsvariable setzen.>> Mal ne frage in die Runde: Müsste da nicht eigentlich CXX verwendet> werden?
Ja, wäre sinnvoll.
Uwe B. schrieb:> In file included from imp/imp.cpp:1:0:> imp/imp.hpp:19:19: fatal error: zmq.hpp: Datei oder Verzeichnis nicht> gefunden> #include <zmq.hpp>> ^> compilation terminated.>> Das ganze auf Opensuse 42.2 und gcc6.
Auf FreeBSD war zeromq-cpp separat vom allgemeinen zeromq zu
installieren.
Vielleicht ja bei Opensuse auch?
Jörg W. schrieb:> Auf FreeBSD war zeromq-cpp separat vom allgemeinen zeromq zu> installieren.> Vielleicht ja bei Opensuse auch?
Unter opensuse sollte das cppzmq-devel Paket installiert werden, doch
unter Leap 42.2 gibt es das nicht, oder heisst anders.
Gruß,
Frank
Nachdem ich noch die Binutils-Gold installiert habe, lande ich bei
...
Wshadow -std=c++14 -O3 pool-mgr/pool_notebook.cpp -o
pool-mgr/pool_notebook.o
pool-mgr/pool_notebook.cpp: In function ‘void
horizon::send_msg(zmq::socket_t&, horizon::PoolUpdateStatus, const
string&)’:
pool-mgr/pool_notebook.cpp:826:30: error: no matching function for call
to ‘zmq::message_t::message_t(horizon::pool_update_msg_t*&, size_t&)’
zmq::message_t zmsg(msg, sz);
Uwe B. schrieb:> Nachdem ich noch die Binutils-Gold installiert habe, lande ich bei
Hmm, das gab's wohl damals noch nicht. Ich hab gerade mal was gepushed,
damit's auch ohne diesen Konstruktor funktioniert.
Lukas K. schrieb:> Jörg W. schrieb:>> + std::locale::global(std::locale("C"));>> Hm, das ist nicht so schön, dann geht's auf deutschen FreeBSDs kaputt.> Probier's mal mit std::locale::global(std::locale(std::setlocale(LC_ALL,> "")));
Gerade getestet: funktioniert auch nicht,
locale::facet::_S_create_c_locale name not valid
Das dürfte übrigens keineswegs an FreeBSD selbst liegen, sondern
daran, dass ich eben ansonsten keine "native locale" habe (für die
der leere String ja steht).
Wenn ich das Programm mit "env LANG=de_DE.UTF-8" starte, dann geht
auch dein originaler Code.
Ich vermute, dass das auch unter Linux kracht, wenn man keinerlei
Notation einer "native locale" hat.
Daher neuer Vorschlag: deinen originalen Code benutzen, aber die
ggf. geworfene Exception abfangen und ignorieren.
Jörg W. schrieb:> Viel mehr an Tests ist über VNC hier gerade nicht drin.
Das lag allerdings gar nicht so sehr an VNC, sondern daran, dass sich
die Grafik verklemmt hatte. :-( Das X-Server-Log war dann voller
"EQ overflow", und es konnte danach alles mögliche passieren zwischen
"Monitor geht in Standby, alles fängt sich nach paar Sekunden wieder"
bis zu einem spontanen Reboot.
Das Ganze war ein Onboard-ARUBA-Chipsatz. Ich habe jetzt mal eine
andere Karte reingesteckt. Die hat bei meinem Sohn zwar Probleme
bereitet, weshalb wir die Hardware in Verdacht hatten, aber bislang
funktioniert sie hier und damit geht nun auch Horizon – hurra!
Wirklich testen mag ich allerdings um diese Uhrzeit nichts mehr.
Edit: sorry, habe nur "git diff" gemacht. Da sind jetzt beide
Patch-Vorschläge in einem drin, der für die Locale und der für
FreeBSD's procfs.
Jörg W. schrieb:> Lukas K. schrieb:>> Uwe B. schrieb:>>> kann man den benötigten Kompiler über eine Umgebungsvariable setzen.>>>> Mal ne frage in die Runde: Müsste da nicht eigentlich CXX verwendet>> werden?>> Ja, wäre sinnvoll.
Da fällt mir ein: du müsstest lediglich das Makefile so umbauen,
dass ${CXX} benutzt wird und nicht ${CC}. Die beanstandete Zeile
kann dann komplett entfallen, da die Voreinstellung für CXX "c++"
ist, was auf einem Linux typischerweise ein Symlink auf g++ ist.
Ohne explizite Zuweisung von CXX im Makefile wiederum kann man es
immer übers Environment überschreiben.
Wenn ich im angehängten äußerst simplen Mini-"Projekt" (ein R und ein
C, nur an einer Stelle verbunden) versuche, mit "dt" einen neuen Track
zu zeichnen, der einen Knotenpunkt auf dem existierenden hat (startend
auf Pin2 von R?, mithin eine Netz-Kollision), und ich zeichne von da
weiter, dann crasht es beim Drücken der rechten Maustaste mit:
1
unhandled exception (type: std::exception) in signal handler:
Jörg W. schrieb:> Ohne explizite Zuweisung von CXX im Makefile wiederum kann man es> immer übers Environment überschreiben.https://github.com/carrotIndustries/horizon/blob/master/Makefile#L1
Sollte doch eigentlich auch mit "?=" funktionieren?
Jörg W. schrieb:> mit "dt" einen neuen Track> zu zeichnen
Wozu? Benutzen willst du eigentlich "Route Track Interactive" (x), das
macht keine DRC-Fehler, etc.
Aber ja, abstürzen sollte es nicht.
Lukas K. schrieb:> Jörg W. schrieb:>> Ohne explizite Zuweisung von CXX im Makefile wiederum kann man es>> immer übers Environment überschreiben.>> https://github.com/carrotIndustries/horizon/blob/master/Makefile#L1> Sollte doch eigentlich auch mit "?=" funktionieren?
Ja, aber diese Zuweisung braucht man eben gar nicht, wenn
man ${CXX} zum Compilieren benutzt (machst du ja inzwischen), denn
die Variable CXX ist passend voreingestellt.
Allerdings heißen die Optionen dazu natürlich dann auch CXXFLAGS,
nicht CFLAGS.
> Jörg W. schrieb:>> mit "dt" einen neuen Track>> zu zeichnen>> Wozu?
Weil ich überhaupt erstmal die Kommandos kennenlernen wollte.
> Benutzen willst du eigentlich "Route Track Interactive" (x), das> macht keine DRC-Fehler, etc.
OK, hatte ich schon gedacht.
> Aber ja, abstürzen sollte es nicht.
Yep, das war mein einziger Punkt hierbei.
Stacktrace kann ich liefern, aber der ist ziemlich nichtssagend
(finde ich).
Gute Nachrichten für die Benutzer von nicht-tiling-Fenstermanagern:
Horizon speichert nun die Position von Fenstern.
Jörg W. schrieb:>> Aber ja, abstürzen sollte es nicht.>> Yep, das war mein einziger Punkt hierbei.
Ist repariert.
Lukas K. schrieb:> Gute Nachrichten für die Benutzer von nicht-tiling-Fenstermanagern:> Horizon speichert nun die Position von Fenstern.
Zwar nicht sonderlich wichtig für mich, aber kann bestätigen, dass es
funktioniert (fvwm2).
> Jörg W. schrieb:>>> Aber ja, abstürzen sollte es nicht.>>>> Yep, das war mein einziger Punkt hierbei.>> Ist repariert.
Auch das klappt, danke!
Habe mir mal den Gerber-Output angesehen.
Wenn man ganz unbedarft einfach auf "Generate" drückt, bekommt man
eine Ladung Dateien mit den Namen ".gbl", ".gbo", ".txt" usw. Richtig,
das wurde vorher auch so angezeigt – ich finde es aber trotzdem
verwirrend. Irgendwie sollte in der Voreinstellung da meiner Meinung
nach der Projektname als Dateinamens-Teil vorgegeben sein, und der
Rest dann nur als Suffix benutzt. Die einzige Möglichkeit, den
Nicht-Suffix-Anteil für alle generierten Dateien zugleich zu ändern,
hat man derzeit mit dem "Präfix"-Feld. Weiß nicht, ob das so gedacht
war. Wenn, dann fände ich es gut, wenn alles, was man in dieses
Eingabefeld tippt, auch in den Dateinamen automatisch mit auftaucht,
und natürlich dass dieses Feld dann mit dem Projektnamen vorbelegt
ist.
Für Lagen (oder Bohrungsgruppen), die aktuell keine Daten enthalten,
sollten m. E. auch keine Dateien erzeugt werden. Ansonsten meckert
bspw. gerbv, dass es damit jetzt nichts anfangen kann, weil es
vermeintlich RS-274-D-Dateien wären und sowas. Das Nichtgenerieren
dieser Lagen könnte man ja unten im Statusfenster dokumentieren.
Schließlich hatte ich im Layout noch so eine sinnlose Struktur drin,
wie oben im Screenshot gezeigt: ein Leiterzug ohne Breite, der daraus
entstanden war, dass da einfach kein Netz definiert ist, welches man
hätte routen können. Während die 3D-Vorschau diese Linie ordentlich
ausblendet, taucht sie in der Gerberlage auf. Bin mir noch nicht
ganz schlüssig, wie man sinnvoll damit umgeht. Vielleicht sollte
man einfach in Kupferlagen keine Linien mit einer Breite von 0
zulassen, sondern generell die DRC-mäßige Mindestbreite setzen, auch
wenn es jetzt kein Netz dafür gibt?
(Wenn du für irgendwas lieber Patches sehen würdest als Prosa, kannst
du mir das gern sagen. Ich würde dann versuchen, was zu basteln.)
Offtopic: kann man das Look&Feel von Gtk3 eigentlich von diesem
"Tablet"-Aussehen irgendwie auch auf "normal" trimmen? Ich sitze
an einem Computer und brauch' da keine riesigen Schaltflächen, auf
die man mit den Fingern tatschen kann …
Hallo Lukas.
Auf einem aktuellen Debian 9 (stretch) gelingt der Build (ca. 25
Minuten) problemlos. Ok, ein paar Warnungen wegen unbenutzter Variablen
und sowas.
Aber dann weiss ich nicht weiter. Ich bin weder Programmierer noch
sonstwie ein IT Wissender. ;O)
Sollte ich anschliessend ldconfig darüberlaufen lassen?
Anmerkung: Habe ich gemacht. Das Ergebnis ist das gleiche.
Was genau muss ich dann überhaupt wo und wie starten?
Ich erhalte eine Reihe von ausführbaren Dateien. Unter anderem
"horizon-prj-mgr" mit was 53,4Mb. Aber die lässt sich nicht starten.
Auch nicht aus einer Konsole.
Ich bin Eigentümer und habe Lese, Schreib- und Ausführungsrechte darauf.
Aber auch als root geht es nicht.
Die Konsole gibt mir als Fehlermeldung: "command not found", was auf
fehlende Rechte oder eine unausführbare Datei hindeutet. Der Krusader
öffnet ein Fenster und fragt, mit was ich die Datei geöffnet haben will.
Info zum Debian hier: Linux 4.9.0-4-686-pae i686, 32 bit, Little endian,
wxGTK
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Jörg W. schrieb:> Hast du eigentlich Ambitionen, das alles auch auf MacOS lauffähig> zu bekommen?
Für Quartz gibt es (noch) keinen GdkGLContext. Wenn es den gibt, sollte
dem nichts im Wege stehen.
Jörg W. schrieb:> Für Lagen (oder Bohrungsgruppen), die aktuell keine Daten enthalten,> sollten m. E. auch keine Dateien erzeugt werden.
Einige Hersteller geben an, dass sie gerne jede Lage hätten, auch wenn
sie leer ist.
Jörg W. schrieb:> weil es> vermeintlich RS-274-D-Dateien wären und sowas
Der Code, der nachsieht, ob es eine RS-274X ist schaut einfach nur nach
Substrings, die nach 274-X ausschauen. Wenn ein Layer eben leer ist,
fällt das hin. Andere Gerber-Viewer hatten da nicht gemeckert.
Jörg W. schrieb:> Die einzige Möglichkeit, den> Nicht-Suffix-Anteil für alle generierten Dateien zugleich zu ändern,> hat man derzeit mit dem "Präfix"-Feld. Weiß nicht, ob das so gedacht> war.
Ja
> Wenn, dann fände ich es gut, wenn alles, was man in dieses> Eingabefeld tippt, auch in den Dateinamen automatisch mit auftaucht,> und natürlich dass dieses Feld dann mit dem Projektnamen vorbelegt> ist.
Ok, Projektname als Vorbelegung beim Erzeugen eines neuen Projektes ist
drin. Die Idee mit dem zweiteiligen Dateinamen war, wirklich jedem
Fertigerwunsch gerecht werden zu können und nicht den Projektnamen für
jedes Layer einzeln eingeben zu müssen.
Jörg W. schrieb:> Wenn, dann fände ich es gut, wenn alles, was man in dieses> Eingabefeld tippt, auch in den Dateinamen automatisch mit auftaucht
Ideen, wie das konkret sinnvoll aussehen könnte? Logik wie: "gucken, ob
noch mein Prefix im Dateiname ganz vorne drin ist, wenn ja anpassen,
wenn nicht, nichts tun" scheint mir ein wenig fragil.
Jörg W. schrieb:> Vielleicht sollte> man einfach in Kupferlagen keine Linien mit einer Breite von 0> zulassen, sondern generell die DRC-mäßige Mindestbreite setzen, auch> wenn es jetzt kein Netz dafür gibt?
Im DRC wird das dann auch beanstandet, dass der Track dünn ist. Tracks
ohne Netz sollten ohnehin zukünftig einen DRC-Fehler geben. Jetzt
nimmt's auch die default-Breite.
Jörg W. schrieb:> Offtopic: kann man das Look&Feel von Gtk3 eigentlich von diesem> "Tablet"-Aussehen irgendwie auch auf "normal" trimmen?
Das Aussehen von Gtk3 ist vollständig durch CSS anpassbar. Andere Themes
gehen vielleicht ein wenig sparsamer mit padding um...
Lukas K. schrieb:> Jörg W. schrieb:>> Hast du eigentlich Ambitionen, das alles auch auf MacOS lauffähig>> zu bekommen?>> Für Quartz gibt es (noch) keinen GdkGLContext. Wenn es den gibt, sollte> dem nichts im Wege stehen.
Davon abgesehen, dass für Richard Stallman Apple der historische
„Hauptfeind“ ist, so recht verstehe ich deren Policy da nicht. Im
Jahr 2014 postet jemand offenbar zumindest teilweise funktionable
Patches für Quartz:
https://mail.gnome.org/archives/gtk-devel-list/2014-November/msg00017.html
Im Jahr 2015 schaffen sie es dann gerade mal, eine “non-implementation”
zu committen:
https://mail.gnome.org/archives/commits-list/2015-May/msg01780.html> Jörg W. schrieb:>> Für Lagen (oder Bohrungsgruppen), die aktuell keine Daten enthalten,>> sollten m. E. auch keine Dateien erzeugt werden.>> Einige Hersteller geben an, dass sie gerne jede Lage hätten, auch wenn> sie leer ist.
OK.
> Jörg W. schrieb:>> Die einzige Möglichkeit, den>> Nicht-Suffix-Anteil für alle generierten Dateien zugleich zu ändern,>> hat man derzeit mit dem "Präfix"-Feld. Weiß nicht, ob das so gedacht>> war.> Ja
Wenn ich mir das nochmal ansehe und ein wenig drüber nachdenke,
würde ich das Layout etwas anders organisieren:
Erstens linke und rechte Seite tauschen. Dann stehen Verzeichnisname
und Dateiname auf der linken Seite. Das Feld "Prefix" würde ich in
"Base Filename" umbenennen, die Beschriftung "Filename" in "Suffix".
Ich denke, damit ist es dann eindeutig, wie sich die endgültigen
Namen zusammensetzen, und dieser Vorschlag:
>> Wenn, dann fände ich es gut, wenn alles, was man in dieses>> Eingabefeld tippt, auch in den Dateinamen automatisch mit auftaucht,>> und natürlich dass dieses Feld dann mit dem Projektnamen vorbelegt>> ist.
… ist hinfällig.
> Ok, Projektname als Vorbelegung beim Erzeugen eines neuen Projektes ist> drin. Die Idee mit dem zweiteiligen Dateinamen war, wirklich jedem> Fertigerwunsch gerecht werden zu können und nicht den Projektnamen für> jedes Layer einzeln eingeben zu müssen.
Das ist durchaus sinnvoll.
Das bringt mich drauf: diese Dateinamensendungen sind bei Gerber ja
alles andere als standardisiert. Die Endungen, die du jetzt als
Voreinstellung hast, sind die, die bspw. Altium benutzt. Andere
Hersteller könnten da andere Vorlieben haben. In Zeiten, da die
Dateinamenswelt nicht mehr aus 8+3 besteht, kann man ja auch Endungen
wie .top oder .bottom benutzen statt kryptischer .gbt / .gbl.
Das alles sowie die Details der generierten Dateien (Inch/Millimeter,
Zahl der Dezimalstellen, Unterdrückung führender oder abschließender
Nullen) ist typischerweise sehr spezifisch für einzelne Fertiger,
auch wenn sich da allmählich mehr Toleranz und automatische Erkennung
breit macht. Sowas müsste man eigentlich in einem “CAM Batch” als
Voreinstellung hinterlegen können.
Das eilt aber ganz gewiss nicht.
> Jörg W. schrieb:>> Vielleicht sollte>> man einfach in Kupferlagen keine Linien mit einer Breite von 0>> zulassen, sondern generell die DRC-mäßige Mindestbreite setzen, auch>> wenn es jetzt kein Netz dafür gibt?>> Im DRC wird das dann auch beanstandet, dass der Track dünn ist.
Hätte ich auch erwartet :), den hatte ich nur für die Spielerei
nicht laufen lassen.
> Tracks> ohne Netz sollten ohnehin zukünftig einen DRC-Fehler geben.
Finde ich schwierig: was ist der Unterschied zwischen einer Linie,
die ich um Kupfer ziehe und bspw. einem Text? Der hat auch kein
Netz. Einen DRC-Fehler sollte er nur bei Abstandsverletzung bringen.
Eine Warnung wäre aber OK.
> Jörg W. schrieb:>> Offtopic: kann man das Look&Feel von Gtk3 eigentlich von diesem>> "Tablet"-Aussehen irgendwie auch auf "normal" trimmen?>> Das Aussehen von Gtk3 ist vollständig durch CSS anpassbar. Andere Themes> gehen vielleicht ein wenig sparsamer mit padding um...
OK, muss ich mir mal ansehen. Das Aussehen hatte mich schon gestört,
als Evince als eines der wenigen Gtk-Programme, die ich sonst so habe,
auf Gtk3 gewechselt ist.
Wenn Text kein Netz ist, dann gibts aber Krach wenn zwei verschiedene
Netze von außerhalb den Buchstaben überkreuzen. Die würden dann über
diesen Buchstaben bzw. Textstring kurzgeschlossen. Entweder der Text
wird ein Netz (möglicherweise mit speziellen Namen), oder Text muß in
der DRC extra behandelt werden, also eigene Regeln zu allen anderen
Objekttypen bekommen. Was natürlich wegen O**2 rechenintensiv ist.
Hallo Lukas.
Lukas K. schrieb:>> Aber die lässt sich nicht starten.>> Auch nicht aus einer Konsole.>>
1
> ./horizon-prj-mgr
2
>
>> Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis.> Ich hab's im Wiki mal angepasst.
<vor stirn patsch> Das wird es vermutlich gewesen sein. Irgendwie war
ich wohl zu unkonzentriert.
Ich werde es mal probieren, wenn ich heute Nachmittag wieder zu Hause
bin.
Danke für Deinen Hinweis.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Jörg W. schrieb:> Wenn ich mir das nochmal ansehe und ein wenig drüber nachdenke,> würde ich das Layout etwas anders organisieren:
Hört sich sinnvoll an, mal drüber nachdenken.
Jörg W. schrieb:> Die Endungen, die du jetzt als> Voreinstellung hast, sind die, die bspw. Altium benutzt.
Die Motivation war mehr, dass die ganzen billigen Fertiger (mindestens
Seeedstudio, Elecrow, OSHPark) die Protel-Endungen haben wollen. Ist ja
aber auch nur die Vorbelegung.
Jörg W. schrieb:> Das alles sowie die Details der generierten Dateien (Inch/Millimeter,> Zahl der Dezimalstellen, Unterdrückung führender oder abschließender> Nullen) ist typischerweise sehr spezifisch für einzelne Fertiger,> auch wenn sich da allmählich mehr Toleranz und automatische Erkennung> breit macht.
Genau darum habe ich diese Einstellungen erstmal weggelassen. Wenn mir
jemand einen Fertiger zeigt, der mit Metrisch, 6 Stellen hinterm Komma
ohne führende Nullen nicht zurecht kommt, bau' ich da noch Einstellungen
dazu.
Jörg W. schrieb:> Finde ich schwierig: was ist der Unterschied zwischen einer Linie,> die ich um Kupfer ziehe und bspw. einem Text?
Tracks, Linien und Texte sind verschiedene Dinge und werden im DRC auch
anders behandelt.
Lukas K. schrieb:> Die Motivation war mehr, dass die ganzen billigen Fertiger (mindestens> Seeedstudio, Elecrow, OSHPark) die Protel-Endungen haben wollen. Ist ja> aber auch nur die Vorbelegung.
Hast du eigentlich (oder wer anders) schon mal eine Platine fertigen
lassen? Spiele mit dem Gedanken, mal mein Projekt bei Elecrow fertigen
zu lassen um zu sehen was raus kommt ;-)
Was anderes: Zu Kontrollzwecken wäre auch eine (konfigurierbare)
Druckerausgabe nicht schlecht. Es soll auch noch "Bastler" geben, die
selbst ätzen. Ich z.B. lege gerne mal die realen Bauteile auf einen
Ausdruck, bevor ich was bestelle, hätte dabei aber gerne Löcher in den
TH Pads. Gut, man könnte als Workaround die Gerber Dateien mittels gerbv
ausdrucken.
Nachtrag:
Bernd W. schrieb:>> Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis.>> Ich hab's im Wiki mal angepasst.>> <vor stirn patsch> Das wird es vermutlich gewesen sein. Irgendwie war> ich wohl zu unkonzentriert.>> Ich werde es mal probieren, wenn ich heute Nachmittag wieder zu Hause> bin.
Das war es leider nicht. Aber da sind noch andere merkwürdige Dinge.
Ich such mal weiter.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Bernd W. schrieb:> Nachtrag:>> Bernd W. schrieb:>>>> Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis.>>> Ich hab's im Wiki mal angepasst.>>>> <vor stirn patsch> Das wird es vermutlich gewesen sein. Irgendwie war>> ich wohl zu unkonzentriert.>>>> Ich werde es mal probieren, wenn ich heute Nachmittag wieder zu Hause>> bin.>> Das war es leider nicht. Aber da sind noch andere merkwürdige Dinge.> Ich such mal weiter.>> Mit freundlichem Gruß: Bernd Wiebus alias dl1eic> http://www.l02.de
Hallo Bernd,
ich habe hier einen Laptop mit zu alter Grafikkarte. Da startet zwar das
erste Fenster und auch das zweite Fenster lässt sich anwählen, aber bei
klicken auf "Board" tut sich nichts. Mit zu alten Grafikkarte
funktioniert das Boardlayout von horizon nicht. Auf meinen Rechnern mit
neuerer Grafikkarte habe ich dieses Problem nicht.
Hast du genau das Problem oder erscheint bei dir gar kein
Startbildschirm?
Lukas K. schrieb:> Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis.> Ich hab's im Wiki mal angepasst.
Nun, da gibt's durchaus noch eine Reihe ganz anderer Probleme.
Ich hatte mir mal die "horizon-2017-11-21-0215.zip" heruntergeladen und
versucht, dort irgend etwas zu starten.
Ergebnisse:
1. libgio-2.00-0.dll wird vom Virenscanner als IDP.Generic erachtet und
geblockt.
2. der "horizon-pool-mgr.exe" läßt sich zwar starten, aber außer einem
leeren Fenster hat er nix aufzuweisen. Mit "Open" könnte man ja irgend
ein "pool.json" laden - vorausgesetzt, man hätte sowas. In der Distri
ist jedenfalls kein *.json enthalten. Erwartest du, daß ein Interessent
so eine Datei vorhält?
3. auch "horizon-prj-mgr.exe" läßt sich starten, aber dort ist es fast
das Gleiche wie zuvor: "No pools set up, You haven't set up any pools,
add some in the preferences dialog...OK".
Natürlich enthält die Distri auch kein "*.hprj" und in den Preferences
ist's das Gleiche wie im vorigen Punkt, es fehlt am "pool".
4. alle anderen *.exe sind nicht startbar.
So mein Freund, es ist wohl doch so, wie ich es bereits sehr viel weiter
oben angedeutet habe: Während du dich mit tausenderlei "höheren" Details
befaßt, fehlt es ganz krass an den simplen Fundamenten.
Ich hätte erwartet, daß man als Benutzer zumindest die Chance hätte, das
System erstmal irgendwie aufzusetzen, so daß es auch läuft und einen
nicht vor ein zu nix brauchbares fast leeres Fenster setzt. Die
penetrante und durch nichts lösbare Nachfrage nach dem ominösen Pool
verhindert zuverlässig, daß man mit deinem Programm irgendwas beginnen
kann. Erwarte bitte nicht, daß irgend ein Interessent eine derartige
pool.json vorrätig hat. Entweder lieferst du eine derartige Datei als
quasi Standard mit der Distri aus, oder du generierst per Menüpunkt
"Neuer Pool" eine derartige Datei, sonst wird nix draus. Die Folge ist
dann nämlich, daß dein Programm nach etwa drei Minuten wieder restlos
von der Platte geputzt und abgehakt ist. Ist sowas deine Intention?
Ich hatte es dir schon einmal gesagt, daß ganz am Anfang das Ausdenken,
Formulieren und Festschreiben der Grundfunktionalität steht, sonst kommt
man alsbaldigst in Teufels Küche. Du bist grad drauf und dran, so
ziemlich ähnliche Fehler zu begehen wie die Kicad-Leute. Also nochmal:
zu allererst die Fundamente und dann der Rest des Hauses - und der
Innenausbau kommt nach dem Dach.
W.S.
Hallo W. S.,
das Programm horizon hat richtig Potential das neue Standardprogramm
fuer die Privatanwender zu werden. Lukas kennt sich sowohl mit Hardware,
PCB-Layout und mit Software aus. Deshalb habe ich da größtes Vertrauen,
dass das Programm ein großer Wurf wird.
Ich gebe zu, dass der Einstieg eine gewisse Hürde darstellt. Deshalb
habe ich mal eine Anleitung geschrieben und ein paar screenshots dazu
gemacht. Siehe nachfolgender Text.
1.
Ein beliebiges Verzeichnis anlegen, z. B. C:\horizon.
Das Ganze natürlich außerhalb von C:\Program ..
2.
Windows Version herunterladen
https://github.com/carrotIndustries/horizon/wiki/Getting-started ->
1.png
Uuterhalb "Windows" auf "here" klicken."
Da landet man dann hier: http://0x83.eu/horizon-zip/
Den zip-file in dem Verzeichnis C:\horizon speichern und dort auspacken
- "unzip here".
Das legt dann ein Unterverzeichnis horizon an. In dem sind die
exe-Dateien.
Damit sieht das so aus:
C:\horizon\horizon
3. Pool laden.
https://github.com/carrotIndustries/horizon/wiki/Getting-started
"Get the pool"
"download zipped pool" klicken.
horizon-pool-master.zip in C:\horizon speichern.
Auspacken mit "unzip here".
Damit hat man ein Unterverzeihnis
C:\horizon\horizon-pool-master
4. Example Project laden
https://github.com/carrotIndustries/horizon/wiki/Getting-started
Ziemlich unten auf der Webseite ist Example project
"test project" klicken
https://github.com/carrotIndustries/horizon-test-project
"Clone or download" klicken
"Download ZIP" klicken und in C:\horizon speichern.
horizon-test-project-master.zip auspacken mit "unzip here".
Damit hat man ein Unterverzeihnis mit Schaltplan und Layout.
C:\horizon\horizon-test-project-master
5. Programm starten
Mit dem Explorer nach C:\horizon\horizon gehen.
horizon-prj-mgr.exe starten -> 2.png
Links oben of das Symbol klicken und dann weiter mit "Preferences" ->
2a.png
Ein neues Fenster geht auf -> Add pool klicken -> 2b.png
Jetzt die .json Datei aus dem Verzeichnis
"C:\horizon\horizon-pool-master" waehlen -> 2c.png
OK klicken -> 2d.png
In dem kleinen Fenster "Preferences" auf x klicken." -> 2e.png
Jetzt sind wir wieder im Fenster wie beim Start - 2e.png
"Open" klicken" um das Beispielprojekt zu waehlen,
C:\horizon\horizon-test-project-master\pic32-eth.hprj -> 3.png
Zum Schluss "Open" klicken in dem Fenster -> 3.png
Jetzt sieht das Fenster so aus -> 4.png
Hier kann man jetzt den Schaltplan(Top Schematic) und das Layout(Board)
laden.
Den 3D View kann man aus dem PCB-Layout starten.
Gruß,
Helmut
W.S. schrieb:> So mein Freund
Meinst du wirklich, dass du dir mit deinem Geblubber „Freunde“ machst?
Wenn du dir den Thread mal ansiehst, dann wirst du feststellen, dass
es hinreichend viele Leute gibt, die selbst in dieser Phase durchaus
in der Lage sind, das Dingens zum Laufen zu bekommen. Dass es noch
lange nicht im "Plug&Play"-Stadium ist, nun, das steht eigentlich
schon in der Threadüberschrift drin. Wenn du mit dieser
Erwartungshaltung hergekommen bist: geh' einfach wieder. Komm dann
wieder, wenn Lukas es nicht mehr als "halbfertig" tituliert sondern
wenigstens als "Beta".
Wenn dir ernsthaft daran gelegen ist, hier was zu testen und auch
sinnvolles Feedback zu geben, dann wirst du ganz sicher auch die
derzeitige Einstiegshürde schaffen. Viele andere haben es vor dir
geschafft. Wenn du dich im Thread umsiehst, wirst du feststellen,
dass Lukas konstruktiver Kritik gegenüber durchaus sehr aufgeschlossen
ist. „ist eingebaut“, „ist geändert“, „klingt sinnvoll“ kannst du hier
an vielen Stellen lesen. Auf Kritik der Art „du bist völlig auf dem
Holzweg“ wird er jedoch sehr sicher verzichten können, da brauchst du
dir also auch nicht erst die Mühe machen, sowas aufzuschreiben.
Abdul K. schrieb:> Sowas wie ne Batch-Datei wäre schon schön.
Den Pool muss man nur einmal runterladen, danach braucht man sich
darum nicht mehr kümmern.
Dass das derzeitige Pool-Konzept nur ein Anfang ist, hatte Lukas ja
schon geschrieben. An der Stelle wird sich also ohnehin nochmal was
ändern.
So schlecht dokumentiert hat er das alles gar nicht, steht halt in
seinem Wiki. Da habe ich schon viel mehr Software erlebt, bei denen
die Doku nur aus .cpp-Dateien bestand.
Sicher, nur du bist halt damit den ganzen Tag beschäftigt. Morgens klebt
schon diverses C++ an der Kaffeetasse.
Andere wollen das Programm nur einsetzen.
Abdul K. schrieb:> Andere wollen das Programm nur einsetzen.
Naja, siehe Beitrag drüber: so weit ist es einfach noch nicht. Im
Moment
ist das praktisch nur was für Leute, die da bei der Entwicklung auch
(zumindest passiv) mitmachen möchten. Das Teil wirft mit diversen
Meldungen um sich, und es kann hie und da schon auch mal 'ne unhandled
exception geben. Wenn man das berichtet, stellt Lukas es ab, aber
wertvolle Arbeit würde ich damit nur mit ganz viel zwischendrin
Speichern machen wollen im derzeitigen Stadium.
Abdul K. schrieb:> Sicher, nur du bist halt damit den ganzen Tag beschäftigt. Morgens> klebt> schon diverses C++ an der Kaffeetasse.> Andere wollen das Programm nur einsetzen.
Hallo Abdul K.,
Man muss nicht selber kompilieren, wenn man einen WIN-PC hat.
Lukas stellt sehr aktuelle exe-Dateien für Windows bereit. Das ist schon
mal ein Superservice.
https://github.com/carrotIndustries/horizon/wiki/Getting-started
Get Horizon
Windows
"here"
PS: Darauf musste man bei Gnu-Octave z. B. zehn Jahre warten.
Achtung, nur weiterlesen, wenn man selber unter WIN kompilieren will.
Die "build"-Umgebung in Windows lässt sich leichter installieren als die
für Linux. Lukas hat das genau auf seiner Webseite beschrieben.
Zusätzlich habe ich hier in einer meiner Antworten die notwendigen
Kommandos zum erzeugen eigener WIN-exe zusammengefasst.
Anleitung zum Kompilieren der WIN-exe auf einem WIN-PC.
Einmalig mysys2 installieren. Anleitung siehe Webseite von Lukas.
https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Windows
--- WIN version erzeugen
In WIN mysys2 starten. Ein Terminal geht auf. In dem Terminal wird dann
gearbeitet.
#Im home/user Verzeichnis von mysys2 ein Verzeichnis anlegen.
$ mkdir horizonxyz
#Vom home-Verzeichnis in dieses Verzeichns wechseln.
$ cd horizonxyz
#Die Source-Files herunterladen.
$ git clone http://github.com/carrotIndustries/horizon
#In das von clone angelegte Unterverzeichnis horizon wechseln.
$ cd horizon
#Kompilieren mit allen logischen cores des Prozessors damit es schnell
geht. Beispiel CPU mit 4 cores + hyperthreading -> -j 8.
$ make -j 8
#Die WIN-Version im Ordner "dist" erzeugen.
$ ./make_bindist.sh
Im Unter-Ordner "dist" ist dann ein Verzeichnis horizon. Das ist das
Programmverzeichnis für die Windows-Version.
Wie starte ich einen neuen Pool? Gibt's dafür ein Tool?
Wenn ich im Pool ein Symbol editiere (wird vermutlich bei anderen
Elementen nicht anders sein), hätte ich außer "Save" auch gern ein
"Save As …", damit ich ausgehend von einem vorhandenen Element ein
neues ableiten kann.
Jörg W. schrieb:> Wenn du dich im Thread umsiehst, wirst du feststellen,> dass Lukas konstruktiver Kritik gegenüber durchaus sehr> aufgeschlossen ist.
Ja, durchaus.
> Auf Kritik der Art „du bist völlig auf dem Holzweg“ wird> er jedoch sehr sicher verzichten können, da brauchst du dir> also auch nicht erst die Mühe machen, sowas aufzuschreiben.
Das ist sicher auch richtig -- das heißt aber nicht, dass
diese Kritik zwingenderweise sachlich falsch ist.
Ich hätte es auch wichtiger gefunden, vorhandene Software
besser und interoperabler zu machen, als ein weiteres
Komplettpaket zu schaffen -- aber es lohnt nicht, das
dauernd wieder aufzuwärmen.
Ah Abstürze. Achgott, PCs eben.
Ich hatte ja oben mal was über RUN-EDS anno 1992 geschrieben. Also
damals ist diese Software so alle 2h abgestürzt. Und es gab einen
speziellen abundzu Fehler, wo das Projekt irreparabel zerstört wurde.
Das heißt, es wurde die Datei zerschreddert ohne sofortige Auswirkung.
Irgendwann hat sich dieser Fehler dann offenbart und alles dazwischen an
Arbeit reingesteckte, war damit futsch. Da nützt also auch kein Backup!
Das MacOS ging auch so 2-mal pro Tag hops... Auf einem 19" Monitor
konnte man beim Scrollen zugucken. So war das damals. Nur mal so erwähnt
für die jungen Hüpfer.
Die letzten Versionen RUN-EDS von 2001 waren recht stabil und hatten
kaum Fehler. Das MacOS lief da bereits rockstabil.
Und nochwas zu Bartels Autorouter: 2001 hatten wir die letzten
Vergleichstest zum Specctre-Router gemacht. Der war besser als der
Bartels. Und lief schneller auf billigerer Hardware, da Windoof-PC.
Possetitjel schrieb:> Ich hätte es auch wichtiger gefunden, vorhandene Software> besser und interoperabler zu machen, als ein weiteres> Komplettpaket zu schaffen
Mag sein. Andererseits – wenn Lukas für sich erkannt hat, dass die
vorhandene Software einfach mal eine „verfahrene Kiste“ ist (was ja
letztlich auch W.S. für Kicad immer mal wieder behauptet, und was
Stefan Salewski für gEDA so konstatiert hat), dann kann die Auflösung
„Fang von vorn an und mach es besser“ durchaus die richtige sein.
Kommt hinzu, dass Lukas es offenbar vom Arbeitsumfang tatsächlich
in der Lage ist zu stemmen.
Jörg W. schrieb:> hätte ich außer "Save" auch gern ein "Save As …"
Da fällt mir gerade auf: Alle Objekte im Pool Manager haben auch einen
"Create"-Button – nur Symbole nicht. Irgendwie muss Lukas ja seine
Symbole wohl auch angelegt haben.
Abdul K. schrieb:> Und nochwas zu Bartels Autorouter: 2001 hatten wir die letzten> Vergleichstest zum Specctre-Router gemacht. Der war besser als der> Bartels. Und lief schneller auf billigerer Hardware, da Windoof-PC.
Wobei ich BAE seit 2001 unter FreeBSD benutze (die Linux-Version),
ist also nicht so, dass sie originär Mac-Edelhardware benötigt hätten.
;)
Zu anderen Autoroutern kann ich nicht so viel sagen.
Das besondere am Mac war die Software, nicht die Hardware. Naja, die
Kombination in manchen Bereichen, z.B. die Maus kombiniert mit
vollgrafischer Oberfläche.
Allerdings hatten die ersten Macs schon echte EMV-Designs. Das habe ich
bei den Windows-Kisten bzw. DOS IBM-PC ziemlich vermißt.
Ok, falscher Thread :-)
Helmut S. schrieb:> Deshalb habe ich mal eine Anleitung geschrieben und ein paar screenshots> dazu gemacht. Siehe nachfolgender Text.
Cool, danke. Damit habe ich es bei mir fix zum Laufen bekommen - bin ja
neugierig und bewundere, was Lukas treibt.
Aur meiner Büchse (i7-3770, 4GB RAM, Win 7, SSD) braucht es gefühlte 10
Sekunden für den Start. Anschließend sieht es dann etwas seltam aus -
ich sehe zwar alle Bedienelemente, aber weder Schaltplan noch Layout.
Grafikkarte ist eine Radeon HD3600 - ziemlich alte Gurke, lt. Wikpedia
kann sie aber OpenGL 3.3. Windows behauptet, der Treiber sei aktuell.
Das prüfe ich aber erst morgen, es ist Zeit fürs Bett.
Fehlermeldungen wirft Horizon (2017-11-23-1801, das nenne ich mal
bleeding edge) keine. Gibt es irgendwo ein Logfile?
Max G. schrieb:> Grafikkarte ist eine Radeon HD3600 - ziemlich alte Gurke, lt. Wikpedia> kann sie aber OpenGL 3.3. Windows behauptet, der Treiber sei aktuell.> Das prüfe ich aber erst morgen, es ist Zeit fürs Bett.>
Ich habe gerade mal diese Version "horizon-2017-11-23-1801.zip" kurz
gestartet. Die läuft einwandfrei auf einem PC mit neuerer Grafikkarte
(GTX950). Nach meiner Erfahrung geht es ab Nvidia GTX560 und neuer
problemlos. Bei einer Nvidia GTX260 geht fast alles bis auf das Füllen
der Planes. Auf Rechnern mit Intel-CPU-Grafik läuft horizon auch.
Das kann nur also nur an deiner Grafikkarte/Grafikkarten-Treiber liegen.
Da hilft wohl nur eine neuere Grafikkarte.
Jörg W. schrieb:> Da fällt mir gerade auf: Alle Objekte im Pool Manager haben auch einen> "Create"-Button – nur Symbole nicht.
Der ist bei den Units, da zu jedem Symbol eine Unit gehört. Symbole sind
nicht die Primärquelle für Pins, dazu hat's die Units. Für bessere
discoverability hab ich jetzt auch noch einen Knopf bei den Symbols
eingebaut.
Jörg W. schrieb:> Wie starte ich einen neuen Pool? Gibt's dafür ein Tool?
Nein, da Leute dazu motiviert werden sollen, den globalen Pool zu
benutzen. Wer seinen eignen Pool (z.B. in einem Unternehmen) haben will,
kopiert sich am einfachsten den globalen Pool, löscht alles was nicht
gefällt und ändert die UUID in der pool.json
> Wenn ich im Pool ein Symbol editiere (wird vermutlich bei anderen> Elementen nicht anders sein), hätte ich außer "Save" auch gern ein> "Save As …", damit ich ausgehend von einem vorhandenen Element ein> neues ableiten kann.
Okay, kommt bald, wenn auch wohl als "Duplicate"-Knopf im Pool-Manager.
Falls sich wer wundert, weshalb so offensichtlich notwendige Features
fehlen: Als Entwickler hat man leider eine etwas verzerrte Sicht auf die
Dinge und hat 1000 Einfälle, was man als nächstes bauen könnte. Sowas
wie Duplicate war auch mal dabei. Meistens gewinnt dann aber der
Spieltrieb und sowas die 3D-Vorschau kommt dabei raus oder man kümmert
sich um Details wie unglückliche Auswahl-Boxen. Solche wünsche von
anderen Anwendern/Testern helfen mir ungemein Ideen zu priorisieren.
Danke an alle!
Max G. schrieb:> Aur meiner Büchse (i7-3770, 4GB RAM, Win 7, SSD) braucht es gefühlte 10> Sekunden für den Start. Anschließend sieht es dann etwas seltam aus -> ich sehe zwar alle Bedienelemente, aber weder Schaltplan noch Layout.
Kannst du mal einen Screenshot von dem Malheur machen?
Tester schrieb:> Hast du eigentlich (oder wer anders) schon mal eine Platine fertigen> lassen? Spiele mit dem Gedanken, mal mein Projekt bei Elecrow fertigen> zu lassen um zu sehen was raus kommt ;-)
Nicht dass ich wüsste. Wenn du magst nur zu, aber sei nicht böse mit
mir, wenn's nichts wird ;)
> Was anderes: Zu Kontrollzwecken wäre auch eine (konfigurierbare)> Druckerausgabe nicht schlecht.
So wie ich jetzt drüber nachdenke eigentlich recht wenig Aufwand mit
cairo...
Max G. schrieb:> Fehlermeldungen wirft Horizon (2017-11-23-1801, das nenne ich mal> bleeding edge) keine.
Die werden auf der Console rausgeworfen, also std::cerr << "irgendwas".
Müsstest du unter Windows wohl direkt aus einem cmd.exe heraus
starten.
Fehlermeldungen kommen hier auch nicht sooo viele (wenn ich nicht
gerade mal in eine Exception trete ;), aber es gibt massenhaft
Debugausgaben, bis hin zu SQL statements, die beim Ausfüllen des
Suchfeldes angezeigt werden. Irgendwas solltest du da also schon
sehen. :)
1
SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name, GROUP_CONCAT(tags.tag, ' '), parts.filename FROM parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages ON packages.uuid = parts.package WHERE parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid ORDER BY parts.MPN COLLATE naturalCompare ASC
2
SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name, GROUP_CONCAT(tags.tag, ' '), parts.filename FROM parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages ON packages.uuid = parts.package WHERE parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid ORDER BY parts.MPN COLLATE naturalCompare ASC
Noch ein Nachtrag:
Bernd W. schrieb:> Nachtrag:>>> Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis.>>> Ich hab's im Wiki mal angepasst.>>>> <vor stirn patsch> Das wird es vermutlich gewesen sein. Irgendwie war>> ich wohl zu unkonzentriert.>>>> Ich werde es mal probieren, wenn ich heute Nachmittag wieder zu Hause>> bin.>> Das war es leider nicht. Aber da sind noch andere merkwürdige Dinge.> Ich such mal weiter.
Schande über mich. Das war ich selber. Ein Klassiker, per remote auf dem
falschen Rechner und das auch nicht mitkriegen. :(
Nun startet das Programm, bricht aber mit einer Fehlermeldung ab:
(horizon-prj-mgr:1424): glibmm-ERROR **:
unhandled exception (type std::exception) in signal handler:
what: unable to open database file
Trace/Breakpoint ausgelöst
Ich probier mal ein pull, ob es da was neues gibt.
So, neue Daten, neuer build, aber gleiches Ergebnis:
(horizon-prj-mgr:3274): glibmm-ERROR **:
unhandled exception (type std::exception) in signal handler:
what: unable to open database file
Trace/Breakpoint ausgelöst
Wenn mit der "database" der pool gemeint ist, den habe ich auch auf der
Platte. Nur wie teile ich horizon mit, wo der ist?
Bisher konnte ich ja noch nicht allzu viel an Ergebnis sehen, aber
alleine die Menge an Sourcecode: "Hut ab"
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Hallo Bernd, ließ doch mal meine vorletzte Message - die mit den vielen
Screenshots. Da steht drin wie man den Pool hinzufügt. Das muss man nur
einmal machen.
Helmut
Bernd W. schrieb:> Nur wie teile ich horizon mit, wo der ist?
Mit dem Pool Manager.
Wundert mich nur, dass er ohne irgendeinen registrierten Pool überhaupt
startet. Das hat er bei mir abgelehnt.
Bernd W. schrieb:> (horizon-prj-mgr:1424): glibmm-ERROR **:> unhandled exception (type std::exception) in signal handler:> what: unable to open database file
Ist repariert, das Problem war folgendes: Zum Speichern der
Fenstergrößen benutze ich auch SQLite und das erwartet logischerweise,
dass es das Verzeichnis, in dem die Datenbank liegt schon existiert. Bis
jetzt ist das nur keinem aufgefallen, da alle das Verzeichnis schon
hatten.
Man brauch SQlite zur Speicherung von 4 32Bit Zahlen? Da würde mich mal
interessieren, wie man ohne Starten des Programms die Koordinaten eines
Fensters per Hand ändert. Wie aufwändig ist das? Was muß man tun? Rein
interessehalber. Normalerweise ist das doch in einer ini-Datei oder
schlimmer noch in der Registry.
Abdul K. schrieb:> Man brauch SQlite zur Speicherung von 4 32Bit Zahlen?
Du brauchst zwei Mal 32bit für Fenstergrößen? Respekt.
Den Monitor hätte ich auch gerne...
Abdul K. schrieb:> Man brauch SQlite zur Speicherung von 4 32Bit Zahlen?
Macht Dinge einfacher: Je nachdem, was der Anwender macht, können ja
auch mehrere Fenster nahezu zeitgleich geschlossen werden und dereb
Größen müssen gespeichert werden. Bei einer ini/json-Datei hätte ich
über Locking nachdenken müssen, damit das nicht hinfällt, bei SQLite
haben schon andere mit mehr Ahnung von der Materie drüber nachgedacht.
Der Overhead meinerseits von SQLite verglichen mit einer Datei geht auch
gegen null.
> Da würde mich mal> interessieren, wie man ohne Starten des Programms die Koordinaten eines> Fensters per Hand ändert. Wie aufwändig ist das? Was muß man tun?
1
$ sqlite3 .config/horizon/window_state.db
2
SQLite version 3.21.0 2017-10-24 18:55:49
3
Enter ".help" for usage hints.
4
sqlite> SELECT * FROM window_state;
5
prj-mgr|1914|871|1|38|0
6
pool-editor-win-27|762|600|579|286|0
7
imp-symbol|1914|871|1|38|0
8
pool-mgr|1914|871|1|38|0
9
10
sqlite> UPDATE window_state SET width=100 WHERE window='prj-mgr';
Lukas K. schrieb:> bei SQLite haben schon andere mit mehr Ahnung von der Materie drüber> nachgedacht
Genau darin sehe ich auch den Vorteil. SQlite ist einfach stabile
Technik, die man nur noch benutzen muss.
Interessant. Ich sehe nur das Problem, wie man das dann repariert wenn
was kaputt ist. Bei einer Textdatei ist das oft gut machbar. XML wird
schon schwieriger.
Gerade eben habe ich einen Vista-Rechner, der partout zu einen
bestimmten WLAN AP keine Verbindung aufbauen will. Mann kann die Liste
der aktiven APs aufrufen und einen auswählen, und das wars dann auch.
Keine Fehlemeldung und der alte AP weiterhin aktiv. Andere Platte rein,
geht. Tja, also config defekt. Google bedient. Konfigurationsdateien
gibts pro AP. Diese habe ich auch gefunden. Inhalt unlesbar.
Dekodiermaske gibts nicht. Bei Windoof alles geheim. In der Registry das
gleiche Spiel. Zig Einträge, aber völlig unsichtbar was wo im Bereich
WLAN verknüpft ist. DAS IST EINFACH EIN SCHROTTKONZEPT!
Das Ende vom Lied: Werde Vista platt machen und Win7 komplett frisch
installieren. Nicht nur wegen dem AP, sondern weil eh noch andere Sachen
Probleme machen.
Selbst der Ersatz der Konfigurationsdatei für diesen speziellen AP von
der anderen lauffähigen Platte hat nicht funktioniert.
Ich hätte noch eine Anregung: Wenn man ein Objekt anwählt, kann man ja
die Attribute editieren. Wählt man z.B. mehrere Leiterbahnsegmente aus
und möchte man bei allen z.B. die Breite ändern, muss man alle durch
klicken. Es wäre schön, wenn man z.B. eine Checkbox mit "Apply to all"
hätte, so dass nach dem Anwählen der Checkbox die Änderungen für alle
Segmente simultan angewendet werden würde.
Klaus R. schrieb:> Es wäre schön, wenn man z.B. eine Checkbox mit "Apply to all"> hätte, so dass nach dem Anwählen der Checkbox die Änderungen für alle> Segmente simultan angewendet werden würde.
Das gibt es doch schon, das macht der Knopf mit dem Haken. Ich hab' dem
gerade mal noch einen Tooltip spendiert.
Aehm... der "Knopf mit Haken"? Die Haken "tun" bei mir nicht viel. Egal
was ich anklicke, es ändert sich nur das als erstes angewähltes Segment.
Edit: Ok, hab's kapiert. Erst die Breite für eines ändern, danach den
Haken anwählen. Jetzt wird es für alle Angewählten übernommen.
Lukas K. schrieb:> Kannst du mal einen Screenshot von dem Malheur machen?
Gerne. Sieht originell aus, die Kontextmenüs gehen auch. Man sieht nur
nichts.
Auf der CMD-Konsole kommt nichts an, ist aber unter Windows typisch. Die
Ausgabe von GUI-Programmen landet irgendwo im Nirvana und ist nur per
Debugger sichtbar.
Max G. schrieb:> Gerne. Sieht originell aus, die Kontextmenüs gehen auch. Man sieht nur> nichts.
Seltsam ist ebenfalls, dass an der Stelle, an der normalerweise der
Grid-Multiplikator steht, nichts steht. Um Ausagabe auf der Konsole zu
bekommen, musst du den horizon-prj-mgr.exe aus einer mingw-Konsole
starten.
Wenn du dir eh msys2 installierst, installier' dort drin mal gtk:
pacman -S mingw-w64-x86_64-gtk3
und starte die gtk3-demo und öffne die OpenGL-Demo. Was passiert da?
Jörg W. schrieb:> Meinst du wirklich, dass du dir mit deinem Geblubber „Freunde“ machst?>> Wenn du dir den Thread mal ansiehst, dann wirst du feststellen, dass> es hinreichend viele Leute gibt, die selbst in dieser Phase durchaus> in der Lage sind, das Dingens zum Laufen zu bekommen.
Ach Jörg, ich hab mich an dein unsachliches Geblubber und deine
persönlichen Anfeindungen mittlerweile gewöhnt, so daß ich diese zumeist
einfach überlese. Wenn was nicht funktioniert, dann sag ich das auch -
ob dir das schmeckt oder nicht, ist deine Sache.
Ich erwarte ganz schlicht und einfach, daß sowas benutzbar ist, ohne daß
man erst Sherlock Holmes spielen muß. Ich werde also eben NICHT nach
irgendwelchen fehlenden Teilen im Internet herumsuchen. Punkt.
Jörg W. schrieb:> Wie starte ich einen neuen Pool? Gibt's dafür ein Tool?
Ach?
Sieh mal einer an.
Ein paar Beiträge nach deinem obigen Einwurf kommst du auf das gleiche
Problem, ja?
Ich sag dir eins: Es kommt eben doch auf den vor jeglicher
Programmiererei gefaßten, formulierten und gründlich überprüften Entwurf
an.
W.S.
Jetzt laß die Karottenindustrie einfach mal machen. In einem Jahr ist
das bestimmt brauchbar. Ich habe jedenfalls vollsten Respekt!
Danach kann Lukas mit dem Transverter TINA nach LTspice Projektfile
weitermachen :-)
W.S. schrieb:> Ein paar Beiträge nach deinem obigen Einwurf kommst du auf das gleiche> Problem, ja?
Nein, ein völlig anderes. Wie du Lukas' Antwort entnehmen kannst,
gibt es das, wonach ich gefragt habe, derzeit schlicht noch nicht.
Das liegt aber daran, dass er den zentralen Pool im Moment als
Designentscheidung erst einmal so vorgesehen hat.
Damit kann ich leben, Würgaround hat er genannt, einen Script, um
einen neuen Pool zu erzeugen, könnte ich mir zur Not sicher auch
selbst zimmern.
> Wenn was nicht funktioniert, dann sag ich das auch
Du kommst aber mit der Anspruchshaltung eines „Endkunden“ an und
übersiehst geflissentlich, dass sich Horizon derzeit überhaupt nicht
an solche richtet. Das hat Lukas in diesem Thread von vornherein klar
gemacht, und das steht im Prinzip bereits in der Überschrift.
Die Schritte, wie man es zum Laufen bekommt, sind beschrieben. Wenn
dir das zu umständlich ist, dann ist das Programm im derzeitigen
Zustand einfach mal nichts für dich, aber dann musst du doch auch nicht
ständig wieder hier aufschlagen und allen, die es gar nicht hören
wollen verkünden, wie schlecht es doch sei.
@Lukas, mal was ganz Nichttechnisches: du solltest deinen Dateien
irgendeine Art von Copyright-Header voranstellen. Ohne einen solchen
darf man sie ganz formal eigentlich nicht weiterverbreiten.
Lukas K. schrieb:> Jörg W. schrieb:>> Da fällt mir gerade auf: Alle Objekte im Pool Manager haben auch einen>> "Create"-Button – nur Symbole nicht.>> Der ist bei den Units, da zu jedem Symbol eine Unit gehört. Symbole sind> nicht die Primärquelle für Pins, dazu hat's die Units.
Hmm, das hatte ich so noch nicht verstanden.
Ich hatte gedacht, dass die Units nur das Bindeglied sind, man aber
ein und dasselbe Symbol in verschiedenen Units benutzen könnte.
> Für bessere> discoverability hab ich jetzt auch noch einen Knopf bei den Symbols> eingebaut.
OK, danke. Ich würde die Buttons allerdings tauschen (siehe Patch),
denn in allen anderen Tabs ist auch erst "Create", danach "Edit".
Jörg W. schrieb:> Max G. schrieb:>> Fehlermeldungen [...]>> Die werden auf der Console rausgeworfen, also std::cerr << "irgendwas".
Wären da nicht std::clog oder std::wclog sinnvoller?
W.S. schrieb:> Ich erwarte ganz schlicht und einfach, daß sowas benutzbar ist, ohne daß> man erst Sherlock Holmes spielen muß. Ich werde also eben NICHT nach> irgendwelchen fehlenden Teilen im Internet herumsuchen. Punkt.
Auf der Git-Seite war eine Anleitug, wo man das pool.json herbekommt ...
rtfm
Außerdem ist die Software noch nicht mal Beta ...
Seufz
Hallo Lukas,
./horizon-pool-mgr.exe
Ab dem zweiten Doppelklick auf eine "Bauteilezeile" kommen permanent
diese Debug-Meldungen.
Sind diese Debug-Meldungen im mysys2-Terminal OK oder ist das ein
Problem?
Helmut S. schrieb:> Sind diese Debug-Meldungen im mysys2-Terminal OK oder ist das ein> Problem?
Nichts tragisches, Gtk ist wohl über irgendwas mit der Pad-Box rechts
nicht ganz glücklich. Was genau, mag sich mir auch nicht so recht
erschließen.
Lukas K. schrieb:> Okay, kommt bald, wenn auch wohl als "Duplicate"-Knopf im Pool-Manager.
Sind drin: Für Entities und Parts fallen die Dialoge ein wenig komplexer
als vielleicht erwartet aus, da ausgewählt werden kann, ob referenzierte
Objekte auch kopiert werden, oder die bereits vorhandenen referenziert
werden sollen.
Lukas K. schrieb:> Wie oben geschrieben, soll> was einmal im Pool ist eigentlich drin bleiben, daher kann der Pool> Manager nichts löschen.
Hat sich herausgestellt, dass es zum experimentieren doch recht
praktisch ist, Dinge einfach löschen zu können: Gibt's nun im
Kontextmenü.
Hallo Lukas,
ich hätte gerne die Möglichkeit im Parts-Editor das "Package" zu ändern,
z. B. c0603 zu c0603a, weil die Anfoderungen an die Pads(pad stack)
nicht bei allen die gleichen sind.
Mal möchte der PCB-Hersteller die "solder mask" etwas anders (größer)
oder der Platinenbestücker(oder auch ich) möchte etwas besonderes an der
"paste-Mask" oder kleinere oder größere Pads.
Kannst du das eiunbauen?
Gruß Helmut
Helmut S. schrieb:> Kannst du das eiunbauen?
Das gibt es schon in anderer Form: Im Board gibt es diese Einstellungen
bei der Regel "Parameters". Mit Klick auf "Apply All" werden die
Einstellungen dann auf alle Bauteile auf dem Board angewandt.
Helmut S. schrieb:> ich hätte gerne die Möglichkeit im Parts-Editor das "Package" zu ändern,> z. B. c0603 zu c0603a, weil die Anfoderungen an die Pads(pad stack)> nicht bei allen die gleichen sind.
Das Package ist nur bei Parts änderbar, die nicht von anderen Parts
erben, da Package und Pin-Pad Zuordnung geerbt werden.
Jörg W. schrieb:> Du kommst aber mit der Anspruchshaltung eines „Endkunden“ an und> übersiehst geflissentlich, dass sich Horizon derzeit überhaupt nicht> an solche richtet. Das hat Lukas in diesem Thread von vornherein klar> gemacht, und das steht im Prinzip bereits in der Überschrift.
Das ist mir alles von Anfang an klar gewesen - und es geht auch
überhaupt nicht um mich selber.
Aber sag mal selbst, was aus einem Projekt werden soll, wenn (wie du
schreibst) Lukas sich mit seinem Projekt DERZEIT garnicht an Endkunden
richtet.
Da passiert nämlich ganz leicht genau dasselbe, was ich schon bei Kicad
erleben mußte. Nämlich, daß auf weite Strecke das ganze Projekt nur aus
Sicht seiner Programmierer vorangetrieben wurde und daß eben dabei an
den Endkunden vorbei programmiert worden ist.
Je früher man so einen Projektentwurf einem echten Endkunden vorsetzt
(oder einem, der zumindest sich bemüht, das Ding aus Anwendersicht mal
anzuschauen), desto eher kann man den Gang der Entwicklung noch in die
richtige Richtung hinbiegen.
Wenn hingegen erstmal viele Pflöcke eingeschlagen und eine Menge
Codezeilen geschrieben sind, dann sind Änderungen an der Grundstruktur
schmerzhaft, aufwendig oder sogar unmöglich, ohne große Teile des Ganzen
wieder einzureißen.
Genau deshalb sind solche frühen Tests dringendst notwendig. Verstehst
du das jetzt besser? Ich habe aus gutem Grunde immer wieder das Bauen
eines Hauses als Gleichnis herangezogen. Eben zuerst die richtigen
Fundamente legen, sonst braucht man später die Abrißbirne und den
Bagger.
W.S.
Hallo Lukas und Joerg.
Jörg W. schrieb:> Mit dem Pool Manager.>> Wundert mich nur, dass er ohne irgendeinen registrierten Pool überhaupt> startet. Das hat er bei mir abgelehnt.
Hat ja auch nicht gestartet....darum die Fehlermeldungen. ;O)
Lukas K. schrieb:> Ist repariert, das Problem war folgendes: Zum Speichern der> Fenstergrößen benutze ich auch SQLite und das erwartet logischerweise,> dass es das Verzeichnis, in dem die Datenbank liegt schon existiert. Bis> jetzt ist das nur keinem aufgefallen, da alle das Verzeichnis schon> hatten.
Der Build von gestern hat gestartet, und ich war in der Lage, den Pool
einzubinden.
Soweit also ok.
Leider komme ich erst irgendwann die Woche dazu, mir das näher
anzusehen.....und dann natürlich mit einem aktuellen Build
Bis jetzt macht es einen guten aufgeräumten Eindruck.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Hallo Helmut.
Helmut S. schrieb:> 3. Pool laden.> 4. Example Project laden> 5. Programm starten
Danke für Deine Quasi Anleitung.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Hallo Lukas,
ich versuche gerade mal einen Pool aufzubauen und dabei eine sinnvolle
Vorgehensweise zu finden. Im ersten Schritt habe ich erstmal Units und
dazu die passenden Symbole angelegt. Aus denen kann man dann später
Entities machen. Die Funktion "Duplicate Unit" ist dabei recht
hilfreich. Dupliziert man aber erst das Symbol, steckt man in einer
Sackgasse, weil man dem Symbol keine Unit zuordnen kann. Übersehe ich da
was?
Damit verwand dürfte eine andere Frage sein. Es gibt eine Unit "Generic
2 pin connector", die ist sowohl dem Symbol "Generic 2 pin connector
(1x2)" als auch dem Symbol "Generic 2 pin connector (2x1)" zugeordnet.
Ich vermute, da wurde ein Symbol dupliziert und dann der Name und das
Symbol geändert. Die Unit blieb gleich, denn die ist ja ohnehin nicht
änderbar. Was ist die Idee hinter dieser Vorgehensweise? Soll man damit
solche Fälle wie das amerikanische und europäische Widerstandssymbol nur
einer Unit zuordnen können? Beim Platzieren eines Parts im Schaltplan
bekommt man zumindest die Auswahl zwischen diesen beiden, der einen Unit
zugeordneten, Symbolen.
In diesem Fall tritt übrigens ein Fehler auf. Wenn man die Box zur
Auswahl des Symbols mit "Cancel" schließt, dann stürzt der
Schaltplan-Editor ab.
Nochmal eine positive Rückmeldung: ich baue jetzt seit ca. 2 Wochen fast
täglich ein neues Debian-Paket und das klappt zu > 95% immer
reibungslos. Manchmal muss ich meinen Patch für das Makefile anpassen,
mehr aber nicht.
Klasse Leistung.
Uwe
Hallo W.S.
W.S. schrieb:> Aber sag mal selbst, was aus einem Projekt werden soll, wenn (wie du> schreibst) Lukas sich mit seinem Projekt DERZEIT garnicht an Endkunden> richtet.>> Da passiert nämlich ganz leicht genau dasselbe, was ich schon bei Kicad> erleben mußte. Nämlich, daß auf weite Strecke das ganze Projekt nur aus> Sicht seiner Programmierer vorangetrieben wurde und daß eben dabei an> den Endkunden vorbei programmiert worden ist.
Sagmal, Rauchst Du irgendwas? Das soll ein OpenSource Projekt werden!
Als solches hat es KEINE KUNDEN. ;O)
Das hat für den Anwenden den riesen Vorteil, dass es nicht darauf
getrimmt sein muss, die Entscheider zu beeindrucken, die selten auch
Anwender sind, sondern es wird von Leuten geschrieben, die selber
Elektronikentwicklung machen.
Als OS Programm kann es im allgemeinen deutlich praxisorientierter
(insbesondere für Kleinanwender) sein, als proprietäre Software, die aus
Verkaufsgründen immer auf Eindruck machen schielen muss. ;O)
> Genau deshalb sind solche frühen Tests dringendst notwendig.
??? So wie ich das hier verstehe, sind zig Leute gerade mit Testen
beschäftigt. WAS ist dein Problem?
> Verstehst du das jetzt besser? Ich habe aus gutem Grunde immer wieder das >
Bauen eines Hauses als Gleichnis herangezogen. Eben zuerst die richtigen
> Fundamente legen, sonst braucht man später die Abrißbirne und den> Bagger.
Die Menschheit baut wesentlich länger Häuser als sie CAD Programme
schreibt. Insofern besteht bei Häusern sehr viel tradiertes Wissen,
wärend bei CAD Programmen eigentlich alle Programme noch irgendwie in
einem Experimentierstadium sind.
So auch hier, wo ein paar Sachen ausprobiert werden sollen.
Wenn Du konkrete Vorschläge hast, dann kannst Du sie bestimmt
anbringen, aber was Du machst, ist eine Besinnung auf Grundlagen
einfordern, die so überhaupt noch nicht existieren.
Mal ganz abgesehen von Deinem etwas aggressiven Tonfall.
Niemand startet ein solches Projekt ohne Vorüberlegungen. Selbst
wesentlich kleinere Sachen habe ich selber Monate- bis Jahre im Kopf
herumgewälzt, bevor ich ein kleines Konzept gemacht habe. So ist Lukas
mit Sicherheit nicht dabei, ohne Konzept zu arbeiten. Aber an
irgendeinem Punkte muss Schluss sein mit Konzept, und es muss angefangen
werden, das ganze Umzusetzten. Weil jedes Konzept kann fatale Fehler
enthalten, die erst auffallen, wenn man es anfängt Umzusetzten. Mann
könnte also eine Ewigkeit damit verbringen, ein extrem detailiertes und
perfektes Konzept aufzustellen, was überhaupt nicht funktioniert.
Deine "geforderte" Vorgehensweise ist eher eine
Projektverhinderungsstrategie, wenn man es genau sieht. Was ist
eigentlich Deine Agenda? Konkrete Vorschläge kommen ja nicht......
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Uwe S. schrieb:> Klasse Leistung.
Auf FreeBSD 11.x (da kann der Clang native C++14) würde es praktisch
aus der Dose heraus bauen.
Ich finde das auch eine gute Leistung!
Bernd W. schrieb:>> Genau deshalb sind solche frühen Tests dringendst>> notwendig.>> ??? So wie ich das hier verstehe, sind zig Leute> gerade mit Testen beschäftigt. WAS ist dein Problem?
Zu viele Fragen auf einmal :)
1.
Das Problem von W.S. ist, dass er eine richtige Frage im
falschen (sozialen) Kontext diskutieren will. Er ist
ungefähr genauso nervig wie ein überzeugter Veganer auf
dem Jahresball der Metzger-Innung: Sachlich vielleicht gar
nicht falsch, aber nutzlos, nervtötend, unangemessen.
2.
Deine Feststellung, FOS-Software habe keine Kunden (sondern
nur Anwender) ist sachlich richtig, geht aber nicht weit
genug: Manchmal hat sie nicht einmal "echte" Anwender. Der
Spruch "Wenn Du hier nichts beitragen kannst, dann hast Du
auch kein Recht, Forderungen zu stellen" schreibt die Inzucht
auf Dauer fest.
Das "Problem" (wenn es denn eins ist) bei Lukas' Vorgehen
liegt in der ZIELSTELLUNG, nicht in der Durchführung.
3.
Software-Tests werden aus unterschiedlichen Gründen gemacht.
Die Fragen "Haben wir das Richtige implementiert?" und "Haben
wir es richtig implementiert?" zielen in unterschiedliche
Richtungen.
Hier im Thread liegt der Fokus eindeutig auf der zweiten Frage.
Das ist für sich genommen nicht falsch, aber W.S. bemängelt
(nach meinem Verständnis) nur, dass die erste Frage deutlich
zu wenig diskutiert wird.
Letztlich liegen bei FOS-Software Licht und Schatten noch
näher beieinander als bei kommerzieller: Gute FOSS-Software
ist unter Umständen SEHR gut, eben weil der Programmierer
auch der Anwender ist.
Bei FOSS-Software, die aber an den Bedürfnissen (einiger)
Anwender vorbeigeht, haben diese Anwender NOCH weniger
Einfluss als bei kommerzieller Software: Gegen die Replik
"Du hast mir gar nix vorzuschreiben -- ich bin nicht Dein
Codiersklave!" hat man keine Handhabe. Bei kommerzieller
Auftragsentwicklung sieht das deutlich anders aus.
Ich bin ein ausgesprochener Freund von FOSS, aber man darf
die Nachteile des Modells auch nicht übersehen.
Bernd W. schrieb:> Weil jedes Konzept kann fatale Fehler enthalten, die erst> auffallen, wenn man es anfängt Umzusetzten.
Ja -- aber dann taugt das Konzept nichts :)
> Mann könnte also eine Ewigkeit damit verbringen, ein> extrem detailiertes und perfektes Konzept aufzustellen,> was überhaupt nicht funktioniert.
Es gibt immer viele Wege, etwas falsch zu machen; das
Aufstellen von Konzepten bildet da keine Ausnahme :)
Projektplanung ist viel schlechter lehrbar als Bohren,
Feilen oder Steaks braten, aber dennoch ist es ein
Handwerk wie viele andere auch.
Der sehr verbreitete Spruch "Wer glaubt, dass Projektleiter
Projekte leiten, der glaubt auch, dass Zitronenfalter
Zitronen falten" ist im Wesentlichen nur eins: Sehr dumm.
Possetitjel schrieb:> Es gibt immer viele Wege, etwas falsch zu machen; das> Aufstellen von Konzepten bildet da keine Ausnahme :)
Mmhmm, oft hat man ja ein Bild vor Augen, wie das fertige Projekt
aussehen soll ... Solange man quasi nur einer ist, der an einem Projekt
arbeitet, ist es auch kein Problem, das genau so umzusetzen, wie man
sich das vorstellt.
Da braucht man dann keine Projektplanung oder Konzepte ;-)
Possetitjel schrieb:> Die Fragen "Haben wir das Richtige implementiert?" und "Haben wir es> richtig implementiert?" zielen in unterschiedliche Richtungen. Hier im> Thread liegt der Fokus eindeutig auf der zweiten Frage.
Das sehe ich keineswegs so. Lukas hat weiter oben selbst postuliert,
dass er für alle Anregungen dankbar ist, auch die, die in Richtung
der ersten Frage gehen.
Was er dabei sicher nicht in Frage stellen wird, ist den grundlegenden
Workflow des Gesamtsystems. Der ist ja bei ihm insbesondere daraus
entstanden, dass er mit dem, was es schon gab, aus Anwendersicht
völlig unzufrieden war und es daher anders angehen wollte.
Hallo Possetitjel.
Possetitjel schrieb:> 2.> Deine Feststellung, FOS-Software habe keine Kunden (sondern> nur Anwender) ist sachlich richtig, geht aber nicht weit> genug: Manchmal hat sie nicht einmal "echte" Anwender. Der> Spruch "Wenn Du hier nichts beitragen kannst, dann hast Du> auch kein Recht, Forderungen zu stellen" schreibt die Inzucht> auf Dauer fest.
Vernünftigen Argumenten gegenüber ist ja auch niemand abgeneigt, sie
zumindest in Erwägung zu ziehen.
Allerdings, wenn Nischen Anwender sich ihre eigene Software als ihr
eigenes Handwerkszeug selber in die Hand schreiben, sind sie wohl auch
die einzigen wirklichen Experten dafür.
> Das "Problem" (wenn es denn eins ist) bei Lukas' Vorgehen> liegt in der ZIELSTELLUNG, nicht in der Durchführung.
Es geht um beides, Zielstellung und Durchführung.
> Software-Tests werden aus unterschiedlichen Gründen gemacht.> Die Fragen "Haben wir das Richtige implementiert?" und "Haben> wir es richtig implementiert?" zielen in unterschiedliche> Richtungen.> Hier im Thread liegt der Fokus eindeutig auf der zweiten Frage.> Das ist für sich genommen nicht falsch, aber W.S. bemängelt> (nach meinem Verständnis) nur, dass die erste Frage deutlich> zu wenig diskutiert wird.
So verstehe ich das auch.....aber W.S. bringt auch keine konkreten
Vorschläge für ein Ziel. Er bemängelt nur, dass es nicht gemacht wurde.
Ich gehe aber davon aus, dass das jeder macht, auch wenn es nicht
unbedingt nach aussen sichtbar ist. Und das Ergebnis einer solchen
Überlegung muss nicht mit dem Übereinstimmen, was bei W.S. herauskommen
würde. ;O)
> Bei FOSS-Software, die aber an den Bedürfnissen (einiger)> Anwender vorbeigeht, haben diese Anwender NOCH weniger> Einfluss als bei kommerzieller Software: Gegen die Replik> "Du hast mir gar nix vorzuschreiben -- ich bin nicht Dein> Codiersklave!" hat man keine Handhabe. Bei kommerzieller> Auftragsentwicklung sieht das deutlich anders aus.
Richtig. Aber das sehe ich nicht als Problem. Weil eigentlich schreiben
FOSS Entwickler immer extreme Nischensoftware für sich selber. Der
Erfolg einiger dieser Produkte ist dann auf das Versagen kommerzieller
Konzepte zurückzuführen. Also eher Zufall. Merkwürdigerweise treten
diese Zufälle aber sehr häufig auf...
> Bernd W. schrieb:>> Weil jedes Konzept kann fatale Fehler enthalten, die erst>> auffallen, wenn man es anfängt Umzusetzten.>> Ja -- aber dann taugt das Konzept nichts :)
Richtig....aber wann will man das sonst feststellen, wenn nicht durch
einen Umsetzungsversuch?
>>> Mann könnte also eine Ewigkeit damit verbringen, ein>> extrem detailiertes und perfektes Konzept aufzustellen,>> was überhaupt nicht funktioniert.>> Es gibt immer viele Wege, etwas falsch zu machen; das> Aufstellen von Konzepten bildet da keine Ausnahme :)
Ohja.
>> Projektplanung ist viel schlechter lehrbar als Bohren,> Feilen oder Steaks braten, aber dennoch ist es ein> Handwerk wie viele andere auch.
Ich sehe es eher als Kunst, weil mir komplett die Begabung dazu fehlt.
Aber ich sehe dieses Fehlen einer Begabung dazu auch bei W.S., solange
er nicht konkreter wird. ;O)
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Jörg W. schrieb:> Possetitjel schrieb:>> Die Fragen "Haben wir das Richtige implementiert?" und>> "Haben wir es richtig implementiert?" zielen in>> unterschiedliche Richtungen. Hier im Thread liegt der Fokus>> eindeutig auf der zweiten Frage.>> Das sehe ich keineswegs so.
Ich weiss :)
> Lukas hat weiter oben selbst postuliert, dass er für alle> Anregungen dankbar ist, auch die, die in Richtung der> ersten Frage gehen.
Ja, aber...
> Was er dabei sicher nicht in Frage stellen wird, ist den> grundlegenden Workflow des Gesamtsystems.
Eben.
Das bedeutet faktisch: Es gibt eine gewisse Zahl fundamentaler
Design-Entscheidungen, die nicht verhandelbar sind. Punkt.
(Dazu gehört aus meiner Sicht z.B., dass es ein Komplett-
paket werden soll.)
> Der ist ja bei ihm insbesondere daraus entstanden, dass> er mit dem, was es schon gab, aus Anwendersicht völlig> unzufrieden war und es daher anders angehen wollte.
Richtig.
Wenn man die Äußerungen von W.S. mal mit gutem Willen liest
(und über seinen unangemessenen Ton großzügig hinwegsieht),
dann ist genau DAS ja auch sein Kritikpunkt: ER (L.) war
unzufrieden, ER wollte es anders angehen. Was andere Anwender
wollen, was andere Anwender stört, spielt keine wesentliche
Rolle. (Wäre es anders, hätte es eine Planungsphase gegeben,
in der die Wünsche der Anwender ermittelt worden wären. Gab
es aber meines Wissens nicht.)
Nur um nicht missverstanden zu werden: L. macht nix falsch.
Er programmiert sich einfach die Software, die er haben möchte.
Die Kritik zielt auf eine generelle Schwäche von FOSS.
Possetitjel schrieb:> Was andere Anwender wollen, was andere Anwender stört, spielt keine> wesentliche Rolle.
Bezüglich des grundlegenden Designs: richtig.
Ansonsten sehe ich schon, dass er auf geäußerte Wünsche eingeht.
> Die Kritik zielt auf eine generelle Schwäche von FOSS.
Die aber auch eine Stärke sein kann: es wird einfach mal gemacht, und
„der Markt“ kann dann zeigen, ob sich das durchsetzt. Dieser besteht
ja am Ende aus viel mehr Nutzern als nur W.S. :)
Hallo Jörg und Possetitjel-
Jörg W. schrieb:>> Was andere Anwender wollen, was andere Anwender stört, spielt keine>> wesentliche Rolle.>> Bezüglich des grundlegenden Designs: richtig.
Immerhin hat er das ganze ja gestartet, weil er mit den herkömmlichen
Designs unzufrieden war, und eigene Ideen hatte.
Da ist kaum zu erwarten, dass er ausgerechnet diese Grundlagen ändert.
>> Ansonsten sehe ich schon, dass er auf geäußerte Wünsche eingeht.
Das sehe ich auch.
>>> Die Kritik zielt auf eine generelle Schwäche von FOSS.>> Die aber auch eine Stärke sein kann: es wird einfach mal gemacht, und> „der Markt“ kann dann zeigen, ob sich das durchsetzt. Dieser besteht> ja am Ende aus viel mehr Nutzern als nur W.S. :)
Eben. Es scheint oft also eine ganze Menge von Leuten zu geben, die sich
gut mit den Konzepten dieser Software anfreunden können.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Uwe S. schrieb:> Dupliziert man aber erst das Symbol, steckt man in einer> Sackgasse, weil man dem Symbol keine Unit zuordnen kann. Übersehe ich da> was?
Nein, das ist by Design so: Symbole stellen nur die Pins einer Unit dar
und sind daher recht fest mit dieser verbunden. Ohne Unit wüsste ein
Symbol nicht, wie die Pins heißen. Ein Dialog zum Austauschen der Unit,
wobei die Pins dann über Namen zur neuen Unit zugeordnet werden, wäre
allerdings denkbar, wenn das unbedingt so gebraucht wird.
> Damit verwand dürfte eine andere Frage sein. Es gibt eine Unit "Generic> 2 pin connector", die ist sowohl dem Symbol "Generic 2 pin connector> (1x2)" als auch dem Symbol "Generic 2 pin connector (2x1)" zugeordnet.> Ich vermute, da wurde ein Symbol dupliziert und dann der Name und das> Symbol geändert. Die Unit blieb gleich, denn die ist ja ohnehin nicht> änderbar. Was ist die Idee hinter dieser Vorgehensweise? Soll man damit> solche Fälle wie das amerikanische und europäische Widerstandssymbol nur> einer Unit zuordnen können?
Das ist ein möglicher Anwendungsfall. Die Idee hier bei den Steckern war
diese: In der Netzliste (Unit/Entity) ist es ja egal, wie die Pins nun
räumlich im Stecker angeordnet sind, daher gibt es für jede Anzahl Pins
nur eine Unit. So kann man auch ohne Probleme später mit dem "Assign
Part"-Tool aus einem 1x10 einen 2x5-Stecker machen, da beide für die
Netzliste identisch sind (selbe Unit/Entity). Im Schaltplan will man
damit's optisch besser zum Board passt beide Optionen haben. Geplant
sind hier noch diese Dinge: Symbol im Schaltpan änderbar machen (für
Units mit mehreren Symbolen). Vielleicht: Parts können bevorzugte
Symbole angeben, damit z.B. der 2x5-Wannenstecker standardmäßig auch das
2x5-Symbol bekommt und nicht erst der Dialog zur Auswahl des Symbols
aufgeht.
> Beim Platzieren eines Parts im Schaltplan> bekommt man zumindest die Auswahl zwischen diesen beiden, der einen Unit> zugeordneten, Symbolen.> In diesem Fall tritt übrigens ein Fehler auf. Wenn man die Box zur> Auswahl des Symbols mit "Cancel" schließt, dann stürzt der> Schaltplan-Editor ab.
Ist repariert.
Jörg W. schrieb:> Possetitjel schrieb:>> Was andere Anwender wollen, was andere Anwender>> stört, spielt keine wesentliche Rolle.>> Bezüglich des grundlegenden Designs: richtig.
Gut. Dann haben wir ja bis dahin erstmal Konsens.
> Ansonsten sehe ich schon, dass er auf geäußerte> Wünsche eingeht.
Selbstverständlich; das habe ich auch schon mehrfach
zugestanden. Das ist ja gar nicht mein Zielpunkt.
>> Die Kritik zielt auf eine generelle Schwäche von FOSS.>> Die aber auch eine Stärke sein kann: es wird einfach mal> gemacht, und „der Markt“ kann dann zeigen, ob sich das> durchsetzt.
Naja. Das ist kein Alleinstellungsmerkmal von FOSS; das
machen die Kommerziellen genauso.
Der ärgerliche Unterschied ist nur, dass es bei FOSS
überhaupt nicht notwendig wäre. Da es keinen Zwang zur
Rentabilität gibt, muss sich niemand "durchsetzen".
Bernd W. schrieb:> Immerhin hat er das ganze ja gestartet, weil er mit den> herkömmlichen Designs unzufrieden war, und eigene Ideen> hatte.
Sicher; Unzufriedenheit als Motiv, etwas zu ändern, ist
ja ein durchaus häufiger Fall.
> Da ist kaum zu erwarten, dass er ausgerechnet diese> Grundlagen ändert.
Naja, fraglich ist, was GENAU ihn gestört hat und was also
diese Grundlagen sind.
Die Tatsache, dass es (meines Wissens) kein wirklich
universelles Austauschformat für Schaltpläne gibt, war
es schon mal nicht -- sonst hätte er sich das als Thema
vorgenommen.
Die Tatsache, dass jede Software die Bauteil-Stammdaten
(Symbole, Footprints, ggf. Datenblätter, Spice-Modelle...)
mehr schlecht als recht (und natürlich inkompatibel zu
allen anderen Systemen) verwaltet, war es offensichtlich
auch nicht.
Nur um mal zwei Punkte zu nennen, die MICH stören.
> Eben. Es scheint oft also eine ganze Menge von Leuten zu> geben, die sich gut mit den Konzepten dieser Software> anfreunden können.
Was bleibt einem denn übrig? Die Alternativen sind ja noch
schlimmer.
Außerdem sind Anwender manchmal (notgedrungen) unfassbar
leidensfähig -- sonst wären MS-DOS, Windows98 oder vi nie
zum Einsatz gelangt.
Possetitjel schrieb:> Die Tatsache, dass jede Software die Bauteil-Stammdaten (Symbole,> Footprints, ggf. Datenblätter, Spice-Modelle...) mehr schlecht als recht> (und natürlich inkompatibel zu allen anderen Systemen) verwaltet, war es> offensichtlich auch nicht.
Wieso? Gerade an dieser Stelle hat sich Lukas ja intensiv Gedanken
gemacht. Also nicht Austauschbarkeit, das bleibt sowieso immer
Wunschdenken, aufgrund nicht deckungsgleicher Konzepte – BAE bspw.
benutzt metrisches Raster für die Schaltplandarstellung, viele andere
(aus mir nicht nachvollziehbaren Gründen) zölliges. Da half es eben
bei BAE auch nicht besonders, dass man per Script Eagle-Daten
einlesen kann.
Aber bezüglich der Organisation der Daten sehe ich schon ein Konzept.
Das kann einem natürlich nun gefallen oder nicht, das ist wieder was
anderes. ;-)
Die Situation mit Formaten für Schaltplan/Board/etc. ist ähnlich wie die
mit Formaten für Textverarbeitung: Das Dateiformat muss jedes Feature,
jede noch so versteckte Einstellung der Applikation abbilden. Bei
Textverarbeitung hat man das gelöst, indem Formate von Applikationen zum
Standard erklärt wurden. Mittelbar wurde damit die Applikation selber
zum Standard, da man um das Format vollständig zu unterstützen die
Applikation praktisch nachbauen muss.
Wenn jetzt z.B. Autodesk es hinbekommen würde das XML-Format von Eagle
als Standard bei der ISO oder so durchzubekommen, wären alle
Applikationen, die das Format verwenden im Kern eben Eagle - mit allen
vor- und Nachteilen.
Ein Austauschformat zur Darstellung von Footprints und Symbolen ist in
der Tat wünschenswert und meines Erachtens auch deutlich einfacher
umsetzbar als ein Austauschformat für Schaltpläne, da alle Programme
halbwegs vergleichbare Vorstellungen von Symbol und Package haben.
Hallo Lukas,
ich habe mal angefangen einige der Units, Entities und Symbols aus
meinem lokalen Pool als Pull-Request bei github einzustellen. Wenn das
für dich so in Ordnung ist, dann hätte ich auch noch mehr und würde die
auch als Pull-Request zur Verfügung stellen. Konkrete Bauteile habe ich
auch noch ein paar, aber die können erstmal warten.
Uwe
Hallo Lukas,
jetzt habe zu viel gespielt und mein Pool lässt sich nicht mehr
aktualisieren. Gemäß Fehlermeldung fehlt eine Symbol-Datei, die ich
zuvor gelöscht hatte. Die Units und Entities aber auch. Mag sein, dass
mir da ein Fehler unterlaufen ist. Ich stelle mir aber die Frage, woher
der Pool-Manager überhaupt weiß, welche Datei fehlt. Läuft das nicht
alles über Ids? Ich finde in keiner der json-Dateien eine Referenz auf
die fehlende Datei.
Uwe
Uwe S. schrieb:> Ich stelle mir aber die Frage, woher> der Pool-Manager überhaupt weiß, welche Datei fehlt. Läuft das nicht> alles über Ids? Ich finde in keiner der json-Dateien eine Referenz auf> die fehlende Datei.
Den Dateinamen, die der Pool Manager anzeigt, ist die Datei bei der die
Exception aufgetreten ist. Irgendwas, das die Datei referenziert gibt's
nicht. Seit gerade sagt der einem auch welche UUID und welcher Typ
fehlt.
Uwe S. schrieb:> Wenn das> für dich so in Ordnung ist, dann hätte ich auch noch mehr und würde die> auch als Pull-Request zur Verfügung stellen.
Schaut gut aus und ist merged. Bei den Symbolen hab' ich noch die
Pin-Namen aus gemacht, da die sonst komisch ausschauen.
Jetzt wo es im Pool auch Bauteile mit invertierten Pins gibt, sollte das
horizon auch abbilden können: Wahrscheinlich wird es für die Pins in den
Units noch Flags geben, um Eingenschaften wie Invertiert, oder
Takteingang zu kennzeichnen, damit man nicht immer selber malen muss.
Possetitjel schrieb:> Bei FOSS-Software, die aber an den Bedürfnissen (einiger)> Anwender vorbeigeht, haben diese Anwender NOCH weniger> Einfluss als bei kommerzieller Software: Gegen die Replik> "Du hast mir gar nix vorzuschreiben -- ich bin nicht Dein> Codiersklave!" hat man keine Handhabe. Bei kommerzieller> Auftragsentwicklung sieht das deutlich anders aus.
OpenSource ist aber keine Auftragsentwicklung! Trotzdem kann man Einfluß
darauf nehmen, wenn man freundlich fragt oder gar einen funktionsfähigen
Patch einreicht. Oder wenn man das Projekt forkt und seine Vorstellungen
innerhalb dieses Forks realisiert. Oder indem man jemanden dafür
bezahlt, eine dieser drei Vorgehensweisen umzusetzen.
In der kommerziellen Auftragsentwicklung hast Du im Übrigen auch
keinerlei Einflußmöglichkeit. Dann wird umgesetzt, was in der
Spezifikation steht, auf deren Basis die Angebote, Preise und Zeitpläne
kalkuliert und der Auftrag erteilt worden ist. Wenn Du Änderungen
willst, mußt Du sie bezahlen.
> Ich bin ein ausgesprochener Freund von FOSS, aber man darf> die Nachteile des Modells auch nicht übersehen.
Das ist natürlich richtig, aber Du konstruierst welche, wo keine sind,
und noch dazu mit falschen Analogien.
Possetitjel schrieb:> Das bedeutet faktisch: Es gibt eine gewisse Zahl fundamentaler> Design-Entscheidungen, die nicht verhandelbar sind. Punkt.
Ohne solche Designentscheidungen kann man keine Software entwickeln.
Sonst diskutiert man das Projekt tot, bevor es angefangen hat.
Lukas K. schrieb:> Wahrscheinlich wird es für die Pins in den> Units noch Flags geben, um Eingenschaften wie Invertiert, oder> Takteingang zu kennzeichnen, damit man nicht immer selber malen muss.
Jetzt gibt es im Symbol-Editor für Pins dekorative Elemente wie
Invertiert, Takteingang, Schmitt-Trigger, oder Open-Collector/Emitter
mit/ohne Pullup/pulldown.
Hab's gerade mal die Pin-Dekorationen probiert. Funktioniert super. Ist
die Bezeichnung 'Dot' für invertierte Pins nicht etwas unglücklich?
Warum nicht 'Inverted'?
Bernd W. schrieb:> Hallo W.S.> ...> Sagmal, Rauchst Du irgendwas? Das soll ein OpenSource Projekt werden!> Als solches hat es KEINE KUNDEN. ;O)
Erstens: nein ich bin Nichtraucher
Zweitens: du bist unverschämt, sowas zu schreiben. Also bleib sachlich.
Drittens: wenn du dediziert was gegen das Wort "Kunde" hast, dann nenne
es doch einfach "finaler Anwender".
Kommt auf's Gleiche raus.
Es sind eben immer diejenigen, die ein Produkt benutzen wollen und
nicht darin herumkonstruieren/programmieren wollen - und die eben auch
nicht zuvor irgendwelche anderen Teile wie Pools und so von woanders
zusammensuchen wollen/können.
Aber "Kunde" ist griffiger und allgemeinverständlicher.
Negativbeispiel: Frag doch mal nen Verkäufer im Mediamarkt, wieviel
uint8_t's die Festplatte im Regal hat.
Bernd W. schrieb:> So verstehe ich das auch.....aber W.S. bringt auch keine konkreten> Vorschläge für ein Ziel. Er bemängelt nur, dass es nicht gemacht wurde.
Wiebitte???
Zur Sache:
Das vorbereitete Projekt herunterzuladen und zu installieren/auszupacken
reicht nicht. Es fehlt an dem Pool, was auch immer dessen Inhalt sein
mag. Offenbar muß ich mich selber zitieren:
W.S. schrieb:> Ich hätte erwartet, daß man als Benutzer zumindest die Chance hätte, das> System erstmal irgendwie aufzusetzen, so daß es auch läuft und einen> nicht vor ein zu nix brauchbares fast leeres Fenster setzt. Die> penetrante und durch nichts lösbare Nachfrage nach dem ominösen Pool> verhindert zuverlässig, daß man mit deinem Programm irgendwas beginnen> kann. Erwarte bitte nicht, daß irgend ein Interessent eine derartige> pool.json vorrätig hat.
Ist dir das nicht klar genug?
Nein?
Dann sag ich es mal anders:
In jede Distribution gehört wenigstens eine minimale "pool.json" hinein,
damit man zumindest etwas vom eigentlichen Programm überhaupt sieht.
Noch besser wäre es, wenn es einen Menüpunkt gäbe, mit dem man auf
Knopfdruck sowas generieren kann.
Bedarf dafür ist da, siehe Jörg:
"Wie starte ich einen neuen Pool? Gibt's dafür ein Tool?"
Eben. Meine Rede die ganze Zeit über.
W.S.
W.S. schrieb:> Wiebitte???>> Zur Sache:> Das vorbereitete Projekt herunterzuladen und zu installieren/auszupacken> reicht nicht. Es fehlt an dem Pool, was auch immer dessen Inhalt sein> mag.
Öhm, RTFM!
W.S. schrieb:> Bedarf dafür ist da, siehe Jörg:
Wenn du keine Ahnung hast, worüber ich schreibe, dann benutz' mich
bitte nicht als Referenz.
Den Standard-Pool runterzuladen und zu aktivieren, braucht's nur ein
RTFM.
Hallo Lukas,
in GitHub sehe ich Kommentare für eine neue Funktion um packages zu
wählen.
"board add alternate packages ...."
Ich habe heute Abend dein Programm kompiliert. Sollte man das Package in
dem PCB-Fenster auswählen können? Ich kann da aber in dem Feld "Package"
nichts ändern. Siehe Bild. Ist die Funktion noch nicht fertig oder muss
ich an anderer Stelle vorher etwas einstellen?
Gruß
Helmut
Diese Funktion ist so gemeint: Im Package kann man (im Popover, wo man
auch Name, etc. eintippt) ein Package als alternate Package für ein
anderes Package eintragen. Im Pool gibt es als Beispiel wie sowas
aussehen kann die Packages "R0603 (manual soldering)" und "C0603 (manual
soldering)". Diese haben als "alternate for" R0603 bzw. C0603
eingetragen. In der Combobox zum Package erscheinen dann alle Packages,
die als "alternate for" das Package des Parts eingetragen haben.
Diese Funktion ist ausdrücklich nicht dafür vorgesehen verschiedene
Packages (z.B. DIP und SMD) einem Part zuzuordnen.
Helmut S. schrieb:> Ist die Funktion noch nicht fertig oder muss> ich an anderer Stelle vorher etwas einstellen?
Du musst wohl noch deinen Pool aktualisieren, damit da auch die oben
genannten Packages drin sind.
Hallo Lukas,
> Du musst wohl noch deinen Pool aktualisieren,
Habe gerade mal den Pool ganz neu heruntergeladen und unzip gemacht.
Dann den Pool-manager gestartet. Es sind keine packages und parts mehr
da. Die fehlen jetzt.
Teste das doch mal bei dir. Poolverzeichnis löschen, Pool herunterladen,
unzip vom Download des Pools machen, pool manager starten und schauen.
Mein Pool ist jetzt unbrauchbar.
Helmut S. schrieb:> Teste das doch mal bei dir. Poolverzeichnis löschen, Pool herunterladen,> unzip vom Download des Pools machen, pool manager starten und schauen.> Mein Pool ist jetzt unbrauchbar.
Tatsache, das ist hingefallen, weil jetzt auch Packages andere Packages
referenzieren und die Reihenfolge in der die Packages geladen werden
relevant ist. Ist nun repariert.
Lukas K. schrieb:> Helmut S. schrieb:>> Teste das doch mal bei dir. Poolverzeichnis löschen, Pool herunterladen,>> unzip vom Download des Pools machen, pool manager starten und schauen.>> Mein Pool ist jetzt unbrauchbar.>> Tatsache, das ist hingefallen, weil jetzt auch Packages andere Packages> referenzieren und die Reihenfolge in der die Packages geladen werden> relevant ist. Ist nun repariert.
Habe gerade noch mal kompiliert. Dann habe ich den Pool Manager
gestartet. Dort musste ich "Update Pool" wählen. Danach habe ich das
Layout geöffnet. Jetzt kann ich ein anderes Package wählen.
>Diese haben als "alternate for" R0603 bzw. C0603 eingetragen.
Jetzt stellt sich mir die Frage wo wird definiert welches alternative
Package möglich ist.
Helmut S. schrieb:> Lukas K. schrieb:>>Diese haben als "alternate for" R0603 bzw. C0603 eingetragen.> Jetzt stellt sich mir die Frage wo wird definiert welches alternative> Package möglich ist.
Im Pool-Manager. Einfach ein Package öffnen und dann mal das Menü in der
Kopfzeile ausklappen. Dort wo man den Namen, Manufacturer und Tags
eingeben kann, gibt es jetzt noch einen Button 'Alternate for'.
Uwe
Uwe S. schrieb:> Helmut S. schrieb:>> Lukas K. schrieb:>>>Diese haben als "alternate for" R0603 bzw. C0603 eingetragen.>> Jetzt stellt sich mir die Frage wo wird definiert welches alternative>> Package möglich ist.>> Im Pool-Manager. Einfach ein Package öffnen und dann mal das Menü in der> Kopfzeile ausklappen. Dort wo man den Namen, Manufacturer und Tags> eingeben kann, gibt es jetzt noch einen Button 'Alternate for'.>> Uwe
Danke Uwe,
jetzt finde ich es auch. Man kann/muss das alternative package für jedes
Bauteil auswählen, wenn man es ändern will. Das ist OK.
Im Anhang ein screenshot für alle die es interssiert.
Helmut
Helmut S. schrieb:> Neue Frage> Was macht dieses "Apply to all", das erscheint, wenn man auf das Häkchen> klickt? Scheinbar nichts oder macht es doch etwas?
Wenn du mehrere Objekte ausgewählt hast, dann wird die Eigenschaft auf
alle angewendet. In deinem Fall, mit nur einem Objekt, ist also in der
Tat nichts zu sehen. Besser wäre es wohl, den Button dann garnicht
anzuzeigen. Die gleiche Funktion gibt es auch bei mehreren ausgewählten
Pads, wenn man 'Edit pads' aufruft.
Uwe
Uwe S. schrieb:> Besser wäre es wohl, den Button dann garnicht> anzuzeigen.
Ist jetzt (fast) so drin und der Tooltip ist auch ein bisschen
erklärender. Ganz ausblenden wollte ich den Knopf nicht, weil das dann
komisch aussah.
Helmut S. schrieb:
> Neue Frage> Was macht dieses "Apply to all", das erscheint, wenn man auf das Häkchen> klickt? Scheinbar nichts oder macht es doch etwas?
Wenn du mehrere Objekte ausgewählt hast, dann wird die Eigenschaft auf
alle angewendet.
Danke Uwe, das passt.
Lukas K. schrieb:> Uwe S. schrieb:>> Besser wäre es wohl, den Button dann garnicht>> anzuzeigen.>> Ist jetzt (fast) so drin und der Tooltip ist auch ein bisschen> erklärender. Ganz ausblenden wollte ich den Knopf nicht, weil das dann> komisch aussah.
Hallo Lukas,
Die Erklärung gefällt mir. Siehe screenshot für alle anderen.
Flipped "on" bedeutet Bauteil ist auf der Unterseite. Flipped "off"
bedeuted das Bauteil ist auf der Oberseite. Man kann die Lage eines
Bauteils an dessen Farbe erkennen.
Lukas, könntest du mal wieder eine WIN-Version machen für die Leute die
nicht kompilieren wollen?
Helmut
Noch ein Tipp
Wenn man mehrere Bauteile selektiert hat, dann kann man mit den
Pfeiltasten links und rechts unter Packages ein Bauteil nach dem anderen
wählen. Klickt man auf 1/3 dann geht zusätzlich ein "Dialogfenst" mit
Radiobuttons auf. Da kann man mit einem Klick eines der selektierten
Bauteile auswählen.
Helmut S. schrieb:> Lukas, könntest du mal wieder eine WIN-Version machen für die Leute die> nicht kompilieren wollen?
Soeben geschehen. Wenn sich jemand mit Appveyor auskennt und Windows-CI
bauen mag, wäre ich demjenigen sehr verbunden :)
Ein paar Worte noch zu dem Property-Editor auf der rechten Seite im
allgemeinen: Tabellarische Propery-Editoren, wie man sie von vielen IDEs
und CAD-Programmen kennt, wie z.B.
http://doc.qt.io/qt-5/images/designer-property-editor.png waren mit
immer zu fummelig zu bedienen und zeigen u.U. komische Platzhalter an,
wenn mehrere Objekte ausgewählt sind.
Daher stehen die Namen über und nicht neben den Werten und alles ist ein
normales Widget und nicht die hakelig zu bedienenden Widgets aus
Listen/Tabellen. Das "1/3" zur Auswahl des aktuellen Objektes in
Kombination mit dem "Apply to all"-Knopf schien mir als gute Lösung um
sowohl eines als auch mehrere Objekte zu bearbeiten.
Wenn man eine Property anfasst, wird zunächst eine kurze Zeit gewartet,
ob noch was passiert, um mehrere schnell aufeinander folgenden
Änderungen zu einem Undo/Redo-Schritt zusammenzufassen. In dieser Zeit
wird das "Commit pending" eingeblendet.
Hallo Lukas,
war deine letzte Änderung jetzt so wichtig, dass man unbedingt wieder
neu kompilieren sollte?
Ich habe natürlich für mich neu kompiliert.
core fix tool includes 44 minutes ago
Helmut S. schrieb:> core fix tool includes 44 minutes ago
Nichts wichtiges, nur in paar includes angepasst, damit es nicht unnütz
Dateien neu bauen muss.
Max G. schrieb:> Anschließend sieht es dann etwas seltam aus -> ich sehe zwar alle Bedienelemente, aber weder Schaltplan noch Layout.
Auf einem anderen Rechner läuft es jetzt. Die UI sieht dank GTK ziemlich
ungewohnt aus, aber daran gewöhnt man sich schnell.
Gefühlt ist es wie ein Rewrite von KiCAD, der ein paar hakelige Punkte
(Library-Verwaltung, Sync Schaltplan/Board) neu konzipiert hat. In jedem
Fall sind einige Dinge besser als beim Adler gelöst. Bis jetzt finde
ich´s ziemlich gut (und ich bin Schwabe ;)
Ein paar Kleinigkeiten, die mir als unbedarftem Erstnutzer aufgefallen
sind:
* Der Unit Editor ist noch nicht ganz rund:
* Ich kann keine Einträge löschen ("-" bewirkt nichts)
* Ich würde mir wünschen, neue Einträge einfach per Tab/Enter o.ä.
erzeugen zu können. Dann kann ich die Pinliste aus dem Datenblatt
einfach abtippen und muss nicht zwischen Tastatur und Maus wechseln
* Nach dem Hinzufügen eines Pins mit "+" hüpft der Cursor irgendwo
hin, und die blaue Markierung ebenfalls. Manchmal auf´s gleiche,
manchmal auch nicht.
* Die automatische alphabetische Sortierung nervt mich eher, ab einer
gewissen Anzahl muss ich scrollen, um zu finden, wo es denn jetzt
weitergeht. Ich würde sie eher weglassen.
Anregung: fertige Einträge mit Labels darstellen und erst nach
Anklicken, nur für den aktuellen Eintrag, Combobox/Entry verwenden. Ist
deutlich platzsparender.
* "Enter Datum" ist zwar vermutlich korrekt, aber recht ungebräuchlich.
"Enter Value" wäre gängiger.
* Beim Duplizieren eines Packages beschwert sich Horizon, dass das
Verzeichnis nicht existiert, anstatt es einfach anzulegen. Nach ANlegen
von Hand geht´s problemlos.
* Der Footprint Generator ist prima. Nur: wenn ich versuche, ein
Quad-Package zu erzeugen, malt er nur die rechte und linke Pinreihe.
Unten und oben fehlt.
* Muss ich für das Zeichnen einer Verbindung im Schaltplan tatsächlich
"dn n" tippen?
* Änderungen beim Zeichnen (sei es Mirror, sei es Undo, ...) werden erst
dann übernommen, wenn die Maus wieder bewegt wird. Bis dahin bleibt der
alte Zustand erhalten.
* Wie kriege ich es hin, dass eine abknickende Linie den Knickpunkt
wechselt (das, was bei Eagle Strg+rechte Maustaste macht)?
More to come...
Max G. schrieb:> Max G. schrieb:>> Anschließend sieht es dann etwas seltam aus ->> ich sehe zwar alle Bedienelemente, aber weder Schaltplan noch Layout.>> Auf einem anderen Rechner läuft es jetzt. Die UI sieht dank GTK ziemlich> ungewohnt aus, aber daran gewöhnt man sich schnell.> Gefühlt ist es wie ein Rewrite von KiCAD, der ein paar hakelige Punkte> (Library-Verwaltung, Sync Schaltplan/Board) neu konzipiert hat. In jedem> Fall sind einige Dinge besser als beim Adler gelöst. Bis jetzt finde> ich´s ziemlich gut (und ich bin Schwabe ;)
Sehr schön :)
> Ein paar Kleinigkeiten, die mir als unbedarftem Erstnutzer aufgefallen> sind:> * Der Unit Editor ist noch nicht ganz rund:> * Ich kann keine Einträge löschen ("-" bewirkt nichts)
Kann ich jetzt nicht so reproduzieren. Einen oder mehrere Pins auswählen
(sodass die blau werden), dann auf - klicken und die Pins verschweiden
> * Ich würde mir wünschen, neue Einträge einfach per Tab/Enter o.ä.> erzeugen zu können. Dann kann ich die Pinliste aus dem Datenblatt> einfach abtippen und muss nicht zwischen Tastatur und Maus wechseln
Hört sich sinnvoll an, kommt bald.
> * Nach dem Hinzufügen eines Pins mit "+" hüpft der Cursor irgendwo> hin, und die blaue Markierung ebenfalls. Manchmal auf´s gleiche,> manchmal auch nicht.> * Die automatische alphabetische Sortierung nervt mich eher, ab einer> gewissen Anzahl muss ich scrollen, um zu finden, wo es denn jetzt> weitergeht. Ich würde sie eher weglassen.
Ah, das hängt wohl zusammen, da neue Einträge automatisch einsortiert
werden. Wär' wohl besser, wenn die direkt nach dem Eintrag kommen, der
davor ausgewählt war.
Die Sortierung habe ich eingebaut, weil die Pins innerhalb einer Unit
sonst gar keine sinnvolle Reihenfolge hätten.
> Anregung: fertige Einträge mit Labels darstellen und erst nach> Anklicken, nur für den aktuellen Eintrag, Combobox/Entry verwenden. Ist> deutlich platzsparender.
Das schaut dann komisch aus, wenn sich die Höhe von den Zeilen
verändert, je nachdem wo der Cursor gerade steht.
> * Beim Duplizieren eines Packages beschwert sich Horizon, dass das> Verzeichnis nicht existiert, anstatt es einfach anzulegen. Nach ANlegen> von Hand geht´s problemlos.
Du benutzt horizon auf Windows, oder? Die Meldung da kommt vom
Windows-Dialog zum Speichern selber. Windows scheint keinen brauchbaren
Dialog zu haben, um einen neuen Ordner anzulegen, nur Dialoge um
vorhandene Ordner auszuwählen. Ich könnte an der Stelle auch den
Dateidialog von Gtk benutzen, aber dann beschweren sich Leute zurecht,
dass der komisch ausschaut...
> * Der Footprint Generator ist prima. Nur: wenn ich versuche, ein> Quad-Package zu erzeugen, malt er nur die rechte und linke Pinreihe.> Unten und oben fehlt.
Was für Einstellungen hast du da gemacht? Bei mir hat das immer
funktioniert.
> * Muss ich für das Zeichnen einer Verbindung im Schaltplan tatsächlich> "dn n" tippen?
Entweder "dn" oder "n".
> * Änderungen beim Zeichnen (sei es Mirror, sei es Undo, ...) werden erst> dann übernommen, wenn die Maus wieder bewegt wird. Bis dahin bleibt der> alte Zustand erhalten.
Höre ich jetzt s zum ersten mal, was sind da die genauen Umstände?
> * Wie kriege ich es hin, dass eine abknickende Linie den Knickpunkt> wechselt (das, was bei Eagle Strg+rechte Maustaste macht)?
Du meinst von horizontal-vertikal auf vertikal-horizontal umschalten?
Das geht mit "/".
Hallo Lukas,
alle Erfahrungen auf Windows 7 64 bit, integrierte Grafik (Intel 5500,
was auch immer das ist).
* Zum Einträge löschen im Unit Editor: ach so, ich muss auf den Rand
klicken, um den Frame(?) auszuwählen. Wäre gut, wenn Cursor im Feld auch
reichen würde.
* Zu der Darstellung mit Labels/Entry: ja, die Höhe verändert sich, die
Gesamthöhe aber nicht. Anbei mal eine kurze hässliche Fingerübung in
Python zur Demo, wie das aussähe.
[mg]
>> * Beim Duplizieren eines Packages beschwert sich Horizon, dass das>> Verzeichnis nicht existiert, anstatt es einfach anzulegen. Nach ANlegen>> von Hand geht´s problemlos.>> Du benutzt horizon auf Windows, oder? Die Meldung da kommt vom> Windows-Dialog zum Speichern selber. Windows scheint keinen brauchbaren> Dialog zu haben, um einen neuen Ordner anzulegen, nur Dialoge um> vorhandene Ordner auszuwählen. Ich könnte an der Stelle auch den> Dateidialog von Gtk benutzen, aber dann beschweren sich Leute zurecht,> dass der komisch ausschaut...
Ja, Windows, s.o.
Lasse doch einfach den darüberliegenden Ordner auswählen und generiere
den Namen aus dem schon bekannten Packagenamen.
[mg]
>> * Der Footprint Generator ist prima. Nur: wenn ich versuche, ein>> Quad-Package zu erzeugen, malt er nur die rechte und linke Pinreihe.>> Unten und oben fehlt.>> Was für Einstellungen hast du da gemacht? Bei mir hat das immer> funktioniert.
Screenshots anbei. Ist reproduzierbar.
>> * Änderungen beim Zeichnen (sei es Mirror, sei es Undo, ...) werden erst>> dann übernommen, wenn die Maus wieder bewegt wird. Bis dahin bleibt der>> alte Zustand erhalten.>> Höre ich jetzt s zum ersten mal, was sind da die genauen Umstände?
Ist durchgängig so, vermutlich irgendein Treiberthema Gtk/Windows. Ich
finde es aber nicht schlimm, höchstens ein bisschen gewöhnungbedürftig.
Danke noch mal für dein Engagement!
Max
Max G. schrieb:> * Zu der Darstellung mit Labels/Entry: ja, die Höhe verändert sich, die> Gesamthöhe aber nicht. Anbei mal eine kurze hässliche Fingerübung in> Python zur Demo, wie das aussähe.
Das Problem bei der Sache ist, dass wenn man auf einen Eintrag klickt,
dieser seine Position in der Liste leicht ändert. Das so hinzubekommen,
dass ich damit zufrieden wäre, ist mir gerade zu viel Aufwand.
Max G. schrieb:> Ja, Windows, s.o.> Lasse doch einfach den darüberliegenden Ordner auswählen und generiere> den Namen aus dem schon bekannten Packagenamen.
Das selbe Problem gibt's auch beim neu anlegen von Packages. Vielleicht
fällt mir da noch was ein...
Max G. schrieb:> Screenshots anbei. Ist reproduzierbar.
Hm, vielleicht sind die anderen Pads auch einfach nur an der falschen
Position? Drück mal auf "Pos1", damit alles dargestellt wird.
Hallo Lukas,
ich habe gerade die neueste Funktion im Schaltplan ausprobiert.
schematic editor: start net lines by dragging from pins/junctions
Dabei fielen mir mal wieder diese Überschneidungen an den Knicken der
Leitungen auf. Ehrlich gesagt habe ich das noch nie in irgend einem
anderen Schaltplan gesehen.
Ich hätte es gerne ohne diese Überschneidungen, weil das dem ansonsten
sehr guten Eindruck des Schaltplanes schadet.
Ist das nur zu Debug-Zwecken so?
Gruß
Helmut
Helmut S. schrieb:> Ist das nur zu Debug-Zwecken so?
Ist jetzt standardmäßig aus und kann ebenso wie das automatische starten
von Netzlinien in den Einstellungen angepasst werden.
Lukas K. schrieb:> Helmut S. schrieb:>> Ist das nur zu Debug-Zwecken so?>> Ist jetzt standardmäßig aus und kann ebenso wie das automatische starten> von Netzlinien in den Einstellungen angepasst werden.
Danke Lukas,
eine clevere Idee das konfigurierbar zu machen. Auf die Idee wäre ich
jetzt nicht gekommen. Da werde ich doch gleich mal den compiler starten
...
Hallo Lukas,
erst einmal danke für die Zeit, die du in dieses Projekt investierst.
Ist echt super!
Allerdings gibt es eine Kleinigkeit von mir anzumerken:
Ich finde, dass man von den Compiler-Meldungen regelrecht erschlagen
wird.
Ich mache das bei meinen Makefile-Projekten immer so: sobald ich weiß,
dass die Compiler-/Linker-Aufrufe stimmen, gebe ich nur noch eine
Status-Meldung pro Datei aus und nicht mehr die gesamte Command-line.
Dadurch sieht das das kompilieren so aus:
1
...
2
Compiling file canvas3d/canvas3d.cpp...
3
In file included from ./canvas/poly2tri/poly2tri.h:35:0,
4
from canvas3d/canvas3d.cpp:11:
5
./canvas/poly2tri/common/shapes.h: In Konstruktor »p2t::Point::Point(double, double)«:
6
./canvas/poly2tri/common/shapes.h:60:29: Warnung: Deklaration von »y« überdeckt ein Element von »p2t::Point« [-Wshadow]
7
Point(double x, double y) : x(x), y(y) {}
8
^
9
./canvas/poly2tri/common/shapes.h:47:13: Anmerkung: verdeckte Deklaration ist hier
Linking final file horizon-pool-update-parametric...
20
Linking final file horizon-prj-mgr...
21
Linking final file horizon-pool-mgr...
Ich habe das diff-file vom Makefile einfach mal angehängt. Du musst das
selbstverständlich nicht übernehmen, ist ja auch nur eine kosmetische
Angelegenheit, die man nur beim kompilieren sieht :-)
Das hat allerdings auch den Vorteil, dass man die Warnings besser sehen
kann.
Ein weiterer Punkt sind allerdings die ganzen Warnings bezüglich
gleichnamigen Variablen (-Wshadow). Diese Variablen würde ich
umbenennen, sonst kommt man teilweise echt durcheinander... :-)
Mit freundlichen Grüßen,
N.G.
Hallo Lukas,
ich habe gerade einen reproduzierbaren "crash case" im PCB Layout
gefunden.
Version: WIN
horizon-2017-12-10-0139.zip
Zeichne mit dl ein Dreieck
Selektiere das ganze Dreieck
Dann Rechtsklick in dem Bereich des selektierten Dreiecks -> Select more
Dann stürzt das Pogramm ab.
Ich hatte übrigens gehofft einen log-file von dem crash zu bekommen. Da
ist aber keiner. Bekomme ich den log-file nur in der mysys2 Umgebung?
N. G. schrieb:> Ein weiterer Punkt sind allerdings die ganzen Warnings bezüglich> gleichnamigen Variablen (-Wshadow). Diese Variablen würde ich> umbenennen, sonst kommt man teilweise echt durcheinander... :-)
Das ist in Code, der nicht von mir ist. Sofern's da keinen dringenden
Grund zu gibt, fass' ich den nicht an.
N. G. schrieb:> [...]> Das hat allerdings auch den Vorteil, dass man die Warnings besser sehen> kann.
Schaut sinnvoll aus, vielleicht bau' ich das in ner ruhigen Minute noch
mit der Option die Compiler-Aufrufe anzuzeigen ein.
Helmut S. schrieb:> ich habe gerade einen reproduzierbaren "crash case" im PCB Layout> gefunden.
Ist repariert.
Zusätzlich werden jetzt Exceptions aus den Tools abgefangen und
erscheinen im Log-Fenster.
Unter Ubuntu scheint es ein paar mal ein paar Funktionen nicht zu
kennen. Hab mal Issue #25 erstellt. Höre jetzt auf mit dem Versuch es zu
compilieren.
Michael H. schrieb:> Unter Ubuntu scheint es ein paar mal ein paar Funktionen nicht zu> kennen. Hab mal Issue #25 erstellt. Höre jetzt auf mit dem Versuch es zu> compilieren.
Wie schon auf github geschrieben: Da ist dein ubuntu wohl zu alt. Warte
entweder auf das neue LTS oder upgrade auf 17.04.
Ich habe das Programm am Laufen. Danke an Lukas für den Support.
Ich freue mich, zu sehen, wie dieses Projekt weiterentwickelt wird...
Vielen Dank an Lukas für die Arbeit schomal. Mach weiter so!
Gute Neuigkeiten für alle, die den Pool als zip runtergeladen haben und
keine sinnvolle Möglichkeit hatten, den Pool aktuell zu halten: Seit
soeben kann der Pool-Manager das: Auf der Startseite mit "Download..."
den Pool herunterladen, dann gibt's den neuen Tab "Remote" mit dem Knopf
"Upgrade Pool", mit dem seinen lokalen Pool unter Beibehaltung eigener
neuer Parts und Änderungen auf den aktuellen Stand bringen kann.
Bald kann der Pool Manager dann auch mithilfe der Github-API für einen
Pull Requests aufmachen, damit man auch ohne weitere Git-Kenntnisse neue
Bauteile in den Pool einpflegen kann.
Hallo Lukas,
ich habe Probleme beim build für Windows.
$ ./make_bindist.sh
Obiges läuft normal durch.
Wenn ich dann in Windows auf horizon-pool-mgr.exe klicke erhalte ich
eine Fehlermeldung wegen fehlender libcurl-4.dll.
Gruß
Helmut
Helmut S. schrieb:> eine Fehlermeldung wegen fehlender libcurl-4.dll.
Ist repariert. Ein wenig unschön ist allerdings, dass ich auf Windows
für curl und libgit selber die root-Zertifikate für TLS ausliefern
muss...
chris schrieb:> Hier gibt es ein Tool zum exportieren von Eagle-Designs:
Das Tool müsste ja in den horizon pool einspeisen, ist das überhaupt
machbar? Nicht nur wegen der unterschiedlichen Datenstrukturen, sondern
auch, weil im horizon Wiki steht:
> Although you can create your own pool, you are strongly encouraged to> use the pool over at https://github.com/carrotIndustries/horizon-pool/.> To add new parts to it, simply submit a merge request.
Wie ist denn das zu verstehen? Ob man wirklich meine Spezialteile im
Pool haben will, sei mal dahin gestellt. Aber heißt das, wenn ich ein
neues Bauteile brauche, muss ich warten, bis das im Pool eingepflegt
ist? Wie ist das gedacht?
Und wo wir gerade dabei sind, das README schreibt:
> Features for developers> (...)> Everything is referenced by UUIDs
Die UUIDs müssten doch zentral erzeugt werden? Und trotzdem wären sie
u.U. nicht eindeutig; wie werden Kollisionen behandelt?
eagle user schrieb:> Die UUIDs müssten doch zentral erzeugt werden? Und trotzdem wären sie> u.U. nicht eindeutig; wie werden Kollisionen behandelt?
Der Sinn von UUIDs ist, dass man eben ohne zentrale Instanz eindeutige
IDs erzeugen kann. Da es ca. 3.4×10³⁸ verschiedene UUIDs gibt, klappt
das auch gut genug. Die Wahrscheinlichkeit, dass Dinge aufgrund eines
Bugs in meinem Code kaputt gehen, ist deutlich größer, als die, dass man
über eine doppelte UUID stolpert.
eagle user schrieb:> Aber heißt das, wenn ich ein> neues Bauteile brauche, muss ich warten, bis das im Pool eingepflegt> ist? Wie ist das gedacht?
Nein, selber einpflegen. Derzeit heißt das Forken, Branch machen,
Bauteil anlegen, Commiten, merge request aufmachen und hoffen dass der
akzeptiert wird. Dann haben alle was davon. Gerade bin ich dabei,
GitHub-Integration einzubauen, damit diese Schritte in vereinfachter
Form direkt im Pool Manager ohne weitere git-Kenntnisse erledigt werden
können.
eagle user schrieb:> Das Tool müsste ja in den horizon pool einspeisen, ist das überhaupt> machbar? Nicht nur wegen der unterschiedlichen Datenstrukturen,
Bei Packages sehe ich einen Importer noch am einfachsten umsetzbar. Bei
Symbolen muss sich der Importer eben Units und Entities dazu ausdenken.
Alles in allem kein Hexenwerk, Freiweillige vor :)
Uwe B. schrieb:> Lukas,>> wirst Du auf der FOSDEM im EDA Devroom vortragen?
Ja: https://fosdem.org/2018/schedule/event/cad_horizon/
Auf dem 34C3 bin ich auch anzutreffen, einfach PN schreiben.
Lukas K. schrieb:> Auf dem 34C3 bin ich auch anzutreffen
Hälst du einen Vortrag?
Das Programm ist so riesig, dass ich zumindest auf Anhieb nichts
sehen konnte. Wenn du einen Vortrag hälst und es zeitlich passt,
würde ich mir den Livestream reinziehen.
Meine perschönliche Sichtweise auf das CAD-Programm ist, dass es auf dem
richtigen Weg ist und das was werden könnte. Jedoch denke ich, dass noch
einiges an Usability-Improvements von Nöten ist - wie Du selbst sagst
ist das Programm in den Kinderschuhen. So hat KiCad auch mal angefangen.
Was mich an KiCAD stört, ist das die keine Clearance-Matrix haben und
das auch nicht implementieren wollen. Desshlab möchte ich mal dein
Program ausprobieren.
Ich habe heute ca. 2h gebraucht, um mir grob mal einen Überblick zu
verschaffen. Ich erstelle Dir für alles was mir auffällt ein Issue. Das
kann etwas bombadierend wirken - ist aber so nicht gemeint.
Mit dem Fosdem würde mich auch der Vortrag interessieren - den würde ich
mir auch gerne dann als Video reinziehen.
Mein Plan ist es eine Testplatine damit zu machen, und mal 5 Euro in
eine ChinaPCB zu investieren und den Prozess dann in einem separten
Threat zu dokumentieren. Mal sehen, ob ich das hinbekomme.
EDIT:
Eine Problematik, die ich bei den Pools sehe, was ich aber auch falsch
sehen könnte, ist falls jemand mist commited, andere darunter leiden.
Desshalb hatte ich separate Pools vorgeschlagen.
Jedoch sollte falls man nur einen Pool haben sollte, einen Button haben,
der den Pool automatisch updated. Also, dass man nicht erst
"umständlich" git clone, etc. machen muss. Praktiker würde das
abschrecken...
Michael H. schrieb:> Jedoch sollte falls man nur einen Pool haben sollte, einen Button haben,> der den Pool automatisch updated.
Genau das gibt es doch seit kurzem: Wenn du den Pool mit "Download..."
heruntergeladen hast, gibt es im Tab "Remote" den Knopf "Upgrade" um den
lokalen Pool auf den Stand von dem auf Github zu bringen.
Michael H. schrieb:> ist falls jemand mist commited, andere darunter leiden.
Darum schau ich's mir (und in Zukunft hoffentlich noch andere) an. Das
entbindet einen als Anwender dennoch nicht davon, das Part selber zu
verifizieren.
EDIT: Wenn du Bugfixes schnell haben willst, ist es empfehlenswert
selber zu bauen:
https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Windows
Lukas K. schrieb:> Darum schau ich's mir (und in Zukunft hoffentlich noch andere) an.
Wird aber irgendwann ein Fulltime-Job werden. Man sollte vorher eine
Strategie haben, wie jeder dann auf seinem privaten Fork des
„offiziellen“ Pools arbeiten kann, von diesem ggf. Updates importiert,
aber ansonsten seine eigenen Bauteile privat hält.
Ein EDA-Programm, welches alle Bauteile in der Bibliothek hat, wird
es ohnehin nicht geben können. Dazu sind erstens die Hersteller zu
einfallsreich :) und zweitens die Anforderungen der Anwender zu
verschieden.
ps: Viel Spaß auf dem 34C3!
Michael H. schrieb:> Eine Problematik, die ich bei den Pools sehe, was ich aber auch falsch> sehen könnte, ist falls jemand mist commited, andere darunter leiden.
Ich fürchte, das siehst du richtig. Deswegen sollte man das...
chris schrieb:> Hier gibt es ein Tool zum exportieren von Eagle-Designs:
...wahrscheinlich vermeiden. Die bei Eagle mitgelieferten Bauteile haben
mich schon nicht überzeugt, aber was ich bisher aus anderen Quellen
gefunden habe war den Download nicht wert. Cadsoft hatte ja ein paar
(wenige) Regeln festgelegt, aber nicht einmal die werden eingehalten.
Die Idee, im Pool nur die originale Herstellernummer zu verwenden, finde
ich ausgezeichnet (ich hoffe, ich hab' das richtig verstanden). Das ist
schon mal sehr viel besser als die Praxis bei Eagle.
Bauteile genau anzulegen, und zu pflegen ist ein heiden Aufwand.
Desshalb gibt es ja SnapEDA, Librarian und wie die alle heißen.
Eventuell könnte man sich mit denen zusammentun?
Für den Anfang kann ich gerne helfen, über die Bauteile drüber zu
schauen, die reinkommen. Falls Hilfe gewünscht ist.
Hallo Eagle user und Michael
.
eagle user schrieb:>> Hier gibt es ein Tool zum exportieren von Eagle-Designs:>> ...wahrscheinlich vermeiden. Die bei Eagle mitgelieferten Bauteile haben> mich schon nicht überzeugt, aber was ich bisher aus anderen Quellen> gefunden habe war den Download nicht wert.
Das wird wohl so für jede x-beliebige Quelle gelten, weil halt auch
jeder andere Vorstellungen von einer guten Bibliothek hat.
Darum wird niemand, der sich ernsthaft mit Schaltplänen und
Platinenlayout beschäftigt, darumherum kommen, sich seine eigene
Bibliothek zusammenzustellen, die er irgendwann halt auch gut kennt, und
von deren Bestandteilen er weiss, dass sie auch im Zusammenhang mit
seinen anderen "Systemen" gut funktioniert.
Offizielle Bibliotheken sind eigentlich nur ein erster Vorschlag, den
man oft so aktzeptieren kann, aber auch genauso oft anpassen muss, und
der auch immer auf Fehler überprüft werden muss.
Darum kann ein breiter Zugriff auch auf fremde Bibliotheken sehr
sinnvoll sein.
Snapeda bietet eine breite Palette von Programmen, in deren Format
exportiert werden kann, aber nur Eagle und KiCad haben davon offene bzw.
sogar freie Formate.
Snapeda: https://www.snapeda.com/
Viele Distributoren bieten den Download von Bibliotheken zu denen von
ihnen vertriebenen Bauteilen an wie zum Beispiel Farnell oder Digikey.
Das sind dann auch meistens Eagle oder KiCad Bibliotheken.
Digikey:
https://www.digikey.de/de/news/press-releases/2017/aug/digi-key-adds-kicad-pcb-model-download
Es ist also eher angeraten, eine Import und Exportfunktion für
gängige
Bibliotheksformate zu schreiben.
Gängig und offen oder sogar frei sind aber nur drei: Eagle, KiCad und
gEDA.
Michael H. schrieb:> Bauteile genau anzulegen, und zu pflegen ist ein heiden Aufwand.> Desshalb gibt es ja SnapEDA, Librarian und wie die alle heißen.
Das haut in die gleiche Kerbe.
> Eventuell könnte man sich mit denen zusammentun?
Warum soll man in den Format Zoo ein weiteres Format einbringen, solange
es offene und freie gibt?
Lieber auf ein freies vorhandenes gehen, was auch schon unterstützt
wird. Ein neues Format müsste schon eine erhebliche Verbreitung
bekommen, bevor es bei diesen Anbietern aufgenommen würde.
KiCad wäre ein guter Kandidat als Austauschformat , weil dort Symbol,
Footprint und 3D-Modell zusammengefasst werden können ,
aber nicht zusammengefasst werden müssen . Es ist also in dieser
Hinsicht sehr flexibel.
eagle user schrieb:> Cadsoft hatte ja ein paar> (wenige) Regeln festgelegt, aber nicht einmal die werden eingehalten.
Es ist erstens auch immer die Frage, was an Regel sinnvoll ist, und
zweitens selbst wenn irgendwann einmal alle Bibliotheken konform mit den
Regeln sind, und die Regeln werden überarbeitet, ist es ein großer
Arbeitsaufwand bzw. Zeitaufwand, die vorhandenen Bibliotheken
anzupassen.
Die Bibliotheken hinken den Regeln also immer hinterher.
Das habe ich bei Eagle so bemerkt, und bei KiCad eben auch. Bei KiCad
existiert für das Bibliotheksprojekt (was vom eigentlichen KiCad Projekt
sogar getrennt ist) ein Regelwerk:
https://github.com/KiCad/kicad-library/wiki/Kicad-Library-Convention
Wer zu der Bibliothek beitragen will, kann das nur, wenn irgend jemand
anderes die Bibliothek auf Konsens mit dem aktuellen Regelwerk überprüft
hat.
> Die Idee, im Pool nur die originale Herstellernummer zu verwenden, finde> ich ausgezeichnet (ich hoffe, ich hab' das richtig verstanden). Das ist> schon mal sehr viel besser als die Praxis bei Eagle.
Das ist ein guter Ansatz. Aber natürlich sind auch alternative Symbole
und Footprints für das gleiche Bauteil sinnvoll.
Im Schaltplan möchtest Du einmal z.B. eine monolitische Darstellung für
z.B. ein Relais, wo Spule und Kontaktsätze zusammengefasst sind, aber
auch eins in aufgelöster Darstellung wo Spule und Kontaktsätze getrennt
sind, um sie bei größeren Schaltplänen verteilen zu können.
Je nach den Umständen ist das eine oder andere Sinnvoll.
Bei Footprints gibt es bei THT Bauteilen oft die Möglichkeit, sie
liegend oder stehend zu montieren, oder allgemein kleine Pads wo Dichte
oder Isolationsabstand wichtig sind, oder aber große Pads, wo Platz ist,
aus Robustheitsgründen.
Viele Bauteile existieren mit einem mehr oder weniger Festgelegten
Gehäuse. Für diese sind generische Footprints gut, die man bei Bedarf
auch ändern kann.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Bernd W. schrieb:> KiCad wäre ein guter Kandidat als Austauschformat , weil dort Symbol,> Footprint und 3D-Modell zusammengefasst werden können ,> aber nicht zusammengefasst werden müssen . Es ist also in dieser> Hinsicht sehr flexibel.
FÜhrt aber nicht gerade zur Standardisierung eines Übergabeformats, weil
dann wieder jeder macht, was er möchte.
Andererseits: Wer baucht bei der Übergabe von Produktionsdaten Symbole?
Genau das möchte Ich z.B. nicht. Der Produzent soll die Platine machen
und mehr nicht, weil Prototyp.
Bei einer Serie ist es was anderes.
Helmut S. schrieb:> Hallo Lukas,> das kompilieren in mysys2 bringt eine "Fehler"-Meldung - scheint aber> trotzdem richtig kompiliert zu haben. Idee?> Helmut
Richtig gebaut haben kann es damit nicht, ist repariert.
Bernd Wiebus (berndwiebus) Benutzerseite
>Das wird wohl so für jede x-beliebige Quelle gelten, weil halt auch>jeder andere Vorstellungen von einer guten Bibliothek hat.>Darum wird niemand, der sich ernsthaft mit Schaltplänen und>Platinenlayout beschäftigt, darumherum kommen, sich seine eigene>Bibliothek zusammenzustellen, die er irgendwann halt auch gut kennt, und>von deren Bestandteilen er weiss, dass sie auch im Zusammenhang mit>seinen anderen "Systemen" gut funktioniert.
Das genau bringt mich jedes Mal auf die Palme, wenn ich darüber
nachdenke.
Ich habe schon in Firmen gearbeitet, bei denen ein Mann mit nichts
anderem beschäftigt ist, als Bauteile anzulegen. Wenn man dann ein Neues
braucht, muss man jedes Mal warten, bis der Zeit hat.
Jeder Hersteller eines Bauteils wird sein Bauteil wohl mit einem
CAD-System konstruiert haben. Gäbe es eine einheitliches Format wie z.B.
DIN, wäre die ganze Blindleistung dass jede Firma wieder ihr eigenes
Bauteil anlegen muss, unnötig.
chris schrieb:> Gäbe es eine einheitliches Format wie z.B. DIN, wäre die ganze> Blindleistung dass jede Firma wieder ihr eigenes Bauteil anlegen muss,> unnötig.
Du hast noch nicht verstanden, dass es absolut nicht am fehlenden
Format liegt, sondern dass einfach jede Firma ihre eigenen Ideen hat,
was beim Anlegen eines Bauteils wichtig ist, wie sich das Ding in
die firmeneigene Infrastruktur integriert etc. pp. Die paar Striche
zu zeichnen, ist dabei fast der geringste Anteil an Arbeit. Die
MechCAD-Daten bekommt man mittlerweile teilweise sogar von den
Herstellern (genauso wie die 3D-CAD-Daten).
Gehört aber nicht hierher, hier geht es um Horizon.
Ich konnte heute (nach einem Update "git pull; make") den interaktiven
Router nicht mehr starten. Ich hatte ein paar Leiterbahnen gelöscht und
wollte diese neue verlegen. Fehlermeldung siehe Bildschirmfoto.
Klaus R. schrieb:> Ich konnte heute (nach einem Update "git pull; make") den interaktiven> Router nicht mehr starten. Ich hatte ein paar Leiterbahnen gelöscht und> wollte diese neue verlegen. Fehlermeldung siehe Bildschirmfoto.
Hallo Klaus,
ich konnte den von dir beschriebenen Fehler in WIN10 nicht
nachvollziehen.
Falls du einen WIndows-Rechner hast, dann könntest du es mal mit der von
Lukas generierten WIN-Version vom 01.01.2018 testen.
http://0x83.eu/horizon-zip/
Gruß
Helmut
Klaus R. schrieb:> den interaktiven> Router nicht mehr starten.
Endlich kommt das Logging mal Sinnvoll zum Einsatz. Davor wäre das ganze
Programm abgestürzt :)
Der Fehler kam, daher, dass in deinem eigenen Padstack beim SSOP-28 aus
noch unbekannter Ursache Polygone ohne Vertices waren. Jetzt werden
diese nicht mehr geladen.
Lukas K. schrieb:> Der Fehler kam, daher, dass in deinem eigenen Padstack beim SSOP-28 aus> noch unbekannter Ursache Polygone ohne Vertices waren. Jetzt werden> diese nicht mehr geladen.
Ja, danke! Jetzt geht es. Die "eigenen Padstacks" haben leider mir schon
etwas Kummer bereitet. Hätte ich nur am Anfang kapiert, dass die schon
vorhandenen Padstacks parametrisierbar sind... wüsste jetzt nicht, wo
man dann noch eigene bräuchte.
Hi Lukas!
Ich habe gestern ganz zufällig dein Projekt gefunden und ich muss dir
wirklich sagen: Hut ab!
Ich hatte das gleiche schon (einfaches Tool, globale Library (hier
Pool), usw.) vor ein paar Jahren vor zu implementieren, jedoch fehlte
mir einfach die Zeit dafür.
Ich bin dir auf jeden Fall sehr dankbar für deine Mühe :)
Auf Github hast du sicherlich schon mitbekommen, dass ich hier auch mit
arbeiten möchte bzw. auch schon mache (Github-user: peterus).
Unter anderem habe ich bereits ein Script erstellt um die SMD
Widerstände der Größen 0402, 0603, 0805 und 1206 in der E12-Reihe
automatisch zu generieren (von 0 bis 100MOhm).
Das hab ich eigentlich einmal nur gemacht, um mich mit den Pool-Daten
näher zu beschäftigen.
Wenn du nichts dagegen hast, würde ich gerne das makefile "austauschen"
auf cmake. Ich benütze cmake schon seit ein paar Jahren und man hat
damit einige mehr Vorteile (auflösen von externen Bibliotheken ist
einfacher, es gibt mehrere config files, logging von dem was man sehen
möchte, logging ist auch schöner, usw.).
Zusätzlich würde ich auch gleich ein bisschen aufräumen und ein bisschen
eine bessere Struktur rein bringen wo die Daten gespeichert sind.
Anfangen würde ich damit, dass ich mal alle cpp's und hpp's durch gehe
und einen Header mit Lizenz rein schreiben lasse mit einem Script.
edit: habs mir anders überlegt: Lizenz solltest du übernehmen :)
Peter B. schrieb:> Ich bin dir auf jeden Fall sehr dankbar für deine Mühe :)
Schön zu hören :)
> Auf Github hast du sicherlich schon mitbekommen, dass ich hier auch mit> arbeiten möchte bzw. auch schon mache (Github-user: peterus).> Unter anderem habe ich bereits ein Script erstellt um die SMD> Widerstände der Größen 0402, 0603, 0805 und 1206 in der E12-Reihe> automatisch zu generieren (von 0 bis 100MOhm).> Das hab ich eigentlich einmal nur gemacht, um mich mit den Pool-Daten> näher zu beschäftigen.
Okay, aber eigentlich will ich im Pool nur Bauteile mit MPN und
Hersteller haben, bzw. die CPL-Teilenummern, die man mit den
Octopart-Bomtool zu echten Bauteilen zuordnen kann. Mir schwebt vor,
dass man zukünftig die exportierte BOM direkt bei Octopart oder Digikey
einwerfen und dann einfach bestellen kann.
Allerdings hat nicht jedes Projekt diesen Anspruch und so generische
Widerstände können dafür durchaus praktisch sein, mal drüber nachdenken.
> Wenn du nichts dagegen hast, würde ich gerne das makefile "austauschen"> auf cmake. Ich benütze cmake schon seit ein paar Jahren und man hat> damit einige mehr Vorteile (auflösen von externen Bibliotheken ist> einfacher, es gibt mehrere config files, logging von dem was man sehen> möchte, logging ist auch schöner, usw.).
Bis jetzt fehlt mir an make eigentlich nichts wirklich, was die
zusätzliche Komplexität rechtfertigen würde. Externe Bibliotheken zu
finden klappt mit pkg-config auf meinen Zielplattformen auch hinreichend
gut.
> Zusätzlich würde ich auch gleich ein bisschen aufräumen und ein bisschen> eine bessere Struktur rein bringen wo die Daten gespeichert sind.
Wie meinst du das genau? Jetzt bezogen auf pool oder source code?
> Anfangen würde ich damit, dass ich mal alle cpp's und hpp's durch gehe> und einen Header mit Lizenz rein schreiben lasse mit einem Script.>> edit: habs mir anders überlegt: Lizenz solltest du übernehmen :)
Auch wenn es mir persönlich missfällt, muss das wohl so sein...
> Okay, aber eigentlich will ich im Pool nur Bauteile mit MPN und> Hersteller haben, bzw. die CPL-Teilenummern, die man mit den> Octopart-Bomtool zu echten Bauteilen zuordnen kann. Mir schwebt vor,> dass man zukünftig die exportierte BOM direkt bei Octopart oder Digikey> einwerfen und dann einfach bestellen kann.
Kann ich voll und ganz verstehen, jedoch gibt es hier gerade ein mal ein
paar Widerstände in der CPL-Bibliothek. Ich hab mich ein bisschen
eingelesen in das CPL und heraus gefunden, dass diese nur die meist
benutzten Sachen rein stellen. Das heißt, dass dort nie ein Widerstand
sein wird mit 5.6k (in 1206) weil dieser nicht unter den meist benützten
ist.
Angenommen ich möchte nun ein Projekt bauen wo dieser Widerstand
benötigt wird. Ich kann ihn auch kaufen, nur gibt es den nicht im Pool -
wäre ziemlich blöd...
> Bis jetzt fehlt mir an make eigentlich nichts wirklich, was die> zusätzliche Komplexität rechtfertigen würde. Externe Bibliotheken zu> finden klappt mit pkg-config auf meinen Zielplattformen auch hinreichend> gut.
Sobald das Projekt größer wird, wird es viel einfacher zum managen ;)
Spreche da aus guter Erfahrung aus der Arbeit usw.
> Wie meinst du das genau? Jetzt bezogen auf pool oder source code?
Der Pool ist schon gut strukturiert!
Beim Source Code habe ich sehr lange gebraucht bis ich verstanden habe
wie wo was liegt. Bzw. was außerdem auch ein externer Code ist.
Peter B. schrieb:> Angenommen ich möchte nun ein Projekt bauen wo dieser Widerstand> benötigt wird. Ich kann ihn auch kaufen, nur gibt es den nicht im Pool -> wäre ziemlich blöd...
Meine (vielleicht utopische) Idee war, dass der Anwender sich dann auf
digikey den gewünschten Widerstand aussucht und mit einem Skript wie
deinem gleich die ganze Serie des Herstellers in den Pool einpflegt.
Wenn man sich beim Design der Schaltung nicht von sowas aufhalten lassen
will, kann man auch einfach im Schaltplan den Widerstand auch ohne Part,
nur als Entity, platzieren und den Wert einfach eintippen. Später kann
man dann das Anlegen von den Bauteilen nachholen und mit dem "Assign
Part"-Tool den Widerständen das richtige Part zuweisen.
Peter B. schrieb:> Beim Source Code habe ich sehr lange gebraucht bis ich verstanden habe> wie wo was liegt. Bzw. was außerdem auch ein externer Code ist.
Okay, man könnte alles externe (clipper, etc) in einen
"3rd_party"-Ordner stecken, damit das besser getrennt ist. Was hat dich
sonst so konkret gestört?
Lukas K. schrieb:> Meine (vielleicht utopische) Idee war, dass der Anwender sich dann auf> digikey den gewünschten Widerstand aussucht und mit einem Skript wie> deinem gleich die ganze Serie des Herstellers in den Pool einpflegt.
Man sollte daran denken, dass mittlerweile 3d-Fähigkeit ein Must-Feature
ist.
KiCad kann es ja schon und ich würde mit keinem (neuen) Programm mehr
arbeiten wollen, das keine 3d-Fähigkeiten hat.
Mampf F. schrieb:> Man sollte daran denken, dass mittlerweile 3d-Fähigkeit ein Must-Feature> ist.
Das trifft sich gut, da bin ich gerade dran :) Laden von STEP-Modellen
mit opencascade klappt schon, an der richtigen Stelle in der 3D-Vorschau
sind sie auch schon. Fehlt nur noch ein bisschen drumherum. Der Code zum
STEP-Importieren mit opencascade ist weitestgehend von
https://github.com/KiCad/kicad-source-mirror/blob/master/plugins/3d/oce/loadmodel.cpp
abgekupfert.
STEP-Export steht auch der Roadmap, das wird dann darauf hinauslaufen
kicad2step zu portieren.
A. N. schrieb:> Vielleicht könnte man wieder die 3D Ansicht von KiCad in horizon> integrieren!
Ne, die haben aus mir unbekannten Gründen gleich ein ganzes
Scenegraph-Framework implementiert und verwenden legacy-OpenGL.
Ich werfe die Vertices und Indizes für die Dreiecke aller Bauteile auf
dem Board in VBOs auf die GPU und kann diese dann durch instancing
mehrfach an den vorgesehenen Positionen rendern.
Helmut S. schrieb:> Welche Funktion hat das Icon "Herz" im Part Browser?> Ich kann keine Funktion beim anklicken erkennen.
Das fügt das ausgewählte Part den Favoriten (links im Fenster) hinzu,
bzw. entfernt es daraus.
Lukas K. schrieb:> Helmut S. schrieb:>> Welche Funktion hat das Icon "Herz" im Part Browser?>> Ich kann keine Funktion beim anklicken erkennen.>> Das fügt das ausgewählte Part den Favoriten (links im Fenster) hinzu,> bzw. entfernt es daraus.
Danke. Da hätte ich auch selber draufkommen müssen. :-)
Lukas K. schrieb:> Mampf F. schrieb:>> Man sollte daran denken, dass mittlerweile 3d-Fähigkeit ein Must-Feature>> ist.>> Das trifft sich gut, da bin ich gerade dran :) Laden von STEP-Modellen> mit opencascade klappt schon, an der richtigen Stelle in der 3D-Vorschau> sind sie auch schon. Fehlt nur noch ein bisschen drumherum. Der Code zum
Unglaublich! Habe es direkt mal ausprobiert, stecke aber beim Laden der
Step-Datei fest. Im 3D-View des Packages klicke ich auf den
Browse-Button für die Step-Datei, wählt diese aus und schließe dann den
Datei-Dialog. Passieren tut allerdings nichts. Der Dateiname erscheint
auch nicht im Textfeld vor dem Browse-Button. Das hätte ich erwartet.
Ist das der richtige Weg? Wo liegen die Step-Dateien, wenn man sie denn
mal hochgeladen bekommt?
Uwe
Sodele, STEP-Modelle funktionieren nun grundlegend einige Worte dazu
noch: Integration in die Download/Upgrade-Infrastruktur fehlt noch,
kommt aber bald.
Angedacht war das dann so: Im Pool wird es dann neben packages,
entities, etc. noch den Ordner "3d_models" geben, in dem dann alle
STEP-Dateien an Zentraler stelle liegen, also teil des Pools werden.
Da die Lizenzbedingungen einiger Hersteller es nicht erlauben, deren
Modelle weiterzuverteilen, wird es noch einen Ordner geben, in den man
dann selber die Modelle mit dem richtigen Dateinamen ablegen kann.
Geduldet euch am besten noch ein Paar Tage, dann wird aus dem Futur im
Absatz oben auch Präsens ;)
Uwe S. schrieb:> Das hätte ich erwartet.> Ist das der richtige Weg? Wo liegen die Step-Dateien, wenn man sie denn> mal hochgeladen bekommt?
Da hat noch eine Fehlermeldung gefehlt (ist jetzt drin), die einem sagt,
dass sich die Datei nicht im Pool befindet. Damit man keine absoluten
Pfade hat, werden die Dateinamen relativ zum Pool gespeichert. Wenn du
deine Modelle in einen Unterordner des Pools kopiert, sollte es klappen.
Welches dev package braucht man denn dafür?
util/step_importer.cpp:2:10: fatal error: TDocStd_Document.hxx: Datei
oder Verzeichnis nicht gefunden
#include <TDocStd_Document.hxx>
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
tester schrieb:> Welches dev package braucht man denn dafür?>> util/step_importer.cpp:2:10: fatal error: TDocStd_Document.hxx: Datei> oder Verzeichnis nicht gefunden> #include <TDocStd_Document.hxx>> ^~~~~~~~~~~~~~~~~~~~~~> compilation terminated.
Unter Debian versuchs mal mit liboce-ocaf-dev
Uwe
Uwe S. schrieb:> Unter Debian versuchs mal mit liboce-ocaf-dev
Ja, danke, das wars. Noch ein Job für Lukas, Wahrscheinlich wieder mein
vermurkstes Padstack. Wenn ich im Board auf die 3D Ansicht gehe, crashed
horizon.
klaus@Yoga:~/horizon/horizon$ ./horizon-prj-mgr
SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name,
GROUP_CONCAT(tags.tag, ' '), parts.filename, parts.description FROM
parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages ON
packages.uuid = parts.package WHERE parts.MPN LIKE ? AND
parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid
ORDER BY parts.MPN COLLATE naturalCompare ASC
col 2
create proc
spawn /home/klaus/horizon/horizon/horizon-imp -b
/home/klaus/horizon/proj/rpi-codec/board.json
/home/klaus/horizon/proj/rpi-codec/top_block.json
/home/klaus/horizon/proj/rpi-codec/vias
imp rx null
(horizon-imp:4658): glibmm-ERROR **:
unhandled exception (type std::exception) in signal handler:
what: [Unsupported] Opposing point on constrained edge
tester schrieb:> unhandled exception (type std::exception) in signal handler:> what: [Unsupported] Opposing point on constrained edge
Oh, den kennen wir doch:
Klaus R. schrieb:> [...]> terminate called after throwing an instance of 'std::runtime_error'> what(): [Unsupported] Opposing point on constrained edge> end proc 4244> exit stat 134
Da es jetzt Logging gibt, hab ich das die exception abgefangen und ein
Log-Eintrag draus gemacht:
https://github.com/carrotIndustries/horizon/commit/b3bd85d831cbecd4bb0b334cd87188cf0e0aa681
Dann fehlt immerhin nur die Füllung beim Silkscreen an der Stelle, an
der's hinfällt.
Hi Lukas!
Ich arbeite schon seit ein paar Tagen an einer Restrukturierung so dass
du normal weiter entwickeln kannst und ich mich eben um ein paar andere
Punkte kümmere (Liste weiter unten).
Nachdem das schon langsam ein bisschen größer geworden ist, wollte ich
mich einmal mit dir absprechen welche Änderungen du übernehmen würdest
und welche nicht (nicht das ich hier einige Tage arbeite und du die
Änderungen e nicht rein-mergen möchtest).
Hier ist die Liste mit einer Erklärung zu jedem Punkt wieso ich denke
das diese Änderung besser ist:
1
1) externer Code wurde in den Ordner "extern" verschoben (umbenennen in "3part"?) -> Trennung zwischen Projekt-Code und externen/3part-Code
2
2) Projekt-Code wurde in src/* verschoben -> Übersichtlicher Platz für den Code
3
3) Umstellung von Makefile auf CMake -> siehe weiter unten
4
4) Include-Dirs verringert (die Einzelnen Module müssen jetzt angegeben werden beim Include) -> damit Abhängigkeiten einfacher ersichtlich sind
5
5) gresources von CMake erstellen lassen -> Vereinfachung von einem Build Schritt für CMake
6
6) board/board_layers.hpp Konstanten in einem enum verwandelt -> kann mit einer Shared-Lib (cmake) nicht mehr verwendet werden (Linker Error mit CMake), Umwandlung in einem enum war ohne weiteres einfach möglich.
Natürlich gibt es hier leider ein paar Abhängigkeiten:
Wenn 3) gemacht werden soll, muss auch 5) und 6) durchgeführt werden.
Auch anders herum 5) ist Abhängig von 3) und das wiederum von 6)!
Wieso nun CMake:
* Du kannst unabhängig vom Buildsystem arbeiten -> Projekt kann mit
Makefile, Visual Studio, <Buildsystem deiner Wahl> usw. geöffnet werden.
* Wenn eine neue externe Library hinzugefügt wird (so wie jetzt gerade
der Fall ist), meckert schon CMake von vornherein das die Library fehlt
und es wird noch gar nicht gebaut. Außerdem bekommt man eine genaue
Fehlerbeschreibung wieso und was fehlt.
* Nettere Ausgabe (ok, ist Ansichtssache. Aber ich finde es cool das ich
den Buildvorschritt mit %e sehen kann)
So... das hab ich mal in den letzten 3 bis 4 Tagen fast alles erledigt!
Nachdem es aber dein Projekt ist und du das sagen darüber hast, möchte
ich dir da nicht auf die Füße treten und gleich einen riesigen "pull
request" los schicken :)
Ich bin gerne offen meine Änderungen auf deine neusten Änderungen
aufzusetzen, würde aber gerne wissen mit was du einverstanden wärst und
was ich dir alles schicken darf. Dann würde ich das Schritt für Schritt
auf mehrere Pull Requests aufteilen, so dass du und ich nicht zu viel
zum ändern haben ;)
------------------------------------------------------------------------
Bezüglich der Änderungen vom Pool die von mir noch offen sind:
Mit dem Original Namen von der CPL Lib, kann ich aber auch nicht direkt
in der SnapEDA's Library suchen.
Möchte ich zb. einen 100Ohm Widerstand in 1206 haben finde ich in der
CPL diesen Eintrag: CPL-RES-1206-100-0.25W
Gehe ich nun auf die SnapEDA's Seite und gebe diesen Begriff bei der
Suche ein, bekomme ich kein Ergebnis! Oder gibt es hier eine andere
"Suche" wenn ich schon diesen Begriff habe?
Cool, dass mal jemand anders den Sourcecode anfasst :)
Peter B. schrieb:> 1) externer Code wurde in den Ordner "extern" verschoben (umbenennen in> "3part"?) -> Trennung zwischen Projekt-Code und externen/3part-Code
Sehr schön :)
> 2) Projekt-Code wurde in src/* verschoben -> Übersichtlicher Platz für> den Code
Geschmackssache, ist aber wohl so üblich, also ja.
> 3) Umstellung von Makefile auf CMake -> siehe weiter unten
Hast mich überzeugt. Insb. kann dann opencascade eine optionale
Abhängigkeit werden und man kann auf
https://github.com/FreeCAD/FreeCAD/blob/master/cMake/FindOpenCasCade.cmake
aufbauen.
> 4) Include-Dirs verringert (die Einzelnen Module müssen jetzt angegeben> werden beim Include) -> damit Abhängigkeiten einfacher ersichtlich sind
Das hatte ich schon längers vor, aber war immer zu faul dazu. Danke!
Ganz früher war alles in einem Ordner drin, als ich dann Zeug in Ordner
einsortiert hatte, war ich zu faul zum Includes anpassen. -I war da am
einfachsten...
> 5) gresources von CMake erstellen lassen -> Vereinfachung von einem> Build Schritt für CMake
D.h. man gibt Cmake die liste von ressourcen?
> 6) board/board_layers.hpp Konstanten in einem enum verwandelt -> kann> mit einer Shared-Lib (cmake) nicht mehr verwendet werden (Linker Error> mit CMake), Umwandlung in einem enum war ohne weiteres einfach möglich.
Oh, ganz vergessen, dass es die neben scoped enums auch noch gibt, danke
:)
Peter B. schrieb:> Oder gibt es hier eine andere> "Suche" wenn ich schon diesen Begriff habe?
Octopart, da kommen dann Widerstände von mehreren Herstellern zur
Auswahl.
Das schöne an den CPL-Parts ist, dass sich schon jemand anders eine
Zuordnung von generischer Part-Nummer zu MPN gemacht hat. Wenn es da
noch andere Schemata gibt, sind die auch gerne gesehen, Hauptsache man
bekommt automatisch eine MPN raus.
Lukas K. schrieb:> Cool, dass mal jemand anders den Sourcecode anfasst :)
Ja ich kenn das leider zu gut von einigen Projekten von mir. Da werkelt
man ewig lange herum und es gibt zwar viele Interessenten, aber am
Schluss steht ma dann doch fast ganz alleine da.
Da freut man sich schon wenn mal jemand anderer mit anpackt :)
> Geschmackssache, ist aber wohl so üblich, also ja.
Du hast hald den Vorteil, dass du wirklich den gesamten Code auf einem
Platz hast. Alles was nicht Code ist, kommt einfach wo anders hin und es
gibt eine Trennung dazwischen ;)
>> 3) Umstellung von Makefile auf CMake -> siehe weiter unten> Hast mich überzeugt. Insb. kann dann opencascade eine optionale> Abhängigkeit werden und man kann auf> https://github.com/FreeCAD/FreeCAD/blob/master/cMake/FindOpenCasCade.cmake> aufbauen.
Guter Punkt und wird dann von mir auch gleich mit umgesetzt!
>> 4) Include-Dirs verringert (die Einzelnen Module müssen jetzt angegeben>> werden beim Include) -> damit Abhängigkeiten einfacher ersichtlich sind> Das hatte ich schon längers vor, aber war immer zu faul dazu. Danke!> Ganz früher war alles in einem Ordner drin, als ich dann Zeug in Ordner> einsortiert hatte, war ich zu faul zum Includes anpassen. -I war da am> einfachsten...
:) In der Zwischenzeit ist das Projekt ja schon ziemlich groß geworden,
da muss schon eine Struktur her, sonst wird das nur Chaos.
>> 5) gresources von CMake erstellen lassen -> Vereinfachung von einem>> Build Schritt für CMake> D.h. man gibt Cmake die liste von ressourcen?
Ja genau (gibt dafür extra eine CMake Erweiterung). Es werden dann
automatisch die Files überprüft ob diese existieren und danach wird das
xml erstellt und dann das Cpp file.
>> Oder gibt es hier eine andere>> "Suche" wenn ich schon diesen Begriff habe?> Octopart, da kommen dann Widerstände von mehreren Herstellern zur> Auswahl.> Das schöne an den CPL-Parts ist, dass sich schon jemand anders eine> Zuordnung von generischer Part-Nummer zu MPN gemacht hat. Wenn es da> noch andere Schemata gibt, sind die auch gerne gesehen, Hauptsache man> bekommt automatisch eine MPN raus.
Jaaa stimmt... wenn ich jetzt meine generierten Namen verwende kommt man
nicht gleich auf ein Ergebnis. Man muss erst die "-" entfernen und dann
kommt auch was raus. Da muss man noch was machen :)
Hat jemand schon Symbole erstellt?
Ich brauche z.B. einen OpAmp. Aber irgendwie sehe ich z.B. nicht wo ich
die Pins hinzufügen kann. Gibts da einen Trick?
Michael H. schrieb:> Hat jemand schon Symbole erstellt?> Ich brauche z.B. einen OpAmp. Aber irgendwie sehe ich z.B. nicht wo ich> die Pins hinzufügen kann. Gibts da einen Trick?
Bei horizon werden die Pins eines Bauteils nicht im Symbol definiert,
sondern in der Unit:
https://github.com/carrotIndustries/horizon/wiki/The-Pool#units
Du legst dir also für dein Bauteil eine neue Unit an, trägst dort die
Pins ein und legst dann eines oder mehr Symbole dazu an.
Abdul K. schrieb:> Hm. Und wie soll dann ein Bauelement mit z.B. der typischen Varianten 16> Pins als DIP und 20 Pins als SMT definiert werden?
Da legst du einfach ein zweites Bauteil an.
Hallo,
diese 3D-Modelle machen mir gerade wahnsinnig. Angehängt sind mal zwei
Screenshots. Einmal das Bauteil in FreeCAD und dann das importierte
Bauteil in Horizon. Jetzt frage ich mich warum da zwei Beine fehlen und
der Ursprung so verschoben ist. Wie muss man denn so ein Bauteil
anlegen, damit es passend auf der Platine erscheint?
Uwe
Uwe S. schrieb:> . Jetzt frage ich mich warum da zwei Beine fehlen und> der Ursprung so verschoben ist. Wie muss man denn so ein Bauteil> anlegen, damit es passend auf der Platine erscheint?
Hast du mir mal die STEP-Datei?
Abdul K. schrieb:> Linkes Bild ist auch noch ein Bug drin. Schau dir den Mittelpin oberhalb> 0,0,0 an. Da ist er irrtümlich transparent. Sieht zumindest so aus.
Nö, das ist nur der eingeblendete Koordinatenursprung mit der Z-Achse,
die blau dargestellt ist und direkt auf der Oberfläche des Anschlusses
liegt.
Lukas, ich muss mal sagen: die Geschwindigkeit, in der du Patches
bereitstellst und einbaust, sollte jeden kommerziellen Hersteller vor
Neid erblassen lassen.
Meinen allergrößten Respekt dafür!
Max G. schrieb:> Lukas, ich muss mal sagen: die Geschwindigkeit, in der du Patches> bereitstellst und einbaust, sollte jeden kommerziellen Hersteller vor> Neid erblassen lassen.
Das geht nur, solange man kein kommerzieller Hersteller ist und
größtenteils alleine daran arbeitet :)
> Meinen allergrößten Respekt dafür!
Ja, von mir auch! :)
Nochmal was zum Thema Step-Dateien.
Kicad hat bereits eine ordentliche Menge Step-Dateien, die ich punktuell
versucht habe einzubinden. Grundsätzlich kein Problem, nur die
Ausrichtung des Packages und des 3d-Modells passt oft nicht zusammen.
Bei dem besagten TO-92 hatte ich den Ursprung auf den mittleren Pin
gelegt. Das 3D-Modell aus Kicad legt den Ursprung aber auf einen der
äußeren Pins. Wenn ich jetzt das Package passend verschiebe dann
zerreißt es mir die Boards, die dieses Packages bereits verwenden.
Sicher ich könnte auf das Update des Pools im Projekt verzichten, aber
grundsätzlich wird man immer wieder, nicht zu einander passende
3D-Modelle und Packages haben. Könnte man bei der Zuordnung des
3D-Modells zum Package nicht eine Verschiebung und Rotation des
3D-Models angegeben, die das Modell dann zurecht rückt?
Uwe
Michael H. schrieb:> es kam allerdings die Antwort, man solle es in der STEP-Datei ändern.
Wenn man mal davon ausgeht, dass man heutzutage STEP-Dateien oft
direkt vom Hersteller bekommt, finde ich das nicht so gut.
Bei selbst erzeugten ist das sicher was anderes.
Michael H. schrieb:> @Uwe: Ich hatte das schon angefragt, es kam allerdings die Antwort, man> solle es in der STEP-Datei ändern.> https://github.com/carrotIndustries/horizon/issues/61
Ok. Das halte ich aber auch für unglücklich, weil man bei der Menge an
bestehenden Step-Dateien kaum noch davon profitieren kann, wenn man die
alle anpassen muss. Aber letztlich muss dass natürlich Lukas
entscheiden.
Jörg W. schrieb:> Michael H. schrieb:>> es kam allerdings die Antwort, man solle es in der STEP-Datei ändern.>> Wenn man mal davon ausgeht, dass man heutzutage STEP-Dateien oft> direkt vom Hersteller bekommt, finde ich das nicht so gut.
Eben bei denen, die von Herstellern kommen, liegt der Ursprung oft im
nirgendwo und die Rotation passt auch überhaupt nicht. Sowas behebt man
besser in einem anständigen MCAD-Programm wie FreeCAD, anstatt in
horizon nach Augenmaß Nummern einzutragen. In Freecad z.B. ist es
einfach möglich, das Modell so zu verschieben, dass dessen Unterseite
genau bei z=0 liegt.
Uwe S. schrieb:> Ok. Das halte ich aber auch für unglücklich, weil man bei der Menge an> bestehenden Step-Dateien kaum noch davon profitieren kann, wenn man die> alle anpassen muss.
Bei den Modellen von SMD-Bauteilen, die ich mir so angesehen hatte,
hat's gepasst, da dort der Ursprung vom Modell auch in der Mitte liegt.
Eine wirkliche Konvention, wo in den Packages der Ursprung liegen soll
fehlt noch. Bei Kicad ist's für alles was nicht Through hole ist der
Mittelpunkt vom Bauteil und bei TH im Mittelpunkt von Pin 1, was sich
auch so in den 3D-Modellen widerspiegelt. Mir persönlich gefällt das
nicht so wirklich.
Um die Through Hole-Modelle von KiCad verwenden zu können, ist es
durchaus sinnvoll, Verschiebung/Rotation eintragen zu können, nur hat
man dann wieder das Problem, dass Leute anstatt im MCAD nachzumessen und
die Werte daraus zu übernehmen, einfach so lange an den Knöpfen drehen
werden, bis es optisch passt.
Lukas K. schrieb:> Um die Through Hole-Modelle von KiCad verwenden zu können, ist es> durchaus sinnvoll, Verschiebung/Rotation eintragen zu können, nur hat> man dann wieder das Problem, dass Leute anstatt im MCAD nachzumessen und> die Werte daraus zu übernehmen, einfach so lange an den Knöpfen drehen> werden, bis es optisch passt.
Dann habe ich mir in der Tat die Problemfälle rausgesucht. Ich kann
durchaus verstehen, dass hier eine einheitlich Vorgehensweise besser
wäre (z.B. den Ursprung auf Pin 1 oder den linken Pin (bei horizontaler
Ausrichtung) zu legen).
Ist halt blöd, wenn man einen ganzen Schwung 3D-Modelle und Packages
hat, die nicht zusammen passen und beides aus Quellen kommt, die
möglicherweise noch Änderungen vornehmen. Wenn ich die Kicad-Modelle
anpasse, werde ich mögliche Korrekturen darin vermutlich nicht mehr
übernehmen können. Folglich muss ich meine Packages in Horizon anpassen
und das bedeutet Nacharbeiten in den bereits erstellten Boards. Zur Zeit
noch überschaubar, kann aber ziemlich viel Arbeit bedeuten.
Uwe
Und genau aus dem Grund ist es üblich eigentlich alles selber neu
anzulegen bzw. nach eigenen Vorgaben externe dafür zu beauftragen.
Eigentlich ein Witz, denn in DE sind ja sogar die Schaltsymbole in den
Schaltplänen zu großen Teilen genormt. Nur die wenigsten halten sich
dran.
Vielleicht verändert sich das mal irgendwann. In den letzten 40 Jahren
war dieser Zeitpunkt aber nie erreicht.
Vielleicht liegt es an der Neumodigkeit von Elektronik, den vielen
Individualisten in diesem Feld oder weil im Bereich Elektronik einfach
noch <zu> viel Geld für Spezialgänge vorhanden ist.
> denn in DE sind ja sogar die Schaltsymbole in den Schaltplänen zu großen Teilen
genormt.
Nur finden alle Firmen außerhalb Deutschlands diese Symbole nicht
überzeugend. Deshalb werden die sich international auch nie durchsetzen.
Deshalb sollte sich Lukas an internationale Geflogenheiten orientieren.
International würde ich das nicht nennen, eher amerikanisch. Vielleicht
in Zukunft auch chinesisch. Zeichnet sich ja jetzt schon deutlichst ab.
Z.B. Datenblätter in chinesisch-only.
Abdul K. schrieb:> Und genau aus dem Grund ist es üblich eigentlich alles selber neu> anzulegen bzw. nach eigenen Vorgaben externe dafür zu beauftragen.
Ich habe aber dabei noch niemanden (im industriellen Umfeld) gesehen,
der sich seine eigenen 3D-Modelle gezimmert hat. Klar baut sich jeder
seine Bauteile selbst, aber die 3D-Modelle sind nur dann dabei, wenn
man sie irgendwoher bekommen kann: bei einfachen Dingen
(Standard-Hühnerfutter) schon auch gut und gern mal aus dem EDA-Tool,
bei spezielleren Bauteilen halt die vom Hersteller.
Helmut S. schrieb:> Nur finden alle Firmen außerhalb Deutschlands diese Symbole nicht> überzeugend.
Falls du die IEC-Symbole meinst: die sind nicht einmal deutsch,
sondern international. ;-) Die BRD hat sie sogar relativ spät in
die eigene Norm übernommen, im Ostblock sind sie kurz nach ihrer
Normierung durch die IEC offiziell übernommen worden (und auch
tatsächlich benutzt, sowohl von den Fachzeitschriften als auch in
der Industrie). Aber da, wo man Entfernungen immer noch mit Daumen
und Füßen misst, wird auch das wohl noch ein bisschen dauern …
Ist aber hier egal, hier geht's ja um die Anpassungen, die Horizon
gewillt ist, an einem 3D-Modell vorzunehmen.
Lukas K. schrieb:> nur hat man dann wieder das Problem, dass Leute anstatt im MCAD> nachzumessen und die Werte daraus zu übernehmen, einfach so lange an den> Knöpfen drehen werden, bis es optisch passt.
Sagen wir mal so: solange das einer für sich privat macht und nur
„ungefähr“ ein Gefühl bekommen will, wie's am Ende aussieht, finde
ich das auch OK. Ob das Modell da noch einen Zehntelmillimeter
daneben sitzt, interessiert dafür kaum. In den offiziellen Pool
würde ich es natürlich so nicht übernehmen.
Nicht jeder will sich unbedingt auch noch privat mit einem 3D-MCAD
befassen müssen (wenngleich das natürlich durch des Ingenieurs neues
Spielzeug, den 3D-Drucker allmählich ohnehin mehr werden, die es
tun :).
3D ist sicherlich ein neuer Trend. Liegt ja auch daran, daß ein dortiges
"Symbol" doch deutlich aufwändiger zu erstellen ist als ein planes
Schaltplansymbol.
Abdul K. schrieb:> Eigentlich ein Witz, denn in DE sind ja sogar die Schaltsymbole in den> Schaltplänen zu großen Teilen genormt. Nur die wenigsten halten sich> dran.
Das Problem an den Normen ist, dass sie in den 70ern stehen geblieben
sind bzw. darauf aufbauen, das elektronische Schaltungen wie
Schaltschränke aus genormten und austauschbaren Bauteilen bestehen. Dass
heutzutage fast jede Schaltung in irgendeine Art proprietäre Bauteile
wie Mikrocontroller, FPGAs oder Schaltregler beinhaltet ist in den
Normen nicht wirklich reflektiert.
Daher muss besser früher als später ein verbindlicher Satz an Regeln
her, um Diskussionen wie diese hier
https://github.com/carrotIndustries/horizon-pool/pull/11 abzukürzen. Die
KiCad library convention ist da schonmal ein guter Startpunkt.
Abdul K. schrieb:> 3D ist sicherlich ein neuer Trend.
Kommt drauf an. Für den Hobbyisten vielleicht, da kann das Projekt schon
fertig sein, wenn das Board funktioniert. In der Industrie hingegen ist
es ja üblich, Boards in Gehäuse einzubauen. Mit einem Gehäuse, das
irgendwie lose mit vielen Kabeln um das Board zusammengeschustert ist
gewinnt man da keinen Blumentopf mehr, man will das Board mit den darauf
befindlichen Bauteilen aus dem ECAD ins MCAD exportieren können, damit
das Gehäuse genau zum Board passt. In Zeiten von 3D-Druckern auch für
Hobbyisten umsetzbar.
Jörg W. schrieb:> Nicht jeder will sich unbedingt auch noch privat mit einem 3D-MCAD> befassen müssen
Ich werde kein Package ablehnen, nur weil es kein 3D-Modell enthält.
Besser gibt keines als ein nach Augenmaß positioniertes.
Hinsichtlich der 3D Diskussion:
Ich von meiener Seite habe mir gesagt, das es schön gewesen wäre.
Allerdings reicht es meistens schon aus, sich die STEPs von KiCad
rüberzuziehen.
Wenn da welche sind, dann gut, wenn nicht, halt kein 3D Model.
(Sieht für meinen Zweck halt schön aus, allerdings für mich nicht
überlebenswichtig...)
Ich bin im Moment dabei in freien minuten Bauteile zu erstellen, sodass
man eine Grundlage bekommt, schnell loslegen zu können.
Ich denke, das Program hat Potential.
Hab den Thread vor einigen Wochen mal durchgelesen. Ich freue mich auf
die erste Beta-Version. :)
Ein paar Fragen zu den Funktionen hätte ich da, ob es diese gibt oder
geplant sind (und falls nicht, betrachtet dies bitte als
Anregung/freundliche Anfrage dies zu integrieren):
Bauteilerstellung:
-Ist es möglich, Bauteile aus Datenbanken oder Tabellen (Excel) heraus
zu erstellen? Ich hab damit unlängst massenhaft Bauteile mit einem
Script erstellt, die zwar dasselbe Schaltplansymbol und denselben
Footprint gemeinsam hatten, in Details wie Bauteilwert,
Herstellerbezeichnung, usw. aber unterschiedlich waren. Einen
Skriptinterpreter zu integrieren wäre auch super, der Aufwand würde aber
vermutlich völlig ausarten...
-Wie sieht es mit der Pin-Pad-Zuordnung aus..kann man da einem Pin im
Schaltplan mehrere Pads im Layout zuordnen ohne das es Ärger geben
könnte? Bei SMD-Transostoren, Motortreibern und generell Leistungs-ICs
wäre das oft sehr nützlich. (In Altium ist dieser Punkt übrigens eine
Katastrophe, es gibt da zwar Workarounds, meines Erachtens aber keine
wirkliche Lösung.)
-Wie siehts mit BOM-Erstellung aus: Kann Horizon Bauteile wie folgt
darstellen:
Schaltplan ja, Footprint ja, BOM nein (z.B. Layoutsicherung)
Schaltplan nein, Footprint nein, BOM ja (Befestigungsmaterial)
Schaltplan nein, Footprint ja, BOM bedingt (Drahtbrücken, und in der BOM
taucht der Draht entweder gar nicht auf, oder wieviel Draht insgesamt
benötigt wird)
Schaltplanerstellung:
-Benamsung von Netzen: Kann Horizon die Folge LCD-0, LCD-1, LCD-2, ...
automatisch fortsetzen?
-Schaltplanseiten automatisch kopieren (ich erstelle einmal eine
bestimmte Seite, definiere die Anzahl, und Horizon verwaltet die
Kopien), und das gleiche Spiel beim Layout, ich route eine solche Seite
und Horizon übernimmt das Routing für alle anderen Seiten?
Ich spiele auf die Multi-Channel-Funktion in Altium an, die ich gerne
nutze, allerdings fehlen da meines Erachtens ein paar Dinge: z.B. daß
bestimmte Bauteilparameter zu jeder Kopie variieren können.
Eine Frage hätte ich noch an den Chef der Karottenindustrie: Mit welchen
EDA-Programmen hast du denn bisher so Erfahrung gesammelt?
Das soll es erstmal vorläufig sein...mir fällt nach der ersten
Beta-Version bestimmt noch mehr ein. ;)
Ich kenne KiCad nicht aus eigener Benutzung und will es nicht
kritisieren, aber ich finde es gar nicht so verkehrt wenn es da künftig
noch freie Alternative gibt. Und es tut den großen Firmen wie Mentor und
Altium auch gut, etwas Konkurrenz auch aus dem OSS-Sektor zu bekommen
(keine Ahnung ob das zum Anspruch von Horizon zählt, aber ich
unterstütze das gerne).
Wühlhase schrieb:> Einen> Skriptinterpreter zu integrieren wäre auch super, der Aufwand würde aber> vermutlich völlig ausarten...
Warte ab - übermorgen zur selben Zeit hat Lukas sicherlich Lua eingebaut
xD
Wühlhase schrieb:> Hab den Thread vor einigen Wochen mal durchgelesen. Ich freue mich auf> die erste Beta-Version. :)
Damit es eine Beta gibt, müsste es ja auch mal ein Release geben. Keine
Ahnung wann da die rechte Zeit für ist. Obwohl man derzeit schon
halbwegs bequem Schaltplan / Board entwickeln und Bauteile verwalten
kann, fehlen noch einige wichtige Funktionen wie z.B. BOM-Export. Ich
müsste mich wohl mal hinsetzen und definieren, was alles es alles für
Version 0.1 braucht.
> Ein paar Fragen zu den Funktionen hätte ich da, ob es diese gibt oder> geplant sind (und falls nicht, betrachtet dies bitte als> Anregung/freundliche Anfrage dies zu integrieren):>> Bauteilerstellung:> -Ist es möglich, Bauteile aus Datenbanken oder Tabellen (Excel) heraus> zu erstellen? Ich hab damit unlängst massenhaft Bauteile mit einem> Script erstellt, die zwar dasselbe Schaltplansymbol und denselben> Footprint gemeinsam hatten, in Details wie Bauteilwert,> Herstellerbezeichnung, usw. aber unterschiedlich waren.
Dazu können Parts voneinander erben, man legt einmal sein Basis-Bauteil
an und kann dann in einer Skriptsprache eigener Wahl die Parts aus
welcher Quelle auch immer zu erzeugen. Die Parts sind wie der Rest auch
json. z.B.
https://github.com/carrotIndustries/horizon-pool/pull/6/commits/8b69df90e621348b8fa3ff98b1a379c964a08088> -Wie sieht es mit der Pin-Pad-Zuordnung aus..kann man da einem Pin im> Schaltplan mehrere Pads im Layout zuordnen ohne das es Ärger geben> könnte?
Ja! Einfach im Part-Editor bei einen Pin mehrere Pads auswählen und auf
"Map" klicken.
> -Wie siehts mit BOM-Erstellung aus: Kann Horizon Bauteile wie folgt> darstellen:> Schaltplan ja, Footprint ja, BOM nein (z.B. Layoutsicherung)
Nein, aber einfach implementierbar
> Schaltplan nein, Footprint nein, BOM ja (Befestigungsmaterial)
Nein, auch einfach machbar
> Schaltplan nein, Footprint ja, BOM bedingt (Drahtbrücken, und in der BOM> taucht der Draht entweder gar nicht auf, oder wieviel Draht insgesamt> benötigt wird)
Nein, auch nicht einfach machbar, da alles was es auf dem Board gibt
aus der Netzliste kommen muss.
Zur BOM-Erstellung gibt es derzeit genau nichts. War mir persönlich
noch nicht wichtig genug und du bist auch der Erste der danach fragt.
Ich bin mir noch unsicher wie die genau geraten sein soll. Einen Dialog
mit einer Vielzahl von Optionen, wie sie so manche kommerzielle Software
bietet ist mir zu viel Aufwand:
- XSLT wie KiCad: horizon gibt XML aus, XSLT macht CSV, etc draus.
Vorteil: Kann gut integriert werden.
Nachteil: Es gibt schönere Dinge als XSLT
- JSON: Der Anwender schreibt in Skript in seiner Lieblingssprache,
das macht dann daraus das gewünschte Format. Funktioniert allerdings
nur auf Unixen wirklich sinnvoll.
Andere/Bessere Vorschläge?
> Schaltplanerstellung:> -Benamsung von Netzen: Kann Horizon die Folge LCD-0, LCD-1, LCD-2, ...> automatisch fortsetzen?
Nein, es gibt aber Busse. Bis jetzt sind diese mehr auf serielle Busse
wie SPI oder I²C ausgelegt.
> -Schaltplanseiten automatisch kopieren (ich erstelle einmal eine> bestimmte Seite, definiere die Anzahl, und Horizon verwaltet die> Kopien), und das gleiche Spiel beim Layout, ich route eine solche Seite> und Horizon übernimmt das Routing für alle anderen Seiten?> Ich spiele auf die Multi-Channel-Funktion in Altium an, die ich gerne> nutze, allerdings fehlen da meines Erachtens ein paar Dinge: z.B. daß> bestimmte Bauteilparameter zu jeder Kopie variieren können.
Das hatte ich vor mit Hierarchie zu erschlagen, ist aber noch in mehr
oder minder ferner Zukunft.
> Eine Frage hätte ich noch an den Chef der Karottenindustrie: Mit welchen> EDA-Programmen hast du denn bisher so Erfahrung gesammelt?
EAGLE, KiCad, LTSpice und ein bisschen Mentor Graphics Expedition im
professionellen Umfeld. Leider hatte ich noch nie wirklich die
Gelegenheit sinnvoll mit Altium zu arbeiten, habe ich doch
vergleichsweise viel gutes davon gehört. Einige Aspekte von horizon, wie
z.B. die Design-Regeln sind von Altium inspiriert.
Mampf F. schrieb:> Warte ab - übermorgen zur selben Zeit hat Lukas sicherlich Lua eingebaut> xD
Ich hatte da auch mal drüber nachgedacht, war mir aber den Aufwand nicht
wirklich wert, müsste man doch eine halbwegs stabile API bereitstellen.
Danke...das klingt doch schon mal gar nicht so schlecht. :)
Vor allem wie du das Pinmapping beschreibst klingt in meinen Ohren sehr
gut.
Ich hab eben nochmal die 3D-Diskussion kurz überflogen-sehr schön, daß
das in Horizon mit drin ist. Ohne 3D würde ich auch nicht mehr arbeiten
wollen.
Zur Positionierung: In Altium gibt es die Möglichkeit, eine ebene Fläche
eines Step-Modells als "Boardberührfläche" zu definieren. Dann wird das
Bauteil automatisch so ausgerichtet, daß die Fläche mit der
Platinenoberfläche in einer Ebene und orthogonal zur Z-Achse liegt.
Zum Ausrichten in der XY-Ebene kann man Snappoints am 3D-Modell
hinzufügen, die dann in der 2D-Bearbeitung auch sichtbar sind. Einen
Snappoint kann man dann z.B. in der Mitte eines Pins anlegen, und dann
in der 2D-Ansicht in das entsprechende Lötauge legen.
Vielleicht hilft das bei der Orientierung weiter. Dann hab ich noch ein
paar Dinge, die Altium an dieser Stelle leider sehr halbherzig umgesetzt
hat und die mich manchmal schon etwas ärgern:
-Die 'Face-to-PCB-Funktion' kann nur mit planen Flächen, aber nicht mit
runden Flächen. Einen aufrechten Zylinder ausrichten ist kein Problem,
aber einen liegenden Zylinder ausrichten (z.B. Melf-Bauteile) geht damit
nicht.
-Altium findet Snappoints nur an Ecken oder Kanten. Rotationsachsen von
rotationsymetrischen erkennt Altium leider nicht (was beim Ausrichten an
Pins oft ärgerlich ist).
Das mal so als Anregung...
Ich hab bisher eigentlich nur mit Altium gearbeitet (wie vielleicht
schon aufgefallen ist ;)), ich hab mich vor etlichen Jahren (so 2006
herum) mal zwei Stunden mit Eagle befaßt (das zähle ich nicht als
Erfahrung) und danach nur etwas mit Sprint Layout herumgespielt, weil
mir Eagle allzusehr mißfallen hat.
Von daher ist mein Erfahrungshorizont etwas eingeschränkter als deiner
(Expedition würd ich aber gerne mal ausprobieren), allerdings kenne ich
Altium dafür recht gut und ich arbeite auch sehr gerne damit.
Wenn du wissen wilst wie manches da gelöst ist, vielleicht als
Inspiration, kann ich dir gerne was beisteuern. :)
Wühlhase schrieb:> -Die 'Face-to-PCB-Funktion' kann nur mit planen Flächen, aber nicht mit> runden Flächen. Einen aufrechten Zylinder ausrichten ist kein Problem,> aber einen liegenden Zylinder ausrichten (z.B. Melf-Bauteile) geht damit> nicht.> -Altium findet Snappoints nur an Ecken oder Kanten. Rotationsachsen von> rotationsymetrischen erkennt Altium leider nicht (was beim Ausrichten an> Pins oft ärgerlich ist).
Genau deshalb meine Empfehlung, die Modelle davor im MCAD richtig
auszurichten, denn selbst mit FreeCAD bekommt man das hin.
Aktuell gibt es keine sinnvolle Möglichkeit mit den Modellen in der
3D-Vorschau zu interagieren, die STEP-Datei wird eingelesen,
Trianguliert und auf die resultierenden Dreiecke auf die GPU geladen,
das war's schon.
Schön wäre es schon, die Modelle in horizon ausrichten zu können, doch
steht das in keiner sinnvollen Relation zum dafür notwendigen Aufwand,
damit es auch zufriedenstellend funktioniert.
Lukas K. schrieb:> Schön wäre es schon, die Modelle in horizon ausrichten zu können, doch> steht das in keiner sinnvollen Relation zum dafür notwendigen Aufwand,> damit es auch zufriedenstellend funktioniert.
Ein Kompromiss wäre das so zu machen wie in KiCad ... Da kann man mit 6
Textboxen die Rotation und Translation einstellen.
Für mich war das immer gut genug.
Vlt gibt es ja irgendwann mal die Muse, das dann zu verbessern, aber ich
würde sagen, besser als nichts :)
Mindestens die XY-Rotation/Position und die Höhe in der Z-Achse
einzustellen wäre schon schön.
Anders sind viele 3D-Modelle von 3Dcontentcentral leider nicht zu
verwenden und jede Ausrichtung in Horizon mit einem externen Programm
macht dies sicher auch nicht gerade zum Vergnügen...
Wühlhase schrieb:> Mindestens die XY-Rotation/Position und die Höhe in der Z-Achse> einzustellen wäre schon schön.
Ah und die Skalierung noch ... Also 9 Parameter ... Rotation,
Translation, Skalierung :)
Oft sind die Models in inch pro Einheit oder mm pro Einheit ... Evtl
würde da schon eine Checkbox reichen dann zum umskalieren.
Sodele, seit soeben gibt es es X/Z/Z-Offset und Roll/Pitch/Yaw für
3D-Modelle. Skalierung kommt dann vielleicht noch, wenn mir jemand ein
entsprechendes Modell, das Skalierung bedarf, präsentiert.
Lukas K. schrieb:> Sodele, seit soeben gibt es es X/Z/Z-Offset und Roll/Pitch/Yaw für> 3D-Modelle. Skalierung kommt dann vielleicht noch, wenn mir jemand ein> entsprechendes Modell, das Skalierung bedarf, präsentiert.
Gerne, davon hab ich dutzende ... Alle Models, die von mir mit OpenScad
entworfen wurden haben die falsche Skalierung - oder die richtige, aber
KiCad nimmt inch statt mm an.
Ich schicke dir morgen etwas.
Ich versuche zur Zeit Symbole hierfür zu erstellen. Was mich hier
irgendwie stört, ist das iterative beim Package erstellen.
Siehe:
https://github.com/carrotIndustries/horizon-pool/pull/20
Könnte man nicht die Regeln genauer definieren, bzw. einen automatischen
Test einbauen? Ich glaube, wenn man so oft nachbessern musst, hast Du
Lukas keinen Spaß daran die anderen auf Ihre Fehler hinzuweisen,
andernseits wirkt es nicht sehr motivierend, wenn man 3 Wochen braucht
bis ein Package in der Repo ist...
Stell dir mal vor, da kommen 5 heinzel wie ich, die sich genauso dumm
anstellen... Da kommt man garnicht mehr nach.
Hallo Mampf.
Mampf F. schrieb:> Oft sind die Models in inch pro Einheit oder mm pro Einheit ... Evtl> würde da schon eine Checkbox reichen dann zum umskalieren.
Eine Voreinstellung für "inch oder mm" Anpassung wäre eine feine
Optimierung. Trozdem ist eine individuelle Einstellung nötig, weil auch
Modelle kursieren, wo sich jemand beim Umrechenen mm vs. inch und retour
vertan hat. Sei es das er Multiplikation mit Division verwechselt hat,
oder aber einen falschen Faktor verwendet hat, oder als Längeneinheit
preußische Lachter verwendet hat.
Mit freundlichem Gruß: Bernd wiebus alias dl1eic
http://www.l02.de
Lukas K. schrieb:> Sodele, seit soeben gibt es es X/Z/Z-Offset und Roll/Pitch/Yaw für> 3D-Modelle. Skalierung kommt dann vielleicht noch, wenn mir jemand ein> entsprechendes Modell, das Skalierung bedarf, präsentiert.
Hui, schön wie schnell das geht... :)
Wie gesagt, ich freue mich auf das erste Beta-Release.
Michael H. schrieb:> Stell dir mal vor, da kommen 5 heinzel wie ich, die sich genauso dumm> anstellen... Da kommt man garnicht mehr nach.
Andere haben es ja hinbekommen, auf Anhieb nahezu Perfekte Symbole,
Packages etc. abzuliefern, siehe
https://github.com/carrotIndustries/horizon-pool/pull/7
Ja, genauer spezifizierte Regeln braucht's noch, wobei ich auch erwarte,
dass sich Leute an bereits vorhandenem orientieren.
Wenn ein Vierfach Und-Gatter im Pool "Quad AND Gate" heißt, dann ist es
doch naheliegend einen Einzel-Opamp "Single Operational Amplifier" oder
"Single Opamp" zu nennen, oder? Selbes für die Namen/Prefixe von Gates,
etc. Einfach gucken wie es nebendran gemacht ist und nachmachen.
Lukas K. schrieb:> Wenn ein Vierfach Und-Gatter im Pool "Quad AND Gate" heißt, dann ist es> doch naheliegend einen Einzel-Opamp "Single Operational Amplifier" oder> "Single Opamp" zu nennen, oder?
Sollte man das "Single" vielleicht doch weglassen?
Einen einzelnen Transistor nennt man ja auch nicht "Single Transistor",
obwohl es durchaus auch dort "Dual Transistor" gibt.
Selbst dann würde ich die 1 weglassen, sonst müsstest du dann auch "1
Resistor", "1 Capacitor" etc. schreiben (es gibt ja schließlich auch
Widerstandsarrays).
Ist natürlich Lukas' Sache, welche Richtlinien er herausgibt, und
wichtiger noch als die genauen Richtlinien ist, dass sie konsequent
befolgt werden.
Und da wären wir beim Thema, es gibt tausend Möglichkeiten, und tausend
Geschmacksrichtungen =)
Desshalb sagte ich ja, finde ich ein gemeinsames Repository immer
schwer.
Was hier gut wäre, ist eine Checklist zum Abhaken, am besten wenn das
Programm es durchcheckt, für die ganz doofen unter uns.
Nur damit bekommt man imho einen Standard rein, und bekommt die
Geschmacksvarianzen in Griff.
Eine Sache, die ich zum Beispiel sinnvoll finde, ist das Power Gate "Z"
zu nennen, da es immer das letzte sein sollte. Und so weiß man, das
jedes Power immer Z heißt.
Aber das ist deine Entscheidung.
Wie gesagt, klare regeln, insbesondere super-verständlicht, und mit
vielen Bildern würden hier extrem weiterhelfen.
Bug-Report
Die Programme in der aktuellen Version auf appveyor.com
"horizon-2018-02-01-0021.zip" funktionieren nicht in WIN10.
Wenn man die Programme startet, dann passiert einfach nichts.
Die vorletzte Version (31.1.2018?) ging noch.
Wenn ich die source mit mysys2 selber kompiliere funktionien die
Programme.
Helmut S. schrieb:> Benötige ich einen Github-login um einen remote "upgrade-pool" meines> lokalen "pools" zu machen?> Siehe screenshot.
Es funktioniert auch (wieder) ohne login. Entweder hatte ich etwas
falsch gemacht oder jemand hat es gerichtet.
Danke.
Hallo,
hier mal der Entwicklungsstand und Ausblick auf zukünftige Funktionen
von horizon basierend auf den Slides die Lukas auf der FOSDEM gezeigt
hat.
https://fosdem.org/2018/schedule/event/cad_horizon/attachments/slides/2286/export/events/attachments/cad_horizon/slides/2286/presi.pdf
What's working
Workflow from schematic to board
Interactive router
Pool management with GitHub integration
Gerber export
Planes with thermals
Differential Pairs
Buses
3D preview, STEP export
Airwires
Undo/Redo
Copy/Paste
DRC (Design rules and checks)
Coming soon
Pool Convention (WIP)
UI polish
Assembly drawings
Title blocks
BOM export
ERC
Hierachical designs
Better PDF export
Performance
Link auf das Projekt in Github
https://github.com/carrotIndustries/horizon
Helmut
>Das Problem an den Normen ist, dass sie in den 70ern stehen geblieben>sind bzw. darauf aufbauen, das elektronische Schaltungen wie>Schaltschränke aus genormten und austauschbaren Bauteilen bestehen.
Vor kurzem kam mal ein Radiobeitrag zur DIN-Normungs Komission.
Tatsächlich ist das eine private Instituion und theoretisch kann jeder
Privatmann einen Vorschlag zur Normung von Irgendwas einwerfen.
Die meisten größeren Elektronikfirmen haben in ihren PCB-Abteilungen
Leute, die nichts anders machen als Bauteile anlegen.
Ich halte das für eine völlige Blindleistung. Das Ideal wäre, man
bekommt die Designdaten fertig vom Hersteller inclusive der 3D-Daten und
keiner muss in irgendwelchen CAD-Programmen Bauteile neu anlegen. Ginge
alles, wenn es eine einheitlich Norm für das Datenformat gäbe.
Hallo Chris.
chris schrieb:> Ich halte das für eine völlige Blindleistung. Das Ideal wäre, man> bekommt die Designdaten fertig vom Hersteller inclusive der 3D-Daten und> keiner muss in irgendwelchen CAD-Programmen Bauteile neu anlegen.
Das würde so auch nur in 80% aller Fälle funktionieren. Weil viele eben
halt eine eigene Interpretation vom idealen Footprint haben.
In einer Firma, wo ich einmal gearbeitet habe, wurden z.B. die Bohrungen
aller THT Bauteile gegenüber der Originalbibliothek des Layoutprogrammes
vergrößert.
In einer anderen Firma wurden für bestimmte Anschlüsse extragrosse Pads
verwendet....
Aber eine solche Bibliothek könnte zur Konstruktion von angepassten
Varianten verwendet werden.
Mal abgesehen davon, das Tom Hausherr vorschlägt, für unterschiedlich
dichte Layouts unterschiedliche Footprints für das gleiche Bauteil zu
verwenden. Möglichst grob für robustes Design, wenn der Platz langt,
aber feiner werdent, wenn der zur Verfügung stehende Platz kleiner wird.
http://www.innofour.com/3783/news/literature/pcb-design-perfection-starts-in-the-cad-library/pcb-design-perfection-starts-in-the-cad-library-part-1
Teil 1. Teil 2 und folgende gibt es hier:
https://blogs.mentor.com/tom-hausherr/blog/2010/09/22/pcb-design-perfection-starts-in-the-cad-library-part-2/> Ginge> alles, wenn es eine einheitlich Norm für das Datenformat gäbe.
Was hälst Du von Snapeda oder dem Digikey Ansatz?
https://www.snapeda.com/https://www.digikey.de/de/news/press-releases/2017/aug/digi-key-adds-kicad-pcb-model-download
Eine einheitliche Norm müsste offen sein, und gut verbreitet.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
So, heute bin ich mal bleeding-edge. Ich wollte horizon auf xubuntu
18.04 beta 1 compilieren. Es kommt die Fehlermedlung "GLM_GTX_transform
is an experimental extension". Gut ein, #define GLM_ENABLE_EXPERIMENTAL
fixed das Problem, wollte das nur mal erwähnen.
In file included from /usr/include/glm/gtx/rotate_vector.hpp:18:0,
from src/canvas3d/canvas3d.cpp:14:
/usr/include/glm/gtx/transform.hpp:23:3: error: #error "GLM:
GLM_GTX_transform is an experimental extension and may change in the
future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you
really want to use it."
# error "GLM: GLM_GTX_transform is an experimental extension and may
change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before
including it, if you really want to use it."
^~~~~
In file included from src/canvas3d/canvas3d.cpp:14:0:
/usr/include/glm/gtx/rotate_vector.hpp:21:3: error: #error "GLM:
GLM_GTX_rotate_vector is an experimental extension and may change in the
future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you
really want to use it."
# error "GLM: GLM_GTX_rotate_vector is an experimental extension and
may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before
including it, if you really want to use it."
^~~~~
Für LINUX:
Unter folgendem Link findet ihr ein Flatpak manifest um Horizon als
Flatpak Paket zu installieren. Im Moment wird im Manifest auf mein
Repository gezeigt, da der Pull request noch offen ist.
Um das Flatpak manifest auszuführen, müsst ihr vorher flatpak und
flatpak-builder installieren.
Sobald ihr diese installiert habt, müsst ihr aus meinem Repo
(https://github.com/Murmele/horizon/tree/flatpak) die Datei
"net.carrotIndustries.horizon.json" aus dem Pfad
ressources/linux/Flatpak herunterladen. Das Paket könnt ihr dann mit den
folgenden 3 Befehlen auf eurem Rechner installieren.
flatpak-builder --repo=meinRepo --force-clean Horizon
net.carrotIndustries.horizon.json
flatpak remote-add meinRepo meinRepo --no-gpg-verify
flatpak install meinRepo net.carrotIndustries.horizon
"meinRepo" ist dabei ein beliebig gewählter Name für ein Repository
Ich hoffe ihr könnt es damit einfach installieren :)
Murmele schrieb:> Sobald ihr diese installiert habt, müsst ihr aus meinem Repo> (https://github.com/Murmele/horizon/tree/flatpak) die Datei> "net.carrotIndustries.horizon.json" aus dem Pfad> ressources/linux/Flatpak herunterladen
Sorry das ist falsch, ladet den Ganzen Ordner Flatpak runter, da einige
Module übersichtshalber in eigene Dateien ausgelagert wurden, welche im
Ordner Flatpak/modules zu finden sind
Hier findet ihr das erstellte Flatpak Paket, damit ihr es nicht lange
kompilieren müsst:
https://www.dropbox.com/s/r4vpml656xio931/HorizonFlatpak.zip?dl=0
Entpackt die Datei und betretet den Ordner. Wenn ihr diese beiden
Befehle ausführt, dann wird das Paket installiert.
flatpak remote-add meinRepo2 meinRepo2 --no-gpg-verify
flatpak install meinRepo2 net.carrotIndustries.horizon
Zum deinstallieren:
flatpak uninstall net.carrotIndustries.horizon
flatpak remote-delete meinRepo2
Hallo Lukas,
Ich habe mir gerade die neueste Windows-Version von horizon
heruntergeladen.
horizon-2018-04-02-1257.zip
Der Pool-mamager horizon-pool-mgr.exe läuft nicht mehr wegen fehlender
DLL libbrotildec.dll.
Kannst du das beheben?
Gruß
Helmut
Helmut S. schrieb:> Der Pool-mamager horizon-pool-mgr.exe läuft nicht mehr wegen fehlender> DLL libbrotildec.dll.
Bin zwar nicht Lukas, aber brotli ist glaub ich eine Bibliothek mit
Kompressionsalgorithmen von Google.
Vlt ein Anhaltspunkt, wie du das nachinstallieren könntest.
ich würde auch mal gerne versuchen die Software zu übersetzen.
Allerdings würd ich mich da lieber auf das CMake Build System stürzen.
Daher die Frage wie bekomme ich denn diesen Pull Request
https://github.com/carrotIndustries/horizon/pull/111
auf meinen Rechner ?
Die Frage ist auch ob Lukas K. auch auf CMake umschwenkt ?
Da muss ich W.S. voll zustimmen, die Basics müssen laufen, dann kommen
die Spielsachen dran!
Und ich sehne gerade nur Spielkram, dabei hatte ich mich so auf das
Program gefreut.
Ich muss noch ergänzen das die meisten User unfähig sind den Code zu
übersetzen. Ich selber kann das auch nur in einer VM machen, weil nur da
alle die benötigten Tools drauf sind.
Da wäre es recht hilfreich wenn es gelegentlich eine Installation geben
würde.
VG, Klaus
Super, wenn du eine Installation hast, dann stell die doch mal zur
Verfügung. Da würden sich bestimmt viele freuen. Ein Debian-Paket gibt
es übrigens seit kurzem in Debian sid.
Windows! Und das ist jetzt auch schon älter.
Aber eignetlich ist es doch nicht Sinn und Zweck der User es bereit
zustellen. Das Programm will ja weiter kommen und da ist es immer gut
Testversion raus zugeben.
Es ist zwar nicht SOOOO kompliziert aber es war auch schon für mich eine
nervige Sache alles auf den Rechner zubekommen. Es macht halt keinen
Spass zig Pakete zuladen nur um entlich mal den Compiler anwerfen
zukönnen.
Ich stehe immer auf ein Repro laden und Compiler starten, alles andere
ist nur nervig.
Besser ist nur einen Installer zu laden und zur Sicherheit zugriff auf
den Code zu haben, ändern kann ich da sowieso nichts.
Na super W.S. hatte auf der 1. Seite unten seinen Kommentar abgegeben
und ich wurde mal wieder nicht ans richtige Ende geleitet.
Aber sein Kommentar stimmt auch noch Heute!
Hallo Klaus.
Klaus schrieb:> Da muss ich W.S. voll zustimmen, die Basics müssen laufen, dann kommen> die Spielsachen dran!
Gerade W.S. ist dabei aber ein Problem. Wenn irgendein Tool nur die
grundlegenden Funktionen bereitstellt, bemängelt er mangelnde
Userfreundlichkeit. ;O)
> Und ich sehne gerade nur Spielkram, dabei hatte ich mich so auf das> Program gefreut.
Das nächste Problem: Für den einen ist dieses wichtig und jenes
Spielkram.
Und für den Nächsten, der vorbeikommt, ist es genau umgekehrt. ;O)
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Das mit "Artifacts" und der Zip-Datei hatte ich übersehen.
Mein letztes eigenes Build ist jetzt auch gut 3 Monate alt, werde heute
gleich mal die neueste Version testen.
Den Download haben die aber gut verseckt, ich wollte schon hier mich
beschwerden.
Sub-Sub schrieb:> Tatsächlich würde ich nur dann versuchen die SW zu bazuen wenn es auf> CMake bassiert.
Dann fahr mal ganz schnell Deinen Rechner runter. 95% der Software da
drauf sind ohne cmake gebaut.
Bernd K. schrieb:> Dann fahr mal ganz schnell Deinen Rechner runter. 95% der Software da> drauf sind ohne cmake gebaut.
Tatsächlich ? ich hab einen windows Rechner und da bau ich sonst gar nix
selber. aber bei dem Horizon würde mich das schon interessieren
Sub-Sub schrieb:> Bernd K. schrieb:>> Dann fahr mal ganz schnell Deinen Rechner runter. 95% der Software da>> drauf sind ohne cmake gebaut.>> Tatsächlich ? ich hab einen windows Rechner und da bau ich sonst gar nix> selber. aber bei dem Horizon würde mich das schon interessieren
Mit der Anleitung von der Webseite kann sogar jeder "Nicht-Softwerker"
erfolgreich kompilieren. Was will man mehr.
Zweig schrieb:> Das ganze in Clion einbinden. Ich hab da eine Lizenz dafür.
CLion kann nicht mit Projekten zurechtkommen die ihr eigenes Buildsystem
mitbringen? Das mag ich kaum glauben, ehrlich jetzt. Immerhin kostet das
Ding Geld und soll angeblich ziemlich gut sein. Ein beliebiges
existierendes Build-System benutzen zu können halte ich im Jahr 2018 für
Stand der Technik bei einer C oder C++ IDE.
tester schrieb:> So, heute bin ich mal bleeding-edge. Ich wollte horizon auf xubuntu> 18.04 beta 1 compilieren. Es kommt die Fehlermedlung "GLM_GTX_transform> is an experimental extension". Gut ein, #define GLM_ENABLE_EXPERIMENTAL> fixed das Problem, wollte das nur mal erwähnen.
Bin ich eigentlich der einzige, der dieses Problem hat? Ich wollte
gerade eben (mal wieder) einen aktuellen build machen und habe dazu
meine Änderung gelöscht (git stash), da canvas3d.cpp aktualisiert werden
sollte.
Anscheinend ist die "Unverträglichkeit" mit Ubuntu 18.04 beta immer noch
drin.
Ich habe jetzt im Makefile bei den DEFINES ein
"-DGLM_ENABLE_EXPERIMENTAL" ergänzt.
Habe ein ähnlichs Problem, allerdings mit Debian. Wird es da langsam mal
fertige executables geben? Dann sonst müsste Ich dem beipflichten:
Klaus schrieb:> Ich muss noch ergänzen das die meisten User unfähig sind den Code zu> übersetzen. Ich selber kann das auch nur in einer VM machen, weil nur da> alle die benötigten Tools drauf sind.
Bernd K. schrieb:> Zweig schrieb:>> Das ganze in Clion einbinden. Ich hab da eine Lizenz dafür.>> CLion kann nicht mit Projekten zurechtkommen die ihr eigenes Buildsystem> mitbringen? Das mag ich kaum glauben, ehrlich jetzt. Immerhin kostet das> Ding Geld und soll angeblich ziemlich gut sein. Ein beliebiges> existierendes Build-System benutzen zu können halte ich im Jahr 2018 für> Stand der Technik bei einer C oder C++ IDE.
Daran sieht man das du in dem Bereich keine Ahnung hast. Clion kann nur
mir CMake Dateien. Eine moderne Entwicklung würde ich ausschließlich mit
cmake durchführen. Der Grund ist noch nicht einmal Clion sondern eher
die Features von cmake. cmake ist ein Build „Generator“ mit dem sich
make und Projekt Dateien für verschiedene Entwicklungs Umgebungen
generieren lassen. Sogar Microsoft Visual Studio wird unterstützt. Und
es kann auch alle Abhängigkeiten zu anderen Paketen auflösen.
Zweig schrieb:> Eine moderne Entwicklung würde ich ausschließlich mit cmake durchführen.
Tja, als nächstes kommt dann die SCons-Fraktion und stellt fest, dass
sie eine „moderne Entwicklung“ ausschließlich mit SCons durchführen
würde …
Leute, das ist bislang einfach mal Lukas' Entscheidung, und eine
Diskussion über eine Änderung des Buildsystems in diesem Thread ist
müßig.
Jörg W. schrieb:> Leute, das ist bislang einfach mal Lukas' Entscheidung, und eine> Diskussion über eine Änderung des Buildsystems in diesem Thread ist> müßig.
Da hast du völlig Recht!!!
Mir ist halt durch den Kopf gemurmelt ein Import für Eagle Dateien
hinzuzufügen..., mal sehen ...
Markus W. schrieb:> Habe ein ähnlichs Problem, allerdings mit Debian. Wird es da langsam mal> fertige executables geben?
Jemand der Zeit hat könnte ja mal den Buildvorgang dockerisieren, am
besten so daß alles statisch gelinkt wird.
Zweig schrieb:> Daran sieht man das du in dem Bereich keine Ahnung hast. Clion kann nur> mir CMake Dateien.
Was hat das mit "Bereich keine Ahnung" zu tun wenn irgendeine
kommerzielle IDE ein grundessentielles Feature nicht gebacken bekommt,
dann kommt sie halt auch weiterhin nicht in die engere Wahl solange sie
nicht mit 99% der existierenden Projekte zurecht kommt, so einfach ist
das.
tester schrieb:> Ich habe jetzt im Makefile bei den DEFINES ein -DGLM_ENABLE_EXPERIMENTAL"
ergänzt.
Das liegt daran, dass Ubuntu 18.04 (ob beta oder final ist egal) glm
0.9.9 verwendet, und dort ist das feature "GLM_GTX_transform" halt nur
via GLM_ENABLE_EXPERIMENTAL verfügbar. Bleibt die Frage an Lukas, warum
man das nicht ins Makefile einbauen kann?
Hallo Lukas,
der horizon-pool-mgr.exe bringt eine Fehlermeldung, weil in der neuesten
Version für Windows mindestens eine DLL fehlt.
Siehe Anhang.
Gruß
Helmut
Ich habe mir heute das Repository „horizon.git“ geholt und mit make
kompiliert. Nach dem Aufruf des Linkers gab es keine weiteren Meldungen
von make. Es sind einige ausführbare Dateien entstanden, die sich auch
ausführen lassen.
Alle starten. Alle ausser horizon-pool-mgr zeigen keine GUI bevor sie
abstürzen. horizon-pool-mgr kann das pool-Repository herunterladen und
eine Datenbank anlegen, und stürtzt dabei erst ab. (Mit der Option
--help funktionieren alle Programme wie man es erwartet oder tun gar
nichts.)
Hier die Ausgabe in der Konsole:
(horizon-pool-mgr:18103): dbind-WARNING **: 04:52:45.566: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
4
SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name, GROUP_CONCAT(tags.tag, ' '), parts.filename, parts.description, FROM parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages on packages.uuid. parts.package WHERE parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid ORDER BY parts.MPN COLLATE naturalCompare ASC
5
SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name, GROUP_CONCAT(tags.tag, ' '), parts.filename, parts.description, FROM parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages on packages.uuid. parts.package WHERE parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid ORDER BY parts.MPN COLLATE naturalCompare ASC
6
gl error 1282 in src/canvas/canvas_gl.cpp: 138
7
Aborted (core dumped)
8
tuxpilot@elf:~/horizon/horizon$ ./horizon-imp -y
9
terminate called after throwing an instance of 'std::out_of_range'
10
what(): vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)
terminate called after throwing an instance of 'std::runtime_error'
15
what(): unable to open database file
16
Aborted (core dumped)
Ich habe Lubuntu 18.04 LTS (alternate, 64 Bit) in einer VirtualBox. Da
habe ich mit aptitude die Pakete installiert, die in
https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Linux
aufgezählt sind, das Repository geklont, und make aufgerufen.
g++ -v schreibt: gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)
Kompiliert habe ich mit folgender angepasster Zeile im Makefile, da
(zumindest in Ubuntu 18.04) einige header-Dateien in Unterverzeichnissen
von /usr/include landen, wo der Compiler sie nicht findet.
Mache ich etwas falsch, oder liegt es an Ubuntu 18.04? Ich kann es ja
noch mal mit 17.10 versuchen... (Ich habe es auch hier auf dem
Hostsystem KDE Neon 5:12.5 versucht, aber da fehlt GTK, wegen Ubuntu
16.04 LTS.)
Schade, ich hatte gehofft, endlich einen Platinenlayouter gefunden zu
haben, der mir gefällt...
Von den Binaries, die aus dem Build rausfallen sind nur horizon-pool-mgr
und horizon-prj-mgr unmittelbar verwendbar. Der eigentliche Fehler ist
der hier:
> gl error 1282 in src/canvas/canvas_gl.cpp: 138
Was für eine GPU hast du?
Um den Fehler weiter einzugrenzen, füge mal GL_CHECK_ERROR (wie in Zeile
138) nach jedem Funktionsaufruf in
https://github.com/carrotIndustries/horizon/blob/master/src/canvas/canvas_gl.cpp#L99
ein.
Ich habe eine Radeon HD 6850, was das für die virtuelle Maschine
bedeutet, weiß ich nicht.
Gast:
tuxpilot@elf:~$ glxinfo | grep "OpenGL version"
OpenGL version string: 3.0 Mesa 18.0.0-rc5
Host:
$ glxinfo | grep "OpenGL version"
OpenGL version string: 3.0 Mesa 17.2.8
VirtualBox Graphical User Interface Version 5.1.34_Ubuntu r121010
Ich habe GL_CHECK_ERRORs in canvas_gl.cpp eingefügt. Der Fehler tritt
nun in Zeile 101 (ohne GL_CHECK_ERROR-Zeilen) auf:
Wenn ich die Zeile auskommentiere, erscheint eine Liste mit Bauteilen
und eine grafische Fehlermeldung: Could not set up framebuffer, in der
Konsole steht gl error in Zeile 176. Wenn ich die Zeile auch
auskommentiere, ist es Zeile 178–180. (So lößt man auch keine Probleme,
habe es also verdient.)
Hallo tuxpilot,
falls du auf dem gleichen PC auch ein WIN7,8,10 installiert hast, kannst
du ein fertig kompiliertes horizon herunterladen um mal zu testen, ob es
an der Grafikkarte liegt.
https://ci.appveyor.com/project/carrotIndustries/horizon/build/artifacts
Diese Version ist immer top-aktuell da die automatisch bei jedem
"commit" kompiliert wurde.
Helmut S. schrieb:> falls du auf dem gleichen PC auch ein WIN7,8,10 installiert hast […]
Nö, Tuxpilot hat hier kein Windoof.
Ich habe versucht, die .exes aus dem .zip mit Wine auszuführen (auch im
virtuellen Lubuntu 18.04 LTS), die Backtraces habe ich sinnloserweise
angehängt.
Aber ich habe eine Festplatte mit Windows 7 32bit gefunden und in meinen
Computer geschoben.
<blabla>
Ich habe GRUB dazu bewegt, dieses Windows zu starten. Windows war fest
davon überzeugt, es müsste für meinen MCP2200 ein paar Treiber suchen,
und hat erst nach einer Minute aufgegeben. Für die anderen MCP2200 ging
das ganze jeweils von vorne los... Schließlich konnte ich mit einem
vorhandenem 7zip das .zip entpacken, was 25 Minuten gedauert hat.
(Virtuelles Lubuntu: nur 2 Minuten...) Naja, die .exes wurden erstmal in
Inkscape geöffnet. Hä!?
</blabla>
Schließlich hat Windows mir verraten, dass es nur 32bit ist, war also
alles sinnlos. :(
Ich habe einen Freund mit einer Radeon HD 6950 gefragt, ob er das fertig
kompilierte Horizon testen kann. Wenn es an der Grafikkarte liegt,
müsste er ja das gleiche Problem haben?
Lukas K. schrieb:> Die in VMs emulierten GPUs tun sich mit OpenGL 3 bisweilen schwer, hast> du es mal nativ probiert?>> Die Radeon HD 6950 ist mehr als neu genug.
Da bin ich gespannt, weil ein Rechner MAC(Bootcamp WIN10) mit HD5800
geht bei mir nicht.
"AMDs im Oktober vorgestellte Barts-GPU (Radeon HD 6800) war keine echte
Neuentwicklung, sondern im Grunde genommen ein Hybrid verschiedener
Radeon-HD-5000-Rechenkerne inklusive einiger kleineren Verbesserungen
..."
Seite 3 von
https://www.computerbase.de/2010-12/test-amd-radeon-hd-6970-und-hd-6950/3/
Win7/64 installation mit horizon-2018-05-20-1700.zip
20.Mai 2018
***********
c:\horizon\horizon mit exe, dll, ...
c:\horizon\horizon-pool-master mit pool-master: pool.json ...
c:\horizon\horizon-test-project-master mit test-project: pic32-eth.hprj
...
horizon-pool-mgr.exe funktioniert
horizon-project-manager funktioniert
add pool funktioniert
add project funktioniert
schematic:
this application has requested the runtime to terminate it in an unusual
way - win7: imp.exe funktioniert nicht mehr - terminate
board:
this application has requested the runtime to terminate it in an unusual
way - win7: imp.exe funktioniert nicht mehr - terminate
part browser.
this application has requested the runtime to terminate it in an unusual
way - win7: prj-mgr funktioniert nicht mehr - terminate
pool chache :
funktioniert
Kann leider keine spezifischeren Fehlermeldungen liefern.
Alexandra
Hallo Alexandra,
ich habe die horizon-2018-05-20-1700.zip auf zwei PCs mit WIN10
getestet. Es funktioniert genauso wie auch die früheren Versionen.
Meine Verzeichnisstruktür sieht so aus:
C:\horizon
In dem verzeichnis packe ich immer den zip-File aus. Danach habe ich
C:\horizon\horizon
In dem Verzeichnis habe ich auch meinen Pool
C:\horizon\pool1
und das Test-Projekt(Schaltplan, Layout) von der Github-Siete.
C:\horizon\hotizon-test-project-master
Man startet nur 2 Programme - horizon-pool-mgr.exe und/oder
horizon-prj-mgr.exe. Alle anderen exe siind nicht für den Anwender
gedacht.
1.
Mit dem File-Explorer in diesen Ordner der exe-Dateinen wechseln.
C:\horizon\horizon
horizon-pool-mgr.exe starten (Doppelklick).
Im pool-mamanger dann einen Pool auswählen.
Wenn man den hat, dann gibt es oben im Menu ein Feld "Remote". Da
draufklicken. dann Upgrade pool. Dann Merge.
Den horizon pool manager schließen.
2. Das Projekt öffnen.
horizon-prj-mgr.exe Doppelklick
Ganz links oben auf das schwarze "horizon icon" klicken -> Preferences
und mit "Add pool" einen pool auswählen, falls da noch keiner gesetzt
ist.
Zurück ins Hauptmenu.
"Open" und das Projekt anwählen z. B. das heruntergeladen Project
pic32-eth.hprj
Jetzt hat man es fast geschafft.
Es gibt jetzt vier buttons.
"Top Schematic" "Board" "Part browser" "Pool Cache"
"Pool Cache" wählen falls man updaten will (mach ich meistens).
Falls es etwas neues für das Projekt gibt, die neuen Teile anklicken und
dann "Update from pool".
Pool Cache schließen.
Jetzt auf "Top Schematic" oder "Board "klichen zum Öffnen des
Schaltplanes oder Layouts.
Nachtrag:
Bei weiteren updates des Programms entpacke ich einfach den zip-file in
C:\horizon und lasse das Unterverzeichnis horizon überschreiben.
C:\horizon\horizon
Mittlerweile dauert es mehr als 4 Minuten um diesen Thread zu oeffnen -
bei einer 3Mbit-Leitung.
Macht fuer mich keinen Sinn mehr mitzulesen oder etwas beizutragen.
@Mitleserin
> i3-2350M
Ich vermute, dass da die integrierte Grafik zu alt ist.
Versuch es mal mit einem neueren PC.
Ich schreibe gerade auf einem i5-4250U Laptop mit integrierter
Grafikeinheit. Darauf läuft horizon problemlos.
Gruß
Helmut
Tuxpilot schrieb:> Ich habe mir heute das Repository „horizon.git“ geholt und mit make> kompiliert. […] horizon-pool-mgr […] stürtzt […] ab.> […]> Ich habe Lubuntu 18.04 LTS (alternate, 64 Bit) in einer VirtualBox.> […]> Schade, […]Lukas K. schrieb:> Der eigentliche Fehler ist der hier:>>> gl error 1282 in src/canvas/canvas_gl.cpp: 138>> Was für eine GPU hast du?Lukas K. schrieb:> Die in VMs emulierten GPUs tun sich mit OpenGL 3 bisweilen schwer,> hast> du es mal nativ probiert?>> Die Radeon HD 6950 ist mehr als neu genug.
(Ist eine 6850)
So, ich habe Lubuntu 18.04 LTS nativ installiert. Da funktioniert make
direkt vollständig, und die entstehenden Programme scheinen ohne
Abstürze zu funktionieren.
Leider ist die gesamte GUI sehr buggy, d. h. fast alle Widgets sind
größtenteils ausserhalb der Fensterränder, und kommen auch nicht hervor,
wenn man das Fenster größer macht.
Später versuche ich es nochmal mit Lubuntu 17.10.
Tuxpilot schrieb:> Leider ist die gesamte GUI sehr buggy, d. h. fast alle Widgets sind> größtenteils ausserhalb der Fensterränder, und kommen auch nicht hervor,> wenn man das Fenster größer macht.
Kannst du mal einen Screenshot davon machen? Hört sich doch sehr nach
Gtk/Grafiktreiber-Bug an. Installiere mal gtk3-examples und mach' aus
der gtk3-demo die OpenGL-Demo auf. Sieht die auch so kaputt aus?
> Leider ist die gesamte GUI sehr buggy, d. h. fast alle Widgets sind
größtenteils ausserhalb der Fensterränder, und kommen auch nicht hervor,
wenn man das Fenster größer macht.
Normal ist das nicht.
Das wird dann an den Grafiktreibern bzw. der Grafikkarte liegen.
Die OpenGL-Demo sieht prima aus. (In VirtualBox ist alles ausser der
Grafikfläche schwarz, funktioniert aber trotzdem. (Der Rest dieses
Beitrags bezieht sich auf nativ installiert.))
Die anderen Demos, die ich angeguckt habe, sehen auch gut aus,
insbesondere die mit den Listen oder Panes. In anderen Anwendungen habe
ich auch nichts bemerkt.
In den Pool-Ansichten fehlt immer mindestens der rechte oder linke Rand
von den Anzeigen, und die Knöpfe oben drüber fehlen irgendwie auch,
obwohl da noch Platz wäre. Als ob die Panes ausserhalb des Fensters
beginnen würden...
Die übrigen Fenster (Schaltplan-Editor und so) funktionieren jetzt
überwiegend, nur im Tastenkürzel-Menü habe ich gesehen, dass das letzte
Element halb abgeschnitten ist.
Übrigens kann man die Spalte Pads in der Breite verändern, die anderen
aber nicht. Glaube nicht, dass das so soll.
@tuxpilot
Ich vermute dass du das Fenster zu klein gemacht hast. Zieh doch mal das
Fenster breiter. Im Anhang die Darstellung auf einem Monitor mit
1920x1080, WIN10. Da muss ich die Fenster schon fast auf die komplette
Bildschirmbreite ziehen damit ich alles sehe.
Toxic schrieb:> Mittlerweile dauert es mehr als 4 Minuten um diesen Thread zu oeffnen -> bei einer 3Mbit-Leitung.
Melde dich als Nutzer im Forum an, dann kannst du eine Seitenaufteilung
einschalten. Der Thread hat dann inzwischen 4 Seiten.
Jörg W. schrieb:> Toxic schrieb:>> Mittlerweile dauert es mehr als 4 Minuten um diesen Thread zu oeffnen ->> bei einer 3Mbit-Leitung.>> Melde dich als Nutzer im Forum an, dann kannst du eine Seitenaufteilung> einschalten. Der Thread hat dann inzwischen 4 Seiten.
Hallo Joerg,
ich habe einmal auf "alles" geklickt. Jetzt sehe ich aber die Auswahl
"1, 2, alles" nicht mehr. Wie bekommt man die Auswahl zurück?
(Ich habe mit 50MBit/s Zugang kein wirkliches Problem mit der Auswahl
"alles", aber mich würde trotzdem interessieren wie man die Auswahl 1,2
zurück bekommt.)
Helmut S. schrieb:> ich habe einmal auf "alles" geklickt. Jetzt sehe ich aber die Auswahl> "1, 2, alles" nicht mehr. Wie bekommt man die Auswahl zurück?
Über der Box "Antwort schreiben" gibt es einen Link "Seitenaufteilung
einschalten".
Jörg W. schrieb:> Helmut S. schrieb:>> ich habe einmal auf "alles" geklickt. Jetzt sehe ich aber die Auswahl>> "1, 2, alles" nicht mehr. Wie bekommt man die Auswahl zurück?>> Über der Box "Antwort schreiben" gibt es einen Link "Seitenaufteilung> einschalten".
Danke,
hat geklappt.
Hallo Toxic.
Toxic schrieb:> Mittlerweile dauert es mehr als 4 Minuten um diesen Thread zu oeffnen -> bei einer 3Mbit-Leitung.
Dann hast Du aktuell halt keine 3Mbit-Leitung. Mit einer 600k Leitung
dauert es wenige Sekunden.
> Macht fuer mich keinen Sinn mehr mitzulesen oder etwas beizutragen.
Dann solltest Du mal untersuchen, was auf Deiner Leitung abgeht.
3Mbit-Leitung ist irre viel, falls sie funktioniert.
Wenn hier abends die Nachbarn saugen, sackt bei mir die Leitung auch auf
teilweise unter 10k ab. Allerdings.....der Mittelwert über ca. 15min
bleibt immer in etwa gleich. D.h. Dateien ziehen geht so lala, aber ein
Audiostream reisst ab.
Anmeckern kann ich den Provider aber dafür nicht. Das steht so im
indirekt im kleingedruckten des Vertrags. Vermutlich hast Du ähnliches
im Kleingedruckten.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
@Lukas K
Danke,
die Fehlermeldung lautet in allen Fällen:
gl error 1281 in src/canvas/canvas:gl.cpp:120
program will abort
114 void CanvasGL::on_realize()
. {
. Gtk::GLArea::on_realize();
. make_current();
. GL_CHECK_ERROR
. grid.realize();
120 GL_CHECK_ERROR ---------> error
Intel Driver Update direkt von Intel für i3-2350M
*************************************************
Der Laufzeitfehler tritt nicht mehr auf.
Horizon - Schematic startet mit einer Oberfläche, nur Text, ein leerer
Bereich mit x/y Position des Cursors.
Auf einem zweiten Notebook(Asusi7): dasselbe Resultat
MitLeserin schrieb:> gl error 1281 in src/canvas/canvas:gl.cpp:120
Seltsam, dass es da hinfällt, in der grid.realize() passiert eigentlich
nichts besonderes.
MitLeserin schrieb:> Horizon - Schematic startet mit einer Oberfläche, nur Text, ein leerer> Bereich mit x/y Position des Cursors.
Hm, auch nicht wirklich besser.
Installier' dir mal MSYS2 (vgl.
https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Windows)
und starte die horizon-prj-mgr.exe aus der mingw64-shell. Da sollte dann
irgendwas in der Konsole stehen, das erklärt weshalb es hingefallen ist.
Tuxpilot schrieb:> So, ich habe Lubuntu 18.04 LTS nativ installiert. […]> Später versuche ich es nochmal mit Lubuntu 17.10.
Auf Lubuntu 17.10: kein Unterschied feststellbar. gtk3-demo funktioniert
auch da einwandfrei.
Helmut S. schrieb:> @tuxpilot>> Ich vermute dass du das Fenster zu klein gemacht hast. Zieh doch mal das> Fenster breiter. Im Anhang die Darstellung auf einem Monitor mit> 1920x1080, WIN10. Da muss ich die Fenster schon fast auf die komplette> Bildschirmbreite ziehen damit ich alles sehe.
Daran liegt es wohl nicht. Ich habe die Fenster auf 16.000 Pixel Breite
gezogen, aber die Widgets waren immer noch halb unter dem Rand. Dann ist
X abgestürtzt, was zu erwarten war.
@Lukas
ich habe da mal mit der Anleitung von Helmut S
Beitrag "Re: Neues, halbfertiges Elektronik-CAD-Programm"
etwas versucht :
horizon startet und die Konsole liefert folgende Meldung:
Alexandra@Asus-i7 MINGW64 /home/horizon_/horizon
$ ./horizon-prj-mgr.exe
SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name,
tags_view.tags, parts.filename, parts.description FROM parts LEFT JOIN
tags_vi ew ON tags_view.uuid = parts.uuid LEFT JOIN packages ON
packages.uuid = parts.package WHERE parts.MPN LIKE ? AND
parts.manufacturer LIKE ? AND (parts.entity=? or ?) ORDER BY
parts.MPN COLLATE naturalCompare ASC
col 2
create proc
spawn C:\msys64\home\horizon_\horizon\horizon-imp -c
C:\horizon\horizon\horizon-test-project-master\top_sch.json
C:\horizon\horizon\horizon-test-project-master\top_block.json
imp rx false
(horizon-imp.exe:6460): Gtk-WARNING **: 09:06:32.832: fb setup not
supported
(horizon-imp.exe:6460): Gtk-WARNING **: 09:06:35.047: fb setup not
supported
******************
Gtk-WARNING gibt es jede Menge und die Zahl korreliert irgendwie mit
den Koordinaten des Mauszeigers.
MitLeserin schrieb:> (horizon-imp.exe:6460): Gtk-WARNING **: 09:06:35.047: fb setup not> supported
Vielen Dank für's Debuggen bis hier hin schonmal, viele andere hätten
schon (verständlicherweise) entnervt aufgegeben und sich anderen Dingen
zugewandt.
So auf die Schnelle fallen mir zwei Dinge ein, an denen das liegen
könnte:
- horizon fasst Buffer falsch an und Gtk ist dann hinterher unglücklich
- Bug in Gtk (wär' nich der erste im Bezug auf OpenGL und Windows)
So als Vorwarnung: weiteres Debuggen muss nicht unbedingt zur Lösung des
Problems führen, sei mir' also nicht böse, wenn's dann immer noch nicht
funktioniert.
Wenn du jetzt eh schon Msys2 hast, starte mal die gtk3-demo und darin
die OpenGL-demo. Funktioniert die?
GTK3-demo.exe funktioniert,
verschiedene Demos funktionieren normal.
OpenGL Area erzeugt aber sofort eine
(gtk3-demo.exe:4500): Gtk-WARNING **: 13:25:13.752: fb setup not
supported
Warnung
und bei jedem move der Slider eine Vielzahl weiterer identischer
Warnungen.
Hallo Zusammen,
wo finde ich in der Windows Version den Part Editor bzw. wie muss ich
vorgehen, wenn ich einen neues Bauteil definieren will.
Gruß
Frank
MitLeserin schrieb:> (gtk3-demo.exe:4500): Gtk-WARNING **: 13:25:13.752: fb setup not> supported>> Warnung
Ok, dann ist wohl das Problem bei Gtk. Leider sagt einem Gtk nicht, wo
nun das Problem mit dem Framebuffer ist, daher hier im Anhang ein
gepatchtes Gtk, das in der Fehlermeldung mehr anzeigt. Mit der dll
ersetzt du dann die gleichnamige im Ordner mingw64/bin in deiner
mingw-installation und probierst die OpenGL-Demo nochmal.
MitLeserin schrieb:> und bei jedem move der Slider eine Vielzahl weiterer identischer> Warnungen.
Das kommt daher, dass dieses Stück code bei jedem rendern aufgerufen
wird.
Frank L. schrieb:> wo finde ich in der Windows Version den Part Editor bzw. wie muss ich> vorgehen, wenn ich einen neues Bauteil definieren will.
Den Part Editor startest du aus dem pool manager heraus. Zum Erstellen
von neuen Bauteilen:
https://github.com/carrotIndustries/horizon/wiki/Working-with-the-Pool-Manager-and-Part-Wizard
MitLeserin schrieb:> (gtk3-demo.exe:3264): Gtk-WARNING **: 23:16:46.160: fb setup not> supported, status=36055>> (gtk3-demo.exe:^^^^) ändert nach Beendigung und erneutem Aufruf von> gtk3-demo.exe
Die sich ändernde Nummer ist die Prozess-ID, das passt schon so. Der
Fehlercode ist GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT, irgendwas
hat wohl beim Aufsetzen der Framebuffer nicht funktioniert. Die DLL im
Anhang hat weitere Debug-Ausgabe drin, selbes Vorgehen wie im letzten
post.
Lukas K. schrieb:> Den Part Editor startest du aus dem pool manager heraus. Zum Erstellen> von neuen Bauteilen:> https://github.com/carrotIndustries/horizon/wiki/Working-with-the-Pool-Manager-and-Part-Wizard
Hallo Lukas,
dann habe ich leider einen Fehler entdeckt.
Sobald ich im Pool Manager den Pool auswähle, schließt sich die
Anwendung. Leider weiß ich nicht, wo ich das LOG in der Windows Version
finde.
Vielleicht kannst Du Dir das ja mal ansehen bzw. mir sagen, wo ich das
LOG finde, dann stelle ich es hier ein.
Gruß
Frank
RUN [OpenGL Area] erzeugt in der Konsole
(gtk3-demo.exe:6524): Gtk-WARNING **: 11:54:32.882: fb attach texture=0
buffer=1 error=1282
(gtk3-demo.exe:6524): Gtk-WARNING **: 11:54:32.886: fb setup not
supported, status=36055
- Klick in der Konsole erzeugt 12 weitere identische paarweise Logs,
- Frame mit den drei Slidern erscheint nicht,
- beenden durch beenden der Konsole.
Frank L. schrieb:> Sobald ich im Pool Manager den Pool auswähle, schließt sich die> Anwendung. Leider weiß ich nicht, wo ich das LOG in der Windows Version> finde.
Dann mach' es mal wie MitLeserin und starte es aus der Mingw-shell,
sieht auch nach OpenGL-Problem aus. Was für eine GPU hast du?
MitLeserin schrieb:> (gtk3-demo.exe:6524): Gtk-WARNING **: 11:54:32.882: fb attach texture=0> buffer=1 error=1282
Okay, da fällt also was schon davor hin. Die DLL im Anhang hat noch mehr
Debug-Ausgabe. Was für eine GPU hast du eigentlich genau?
Lukas K. schrieb:> Was für eine GPU hast du eigentlich genau?
Gute Frage, war ich mir eigentlich nicht wirklich bewusst. Bisher je
nach Notebook irgendwie automatisch und hat bis jetzt mit horizon
scheinbar immer alles funktioniert...
Erkenntnis und Stand der Dinge:
******************************
Auf ASUSi7 kann ich für jedes Programm die GPU wählen.
- Intel HD Graphics 4600 : gtk3-demo.exe funktioniert NICHT
- NVIDIA GeForce GTX 850M : gtk3-demo.exe funktioniert
Mit *IntelHD 4600 und libgtk-3-0.dll V3* liefert gtk3-demo.exe zyklische
Fehlermeldungen :
(gtk3-demo.exe:5996): Gtk-WARNING **: 09:26:14.735: fb setup not
supported, status=36055
(gtk3-demo.exe:5996): Gtk-WARNING **: 09:26:14.744: opengl error 1282 at
gtkglarea.c:487
(gtk3-demo.exe:5996): Gtk-WARNING **: 09:26:14.747: opengl error 1282 at
gtkglarea.c:489
(gtk3-demo.exe:5996): Gtk-WARNING **: 09:26:14.750: opengl error 1281 at
gtkglarea.c:547
(gtk3-demo.exe:5996): Gtk-WARNING **: 09:26:14.753: fb setup not
supported, status=36055
(gtk3-demo.exe:5996): Gtk-WARNING **: 09:26:21.773: opengl error 1282 at
gtkglarea.c:487
(gtk3-demo.exe:5996): Gtk-WARNING **: 09:26:21.774: opengl error 1282 at
gtkglarea.c:489
(gtk3-demo.exe:5996): Gtk-WARNING **: 09:26:21.777: opengl error 1281 at
gtkglarea.c:547
...
to be continued ...
Auf den folgeneden Grafikkarten läuft horizon nach meiner Erfahrung.
NVIDIA
GTX560, GTX950, GTX1080
Intel Graphic
HD 5000, HD 530
Auf der GTX260 läuft es nicht richtig. Daraus kann man den Schluss
ziehen, dass es zumindest ab GTX560 und höher funktioniert.
MitLeserin schrieb:> Mit *IntelHD 4600 und libgtk-3-0.dll V3* liefert gtk3-demo.exe zyklische> Fehlermeldungen :
Okay, probier's nochmal mit der DLL im Anhang und achte insb. auf die
Ausgabe direkt nach dem starten der OpenGL-Demo.
Bei mir läuft eine Desktop MSI GEFORCE GTX1060 mit 6GB. Es sind zwei 4K
Monitore angeschlossen.
Die Anwendung lässt sich auch wundervoll bedienen und arbeitet
einwandfrei.
Lediglich der Aufruf des Part Editors aus dem Pool Manager heraus klappt
nicht, da es hier zu einem beendigen der Anwendung kommt.
Der Vorgang ist immer gleich, ich wähle im Pool Manager den Eintrags
aus, der wird Bildschirm kurz weiß und dann beendet sich die Anwendung.
@Lukas
Sorry, mit MingW kenne ich mich nicht aus und ich habe nicht genug Zeit
mich mit den Dingen zu beschäftigen. Von daher muss ich da passen.
Allerdings würde ich die Anwendung gerne intensiver nutzen. Vielleicht
hat ja noch wer anders das gleiche Problem und kann sich damit
beschäftigen.
Besteht eventuell die Möglichkeit, dass Du das Log für die Windows
Version, im Verzeichnis %Appdata%\local\Horizon ablegt? Da befinden sich
ja auch die Konfigurationsdateien.
Gruß
Frank
So,
ich habe ein wenig geforscht.
Jetzt läuft es, bei mir war der OpenGL gar nicht bzw. nicht korrekt
installiert. Nachdem ich den aktuellsten Treiber der Karte installiert
habe, funktioniert es.
Gruß
Frank
Okay, vielleicht ist es ein Problem, dass der Renderbuffer von einer
EXT-Funktion erzeugt, aber von einer nicht-EXT Funktion verwendet wird,
probier's mal mit der DLL im Anhang.
MitLeserin schrieb:
******************************************
> - Klick in der Konsole erzeugt 12 weitere identische paarweise Logs,> - Frame mit den drei Slidern erscheint nicht,> - beenden durch beenden der Konsole.
Das ist ein Fehler von gtk3-demo.exe.
Dieser Fehler ist unabhängig von der ausgewählten GPU: Verschieben des
Programm-Windows von gtk3-demo.exe in einen zweiten Monitor hat den
Effekt, dass die Programm-Windows einzelner Tochter-Programme nicht
erscheinen und die Kontrolle über gtk3-demo.exe verloren geht. ->
Beenden von gtk3-demo.exe mit Ctrl-C in der Konsole.
Betroffen sind vermutlich alle gtk3-demo-Beispiele mit "Grafik",
darunter auch OpenGL Area.
******************************************************
Zurück zum Thema
****************
Alexandra@Asus-i7 MINGW64 /mingw64/bin
$ ./gtk3-demo
// INTEL - libgtk.3.0.dll /V5
//****************************************************************
// startup
//****************************************************************
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:17.892: attach buffers
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:17.892: allocate buffers
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:17.892: attach 0 1
// slider no effect - background visible
//***************************************************************
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:49.224: attach buffers
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:49.224: attach 0 1
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.339: attach buffers
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.339: attach 0 1
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.357: attach buffers
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.357: attach 0 1
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.373: attach buffers
(gtk3-demo.exe:520): Gtk-WARNING **: 10:36:50.373: attach 0 1
...
Das Grafik-Fenster ist durchsichtig, Mausspur im Grafikfenster wird ohne
Einträge in der Konsole dargestellt , Slider hat im Grafikfenster keinen
Effekt, erzeugt aber Einträge in der Konsole.
( die Mausspur wird von PrtScr gelöscht und kann deshalb nicht
dokumentiert werden )
Hallo Zusammen,
ich brauche mal einen Tipp, in welcher Reihenfolge man bei der
Definition eigener Bauteile vorgehen muss.
Mein Ziel, ich möchte verschiede Röhren mit Oktal und Noval Sockel
erstellen.
Um Smash verwenden zu können, möchte ich z.B. bei einer ECC83 die beiden
Systeme und die Heizung jeweils getrennt halten. Andere Röhren mit Noval
Sockel haben unterumständen nur ein System plus Heizung.
Ich würde das Ganze gerne in einem Artikel zusammenfassen und hier
veröffentlichen.
Aber ich finde keinen Einstieg in die Materie :-(
Gruß
Frank
@Frank
https://media.ccc.de/v/gpn18-136-horizon-eda-ein-jahr-spter
Lade dir doch mal den Vortrag herunter. In der ersten Hälfte wird ganz
grob das erstellen von Bauteilen gezeigt. (Lass dich nicht von der
Tonstörung(Hall) im ersten Viertel des Vortrages stören.)
Das angehängte Bild zeigt dei Struktur und die Namensgebung der
Bestandteile eines Bauteils.
Das Programm zum erstellen der Bauteile heißt horizon-pool-mgr.exe
MitLeserin schrieb:> Betroffen sind vermutlich alle gtk3-demo-Beispiele mit "Grafik",> darunter auch OpenGL Area.
Ich bin untröstlich, aber sieht so aus, als geht's hier nicht wirklich
weiter. Im IRC Channel von Gtk meine man, dass das recht sicher ein Bug
im Intel-Treiber ist, der nicht durch hohe Qualität im Bezug auf OpenGL
bekannt sei. So ohne Problemhardware in der Hand debuggt sich's auch
eher mühsam...
Immerhin tut's bei dir ja mit der Nvidia-GPU.
Hallo Lukas,
ich habe mir das auch so gedacht. Wenn ein Programm auf
unterschiedlicher Hardware einerseits prima funktioniert und
andererseits so krasse Fehlermeldungen produziert muss ein Hardware
naher Fehler vorliegen. Ich denke nicht, dass Intel für die älteren
Grafikeinheiten noch BugFixes nachliefern wird.
vom Fehler betroffen:
********************
System: Toshiba Satpro L770-14N : Intel i3-2350M mit Intel HD3000 GPU
System: Asus............N750 IK : Intel i7-4710HQ mit Intel HD4600 GPU
vom Fehler nicht betroffen:
**************************
System HP...............Envi 15 : Intel i7-6500U mit Intel HD520
System HP...............Envi 15 : Intel i7-6500U mit NVIDIA GTX 950M
System Asus.............N750 IK : Intel i7-4710HQ mit NVIDIA GTX 850M
Respekt für horizon!
Alexandra
Markus W. schrieb:> Liegt das an den core-steppings der Prozessoren?
Hallo Markus,
das liegt nicht am CPU-Core sondern an deren GPU und dessen
OpenGL-Treiber. Auch alle älteren Grafikkarten versagen hier.
Helmut
Hallo Lukas,
Fehler: "Plane Update" ignoriert Ausschnitte im Board.
In meinem Beispiel habe ich ein Polygon auf Lage "outline" gezeichnet.
"Plane Update" sollte hier entsprechend der Design-Rule das Kupfer um
0,xmm um den Ausschnitt herum zurückziehen.
Kicad macht es richtig, horizon (noch) nicht. Siehe angehängte Bilder.
Gruß
Helmut
> Helmut S. schrieb:>> Kicad macht es richtig, horizon (noch) nicht. Siehe angehängte Bilder.> Horizon hatte es mal richtig gemacht, ist wohl in> https://github.com/carrotIndustries/horizon/commit...> kaputt gegangen... Jetzt geht's wieder.
Hallo Lukas,
danke für die schnelle Korrektur.
Habe es gerade selbst getestet. Es funktioniert jetzt wie erwartet.
Für alle die sich wundern, wo seit dem letzten Build Pool- und
Projektmanager sind: Die wurden beide in "horizon-eda" vereint, sodass
es jetzt nur ein Programm zum Anklicken gibt.
Die Vereinigung mach Sinn. Aber: Es gibt Probleme:
(horizon-eda:5961): glibmm-CRITICAL **: 20:36:14.899:
unhandled exception (type Glib::Error) in signal handler:
domain: g-resource-error-quark
code : 0
what : Die Ressource auf
»/net/carrotIndustries/horizon/prj-mgr/part_browser/part_browser.ui«
existiert nicht
Auch sind meine selbst definierten Bauteile weg. Starte ich die alten
Programme horizon-prj-mgr und horizon-pool-mgr befinden sich die
Bauteile alle nur im Cache. Allerdings könnte das schon seit einem
länger vergangenen Update sein...
Hallo Lukas,
habe die neueste kompilierte Version für WIN heruntergeladen.
Dann habe ich horizon-eda.exe gestartet. Darin kann ich aber nur den
Pool-Manager starten und den Pool updaten aber nicht das Projekt
(Schaltplan, Layout) starten. Weder "Open" noch Doppelklick in "Recent
Projects" auf das Projekt hilft. Da passiert einfach gar nichts.
Helmut S. schrieb:> Da passiert einfach gar nichts.
Ähm, ich hätte vielleicht zu meiner Fehlermeldung im vorletzten Post
dazu schreiben sollen, dass diese geworfen wird wenn ich versuche, ein
Projekt zu öffnen.
Helmut S. schrieb:> Hallo Lukas,>> habe die neueste kompilierte Version für WIN heruntergeladen.> Dann habe ich horizon-eda.exe gestartet. Darin kann ich aber nur den> Pool-Manager starten und den Pool updaten aber nicht das Projekt> (Schaltplan, Layout) starten. Weder "Open" noch Doppelklick in "Recent> Projects" auf das Projekt hilft. Da passiert einfach gar nichts.
Danke Lukas,
Schaltplan und Layout starten jetzt wieder mit deiner neuesten Version.
Hallo Lukas,
mir fällt da gerade auf, dass jetzt das horizon-Icon bei horizon-eda.exe
fehlt. Siehe screenshot - links neu, rechts alt. Das Icon hilft, dass
man leichter die wichtige .exe findet.
Hallo Lukas,
ich habe gerade die Funktion "Flip view" in der neuesten Version vom
7.7.2018 probiert. (In Mentor Xpedition heißt diese Funktion "Mirror".)
Space bar -> Doppelklick auf "Flip view" geht. Die Altrenative mit
CTRL-f macht aber gar nichts. Liegt das jetzt an Windows7.
"Select only on work layer"
Wenn ich das anmache dann kann ich Leitungen/Polygone selektieren aber
keine Bauteile. Ist das wirklich so gedacht?
Gruß
Helmut
Helmut S. schrieb:> CTRL-f macht aber gar nichts.
Das ist Ctr-F, also Ctrl-Shift-f. Ctrl-f wird mal irgendwann die
Suchfunktion.
Helmut S. schrieb:> "Select only on work layer"> Wenn ich das anmache dann kann ich Leitungen/Polygone selektieren aber> keine Bauteile. Ist das wirklich so gedacht?
Ja, weil die nicht auf einem Layer im engeren Sinn liegen. Lang-
Mittelfristig wird sich an dem eh noch was ändern.
Helmut S. schrieb:> Hallo Lukas,>> der Windows-build von horizon scheint nicht mehr zu funktionieren.> https://ci.appveyor.com/project/carrotIndustries/horizon/build/artifacts>> Selber kompilieren schlägt auch fehl.>> Ist das ein bekanntes Problem?>> Gruß> Helmut
Hallo Lukas,
selber kompileren geht jetzt wieder, aber man kann den Pool nicht
updaten. Sobald ich "Remote" klicke kommt eine Fehlermeldung über ein
fehlendes Zertifikat. Siehe Anhang.
Die neueste Version von AppVeyor geht übrigens gar nicht. Die meckert
über eine fehlende DLL.
Gruß
Helmut
Hallo Lukas,
an den Problemen hat sich aber nichts geändert. Die selber kompilierte
Vresion hat immer noch das Problem mit dem Zertifikat und die AppVeyor
Version startet schon gar nicht richtig wegen der immer noch fehlenden
dll.
Helmut
Helmut S. schrieb:> was soll denn im PCB-layout in "Fame" mal stehen oder ist das ein> Tippfehler?
Ja, und eigentlich sollte das da gar nicht auftauchen. Ist repariert.
Hallo Lukas,
habe nach längerer Zeit mal wieder die aktuelle Version im git unter
Debian Sid kompiliert. Das ging soweit glatt, die Anwendung lässt sich
starten und auch ein Projekt auswählen. Wenn ich dann den Schaltplan,
das Board oder den Part browser aufrufe, startet dieser, aber an den
Stellen, an denen Bedienelemente sind, ist nur eine schwarze Fläche. Der
Schaltplan oder das Board selbst werden korrekt angezeigt. Wenn man
weiß, wo man in der schwarzen Fläche klicken muss, lässt sich das
Programm sogar bedienen. Also z.B. ein Klick rechts oben im Fenster
schließt dieses wieder.
Was könnte ich den tun, um diesen Fehler wieder abzustellen?
Uwe
Uwe S. schrieb:> startet dieser, aber an den> Stellen, an denen Bedienelemente sind, ist nur eine schwarze Fläche. Der> Schaltplan oder das Board selbst werden korrekt angezeigt.
Das ist eine Regression in mesa, hatte ich auch. Nach Downgrade auf
18.0.4 tat es bei mir wieder. Man müsste mal ein bug in deren Bugzilla
aufmachen...
Du hast auch eine Intel GPU?
Lukas K. schrieb:> Uwe S. schrieb:>> startet dieser, aber an den>> Stellen, an denen Bedienelemente sind, ist nur eine schwarze Fläche. Der>> Schaltplan oder das Board selbst werden korrekt angezeigt.>> Das ist eine Regression in mesa, hatte ich auch. Nach Downgrade auf> 18.0.4 tat es bei mir wieder. Man müsste mal ein bug in deren Bugzilla> aufmachen...> Du hast auch eine Intel GPU?
Ja, Intel GPU. Zu blöd. Danke trotzdem für die Info.
Uwe
Hallo Lukas,
vor ein paar Wochen habe ich horizon ausprobiert. Leider war ich mitten
in einem größeren Projekt, das ich schon mit Kicad begonnen hatte..
Jetzt aber gerne eine Rückmeldung was mir dabei aufgefallen ist:
Als allererstes ganz großes Lob! Eine wunderbar klare, aufgeräumte
Oberfläche. Der Schaltplaneditor der endlich mal seine "Junctions"
aufräumt und Netzsegmente die zu einem Stück zusammengefasst werden.
Wenn man einmal die ?-Taste gefunden hat ist alles gut. Nicht zuletzt
die Videos sind extrem hilfreich.
Ein paar Fragen habe ich auch:
Ich glaube, daß ich das Konzept zu dem Pool einigermaßen verstanden
habe. Aber vielleicht auch nicht ganz.
* Warum gibt es die Unterscheidung in Unit und Symbol? Gibt es Units die
kein Symbol haben oder andersherum? Auf den ersten Blick ist es eine 1:1
Abbildung und mir nicht klar warum nicht jedes Symbol gleichzeitig auch
Unit ist.
* Warum gibt es im Pool, sowohl bei den Units als auch bei den Symbolen
die "Manufacturer" Spalte? Das hat mich irritiert. Ich dachte ich bewege
mich auf einer rein abstrakten Ebene wenn ich eine Unit oder Symbol
anlege.. Klar gibt es Symbole oder Entities die ein von einem bestimmten
Hersteller produziertes Bauteil symbolisieren. Aber müsste dann nicht
der beim Entity hinterlegte Hersteller beim Symbol auftauchen? Im Moment
kann man sowohl für Unit als auch Symbol als auch Entity verschiedene
Hersteller angeben..
* Bei der 3D-Ansicht sehe ich keine Platine (Substrat). Auch wenn ich
eine Outline angebe. Nur Leiterbahnen und den ganzen Rest..
Dann habe ich auch noch ein paar Anregungen:
* Mehrere Pools pro Projekt.
Während des Schaltplanens mache ich mal schnell ein Symbol, welches
nicht in den Pool gehört. Entweder weil ich es nur ganz schnell zeichne
oder weil es ein spezielles Symbol ist, daß nie wieder jemand anderer
verwenden wird (zB. ein eigenes Aufsteck-Board o.a.). Außerdem habe ich
gerne eine Sammlung von eigenen Symbolen und Packages die von mir
überprüft sind und auf die ich schnellen Zugriff möchte..
Mir ist klar, daß das das Konzept des Pool etwas aufweichen würde ..
* Mehrere Boards pro Projekt.
Die meisten meiner Projekte haben mehr als ein Board. Z.B. noch ein
Aufsteckboard fürs Display oder ein Breakout-Board o.ä.
Es wäre schick die alle in Form eines Projekt-Explorers zusammengefasst
zu haben.
* Zoomen.
Beim Zoomen (mit dem Mausrad) finde ich es bei anderen Programmen sehr
praktisch, wenn die Stelle des Cursors in die Mitte rückt. Bei Kicad ist
das beispielsweise so..
Danke jedenfalls schonmal für das schöne Programm und schönen Abend und
entschuldige wenn ich die eine oder andere Antwort auf die eine oder
andere Frage überlesen habe.
Flo
Flo G. schrieb:> Der Schaltplaneditor der endlich mal seine "Junctions"> aufräumt und Netzsegmente die zu einem Stück zusammengefasst werden.
Sollte eigentlich selbstverständlich sein, inzwischen kann KiCad das
auch...
> Wenn man einmal die ?-Taste gefunden hat ist alles gut. Nicht zuletzt> die Videos sind extrem hilfreich.
Sehr schön :)
Flo G. schrieb:> * Warum gibt es die Unterscheidung in Unit und Symbol? Gibt es Units die> kein Symbol haben oder andersherum? Auf den ersten Blick ist es eine 1:1> Abbildung und mir nicht klar warum nicht jedes Symbol gleichzeitig auch> Unit ist.
Idee dahinter ist es, Darstellung im Schaltplan (Symbol) und in der
Netzliste (Unit) zu trennen, damit nicht der Schaltplan, sondern die
Netzliste die Primärquelle für Konnektivität ist. Nebenbei kann man für
eine Unit mehrere Symbole in verschiedenen Geschmacksrichtungen haben.
Flo G. schrieb:> * Warum gibt es im Pool, sowohl bei den Units als auch bei den Symbolen> die "Manufacturer" Spalte?
Die Spalte "Manufacturer" bei den Symbolen ist identisch mit der bei den
Units, damit man besser erkennt was man vor sich hat.
> Das hat mich irritiert. Ich dachte ich bewege> mich auf einer rein abstrakten Ebene wenn ich eine Unit oder Symbol> anlege.. Klar gibt es Symbole oder Entities die ein von einem bestimmten> Hersteller produziertes Bauteil symbolisieren.
Das ist mehr so als Gedankenstütze, denn die Teilenummern sind ja
manchmal recht wenig aussagekräftig.
> Aber müsste dann nicht> der beim Entity hinterlegte Hersteller beim Symbol auftauchen? Im Moment> kann man sowohl für Unit als auch Symbol als auch Entity verschiedene> Hersteller angeben..
Kann man, am Ende vom Tag zählt das, was im Part eingetragen ist.
Flo G. schrieb:> * Bei der 3D-Ansicht sehe ich keine Platine (Substrat). Auch wenn ich> eine Outline angebe. Nur Leiterbahnen und den ganzen Rest..
Dann hast du wahrscheinlich die Kontur als Linien und nicht als Polygon
gezeichnet. Mit dem tool "Line loop to polygon" kannst du's umwandeln.
Flo G. schrieb:> * Mehrere Pools pro Projekt.
Seit kurzem geht das: Du legst dir einen eigenen Pool an, und fügst im
Tab "Settings" den globalen Pool hinzu. Damit hast du einen Pool, in dem
alles aus dem globalen Pool eingeblendet ist und du zusätzlich deine
eigenen Bauteile hinzufügen kannst.
Flo G. schrieb:> * Mehrere Boards pro Projekt.
Das Passt nicht wirklich ins Konzept. Was für Vorteile versprichst du
dir davon?
Flo G. schrieb:> * Zoomen.> Beim Zoomen (mit dem Mausrad) finde ich es bei anderen Programmen sehr> praktisch, wenn die Stelle des Cursors in die Mitte rückt. Bei Kicad ist> das beispielsweise so..
Ist wohl Geschmackssache, ich finde das überaus irritierend. Mit Wayland
wird das ohnehin nicht mehr funktionieren, da Applikationen dann nicht
mehr den Cursor positionieren können. Ist denen bei Kicad auch
aufgefallen: https://bugs.launchpad.net/kicad/+bug/1725920
Flo G. schrieb:> * Zoomen.> Beim Zoomen (mit dem Mausrad) finde ich es bei anderen Programmen sehr> praktisch, wenn die Stelle des Cursors in die Mitte rückt. Bei Kicad ist> das beispielsweise so..
Das stelle ich immer als erstes ab :)
Ich liebe es, wenn der der Punkt unter der Maus beim Zoomen gleich
bleibt.
Das irre rumgespringe macht mich ganz wirr^^
Lukas K. schrieb:> Mit Wayland> wird das ohnehin nicht mehr funktionieren, da Applikationen dann nicht> mehr den Cursor positionieren können.
Endlich! ENDLICH!
Es geschehen also doch noch Zeichen und Wunder!
Ein Zeitalter in dem diese UX-Vergewaltigung endlich nicht mehr möglich
ist bricht an, daß ich das noch erleben darf!
Hallo Lukas,
wenn ich selber einen "build" für Windows mache, dann läuft das Programm
obwohl es gar keine libthai-0.dll baut. Damit ist das ein reines Problem
des von AppVeyor CI gebauten Programms.
Gruß Helmut
Helmut S. schrieb:> danke für neueste AppVeyor Version. Die funktioniert.
Jetzt ist auch ein Test drin, der nachsieht, ob auch alle benötigten
DLLs mit dabei sind. Damit sollte sowas in Zukunft nicht mehr unbemerkt
bleiben.
Helmut S. schrieb:> wenn ich selber einen "build" für Windows mache, dann läuft das Programm> obwohl es gar keine libthai-0.dll baut.
Wann hast du bei deinem msys2 das letzte mal Updates gemacht? Gtk und
andere Libraries scheinen von Version zu Version mehr Abhängigkeiten zu
bekommen.
Zum Updates installieren mehrfach "pacman -Syu" in der mingw-shell
ausführen.
Lukas K. schrieb:> Helmut S. schrieb:>> wenn ich selber einen "build" für Windows mache, dann läuft das Programm>> obwohl es gar keine libthai-0.dll baut.>> Wann hast du bei deinem msys2 das letzte mal Updates gemacht? Gtk und> andere Libraries scheinen von Version zu Version mehr Abhängigkeiten zu> bekommen.>> Zum Updates installieren mehrfach "pacman -Syu" in der mingw-shell> ausführen.
Danke. Jetzt generiert das "make" auch auf meinem PC die libthai-0.dll".
Hallo Lukas,
in einem thread um KiCad ging es um die Frage wie man zwei traces für
ein Netz legen kann ohne dass der bereits vorhandenene trace gelöscht
wird.
Beitrag "KiCAD Leitungen auf Top UND Bottom"
-----
> Wie mache ich es in KiCAD, dass ich sowohl auf Top und auf Bottom> Leiterbahnen gleichen Netzes routen kann?
der Default unter "Interactive Router Settings" ist "remove redundant
tracks". Kann man ausschalten...
-----
Horizon löscht immer/meistens den alten trace, wenn man parallel einen
neuen trace routet. Das entsprciht der Default-Einstellung von KiCad.
Ich sehe in horizon bisher keine Möglichkeit dieses Verhalten auch mal
abzuschalten wie das in KiCad möglich ist.
Hast du das auf deiner ToDo-Liste oder übersehe ich eine
Einstellmöglichkeit in horizon?
Hallo Lukas,
hier noch ein Nachschlag zu meinem letzten Beitrag/Wunsch. Diese
Funktion mit Auswahlmöglichkeit gibt es nicht nur in KiCad sondern
vermutlich in vielen Layout-Programmen die einen online-DRC haben.
KiCad: Remove redundant tracks
Altium: Automatically remove loops
(E)Xpedition: Prevent loops
Diskussion im Forum
KiCad, Beitrag "KiCAD Leitungen auf Top UND Bottom"
Altium, Beitrag "Altium mehrere Leiterbahnen an ein SMD Pad"
Das abstellbar zu machen, wäre auf die schnelle kein großer Aufwand,
doch platzt die Statuszeile beim Routing Tool mittlerweile schon aus
allen Nähten und die Übersichtlichkeit derer lässt auch zu wünschen
übrig.
Mittelfristig wird für Tools die mehr Einstellmöglichkeiten haben, als
sinnvoll in die Statuszeile passen eine Seitenleiste, an der Stelle an
der sonst der Properties sind, geben.
Lukas K. schrieb:> Sodele, nun gibt's dank meiner Masterarbeit auch endlich ein> vorzeigbares Demoprojekt für horizon EDA:> https://github.com/carrotIndustries/x-band-tx
Hallo Lukas,
vielen Dank für die CAD-files. Das PCB sieht sehr gut aus.
Nach dem Starten deines Layouts bekommt man eine Menge "air wires". Erst
nach dem Plane-update sind die "air wires" weg.
Ist es gewollt, dass die Planes nach dem Laden des Projects immer erst
mit "Update all planes" aktiviert werden müssen?
Warum sehe ich die grünen LEDs in meiner 3D-Ansicht nicht?
Gruß
Helmut
Helmut S. schrieb:> Nach dem Starten deines Layouts bekommt man eine Menge "air wires". Erst> nach dem Plane-update sind die "air wires" weg.> Ist es gewollt, dass die Planes nach dem Laden des Projects immer erst> mit "Update all planes" aktiviert werden müssen?
Aktuell ja, die Füllung der Planes wird nicht gespeichert.
> Warum sehe ich die grünen LEDs in meiner 3D-Ansicht nicht?
Einige Packages (z.B. die LEDs) habend 3D-Modelle, deren Lizenz die
Weiterverbreitung explizit verbietet, manche haben auch gar keine
wirkliche Lizenz. Diese Modelle landen daher nicht im git. Wenn man die
3D-Modelle haben will muss man die sich selber von irgendwo runterladen
und an die richtige Stelle kopieren.
Hallo Lukas,
Beim lesen einer Diskussion über push and shove in Kicad habe ich mir
das mal genauer in Kicad angesehen. Es gibt dort ein Menu in dem man
einstellen kann ob der interactive router um andere Leitungen herumfährt
oder ob Leitungen weggeschoben werden. Siehe die zwei Bilder. Im zweiten
Bild hat Kicad die bestehende Leitung weggeschoben um Platz zu machen.
Diese Möglichkeit des wegschiebens beim verlegen einer Leitung (Befehl
x) scheint es in horizon nicht zu geben oder übersehe ich etwas?
Lukas K. schrieb:> Einige Packages (z.B. die LEDs) habend 3D-Modelle, deren Lizenz die> Weiterverbreitung explizit verbietet
Warum nimmst Du nicht einfach die 3d-Modelle von KiCAD, die sind frei
nutzbar, so verstehe ich die LICENSE.md Datei die sich in deren
übergeordnetem Ordner befindet:
https://github.com/KiCad/kicad-packages3D/blob/master/LICENSE.md
Helmut S. schrieb:> Diese Möglichkeit des wegschiebens beim verlegen einer Leitung (Befehl> x) scheint es in horizon nicht zu geben oder übersehe ich etwas?
Wenn das Router-Tool aktiv ist, aber man noch keinen Track routet kann
man mit 's' zwischen push/shove und walkaround umschalten.
Bernd K. schrieb:> Warum nimmst Du nicht einfach die 3d-Modelle von KiCAD
Wenn KiCad welche hat, nehme ich die, nur bei exotischen Bauteilen hat's
in der KiCad-Library nichts.
Hallo Lukas,
> Wenn das Router-Tool aktiv ist, aber man noch keinen Track routet kann
man mit 's' zwischen push/shove und walkaround umschalten.
Danke, das hatte ich in der Statuszeile übersehen.
Jetzt ist mir aber moch etwas anderes wichtiges aufgefallen. Wenn ich
ein trace-segment mit "drag track" oder "drag keeping slope" schiebe,
kann ich das Leitungsstück über andere Leitungen schieben (Kurzschluss).
Es werden also keine interaktiven Checks gemacht. Ist das immer so oder
übersehe ich da schon wieder etwas?
(In Kicad wird da die andere Leitung weggeschoben damit die nicht
übereinander liegen.)
Hallo Lukas,
die neueste Version von horizon (horizon-2018-10-03-1629.zip) für
WINDOWS läuft nicht.
https://ci.appveyor.com/project/carrotIndustries/horizon/build/artifacts
Es fehlen die beiden DLLs libssl-1_1-x64.dll und libcrypto-1_1-x64.dll.
Wenn man die zwei fehlenden Dateien aus MSYS64 dazukopiert, dann läuft
das Programm. Die Ursache liegt also nur an der Batchdatei die die
WIN-Files zusammenkopiert.
Gruß
Helmut
Helmut S. schrieb:> Es fehlen die beiden DLLs libssl-1_1-x64.dll und libcrypto-1_1-x64.dll.> Wenn man die zwei fehlenden Dateien aus MSYS64 dazukopiert, dann läuft> das Programm. Die Ursache liegt also nur an der Batchdatei die die> WIN-Files zusammenkopiert.
Hmm, mal sehen weshalb das mein Test nicht erkannt hat... Im aktuellen
Build sollten die jetzt drin sein.
Hallo Lukas,
in der neuesten Version von horizon geht die 3D-Ansicht nicht mehr. Es
geht überhaupt kein Fenster für die 3D-Ansicht auf. Im Anhang die
Fehlermeldung beim klicken auf den 3D-button, wenn man horizon-eda im
mysys gestartet hat. Das war jetzt mit der selbstkompilerten Version.
In der Appveyor-Version geht 3D auch nicht mehr.
Helmut S. schrieb:> die neueste Version von horizon (horizon-2018-10-03-1629.zip) für> WINDOWS läuft nicht.
Nun ja, auch bei der "horizon-2018-10-23-2257.zip" läuft's hier nicht:
"gl error 1281 in src/canvas/canvas_gl.cpp:87"
System: Thinkpad T410s, Intel-HD Grafik, OpenGL 2.1
und ein Update auf die neueste OpenGL Version ist dafür nicht verfügbar.
Es ist wie bei Kicad: jede Begegnung mit Horizon ist mir wie ein Schlag
ins Gesicht.
W.S.
W.S. schrieb:> OpenGL 2.1
Genügt nicht, stand schon ganz am Anfang fest, und Lukas hat ausführlich
erklärt, warum er davon nicht abgehen möchte. OpenGL 3 ist Pflicht.
Allerdings hat selbst mittlerweile schon recht betagte Hardware damit
kein Problem mehr, ein T410 ist mit 8 Jahren ja schon ein Großvater.
Jörg W. schrieb:> Genügt nicht, stand schon ganz am Anfang fest
Lukas K. schrieb:
> OpenGL 3.2 ist leider Pflicht
Tja, i5, 4 Kerne, 8 GB RAM, Intel-HD bis >2000x2000, DirectX-10 genügt
so einem Programm nicht. Toll. Ist ne klasse Zielstellung.
Manchmal frag ich mich, warum. Ich kann's mir nur mit überschäumendem
Hormon erklären. Etwa so wie im Straßenverkehr, wo mir oft genug Leute
auffallen, die aus lauter Lust nochmal Vollgas geben, wohl wissend, daß
sie nach 300m dann ne Vollbremsung hinlegen müssen, weil sie dort links
abbiegen müssen.
Kluge Entscheidungen vor dem Schreiben der ersten Codezeile sehen
anders aus. Aber diesen Punkt hatte ich dem Lukas ja schon vor langer
Zeit dringendst angeraten und er hat ihn in den Wind geschlagen.
W.S.
W.S. schrieb:> Manchmal frag ich mich, warum.
Das hat Lukas ausführlich begründet. Im Gegensatz zu deinem Gemuffel
war es eine kluge Designentscheidung von ihm, damit er sich eben bei
einer kompletten Neuentwicklung, die ohnehin erst ein paar Jahre nach
Designgstart irgendwann "ready for the masses" sein wird, den Aufwand
für irgendwelche Rückwärtskompatibilität bis zur Jungsteinzeit sparen
kann und sich stattdessen auf die gewünschten Features konzentriert.
Die Kiste hier in der Firma hat nun auch schon 4 Jahre auf'm Buckel, ist
ein i5, und genügt vollauf für Horizon. Nur dein knapp 10 Jahre alter
Laptop genügt eben nicht mehr, aber der genügt sicher auch nicht mehr
für eine halbwegs aktuelle Windows-Version, oder?
W.S. schrieb:> DirectX-10 genügt> so einem Programm nicht
DirectX ist was Windows-spezifisches, die Software soll aber bewusst
plattformunabhängig sein, ist also völlig irrelevant.
OpenGL 3.2 ist aus dem Jahre 2009.
https://de.wikipedia.org/wiki/OpenGL#Versionsgeschichte
Selbst Grafikkarten aus dem Jahr 2008 haben (später) OpenGL 3.2 und mehr
unterstütz, z.B. die GeForce 200er-Serie oder die alte 9000er-Serie
https://de.wikipedia.org/wiki/Nvidia-GeForce-200-Serie#Grafikprozessorenhttps://de.wikipedia.org/wiki/Nvidia-GeForce-9-Serie#Grafikprozessoren
Eventuell läuft es auch auf noch älteren Grafikkarten, das hab ich jetzt
nicht überprüft. Intel war mit seinem internen "Grafikbeschleuniger" (in
der Vergangenheit) immer sehr stiefmütterlich umgegangen. Meist war
Intel auch DirectX Support wichtiger wie OpenGL.
W.S. schrieb:> Manchmal frag ich mich, warum. Ich kann's mir nur mit überschäumendem> Hormon erklären.
Irgendwann muss man die Altlasten auch mal loswerden, und OpenGL 3.2 ist
echt keine große Hürde, jede nVidia oder AMD Karte der letzten 10 Jahre
kann das.
W.S. schrieb:> Kluge Entscheidungen vor dem Schreiben der ersten Codezeile sehen> anders aus.
Doch die sehen genauso aus, nämlich das man Altlasten größer 10 Jahre
irgendwann mal loswird. Oder willst du noch Standards untersützen
W.S. schrieb:> System: Thinkpad T410s, Intel-HD Grafik
Hättest du damals die "NVIDIA Quadro NVS 3100M" mitkaufen sollen, die
untersützt alles bis OpenGL 4.3 ;-)
http://www.gpuzoo.com/GPU-NVIDIA/Quadro_NVS_3100M.html
Zudem ist auch nur die alte Westmere-Generation (also Core i erste
Generation) auf OpenGL 2.1 hängen geblieben, alle anderen gehen ab 3.3
unter Linux los
https://en.wikipedia.org/wiki/Intel_Graphics_Technology#Capabilities
Kein win95, win98, ME, XP --> also schrott?
Nicht ganz, auch wenn ich auch heute fast alles noch mit XP mache.
Liegt teilweise an der Software darauf.
Leider bin ich aktuell bei horizon auch raus, mein I3 mit WIN7 will halt
nicht so richtig. Der wird auch noch einige Jahre laufen. Dabei würde
ich sehr gerne zu horizon wechseln, weil es jetzt schon einen super
Eindruck macht.
Jörg W. schrieb:> W.S. schrieb:>> Manchmal frag ich mich, warum.>> Das hat Lukas ausführlich begründet. Im Gegensatz zu deinem Gemuffel> war es eine kluge Designentscheidung von ihm, damit er sich eben bei> einer kompletten Neuentwicklung, die ohnehin erst ein paar Jahre nach> Designgstart irgendwann "ready for the masses" sein wird, den Aufwand> für irgendwelche Rückwärtskompatibilität bis zur Jungsteinzeit sparen> kann und sich stattdessen auf die gewünschten Features konzentriert.
...das überhaupt "ausführlich begründen" zu müssen halte ich schon für
sehr konziliant, weil offensichtlich...
>> Die Kiste hier in der Firma hat nun auch schon 4 Jahre auf'm Buckel, ist> ein i5, und genügt vollauf für Horizon. Nur dein knapp 10 Jahre alter> Laptop genügt eben nicht mehr, aber der genügt sicher auch nicht mehr> für eine halbwegs aktuelle Windows-Version, oder?
da wiederum wäre ich nicht so sicher, nicht unwahrscheinlich dass
Microsoft ein Extra-Team nur für die Gate-A20-Emulationen unterhält ;-)
(zumindest auf meiner 2009er-Kiste z.B. läuft Win10 unauffällig)
Jörg W. schrieb:> Nur dein knapp 10 Jahre alter> Laptop genügt eben nicht mehr, aber der genügt sicher auch nicht mehr> für eine halbwegs aktuelle Windows-Version, oder?
Der stammt aus 2011 und du schmeißt mal wieder mit beleidigenden
Sprüchen um dich.
Muß man ein etwa 8 Jahre altes Notebook wegschmeißen, obwohl es immer
noch tadellos funktioniert?
Das Ganze ist ne generelle Frage, nämlich die nach der heutigen
Wegwerf-Gesellschaft. Muß man sein Auto alle 4.1 Jahre wechseln? Und
sein Mobiltelefon alle 2.4 Jahre und sein Notebook alle 3 Jahre?
Tatsächlicher Verschleiß ist ein echter Grund, aber gedankenlos oder mit
Mutwillen programmierte Software ist was Anderes.
Ach, Schwamm drüber.
W.S.
W.S. schrieb:> Muß man ein etwa 8 Jahre altes Notebook wegschmeißen, obwohl es immer> noch tadellos funktioniert?
Muss man nicht, ich benutze auch noch mein >10 Jahre altes Thinkpad -
für Browser, Doku und µC-Flashen z.B.
Ich käme aber nicht auf die Idee, damit ein aktuelles EDA nutzen zu
wollen, oder mich dann gar noch über damit verbundene Probleme zu
beschweren...
Ich denke eure Erwartungen sind zu hoch, ich würde nicht mal im Traum
daran denken eine (noch nicht mal fertige) Software zu kritisieren weil
sie auf 10 Jahre alten Gurken nicht läuft, selbst ein 2009er MacBook
(nicht Pro) unterstützt OpenGL 3.3. Also irgendwo muss man mal auch die
Reissleine ziehen... Was kommt als nächstes? Die Software taugt nichts
weil Opas Windows 3.11 Rechner nicht mit Horizon zusammen spielt?
Ich benutze selbst noch ein 2010er MacBook und 2010er HP Notebook, mit
den Gurken würde ich aber nie auf die Idee kommen ein CAD Programm
produktiv einzusetzen...
Wenn die Software Produktivstand erreicht hat werden die genannten
Modelle welche nicht unterstützt werden auch ihre 10 Jahre erreicht
haben. Ich bin ebenfalls kein Befürworter von dauernd neukaufen, ich
fahre auch ein 15 Jahre altes Auto aber ich denke einen Computer aus dem
Consumer-Bereich kann man ohne schlechten Gewissens nach 8 Jahren in den
Ruhestand schicken oder zumindest anderweitig einsetzen, ich habe auch
ein Thinkpad T23 mit Windows XP hier, das Teil wird halt angeschmissen
wenn ich eine echte parallele oder serielle Schnittstelle benötige (und
ich kann mich ehrlich gesagt auch nicht mehr daran erinnern wann dass
das letzte mal war)
Jan L. schrieb:> Muss man nicht, ich benutze auch noch mein >10 Jahre altes Thinkpad -> für Browser, Doku und µC-Flashen z.B.> Ich käme aber nicht auf die Idee, damit ein aktuelles EDA nutzen zu> wollen, oder mich dann gar noch über damit verbundene Probleme zu> beschweren...
Stop mal.
Ich benutze dieses knapp 7 Jahre alte Notebook eben auch wie du, um z.B.
hier in diesem Forum herumzudaddeln. Und ich komme genau wie du auch
nicht auf die Idee, ein EDA-System auf diesem Teil benutzen zu wollen.
Allerdings läuft die aktuelle Eagle-Bastler-Version 9.2 problemlos auf
diesem Notebook.
So viel zum Thema "aktuelles EDA". Ich sag's mal so: Jörg und andere
haben einfach den Mund zu voll genommen - und es ist wohl eher nicht
sehr klug, die Systemvoraussetzungen zu hoch zu schrauben. Dann fehlen
nämlich viele Tester und übrig bleiben nur die Fanboys.
Ihr hättet meine Fehlermeldung auch ganz einfach so stehen zu lassen wie
sie ist. Schließlich ist mir die Version 2.1 schon zuvor klar gewesen.
Aber aus eigener Erfahrung weiß ich, daß gelegentlich aus einer
einigermaßen detaillierten Fehler-Rückmeldung und einer kleinen Änderung
im Quellcode etwas Gutes werden kann, z.B. bessere Kompatibilität und
geringere HW-Anforderungen ohne daß man sich viel an Performance
vergibt.
Kann, nicht Muss.
Und was macht ihr, wenn Lukas übermorgen auf die Idee kommt, ein nettes
Feature aus OpenGL 4.6 zu benutzen?
W.S.
W.S. schrieb:> Allerdings läuft die aktuelle Eagle-Bastler-Version 9.2 problemlos auf> diesem Notebook.
Ich habe von einem aktuellen Windows gesprochen, nicht von Eagle (oder
einem anderen EDA-Programm).
Mein Sohn hat billig ein ähnlich altes Thinkpad bekommen, daher habe ich
durchaus ungefähr ein Gefühl dafür, wie performant oder lahm so'n Ding
ist. Fürs gelegentliche Arbeiten sicher OK, als primäre Maschine will
das heute wohl keiner benutzen.
Wenn du Horizon dort sowieso gar nicht verwenden willst, ist die
Lamentiererei doppelt unsinnig, zumal du ja ganz genau wusstest, dass es
aufgrund der eingangs genannten Systemvoraussetzungen gar nicht gehen
kann.
> Und was macht ihr, wenn Lukas übermorgen auf die Idee kommt, ein nettes> Feature aus OpenGL 4.6 zu benutzen?
Er hat sich zum Projektstart auf Mindestanforderungen seines
Zielsystems festgelegt (und diese auch begründet). An die hat er sich
bislang gehalten.
Also ich habe mich jetzt mal entschlossen das Programm auszuprobieren.
Bisher leider nur mit mäßigem Erfolg. Ich bekomme es noch nicht einmal
gestartet.
Es poppen sofort 2 Fehlermeldungen auf.
Die erste Meldung lautet "No pools setup ....". Was das auch immer sein
mag. Gleichzeitig mit dieser Meldung popt noch die im Anhang gezeigte
Fehlermeldung auf. Ich habe gar kein Laufwerk B.
Immerhin die erstere von beiden Meldungen kann ich schließen, während
die zweite (die mit dem Laufwerk B) sich hartnäckig weigert. Keine der
Funktionen "Abbrechen", "Wiederholung" oder "Weiter" führt zu einem
sichtbaren Ergebnis. Auch das Beenden des Programmes mit dem Taskmanager
funktioniert nicht.
Braucht es denn noch weitere Voraussetzungen, damit das Programm
lauffähig ist?
Ich befürchte, W.S. hat wieder mal mit seiner Einschätzung recht. So wie
es momentan ist, ist es leider unbrauchbar.
Pulsonix 9.0, Eagle und auch einige andere CAD-Programme laufen völlig
problemlos auf dem Rechner.
Zeno schrieb:> Die erste Meldung lautet "No pools setup ....". Was das auch immer sein> mag.
Lies mal den Rest des Threads bzw. Lukas' Dokumentation (die URL seines
Projekts steht ja im einleitenden Beitrag, dort gibt es auch ein Wiki).
Einen Pool musst du erstmal einrichten, der ist Grundvoraussetzung.
Möglicherweise erledigt sich ja dann die Frage nach dem ominösen
Laufwerk B.
Jörg W. schrieb:> Einen Pool musst du erstmal einrichten, der ist Grundvoraussetzung.> Möglicherweise erledigt sich ja dann die Frage nach dem ominösen> Laufwerk B.
Wie mache ich das? Keines der Programme im Horizonordner zeigt
nachvollziehbare Reaktion.
Dachte das ich diesen ominösen Pool hiermit horizon-pool.exe bzw. diesem
horizon-pool-update-parametric.exe erzeugen kann. SEhe bei diesen
Programmen außer einem kurzen Blinkern keine wirkliche Reaktion.
Weiß ich auch gerade nicht mehr, müsste ich nachlesen.
Meine Binaries zu Hause funktionieren auch im Moment nicht mehr, weil
irgendwelche Systembibliotheken neu gebaut worden sind.
Schau mal durch den Thread.
Zeno schrieb:> Wie mache ich das? Keines der Programme im Horizonordner zeigt> nachvollziehbare Reaktion.
...aus "getting started" im Wiki:
1
Get the pool
2
Don't know how to git? No problem! Double-click horizon-eda.exe or launch > ./horizon-eda from your shell and click on 'Download...' to download the pool. The default pool carrotIndustries/horizon-pool is the one you want to use.
möglich, dass man da inzwischen oben links auf den Button "New..."
klicken muss - aufgerufen aber wird nur "horizon-eda.exe".
Kommt schonmal vor, dass auch das nicht klappt - es ist halt "work in
progress", und ab und zu "vergisst" der Paketierer da wohl mal eine
Library...
Ich hatte zufällig gestern mal aktualisiert, und die Version läuft - da
ich aber eine alte Version vorher hatte, ist das nicht unbedingt
aussagekräftig...
@Jan, Jörg
Habe Eure Hinweise beherzigt aber funktionieren tut es immer noch nicht.
Die im Anhang meines obigen Post gezeigte Fehlermeldung kommt immer
noch, immerhin kann ich jetzt den ominösen Pool einlesen. Er rödelt ne
Weile und dann ist eine 2. Fehlermeldung da (s. Anhang). Die untere kann
ich mit OK wegklicken. Danaach kann ich dann wenigstens das Programm
schließen, allerdings bleibt die obere Fehlermeldung jetzt stehen. Diese
läßt sich auch mit dem Taskmanager nicht wirklich schließen. Wenn ich
die Meldung versuche mit dem Taskmanager zu schließe, dann erhalte ich
die aus meinem ersten Post. Wenn ich diese über den Taskmanager schließe
kommt diese wieder und so kann man lustig hin un her schalten.
Wenn es schon daran scheitert das Programm zu starten, dann ist das Teil
für mich unbrauchbar und damit raus. Vielleicht probier ich es später
noch einmal. Schade eigentlich, denn ich hatte durchaus den Eindruck das
es Lukas besser machen wollte (als KiCAD). Leider ist das bisher aus
meiner Sicht schon im Ansatz stecken geblieben. KiCAD ließ sich bisher
bei mir wenigsten starten. Das Erzeugen eines PCB's ist dann wieder eine
andere Sache, da hat sich KiCAD bisher aber auch nicht mit Ruhm
bekleckert. Dennoch habe ich mich entschlossen es noch einmal zu
probieren und lade mir grad mal die aktuelle Version herunter. Befürchte
aber es wieder im Disaster enden, da sich der Workflow von KiCAD mir
nicht wirklich erschließt.
Noch einmal kurz zu Horizon. Ich ziehe durchaus den Hut vor Lukas der
sich an so eine Aufgabe herantraut, aber in dem gegenwärtigen Zustand
ist Programmpaket für den geneigten User leider unbrauchbar. Ich bin
schon der Meinung es wäre gut gewsen den einen oder anderen Rat von W.S.
zu beherzigen, denn ganz so unrecht hat er nicht. Und ja Kritik schmerzt
immer, aber wenn man ein Programm veröffentlicht und darum bittet das es
die Allgemeinheit testet, dann muß man halt auch Kritik aushalten und
annehmen.
Noch habe ich die Hoffnung nicht ganz aufgeben das bei dem Projekt was
Benutzbares herauskommt, aber das wird noch eine Weile dauern. Ein gutes
Konzept zu Anfang hätte dem Projekt mit Sicherheit sehr gut getan. Ein
KOnzept bedeutet ja nicht, das danach alles in Stein gemeißelt ist. Man
kann es sehr wohl immer wieder (mit den gewonnenen Erfahrungen)
erweitern. Aber es gibt erst mal eine Richtung und Prämissen vor die
man der Reihe nach abarbeiten kann. Lukas hat die Planung leider
versäumt und gleich in die Tasten gehauen.
Wichtig wäre jetzt, das Lukas mal ein Paket baut, welches alles enthält
was erforderlich ist - auch diesen ominösen Pool -, damit man erst
einmal damit arbeiten kann und nicht rumfrickeln muß.
Zeno schrieb:> Sorry habe im letzten Post die Bildanhänge vergessen.
...wenn ich diese Fenster so sehe - worauf probierst du das (OS,
OpenGl)?
Ansonsten - vielleicht mal nicht Äpfeln mit Birnen vergleichen, KiCad
ist ja schon relativ gut ‚abgehangen‘, und du benutzt sicherlich eine
*Release*-Version.
Horizon dürfte hingegen ‚alpha‘ sein.
Leider ist der ‚offizielle‘ Stand nicht klar gekennzeichnet, und ein
Changelog scheint‘s auch nicht zu geben.
Und m.E. wäre es auch bestimmt nützlich, in der Wiki-Doku auf Stand und
vor allem die Voraussetzungen hinzuweisen, um Missverständnissen wie
hier vorzubeugen...
Jan L. schrieb:> ...wenn ich diese Fenster so sehe - worauf probierst du das (OS,> OpenGl)?
Das ist Win7 prof. 64Bit. Open GL müßte ich noch prüfen. Wenn es
wirklich an OpenGl liegen sollte, dann wäre eine passende Fehlermeldung
schon hilfreich. Die Fehlermeldung deutet aber auf ein ganz anderes
Problem hin.
Zu KiCAD:
Ja natürlich habe ich eine Release Version benutzt. Ich wills ja auch
noch mal probieren, derzeit scheitert es noch am Download der aus
irgendwelchen Gründen derzeit schnarchlangsam ist (andere Downloads
funktionieren normal).
Wobei ich sagen muß Knapp 1GB für den KiCAD Installer ist schon heftig,
zumal der gepackt sein dürfte. Pulsonix ist da deutlich sparsamer. Das
bringt es installiert, also ausgepackt, auf knapp 400MB. Da fragt man
sich schon wie die das hinbekommen.
Zeno schrieb:> Wobei ich sagen muß Knapp 1GB für den KiCAD Installer ist schon heftig,> zumal der gepackt sein dürfte.
Das sind vor allem 3D-Modelle, die sowas fett machen. Bei mir hier
liegen über 4 GiB an 3D-Modellen in ${INSTALLDIR}/share/kicad herum.
Zeno schrieb:> Wenn es schon daran scheitert das Programm zu starten, dann ist das Teil> für mich unbrauchbar und damit raus.
Ist halt im Moment wirklich Entwicklersoftware und eigentlich besser,
wenn man es sich tatsächlich selbst compiliert.
Die eine Fehlermeldung ("kein Datenträger im Laufwerk") sieht aber schon
etwas seltsam aus, das dürfte eher ein Artefakt dessen sein, was dein
System sonst so bereits hinter sich hat. Vielleicht ja auch irgendwas,
was aus dem System stammt, auf dem die Windows-Version gebaut wird. Ich
weiß schon, warum ich die Windows-Binaries für AVRDUDE lieber auf meinem
FreeBSD mit einem Crosscompiler baue und nicht irgendwo auf einem
tatsächlichen Windows :), aber das ist natürlich von der Komplexität her
mit Horizon nicht vergleichbar.
Jörg W. schrieb:> Die eine Fehlermeldung ("kein Datenträger im Laufwerk") sieht aber schon> etwas seltsam aus, das dürfte eher ein Artefakt dessen sein, was dein> System sonst so bereits hinter sich hat.
Das System dürfte so sehr gestresst worden sein. Bisher habe ich das
System nur genutzt um ein 32Bit Programm, welches ich für die Firma
geschrieben habe, auf einem 64Bit System zu testen. Das System ist quasi
noch jungfreulich. Bis auf einen Virenscanner, MSWord und Visualstudio
2015 habe ich da keine weitere Software installiert.
Das Problem liegt schon im Horizonkompilat, das mit irgendeiner
Systemeinstellung nicht klar kommt und sich verrennt.
Jan L. schrieb:> ...Lukas kompiliert gerade, life zu sehen:> https://ci.appveyor.com/project/carrotIndustries/horizon>> Vielleicht gibt‘s dann gleich ein neues Binary... ;)
Hab diese neue Version gerade angetestet.
Die Methode "Drag track" beim verschieben einer Leitung funkioniert
wieder. Die Methode schiebt andere Leitungen weg, wenn die im Weg sind.
Allerdings verschiebt die auch Vias die im Weg sind und sie schiebt auch
weiter entfernte Leitungsstücke.
Da hätte ich gerne die Wahl mit oder ohne andere Vias schieben. Ob das
der Cern-router kann?
Zu den OpenGL-Anforderungen wurde hier ja schon fast alles gesagt, was
es zu sagen gibt. Meine Windows-Testhardware ist ein ca. 10 Jahre alter
Plastiklaptop mit Core 2 Duo und Nvidia GeForce 9650M GT. Darauf läuft
horizon problemlos.
Mittlerweile benutze ich einige OpenGL-Funktionen, wie z.B.
glDrawElementsInstancedBaseInstance, die es offiziell erst seit OpenGL
4.0 gibt, aber bis jetzt von allem auf dem horizon überhaupt startet
unterstützt wird. Das schöne an dieser Funktion ist, dass so mit einem
einzigen Drawcall alle Instanzen des selben 3D-Modells auf dem Board
gerendert werden können.
Zeno schrieb:> Es poppen sofort 2 Fehlermeldungen auf.> Die erste Meldung lautet "No pools setup ....". Was das auch immer sein> mag.
Das "No pools setup" ist weniger eine Fehlermeldung als mehr ein
Hinweis, was man als nächstes tun könnte. Ohne die würde man mit einem
ganz leeren Fenster dastehen. Aber ja, ein freundliche Begrüßungseite
beim ersten Start ist durchaus sinnvoll.
> Gleichzeitig mit dieser Meldung popt noch die im Anhang gezeigte> Fehlermeldung auf. Ich habe gar kein Laufwerk B.
Ehrlich gesagt, keine Ahnung wie es dazu kommt. Die Fehlermeldung kommt
von Windows selber, nicht von horizon. Wenn du magst, kannst du dem mit
dem Process Monitor nachgehen und rausfinden worauf horizon hier genau
zugreifen Will und wie der Stack an der Stelle ausschaut. Für die
Runtime-Exception ist es hilfreich, wenn du horizon selber baust und aus
der Msys-Shell startest:
https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-WindowsJan L. schrieb:> Leider ist der ‚offizielle‘ Stand nicht klar gekennzeichnet, und ein> Changelog scheint‘s auch nicht zu geben.
Der offizielle Stand ist der master-branch im git, bzw. das letzte zip
aus der Appveyor CI. Changelog sind die commit messages:
https://github.com/carrotIndustries/horizon/commits/masterHelmut S. schrieb:> Da hätte ich gerne die Wahl mit oder ohne andere Vias schieben. Ob das> der Cern-router kann?
Unterstützt wird es vom router scheinbar, nur von horizon noch nicht.
Der Titel "Halbfertig" hat sich in den letzten 1.5 Jahren doch sehr
stark gewandelt, da horizon bereits für mittelgroße Projekte, wie z.B.
Beitrag "Re: Neues, halbfertiges Elektronik-CAD-Programm" gut einsetzbar ist.
Lukas K. schrieb:> Der Titel "Halbfertig" hat sich in den letzten 1.5 Jahren doch sehr> stark gewandelt
Vielleicht solltest du ja mal einen Fahrplan für eine Version 1.0
machen, sonst läufst du Gefahr, dass dein "halbfertiges" Horizon am Ende
mehr kann als manches als "ganz fertig" verkaufte Werkzeug. :)
Bei mir zu Hause (FreeBSD) habe ich leider im Moment link errors, da
sind wohl ein paar Bibliotheken gerade inkonsistent (glibmm und
Konsorten). Muss mal einen Rundum-Update-Schlag machen, damit ich wieder
mal reinschauen kann.
Jörg W. schrieb:> Bei mir zu Hause (FreeBSD) habe ich leider im Moment link errors, da> sind wohl ein paar Bibliotheken gerade inkonsistent
Zum Beispiel:
1
dialogs/map_pin.cpp:10: error: undefined reference to 'Glib::operator<<(std::ostream&, Glib::ustring const&)'
nm -D sagt mir, dass es in der Bibliothek gibt:
1
0000000000069520 T Glib::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, Glib::ustring const&)
Es dürfte die Diskrepanz zwischen "std::__1::basic_ostream" und
"std::ostream" sein, vermute ich mal. Vielleicht hat ja jemand eine
schnelle Idee, an welcher Stelle da was veraltet ist. Vermutung: glibmm
ist mit einem älteren Compiler compiliert worden, Horizon braucht einen
relativ neuen.
Irgendwie hasse ich diese Umbenennerei in std::__1 …
Lukas K. schrieb:>> Leider ist der ‚offizielle‘ Stand nicht klar gekennzeichnet, und ein>> Changelog scheint‘s auch nicht zu geben.>> Der offizielle Stand ist der master-branch im git, bzw. das letzte zip
damit war eher gemeint, welchen "groben Reifegrad" der Autor seiner
Software zuordnet. Derzeit könnte ein geneigter Wiki-Besucher dank der
netten Bildchen etc. auf die Idee kommen, es handele sich hier um eine
"langjährig ausgereifte und abgehangene Produktivsoftware". Und
"wundert" sich dann vielleicht doch, dass da je nach Wochentag halt
schonmal eine DLL fehlen könnte, oder etwas, was gestern noch ging,
heute nichtr mehr tut.
Stünde da aber z.B. klar "hey, hot stuff, bleeding edge, work in
progress" bzw. "das ist hier alpha- oder beta-Status", dann weiss jeder
Interessierte, was ihn erwarten kann - behaupte ich mal... :)
Natürlich könnte ich auch völlig auf dem Holzweg sein, und der Autor
geht von einer "bereits ausgereiften Produktivsoftware" aus - dann, äh,
würde ich mich natürlich umorientieren müssen... ;-)
> aus der Appveyor CI. Changelog sind die commit messages:> https://github.com/carrotIndustries/horizon/commits/master
Ja, ok, das stimmt natürlich - allerdings kann der geneigte
Programminteressierte damit aber womöglich weniger anfangen, als mit
einem "Meta-Changelog", aus dem die für den User relevanten Änderungen
wie "Push-and-shove-Router eingebaut" nicht untergehen zwischen 100erten
gleichartigen Einträgen der Art "missing DLL xy added" etc.
Aber vermutlich spielt sowas erst dann eher eine Rolle, wenn es mal
"offizielle Releases" gegeben hat, und man dann evtl. doch die
relevanten Unterschiede zum Folgerelease dokumentieren möchte...
Hallo W.S.
W.S. schrieb:> Ich benutze dieses knapp 7 Jahre alte Notebook eben auch wie du, um z.B.> hier in diesem Forum herumzudaddeln.
Ich benutze ein altes Netbook von 2006. Es war schon vor jahren nicht
mehr möglich, darauf ein aktuelles Windows zu installieren....
> Und ich komme genau wie du auch> nicht auf die Idee, ein EDA-System auf diesem Teil benutzen zu wollen.> Allerdings läuft die aktuelle Eagle-Bastler-Version 9.2 problemlos auf> diesem Notebook.
Ich schon. Die Grafik kann zwar kein openGl, aber mit Mesa lässt sich
openGL emulieren. Das ist schnarchlangsam, aber um mir unterwegs mal
einen Schaltplan oder ein Layout/Bestückung anzusehen langt es.
> Und was macht ihr, wenn Lukas übermorgen auf die Idee kommt, ein nettes> Feature aus OpenGL 4.6 zu benutzen?
Nichts. Das ganze ist ja noch tief in der Betaphase. Da müssen halt
radikale Schnitte noch möglich sein.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic.de
http://www.dl0dg.de
Bernd W. schrieb:> Das ist schnarchlangsam, aber um mir unterwegs mal> einen Schaltplan oder ein Layout/Bestückung anzusehen langt es.
Genau für so etwas verwende ich auch ein Notebook. Es ist sehr
praktisch, es direkt neben Lötkolben und Mikroskop liegen zu haben, um
einen direkten Blick auf die EDA-Daten werfen zu können.
W.S. schrieb:> Ich benutze dieses knapp 7 Jahre alte Notebook eben auch wie du, um z.B.> hier in diesem Forum herumzudaddeln. Und ich komme genau wie du auch> nicht auf die Idee, ein EDA-System auf diesem Teil benutzen zu wollen.> Allerdings läuft die aktuelle Eagle-Bastler-Version 9.2 problemlos auf> diesem Notebook.
Interessant, dass dieser Betrag ein -1 bekommt.
Holm T. schrieb:> M. W. schrieb:> [..]>>>> Interessant, dass dieser Betrag ein -1 bekommt.>> ...wirklich?>> Gruß,>> Holm
Auf die -1 würde ich pfeifen. Ich habe auch einen alten Laptop auf dem
horizon nicht mehr läuft. Da mus halt ein neuerer her oder den Desktop
nehmen der eine nicht so alte Grafikkarte hat. Meiner Meinung nach geht
es bei Desktops ab GTX560 und höher oder neuer.
Die Idee von Lukas ist es möglichst viel von der Grafikkarte selber
zeichnen zu lassen. Dinge wie zoomen im PCB-layout gehen dann rasend
schnell. Dazu werden natürlich bestimmte Fähigkeiten der Treiber der
Grafikkarte benötigt.
W.S. schrieb:> Manchmal frag ich mich, warum. Ich kann's mir nur> mit überschäumendem Hormon erklären.
Aber was soll denn das. Ist das nicht schon vor
Monaten in epischer Breite diskutiert worden?
Man nimmt so ein Riesenprojekt wie z.B. ein EDA-System
nur in Angriff, wenn man sehr gern, gut und viel
programmiert.
Menschen, die gern, gut und viel programmieren, wollen
PROGRAMMIEREN -- und nicht endlos über Datenmodellen,
Userinterfaces, Dateiformaten und sparsamem Umgang mit
den Ressourcen grübeln.
Die Datenmodelle, Userinterfaces und Dateiformate sind
aber das, was die Benutzbarkeit der Software für den
Endanwender ausmacht.
Es gibt deswegen überhaupt keine Garantie, dass selbst
der begnadetste Superprogrammierer Software erschafft,
die die Benutzer gern nutzen wollen. Das mag man zu Recht
bedauern, aber das ergibt sich einfach daraus, dass Lukas
durch keinerlei Vertrag verpflichtet ist, eine Software
mit bestimmten Leistungsmerkmalen zu schaffen.
> Kluge Entscheidungen vor dem Schreiben der ersten> Codezeile sehen anders aus.
Klugheit bemisst sich an der Tauglichkeit, einem
bestimmten Ziel näherzukommen. Ob Lukas seinen Zielen
näher kommt, kannst Du überhaupt nicht beurteilen.
Du kannst lediglich feststellen, dass er nicht die
Software erschafft, die DU (oder ich) gern verwenden
würde -- aber DAS ist nun keine echte Überraschung.
Lukas' Klugheit wird nicht daran gemessen, inwieweit
er DEINEN Zielen näherkommt :)
Ich gebe Dir ja in einigen Sachfragen durchaus Recht,
ich verstehe nur nicht, warum Du von jemandem, der
Drechseln zu seinem neuen Hobby erkoren hat, erwartest,
er würde jetzt zur Zimmerei wechseln, nur weil Du einen
neuen Dachstuhl brauchst. Das muss doch nicht jedesmal
neu durchgekaut werden.
Jan L. schrieb:> ...das überhaupt "ausführlich begründen" zu müssen halte> ich schon für sehr konziliant, weil offensichtlich...
Was ist denn daran offensichtlich?
Die (wenigen) EDA-Systeme, die ich (mehr oder weniger)
kenne, kranken primär an:
- einer Bedienung, die zwischen "eigenwillig" und
"gehirnkrank" einzuordnen ist,
- einem übergreifenden Datenmodell, das durch komplette
Abwesenheit glänzt und
- mangelnder Interoperabilität.
Inwieweit hilft da eine egoshooter-taugliche Graphik
weiter?
Egon D. schrieb:> Jan L. schrieb:>>> ...das überhaupt "ausführlich begründen" zu müssen halte>> ich schon für sehr konziliant, weil offensichtlich...>> Was ist denn daran offensichtlich?
Dass eine nicht-kommerzielle one-man-show es weder leisten kann noch
höchstwahrscheinlich Lust dazu verspürt, Flohmarkt-Hardware zu
unterstützen.
Wie da der Bezug zur "egoshooter-tauglichen Graphik" reingerät,
verschliesst sich mir.
Egon D. schrieb:> Du kannst lediglich feststellen, dass er nicht die> Software erschafft, die DU (oder ich) gern verwenden> würde
Also damit beschreibst du genau DAS, was ich mit "Hormon" schon gesagt
habe. Das Beipiel von Autofahrern, die kurz vor dem Abbiegen ihrem Motor
nochmal so richtig die Sporen geben, weil ihnen eben das Mütchen danach
ist, hatte ich ja schon genannt.
Aber sag mal, findest du denn nicht, daß das Programmieren eines
derartigen Projektes OHNE Anzielen einer breiten Verwendung
irgendwie.. nun ja, eher etwas eigentümlich ist? Oder nennen wir es
mutwillig? Etwa vergleichbar mit dem zweiten Gang bis Anschlag "una
musica dolce suonava soltanto per me"?
W.S.
W.S. schrieb:> Aber sag mal, findest du denn nicht, daß das Programmieren eines> derartigen Projektes OHNE Anzielen einer breiten Verwendung irgendwie..> nun ja, eher etwas eigentümlich ist?
Das ist doch nur deine Wahrnehmung, dass er keine breite Verwendung
anzielen würde. Selbst du gibst ja zu, dass du diesen ältlichen
Computer nur ausgekramt hast, damit du eine reale Hardware vorweisen
kannst, auf der das nicht läuft – obwohl du diese Hardware am Ende nicht
tatsächlich dazu benutzen wölltest, EDA damit zu machen. Weil sie eben
auch für Software, die darauf noch läuft, lahm genug ist, als dass das
gar keinen Spaß macht, das wirklich darauf zu tun.
Helmut S. schrieb:> Holm T. schrieb:>> M. W. schrieb:>> [..]>>>>>> Interessant, dass dieser Betrag ein -1 bekommt.>>>> ...wirklich?>>>> Gruß,>>>> Holm>> Auf die -1 würde ich pfeifen.
Exakt!
>Ich habe auch einen alten Laptop auf dem> horizon nicht mehr läuft. Da mus halt ein neuerer her oder den Desktop> nehmen der eine nicht so alte Grafikkarte hat. Meiner Meinung nach geht> es bei Desktops ab GTX560 und höher oder neuer.
Es ist völliger Blödsinn sich bei Mikeysoft darüber beklagen zu wollen
das irgend ein Programm von denen auf einem Alten Topplappen nicht mehr
läuft, hier meint man aber damit Eindruck schinden den zu können.
>> Die Idee von Lukas ist es möglichst viel von der Grafikkarte selber> zeichnen zu lassen. Dinge wie zoomen im PCB-layout gehen dann rasend> schnell. Dazu werden natürlich bestimmte Fähigkeiten der Treiber der> Grafikkarte benötigt.
Das ist ja auch vernünftig. In allererster Linie schreibt er das
Programm für sich selbst, nach seinen Bedürfnissen. (alle Achtung!!) Ich
halte es für absolut nicht verwunderlich wenn er da nun nicht die
Befindlichkeiten jeder religiösen Minderheit berücksichtigt die sich
gerade für am Wichtigsten hält.
Die Bewertung? Drauf geschi.....
Gruß,
Holm
Jan L. schrieb:> Egon D. schrieb:>> Jan L. schrieb:>>>>> ...das überhaupt "ausführlich begründen" zu müssen>>> halte ich schon für sehr konziliant, weil>>> offensichtlich...>>>> Was ist denn daran offensichtlich?>> Dass eine nicht-kommerzielle one-man-show es weder> leisten kann noch höchstwahrscheinlich Lust dazu> verspürt, Flohmarkt-Hardware zu unterstützen.
Verstehe ich nicht.
Software, die auf einer alten Mühle anständig läuft,
tut es ganz sicher auch auf einer aktuellen Maschine.
Software, die auf einer aktuellen Maschine nur anständig
läuft, ist auf einer alten Mühle nicht verwendbar --
dazu müsste sie auf einer aktuellen Maschine irrsinnig
schnell sein :)
Es geht überhaupt nicht darum, besondere, nicht leistbare
Aufwendungen zu tätigen, um uralte, exotische Hardware
zu unterstützen -- es geht nur darum, mit den Ressourcen
nicht um sich zu werfen.
> Wie da der Bezug zur "egoshooter-tauglichen Graphik"> reingerät, verschliesst sich mir.
Der kommt durch Helmuts Bemerkung über "rasend schnelles
zoomen" zustande.
Ich sage es gerne nochmal, auch wenn Du es nicht hören
willst: An der EDA-Software, die ich kenne, hat mir NIE
irgend eine Graphikfähigkeit gefehlt, sondern immer nur
Dinge, die man auch auf Hardware von vor 20 Jahren hätte
realisieren können.
Sie sind aber (vermutlich) deshalb nicht realisiert worden,
weil das (zumindest bei der preiswerten Software) ökonomisch
einfach nicht drin war.
Egon D. schrieb:> Verstehe ich nicht.
Dann geh' mal paar Postings zurück:
Beitrag "Re: Neues, halbfertiges Elektronik-CAD-Programm"
Dort hat Helmut noch einmal kurz zusammengefasst, warum Lukas sich so
entschieden hat.
Man könnte es auch noch kürzer zusammenfassen: Konzentration auf das
Wesentliche, statt sich in Nebenschauplätzen zu verlieren, nur um
Hardware aus dem letzten Jahrhundert auch noch unterstützen zu können.
Als One-Man-Show muss man halt sehen, wo man seine Ressourcen
investiert.
> Dinge, die man auch auf Hardware von vor 20 Jahren hätte realisieren können.
Dann hast du wohl noch nie mit einem EDA-System mit 3D-Darstellung
gearbeitet – egal, ob nun Kicad oder Altium. Das hätte man nämlich auf
der Hardware von vor 20 Jahren einfach nicht machen können, ist aber
eine wirklich gute Hilfe, wenn man das einmal benutzen durfte. Kann
einem gut und gern mal einen Prototypenzyklus einsparen, bei dem man
sonst nur festgestellt hätte, dass Bauteil xyz am Ende doch mit einem
Gehäusevorsprung kollidiert … Möchte ich nicht mehr missen, ehrlich.
Egon D. schrieb:> Jan L. schrieb:>>> Egon D. schrieb:>>> Jan L. schrieb:>>>>>>> ...das überhaupt "ausführlich begründen" zu müssen>>>> halte ich schon für sehr konziliant, weil>>>> offensichtlich...>>>>>> Was ist denn daran offensichtlich?>>>> Dass eine nicht-kommerzielle one-man-show es weder>> leisten kann noch höchstwahrscheinlich Lust dazu>> verspürt, Flohmarkt-Hardware zu unterstützen.>>> Verstehe ich nicht.>> Software, die auf einer alten Mühle anständig läuft,> tut es ganz sicher auch auf einer aktuellen Maschine.>> Software, die auf einer aktuellen Maschine nur anständig> läuft, ist auf einer alten Mühle nicht verwendbar --> dazu müsste sie auf einer aktuellen Maschine irrsinnig> schnell sein :)
Dein Denkfehler liegt nicht in der Hardware, sondern in der Software
begründet. WS Rechner funktioniert nicht, weil seine Treibersoftware auf
diesem Rechner unzureichend ist. Das hat mir Recourcenverschwendung
nicht viel zu tun und wenn es das hat, dann ist Lukas der falsche
Ansprechpartner.
Läufst denn auf diesem Rechner mit Linux und Mesa? Wen ja: bitte sehr.
Wenn langsam: Du wolltest das Ding verwenden. Wenn nicht: der
Taschenrechner ist wirklich zu alt. Keine Hände, keine Kekse!
Gruß,
Holm
W.S. schrieb:> Egon D. schrieb:>> Du kannst lediglich feststellen, dass er nicht die>> Software erschafft, die DU (oder ich) gern verwenden>> würde>> Also damit beschreibst du genau DAS, was ich mit> "Hormon" schon gesagt habe.
Nicht ganz. Dein "hormongesteuert" drückt eine negative
Wertung aus, die meiner Formulierung (hoffentlich) fehlt.
Auch wenn ich betrübt über Lukas' Entscheidung bin, so
muss ich ihn deshalb nicht gleich beleidigen.
> Aber sag mal, findest du denn nicht, daß das> Programmieren eines derartigen Projektes OHNE Anzielen> einer breiten Verwendung irgendwie.. nun ja, eher etwas> eigentümlich ist?
Nein -- und zwar aus zwei Gründen.
Zum einen: "Breit" liegt im Auge des Betrachters. Selbst
wenn von den -- aus der Luft gegriffen -- 10 Millionen
EDA-Leuten nur eine verschwindenden Minderheit von 0.1%
horizon verwenden, wären das 10'000 Nutzer.
Wenn solche verbitterten Rentner wie Du und ich nicht
zu diesen 0.1% gehören, so wird das für Lukas kein Problem
sein... :)
Zum zweiten: Wer die Diskussionen in Newsgroups und
Foren kennt, der weiss, dass man sich keinesfalls von
der "öffentlichen Meinung" abhängig machen darf. Es ist
ratsam, auf fundierte Kritik zu hören -- aber mehr auch
nicht, ansonsten kommt man zu gar nichts. Es ist also
durchaus eine gute Idee, selbst ein klares, an den eigenen
Bedürfnissen orientiertes Konzept zu haben, an dem man
sich orientiert. Wenn dann noch andere Nutzer dazukommen,
die mit den eigenen Grundwerten übereinstimmen -- um so
besser.
Du kritisierst meiner Meinung nach Lukas auf einer Ebene,
auf der er nichts falsch macht.
Leute, das hier jemand (Lukas) nicht nachgedacht hat und einfach das
neueste benutzt was ihm untergekommen ist kann ich verstehen.
Auch wenn ich es sehr bedauere, weil ich mit meiner Onboard Grafikkarte
nicht
teilhaben kann. Eine 2. Karte kann ich nicht mehr einbauen, weil kein
Platz.
Ein neuer Rechner kommt mir nur wegen einem CAD System nicht ins Haus.
Ich kenne noch andere Projekte wo ich schon dem Entwickler vor 10 Jahren
gesagt hatte das seine Entscheidung (.NET + XNA) eine Dummheit ist.
Nun heute ist sein Produkt zwar fertig, aber er hat sich selber in die
WINDOWS Ecke gedrückt wobei alle mitbewerber auch Linux und MAC können.
QT und Konsorten, sind da halt einfach besser porttierbar.
Achso, ratet mal was öfter benutzt wird.
Klaus schrieb:> Leute, das hier jemand (Lukas) nicht nachgedacht hat und einfach das> neueste benutzt was ihm untergekommen ist kann ich verstehen.
Ist allerdings nicht der Fall. Er hat nachgedacht – und deshalb das
benutzt, was seit 10 Jahren (inzwischen) am Markt verfügbar ist.
Jörg W. schrieb:> Dann hast du wohl noch nie mit einem EDA-System> mit 3D-Darstellung gearbeitet – egal, ob nun Kicad> oder Altium.
... oder Target. -- Doch, das habe ich.
> Das hätte man nämlich auf der Hardware von vor 20 Jahren> einfach nicht machen können, ist aber eine wirklich gute> Hilfe, wenn man das einmal benutzen durfte. Kann einem> gut und gern mal einen Prototypenzyklus einsparen, bei> dem man sonst nur festgestellt hätte, dass Bauteil xyz> am Ende doch mit einem Gehäusevorsprung kollidiert …> Möchte ich nicht mehr missen, ehrlich.
<Seufz> Ich weiss wirklich nicht, was daran so schwer
zu verstehen ist: Natürlich das das Feature SINNVOLL --
aber es ist mir nicht wichtig genug, um andere
Eigenschaften der Software dafür zu opfern. Ist das so
schwer zu begreifen?
Holm T. schrieb:> Dein Denkfehler liegt nicht in der Hardware, sondern> in der Software begründet. WS Rechner funktioniert> nicht, weil seine Treibersoftware auf diesem Rechner> unzureichend ist.
Es geht (mir) nicht um W.S.'s Rechner, sondern um die
Graphik-Fixierung von horizon.
Mir hat bei den EDA-Systemen, mit denen ich bisher zu
tun hatte, NIE irgend eine Graphikfähigkeit gefehlt.
Ergo sind alle Argumente, die auf die überlegenen
Graphikfähigkeiten von horizon zielen, für mich
gleichwertig zu leeren Zeichenketten. Das hat einfach
keine Priorität.
Wenn etwas, was ich nicht brauche, einfach so dabei
ist, dann stört das nicht. Wenn ich aber für etwas,
das ich nicht benötige, zusätzliche Komplikationen
in Kauf nehmen muss, dann ist der Spaß zu Ende.
Egon D. schrieb:> <Seufz> Ich weiss wirklich nicht, was daran so schwer zu verstehen ist:> Natürlich das das Feature SINNVOLL -- aber es ist mir nicht wichtig> genug, um andere Eigenschaften der Software dafür zu opfern.
Naja, was genau „opferst“ du denn?
Aber eigentlich ist das jetzt so langsam egal, dreht sich eh' nur alles
im Kreise. Zum Glück arbeitet Lukas unabhängig von all diesem Palaver
daran wohl weiter. ;-) Das ist das beste, was er tun kann.
Im Gegensatz zu W.S. sehe ich sowieso nicht, dass nur deshalb, weil
Horizon sich auf einen Mindeststandard an OpenGL-Level festgelegt hat,
ihm die Nutzer ausbleiben würden. Die meisten potenziellen Nutzer werden
das vermutlich nicht einmal bemerken, dass diese Anforderung existiert,
und sie werden Horizon nach ganz anderen Kriterien bewerten, ob sie
damit dann arbeiten möchten oder nicht.
Jörg W. schrieb:>> Dinge, die man auch auf Hardware von vor 20 Jahren hätte realisieren können.>> Dann hast du wohl noch nie mit einem EDA-System mit 3D-Darstellung
vor allem - er hat sicherlich auch noch nie eines programmiert. Würde
ich heute mit der Erstellung irgendeiner Anwendung anfangen, dann
würde ich ganz sicher die APIs von heute nehmen, die mir
Basisfunktion X und Y abnehmen, und nicht die APIs von vorgestern, bei
denen ich womöglich noch langweilige Dinge wie Bresenham zu Fuss basteln
müsste, nur damit's auch auf Herkulesgrafik noch täte... :-)
Jan L. schrieb:> Jörg W. schrieb:>>> Dinge, die man auch auf Hardware von vor 20 Jahren>>> hätte realisieren können.>>>> Dann hast du wohl noch nie mit einem EDA-System mit>> 3D-Darstellung [gearbeitet]>> vor allem - er hat sicherlich auch noch nie eines> programmiert.
Wird schätzungsweise auch nie passieren.
Unwahrscheinlich, aber dennoch möglich wäre immerhin,
dass ich mal an einem EDA-System arbeite. Das bekommt
mit hoher Wahrscheinlichkeit einen 3D-Export, so dass
man einen externen Viewer aufrufen kann, wenn einem
das wichtig ist.
Das EDA-System ist natürlich auch ohne 3D-Viewer
benutzbar.
Jörg W. schrieb:> Egon D. schrieb:>> <Seufz> Ich weiss wirklich nicht, was daran so>> schwer zu verstehen ist: Natürlich das das Feature>> SINNVOLL -- aber es ist mir nicht wichtig genug,>> um andere Eigenschaften der Software dafür zu opfern.>> Naja, was genau „opferst“ du denn?
Modularität beispielsweise. Aber das ist vor Monaten
alles schon durchgekaut worden.
> Aber eigentlich ist das jetzt so langsam egal,
Eigentlich nicht. Es ist nicht egal -- man kann es nur
nicht ändern. Das ist nicht dasselbe.
> Im Gegensatz zu W.S. sehe ich sowieso nicht, dass nur> deshalb, weil Horizon sich auf einen Mindeststandard> an OpenGL-Level festgelegt hat, ihm die Nutzer> ausbleiben würden.
Nein, deshalb nicht. Die OpenGL-Sache ist nur das Symptom,
nicht die Ursache.
> Die meisten potenziellen Nutzer werden das vermutlich> nicht einmal bemerken, dass diese Anforderung existiert,> und sie werden Horizon nach ganz anderen Kriterien> bewerten, ob sie damit dann arbeiten möchten oder nicht.
Richtig. Sie werden sie nach den Kriterien bewerten, die
sie an x-beliebige fertige Software anlegen: Entweder sie
gefällt ihnen, dann werden sie sie verwenden, oder sie
gefällt ihnen nicht, dann verwenden sie sie eben nicht.
Eine Möglichkeit, diese Software grundlegend mitzugestalten,
hatten sie ja nicht.
Und -- nein, das ist keine echte Kritik. Es ist nur eine
etwas enttäuschte Feststellung.
Egon D. schrieb:> Eine Möglichkeit, diese Software grundlegend mitzugestalten, hatten sie> ja nicht.
In Teilen schon, allerdings nicht im Konzept.
Aber das ist OK für eine One-Man-Show. Lukas wollte ja in erster Linie
etwas für sich machen, weil er mit dem Existierenden unzufrieden war. Er
stellt es außerdem allen zur Verfügung.
Egon D. schrieb:> Das bekommt> mit hoher Wahrscheinlichkeit einen 3D-Export, so dass> man einen externen Viewer aufrufen kann, wenn einem> das wichtig ist.>> Das EDA-System ist natürlich auch ohne 3D-Viewer> benutzbar.
"3D-Export", "3D-Viewer"... klingt, als würdest du davon ausgehen, dass
die Festlegung auf OpenGL 3.2 als Mindeststandard irgendwie mit "3D" zu
tun hat. Hat es aber eher nicht...
Ob du nun den "3D-Viewer" weglässt, oder nicht - OpenGL3.x malt dir halt
ohne Krücken automatisch hübsche runde Ecken (und vieles andere) ins
Canvas... :)
Jörg W. schrieb:> Egon D. schrieb:>> Eine Möglichkeit, diese Software grundlegend>> mitzugestalten, hatten sie ja nicht.>> In Teilen schon, allerdings nicht im Konzept.
Tja... ich hatte mal so einen Chef. Der Mann war
fachlich gut und sehr vielseitig, aber er hatte die
Macke, das Grundkonzept für unsere Geräte in seiner
kompletten Breite festlegen zu wollen -- also das
physikalische Prinzip, die Werkstoffauswahl, die
Mechanik, die analoge Hardware, die Software.
Völlig unnötig zu erwähnen, dass der Mann zwar besser
war als jeder Einzelne von uns Technikern -- aber er
war nicht besser als wir alle zusammen.
Folge: Seine Konzepte waren i.d.R. untauglich; die
Geräte nur verkaufbar, weil die Techniker massiv Arbeit
in die Verbesserung gesteckt haben.
> Aber das ist OK für eine One-Man-Show.
Ich kritisiere den Verlauf dieser Ein-Mann-Show nicht.
Ich bin enttäuscht davon, dass es erklärtermaßen eine
solche bleiben soll.
Jan L. schrieb:> Egon D. schrieb:>> Das bekommt>> mit hoher Wahrscheinlichkeit einen 3D-Export, so dass>> man einen externen Viewer aufrufen kann, wenn einem>> das wichtig ist.>>>> Das EDA-System ist natürlich auch ohne 3D-Viewer>> benutzbar.>> "3D-Export", "3D-Viewer"... klingt, als würdest du> davon ausgehen, dass die Festlegung auf OpenGL 3.2 als> Mindeststandard irgendwie mit "3D" zu tun hat. Hat es> aber eher nicht...
Ach ja, richtig, da war was...
> Ob du nun den "3D-Viewer" weglässt, oder nicht - OpenGL3.x> malt dir halt ohne Krücken automatisch hübsche runde Ecken> (und vieles andere) ins Canvas... :)
Ja, naja, und genau das ist der Punkt: Die hübschen runden
Ecken mögen zwar hübsch sein -- aber sie sind völlig
verzichtbar. Ich würde auch eine Xlib-basierte Software
verwenden, wenn sie das macht, was ich brauche.
Eine Bauteilbibliothek, die den Namen verdient, ist aber
NICHT nur hübsch, sondern essenziell.
Da die Prioritäten auf "hübsch aussehen" liegen und nicht
auf "essenziell", taugt die Software für mich nicht, und
da Mitarbeit, die über Kosmetik hinausgeht, nicht gewünscht
ist, muss ich mich halt anderweitig umsehen.
Egon D. schrieb:> Ja, naja, und genau das ist der Punkt: Die hübschen runden> Ecken mögen zwar hübsch sein
OMG, das war doch nur ein Beispiel; hier (für dich) substantieller
vielleicht: OGL3.x malt dir das Grid automatisch. Und sicherlich noch
einiges an "Routine" mehr...
> Eine Bauteilbibliothek, die den Namen verdient, ist aber> NICHT nur hübsch, sondern essenziell.
wo kommt denn jetzt die "Bauteilebibliothek" auf einmal her?
Da geht ja Flöhe hüten einfacher...
> Da die Prioritäten auf "hübsch aussehen" liegen und nicht> auf "essenziell", taugt die Software für mich nicht, und> da Mitarbeit, die über Kosmetik hinausgeht, nicht gewünscht> ist, muss ich mich halt anderweitig umsehen.
jetzt wird's aber etwas wunderlich, finde ich - das Ding liegt im
Github, und erst wenn dein dritter brauchbarer Pullrequest abgelehnt
wird, gäbe es überhaupt mal Anlass, über der Grad der gewünschten
Mitarbeit zu spekulieren.
Und dann gehst du eben hin und klonst das Repo, und stellst deine
Version der Allgemeinheit zur Verfügung...
Egon D. schrieb:> Da die Prioritäten auf "hübsch aussehen" liegen und nicht auf> "essenziell",
Das ist allerdings eine recht unfaire Unterstellung.
Lukas hat klar und deutlich Konzepte hinter seiner Implementierung, das
ist nicht „irgendwie drauf los programmiert“. Die Konzepte gehen auch
deutlich über eine zeitgemäß aussehende Grafik hinaus.
> taugt die Software für mich nicht
Das ist eine Schlussfolgerung für dich, aber hat mit „hübsch aussehen“
nun nichts zu tun. Es heißt lediglich, dass Lukas' Konzepte nicht die
sind, die du von so einer Software erwarten würdest. Andere Anwender
können das völlig anders sehen.
Jörg W. schrieb:> Lukas hat klar und deutlich Konzepte hinter seiner> Implementierung,
Das habe ich nirgendwo bestritten.
> das ist nicht „irgendwie drauf los programmiert“.
War nie meine Behauptung. Verwechselst Du mich mit
W.S.?
> Die Konzepte gehen auch deutlich über eine zeitgemäß> aussehende Grafik hinaus.
Mag sein.
Als das vor Monaten hier diskutiert wurde, hieß es
z.B. "SPICE-Export ist nicht vorgesehen." Auch wenn
ich kein großer SPICE-Fan bin -- aber das geht mir
etwas zu weit.
Austauschbarkeit von Symbolen, Footprints, Schaltplänen
und Layouts mit anderer Software hatte, soweit ich mich
entsinne, auch keine Priorität.
Von projektübergreifend kompatiblen Schnittstellen, so
dass man den horizon-Schaltplaneditor mit pcb-rnd
kombinieren kann, ist sowieso keine Rede.
Also: Das übliche.
Alles, was mit herkömmlicher Software nicht geht, geht
mit horizon auch nicht.
>> taugt die Software für mich nicht>> Das ist eine Schlussfolgerung für dich, aber hat mit> „hübsch aussehen“ nun nichts zu tun. Es heißt lediglich,> dass Lukas' Konzepte nicht die sind, die du von so einer> Software erwarten würdest. Andere Anwender können das> völlig anders sehen.
Ich verstehe nicht ganz, warum Dich meine Einschätzung so
aufbringt. Jedermann hat nur eine begrenzte Arbeitskraft.
Was ich von außen sehe, das ist: Das GUI von horizon sieht
ziemlich geil aus. Funktionalität, die ich für wichtig
halte, spielt keine Rolle.
Ob das nur Korrelation oder schon Kausalität ist, will
ich nicht beurteilen -- es ist aber auch egal.
Jörg W. schrieb:> Im Gegensatz zu W.S. sehe ich sowieso nicht, dass nur deshalb, weil> Horizon sich auf einen Mindeststandard an OpenGL-Level festgelegt hat,> ihm die Nutzer ausbleiben würden.
Jörg, versuche doch bitte mal ganz einfach ruhig mitzulesen, ohne auf
alles allergisch zu reagieren. Egon hat lediglich das gesagt:
Egon D. schrieb:> Du kannst lediglich feststellen, dass er nicht die> Software erschafft, die DU (oder ich) gern verwenden> würde -- aber DAS ist nun keine echte Überraschung.
Eben, es ist für niemanden eine Überraschung, insbesondere nicht für
mich - siehe meine früheren Einlassungen. Dennoch frage ich mich nach
dem WARUM. Irgend ein 'warum' muß es ja geben.
ODER ETWA NICHT?
Ich habe mein ganzes Leben lang meine Entwicklungen genau SO betrieben,
daß ich mit einer möglichst großen Käuferschicht rechnen kann. Sowas ist
derart lebensnotwendig, daß allenfalls jemand aus dem öff.Dienst es
nicht versteht. Aber jeder, der seine Brötchen selbst verdienen muß,
versteht das sofort.
Warum also macht Lukas das so wie er es macht? Ich sehe da zwei Gründe:
die pure Lust am Programmieren (die ich in jungen Jahren ebenfalls in
den Knochen gespürt habe) und das Bestreben, mal was vorzulegen, womit
man am Beginn seines Berufslebens Eindruck machen kann und folglich
schneller und höher hinaus kommt.
Beides sind wirklich ernsthafte und zu akzeptierende Beweggründe - wenn
man mal drüber nachdenkt!
Aber bei beiden Gründen tritt die tatsächliche Verbreitung des Produkts
in den Hintergrund - das wäre mein Punkt, den du jedoch indirekt in
Frage gestellt hast.
Es gäbe auch noch einen anderen Grund: die innere Verärgerung darüber,
wie es andere Hersteller machen und daraus der Ansporn, eben die Punkte,
die einem selber mißfallen mal exemplarisch besser zu machen. Aber dann
sind Hardwareangelegenheiten wie OpenGL eher nebensächlich.
Also: Ich gönne dem Lukas die beiden ersten Gründe voll und ganz, da hat
er meine Sympathie.
Ich kann auch Grund #4 verstehen.
Aber Grund #3 sollte dabei nicht untergehen, möglicherweise bedarf es
nur eines kleinen Kringels im Programm. Es wäre jedenfalls SCHADE.
Bedenke mal, daß es auch Rückwärts-Inkompatibilitäten zwischen OpenGL 3
und 4 gibt, so daß Lukas in jedem Falle irgendwann eine Abstraktion
oberhalb OpenGL und darunter eine Versionsbehandlung wird einführen
müssen. Da ist 2.1 versus 3.3 nur die Spitze des Eisberges.
So, denk mal ganz ruhig drüber nach.
W.S.
Egon D. schrieb:> Als das vor Monaten hier diskutiert wurde, hieß es z.B. "SPICE-Export> ist nicht vorgesehen." Auch wenn ich kein großer SPICE-Fan bin -- aber> das geht mir etwas zu weit.
„nicht vorgesehen“ heißt ja erstmal nicht, dass man das nicht haben
kann, sondern nur, dass er sich darum (zumindest derzeit) nicht kümmert.
Wäre ein Punkt, wo jemand anders eingreifen könnte, wenn er möchte, denn
dass es konzeptionell gar nicht möglich ist, das zu realisieren, vermute
ich zumindest nicht. So ein Export ist ja erstmal nur eine
Datenkonvertierung, das kann man am Ende sogar in einer Scriptsprache
hinlegen.
> Austauschbarkeit von Symbolen, Footprints, Schaltplänen und Layouts mit> anderer Software hatte, soweit ich mich entsinne, auch keine Priorität.
Hätte ich mir an seiner Stelle auch nicht als Priorität gesetzt. Das ist
nämlich ein Fass ohne Boden. Habe sowas schon mal bei BAE gesehen,
welches Eagle-Import-Scripte hat.
Diskutiert hatten wir darüber auch schon, kann ich mich erinnern.
> Von projektübergreifend kompatiblen Schnittstellen, so dass man den> horizon-Schaltplaneditor mit pcb-rnd kombinieren kann, ist sowieso keine> Rede.
Wäre die Frage, wofür man sowas braucht. Und falls es jemand braucht,
was derjenige denn an Horizon ändern müsste, um so eine Schnittstelle zu
haben.
Die einzige Schnittstelle, die ich mir „projektübergreifend kompatibel“
jemals bei EDA-Software gewünscht hätte, wäre ein mögliches Anflanschen
des BAE-Autorouters … der ist wirklich gut. Kann man aber vergessen,
denn die BAE-Schnittstelle ist nicht offengelegt. Ansonsten ist es mir
lieber, wenn der Board-Editor eines Systems sinnvoll und gut zum
Schaltplaneditor passt.
Jan L. schrieb:> Egon D. schrieb:>> Ja, naja, und genau das ist der Punkt: Die hübschen>> runden Ecken mögen zwar hübsch sein>> OMG, das war doch nur ein Beispiel; hier (für dich)> substantieller vielleicht: OGL3.x malt dir das Grid> automatisch. Und sicherlich noch einiges an "Routine"> mehr...
Nein, das ist für mich nicht substanzieller. Ein Gitter
konnte man auch vor OpenGL schon zeichnen -- und hat
das auch getan. Dass das jetzt in 1µs statt in 1ms
abläuft, interessiert mich ehrlich gesagt nicht.
>> Eine Bauteilbibliothek, die den Namen verdient, ist>> aber NICHT nur hübsch, sondern essenziell.>> wo kommt denn jetzt die "Bauteilebibliothek" auf> einmal her?
"OMG, das ist ein Beispiel!"
Und zwar ein Beispiel für eine Sache, die mir wesentlich
wichtiger ist als eine geile Graphik.
>> Da die Prioritäten auf "hübsch aussehen" liegen und>> nicht auf "essenziell", taugt die Software für mich>> nicht, und da Mitarbeit, die über Kosmetik hinausgeht,>> nicht gewünscht ist, muss ich mich halt anderweitig>> umsehen.>> jetzt wird's aber etwas wunderlich, finde ich - das Ding> liegt im Github, und erst wenn dein dritter brauchbarer> Pullrequest abgelehnt wird, gäbe es überhaupt mal Anlass,> über der Grad der gewünschten Mitarbeit zu spekulieren.
Da muss ich nicht spekulieren. Es gibt keinen Zweifel
daran, dass die Art der Mitarbeit, die ich bieten
könnte, nicht gewünscht wird.
> Und dann gehst du eben hin und klonst das Repo, und> stellst deine Version der Allgemeinheit zur Verfügung...
Das werde ich aus dem einfachen Grund nicht tun, weil
ich von C++ keine Ahnung habe.
Wenn, dann ist es deutlich wahrscheinlicher, dass ich
mal zu pcb-rnd Kontakt aufnehme, denn dort scheint mir
die Einstiegsschwelle WESENTLICH niedriger.
W.S. schrieb:> Aber bei beiden Gründen tritt die tatsächliche> Verbreitung des Produkts in den Hintergrund - das> wäre mein Punkt, den du jedoch indirekt in Frage> gestellt hast.
Ich kann Dir offen gestanden nicht folgen.
Du hast weiter oben gefragt, ob es denn nicht eigenartig
wäre, eine Software zu erstellen und zu publizieren, an
deren Verbreitung man nicht wirklich interessiert ist.
Meine Antwort war: Nein, das ist nicht eigenartig.
Jetzt lieferst Du selbst Gründe dafür, warum ein Mensch
genau das tut: Software erstellen, an deren Verbreitung
er nicht vorrangig interessiert ist.
Wo siehst Du jetzt den Widerspruch?
Ich habe auch mindestens ein Projekt, bei dem ich zwar
gern Feedback, gute Ideen und unbezahlte Tester hätte,
aber nicht wirklich gern sehen würde, wenn andere die
Software kommerziell einsetzen. Nun ja... beides
gleichzeitig geht halt nicht :)
Hey,
ich bin dabei alternativen für Eagle zu evaluieren und da sehen mir
KiCad und Horizon interessant aus.
Den aktuelle Stand bekomme ich jedoch leider nicht compiliert (Debian
Stretch)
1
src/parameter/program_polygon.hpp:8:7: error: no matching function for call to ‘horizon::ParameterProgram::ParameterProgram()’
2
In file included from src/pool/padstack.hpp:9:0,
3
from src/package/pad.hpp:5,
4
from src/pool/package.hpp:14,
5
from src/pool/package.cpp:1:
6
7
src/pool/padstack.cpp:13:112: error: use of deleted function ‘horizon::ParameterProgramPolygon::ParameterProgramPolygon()’
Malte _. schrieb:> Vielleicht interessiert dies ja die Entwickler und lässt sich leicht> beheben.
Ist behoben und sollte in Zukunft auch nicht mehr so einfach passieren,
da die CI jetzt auch mit debian stretch statt ubuntu artful baut.
Ein paar Worte zu OpenGL an der Stelle noch: OpenGL kommt sowohl zum
Rendern von 2D-Ansichten wie Schaltplan und Board zum Einsatz, als auch
für die 3D-Vorschau.
Bei letzterer ergeben sich mit Geometry shadern ganz nette
Möglichkeiten, so müssen z.B. für "Boden" und "Deckel" der Layer
insgesamt nur ein Satz Dreieecke auf die GPU geladen werden, das
Duplizieren nach oben und unten geschieht dann im geometry shader auf
der GPU. Auch für die Wände wird nur die Kontur auf die GPU geladen, die
macht daraus dann die Dreieecke für die Wand.
In der 2D-Ansicht bekommt man Dinge wie Alpha-Transparenz quasi für
Umme. Auch die Auswahl-Boxen werden weitestgehend in Shadern auf der GPU
gemalt. Nun mag einer entgegnen, das ginge ja auch ohne OpenGL in
Software, was grundsätzlich auch stimmt. Allerdings müsste ich mir dann
mehr Gedanken darüber machen, was mit der darunter liegenden Grafik
geschieht, wenn die Auswahl-Box wieder weg ist. Mit OpenGL alles kein
Problem und ich kann mich auf die wirklich wichtigen Dinge
konzentrieren.
Zumal (viele) Computer der letzten 10 Jahre einen geeigneten Coprozessor
(GPU) haben, der genau für solche Grafikaufgaben gemacht ist. Wär' ja
schade, wenn der sich langweilt.
Lukas K. schrieb:> Zumal (viele) Computer der letzten 10 Jahre einen geeigneten Coprozessor> (GPU) haben, der genau für solche Grafikaufgaben gemacht ist. Wär' ja> schade, wenn der sich langweilt.
Dein Ansatz ist schon richtig - Wenn W.S. für Android entwickeln würde,
dann vmtl die nächsten 10 Jahre noch für Android 4 SCNR ;-)
Lukas K. schrieb:> In der 2D-Ansicht bekommt man Dinge wie Alpha-Transparenz quasi für> Umme.
Darauf möchte ich auch nicht mehr verzichten müssen. :)
Ohne OpenGL ist das nicht nur Aufwand in der Programmierung, sondern
auch wirklich vermplemperte Rechenzeit der CPU, die sie für besseres
benutzen kann.
Ich bin nochmal alle Argumente hier durchgegegangen und finde eigentlich
nur eine Quintessenz daraus:
Man programmiere sich sein eigenes tool zum Selbstzweck und aus Spass am
Programmieren. Sinn macht es keinen.
Wer ernsthaft Funktionalität verbessern will, der muss sich in ein
bestehendes Programm einklinken und z.B.:
* Ein ULP für EAGLE schreiben, welches die Funktionen hat
* Einen alternativen Editor für KiCAD entwickeln
* Einen alternativen Autorouter / Placer schreiben
* Einen Checker zur Einhaltung bestimmter Regeln im Sonderplatinenbau
entwickeln, der übers Design rattert
* und und und
Gerade KiCAD bietet uns damit alle Möglichkeiten. Die Sourcen sind mehr
oder weniger frei verfügbar und auch dokumentiert. Dort würde ich
einhaken, weil sich da auch sofort Unterstützer finden, die ein Projekt
weiterziehen, wenn man selber nicht mehr kann.
M. W. schrieb:> Gerade KiCAD bietet uns damit alle Möglichkeiten.
Ach, Mensch. Was willst du damit in diesem Thread? Hast du ihn wirklich
gelesen?
Lukas hatte ganz am Anfang mal geschrieben, dass er diese Idee durchaus
auch hatte. Hat er zu den Akten gelegt, weil da eben vieles schon zu
„verbaut“ ist, und das, was ihm wichtig war, auf diese Weise nicht
oder nur außerordentlich umständlich realisierbar schien.
> Sinn macht es keinen.
Mag deine Meinung sein, und wir haben ja Meinungsfreiheit. Aber außer
W.S. und einigen wenigen anderen werden die meisten Mitleser dieses
Threads wohl diese deine Meinung eher nicht teilen.
Ich finde es ja super, was Lukas hier auf die Beine stellt.
Ich verstehe auch die Beweggründe, sein eigenes
Ding machen zu wollen, ohne Kompromisse einzugehen.
Nur für den Anwender und die Open Source Szene ist das
die übliche Katastrophe!
Anstatt die Energie auf ein CAD zu bündeln, und
dieses zur Perfektion zu bringen,
bleiben viele Baustellen übrig, die meistens
irgendwann nicht mehr gewartet werden.
Jedes Programm hat ab einer gewissen Komplexität und Reife
eine lange Liste von Kompromissen und Eigenheiten.
Da ist Lukas CAD nicht anders.
Ich würde da auch nichts ändern wollen, reine Bloatware igitigit :-)
Programmierer wollen programmieren, und nicht den Code anderer
verstehen und debuggen, der per Definition suboptimal ist.
Aber Vielfalt ist auch schön.
udok schrieb:> Nur für den Anwender und die Open Source Szene ist das> die übliche Katastrophe!
Sehe ich nicht so. Aber das ist dann halt meine Meinung. :)
> Anstatt die Energie auf ein CAD zu bündeln, und> dieses zur Perfektion zu bringen,> bleiben viele Baustellen übrig, die meistens> irgendwann nicht mehr gewartet werden.
Wenn du merkst, dass du das eine CAD halt nicht zur „Perfektion“
bringen kannst, weil es designmäßig ziemlich verbaut ist, dann finde ich
es völlig legitim, an dieser Stelle einen Schnitt zu machen und was
Neues anzufangen.
Gerade in der Opensource-Szene passiert das immer wieder, und keineswegs
deshalb notwendigerweise zum Schlechten (für den Anwender). Ein
Beispiel, welches mir spontan einfiele, wäre hier sendmail. War mal
der Mailserver schlechthin, viele seine Features waren damals durchaus
wichtig, aber mittlerweile benutzt es fast niemand mehr ob der
Alternativen. Es muss aber eben auch niemand mehr zwischen UUCP-,
Internet-, DECnet- und was-weiß-ich-Net-Mailadressen irgendwas
umschreiben, dafür sind uns andere Dinge wichtig geworden.
Horizon bietet halt damit die Chance, dass es tatsächlich auch besser
sein könnte als die Dinge, die Lukas sich ja durchaus angesehen hat,
bevor er begonnen hat. Wenn es nicht besser wird, war's halt ein
Versuch, wenn's besser wird, haben am Ende alle gewonnen.
Jörg W. schrieb:> Wenn du merkst, dass du das eine CAD halt nicht> zur „Perfektion“ bringen kannst, weil es designmäßig> ziemlich verbaut ist, dann finde ich es völlig> legitim, an dieser Stelle einen Schnitt zu machen> und was Neues anzufangen.
Ja -- aber Dein Irrtum liegt in der Voraussetzung.
"Das eine CAD" enthält mindestens einen Schaltplan-
editor, eine Bauteildatenbank und einen Layout-
editor. Es ist nicht sinnvoll, wenn jedes neue
Projekt versucht, ALLE diese Komponenten neu aus
dem Boden zu stampfen.
Was würdest Du denn sagen, wenn IDE, Compiler,
Linker, Assembler und Versionsverwaltung so
miteinander verflochten wären, dass Du alles
wechseln musst, wenn Du eigentlich nur ein
anderes VCS benutzen willst?
> Horizon bietet halt damit die Chance, dass es> tatsächlich auch besser sein könnte als die Dinge,> die Lukas sich ja durchaus angesehen hat, bevor> er begonnen hat. Wenn es nicht besser wird, war's> halt ein Versuch, wenn's besser wird, haben am Ende> alle gewonnen.
Nein! Erfahrungsgemäß ist die Wahrheit VIEL ärgerlicher:
Es wird einige Dinge geben, die in horizon tatsächlich
SO viel besser sind, dass man eine bestimmte Komponente
von horizon wirklich benutzen will. Aber da man diese
eine Komponente nicht mit anderen Komponenten aus
anderen Projekten kombinieren können wird, bleibt alles
beim Alten: Wahl zwischen Pest und Cholera.
Egon D. schrieb:> Es ist nicht sinnvoll, wenn jedes neue Projekt versucht, ALLE diese> Komponenten neu aus dem Boden zu stampfen.
Doch, aus meiner Sicht schon. Denn zumindest bei Kicad (und auch gEDA)
sind diese Komponenten jeweils ziemlich getrennt voneinander entstanden
und daher nur mäßig gut in ihrem Zusammenspiel. Wenn ein „integriertes
Design“ es mal schafft, das besser zu bekommen, dann bin ich da vollauf
mit Lukas.
(Ob Eagle oder Altium oder BAE oder Target oder … das besser machen,
hülfe uns ohnehin nicht viel, da nicht Opensource.)
> Erfahrungsgemäß ist die Wahrheit VIEL ärgerlicher:
Wir haben aber da völlig entgegengesetzte Standpunkte: für mich (und,
wie ich das sehe, auch für Lukas) sind die Komponenten eines EDA-Systems
eben keine eigenständigen Teile, die man völlig voneinander unabhängig
bemuddeln oder gegenseitig austauschen kann. Derartige Ansätze gab's ja
bereits in der Vergangenheit, sie waren eher nicht erfolgreich (gEDA)
oder „so einigermaßen brauchbar“ (Kicad, aber eigentlich auch erst nach
einem Jahrzehnt oder mehr an diesem Punkt angekommen, nachdem CERN da
mitmischte).
Jörg W. schrieb:> Egon D. schrieb:>> Es ist nicht sinnvoll, wenn jedes neue Projekt>> versucht, ALLE diese Komponenten neu aus dem>> Boden zu stampfen.>> Doch, aus meiner Sicht schon. Denn zumindest bei> Kicad (und auch gEDA) sind diese Komponenten> jeweils ziemlich getrennt voneinander entstanden> und daher nur mäßig gut in ihrem Zusammenspiel.
Da besteht aus meiner Sicht kein (zwingender)
Zusammenhang. Die Frage ist aus meiner Sicht nicht,
ob die Komponenten getrennt oder zusammen entstehen,
sondern ob es eine tragfähige Vorstellung von der
Struktur des Gesamtsystems gibt oder nicht.
> Wir haben aber da völlig entgegengesetzte> Standpunkte: für mich (und, wie ich das sehe, auch> für Lukas) sind die Komponenten eines EDA-Systems> eben keine eigenständigen Teile, die man völlig> voneinander unabhängig bemuddeln oder gegenseitig> austauschen kann. Derartige Ansätze gab's ja> bereits in der Vergangenheit,
Hier muss ich dann doch schmunzeln.
Das liest sich wie eine Laudatio zum 100. Todestag,
aber ganz so weit sind wir ja dann doch noch nicht.
> sie waren eher nicht erfolgreich (gEDA) oder „so> einigermaßen brauchbar“ (Kicad, aber eigentlich> auch erst nach einem Jahrzehnt oder mehr an diesem> Punkt angekommen, nachdem CERN da mitmischte).
Ich denke, Du verwechselst hier Korrelation mit
Kausalität.
Der modulare Ansatz beider Projekte und der begrenzte
Erfolg beider Projekte lässt nicht den Rückschluss zu,
beide Projekte hätten WEGEN des modularen Ansatzes nur
begrenzten Erfolg.
Darüberhinaus denke ich, dass die Hemmnisse in beiden
Projekten jeweils andere sind.
gEDA hatte nach meinem Gefühl durchaus eine nennens-
werte Zeit wachsender Popularität; das lange Siechtum
der letzten Jahre ist wohl auf ein sehr suboptimales
Projektmanagement zurückzuführen. Dem Boss waren wohl
untergeordnete technische Details wichtiger als
tragfähige Kompromisse mit seinen Entwicklern.
Kicad andererseits war ja wohl lange Zeit eine
one-man-show. Ich kann daher den Gedanken nicht ganz
unterdrücken, W.S. könnte Recht haben mit seiner
Behauptung, man laboriere jetzt an der Beseitigung
der Mängel, die durch die schon vor Jahren getroffenen
suboptimalen Entscheidungen hervorgerufen wurden.
Egon D. schrieb:> Der modulare Ansatz beider Projekte und der begrenzte> Erfolg beider Projekte lässt nicht den Rückschluss zu,> beide Projekte hätten WEGEN des modularen Ansatzes nur> begrenzten Erfolg.
Bei gEDA sehe ich das schon, das war immer nur eher eine Art
Projektidee, die als Konglomerat Dinge versucht hat zu vereinen, die für
sich bereits eigenständige Projekte waren. PCB kenne ich jedenfalls
schon ziemlich lange, gSchem wurde dann erst später „dazu gestrickt“.
gerbv ist relativ eigenständig, aber das ist eingedenk seiner
Schnittstelle (Gerber-Daten) nicht weiter verwunderlich, denn die
Gerberdaten sind nunmal die Schnittstelle zum Fertiger und als solche
zumindest einigermaßen normiert.
> Kicad andererseits war ja wohl lange Zeit eine> one-man-show. Ich kann daher den Gedanken nicht ganz> unterdrücken, W.S. könnte Recht haben mit seiner> Behauptung, man laboriere jetzt an der Beseitigung> der Mängel,
Das kann durchaus sein, allerdings sind die „Mängel“, die W.S. bei
Horizon sieht, einfach nur Designentscheidungen, die ihm nicht so sehr
gefallen, wie eben bestimmte Mindestvoraussetzungen an die Hardware. Er
hat ja nun extra „zum Beweis“ eine Hardware ausgegraben, die er zwar
laut eigener Aussage nie ernsthaft für EDA benutzen würde, aber mit der
er „belegen“ kann, was von vornherein so postuliert worden war. :) Du
wiederum erwartest unbedingt einzeln für sich herauslösbaren und
woanders integrierbare Komponenten.
M. W. schrieb:> Ich bin nochmal alle Argumente hier durchgegegangen und finde eigentlich> nur eine Quintessenz daraus:>> Man programmiere sich sein eigenes tool zum Selbstzweck und aus Spass am> Programmieren. Sinn macht es keinen.>> Wer ernsthaft Funktionalität verbessern will, der muss sich in ein> bestehendes Programm einklinken und z.B.:>> * Ein ULP für EAGLE schreiben, welches die Funktionen hat>> * Einen alternativen Editor für KiCAD entwickeln>> * Einen alternativen Autorouter / Placer schreiben>> * Einen Checker zur Einhaltung bestimmter Regeln im Sonderplatinenbau> entwickeln, der übers Design rattert>> * und und und>> Gerade KiCAD bietet uns damit alle Möglichkeiten. Die Sourcen sind mehr> oder weniger frei verfügbar und auch dokumentiert. Dort würde ich> einhaken, weil sich da auch sofort Unterstützer finden, die ein Projekt> weiterziehen, wenn man selber nicht mehr kann.
Ich bin nochmal alle Deine Argumente durchgegangen und ziehe folgende
Quintessenz daraus:
Du bist einer von diesen typisch deutschen Jammerlappen und Nörglern,
die jedem auch wirklich alles schlecht reden müssen und so lange
herumnölen, bis sie was gefunden haben, über das sie sich aufregen
können. Solche Menschen sind die liebsten Nachbarn im Schrebergarten!
Kauf Dir verdammt nochmal einen akutellen PC und hör auf herumzujammern!
Meine Güte! Jeder billige Aldi-PC erfüllt die Hardwareanforderungen und
nur weil Du zu geizig bist, nach mehr als einer Dekade ein paar Euro in
die Hand zu nehmen, wird hier ein Shitstorm losgetreten, der jemanden
bodenlos kritisiert, der SEINE Zeit in ein Projekt investiert und
netterweise hier für andere zur Verfügung stellt!
Und wenn Du dafür zu geizig bist, dann bist Du hier sowieso komplett
fehl am Platz!
Und dann nimm halt KiCAD wenn das alles genauso oder besser kann und
heul leise!
Und hör auf, diesen Thread damit zuzuspammen! Das will hier keiner lesen
und braucht auch keiner!
Martin S. schrieb:> Kauf Dir verdammt nochmal einen akutellen PC und hör auf herumzujammern!
Nö, das war/ist eigentlich nicht sein Problem. Das war nur W.S., und
auch er hat extra irgendeine hornalte Büchse ausgraben müssen um zu
„beweisen“, was von vornherein klar (als Anforderung gesetzt) war.
Fazit: wirklich ernsthaft diskutiert hier keiner mehr über die
OpenGL-Anforderungen. Anders als vor knapp 2 Jahren, als Lukas den
Thread gestartet hat, ist OpenGL 3 mittlerweile ganz offensichtlich
bereits so sehr Standard geworden, dass das gar kein ernsthaftes
Diskussionsthema mehr ist. Also letztlich genau das, was Lukas auch so
als Annahme seinem Projekt vorangestellt hat.
M.W. will zwar nicht wirklich was mitmachen, aber er möchte sich halt
gern von allen Projekten am besten die Rosinen rauspicken. Daher müssen
alle Projekte ihre Datenschnittstellen vereinheitlicht haben, und wenn
sie das nicht haben, dann müssen jetzt alle weiteren
Opensource-Programmierer daran arbeiten …
Martin S. schrieb:> M.W. ... W.S. ... Ich sehe da kaum einen Unterschied in der> Argumentation.
W.S. braucht sowieso nichts anderes als seinen Adler, und alles, was
nicht ganz genauso funktioniert wie jener, ist bei ihm zum Scheitern
verdammt.
Schlage folgendes Argument für jede weitere Diskussion zum Thema OpenGL
vor:
"Heul doch!"
Damit sollten sich weitere uninteressante Befindlichkeiten von Nörglern
abdecken lassen.
@J: Lieber Politik als das hier, das ist ja nur noch als jämmerlich zu
bezeichnen.
Gruß,
Holm
Alternativ Aufteilen des Threads in
* "Horizon - Erfahrungen und Probleme"
* "Horizon - Diskussionen"
o.ä.
Ersterer dann gerne mit etwas nachdrücklicherer Moderation...
Jörg W. schrieb:> Egon D. schrieb:>>> Der modulare Ansatz beider Projekte und der begrenzte>> Erfolg beider Projekte lässt nicht den Rückschluss zu,>> beide Projekte hätten WEGEN des modularen Ansatzes nur>> begrenzten Erfolg.>> Bei gEDA sehe ich das schon, das war immer nur eher> eine Art Projektidee, die als Konglomerat Dinge> versucht hat zu vereinen, die für sich bereits> eigenständige Projekte waren.
Das ist ja sachlich richtig -- ich sehe nur nicht,
dass das die tiefere URSACHE für den Misserfolg ist.
Nach allem, was ich (u.a. von Stefan S. und Tibor
Palinkas) gehört habe, ermangelte es dem gEDA-Chef
einer gewissen Führungstärke, und ich sehe DAS als
das entscheidende Problem an.
>> Kicad andererseits war ja wohl lange Zeit eine>> one-man-show. Ich kann daher den Gedanken nicht ganz>> unterdrücken, W.S. könnte Recht haben mit seiner>> Behauptung, man laboriere jetzt an der Beseitigung>> der Mängel,>> Das kann durchaus sein, allerdings sind die „Mängel“,> die W.S. bei Horizon sieht, einfach nur> Designentscheidungen, die ihm nicht so sehr gefallen,> wie eben bestimmte Mindestvoraussetzungen an die> Hardware.
Nee, ich denke, wir missverstehen uns.
Nach meinem Eindruck kämpfen nicht nur die freien,
sondern auch die "kleinen" kommerziellen Systeme
(Eagle, Target, ...) damit, ein ziemlich komplexes
Problem mit sehr beschränkter Arbeitskraft lösen zu
wollen, und der Erfolg ist ja durchaus wechselhaft.
Man möge mir also nachsehen, wenn ich einen
Analogieschluss ziehe und einer weiteren one-man-show
etwas zweifelnd gegenüberstehe.
Wenn es draußen donnert, dann gehe ich ja auch
einfach von einem Gewitter aus -- und nicht davon,
dass jetzt der Messias erscheint...
Jörg W. schrieb:> M.W. will zwar nicht wirklich was mitmachen, aber er> möchte sich halt gern von allen Projekten am besten> die Rosinen rauspicken. Daher müssen alle Projekte> ihre Datenschnittstellen vereinheitlicht haben, [...]
Ja und?
Das ist genau das, was weltweit viele Millionen
Debian- oder Ubuntu-User machen. Ich sehe das
Problem nicht.
Egon D. schrieb:> Man möge mir also nachsehen, wenn ich einen Analogieschluss ziehe und> einer weiteren one-man-show etwas zweifelnd gegenüberstehe.
War ich anfangs auch. Allerdings überzeugt mich Lukas' Produktivität,
die er mit so einer one-man-show an den Tag gelegt hat. Damit ist das
Teil aus meiner Sicht zumindest schon jetzt soweit „aus dem Gröbsten
heraus“, dass es fortan auch ohne ihn eine Chance hat zu bestehen. Ich
hätte nicht gedacht, dass das tatsächlich jemand in annehmbarer Zeit
stemmen könnte, aber es scheint zu klappen.
Jörg W. schrieb:> Ich> hätte nicht gedacht, dass das tatsächlich jemand in annehmbarer Zeit> stemmen könnte, aber es scheint zu klappen.
Dem kann ich mich nur anschließen, hab wirklich den *allergrößten
Respekt* vor Lukas was der da auf die Beine gestellt hat in so kurzer
Zeit und mit einer solchen Motivation und Stetigkeit! Da kann man nur
den Hut ziehen, müsste ich mir eine dicke Scheibe von abschneiden für
meine eigenen Projekte.
Ich beobachte das Projekt gerne und sehe ihm beim wachsen zu, wer weiß
vielleicht wird horizon eines Tages die PCB Software, mittlerweile ist
der Name auch richtig passend ;-)
Aber die Designentscheidungen von Lukas teile ich nahezu alle
uneingeschränkt, hätte ich genauso gemacht und die typischen Muffel hier
die nur zum Nörgeln rauskommen gibt es halt leider in jedem Thread...
Julian W. schrieb:> Dem kann ich mich nur anschließen, hab wirklich den *allergrößten> Respekt* vor Lukas was der da auf die Beine gestellt hat in so kurzer> Zeit und mit einer solchen Motivation und Stetigkeit!
Allerdings. Wenn man das sieht, dann fragt man sich schon, warum Eagle
in einer vielfachen Zeit nur so wenig erreicht hat.
Martin S. schrieb:> Julian W. schrieb:>> Dem kann ich mich nur anschließen, hab wirklich den *allergrößten>> Respekt* vor Lukas was der da auf die Beine gestellt hat in so kurzer>> Zeit und mit einer solchen Motivation und Stetigkeit!>> Allerdings. Wenn man das sieht, dann fragt man sich schon, warum Eagle> in einer vielfachen Zeit nur so wenig erreicht hat.
Man benötigt 10% der Zeit für 90% der Funktionalität ...^^
Sobald mal ein gewisses Feature-Set erreicht ist, verlagert sich der
Fokus mehr auf einzelne kleine Erweiterungen, Bug-Fixing.
Außerdem macht das Lukas im Prinzip im Alleingang, weshalb er da von
niemanden aufgehalten wird.
Mampf F. schrieb:> Außerdem macht das Lukas im Prinzip im Alleingang, weshalb er da von> niemanden aufgehalten wird.
Vor allem das ist am Anfang ein ungemeiner Vorteil, sobald 2 oder mehr
Leute an einem Projekt beteiligt sind geht ein gigantischer Anteil der
Zeit für Planung/Diskussionen/Absprachen/"Streiten" etc. drauf. Lukas
kann die Planung etc. alles "im Kopf" machen was wesentlich schneller
geht, das sollte man nicht unterschätzen.
Michel M. schrieb:> mit wirklich entscheidenden Fragestellungen und Problemlösungen zum> Elektronik-CAD-Programm von Lukas
Gern. Hab's nun endlich mal geschafft, das Teil hier auf meinem FreeBSD
wieder zum Compilieren zu bekommen, und habe mit einem simplen Test, den
ich vor geraumer Zeit angefangen habe, weitergemacht.
Das "Panning" im 3D-Viewer mit der mittleren Maustaste ist mir ziemlich
gewöhnungsbedürftig im Vergleich mit allem anderen, was ich bislang in
dieser Richtung gesehen habe (und ich dachte immer, Altiums 3D-View wäre
in der Bedienung gewöhnungsbedürftig ;-). Ich schaffe es ganz fix, dass
ich dort alles so sehr verschiebe, dass ich am Ende gar nichts mehr sehe
…
Was ich daher sehr begrüßen würde: oben, neben den Icons mit den
verschiedenen Ansichten, noch eins zu haben für "fit all", d.h. das
gesamte 3D-Modell wird so geschoben und gezoomt, dass man es in der
aktuell gewählten Ansicht bildschirmfüllend sieht. Habe ich auch bei
FreeCAD immer mal wieder gebraucht, ist eine bequeme Möglichkeit, "auf
Start zurück zu gehen", wenn man sich mal völlig daneben navigiert hat.
Außerdem fände ich es sehr praktisch, wenn man für gängige Funktionen
nicht erst das jeweilige Element anklicken muss, also bspw. es genügt,
die <DEL>-Taste über einem Leiterzug oder einer Verbindung im
Schaltplaneditor zu drücken, und der wird gelöscht. (Bei
Mehrdeutigkeiten müsste natürlich dann der entsprechende Dialog
aufklappen, welches Element jetzt genau gemeint ist.)
Jörg W. schrieb:> Außerdem fände ich es sehr praktisch
Öhm :), das nehme ich zurück. Geht jetzt, ich könnte schwören, dass es
vorhin nicht ging … vielleicht habe ich mich geirrt.
Jörg W. schrieb
> Außerdem fände ich es sehr praktisch, wenn man für gängige Funktionen
nicht erst das jeweilige Element anklicken muss, also bspw. es genügt,
die <DEL>-Taste über einem Leiterzug oder einer Verbindung im
Schaltplaneditor zu drücken, und der wird gelöscht.
Unter Windows 10 funktioniert das sobald das Objekt links oben angezeigt
wird. Wenn da nichts angezeigt wird, dann ist man noch in irgend einem
anderen Modus. Dann drücke ich einmal ESC und ab da erscheint oben links
die Anzeige des Objekts über dem der Cursor steht. Ab da funktioniert
dann auch DEL(ENTF) beliebig oft.
Yup, hatte ich dann auch bemerkt.
Danke für den Hinweis mit dem "heads-up display" links oben, da sollte
ich wirklich häufiger mal einen Blick drauf werfen.
Was mir dabei auffällt: Horizon fühlt sich sehr flink an, verglichen mit
Kicad auf gleicher Hardware oder Altium auf vergleichbarer Hardware.
Eine Frage zum Poolmanager:
Die markierte Spalte ganz rechts kann ich in der Breite nicht ändern.
Damit ist das, was dort angezeigt wird, eigentlich ziemlich nutzlos
(außer, dass man es mit der rechten Maustaste kopieren kann).
Ist das so beabsichtigt?
Die "Manufacturer"-Spalte belegt ziemlich viel Platz für eine
Information, die man m.M.n. oft gar nicht braucht (generische Bauteile).
Wäre gut, wenn man sie einfach kleiner ziehen könnte, um mehr Platz für
die anderen Spalten zu haben.
Weil ich gerade drüber stolpere: im Package-Generator wäre es cool, wenn
beim Duplizieren eines Pads, dessen Name auf eine Zahl endet, diese Zahl
mit jeder Kopie automatisch eins hochgezählt werden würde. Es dürfte in
den allermeisten Fällen die gewünschte Aktion sein, nicht das gleiche
Pad nochmal zu erzeugen.
So, wie es jetzt ist, bekommen die Duplikate alle eine fette Warnung,
und man muss danach jedes einzeln editieren.
Jörg W. schrieb:> Eine Frage zum Poolmanager:>> Die markierte Spalte ganz rechts kann ich in der Breite nicht ändern.> Damit ist das, was dort angezeigt wird, eigentlich ziemlich nutzlos> (außer, dass man es mit der rechten Maustaste kopieren kann).
Mit einer HD-Auflösung von 1920 Breite bekommt man alles angezeigt.
Dabei wäre zu erwähnen, dass die Schriften/Felder größer werden, wenn
man in WIN 125% eingestellt hat.
> Ist das so beabsichtigt?>> Die "Manufacturer"-Spalte belegt ziemlich viel Platz für eine> Information, die man m.M.n. oft gar nicht braucht (generische Bauteile).> Wäre gut, wenn man sie einfach kleiner ziehen könnte, um mehr Platz für> die anderen Spalten zu haben.
Also etwas kleiner hättest du die "Manufacturer"-Spalte machen können.
Dazu "Descriptions maximal nach links schieben.
Man sollte die Verwendung einer HD-Auflösung oder höher für horizon
empfehlen.
Noch was, was ich cool fände (und bspw. auch bei Kicad schon vermisst
habe): wenn man eine Reihe gleichartiger Objekte ausgewählt hat (hier:
mehrere Linien eines Rechtecks), dann wäre es gut, wenn man diese danach
nicht nur einzeln jedes für sich editieren könnte, sondern die
gemeinsamen Eigenschaften auch „im Block“. Bei den Linien hier war es
gerade die Breite, die ich bei allen ändern wollte, aber kann mir auch
vorstellen, dass man auf diese Weise bspw. den Layer ändern könnte.
Helmut S. schrieb:> Mit einer HD-Auflösung von 1920 Breite
Habe ich.
> bekommt man alles angezeigt.
Jetzt habe ich auch die Ecke gefunden, an der ich ziehen muss, damit ich
die Tabelle insgesamt breiter bekomme.
Das ist natürlich nicht Lukas' Schuld, sondern eher ein Problem im
Handling von Gtk3 (dessen Default-Skin mir absolut nicht gefällt, aber
irgendwie schaffe ich das auch nicht, dieses abzuändern, fehlt mir wohl
irgendein dbus oder was auch immer Dämon).
> Also etwas kleiner hättest du die "Manufacturer"-Spalte machen können.
Nö, kleiner als im Screenshot gezeigt, habe ich sie nicht bekommen. Von
mir aus sollte man die aber gern bis zur Unkenntlichkeit
zusammenschieben können (wie bei "Path" oben), wenn man sie nicht
braucht.
> Man sollte die Verwendung einer HD-Auflösung oder höher für horizon> empfehlen.
Naja, man muss es schon auch mal auf'm Laptop laufen lassen können mit
eingebautem Display, auch wenn das vielleicht nicht die reguläre
Arbeitsumgebung ist.
Wie gesagt, wie ich Gtk3 zu einem anderen Layout überrede, ist hier noch
'ne andere Baustelle (und nicht Lukas' Problem), aber sowas wie die
minimale Spaltenbreite dürfte ja doch in Horizon festgeschrieben sein.
Jörg W. schrieb:>> Also etwas kleiner hättest du die "Manufacturer"-Spalte machen können.>> Nö, kleiner als im Screenshot gezeigt, habe ich sie nicht bekommen.
Genügt ja auch, ich erwarte keine 5minütigen Reaktionszeiten. ;-)
War eher eine Frage, ob er solche Einzeiler auch gern als pull request
haben will oder nicht.
Jörg W. schrieb:> Noch was, was ich cool fände (und bspw. auch bei Kicad schon vermisst> habe): wenn man eine Reihe gleichartiger Objekte ausgewählt hat (hier:> mehrere Linien eines Rechtecks), dann wäre es gut, wenn man diese danach> nicht nur einzeln jedes für sich editieren könnte, sondern die> gemeinsamen Eigenschaften auch „im Block“. Bei den Linien hier war es> gerade die Breite, die ich bei allen ändern wollte, aber kann mir auch> vorstellen, dass man auf diese Weise bspw. den Layer ändern könnte.
Definitiv!
Das regt mich im Altium auch immer extrem auf, dass das nicht so ohne
weiteres geht (oder gar nicht??).
Es ist ja technisch problemlos umsetzbar. Man graut halt die Elemente
aus, die nicht gemeinsam sind oder lässt sie sogar aktiv, dann kann man
die Eigenschafte für Objekte setzen, die diese haben. Kurzer Hinweis:
"Die Eigenschaftsänderung wirkt sich nicht auf alle Objekte aus.
Fortsetzen?" und man könnte sich zukünftig sehr viel nervige
Klick-Arbeit sparen.
Martin S. schrieb:> Das regt mich im Altium auch immer extrem auf, dass das nicht so ohne> weiteres geht (oder gar nicht??).
in Altium geht das ohne Probleme...
Martin S. schrieb:> Jörg W. schrieb:>> Noch was, was ich cool fände (und bspw. auch bei Kicad schon vermisst>> habe): wenn man eine Reihe gleichartiger Objekte ausgewählt hat (hier:>> mehrere Linien eines Rechtecks), dann wäre es gut, wenn man diese danach>> nicht nur einzeln jedes für sich editieren könnte, sondern die>> gemeinsamen Eigenschaften auch „im Block“. Bei den Linien hier war es>> gerade die Breite, die ich bei allen ändern wollte, aber kann mir auch>> vorstellen, dass man auf diese Weise bspw. den Layer ändern könnte.>> Definitiv!
Das geht zumindest bei Durchkontaktierungen ... Kann man markieren, E
drücken und für alle markierten zB der Drill einstellen.
Das geht auch bei Leiterbahnen - inklusive Layer-wechsel.
Ihr solltet mal das Manual lesen ;-) SCNR
Natürlich dürft ihr nicht den veralteten legacy-Modus verwenden.
Aber stimmt, für Linienbreiten im zB cutoff layer wäre das ein gutes
Feature.
Re 3D Vorschau: Ehrlich gesagt ist das Pan-Verhalten (insb. die
Konstanten in der Formel) das Ergebnis von Trial-And-Error bis es sich
halbwegs ordentlich anfühlte:
https://github.com/carrotIndustries/horizon/blob/master/src/canvas3d/canvas3d.cpp#L80
Knopf zum Zurücksetzen der Ansicht sollte einfach machbar sein.
Zur Auswahl von Dingen: Es gibt den "Hover" und den "Normalen" Modus. Im
Hover-Modus wird das Objekt mit der kleinsten Bounding-Box unter dem
Mauszeiger ausgewählt. Wenn man dann ein Tool startet, wird das gerade
ausgewählte verwendet - eben um einfach mit der Maus drauf zeigen und
DEL drücken zu können.
Dieses Verhalten ist Primär aus dem entstanden, wie es mir in KiCad
nicht gefallen hat: 1. man weiß nicht, was man gerade ausgewählt hat,
Tool starten ist dann Glücksspiel 2. Die ständigen "Clarify Selection"
haben mich genervt
Mit einmal klicken wird die Auswahl dann fixiert und man ist im normalen
Modus. Wenn man jetzt nochmal klickt, kommt das "Clarify
Selection"-Menü, allerdings ohne komischen unnützen erstem Menüeintrag.
Mit Esc kommt man wieder zurück in den Hover-Modus.
Mehrere Dinge auf einmal ändern: Das war eines meiner wichtigen Ziele
für das Projekt und geht auch, nur ist die UI dafür wohl nicht
unmittelbar ersichtlich geraten:
Wenn man z.B. 4 Linien ausgewählt hat, steht rechts im Property-Editor
bei den Linien 1/4, mit den links/rechts-Knöpfen kann man auswählen
welche davon man nun bearbeitet. Ein Klick auf den Haken an der Property
appliziert den Wert der gerade sichtbaren auf alle ausgewählten.
Andere Implementierungen von solchen Editoren zeigen bei der Auswahl
mehrerer Objekte dann sowas wie ???, das hat mir noch nie so recht
gefallen.
Martin S. schrieb:> gjhvf schrieb:>> in Altium geht das ohne Probleme...>> Wie?
wenn Du mehrere ähnliche Objekte markiert hast (z.B. über find similar
objects) kannst Du in den Properties fröhlich ändern. Diese Änderungen
werden für alle markierten Objekte übernommen.
Lukas K. schrieb:> Mehrere Dinge auf einmal ändern: Das war eines meiner wichtigen Ziele> für das Projekt und geht auch, nur ist die UI dafür wohl nicht> unmittelbar ersichtlich geraten:
OK, schau ich mir heute abend mal an.
Bei Schließen des Pool-Managers nach dem Speichern meines neu angelegten
Parts habe dann einen bus error geschossen. Stacktrace:
1
$ gdb801 horizon-eda horizon-eda.core
2
GNU gdb (GDB) 8.0.1 [GDB v8.0.1 for FreeBSD]
3
Copyright (C) 2017 Free Software Foundation, Inc.
4
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
5
This is free software: you are free to change and redistribute it.
6
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
7
and "show warranty" for details.
8
This GDB was configured as "x86_64-portbld-freebsd10.4".
9
Type "show configuration" for configuration details.
10
For bug reporting instructions, please see:
11
<http://www.gnu.org/software/gdb/bugs/>.
12
Find the GDB manual and other documentation resources online at:
13
<http://www.gnu.org/software/gdb/documentation/>.
14
For help, type "help".
15
Type "apropos word" to search for commands related to "word"...
16
Reading symbols from horizon-eda...done.
17
[New LWP 101804]
18
[New LWP 100855]
19
[New LWP 100225]
20
[New LWP 100127]
21
[New LWP 102699]
22
[New LWP 102028]
23
[New LWP 102027]
24
[New LWP 102017]
25
[New LWP 102000]
26
27
warning: Unexpected size of section `.reg-xstate/101804' in core file.
28
Core was generated by `./horizon-eda'.
29
Program terminated with signal SIGBUS, Bus error.
30
31
warning: Unexpected size of section `.reg-xstate/101804' in core file.
32
#0 0x000000000044df95 in horizon::uuid_ptr<horizon::Package const>::operator-> (this=<optimized out>) at src/util/uuid_ptr.hpp:41
33
41 assert(ptr->get_uuid() == uuid);
34
[Current thread is 1 (LWP 101804)]
35
(gdb) bt
36
#0 0x000000000044df95 in horizon::uuid_ptr<horizon::Package const>::operator-> (this=<optimized out>) at src/util/uuid_ptr.hpp:41
37
#1 horizon::Part::serialize (this=0x812600920) at src/pool/part.cpp:200
38
#2 0x00000000005a9094 in horizon::PartWizard::finish (this=0x812600800) at src/pool-prj-mgr/pool-mgr/part_wizard/part_wizard.cpp:354
39
#3 0x00000000005a4ef6 in horizon::PartWizard::handle_finish (this=0x812600800) at src/pool-prj-mgr/pool-mgr/part_wizard/part_wizard.cpp:252
40
#4 0x0000000802b43e90 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () from /usr/local/lib/libglibmm-2.4.so.1
41
#5 0x0000000804f079a2 in g_closure_invoke () from /usr/local/lib/libgobject-2.0.so.0
42
#6 0x0000000804f1ce94 in ?? () from /usr/local/lib/libgobject-2.0.so.0
43
#7 0x0000000804f1d918 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.0
44
#8 0x0000000804f1e064 in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.0
45
#9 0x0000000802f3f47b in ?? () from /usr/local/lib/libgtk-3.so.0
46
#10 0x0000000801b8a124 in Gtk::Button_Class::released_callback(_GtkButton*) () from /usr/local/lib/libgtkmm-3.0.so.1
47
#11 0x0000000804f07bfa in ?? () from /usr/local/lib/libgobject-2.0.so.0
48
#12 0x0000000804f1d5f6 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.0
49
#13 0x0000000804f1e064 in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.0
50
#14 0x0000000802f3df76 in ?? () from /usr/local/lib/libgtk-3.so.0
51
#15 0x000000080a27236c in ffi_call_unix64 () from /usr/local/lib/libffi.so.6
52
#16 0x000000080a271c3b in ffi_call () from /usr/local/lib/libffi.so.6
53
#17 0x0000000804f091dc in g_cclosure_marshal_generic_va () from /usr/local/lib/libgobject-2.0.so.0
54
#18 0x0000000804f07bfa in ?? () from /usr/local/lib/libgobject-2.0.so.0
55
#19 0x0000000804f1d5f6 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.0
56
#20 0x0000000804f1e064 in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.0
57
#21 0x0000000802ffba12 in ?? () from /usr/local/lib/libgtk-3.so.0
58
#22 0x0000000804f0afeb in g_cclosure_marshal_VOID__BOXEDv () from /usr/local/lib/libgobject-2.0.so.0
59
#23 0x0000000804f07bfa in ?? () from /usr/local/lib/libgobject-2.0.so.0
60
#24 0x0000000804f1d5f6 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.0
61
#25 0x0000000804f1e064 in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.0
62
#26 0x0000000802ff87ee in ?? () from /usr/local/lib/libgtk-3.so.0
63
#27 0x0000000802ff9c96 in ?? () from /usr/local/lib/libgtk-3.so.0
64
#28 0x0000000802ffd283 in ?? () from /usr/local/lib/libgtk-3.so.0
65
#29 0x0000000802fc875b in gtk_event_controller_handle_event () from /usr/local/lib/libgtk-3.so.0
66
#30 0x000000080319b58b in ?? () from /usr/local/lib/libgtk-3.so.0
67
#31 0x0000000801c61373 in Gtk::Widget::on_button_release_event(_GdkEventButton*) () from /usr/local/lib/libgtkmm-3.0.so.1
68
#32 0x0000000801c5a3fd in Gtk::Widget_Class::button_release_event_callback(_GtkWidget*, _GdkEventButton*) () from /usr/local/lib/libgtkmm-3.0.so.1
69
#33 0x00000008030474d9 in ?? () from /usr/local/lib/libgtk-3.so.0
70
#34 0x0000000804f07bfa in ?? () from /usr/local/lib/libgobject-2.0.so.0
71
#35 0x0000000804f1d5f6 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.0
72
#36 0x0000000804f1e064 in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.0
73
#37 0x000000080319b1f8 in ?? () from /usr/local/lib/libgtk-3.so.0
74
#38 0x00000008030460ac in ?? () from /usr/local/lib/libgtk-3.so.0
75
#39 0x00000008030455f8 in gtk_main_do_event () from /usr/local/lib/libgtk-3.so.0
76
#40 0x00000008036f5841 in ?? () from /usr/local/lib/libgdk-3.so.0
77
#41 0x000000080372ab97 in ?? () from /usr/local/lib/libgdk-3.so.0
78
#42 0x0000000805191878 in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.0
79
#43 0x0000000805191bb3 in ?? () from /usr/local/lib/libglib-2.0.so.0
80
#44 0x0000000805191c44 in g_main_context_iteration () from /usr/local/lib/libglib-2.0.so.0
81
#45 0x00000008042b33dd in g_application_run () from /usr/local/lib/libgio-2.0.so.0
82
#46 0x000000000054c941 in main (argc=1, argv=0x7fffffffe528) at src/pool-prj-mgr/pool-prj-mgr-main.cpp:15
Hat ja schon fast was von den typischen Java-Stacktraces. ;-)
ptr und uuid sind leider "value optimized out". Ein Level darüber kann
ich mir das package ansehen:
Jörg W. schrieb:> Holm T. schrieb:>> /usr/ports/cad/horizon-devel??>> Nö, git clone.>> Hab' gerade keine freien CPU-Zyklen, da was in Richtung Port zu> unternehmen.
Achso, falls du es selbst bauen willst:
Die Voraussetzungen hat Lukas irgendwo bei sich auf der Seite
beschrieben, die musst du halt mit der Hand installieren (gtkmm30 zum
Beispiel).
Danach tut's ein einfaches
1
gmake CXX=clang++60
Am besten noch ein -j<Anzahl deiner CPU-Kerne> dranhängen. :) Dauert
sonst ein Weilchen.
Cool!
Habe nun versucht, das Teil zu Ende zu bauen, bei dem es gestern am Ende
abgestürzt ist.
Sieht auf den ersten Blick komplett aus, im Partbrowser sehe ich keinen
Unterschied zwischen meinem A210E und den anderen Teilen.
Wenn ich es aber platzieren will, bekomme ich eine Aufforderung, ein
Symbol zu wählen mit einer leeren Auswahlbox.
Lukas K. schrieb:> Mehrere Dinge auf einmal ändern: Das war eines meiner wichtigen Ziele> für das Projekt und geht auch, nur ist die UI dafür wohl nicht> unmittelbar ersichtlich geraten:
Ja, da würde ich zustimmen. ;-)
Der Haken sieht halt aus wie eine Checkbox, nur dass sich an dieser
nichts ändert, wenn man draufdrückt … Platz ist ja eigentlich, was
spräche dagegen, statt des Hakens ein "ALL" reinzuschreiben?
Alternativ, das Ding wirklich als Checkbox implementieren, und man kann
damit einschalten, ob die späteren Änderungen auf alle ausgewählten
Objekte angewendet werden oder nur das aktuelle. Fände ich intuitiver.
Selbst mit deiner Beschreibung hat es bei mir eine Weile gedauert, bis
ich es verstanden habe, wie's funktioniert.
Jörg W. schrieb:> Wenn ich es aber platzieren will, bekomme ich eine Aufforderung, ein> Symbol zu wählen mit einer leeren Auswahlbox.
Hm, wie sieht's denn im Pool Cache im Projekt aus? Wenn da noch was
altes im Cache drin ist, dann könnte das das Verhalten erklären.
Wie ist das, Füllflächen gibt's noch nicht, oder habe ich sie nur nicht
gefunden?
Die vielen Tastenkürzel sind nicht so einfach im Kopf zu behalten.
Jedesmal auf die Hilfe zu gehen, ist auch nervig. Irgendeine Form von
Menü fände ich sinnvoll, mit der man alternativ zum jeweiligen
Tastenkürzel an die entsprechende Funktion gelangen kann. Ob das nun
irgendwie mit der rechten Maustaste oder eine Menüleiste ist, wäre mir
egal. Auf diese Weise wird sich bei der täglichen Arbeit dann irgendwann
ein Gleichgewicht einstellen zwischen den Funktionen, die man häufig
braucht und per Tastaturkürzel aktiviert und den Sachen, die man nur
einmal im Monat braucht und dann auch gut und gern aus einem Menü
rauspopeln kann.
Lukas K. schrieb:> Jörg W. schrieb:>> Wenn ich es aber platzieren will, bekomme ich eine Aufforderung, ein>> Symbol zu wählen mit einer leeren Auswahlbox.>> Hm, wie sieht's denn im Pool Cache im Projekt aus? Wenn da noch was> altes im Cache drin ist, dann könnte das das Verhalten erklären.
OK, das war's wohl.
Habe ein neues Projekt begonnen, da klappt es.
Mit clang++60 bekomme ich von derartigen Meldungen übrigens ziemlich
viele:
1
In file included from src/pool/part.cpp:1:
2
In file included from src/pool/part.hpp:3:
3
In file included from src/pool/package.hpp:13:
4
In file included from src/package/package_rules.hpp:3:
5
src/package/rule_package_checks.hpp:12:17: warning: 'get_brief' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
6
std::string get_brief(const class Block *block = nullptr) const;
7
^
8
src/rules/rule.hpp:38:25: note: overridden virtual function is here
Jörg W. schrieb:> Wie ist das, Füllflächen gibt's noch nicht, oder habe ich sie nur nicht> gefunden?
Das ist ein zweistufiger Prozess:
1. Polygon in der gewünschten Lage zeichnen: Draw Polygon / Draw Polygon
Rectangle
2. Das Polyon zu einer Fläche machen und dabei das Netz auswählen: Add
Plane
Jörg W. schrieb:> Die vielen Tastenkürzel sind nicht so einfach im Kopf zu behalten.> Jedesmal auf die Hilfe zu gehen, ist auch nervig. Irgendeine Form von> Menü fände ich sinnvoll,
Menüs gibt es zweierlei:
1. Rechte Maustaste: Aktionen nur für das ausgewählte Objekt
2. Leertaste: Durchsuchbares Menü mit Aktionen für das ausgewählte
Objekt sowie globalen Aktionen.
Jörg W. schrieb:> Mit clang++60 bekomme ich von derartigen Meldungen übrigens ziemlich> viele:
Das hier ist mein erstes wirkliches C++-Projekt, ganz am Anfang wusste
ich von override noch nichts...
Lukas K. schrieb:> Das ist ein zweistufiger Prozess:>> 1. Polygon in der gewünschten Lage zeichnen: Draw Polygon / Draw Polygon> Rectangle
Da war ich schon. :)
> 2. Das Polyon zu einer Fläche machen und dabei das Netz auswählen: Add> Plane
OK, schau ich mir morgen (heute :) an.
> 2. Leertaste: Durchsuchbares Menü mit Aktionen für das ausgewählte> Objekt sowie globalen Aktionen.
OK, auch das schau ich mir an.
> Jörg W. schrieb:>> Mit clang++60 bekomme ich von derartigen Meldungen übrigens ziemlich>> viele:>> Das hier ist mein erstes wirkliches C++-Projekt
:-))
Dafür ist es beeindruckend.
Habe noch einen weiteren segfault:
1
Program terminated with signal SIGSEGV, Segmentation fault.
2
3
warning: Unexpected size of section `.reg-xstate/102223' in core file.
4
#0 p2t::Triangle::EdgeIndex (this=0x0, p1=0x815d57668, p2=0x815d57640) at 3rd_party/poly2tri/common/shapes.cpp:168
5
168 if (points_[0] == p1) {
6
[Current thread is 1 (LWP 102223)]
7
(gdb) bt
8
#0 p2t::Triangle::EdgeIndex (this=0x0, p1=0x815d57668, p2=0x815d57640) at 3rd_party/poly2tri/common/shapes.cpp:168
9
#1 0x0000000000668103 in p2t::Sweep::IsEdgeSideOfTriangle (triangle=..., ep=..., eq=..., this=<optimized out>) at 3rd_party/poly2tri/sweep/sweep.cpp:164
10
#2 p2t::Sweep::EdgeEvent (this=0x829dba8c0, tcx=..., ep=..., eq=..., triangle=0x0, point=...) at 3rd_party/poly2tri/sweep/sweep.cpp:109
11
#3 0x00000000006678b2 in p2t::Sweep::SweepPoints (this=0x829dba8c0, tcx=...) at 3rd_party/poly2tri/sweep/sweep.cpp:56
12
#4 0x000000000066777e in p2t::Sweep::Triangulate (this=0x829dba8c0, tcx=...) at 3rd_party/poly2tri/sweep/sweep.cpp:45
13
#5 0x00000000007fdb66 in horizon::Canvas3D::polynode_to_tris (this=0x823c6c800, node=<optimized out>, layer=<optimized out>)
14
at src/canvas3d/canvas3d.cpp:276
15
#6 0x00000000007ffcde in horizon::Canvas3D::prepare_layer (this=<optimized out>, layer=100) at src/canvas3d/canvas3d.cpp:484
16
#7 0x00000000007fef30 in horizon::Canvas3D::prepare (this=0x823c6c800) at src/canvas3d/canvas3d.cpp:356
17
#8 0x00000000007f1cd9 in horizon::View3DWindow::update (this=0x823c96900, clear=false) at src/imp/3d_view.cpp:236
18
#9 0x000000000061cc18 in horizon::ImpBoard::construct()::$_5::operator()() const (this=<optimized out>) at src/imp/imp_board.cpp:232
Jörg W. schrieb:>> 2. Leertaste: Durchsuchbares Menü mit Aktionen für das ausgewählte>> Objekt sowie globalen Aktionen.>> OK, auch das schau ich mir an.
Ja, das ist in der Tat das, was ich mir darunter vorgestellt habe.
Spricht was dagegen, das (zusätzlich) auf die rechte Maustaste zu legen?
Die ist derzeit ja ohnehin ungenutzt. Ich denke, das wäre eher die
Stelle, wo viele solch ein Menü erwarten würden (zumindest mir geht's
so). Die Leertaste hat einen Nachteil: sie ist „asymmetrisch“. Nach dem
Öffnen des Menüs befindet man sich im Suchfeld, und ein weiteres
Leerzeichen landet dann dort, statt dass man damit das Menü wieder
schließen könnte.
Habe übrigens einen seltsamen Effekt mit diesem Menü.
Weiß nicht, ob das nun ein Problem mit dem CDE/Motif-Theme ist, welches
ich mir gerade ausgewählt habe, damit das Gtk3 etwas weniger
Tablet-mäßig aussieht, oder ob da irgendwelche Größen falsch festgelegt
sind.
Helmut S. schrieb:> Ich habe da keine Probleme mit dem Befehlsmenü.
Wenn ich das ~/.config/gtk-3.0/settings.ini zur Seite räume, sodass
alles wieder auf das default theme zurückfällt, sieht das bei mir auch
OK aus. Allerdings macht dieses Theme auch kein "hover", wenn man über
die Menüeinträge fährt, wie es das CDE/Motif-Theme macht, welches im
Video zu sehen ist.
In einem reinen Screenshot lässt sich das kaum zeigen, daher hatte ich
den Video-Mitschnitt gezimmert.
Jörg schrieb
> Allerdings macht dieses Theme auch kein "hover", wenn man über
die Menüeinträge fährt, wie es das CDE/Motif-Theme macht, welches im
Video zu sehen ist.
OK, jetzt weiß ich was du meinst.
Sollte das ein neuer Vorschlag für das GUI sein?
Ist das in anderen CAD-Programmen üblich?
Jörg W. schrieb:> Weiß nicht, ob das nun ein Problem mit dem CDE/Motif-Theme ist, welches> ich mir gerade ausgewählt habe,
Ist es, ich hab' mir das Theme gerade mal selber installiert, sieht
genau so aus wie bei dir, mit Adwaita ist es OK. Auch wenn man es anders
vermuten könnte sind themes nicht wirklich von Gtk3 unterstützt:
https://blogs.gnome.org/tbernard/2018/10/15/restyling-apps-at-scale/Jörg W. schrieb:> Habe noch einen weiteren segfault:
Ok, kann ich reproduzieren: Wenn im Outline-Layer die Ecken von zwei
Polygonen die selbe Position haben und eines davon im stumpfen Winkel
ist, verschluckt's sich beim Triangulieren. Scheint wohl auch eine
Anforderung zu sein... https://github.com/greenm01/poly2tri
Vermutlich hast du dieses Verhalten erzeugt, als du die Outline mit
einer Linie gemalt hast. Horizon unterscheidet strikt zwischen Linien
und Polygonen. Dinge, die eine Fläche beschreiben, wie eben
Board-Outline und Bauteil-Konturen sind als Polygon zu zeichnen. Wenn du
schon ein Linienzug hast, kannst du den mit "Line loop to polygon" zum
Polygon machen. Eigentlicher Zweck dieses Tools, ist aus importierten
Linienzügen Polygone zu machen, um Logos und dergleichen aufs Board zu
bekommen.
Lukas K. schrieb:> Jörg W. schrieb:>> Weiß nicht, ob das nun ein Problem mit dem CDE/Motif-Theme ist, welches>> ich mir gerade ausgewählt habe,>> Ist es, ich hab' mir das Theme gerade mal selber installiert, sieht> genau so aus wie bei dir, mit Adwaita ist es OK.
OK, damit kann ich leben.
> Auch wenn man es anders> vermuten könnte sind themes nicht wirklich von Gtk3 unterstützt:> https://blogs.gnome.org/tbernard/2018/10/15/restyling-apps-at-scale/
Naja, wenn wenigstens das default theme nicht so hässlich aussähe, dass
man meint, die ganze Welt wäre nun ein Tablet …
Vermutlich ist in diesem CDE/Motif-Thema die Schrift einfach zu groß.
> Vermutlich hast du dieses Verhalten erzeugt, als du die Outline mit> einer Linie gemalt hast.
Das ist gut möglich.
> Horizon unterscheidet strikt zwischen Linien> und Polygonen.
OK.
Abstürzen sollte es natürlich nicht, aber zumindest ist das eine
Erklärung.
@Lukas
Wie ist dein Interesse an pull requests im horizon-pool? Ich könnte mir
vorstellen, einige der bei mir in der Datenbank vorhandenen Bauteile mal
aufzunehmen, sodass bspw. eine Anzahl an Standard-Transistoren auf diese
Weise zustande käme. Ich würde mich dabei vorrangig auf SMD
konzentrieren, denn anders als die THT-Bauteile verwalte ich meinen
SMD-Kram in einer Datenbank, sodass ich einen ganz guten Überblick habe,
was da ist.
Feature request:
Es sollte eine Möglichkeit geben, Elemente des Pools im Dateisystem zu
verschieben. Hatte gerade gemerkt, dass meine neu eingerichteten
Unterverzeichnisse "afpoweramp" eigentlich vom Sinn her deckungsgleich
mit den (teilweise) schon existierenden "afamp" waren. Manuelles
Verschieben aller Teile parallel im Dateisystem und im pool.db ist doch
etwas aufwändig, und ich vermute, dass ich nicht der letzte sein werde,
der sowas mal ändern möchte.
Die "tags" sind keine schlechte Idee, aber so wie sie jetzt sind, kaum
zu überschauen. Bei der Auswahl von tags fände ich es sinnvoll, ein
Dropdown-Menü zu haben, in dem alle existierenden tags aufgeführt sind.
Bei der Vergabe von tags wäre das auch nicht schlecht, auf diese Weise
zu wissen, was es schon gibt.
Jörg W. schrieb:> Manuelles> Verschieben aller Teile parallel im Dateisystem und im pool.db ist doch> etwas aufwändig, und ich vermute, dass ich nicht der letzte sein werde,> der sowas mal ändern möchte.
Du kannst Teile frei im Pool verschieben, sofern sie in ihren jeweiligen
Ordnern bleiben (Parts in "parts", etc).
Beim klicken auf "Update Pool" wird die pool.db geleert und mit dem, was
es an Dateien gibt, neu aufgebaut.
Lukas K. schrieb:> Ist behoben und sollte in Zukunft auch nicht mehr so einfach passieren,> da die CI jetzt auch mit debian stretch statt ubuntu artful baut.
Danke, ich habe es noch mal ausprobiert und compilieren geht jetzt.
Nur starten leider nicht:
./horizon-eda
(horizon-eda:17562): glibmm-CRITICAL **:
unhandled exception (type Glib::Error) in signal handler:
domain: gtk-builder-error-quark
code : 11
what : .:1071:40 Invalid property: gtkmm__GtkInfoBar.revealed
Ich las irgendwo im Thread was von gtkmm und einer Mindestversion 3.2.
Laut Debian Versionsnummer sollte es bei mir 3.22.0 sein.
Irgendwelche Ideen?
Lukas K. schrieb:> Ist repariert.
Das nenn ich mal schnelle Reaktionszeit.
Nun startets, aber der Pool Download klappt nicht:
Error: git error 12 Failed to resolve address for https: Der Name oder
der Dienst ist nicht bekannt.
Per Wireshark sehe ich dass die Github Url zu 192.30.253.116 aufgelöst,
und dann eine https Verbindung aufgebaut wurde. Im Ordner wird auch ein
.remote Ordner angelegt.
Ein manuelles
git clone https://github.com/carrotIndustries/horizon-pool.git
funktioniert hingegen.
Was mir bisher aufgefallen ist:
1. Verschiebt man Leitungen und Bauteile per Auswahl "Move" im Untermenü
scheint es einen Versatz in der Rasterung zu geben (links im Schematic),
bei der Auswahl über die Tastatur "m" trat dies nicht auf (rechts im
PCB).
2. Ich habe nicht herausgefunden wie ich aus D? D1 mache.
3. Nachdem ich das Fenster auf volle Bildschirmhöhe gezogen hatte (ich
habe die Taskleiste an der Seite), war es nicht mehr möglich die
Fensterhöhe zu ändern, da ein entsprechendes Symbol bei der Maus nicht
mehr eingeblendet wurde. Nur über einen Rechtsklick in der Taskleiste
des Fensters und dann Auswahl "Move" konnte ich es wieder verkleinern.
Aber ansonsten halte ich Horizon für vielversprechend :)
> Nun startets, aber der Pool Download klappt nicht:
Error: git error 12 Failed to resolve address for https: Der Name oder
der Dienst ist nicht bekannt.
Hast du in dem Ordner in dem horizon-eda liegt die Datei
"ca-bundle.crt"?
Wenn man unter WIN kompiliert, dann muss man diese Datei selber dort hin
kopieren. Wie das in Linux ist weiß ich nicht.
Running
....
For the pool download to work, you'll have to copy the file
/mingw64/ssl/certs/ca-bundle.crt to the directory the directory
horizon-eda.exe resides in.
Malte _. schrieb:> Nun startets, aber der Pool Download klappt nicht:> Error: git error 12 Failed to resolve address for https: Der Name oder> der Dienst ist nicht bekannt.
Da darfst du dich wohl bei debian bedanken, bei denen aus
lizenzpolitischen gründen libgit2 aktuell ohne TLS-Unterstützung gebaut
ist: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=832798
Mit dem libgit2 und -dev aus den backports tut's.
Malte _. schrieb:> 1. Verschiebt man Leitungen und Bauteile per Auswahl "Move" im Untermenü> scheint es einen Versatz in der Rasterung zu geben (links im Schematic),> bei der Auswahl über die Tastatur "m" trat dies nicht auf (rechts im> PCB).
In der Zoomstufe bei dir wird im schaltplan gerade nur jeder 4.
Gitterpunkt angzeigt (s. ×4 rechts neben der Rastereinstellung)
> 2. Ich habe nicht herausgefunden wie ich aus D? D1 mache.
Hamburger-Menü → Annotate
> 3. Nachdem ich das Fenster auf volle Bildschirmhöhe gezogen hatte (ich> habe die Taskleiste an der Seite), war es nicht mehr möglich die> Fensterhöhe zu ändern, da ein entsprechendes Symbol bei der Maus nicht> mehr eingeblendet wurde.
Konnte ich mit xfce und compositing nachvollziehen, hängt wohl mit den
client-side decorations von Gtk zusammen, da dort die Fensterschatten
die Anfasser zum Größe ändern sind.
Da du den screeshots nach zu urteilen kein Composting benutzt, hab ich's
mal damit probiert und konnte das Problem nicht reproduzieren.
Helmut S. schrieb:> Wenn man unter WIN kompiliert, dann muss man diese Datei selber dort hin> kopieren. Wie das in Linux ist weiß ich nicht.
Auf Linux muss man das nicht machen, dort bedient sich curl/openssl aus
den Systemzertifikaten.
Lukas schrieb
> 2. Ich habe nicht herausgefunden wie ich aus D? D1 mache.
Hamburger-Menü → Annotate
Man will doch oft manuell den "Reference designator" setzen.
Warum nicht rechts im Property-Fenster D? zu D1 ändern?
Dafür ist das eingeblendete Fenster unter anderem doch da.
guten Morgen,
Ich möchte mich auch an Horizon versuchen und quäle mein C2D Laptop
(lubuntu 18.04.x) mit dem Build.
Der Build benötigt gute 2GB freien Plattenplatz, das sollte man im
voraus wissen, bitte einen Hinweis dokumentieren. So vermisse ich ein
clean-Target um nur die o-Files zu entsorgen jedoch die Executables zu
behalten.
Der Build lastet meine Maschine nur so 15..30% aus und geht entsprechend
quälend langsam vonstatten.
Die Abhängigkeiten sind im Makefile Wohl nicht vollständig erfasst: alle
meine Versuche mit make -j 2 (oder anderer Zahl) bringen den Rechner
zwar auf Vollast aber dafür endlos bis zum hängen =:'( auch wenn ich
bloss ein Teilziel builde (z.B. horizon-pool).
Gibt es eine, zumindest grobe, Übersicht zur Quellcodearchitektur? Ich
würde mich daran versuchen das Makefile zu pimpen um den Build auf Trab
zu bringen...
Roland schrieb:> Der Build benötigt gute 2GB freien Plattenplatz, das sollte man im> voraus wissen, bitte einen Hinweis dokumentieren.
Naja, das ist ja mittlerweile "peanuts". Kann man sicher dokumentieren,
aber andere (Firefox z.B. oder gar Openoffice) sind da drastisch
gefräßiger.
> So vermisse ich ein> clean-Target um nur die o-Files zu entsorgen jedoch die Executables zu> behalten.
"mostlyclean"?
> Der Build lastet meine Maschine nur so 15..30% aus und geht entsprechend> quälend langsam vonstatten.
Zu wenig RAM? Diese C++-Builds sind recht speicherintensiv.
> Die Abhängigkeiten sind im Makefile Wohl nicht vollständig erfasst: alle> meine Versuche mit make -j 2 (oder anderer Zahl) bringen den Rechner> zwar auf Vollast aber dafür endlos bis zum hängen =:'( auch wenn ich> bloss ein Teilziel builde (z.B. horizon-pool).
Ich habe kein Problem, alles mit -j4 gebaut zu bekommen (auf 4 Kernen).
Jörg W. schrieb:> Roland schrieb:>>> Der Build lastet meine Maschine nur so 15..30% aus und geht entsprechend>> quälend langsam vonstatten.>> Zu wenig RAM? Diese C++-Builds sind recht speicherintensiv.
Das wird es sein, ich habs mal beobachtet, meist braucht ein einzelner
Compiler bei Horizon 6-8%, teilweise aber bis zu 11% meiner 8GB RAM.
Also rund 800MB. Bei 2GB RAM und 1GB fürs System, bleibt da nur RAM für
einen Compileraufruf übrig. Ich war überrascht, dass auch mein System
mit make -j 12 folglich anfängt zu swappen. Bauen dauert bei mir 4,5
Minuten (Ryzen 1600).
Lukas K. schrieb:> ist: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=832798> Mit dem libgit2 und -dev aus den backports tut's.
Danke, daran kannst du ja nicht wirklich was ändern.
> Malte _. schrieb:> In der Zoomstufe bei dir wird im schaltplan gerade nur jeder 4.> Gitterpunkt angzeigt (s. ×4 rechts neben der Rastereinstellung)
Hmm, ich habe da mal etwas reingezoomt (siehe Screenshot).
> Hamburger-Menü → Annotate
Ah, gut.
> Konnte ich mit xfce und compositing nachvollziehen, hängt wohl mit den> client-side decorations von Gtk zusammen, da dort die Fensterschatten> die Anfasser zum Größe ändern sind.
Ich verwende da zugegebenermaßen eine nieschen GUI - Trinity (ehemals
KDE 3.5). Interessanterweise gibt es das Problem nur, wenn das Fenster
vertikal den Bildschirm ausfüllt. Horizontal ist kein Problem.
Jörg W. schrieb:> Roland schrieb:
:
:
>>> So vermisse ich ein>> clean-Target um nur die o-Files zu entsorgen jedoch die Executables zu>> behalten.>> "mostlyclean"?
Gerne! Wo?
1
.../horizon$
2
.../horizon$ make mostlyclean
3
make: *** No rule to make target 'mostlyclean'. Stop.
Liege ich mit meiner Erwartung falsch wenn Maketarget clean nur
Zwischenprodukte des Builds (*.o, *.d, ...) loeschen sollte, nicht aber
die gebrauchsfertigen Executables (und fuer deren Betrieb noetigen,
generierten Hilfsdateien)?
Um ALLES komplett zu loeschen ("Kaltstart" des Buildes) dann lieber das
Maketarget clean-all
Vollstaendigkeitshalber fehlen M.M.n. folgende Maketargets: clean-imp
, clean-pool , clean-prj , clean-pool ,
clean-pool-update-parametric , clean-eda alle in Anlehnung an das
Maketarget all
Alle Ausfuehrbaren Maketargets sollten in einer Variable (z.B.
EXE_ALL aehlich OBJ_ALL) gelistet werden, so lassen diese sich einfach
von der Loeschliste auslassen. (es gibt noch bessere "Richtlinien", aber
erstma so als Minimum)
ZIEL: keinrmsollte direkt mit Dateinamen operieren, sondern nur
mit Variablen welche Listen von Dateien nennen.
ZIEL: kein Dateinamen sollte mehrmals im Makefile erwaehnt sein -->
Ausfaktorieren in Variable(n)
Ist es zudem nicht auch so dass, insbesondere Plattfomuebergreifend
(hier Win u Linux), die make-externen Befehle wie z.B. rm via
Variablen a la $(RM) aufgerufen werden sollten, anstatt sich blind auf
beliebig vorliegende Werte von PATH zu stuetzen?
Die Aufteilung der Gruppe "horizon-*" <-> "clean_*" erschliesst sich mir
nicht ganz: zum einen sind da die resultierenden Userprogramme
horizon-imp/-pool/-prj/-pool-update-parametric/-eda aber WAS sind
_router, _oce, und _res ?
(router waere noch als 3rd_party/router zu finden, aber fuer keine der
anderen 3rd_party-Teile gibt es separate Maketargets...)
I <3 Makefiles schrieb:>> "mostlyclean"?>> Gerne! Wo?
War jetzt eher ein Implementierungsvorschlag.
> Liege ich mit meiner Erwartung falsch wenn Maketarget clean nur> Zwischenprodukte des Builds (*.o, *.d, ...) loeschen sollte, nicht aber> die gebrauchsfertigen Executables (und fuer deren Betrieb noetigen,> generierten Hilfsdateien)?
Ja. War vielleicht vor 25 Jahren so zuweilen gebräuchlich ("make
clobber" entfernte dann alles), aber mittlerweile ist "make clean" ein
Synonym für "räume alles auf, was beim normalen Build entsteht".
Lediglich Dinge wie "configure"-Scripte und deren Hinterlassenschaften
bleiben dann noch üblicherweise liegen, diese sind aber auch nicht durch
"make all" entstanden.
Den Wunsch, nur die Objektdateien aber nicht die Ergebnisse zu löschen,
hat heutzutage eigentlich kaum noch jemand. Plattenplatz kost' nichts
mehr.
I <3 Makefiles schrieb:> Jörg W. schrieb:>> Roland schrieb:> :> :>>>>> So vermisse ich ein>>> clean-Target um nur die o-Files zu entsorgen jedoch die Executables zu>>> behalten.>>>> "mostlyclean"?>> Gerne! Wo?
da, wo du's implementierst? War ja offensichtlich als "Idee" gemeint...
> Liege ich mit meiner Erwartung falsch wenn Maketarget clean nur
Ja. Zumindest wenn ich mich auf knapp 30 Jahre Praxis in "configure;
make" stütze, so lief das üblicherweise immer so:
"make clean" - löscht Objekte und Ausführbare
"make distclean" - löscht zusätzlich die Ergebnisse aus "configure"
[oops, da kam ein Kaffee dazwischen :-)]
Wem' die Kompilate zu groß sind, der kann auch ohne Debug-Symbole bauen.
Die Binaries werden davon z.B. um Faktor 30 kleiner.
Die verschiedenen Make-Targets für router und oce gibt es, damit nicht
alles andere die komischen Include-Pfade für diese Programmteile
abbekommt.
Wenn jemand das Makefile noch weiter verbessern will, bitte als Pull
Request einreichen, aber dabei bitte Dinge die man nun wirklich nicht
braucht, wie z.B. rm als Variable, sein lassen.
Jörg W. schrieb:> Ich habe kein Problem, alles mit -j4 gebaut zu bekommen (auf 4 Kernen).
Hat bei anderen Leuten auch mit -j8 gebaut und alle Kerne beschäftigt.
Wenn sich die CPU langweilt, dann muss das wohl an Swappen oder
langsamem IO liegen.
Wär' schön, wenn damit die Diskussion über das Makefile sich damit
erübrigt hat.
Malte _. schrieb:> Hmm, ich habe da mal etwas reingezoomt (siehe Screenshot).
Da scheint ja gar nichts zu passen. Wurde die Diode schon off-grid
platziert, oder ist die erst durch verschieben so geraten?
Jörg W. schrieb:> Die "tags" sind keine schlechte Idee, aber so wie sie jetzt sind, kaum> zu überschauen.
Das musste ich auch feststellen. Vielleicht ist eine klassische
Baumstruktur stattdessen doch keine so dumme Idee.
Seit kurzem ist jetzt endlich ein überaus nützliches Feature auch
tatsächlich benutzbar:
https://github.com/carrotIndustries/horizon/wiki/Copying-layout-and-placement
Wie im Wiki beschrieben kann man damit Platzierung und Leiterbahnen von
zuvor im Schaltplan definierten Gruppen kopieren, sodass man z.B. Layout
und Platizerung von Spannungsreglern, die mehrfach in verschiedener
Ausführung auf dem Board vorhanden sind, nur einmal machen muss.
Lukas K. schrieb:> Wie im Wiki beschrieben kann man damit Platzierung und Leiterbahnen von> zuvor im Schaltplan definierten Gruppen kopieren, sodass man z.B. Layout> und Platizerung von Spannungsreglern, die mehrfach in verschiedener> Ausführung auf dem Board vorhanden sind, nur einmal machen muss.
Ui nettes Feature - das kann KiCad meines Wissens nicht.
Lukas K. schrieb:> Seit kurzem ist jetzt endlich ein überaus nützliches Feature auch> tatsächlich benutzbar:> https://github.com/carrotIndustries/horizon/wiki/Copying-layout-and-placement>> Wie im Wiki beschrieben kann man damit Platzierung und Leiterbahnen von> zuvor im Schaltplan definierten Gruppen kopieren, sodass man z.B. Layout> und Platizerung von Spannungsreglern, die mehrfach in verschiedener> Ausführung auf dem Board vorhanden sind, nur einmal machen muss.
Hallo Lukas,
ich habe gerade "group" und copy-layout in WIN10 versucht. Bin aber
gescheitert.
Dazu habe ich beide Schaltregler in eine group gepackt. Ist das so
richtig oder muss sich jeden Regler in eine eigene group packen?
Ein "Highlight group/tag" finde ich nicht.
Dafür finde ich "Toggle grpup & tag visibility". Das Ergebnis sieht aber
nicht so aus wie in dem wiki. Da gibt es rote und gelbe Umrandungen. Bei
mir gibt es nur ellenlangen Text.
https://github.com/carrotIndustries/horizon/wiki/Copying-layout-and-placement
Was mache ich falsch?
Dann dachte ich mir ich platziere und vedrahte einen Regler im Layout.
Wie bekomme ich dann das Layout kopiert mit dem 2. Regler?
Aus dem Text werde ich nicht schlau.
To tell horizon EDA the matching components in each group, these get
assigned identical tags. Since a newly-placed component will already be
assigned a unique tag and groups and tags get preserved on copy/paste
other instances of the same circuit will likely have the appropriate
tags already set. To change the tag on a component, use the "Set tag"
tool.
Hallo Lukas,
nachdem ich deinen screenshot im wiki genauer angeschaut habe, denke ich
dass ich das mit den groups und tags verstanden und im Schaltplan jetzt
richtig gemacht habe.
Layoutfenster
Das Kopieren im Layout klappt aber immer noch nicht nach der Anleitung.
Wie kann ich feststellen, dass das Layout etwas von den groups und tags
weiß?
Helmut S. schrieb:> Hallo Lukas,> nachdem ich deinen screenshot im wiki genauer angeschaut habe, denke ich> dass ich das mit den groups und tags verstanden und im Schaltplan jetzt> richtig gemacht habe.>> Layoutfenster> Das Kopieren im Layout klappt aber immer noch nicht nach der Anleitung.> Wie kann ich feststellen, dass das Layout etwas von den groups und tags> weiß?
Hallo Lukas,
Ich habe jetzt den Text deiner Beschreibung noch genauer versucht zu
verstehen. Jetzt klappt das kopieren der Platzierung und der Traces.
Danke für diese Funktion.
Gruß
Helmut
Helmut S. schrieb:> Hallo Lukas,> warum ist mein Board in 3D schwarz.> Wo wird die Farbe dafür eingestellt?> Wie wäre es mit grün als Standard?> Helmut
Asche auf mein Haupt. Ich muss blind gewesen sein, dass ich die
rechteckigen Felder zur Einstellung der Boardfarbe in den Preferences
der 3D-Ansicht übersehen habe.
Hallo Lukas,
Bei mir in WIN10 geht "Plane to trace" oder auch "plane zu sonstwas"
überhaupt nicht. Bei mir sind da immer 0.1mm Abstand egal was ich in den
Rules eingestellt habe.
Selbst mit deinem TX-board geht es nicht. Da sind es immer 0,2mm obwohl
auch dort in Rules "plane to trace 0,5mm" eingestellt ist. Im Anhang ein
screenshot von einem meiner Tests.
Helmut S. schrieb:> Bei mir in WIN10 geht "Plane to trace" oder auch "plane zu sonstwas"> überhaupt nicht
Guck nochmal genau hin, der Haken bei "Enable this rule" fehlt.
Lukas K. schrieb:> Helmut S. schrieb:>> Bei mir in WIN10 geht "Plane to trace" oder auch "plane zu sonstwas">> überhaupt nicht>> Guck nochmal genau hin, der Haken bei "Enable this rule" fehlt.
Hallo Lukas,
danke das war. Ich glaube ich sollte mir die Menüs in Zukunft genauer
anschauen.
Neue Frage:
Hatte ich da nicht schon mal irgendwo "thermal ties" gesehen? Ich finde
nichts um das einzuschalten. Vielleicht war das aber auch in KiCad.
Helmut S. schrieb:> Lukas K. schrieb:>> Helmut S. schrieb:>>> Bei mir in WIN10 geht "Plane to trace" oder auch "plane zu sonstwas">>> überhaupt nicht>>>> Guck nochmal genau hin, der Haken bei "Enable this rule" fehlt.>> Hallo Lukas,> danke das war. Ich glaube ich sollte mir die Menüs in Zukunft genauer> anschauen.>> Neue Frage:> Hatte ich da nicht schon mal irgendwo "thermal ties" gesehen? Ich finde> nichts um das einzuschalten. Vielleicht war das aber auch in KiCad.
Hat sich erledigt. Ich habe es gerade gefunden. Siehe Bild.
"Thermal relief"
Hallo Lukas,
ich finde keine Anleitung zu "Length tuning".
Was muss ich bei "Length tuning" machen um diese Leitung auf 10mm Länge
zu "tunen"?
Was bedeutet dieses VF:100?
Offenbar kann man da 1 bis 100 einstellen.
Bin mal wieder einen Schritt weiter zum Thema "length tuning".
1. Mit "Measure track" bekommt man die Leitungen in das "Lenght tuning"
Fenster. Mit "Tune track" bekomme ich dann ein für mich nicht wirklich
kontrollierbares Mäander. Ich kann mit "Move" und keyboard dann so ein
Mänder mit den Pfeiltasten schieben (länger oder kürzer machen). Im
Fenster "Length Tuning" wird dann die aktuelle Länge angezeigt. Mit dem
button "Ref" erhalte ich dann noch die +/- Abweichung in ps. Ist das die
gedachte Vorgehensweise?
Das VF:100 bedeutet wohl 100% Lichtgeschwindigkeit. Allerding wird da
"er" nicht angepasst. Da steht immer noch 4. Wenn ich in "er" 4 ENTER
mache, dann geht VF auf 50(%). Wenn ich dann wieder 100 ENTER eingebe,
wird wieder mit Vakuum-Lichtgeschwindigkeit gerechnet aber "er" belibt
weiterhin auf 4. Warum wird das nicht auf 1 gesetzt, wenn ich 100%
eingebe?
Kann man die Form des Mäander gezielt vorab einstellen?
Hallo Lukas,
ich kann im Layout Bauteile beliebig übereinander schieben. Ich finde
keine Einstellung um da irgend etwas einzustellen.
Ist das so gewollt?
Kommt da noch eine Funktion für Mindestabstand zwischen "Courtyard"?
Natürlich an- und abschaltbar.
Das mit dem Velocity Factor ist mittlerweile besser und hoffentlich
verständlicher geworden.
Helmut S. schrieb:> Ich kann mit "Move" und keyboard dann so ein> Mänder mit den Pfeiltasten schieben (länger oder kürzer machen). Im> Fenster "Length Tuning" wird dann die aktuelle Länge angezeigt. Mit dem> button "Ref" erhalte ich dann noch die +/- Abweichung in ps. Ist das die> gedachte Vorgehensweise?
Genau, mit den automatisch platzierten Mäandern war ich nie so recht
zufrieden, deshalb mit diesem Fenster die Möglichkeit die Tracks manuell
hinzuzupfen.
Helmut S. schrieb:> Kann man die Form des Mäander gezielt vorab einstellen?
Im Tool "Tune Track" kann man mit , und . und < und > Periode und
Amplitude der Mäander einstellen.
Helmut S. schrieb:> ich kann im Layout Bauteile beliebig übereinander schieben. Ich finde> keine Einstellung um da irgend etwas einzustellen.> Ist das so gewollt?
Mehr oder minder ja. Bis auf die Paar von KiCad übernommenen Tools kann
bei horizon kein Tool online-DRC. Auf absehbare Zeit wird das wohl auch
so bleiben.
> Kommt da noch eine Funktion für Mindestabstand zwischen "Courtyard"?> Natürlich an- und abschaltbar.
Ist als Check geplant und ist eigentlich auch recht einfach zu
implementieren, war nur noch niemand wichtig genug.
Lukas K. schrieb:> ...> Helmut S. schrieb:>> Kann man die Form des Mäander gezielt vorab einstellen?>> Im Tool "Tune Track" kann man mit , und . und < und > Periode und> Amplitude der Mäander einstellen.>
Hallo Lukas,
danke für die vielen Informationen. Die Einstellmöglichkeit der Mäander
werde ich morgen mal testen.
Beim Überfliegen von EAGLE, und KiCad bin auf microvias und buried vias
gestoßen. Ist das ein größerer Aufwand z. B. microvias zu
implementieren?
Ich gebe ja zu, dass ich mir nicht vorstellen kann so ein teures PCB mit
microvias und buried vias privat machen zu lassen.
Gruß
Helmut
Nachdem das Problem mit Git durch
git clone ...
anstatt über ein zip gelöst wurde,
kamen noch weitere Fehlermeldungen...
Ich hab das Problem mal als Issue auf git gepostet
Naja vieleicht bekomme ich irgendwann horizon auf meinem Gentoo Linux
auch ans laufen
Was mal wirklich genial wäre:
Ein Frequenzanalyseprogramm für die fertig geroutete PCB
Also so etwas wie Dämpfungselemente,Pulse und Schwingungen an bestimmten
Punkten auf die entsprechenden Pads geben.
Müsste ja nicht mal mega genau sein, reicht schon wenn z.B. ein I2C Bus
oder ein DC/DC simuliert werden könnte.
Daten eventuell sogar aus einer Datei mit real gemessenen Kurven.
Das kenne ich bis jetzt im Opensource Bereich noch von keiner Software
Hallo Achim,
aus einer früheren Message von Frank, 1.11.2017
---
Hast Du git installiert? Wenn ja, dann versuch mal
git clone https://github.com/carrotIndustries/horizon.git
dann sollte "make" durch laufen. Das Problem ist wohl dass in der *.zip
Datei keine git Metadaten enthalten sind. Diese werden jedoch benötigt
um einen git-Versionsstring in die Applikation einzukompilieren.
---
Schau dir auch mal die anderen Messages vom 1.11.2017 an.
Hallo Helmut, Danke erst mal
aber das mit git und zip hatte ich 2 Postings weiter oben schon als
gelöst markiert.
git clone https://github.com/carrotIndustries/horizon.git ist also ein
muss
es ging dann etwas später mit weit aus seltsameren Fehlern weiter.
Das mit Opencascade
im Makefile
CASROOT = /usr/lib64/opencascade-7.3.0
hab ich dannach auch noch gelößt, zwar etwas "NAJA" aber tut mal soweit
ich denke dass es mit Gentoo Linux zusammenhängt und das make diverse
Dinge nicht findet.
https://github.com/carrotIndustries/horizon/issues/216
Helmut S. schrieb:> Beim Überfliegen von EAGLE, und KiCad bin auf microvias und buried vias> gestoßen. Ist das ein größerer Aufwand z. B. microvias zu> implementieren?> Ich gebe ja zu, dass ich mir nicht vorstellen kann so ein teures PCB mit> microvias und buried vias privat machen zu lassen.
Ist aktuell weder vorgesehen noch geplant, eben weil sich keiner aus
meiner Zielgruppe besondere Vias leisten kann/will.
Hallo Lukas,
mir scheint das "routen" hin oder weg von vias auf den Innnelagen ist
kaputt.
Es gelingt mir nicht von diesem Via weg zu routen. Ich bin auf Lage 3.
Das Via ist nicht im Grid. Das sollte aber kein Hindernis sein da weg zu
routen.
Umgekehrt von der Leitung zum Via klappt auch nicht. Die Leitung
schnappt nicht auf das off-grid Via.
Das ist übrigens dein Board an dem ich das gerade probiert habe.
Noch zwei weitere Fragen.
Mit welchem Grid hast du eigentlich die Vias gesetzt?
Warum geht eigentlich kein Grid unter 0,1mm?
> Es gelingt mir nicht von diesem Via weg zu routen. Ich bin auf Lage 3.
Das Via ist nicht im Grid. Das sollte aber kein Hindernis sein da weg zu
routen.
Habe gerade nochmals probiert vom Via weg auf Lage 3 einen trace zu
starten. Inzwischen habe ich herausgefunden, dass ich dazu zusätzlich
Lage 1 anmachen muss. Dann komm ich von dem Via auch auf Lage 3 weg. Ich
denke so kann das aber nicht gedacht sein.
Helmut S. schrieb:> Ich> denke so kann das aber nicht gedacht sein.
Ist repariert.
Helmut S. schrieb:> Mit welchem Grid hast du eigentlich die Vias gesetzt?
Das meiste auf einem 0.25 mm-Raster, durch copy/paste kann manches auch
anders geraten sein.
> Warum geht eigentlich kein Grid unter 0,1mm?
Ist repariert.
Lukas K. schrieb:> Helmut S. schrieb:>> Ich>> denke so kann das aber nicht gedacht sein.>> Ist repariert.>> Helmut S. schrieb:>> Mit welchem Grid hast du eigentlich die Vias gesetzt?>> Das meiste auf einem 0.25 mm-Raster, durch copy/paste kann manches auch> anders geraten sein.>>> Warum geht eigentlich kein Grid unter 0,1mm?>> Ist repariert.
Danke Lukas.
Habe die beiden Punkte mit der neuesten Version getestet.
Jetzt funktioniert das Programm so wie ich das erwartet hatte.
Nach Anfangsproblemen unter Gentoo, nun fix und fertig kompiliert, und
läuft.
STM32L031 Part erstellt ...
Schaut schon gut aus, zwar etwas gewöhnungsbedürftig, aber man findet
schnell heraus wie es geht.
Da bräuchte es einen Importfilter für Bauteile oder hab ich das nur bis
jetzt übersehen.
Achim M. schrieb:> Da bräuchte es einen Importfilter für Bauteile oder hab ich das nur bis> jetzt übersehen.
Es gibt.
https://github.com/carrotIndustries/horizon/blob/master/scripts/stm32_to_json.py
Dem wirfst du die XML-Datei aus dem CubeMX hin, und importierst die
JSON-Datei in den Part wizard, und zack hast du alle Pins mit all ihren
Funktionen drin.
Ist das matschige Fenster ein Gtk-Bug oder ein Feature deines
Fenstermanagers?
Guten morgen,
ich verfolge das Projekt mit dem größten Erstaunen. Respekt erstmal an
die abartige Leistung, die Du hier bisher erbracht hast. Sowas braucht
in vielen Buden eine ganze Schaar von Entwicklern, die dann in sinnlosen
Scrum-Meetings eine dumme Idee nach der anderen zum Nonplus-ultra
hochkochen :-)
Jetzt meine Frage an die Tester und Dich: Wie sinnvoll ist das Programm
produktiv einsetzbar? Riskiert man nach wie vor, dass mit dem nächsten
Versionssprung Projekte nicht mehr kompatibel sind? Und wie sieht es mit
Bugs aus? Läuft das alles soweit stabil?
Ich habe nur eine Eagle 5 Lizenz und mich nervt das Programm enorm.
Bevor ich jetzt dreimal umsteige, würde ich gerne mal Deines probieren.
Dann aber mit der Hoffnung, dass man auch zum Ziel kommt :-)
Martin S. schrieb:> Jetzt meine Frage an die Tester und Dich: Wie sinnvoll ist das Programm> produktiv einsetzbar?
Für kleine bis mittelgroße Projekte durchaus, ich habe das Board für
meine Masterabeit damit gemacht:
https://github.com/carrotIndustries/x-band-tx
Bei mit vielen Bauteilen (wie eben meine Masterarbeit mit über 250)
ruckelt es bei einigen Tools ein bisschen, aber nichts was unerträglich
wäre. Kannst ja einfach mal das Projekt aufmachen und gucken, wie so
deine Empfindung ist.
> Riskiert man nach wie vor, dass mit dem nächsten> Versionssprung Projekte nicht mehr kompatibel sind?
Alles wesentliche ist mittlerweile gut festgezurrt und wird sich auf
absehbare Zeit nicht großartig ändern. Wenn sich doch mal was ändert,
bleiben alte Dateien nachwievor verwendbar und werden beim nächsten
Speichern mit den neuen Eigenschaften gespeichert.
> Und wie sieht es mit> Bugs aus? Läuft das alles soweit stabil?
Wie du im Thread hier lesen kannst lauern durchaus noch einige Bugs,
aber nichts was wirkliche showstopper wären.
Manche Dinge, wie z.B. durchsuchbare Schaltpläne oder Bestückungspläne
exportieren gibt's aktuell schlicht noch nicht, weil's noch keinem
wichtig genug war.
Lukas K. schrieb:> Achim M. schrieb:>> Da bräuchte es einen Importfilter für Bauteile oder hab ich das nur bis>> jetzt übersehen.>> Es gibt.> https://github.com/carrotIndustries/horizon/blob/master/scripts/stm32_to_json.py>> Dem wirfst du die XML-Datei aus dem CubeMX hin, und importierst die> JSON-Datei in den Part wizard, und zack hast du alle Pins mit all ihren> Funktionen drin.
Danke werde ich mal ausprobieren.
> Ist das matschige Fenster ein Gtk-Bug oder ein Feature deines> Fenstermanagers?
Hm also normal ist es nicht, hatte das bisher bei noch keinem Program.
Eventuell ein Feature von GTK sobald man aber mit der Maus drüber geht
wird es wieder scharf..
GRINS
Aber wie gesagt alle meine sonstigen Programme von Office bis Quartus,
Gimp und co funktionieren ohne dieses Feature.
Martin S. schrieb:> Jetzt meine Frage an die Tester und Dich: Wie sinnvoll ist das Programm> produktiv einsetzbar?
Den Bauteil-Pool finde ich insgesamt noch etwas dünn gesät (und das,
obwohl ich da als einstmaliger BAE-Nutzer wahrlich nicht verwöhnt war
;). Du wirst dich also darauf einstellen müssen, doch deutlich mehr
Bauteile als bei Eagle (wo gefühlt jeder zweite im Forum "Wer hat das?"
fragt, statt ein Bauteil selbst anzulegen) selbst zu zimmern. Zum deinem
Trost :), kommerziell ist es völlig üblich, dass jeder sowieso nur seine
eigenen Bauteile benutzt, dann weiß man wenigstens, wer Schuld war, wenn
der Footprint am Ende nicht passt …
Lukas K. schrieb:> Wie du im Thread hier lesen kannst lauern durchaus noch einige Bugs,> aber nichts was wirkliche showstopper wären.
Würde ich so unterschreiben – auch, wenn ich es bislang noch nicht für
ein produktives Projekt genutzt habe.
*Bauteil-Pool:*
dazu mal folgender Gedanke
Eine von Usern erstellte gemeinsame Datenbank mit n*verifiziert
n*verifiziert insofern, wenn da 3,4 oder mehr verifiziert haben, kann
man davon ausgehen, dass alles stimmt.
Ich bin Maschinenbauing und habe meine Platinen bisher in Inventor
gemacht, als dxf exportiert und dann über CAM auf die Fräsmaschine.
Ich habe schon lange vor mich in ein E-CAD einzufuchsen. Ich lese diesen
Faden seit Anfang an ab und zu mit (auf dem 34C3 habe ich auch kurz mal
mit Lukas gesprochen). Wenn hier alle so begeistert sind und in Horizon
eine Zukunft sehen, nehme ich am besten gleich das ganz neue und bin
dann für die Zukunft gerüstet.
Dieser Beitrag hat bisher keinen Mehrwert für diesen Faden, wollte ich
aber mal sagen.
Paul A. schrieb:> dann über CAM auf die Fräsmaschine.
Wenn du die Platinen weiterhin fräsen willst, ist das allerdings eher
eine sehr spezielle Variante, für die die meisten EDA-Systeme nicht
sonderlich gut gerüstet sind.
Wenn du sie natürlich selbst ätzen oder fertigen lassen willst, dann nur
zu. Derzeit würde ich persönlich Kicad noch für die insgesamt „rundere“
Lösung halten, aber da spielt einerseit mit rein, dass Horizon bislang
nur recht wenige Bauteile fertig im Pool hat (schrieb ich schon mal),
andererseits natürlich, dass ich mit Kicad mittlerweile schon einiges an
Routine habe. Wenn du neu anfängst, entfällt letzteres jedoch für dich.
Horizon hat meiner Meinung nach auf jeden Fall mehr Potenzial, da Lukas
versucht hat, aus den Fehlern u.a. auch von Kicad zu lernen.
Lukas K. schrieb:> aber nichts was wirkliche showstopper wären
Ich hab neulich wieder einen Versuch (2018-12-04-2032) auf meinem TP530
mit Windows 7 unternommen - und bin erneut an der Grafik gescheitert.
Meine Vermutung: das Thinkpad hat - wie viele andere Notebooks auch -
eine Hybrid-Grafikausstattung, beim TP530 sind das:
* Intel HDG 4000 - für einfache Anwendungen
* NVidia NVS 5400M - wenn's etwas anspruchsvoller wird
Horizon sollte doch mit der NVS5400M zurechtkommen?
Wenn ich es richtig verstanden, erfolgt die Treiberumschaltung zwischen
den beiden Grafikarten - für den Benutzer transparent - durch die
jeweilige Anwendung. Das scheint bei Horizon nicht zu passieren; Symbole
lassen sich zwar im Schaltplan platzieren, bleiben aber im Einheitsgrau
der Arbeitsfläche verborgen.
Burkhard K. schrieb:> Lukas K. schrieb:>> aber nichts was wirkliche showstopper wären>> Ich hab neulich wieder einen Versuch (2018-12-04-2032) auf meinem TP530> mit Windows 7 unternommen - und bin erneut an der Grafik gescheitert.>> Meine Vermutung: das Thinkpad hat - wie viele andere Notebooks auch -> eine Hybrid-Grafikausstattung, beim TP530 sind das:> * Intel HDG 4000 - für einfache Anwendungen> * NVidia NVS 5400M - wenn's etwas anspruchsvoller wird>> Horizon sollte doch mit der NVS5400M zurechtkommen?
Die "unterste" bisher bestätigte(mir bekannte) Grafikkarte auf der
horizon läuft ist eine GTX560.
Du könntest ja mal mit Rechtsklick in leerem Bereich des Bildschirms
Anzeigeinstellungen -> Erweiterte Anzeigeeinstellungen ->
Anzeigeinformationen
nachschauen welche Grafikkarte verwendet wird. Bei meinem Laptop steht
da z. B. "Bildschirm1: mit NVIDIA GeForce GTX1060 verbunden".
Helmut S. schrieb:> Anzeigeinstellungen -> Erweiterte Anzeigeeinstellungen ->> Anzeigeinformationen>> nachschauen welche Grafikkarte verwendet wird.
Bei Rechtsklick (Schematic Editor) passiert gar nichts.
KiCad fragt beim Öffnen des Boardeditors nach, ob die Grafikkarte
verwendet werden soll, bei Horizon gab/gibt es keine solche Nachfrage.
Helmut S. schrieb:> Die "unterste" bisher bestätigte(mir bekannte) Grafikkarte auf der> horizon läuft ist eine GTX560.
Wo finde ich die Anforderungen dokumentiert? Die 540 unterstützt:
DirectX 11
Shader 5.0
OpenGl 4.0
Burkhard K. schrieb:> Helmut S. schrieb:>> Anzeigeinstellungen -> Erweiterte Anzeigeeinstellungen ->>> Anzeigeinformationen>>>> nachschauen welche Grafikkarte verwendet wird.>> Bei Rechtsklick (Schematic Editor) passiert gar nichts.>> KiCad fragt beim Öffnen des Boardeditors nach, ob die Grafikkarte> verwendet werden soll, bei Horizon gab/gibt es keine solche Nachfrage.>> Helmut S. schrieb:>> Die "unterste" bisher bestätigte(mir bekannte) Grafikkarte auf der>> horizon läuft ist eine GTX560.>> Wo finde ich die Anforderungen dokumentiert? Die 540 unterstützt:> DirectX 11> Shader 5.0> OpenGl 4.0
Vielleicht wär das ja mal ein Vorschlag an Lukas so eine Abfrage
bezüglich der GraKa einzubauen.
Mein Wissensstand ist, dass nur OpenGL verwendet wird. Irgendwie habe
ich im Kopf, dass neulich nicht mehr nur von Version 3.2 sondern von 4.0
die Rede war.
Wenn horizon nicht ging, dann lag es eigentlich immer an der "zu alten"
Grafikkarte.
Burkhard K. schrieb:> KiCad fragt beim Öffnen des Boardeditors nach, ob die Grafikkarte> verwendet werden soll, bei Horizon gab/gibt es keine solche Nachfrage.
Horizon rendert entweder mit OpenGL oder gar nicht. Siehe dazu auch
weiter oben im Thread.
Dass der Bereich grau bleibt, sieht mir jetzt erstmal danach aus, dass
Gtk es nicht schafft den OpenGL-Kontext hinzubekommen. Wenn du horizon
aus der mingw-shell startest, bekommst du auch Ausgabe von Gtk, weshalb
das nicht geklappt hat.
Lukas K. schrieb:> Wenn du horizon> aus der mingw-shell startest, bekommst du auch Ausgabe von Gtk, weshalb> das nicht geklappt hat.
MinGW hab ich nicht installiert - gibt es eine andere Möglichkeit
herauszufinden, was schiefgeht?
BTW: Interessanterweise bekomme ich einen Crash beim Schliessen von
Horizon:
Pfad der fehlerhaften Anwendung:
C:\Users\buk\EDA\horizon-pool-master\Horizon\horizon-eda.exe
Pfad des fehlerhaften Moduls: C:\Windows\system32\ig7icd64.dll
ig7icd64 gehört zum Intel Graphics Driver - also zur Prozessorgraphik.
(Wobei auch diese OpenGL 4.0 unterstützt.)
Wenn du selber kompilierst, hast du automatisch Mingw.
Dazu MSYS2 installieren. Die Anleitung dazu gibt es auf der Webseite von
Lukas.
https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Windows
Achtung, je nach Schnelligkeit deiner Internetverbindung kann sich die
Installation ziemlich hinziehen.
Dann gitclone und kompileren.
Das Programm aus dem Terminal von MSYS2 heraus starten.
./horizon_eda.exe
In dem Verzeichnis in dem horizon-eda.exe liegt muss auch eine Datei
"ca-bundle.crt" sein damit das herunterladen und updaten des Pools
funtioniert. Das steht aber auch am Ende der obigen Anleitung.
Das kompilieren dauert auf einem Q6700K 4GHz 4 cores +hyperthreading
weniger als 6Minuten.
Achtung, das Installationserzeichnis "mysys64" belegt 4GB und das
Verzeichnis in dem kompiliert wird belegt nochmals 2,5GB.
Helmut S. schrieb:> Wenn du selber kompilierst, hast du automatisch Mingw.> Dazu MSYS2 installieren.
Danke, aber 4 GB MinGW/Msys64 Geraffel, nur um herauszufinden, dass es
bei mir sowieso nicht läuft? Nicht gerade motivierend.
Burkhard K. schrieb:>> Wenn du horizon>> aus der mingw-shell startest, bekommst du auch Ausgabe von Gtk, weshalb>> das nicht geklappt hat.>> MinGW hab ich nicht installiert - gibt es eine andere Möglichkeit> herauszufinden, was schiefgeht?
Müsstest du auch sehen, wenn du es von cmd.exe aus startest.
Kann man auch dort in eine Datei umlenken:
Jörg W. schrieb:> Burkhard K. schrieb:>>> Wenn du horizon>>> aus der mingw-shell startest, bekommst du auch Ausgabe von Gtk, weshalb>>> das nicht geklappt hat.>>>> MinGW hab ich nicht installiert - gibt es eine andere Möglichkeit>> herauszufinden, was schiefgeht?>> Müsstest du auch sehen, wenn du es von cmd.exe aus startest.>> Kann man auch dort in eine Datei umlenken:>>
1
horizon-eda 2> logfile.txt
Ich habe es gerade mal ausprobiert. In dem cmd-Window werden keine
Debug-Informationen angezeigt und auch der logfile.txt bleibt leer.
Wenn man horizon-eda.exe aus dem MSYS2-Terminal startet, dann gibt es
einen Debug output. Wenn man den Output nicht einen File umleitet, dann
erscheint der Debug-Text im Terminal was ja auch OK ist.
$ horizon-eda.exe
Fazit: Man muss nicht selbst kompilieren, aber man muss MSYS2
installieren, wenn man den Debug-Output sehen will.
Hallo Burkhard,
Ich korrigiere meine Aussage bezüglich geht nicht in cmd.exe.
Es sieht so aus, dass zumindest etwas geschrieben wird, wenn man den
Ausgabekanal 1 nimmt. Damit war Joerg's Tipp ja fast richtig.
cmd.exe starten.
Im Terminal zu dem horizon-Ordner wechseln.
cd ....
horizon-eda.exe 1> logfile.txt
Helmut S. schrieb:> wenn man den Ausgabekanal 1 nimmt
Gut, damit hatte ich jetzt nicht gerechnet, dass Lukas die
Debug-Ausgaben auf stdout schreibt. Ich hätte sie auf stderr erwartet
(hatte es aber bei mir auch nicht kontrolliert).
Jörg W. schrieb:> Helmut S. schrieb:>> wenn man den Ausgabekanal 1 nimmt>> Gut, damit hatte ich jetzt nicht gerechnet, dass Lukas die> Debug-Ausgaben auf stdout schreibt. Ich hätte sie auf stderr erwartet> (hatte es aber bei mir auch nicht kontrolliert).
Hallo,
Ich weiß natürlich nicht ob da auch noch Meldungen im Fehlerfall auf 2
kommen.
Am besten beides speichern. cmd.exe starten und darin horizon-eda.
horizon-eda.exe 1>log1.txt 2>log2.txt
In log1.txt sehe ich z. B. beim Öffnen des Layouts folgendes.
SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name,
tags_view.tags, parts.filename, parts.description, parts.pool_uuid,
parts.overridden FROM parts LEFT JOIN tags_view ON tags_view.uuid =
parts.uuid LEFT JOIN packages ON packages.uuid = parts.package WHERE
parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?)
ORDER BY parts.MPN COLLATE naturalCompare ASC
col 2
spawn D:\horizon\horizon\horizon-imp -b
D:\horizon\prj_helmut2\RC-Osc1\board.json
D:\horizon\prj_helmut2\RC-Osc1\top_block.json
D:\horizon\prj_helmut2\RC-Osc1\vias
rebuild took 0.018
render took 333.333
end proc 0x984
close
Hallo Lukas,
Ich teste an deinem TX-board und wundere mich gerade warum diff-traces
auf top 0,2mm breit werden, obwohl das nirgens steht. Im setting steht
typisch 0,36mm. Von 0,2mm steht da nichts. Wenn ich die neu ziehe,
kommen die automatisch mit 0,2mm.
Ich zweifle gerade, ob die Rules richtig bzw. überhaupt verwendet
werden.
Wo werden die 0,2mm Breite der diff-pairs tatsächlich gesetzt?
Wo wird der Abstand der diff-pairs tatsächlich gesetzt?
Gruß
Helmut
Helmut S. schrieb:> Wo werden die 0,2mm Breite der diff-pairs tatsächlich gesetzt?>> Wo wird der Abstand der diff-pairs tatsächlich gesetzt?
Guck' mal in der Ecke links unten ;)
Unabhängig davon noch:
2019 bin ich auch wieder auf der FOSDEM:
https://fosdem.org/2019/schedule/event/horizon/
Lukas K. schrieb:> Helmut S. schrieb:>> Wo werden die 0,2mm Breite der diff-pairs tatsächlich gesetzt?>>>> Wo wird der Abstand der diff-pairs tatsächlich gesetzt?>> Guck' mal in der Ecke links unten
Hallo Lukas,
danke für die Info. Dieses Menü hatte ich hatte ich nicht erwartet und
deshalb wohl übersehen.
Jetzt bin ich in dem Rules->Diffpair Dialogfenster auf einen Fehler
gestoßen. Wenn ich die "Net class: usb" auf 300um setze und "Apply
rules" mache, gelten die 300um für "usb". Dann verlase ich das Fenster.
Die "Net class: diff100" hat danach beim routen weiterhin die 200um was
ja OK ist. Wenn ich dann aber wieder das Rules->Diffpair Dialogfenster
aufmache und auf "Net class: diff100" umschalte, dann werden dort auch
die 300um von "usb" angezeigt obwohl das Layout richtigerweise weiterhin
mit 200um routet. Ich bekomme die 200um aber nie mehr richtig in dem
Rules->Diffpair Dialogfenster angezeigt.
Da fehlt ein Dialogfenster-update-Aufruf beim umschalten der "Net class"
in diesem Rules->Diffpair Dialogfenster. Bitte prüfe das mal.
> 2019 bin ich auch wieder auf der FOSDEM:> https://fosdem.org/2019/schedule/event/horizon/
Danke, da haben wir ja gleich die Chance auf ein "Help" mittels
Videoaufzeichnung.
Hoffen wir, dass die Video- und Tonaufzeichnung gleich richtig klappt.
:-)
Ich glaube, du wirfst da Dinge durcheinander:
Die Regeln bei horizon funktionieren grundsätzlich so: Um rauszufinden
welche Regel zutrifft, werden alle Regeln des entsprechenden Typs von
oben nach unten abgearbeitet und die erste Regel genommen, die Zutrifft
(im Falle der Diffpairs also die Netzklasse passt). Wenn keine Regel
zutrifft, wird eine Default-Regel genommen. Auf die sollte man sich aber
nicht verlassen, die ist primär dazu da, zu verhindern, dass der Code
danach segfaultet.
Wenn du also sowohl für USB also auch für 100diff Diffpair-Regeln haben
willst, musst du dir mit dem + unten links eine neue Regel anlegen und
dort die entsprechende Netzklasse eintragen.
Die 0.2mm, die du beobachtet hast, sind Einstellung der default-Regel.
Hallo Lukas,
ich komme ja con Xpedition. Da dachte ich, dass das hier ähnlich ist.
Ich versuche mal umzudenken.
Ich habe mehrere Rechner. Gestern wollte ich mal wieder an meinem besten
Rechner mit horizon arbeiten und musste feststellen, dass die Bedienung
des Schaltplanes und des Layouts nicht mehr funktionieren. Ich habe dann
erfolglos alles mögliche versucht um das Problem einzukreisen. Selbst
der Tausch der Grafikkarte von einem Rechner der dieses Problem nicht
hat hat nicht geholfen. Alle Rechner haben WIN10 mit der neuesten
Version.
Wenn ich auf oben "Help" klicke, dann geht ein leeres Fenster auf, siehe
screenshot. Wenn ich eine Taste drücke und den Fokus im Layoutfenster
habe, dann kommt immer "Unknown key sequence" in der Stauszeile ganz
unten. Auch ältere Versionen von horizon zeigen jetzt auf den 2 Rechnern
das gleiche Problem. Von 5 Desktop Rechnern mit WIN10 haben zwei dieses
Problem.
Verwendet horizon dlls die von anderen Programmen eventuell
überschrieben wurden?
Hat jemand irgend eine Idee an was das liegen könnte?
neuer PIC Freund schrieb im Beitrag #5669335:
>> Hat jemand irgend eine Idee an was das liegen könnte?>> Hatte ich auch schon mal. Einfach die .config oder so löschen, und da> lief es.
Welche .config meinst du?
Ah, da ist wohl beim automatischen Migrieren der Config auf die neue
Version was schief gelaufen und alle Tastenkürzel sind verloren
gegangen. Ist seit gerade repariert.
Damit die Config nochmal neu migriert wird, muss man folgendes Tun:
- Schließe alle Instanzen von horizon
- In %LOCALAPPDATA%\horizon, lösche die prefs.json
- Beim nächsten Start wird die config neu migriert
Lukas K. schrieb:> Ah, da ist wohl beim automatischen Migrieren der Config auf die neue> Version was schief gelaufen und alle Tastenkürzel sind verloren> gegangen. Ist seit gerade repariert.>> Damit die Config nochmal neu migriert wird, muss man folgendes Tun:>> - Schließe alle Instanzen von horizon> - In %LOCALAPPDATA%\horizon, lösche die prefs.json> - Beim nächsten Start wird die config neu migriert
Danke, ja das war es.
Das Verzeichnis heißt genaugenommen
C:\Users\username\AppData\Local\horizon
Hab einfach alle Dateien in dem Verzeichnis gelöscht und dann horizon
gestartet. Jetzt funktioniert es wieder auf beiden Rechnern.
Helmut S. schrieb:> In log1.txt sehe ich z. B. beim Öffnen des Layouts folgendes.
Auf STDERR kommt zighundermal:
(horizon-imp.exe:7308): Gtk-WARNING **: 11:36:14.142: fb setup not
supported
(horizon-imp.exe:7308): Gtk-WARNING **: 11:36:14.265: fb setup not
supported
Im Logfile steht im Wesentlich nicht mehr als:
col 2
spawn <$HOME>\EDA\horizon-pool-master\Horizon\horizon-imp -c
<$HOME>\EDA\horizon-pool-master\HP-Dummy\dummy\top_sch.json
<$HOME>\EDA\horizon-pool-master\HP-Dummy\dummy\top_block.json
imp rx false
imp rx null
tool add part
imp rx null
imp rx false
imp rx null
imp rx false
...
Gibt es spezifische GTK-Debug Flags für den Framebuffer?
Burkhard K. schrieb:> (horizon-imp.exe:7308): Gtk-WARNING **: 11:36:14.265: fb setup not> supported
Das ist der bug hier: https://gitlab.gnome.org/GNOME/gtk/issues/1003
Liegt scheinbar an unzulänglichen Treibern und bis jetzt hat sich noch
keiner die Mühe gemacht, dem weiter auf den Grund zu gehen...
Hallo Lukas,
im Schaltplan gibt es ein "Set pins NC" aber kein "Clear pins NC".
Stattdessen gibt es bis jetzt nur ein "Clear all pins NC". Das löscht
alle NC an einem Symbol. Wenn man jetzt nur einen der NC-pins benutzen
will, dann muss man alle mit "Clear all Pins NC" löschen und dann an
alle anderen pins wieder NC vergeben. Ds scheint mir sehr umständlich zu
sein.
Übersehe ich irgend eine Funktion?
Helmut
Helmut S. schrieb:> Hallo Lukas,>> im Schaltplan gibt es ein "Set pins NC" aber kein "Clear pins NC".> Stattdessen gibt es bis jetzt nur ein "Clear all pins NC". Das löscht> alle NC an einem Symbol. Wenn man jetzt nur einen der NC-pins benutzen> will, dann muss man alle mit "Clear all Pins NC" löschen und dann an> alle anderen pins wieder NC vergeben. Ds scheint mir sehr umständlich zu> sein.> Übersehe ich irgend eine Funktion?>> Helmut
Hallo Lukas,
danke für die Implementierung von "Clear pins NC". EIgentlich wollte ich
ja die neueste Version von horizon mit dieser neuen Funktion von
Appveyor herunterladen aber dort ist nur die Version vom 5. Januar.
Offenbar wird Appveyor nicht mehr richtig ausgeführt. Ich habe es dann
selber kompiliert. "Clear pins NC" funktioniert wie gewünscht.
Helmut
> Helmut S. schrieb> Eigentlich wollte ich> ja die neueste Version von horizon mit dieser neuen Funktion von> Appveyor herunterladen aber dort ist nur die Version vom 5. Januar.> Offenbar wird Appveyor nicht mehr richtig ausgeführt.
Hallo Lukas,
horizon in Appveyor ist wieder auf dem neuesten Stand.
https://ci.appveyor.com/project/carrotIndustries/horizon/build/artifacts
Helmut
Hallo Lukas,
ich schaue mir ja immer die commits an um zu sehen was es Neues gibt.
1.
add layer help
Wo kann man im Programm den Inhalt von Layer help anzeigen?
Irgend einen Sinn muss es doch haben.
1 .gitignore
@@ -30,3 +30,4 @@ dist
docs
*/__pycache__
src/preferences/color_presets.json
src/imp/layer_help.json
1 Makefile
@@ -343,6 +343,7 @@ SRC_IMP = \
src/export_bom/export_bom.cpp\
src/widgets/unplaced_box.cpp\
src/widgets/tag_entry.cpp\
src/widgets/layer_help_box.cpp\
2. fix parametric values for DE locale
Was wurde da "fixed"?
Im screenshot sehe ich einen Mix aus "." und ",". Siehe
"Parameter"-Fenster.
Warum eigentlich nicht konsequent "." als Trenner nehmen egal welche
Spracheinstellung man hat. Matheprogramme, Xpedition und LTspice kennen
auch kein "," und alle Anwender sind glücklich damit.
Helmut
Helmut S. schrieb:> 1.> add layer help> Wo kann man im Programm den Inhalt von Layer help anzeigen?> Irgend einen Sinn muss es doch haben.
Dafür brauchst du einen aktuellen Pool, allerdings werden die dafür
notwendigen Dateien aktuell noch nicht vom Pool manager heruntergeladen.
Die Taucht dann im Package-Editor auf.
Helmut S. schrieb:> 2. fix parametric values for DE locale> Was wurde da "fixed"?> Im screenshot sehe ich einen Mix aus "." und ",". Siehe> "Parameter"-Fenster.
Parametric ist in dem Fall bezogen auf die neuen parametrische
Suchfunktion, siehe Anhang. Damit die funktioniert braucht's im Pool die
tables.json. Auch die wird aktuell nicht automatisch aktualisiert.
Helmut S. schrieb:> Warum eigentlich nicht konsequent "." als Trenner nehmen egal welche> Spracheinstellung man hat. Matheprogramme, Xpedition und LTspice kennen> auch kein "," und alle Anwender sind glücklich damit.
Die machen es m.E. nach falsch, die Spracheinstellungen des
Betriebssystems sind dazu da, soweit wie möglich von Programmen befolgt
zu werden.
Im Parameterprogramm wird . verwendet, da diese Unabhängig von der
Spracheinstellung sein sollen.
Und noch was: FOSDEM ist dieses Wochenende, ich bin auch wieder dabei:
https://fosdem.org/2019/schedule/event/horizon/
Danke Lukas,
alles klar. Dann versuche ich mal mein Glück mit dem Layer-help.
Ich werde am Sonntag deinen Vortrag auf der FOSDEM online verfolgen.
Hoffentlich funktioiniert die Kamera und das Mikro.
Hallo,
die Videoaufzeichnung von dem Vortrag von Lukas über horizon ist jetzt
verfügbar.
https://video.fosdem.org/2019/AW1.125/
Lukas hat dort davon gesprochen, dass der Stand jetzt die Version 1.0
ist/wird.
Roland schrieb:> Der Build benötigt gute 2GB freien Plattenplatz, das sollte man im> voraus wissen, bitte einen Hinweis dokumentieren.
Ich würde mal sagen, dass die meisten Rechner, die für CAD und
SW-Entwicklung genutzt werden, die lumpigen 2GB frei haben sollen.
Ein Build für ein Win32/64-Programm und C# oder klassischer Win API
braucht eher mal gerne das Doppelte, teilweise für echt mickrige Pakete
und Libs.
Hallo Lukas,
isr dir aufgefallen, dass mit deinem deinem letzten commit die
Generierung der .exe für Windows fehlgeschlagen hat?
Wenn man versucht selber für Windows zu kompilieren, dann kommt eine
Fehlermeldung. Siehe Anhang.
Was macht eigentlich dieser Dispatcher für den Anwender?
Helmut
Hallo zusammen.
Ich habe mir vor kurzem horizon kompiliert und bin dabei die Software
kennenzulernen. Gibt es eine Möglichkeit, auf einem Pad eines Packages
ThermalVias einzufügen (siehe angehängtes Bild)? Da ich am Ende des
kennenlernen ein PCB haben möchte, bräuchte ich dies.
Gruss silsi
Ob man ohne zusätzliche Pins im Symbol extra Vias in das Pad machen kann
weiß ich nicht.
Normalerweise setzt man die Vias im PCB-Layout in das Pad. Dort ist es
überhaupt kein Problem. Siehe auch das Projekt X-Band Transmitter von
Lukas.
Lukas kann die Frage sicher auf Anhieb beantworten. Ich hoffe er liest
hier mit.
Helmut S. schrieb:> Normalerweise setzt man die Vias im PCB-Layout in das Pad. Dort ist es> überhaupt kein Problem. Siehe auch das Projekt X-Band Transmitter von> Lukas.
Genau das ist auch der bevorzugte weg, so hat man im Board die größten
Freiheiten.
Wenn du die wirklich im Package haben willst, musst du dir einen eigenen
Padstack mit den entsprechenden Löchern und Pads anlegen.
Ich habe mir (mal wieder) einen aktuellen Build von horizon erstellt.
Danach wollte ich einen CAD Frame A4 L im Schematic einfügen. Im Pool
sind ja welche vorhanden, nur, wie kann ich diese einfügen?
tester schrieb:> Ich habe mir (mal wieder) einen aktuellen Build von horizon erstellt.> Danach wollte ich einen CAD Frame A4 L im Schematic einfügen. Im Pool> sind ja welche vorhanden, nur, wie kann ich diese einfügen?
Entweder im Hamburger Menü "Schematic Properties" oder über die
Leertaste in der Befehlsauswahl "Edit Schematic Properties wählen". In
dem Fenster das dann aufgeht auf den Wert "none" bei Frame klicken.
Damit geht ein weiteres Fenster auf in dem man dann den Rahmen wählt.
Die Einstellungen die man dann vornimmt gelten für die gerade angewählte
Seite.
Hallo Lukas,
ist das hier noch der angesagte Ort um Fragen zu Horizon zu stellen oder
gibt es mittlerweile etwas (möglicherweise) englischsprachiges an
anderer Stelle?
Ich würde gerne das Debian-Paket horizon-eda weiter betreuen und da
tritt schonmal die eine oder andere spezielle Frage auf.
Uwe
Uwe S. schrieb:> ist das hier noch der angesagte Ort um Fragen zu Horizon zu stellen oder> gibt es mittlerweile etwas (möglicherweise) englischsprachiges an> anderer Stelle?
Es gibt den Thread hier, einen im EEVBlog-Forum, github issues und den
IRC-Channel auf freenode. Wo die Frage eingeworfen wird ist mir
eigentlich recht egal, nur die issues auf github sollten nicht für
allgemeine Fragen zur Benutzung verwendet werden.
> Ich würde gerne das Debian-Paket horizon-eda weiter betreuen und da> tritt schonmal die eine oder andere spezielle Frage auf.
Nur zu!
Akut stellt sich die Frage, ob es in absehbarer Zeit eine Version 1.x
gebeben wird? Hintergrund ist die etwas unglückliche Vergabe einer
Version 0.2019xxxx für
das aktuelle Debian-Paket. Würde man jetzt ein Paket mit der Version
0.9.2 hochladen, dann wäre dies in der Sortierung nach Versionsnummer
kleiner als das
alte Paket. Erst mit 1.x ändert sich das wieder. Das Problem ließe sich
in Debian mit
Epochen lösen, man müsste den Weg aber nicht gehen, wenn demnächst 1.x
veröffentlich würde. Bis dahin würde ich dann bei der 0.2019xxxxx
Numerierung
bleiben.
Uwe
Uwe S. schrieb:> Akut stellt sich die Frage, ob es in absehbarer Zeit eine Version 1.x> gebeben wird?
Gute Frage, spätestens bis zur nächsten FOSDEM ende Januar 2020 sollte
es Version 1.0 geben.
Dennoch wäre es gut, wenn man das Packaging vor 1.0 am laufen hätte.
Würde dazu ein Release mit der Version 0.9000 helfen?
0.9000 würde nicht reichen, weil wir zur Zeit 0.20191118 haben. Da
Debian die Version an den '.' teilt und dann numerisch vergleicht,
müsste es 0.90000000 sein. Damit solltest du nicht anfangen! Dann bleibe
ich besser beim Datum und warte auf die 1.x. Zumal das nächste stabile
Debian noch einige Zeit braucht und bis dahin bist du bestimmt bei 1.0
... sag ich mal so.
Lukas K. schrieb:> Gute Frage, spätestens bis zur nächsten FOSDEM ende Januar 2020 sollte> es Version 1.0 geben.
Ich bin gespannt, dann werde ich die Software auch mal testen :) KiCad
hat mir bisher noch nicht zugesagt und vom Adler mit dem Abo-Modell will
ich schnellstmöglich weg.
Auf jeden Fall Respekt für die Arbeit und Ausdauer, die du in das
Projekt investierst!
Lass dich von der Version <1.0 nicht abschrecken. Auch jetzt lässt sich
schon gut arbeiten. Und falls jemand die Debian-Pakete ausprobieren
möchte
https://www.steinmann.cx/horizon-eda/
Respekt!
Das finde ich super auch wenn ich es nicht probieren kann. Einmal
Zeitmangel und ich befürchte, dass das Linux-exklusiv ist? Leider bin
ich ein ignorantes Dummerchen und das ist eine (zu) große Einstiegshürde
;-)
Auf der Homepage scheint es mir so, als ob du dich beim Bauteile
erstellen etwas von Eagle hast inspirieren lassen?
Jetzt nur rein oberflächlich gesichtet bin ich wirklich beeindruckt was
man erschaffen kann.
Zoidberg schrieb:> Respekt!> Das finde ich super auch wenn ich es nicht probieren kann. Einmal> Zeitmangel und ich befürchte, dass das Linux-exklusiv ist?
Es gibt eine fertige Version für Windows.
https://horizon-eda.readthedocs.io/en/latest/installation.html
Die wird sogar automatisch bei jeder Änderung der "sourcen" neu
kompliert.
Hab's vorher auf meinem Notebook unter Windows getestet, das OpenGL
Fenster fehlt.
Ansonsten hab mir das Youtube Video angesehen, alle Achtung!
Werd's vielleicht n anderes mal auf Linux testen.
Uwe S. schrieb:> Hallo Lukas,>> der git snapshot von gestern Abend ist jetzt zu Debian hochgeladen und> wird gebaut.>> https://buildd.debian.org/status/package.php?p=horizon-eda&suite=sid
Ich habe Horizon in Debian10 über Synapse installiert. Funktioniert aber
nicht, die Verzeichnisse /usr/bin/horzion... gibt es nicht.
kann nichts starten.
Christian
Hallo Christian,
du arbeitest also mit Debian sid? Ein Verzeichnis /usr/bin/horizon...
gibt es auch nicht, aber in /usr/bin sollte horizon-eda existieren.
Was liefert denn
Uwe S. schrieb:> Hallo Christian,>> du arbeitest also mit Debian sid? Ein Verzeichnis /usr/bin/horizon...> gibt es auch nicht, aber in /usr/bin sollte horizon-eda existieren.>> Was liefert denn
1
dpkg-Lhorizon-eda
>> Uwe
Ich arbeite mit Debian Buster und KDE.
Als Menüeintrag in KDE ist "Horizon EDA Application" und "Horizon EDA
Pool manager" vorhanden. Wenn ich da drauf klicke kommt die
Fehlermeldung "Programm „horizon-prj-mgr“ ist nicht auffindbar"
habe eben mal im Terminal horizon-eda gestartet, da öffnet sich Horizon
EDA.
Aber alle Projekte und Pools leer. Wäre schön wenn da ein
Beispielprojekt und Parts vorhanden wären. Habe jetzt keine Zeit und
Lust damit anzufangen.
dpkg Ausgabe im Anhang
Christian
Christian B. schrieb:> Als Menüeintrag in KDE ist "Horizon EDA Application" und "Horizon EDA> Pool manager" vorhanden. Wenn ich da drauf klicke kommt die> Fehlermeldung "Programm „horizon-prj-mgr“ ist nicht auffindbar"
Woher nimmt das debian-Paket die .desktop-dateien? Seit einiger Zeit
gibt es die auch im git:
https://github.com/horizon-eda/horizon/blob/master/net.carrotIndustries.HorizonEDA.desktop> Aber alle Projekte und Pools leer.
Da sollte eigentlich ein Fenster kommen, das so ausschaut:
https://user-images.githubusercontent.com/877304/57181342-a2602000-6e92-11e9-97e3-262f0d9d7f1a.png
Welche Version hast du denn installiert? Die aus "stable" ist
mittlerweile ein Jahr alt und nicht mehr empfehlenswert.
nicht "Gast" schrieb:> Hab's vorher auf meinem Notebook unter Windows getestet, das OpenGL> Fenster fehlt.
Also grau, da wo Schaltplan/Board sein sollte? Mach mal einen
Schaltplan/Board auf und drück im Projektmanager Ctrl-Shift-o und poste
hier die stdout/stderr ausgabe.
nicht "Gast" schrieb:> Hab's vorher auf meinem Notebook unter Windows getestet, das OpenGL> Fenster fehlt.>> Ansonsten hab mir das Youtube Video angesehen, alle Achtung!> Werd's vielleicht n anderes mal auf Linux testen.https://github.com/horizon-eda/horizon
Ich habe gerade mal eine Kurzanleitung mit WORD für die Installation von
horizon-EDA mit Pool und Beispielprojekt für Windows(WIN7,8,10)
zusammengeklickt.
Im Prinzip gibt es das alles hier viel ausführlicher.
https://horizon-eda.readthedocs.io/en/latest/feature-overview.html
Falls die Fenster nicht aufgehen, dann kann das an einer zu alten
Grafikkarte liegen. Mit einer 10 Jahre alten GraKa hat man da meistens
keine Chance. Da hilft dann auch Linux nicht weiter.
Beginners question...
From what I understand: the users will fill the Pool.
What is your guidance for naming?
Example: https://www.ti.com/lit/ds/symlink/tps60400.pdf see page 25.
This IC has several 'varieties', although for the schematic there are no
differences:
TPS60400DBVR SOT-23 DBV 5 3000 178.0 9.0 3.23 3.17 1.37 4.0 8.0 Q3
TPS60400DBVT SOT-23 DBV 5 250 178.0 9.0 3.23 3.17 1.37 4.0 8.0 Q3
TPS60401DBVR SOT-23 DBV 5 3000 178.0 9.0 3.3 3.2 1.4 4.0 8.0 Q3
TPS60401DBVT SOT-23 DBV 5 250 178.0 9.0 3.23 3.17 1.37 4.0 8.0 Q3
TPS60402DBVR SOT-23 DBV 5 3000 178.0 9.0 3.3 3.2 1.4 4.0 8.0 Q3
TPS60402DBVT SOT-23 DBV 5 250 178.0 9.0 3.23 3.17 1.37 4.0 8.0 Q3
TPS60403DBVR SOT-23 DBV 5 3000 178.0 9.0 3.23 3.17 1.37 4.0 8.0 Q3
TPS60403DBVT SOT-23 DBV 5 250 178.0 9.0 3.23 3.17 1.37 4.0 8.0 Q3
PACKAGE MATERIALS INFORMATION
www.ti.com 27-Jun-2014
For my schematic the naming TPS6040x (family) will do, but is that
convenient for the Pool?
If I have to specify exact, then the more difficult it will be to find
in the Pool, as it grows.
Even exactly the same part could be given many names by other users, so
I fear the Pool will become garbage.
So I am missing "Create a part" in the instructions.
Problem1.
I try to run Horizon on 24" monitor (Lenovo ThinkVision P24q-10) as a
second (extended) screen aside my laptop in Windows10.
That does not work: bad mouse control, window titles and contents
disappear and so on. Maximise window results in copy of window and
freezes, i can only move and close that window then.
I think only 3 top right buttons (minimise, maximise, close) buttons
work.
A duplicate (copied) screen from laptop works as expected.
Problem2.
In the part browser characters that I type in the search lines get
accents.
A problem with language (NL keyboard US) or keyboard character sets I
suppose.
(My install is from 28-11-2019)
> For my schematic the naming TPS6040x (family) will do, but is that
convenient for the Pool?
I'm glad you asked, since the pool is meant to solve that exact problem:
As far as I can tell, there are 4 flavors of your particular part:
TPS6040{0,1,2,3}DBV. Each of them is orderable on reels of either 250 or
3000 pcs. There also seems to be a G4 variant for every one of those,
that suffix seems to be there only for existing customers, so it's not
really needed for our purposes.
The recommended process looks like this:
1. Create part, entity, etc. for the TPS6040x
2. Create the TPS6040{0,1,2,3}DBV parts by inheriting from the TPS6040x
part. In each of those parts, add the full part numbers (i.e.
TPS60400DBVR, TPS60400DBVT) in the "orderable MPNs" field as both part
numbers will get you the same thing.
Geert H. schrieb:> I try to run Horizon on 24" monitor (Lenovo ThinkVision P24q-10) as a> second (extended) screen aside my laptop in Windows10.> That does not work: bad mouse control, window titles and contents> disappear and so on.
Looks like a gtk or graphics drivers bug to me. Does this happen with
other gtk apps as well?
Geert H. schrieb:> Problem2.> In the part browser characters that I type in the search lines get> accents.> A problem with language (NL keyboard US) or keyboard character sets I> suppose.
Is this specific to the part browser search entries or to all text
entries (such as in create project)? Does the actual search use the
accented or non-accented characters? All in all, this looks like a gtk
bug to me as well. A screenshot of this problem might help to determine
the root cause.
Uptil now I encountered the accented characters only when typing in the
3 search lines in parts browser.
When I installed Horizon my directory and project names appeared
normally, without accents.
I don't know howto show this problem in screenshots...:
On the 24" extended monitor only the preferences app seems to work
normal. The other apps not.
The board - Interactive manipulator and Schematic -interactive
manipulator end up as empty in Windows taskbar, I cannot reopen them.
It sometimes worked if I moved there window position somewhat before
clicking a button.
No reaction or wrong reactions I get from 3D Preview, it ended up in
frozen position, same with Projct manager.
Finally I could close the programs from Windows taskbar.
BTW: I hope you get all those separate program's nice together in 1
window, now they pop up everywhere as unrelated singles. Very confusing
for a beginner like me. I need the total view.
Oh, and I deeply respect the endless energy you put in this project!
May the Capacitor with you and your helpers :)
Das sieht tatsächlich genau nach dem aus was ich brauchen könnte jetzt
wo meine Eagle Lizenz ausgelaufen ist.
Aber ... der Punkt der mich am meisten davon abhält ist folgender:
Wer unterstützt das Projekt und wie lange wird es das geben?
Wenn ich zu KiCAD wechsele, dann weiß ich, dass da das CERN
dahintersteht, das wird also vermutlich zumindest dieses Jahrzehnt
weiterentwickelt.
Das ist jetzt überhaupt nicht böse gemeint oder so, aber, hast du einen
langfristigen Plan? Machst du das jetzt als Hobby weil du aktuell die
Zeit dazu hast? Verdient damit jemand Geld?
Ich möchte eben ungerne jetzt ein Programm lernen um mich dann in ein
paar Jahren wieder umgewöhnen zu müssen.
Gustl B. schrieb:> Das ist jetzt überhaupt nicht böse gemeint oder so, aber, hast du einen> langfristigen Plan?
Berechtige Frage, mein Ziel ist es, in ECAD-Programm zu haben das mir
(und hoffentlich auch anderen) gefällt und es Spaß macht damit (und
daran) zu arbeiten.
> Machst du das jetzt als Hobby weil du aktuell die> Zeit dazu hast?
Ja, Zeit ist da und macht Spaß.
> Verdient damit jemand Geld?
Meines Wissens nach nicht.
OK, super Sache von dir!
Ich weiß nicht ob du das schon versuchst, aber es wäre vielleicht schon
wichtig da irgendwie eine größere Firma oder Einrichtung zu bekommen die
das unterstützt.
Wenn ich jetzt zu Altium wechsel oder bei Eagel bleibe, dann weiß ich,
dass damit komerzielle Projekte gemacht werden, die Software also grob
so funktioniert wie sie soll. Bei KiCAD ist das ähnlich.
Vielleicht wäre ein Schritt in diese Richtung, dass du wenn noch nicht
geschehen ein Konvertierungsprogramm anbietest um Dateien/Bibliotheken
anderer Programme in dein Format zu konvertieren. Mit würde sowas den
Umstieg sehr erleichtern.
Du könntest dich auch an PCB Hersteller wenden wie PCB Pool damit die
dein Dateiformat akzeptieren, der Anwender also nicht zuerst Gerber
exportieren muss.
Ich werde mir das Programm aber trotzdem mal ansehen und gucken wie
anders es sich verhält und wie gut mir eine Umgewöhnung gelingt.
Dazu habe ich noch eine generelle Idee (nicht nur für deine Software):
Es gibt ja in vielen Bereichen ähnliche Software. GIMP, Photoshop; Word,
Libreoffice, Abiword; Eagle, KiCAD, Horizon, ...
Und da gibt es eigentlich eine große Teilmenge an Funktionen. Hier ist
es eben das Board. Da gibt es Leiterbahnen, es gibt Pads, es gibt
Bohrungen, ...
Ich fände es schick, wenn man das Benutzerinterface umstellen könnte, so
dass sich ein Programm eher wie ein anderes verhält. Ja, die Funktionen
sind nur eine Teilmenge, aber zumindest den Aufbau vom Interface, also
wo der Benutzer welche Funktion und Einstellung findet könnte man
anpassbar machen.
Dann wähle ich als Eaglenutzer einfach die Eagleoberfläche aus und schon
fühle ich mich halbwegs zu Hause. Klar, manches Verhalten ist dann
anders, aber die Shortcuts, Icons, Menüstruktur, Bezeichnungen, ...
könnte man dann so wählen wie in dem anderen Programm.
Das sieht man aber leider nur sehr selten. Ich kenne da nur Gimpshop.
Das hat versucht, dass GIMP so aussieht wie Photoshop. Allerdings leider
nur sehr halbherzig, aber trotzdem deutlich besser bedienbar wie GIMP
wenn man vorher schon Photoshop bedient hatte.
Gustl B. schrieb:> Ich fände es schick, wenn man das Benutzerinterface umstellen könnte, so> dass sich ein Programm eher wie ein anderes verhält.
Da muss ich dich enttäuschen, von mir jedenfalls wird das nicht
passieren, da es die Komplexität erheblich erhöht (ohne viel Nutzen) und
das Benutzerinterface u.a. Horizon EDA zu dem macht was es ist.
Kein Problem, ist ja quelloffen. Ich meinte das eher generell. Es gibt
eben viele Programme die einen sehr ähnlichen Funktionsumfang haben,
sich aber komplett unterschiedlich bedienen. Das ist natürlich
Alleinstellungsmerkmal, aber eben auch eine Hürde für Leute die wechseln
wollen.
Ich habe gerade mal 1.0.91 fuer Debian gebaut. Geht glatt durch.
Unter https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=957339 gibt es
aber auch einen Bug-Report für das Übersetzen mit gcc 10. Vielleicht
lässt sich das ja ganz einfach korrigieren.
Uwe
> Das liest sich schonmal gut.
Weiß nicht, mir wär es schon lieber, wenn ich den Fehler auch
reproduziert bekommen würde. Wenn ich das jetzt so blind repariere, kann
man ja nicht sicher sein, ob noch ähnliche Dinge lauern.
Daher werde ich jetzt erstmal nichts ändern. Wenn es dann doch ein
Problem geben sollte, könnt ihr ja immer noch einen Patch anwenden.
Gustl B. schrieb:> Du könntest dich auch an PCB Hersteller wenden wie PCB Pool damit die> dein Dateiformat akzeptieren, der Anwender also nicht zuerst Gerber> exportieren muss.
Das wird wohl keine große Begeisterung auslösen. Aber wie wär's, wenn
Horizon ein verbreitetes Board-Format exportieren würde, vielleicht
nicht gerade eagle.brd, aber .kicad_pcb?
Mein anderer Traum wäre ein Hersteller-spezifischer Gerber-Export, also
2 Mausklicks bis zum fertigen zip-File. Die Hersteller müssen nichts
weiter machen, als eine config zu erstellen und der unbedarfte Bastler
könnte endlich fehlerfreie Gerber-Daten abliefern.
Bauform B. schrieb:> Mein anderer Traum wäre ein Hersteller-spezifischer Gerber-Export, also> 2 Mausklicks bis zum fertigen zip-File.
Das gibt es schon so gut wie. Die ganzen chinabuden wollen ja alle
Gerber-Daten mit Protel-Dateiendungen haben, was aktuell die
Standardeinstellung ist und ein Zip kann auch automatisch erzeugt
werden. Für meine Bestellungen war es tatsächlich eine
Ein-Klick-Angelegenheit.
Grundsätzlich ist es das Ziel den Gerber-Export Dialog so frei wie
möglich von unnützen Einstellungen wie z.B. Anzahl an Nachkommastellen
oder mm/inch zu halten. Bis auf ein paar Anlaufschwierigkeiten wie
https://blog.horizon-eda.org/misc/2019/11/18/gerber.html ist mir nichts
von Problemen mit den erzeugten Gerberdaten bekannt.
Schade aber mein i3 & mein i5 Rechner mit interner Grafikkarte geht
nicht.
Klar die sind schon älter aber es sind Entwicklungs und keine gamer
Systeme, aber das braucht man ja schon hierfür, echt schade.
Klaus schrieb:> Schade aber mein i3 & mein i5 Rechner mit interner Grafikkarte geht> nicht.> Klar die sind schon älter aber es sind Entwicklungs und keine gamer> Systeme, aber das braucht man ja schon hierfür, echt schade.
Ja, Intel-GPUs auf Windows(?) waren wohl schon immer problematisch. Ich
meine mich zu erinnern, dass da auch Gtk mit dran schuld hat.
Gamer-Systeme braucht man aber bei weitem nicht, ich entwickel hier auf
einem Laptop mit Intel HD 5500 GPU und auf einem 10 Jahre alten Laptop
mit Nvidia GeForce 9650M GT tut es auch problemlos.
Und bei mir funktioniert es prima auf einem Intel i5-6200U mit
integrierter Grafikkarte (Intel HD Graphics 520). Arbeite aber unter
Linux, nicht Windows.
Da ist es wieder, Windows gegen Linux.
Das die Intel Treiber unter Windows das nicht so gut unterstützten hatte
ich bisher nicht gemerkt, dabei ist es schon Windows 7 und 10.
Aber wie schon gesagt probiere ich es mit einer anderen Grafikkarte aus
und versuche mein Glück.
Das Projekt sieht einfach nur genial aus und es wäre eine Dummheit es
nicht hier mit zu versuchen.
Klaus schrieb:> Da ist es wieder, Windows gegen Linux.>> Das die Intel Treiber unter Windows das nicht so gut unterstützten hatte> ich bisher nicht gemerkt, dabei ist es schon Windows 7 und 10.> Aber wie schon gesagt probiere ich es mit einer anderen Grafikkarte aus> und versuche mein Glück.> Das Projekt sieht einfach nur genial aus und es wäre eine Dummheit es> nicht hier mit zu versuchen.
Es gibt nicht den I5. I5 gibt es schon seit 10Jahren und aus der Zeit
gibt es auch Grafikkarten von Nvidia die GTK3 nicht könnnen, z. B.
GTX260. Ab GTX560 läuft es auf WIN7/10. Die GTX560 machte auf
LINUX(Ubuntu 17.10) allerdings noch Probleme. Das liegt dann wohl an den
Grafiktreibern. Das Problem löst man bei Desktops indem man einfach für
kleines Geld eine etwas neuere Grafikkarte kauft.
Habe halt bis jetzt nur die interne Intel Grafikkarte benutzt.
Und bisher nie Probleme gehabt, aber wie ich es schon gesagt habe teste
ich es mit einer anderen Grafikkarte.
Uwe S. schrieb:> Das liest sich schonmal gut. Ich warte mal die 1.1 ab, lade dann nochmal> eine neue Version zu Debian hoch und schließe den gcc 10 Fehler.>> Uwe
Mir ist noch aufgefallen, dass die Makefile in Version 1.1.0 noch einen
bug hatte, der dazu geführt hat, dass während make install noch binaries
gebaut wurden. In Version 1.1.1 ist das nun behoben. Ich empfehle dir
daher die 1.1.1 zu nehmen.
Lukas K. schrieb:> Uwe S. schrieb:>> Das liest sich schonmal gut. Ich warte mal die 1.1 ab, lade dann nochmal>> eine neue Version zu Debian hoch und schließe den gcc 10 Fehler.>>>> Uwe>> Mir ist noch aufgefallen, dass die Makefile in Version 1.1.0 noch einen> bug hatte, der dazu geführt hat, dass während make install noch binaries> gebaut wurden. In Version 1.1.1 ist das nun behoben. Ich empfehle dir> daher die 1.1.1 zu nehmen.
Ich hatte gerade die 1.1.1 gebaut und hochgeladen, dann kam ein
Bug-Report, der ein Problem beim Cross-Complieren beschreibt.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959791
Spricht was dageben das PKGCONFIG im Makefile in PKG_CONFIG umzubennen?
Uwe
Zwei Dinge sind mir noch gerade zum Debian-packaging eingefallen:
In Version 1.1 gibt es die -prj und -pool Programme nicht mehr
(standardmäßig). Ihr müsst dann wohl noch die entsprechenden manpages
entfernen.
Es kann auch ein Python-Modul gebaut werden:
https://horizon-eda.readthedocs.io/en/latest/python.html Wär' praktisch
wenn das als python3-horizon-eda oder so paketiert wird.
Lukas K. schrieb:> Zwei Dinge sind mir noch gerade zum Debian-packaging eingefallen:>> In Version 1.1 gibt es die -prj und -pool Programme nicht mehr> (standardmäßig). Ihr müsst dann wohl noch die entsprechenden manpages> entfernen.
Kein Problem.
> Es kann auch ein Python-Modul gebaut werden:> https://horizon-eda.readthedocs.io/en/latest/python.html Wär' praktisch> wenn das als python3-horizon-eda oder so paketiert wird.
Ich probier's. Aufgefallen ist mir schon, wenn ich das python Module
baue, dann räumt das 'make clean' nicht mehr vollständig auf. Es bleibt
z.B. build/picobj/src/export_step/export_step.o und
build/picobj/src/util/step_importer.o übrig.
Läuft das python module mit allen python versionen?
Uwe
Ich bin gerade auf diese Diskussion gestoßen. Was kann das "neue
halbfertige Elektronik-CAD", was KiCad nicht kann? Und warum ist dieser
USP nicht im README erklärt?
Zweitens, warum ist das halbfertige Programm immer noch nicht fertig, da
es doch 2017 schon halbfertig war?
MaWin schrieb:> Zweitens, warum ist das halbfertige Programm immer noch nicht fertig, da> es doch 2017 schon halbfertig war?
Es gibt doch schon die Releases 1.0 und 1.1.
Wenn an einem Layoutprogramm nicht mehr weiter entwickelt würde, dann
wäre das ein schlechtes Zeichen.
Kennst du ein Layoutprogramm das nicht ständig verbessert wird?
Helmut S. schrieb:> Es gibt doch schon die Releases 1.0 und 1.1.
Ich vergaß. Wenn man eine Release 1.0 nennt, ist das Programm natürlich
fertig. Da hast du vollkommen recht.
> Wenn an einem Layoutprogramm nicht mehr weiter entwickelt würde, dann> wäre das ein schlechtes Zeichen.
Ein gutes Programm muss nicht weiterentwickelt werden, solange es alle
Anforderungen erfüllt und keine Anforderungen hinzukommen.
> Kennst du ein Layoutprogramm das nicht ständig verbessert wird?
Da gibt es einige. Eagle z.B. wird ständig weiter verschlechtert.
Und was ist nun mit erstens? Was kann dieses Progeamm, was KiCad nicht
kann? Oder hatte da nur mal wieder ein Nichtsnutz ein bisschen
Geltungsbedürfnis und msuste das Rad neu erfinden, auch wenn es dann
etwas eckig und schief wurde?
MaWin schrieb:> Helmut S. schrieb:>> Es gibt doch schon die Releases 1.0 und 1.1.>> Ich vergaß. Wenn man eine Release 1.0 nennt, ist das Programm natürlich> fertig. Da hast du vollkommen recht.
KiCad hat vermutlich auch mit 1.0 angefangen und zum Glück wird es
trotzdem permanent weiterentwickelt.
>> Wenn an einem Layoutprogramm nicht mehr weiter entwickelt würde, dann>> wäre das ein schlechtes Zeichen.>> Ein gutes Programm muss nicht weiterentwickelt werden, solange es alle> Anforderungen erfüllt und keine Anforderungen hinzukommen.
Dann verstehe ich gar nicht warum an KiCad noch so viel weiterentwickelt
wird, wenn das deiner Meinung nach schon fertig ist. Hast du dich etwa
mit einem nicht fertigen Programm zufriedengegeben?
>> Kennst du ein Layoutprogramm das nicht ständig verbessert wird?>> Da gibt es einige. Eagle z.B. wird ständig weiter verschlechtert.
Das ist jetzt deine Meinung aber sicher nicht die Meinung der
Eagle-Nutzer die jetzt bei AutoCad sind. Schau dir mal Altium an. Die
sind schon bei Version 20 obwohl den meisten die Features von Version 14
gereicht hätten.
> Und was ist nun mit erstens? Was kann dieses Progeamm, was KiCad nicht> kann?
Horizon kann man Design-Rules pro Lage definieren. KiCad kann das leider
nicht. So etwas ist bei Multilayer-Platinen eigentlich Pflicht. Selbst
in dem in der Ferne liegenden KiCad 6.0 ist das nicht angedacht.
In horizon ist die Teilenummer das Kennzeichen eines Bauteils. Damit ist
immer auch der "footprint" verknüpft.
Die großen Layout-Programme gehen noch einen Schritt weiter. Dort hat
ein Bauteil einfach eine Nummer und darunter sind dann die Teilenummer
oder mehrere Teilenummern falls es das Teil bei verschiedenen
Herstellern gibt.
In KiCad ist das anders. Aber da muss halt jeder selber entscheiden was
ihm lieber ist.
> Geltungsbedürfnis und musste das Rad neu erfinden, auch wenn es dann> etwas eckig und schief wurde?
Lukas hat halt andere Schwerpunkte gesetzt. Da er ein begnadeter
Software-Architekt und Programmierer ist, hat er selber ein neues
CAD-Programm gemacht das die Struktur und die Features hat die er für
sinnvoll hält.
Ich denke ein Vergleich mit LTspice und anderen SPICE-Programmen passt
ganz gut. Auch dort hat ein Architekt und Programmierer ein neues
SPICE-Programm nach seinen Vorstellungen gemacht.
Helmut S. schrieb:> Lukas hat halt andere Schwerpunkte gesetzt. Da er ein begnadeter> Software-Architekt und Programmierer ist, hat er selber ein neues> CAD-Programm gemacht das die Struktur und die Features hat die er für> sinnvoll hält.
Ein begnadeter Softwarearchitekt würde KiCad übernehmen oder forken und
seine Features einbauen, aber nicht bei 0 anfangen. Du machst dich hier
gerade reichlich lächerlich mit deinen nicht vorhandenen Argumenten. Bis
jetzt stehen die Zeiger immer noch voll auf einer narzisstischen
Persönlichkeit, die Vorhandenes kopieren muss, um sich toll zu fühlen.
MaWin schrieb:> Helmut S. schrieb:>> Lukas hat halt andere Schwerpunkte gesetzt. Da er ein begnadeter>> Software-Architekt und Programmierer ist, hat er selber ein neues>> CAD-Programm gemacht das die Struktur und die Features hat die er für>> sinnvoll hält.>> Ein begnadeter Softwarearchitekt würde KiCad übernehmen oder forken und> seine Features einbauen,
Mit einem Fork hätte sich Lukas weit von KiCad wegbewegt und damit
könnte man das nie mehr in den Hauptpfad zurück "mergen". Außerdem ist
KiCad ständig im Fluss. Wer da "forked" ist in wenigen Monaten
inkompatibel zum Hauptpfad.
MaWin schrieb:> Ein begnadeter Softwarearchitekt würde KiCad übernehmen oder forken und> seine Features einbauen, aber nicht bei 0 anfangen.
Muhaha. Gerade bei KiCad hätte man schon längst mal bei 0 anfangen
sollen.
> Bis jetzt stehen die Zeiger immer noch voll auf einer narzisstischen> Persönlichkeit, die Vorhandenes kopieren muss, um sich toll zu fühlen.
Wie jetzt? Hat er jetzt kopiert oder bei 0 angefangen? Entscheiden Sie
sich jetzt. Dass horizon Padstacks und Layer kennt, kann man eigentlich
nicht "kopiert" nennen.
Uwe S. schrieb:> Es bleibt> z.B. build/picobj/src/export_step/export_step.o und> build/picobj/src/util/step_importer.o übrig.
Ok, ist auf master behoben.
> Läuft das python module mit allen python versionen?
Gute Frage. Mit dem python 3 aus debian buster tut es jedenfalls. Mir
ist nicht bewusst, dass es da irgendwelche Einschränkungen geben sollte.
MaWin schrieb:> Und warum ist dieser> USP nicht im README erklärt?
Weil das README für Entwicker ist. Für Anwender gibt es
https://horizon-eda.readthedocs.io/en/latest/feature-overview.html. Ist
auch im README verlinkt.
Zu KiCad:
https://horizon-eda.readthedocs.io/en/latest/why-another-eda-package.html
Es ist ja nicht so, als hätte ich das Rad komplett neu erfunden. Einige
Dinge, wie z.B. der Router, STEP Import/Export, die Berechnung von
Luftlinien und die Darstellung von Text in Leiterbahnen sind aus KiCad
übernommen bzw. davon inspiriert.
MaWin schrieb:> Bis jetzt stehen die Zeiger immer noch voll auf einer narzisstischen> Persönlichkeit
Ist das jetzt Selbstkritik? Fängt ja schon mit dem Namensklau an,
nichtmal für einen eigenen Nicknamen reicht es bei dir.
Nun genügt es mit deinen "Beiträgen" in diesem Thread, bitte verschone
uns damit. All das, was du da glaubst fragen zu müssen, ist ohnehin
schon im Thread erklärt worden.
Jörg W. schrieb:> Ist das jetzt...
Ach Jörg, laß mal. Es war zu erwarten, daß aus Kicad-Kreisen irgendwann
einmal der Kleinkrieg gegen Horizon beginnt. Meine Vermutung ist, daß
dies jetzt zunehmen wird.
So wie ich das sehe, ist wohl das größte Problem bei Horizon, daß Lukas
mehr oder weniger allein dasteht - und unendlich viel Kraft hat niemand.
Das hat natürlich Auswirkungen, siehe z.B. das Problem der
OpenGL-Versionen - aber mir sind auch noch recht hochnäsige Worte von
Lukas im Gedächtnis, so etwa "wer braucht schon Windows.." - ohne daß er
dabei erkannt hat, daß gerade Windows mit DirectX eine leistungsfähige
Infrastruktur hat, die bei Linux schlichtweg fehlt. Es hat eben seine
Gründe, weswegen PC-Spiele fast komplett auf Windows ausgerichtet sind.
Naja - und mit seinem "Pool"-Konzept hat er sich mMn. verrannt. Er wird
zwar nicht müde, seinen Pool zu erklären, aber ich hab Zweifel, daß ihn
dabei jemand wirklich versteht. Ein simples Library-Konzept mit Dateien,
die sich selbst genügen und keine Abhängigkeiten zu anderen
Bibliotheksdateien aufweisen, ist mMn. wesentlich tragfähiger.
Aber das alles sind Dinge, die man in Ruhe diskutieren kann - Flames von
der Kicad-Seite hingegen sind ein Ärgernis.
W.S.
W.S. schrieb:> Es war zu erwarten, daß aus Kicad-Kreisen irgendwann> einmal der Kleinkrieg gegen Horizon beginnt.
Dieser Forenteilnehmer hat mit „Kicad-Kreisen“ nichts zu tun.
Wenn sich einer fremder Identitäten annimmt, um als „Trittbrettfahrer“
derer, die er da beerben möchte auzutreten, dann ist die „Mutwillige
Störung von Diskussionen“, wie es die Nutzungsbedingungen beschreiben,
mehr als zu vermuten.
Der „originale MaWin“ hat gewiss seine Eigenheiten, aber er tritt nie
als vorsätzlicher Stänkerer irgendwo auf. Das scheinen manche dieser
Trittbrettfahrer absolut nicht kapiert zu haben, und sie glauben, dass
sie mit diesem Nicknamen irgendwie Narrenfreiheit hier hätten.
Dem ist nicht so.
> So wie ich das sehe, ist wohl das größte Problem bei Horizon, daß Lukas> mehr oder weniger allein dasteht - und unendlich viel Kraft hat niemand.
Da gebe ich dir recht, aber das muss ja erstens nicht dauerhaft so
bleiben, und zweitens hat er bisher verdammt flexibel (und oft auch
schnell) auf allerlei Vorschläge reagiert, sofern sie halt nicht gegen
die Grundkonzeptionen von Horizon stehen.
Solange er diese Aktivität halten kann, braucht das Projekt auch nicht
unbedingt weitere aktiv Mitwirkende.
> Das hat natürlich Auswirkungen, siehe z.B. das Problem der> OpenGL-Versionen
Nein, das siehst du komplett falsch. Er hat das zu Beginn seines
Projekts so beschlossen, um sich auf tatsächliche Aufgabengebiete
konzentrieren zu können und eben keine Rückwärtskompatibilität bis zur
Braunkohle pflegen zu müssen, wenn man sowieso gerade ein komplett neues
Projekt aus dem Boden stampft.
Das ist genau das gleiche, wie du eben viele neue oder neu aufgezogene
auch kommerzielle Softwareprojekte nun nicht mehr für
32-Bit-Betriebssysteme erhälst, weil man auch dort mal einen Schnitt
gemacht hat und sich auf die Zukunft konzentrieren will. Ein Altium
setzt eben in der aktuellen Version auch ein bestimmtes Mindestmaß an
ActiveX-Version voraus. Habe jetzt nicht nachgesehen, aber wird sich von
der dafür benötigten Hardware kaum grundlegend von Horizon und seiner
OpenGL-Version unterscheiden.
> Naja - und mit seinem "Pool"-Konzept hat er sich mMn. verrannt.
Deine Meinung. Die ist dir natürlich unbenommen (und wir wissen ja schon
von Kicad, dass für dich praktisch kein anderes Bibliothekskonzept als
das von Eagle in Frage kommt ;-). Andere haben da andere Meinungen. Ich
bin mir sicher, dass das einer der Punkte ist, über die Lukas nicht mit
sich reden lassen wird, zumindest nicht, solange die Argumentation sich
auf dem Niveau „das gefällt mir nicht“ bewegt. Wem das nicht gefällt,
für den gibt es doch genügend andere Programme zur Auswahl.
Jedes Jahr sehe ich horizon in der Aufzeichnung von FOSDEM und ich habe
immer noch nicht verstanden was es mit dem Library-Konzept nun so auf
sich hat? Ist das jetzt mehr wie
EAGLE/Altium/Mentor/Zuken/Pulsonix/Target oder ganz was neues? Wo ist
der Mehrwert gegenüber KiCad?
Kann mir das jemand an einem Beispiel aufzeigen?
Noch traue ich mich nicht ran.
PS: Ich denke das ist eine großartige Leistung von einer One-Man-Show.
Mit der Zeit hätte Lukas die Welt verändern können, aber so hat man
wenigstens ein halbfertiges EDA Programm ;-)
D. C. schrieb:> Ist das jetzt mehr wie EAGLE/Altium/Mentor/Zuken/Pulsonix/Target oder> ganz was neues?
Wahrscheinlich ganz was neues, in Anlehnung an alle anderen. ;-)
Jörg W. schrieb:> D. C. schrieb:>> Ist das jetzt mehr wie EAGLE/Altium/Mentor/Zuken/Pulsonix/Target oder>> ganz was neues?>> Wahrscheinlich ganz was neues, in Anlehnung an alle anderen. ;-)
Genau, in gewissermaßen mein persönliches Best-of.
> Wo ist der Mehrwert gegenüber KiCad?> Kann mir das jemand an einem Beispiel aufzeigen?
In KiCad ist das Pin/Pad mapping im Symbol mit drin, was dann dazu
führt, dass man z.B. bei Transistoren, die in verschiedenen
Pinbelegungen daher kommen für jede Belegung ein eigenes Symbol braucht.
Auch hängt in KiCad sonst sehr viel am Symbol, was da meines Erachtens
nicht hin gehört, wie Teilenummern und Datenblatt-Links.
In Horizon EDA ist das alles strikt getrennt:
- Die logischen Pins sind in Unit/Entity definiert
- Da Symbol legt fest wie die Unit im Schaltplan ausschaut
- Package ist wie fast überall anders auch
- Im Part werden Package und Entity zu einem bestellbaren Teil mit
Datenblatt -Links und vollständiger Teilenummer zusammengefügt
In voller Länge gibt's das auch in der Dokumentation nachzulesen:
https://horizon-eda.readthedocs.io/en/latest/pool-why.html
Nach dem ich nun ein paar Tage mit Horizon EDA gespielt habe kann ich
nur meinen Hut ziehen.
Als halbfertig würde ich es nicht mehr bezeichnen, das ist schon was
brauchbares.
Für einen "EAGLE Freund" der sich mit anderen Systemen immer schon
schwer getan hat ist das nun eine gute alternative.
Klar ist vieles wieder anders und ungewohnt, aber egal auf was ich
umsteigen würde, es wäre immer anders.
Die ersten Probleme werde ich wohl erst festellen wenn ich die erste
richtige Platine damit mache, aber ich erwarte hier weniger Probleme wie
bei meinen Versuchen (vor ca 5 & 2Jahren) auf KiCad umzusteigen.
Das einzige was mir persönlich nicht gefällt ist das es eine one man
show ist. Das ist zwar auf der einen Seite hilfreich für den Entwickler,
aber es ist ein Risiko für den Nutzer. Ich habe nichts dagegen das
Änderungen nur durch den Entwickler in den Code rein kommen, das sorgt
wenigstens dafür das alles geordnet passiert. Aber das öffentlich machen
vom Code oder einer eingeschrängten Gruppe den aktuellen Code zugänglich
zu machen würde das überleben sicherer machen.
Denn was passier jetzt wenn der heute einen Unfall hat und niemand den
Code in die Finger bekommt?
Richitg das Ende von Horizon und das wäre Schade.
Klaus schrieb:> Das ist zwar auf der einen Seite hilfreich für den Entwickler, aber es> ist ein Risiko für den Nutzer.
Nein.
"One-man show" heißt doch nicht, dass es nicht opensource wäre. Jeder
kann sich den Sourcecode runterladen und selbst compilieren. Wenn du dir
den Anfang des Threads mal ansiehst, so war dies in der Anfangszeit (als
es noch "halbfertig" war) in der Tat sogar die einzige Möglichkeit, es
überhaupt zu testen. Binärversionen gab es erst sehr viel später.
https://github.com/horizon-eda/horizon
Jörg W. schrieb:> Nein, das siehst du komplett falsch. Er hat das zu Beginn seines> Projekts so beschlossen,...
nein, das sehe ich komplett richtig: Die Kraft, das ganze
Grafik-Subsystem allgemeingültiger hinzukriegen, hat er nicht - er ist
schließlich keine Großfirma. Zum Beispiel bei Autodesks "Eagle" sehe ich
da eine richtig fette DLL allein für das Herumhantieren mit OpenGL.
Aber soweit sogut - zumindest die Fundamente des Ganzen sehe ich bei
Horizon an der richtigen Stelle, also ist da Potential drin.
W.S.
W.S. schrieb:> Die Kraft, das ganze Grafik-Subsystem allgemeingültiger hinzukriegen,> hat er nicht
Die muss er auch nicht haben. Wie geschrieben, auch kommerzielle Systeme
limitieren sich hier an bestimmten Stellen selbst, üblicherweise halt
dann, wenn man sowieso ein Subsystem neu aufsetzt (wie eben Altium mit
der 18er Version).
Ansonsten: das Ganze ist Opensource. Wenn jemand wirklich der Meinung
ist, dass das ein derart limitierender Punkt ist, dann stünde es ihm ja
frei, das Grafiksystem so neu zu schreiben (oder ein alternatives), dass
es auch auf älterer Hardware läuft.
Lukas K. schrieb:> In Horizon EDA ist das alles strikt getrennt:>> - Die logischen Pins sind in Unit/Entity definiert> - Da Symbol legt fest wie die Unit im Schaltplan ausschaut> - Package ist wie fast überall anders auch> - Im Part werden Package und Entity zu einem bestellbaren Teil mit> Datenblatt -Links und vollständiger Teilenummer zusammengefügt>> In voller Länge gibt's das
Das ist für mich der einzig sinnvolle Ansatz.
Es gibt z.B. 790x, die ein verdrehtes Pinning beim TO220 haben.
Oder die beliebte BAT56 gibt's mit Anode auf Anode, und Anode auf
Kathode.
Martin S. schrieb:> Es gibt z.B. 790x, die ein verdrehtes Pinning beim TO220 haben.
Es gibt auch 78L05 in SOT-89 mit zwei verschiedenen Pinnings.
Da bin ich mal auf die harte Tour bei BAE drüber gestolpert. :/
Oh man, war ich vergesslich, den Code hatte ich sogar mal vor einem Jahr
mir angesehen. War mit meinen Gedanken anscheinend wo anders und habe es
mit 2 andern Projekten hier im Forum verwechselt.
Änderdert aber nichts daran, das Projekt ist Super und ich hoffe das ich
das sogar an der Arbeit einsetzen kann. Fehlen zwar noch einige Tests
aber bis jetzt läuft alles bei einer neuen kleinen Testplatine.
Klar Wünsche hat man immer wie zB. Import von anderen Systemen (EAGLE,
KiCad, ...), aber auch ohne das das perfekt geht ist Horizon schon sehr
gut.
Was ich aktuelle noch suche ist die Möglichkeit einen SCAN (JPEG, BMP)
als Bild im Board drunter zulegen um das nach zu malen.
Entweder es geht nicht oder ich übersehe es einfach.
Ja nach malen klingt komisch, ist aber manchmal die einzige Möglichkeit
um von einer alten Leiterplatte (geklebt oder uralt CAD) aktuelle CAD
Daten zu bekommen.
Klaus schrieb:> Was ich aktuelle noch suche ist die Möglichkeit einen SCAN (JPEG, BMP)> als Bild im Board drunter zulegen um das nach zu malen.> Entweder es geht nicht oder ich übersehe es einfach.
Ne, das geht nicht. Ist auch nicht ganz so einfach zu bauen, da man das
Bild dafür als Textur vorhalten müsste. Das nächstbeste, was es derzeit
gibt, ist DXF-Import. Da wäre eine denkbare Erweiterung, aus den
importierten Linien per Tool tracks zu machen.
"nachmalen" können wäre ja schon mehr als die halbe Miete, automatisch
muss das nicht sein. Dann fehlt eigentlich nur noch ein
Postscript-zu-DXF-Konverter. Inkscape kann Bitmapgrafik vektorisieren
wenn der Kontrast gut ist.
DFX probiere ich mal aus.
Von EAGEL kenne ich es das man BMP Datein einlesen kann, die werden
dabei dann wohl in irgendwas umgesetzt (Linien / Polygone).
Wenn das sozusagen so was wie ein DFX Import ist dann ist das ja fast
drin.
Wie man gescheit BMP nach DFX wandelt muss ich dann sehen.
Das man da am besten auch S/W Bilder hat ist klar, Farbe wäre da wohl
etwas schlecht.
Das Fenster durchsichtig machen ist zwar nett, aber da geht jede
Skalierung verloren. Außerdem lesse ich da was von XP und ob das unter
WIN10 geht werde ich nicht testen, denke aber nicht.
DXF ist halt ein Zeichnungsformat und damit eine Vektorgrafik.
BMP ist so ziemlich das primitivste Bitmap-Grafik-Format.
Vektorgrafik nach Bitmap wandeln ist einfach, Bitmap nach Vektor ist
aufwändig. Man muss ja entlang der Kontrastgrenzen der Pixel einen
Vektor ermitteln.
Inkscape wurde schon genannt als Tool, was sowas zumindest prinzipiell
beherrscht.
Jörg W. schrieb:> Vektorgrafik nach Bitmap wandeln ist einfach, Bitmap nach Vektor ist> aufwändig.
Für den Zweck nicht - du kannst auch die Bitmap ganz stumpf in eine
Punktewolke wandeln. Gibt zwar große und hässliche Dateien, müsste für
den angestrebten Zweck aber reichen. Wäre eine schöne Fingerübung in
Python.
Wer mehr Aufwand spendieren will, fasst wenigstens noch
nebeneinanderliegende Pixel zusammen.
Max G. schrieb:> du kannst auch die Bitmap ganz stumpf in eine Punktewolke wandeln.
Genial. Mit ein wenig Vorarbeit in irgendeiner Bildbearbeitung zwecks
Kontrastverstärkung und vielleicht pngtopnm... Die genaue Skalierung ist
etwas fummelig, aber das wäre mit echter Vektorisierung auch nicht
einfacher. Wenn DXF für Punkte keine Strichstärke kennt, sieht man die
vielleicht nicht. In dem Notfall erzeugt man eben Linien, die so kurz
wie breit sind.
Meine Versuche gehen zwar irgendwie, aber schön ist was anderes.
Da werde ich jetzt mal unverschämt und äussere den Wunsch einer solchen
Funktion für die nächste Version.
Mit PC Software schreiben habe ich es nicht so und kann das leider nicht
Lukas fertig anbieten.
Max G. wenn das eine schöne Fingerübung ist dann bitte leg los, da
werden sich bestimmt noch andere drüber freuen.
Klaus schrieb:> Meine Versuche gehen zwar irgendwie, aber schön ist was anderes.
Dann gib uns doch dein Bild mal, und wir werden versuchen, es dir in ein
benutzbares DXF zu wandeln.
Klaus schrieb:> Max G. wenn das eine schöne Fingerübung ist dann bitte leg los, da> werden sich bestimmt noch andere drüber freuen.
Bitteschön. Inkscape braucht zwar ein bisschen zum Laden, aber es tut :)
Eingabe: PBM ASCII (kann z.B. IrfanView erzeugen), Ausgabe SVG. Für die
Wandlung SVG->DXF gibt es diverse Möglichkeiten, z.B. Inkscape.
Lukas K. schrieb:> Klaus schrieb:>> Was ich aktuelle noch suche ist die Möglichkeit einen SCAN (JPEG, BMP)>> als Bild im Board drunter zulegen um das nach zu malen.>> Entweder es geht nicht oder ich übersehe es einfach.>> Ne, das geht nicht. Ist auch nicht ganz so einfach zu bauen, da man das> Bild dafür als Textur vorhalten müsste
Geht nicht gibt's nicht. Ich hatte genau das jetzt auch für ein Projekt
gebraucht und eingebaut.
Mit place picture kann man nun Bilder beliebigen Formates (alles was
GdkPixbuf kann) in Schaltplan, Board und Package importieren. Alternativ
kann man auch Bilder aus der Zwischenablage pasten.
Um die Projektdateien nicht übermäßig aufzublähen werden die Bilder als
PNG im Projektverzeichnis gespeichert.
>Ich hatte genau das jetzt auch für ein Projekt gebraucht und eingebaut.
Läuft. Damit hast du EAGLE bei mir auf ein rostiges Abstellgleis
gestellt.
Danke.
Ein Monat ist mal wieder rum und es gibt wie üblich wieder einen kurzen
Bericht darüber, was so passiert ist:
https://blog.horizon-eda.org/progress/2020/06/02/progress-2020-05.html
Unter anderem:
- Import von KiCad-Symbolen
- Schöneres Laden von 3D-Modellen
- Es gibt nun eine Toolbar
- Gateswapping
Hi! Habs mal installiert. Kann man hier Fragen stellen oder ist dafür
extra woanders was eingerichtet worden?
Anyway, auf meinen Win7 Rechner stürzt es ab mit einer Fehlermeldung.
siehe Bild.
Auf meinem Win10 PC läuft es anscheinend. Habe noch nicht so viel
probiert. Wenn ich das Beispielprojekt X-Transmitter öffne, fliegen die
SMD-Bauelemente über der Platine. Haben also eine falsche
Höheninformation. Sieht lustig aus, aber was mache ich falsch?
Damit sind wir bei der Pool-Sache. Ich habe den Standard-Pool geladen.
Wenn ich nun ein eigenes Bauelement definiere, wo landet es? Muß ich
einen eigenen lokalen Pool sinnvollerweise anlegen?
Danke für Infos!
Abdul K. schrieb:> auf meinen Win7 Rechner stürzt es ab mit einer Fehlermeldung.> siehe Bild. Auf meinem Win10 PC läuft es anscheinend.Beitrag "Re: Neues, halbfertiges Elektronik-CAD-Programm" vom
31.01.2017
...OpenGL 3.2 ist leider Pflicht, da zum Rendern u.A. geometry shader
verwendet werden....
Vielleicht liegt es an der OpenGL Version auf dem Win7 Rechner.
Abdul K. schrieb:> Anyway, auf meinen Win7 Rechner stürzt es ab mit einer Fehlermeldung.
Ich lehne mich jetzt hier mal entspannt zurück und verweise darauf dass
Windows 7 inzwischen am Ende des Lebenszyklus angelangt ist.
Abdul K. schrieb:> Habe noch nicht so viel> probiert. Wenn ich das Beispielprojekt X-Transmitter öffne, fliegen die> SMD-Bauelemente über der Platine. Haben also eine falsche> Höheninformation. Sieht lustig aus, aber was mache ich falsch?
Ein Screenshot wäre an der Stelle hilfreich.
Abdul K. schrieb:> Ich habe den Standard-Pool geladen.> Wenn ich nun ein eigenes Bauelement definiere, wo landet es? Muß ich> einen eigenen lokalen Pool sinnvollerweise anlegen?
Kommt drauf an, im großen und ganzen sind drei Modelle denkbar:
1. Git benutzen und die eigenen Bauteile auf einem eignen Branch halten
2. Einen eigenen Pool anlegen und den Standardpool inkludieren
3. Die Bauteile im Standardpool hinzufügen und da lassen.
Also hier sagt das Kontroll von AMD. siehe Bild
Lukas K. schrieb:> Abdul K. schrieb:>> Anyway, auf meinen Win7 Rechner stürzt es ab mit einer Fehlermeldung.>> Ich lehne mich jetzt hier mal entspannt zurück und verweise darauf dass> Windows 7 inzwischen am Ende des Lebenszyklus angelangt ist.>
Bei mir nicht, arbeite damit auch lieber als mit Win10.
> Abdul K. schrieb:>> Habe noch nicht so viel>> probiert. Wenn ich das Beispielprojekt X-Transmitter öffne, fliegen die>> SMD-Bauelemente über der Platine. Haben also eine falsche>> Höheninformation. Sieht lustig aus, aber was mache ich falsch?>> Ein Screenshot wäre an der Stelle hilfreich.>
gerne. Moment, anderer PC...
> Abdul K. schrieb:>> Ich habe den Standard-Pool geladen.>> Wenn ich nun ein eigenes Bauelement definiere, wo landet es? Muß ich>> einen eigenen lokalen Pool sinnvollerweise anlegen?>> Kommt drauf an, im großen und ganzen sind drei Modelle denkbar:>> 1. Git benutzen und die eigenen Bauteile auf einem eignen Branch halten> 2. Einen eigenen Pool anlegen und den Standardpool inkludieren> 3. Die Bauteile im Standardpool hinzufügen und da lassen.
Danke.
Abdul K. schrieb:> bla
Sieht ja in der Tat recht lustig aus. Da du der erste mit dem Problem
bist gehe ich jetzt mal von einem Bug im Grafiktreiber aus. Zum malen
von den 3D-Modellen wird die recht neue (seit 4.2) OpenGL-Funktion
glDrawElementsInstancedBaseInstance benutzt, mit der in einem einzigen
Draw call alle Instanzen eines Modells gezeichnet werden können. Gut
möglich dass der Treiber da bugs hat.
Ist der ATI-Screenshot da von Windows 7 oder 10?
Sieht so aus als ginge es jetzt auf dem Win7 Läppi. Ich habe den
Grafiktreiber aktualisiert. Von der AMD-Seite, denn Windoof selbst
meinte er wäre vorher schon aktuell gewesen. OpenGL zeigt immer noch
Version 6.14 .
Allerdings läuft es so langsam, daß es unbenutzbar ist.
Und der Fehler der fliegenden Bauelemente in der 3D-Ansicht ist auch da.
Was bedeutet denn in der Pool-Verwaltung "out of date" bei einem
Bauelement?
Gibts irgendwo kleinste Beispielprojekte, an denen man rumfummeln kann.
Und ganz wichtig, komplette Videos, in denen eine komplette Erstellung
einer Platine gezeigt wird? Das muß ja nicht viel sein, ein NE555 mit
bisserl Hühnerfutter und Steckverbinder, fertig.
Wo findet man die Tastendefinitionen?
Wie kann man zoomen ohne Scrollrad?
Wie definiert man die Platinengröße?
Werden Änderungen transparent zwischen Schaltplan und Layout
aktualisiert?
Ein Bauelement im Layout eingefügt ohne Schaltplan, scheint gar nicht zu
funktionieren.
Boah, ich als professioneller Layouter finde erstmal garnix.
Einen 10K Widerstand in einer endlosen Liste aussuchen, geht eigentlich
gar nicht. Fällt das nur mir auf?
Dann poppt ein Fenster auf, ich solle meine Arbeit sichern. Geht aber
nicht, denn Save ist deaktiviert. Fenster einfach zugemacht und wieder
auf, Schaltplan noch da. Hm, aber ich habe doch nicht gesichert??
Gibt es unbegrenztes undo?
Schön wäre ein Liste, wo die häufigsten Operationen kurz erklärt sind.
Dann ist der Umstieg von einem anderen Programm ein Klacks. Es sind ia
immer die gleichen Fragen, die sich einem stellen. Nur das Prozedere ist
meist völlig unterschiedlich.
Sehe es nicht als Gemeckere an.
Abdul K. schrieb:> Was bedeutet denn in der Pool-Verwaltung "out of date" bei einem> Bauelement?
Wenn man ein Bauteil in einem Projekt verwendet, wird es in den
cache-ordner kopiert. Wenn sich das Bauteil dann im Pool ändert wir es
im cache als out of date angezeigt.
Abdul K. schrieb:> Wo findet man die Tastendefinitionen?
Hamburger Menü -> Help (oder ? drücken)
> Wie kann man zoomen ohne Scrollrad?
Mit pinch-to-zoom auf Touchscreen oder Touchpad auf unterstützten
Plattformen (ob windows dazugehört weiß ich gerade nicht)
> Wie definiert man die Platinengröße?
Polygon im outline layer malen (leertaste drücken und nach draw polygon
rectangle suchen)
> Werden Änderungen transparent zwischen Schaltplan und Layout> aktualisiert?
Wenn den Schaltplan speicherst wird auch die Netzliste gespeichert. Im
Board-Editor kannst du die dann mit "reload netlist" neuladen.
> Dann poppt ein Fenster auf, ich solle meine Arbeit sichern. Geht aber
nicht, denn Save ist deaktiviert.
Hast du einen screenshot davon?
> Gibt es unbegrenztes undo?
Gab es mal, ist aber nun auf 50 begrenzt, da sonst der RAM voll lief.
> Ein Bauelement im Layout eingefügt ohne Schaltplan, scheint gar nicht zu> funktionieren.
Ja, das muss so.
> Boah, ich als professioneller Layouter finde erstmal garnix.
Liegt wohl daran, dass du das Leertasten-Menü noch nicht gefunden hast.
Da ist alles drin.
> Einen 10K Widerstand in einer endlosen Liste aussuchen, geht eigentlich
gar nicht. Fällt das nur mir auf?
Dazu gibt es im Part browser den tab 'Resistors' mit parametrischer
suche. Was will man mehr haben?
Nach 3 Monaten ist es wieder Zeit für eine Release:
https://github.com/horizon-eda/horizon/releases/tag/v1.2.0
Neu ist darin u.a.:
- Action bar / toolbar für häufig benutzte Tools
- Import von KiCad-Symbolen
- Einfärben von Netzen im Board
- Konfigurierbare Tastenkombinationen in Tools
- Grid-Ursprung ist einstellbar
Es ist mal wieder an der Zeit für eine neue Version:
https://github.com/horizon-eda/horizon/releases/tag/v1.4.0
Neben den üblichen neuen Features und Verbesserungen sind dieses mal
auch zwei wichtige Bugfixes für die Windows-Fraktion dabei:
- Auf Intel-GPUs wurde der Fensterinhalt immer ein Frame zu spät
angezeigt, das ist nun nicht mehr der Fall
- 3D-Vorschau stürzt nicht mehr zufällig mit "gl error 1285" ab
Moin,
Hab' mir die sourcen der 1.4.0 mal gezogen und versuche die auf einem
BLFS-10.0 zu bauen.
Da scheint mir aber verschiedenes schief zu gehen:
1.) ich hab' glm-0.9.9.8 "installiert", ich find da aber nirgends ein
glm.pc file, was das horizon buildsystem aber anscheinend irgendwo haben
will.
2.) wahrscheinlich geht irgendwas mit den Includepfaden schief. Ich
krieg Meldungen wie:
1
src/util/sqlite.cpp:2:10: fatal error: glib.h: No such file or directory
2
2 | #include <glib.h>
3
| ^~~~~~~~
aehnlich mit sigc++
Da fehlt jeweils noch was in der Art glib-2.0 etc. im Includepfad, der
dem gcc mitgegeben wird.
Den ich leider nicht sehen kann, weil weder make V=1 noch VERBOSE=1 das
tun, was ich gerne sowieso als default bei allen Buildsystemen haette.
Gut find ich, dass in der Doku schon mal (hoffentlich) alle
Abhaengigkeiten aufgefuehrt sind, besser waers' wenn da auch gleich noch
Versionsnummern stuenden, ggf. min/max oder mit welchen Versionen das
jeweils getestet wurde.
Waere mir persoenlich natuerlich lieber als die Tipps, wie man die
jeweiligen Paketmanager von zig Distries jeweils dazu bringen kann, die
zu installieren.
Gruss
WK
Dergute W. schrieb:> wahrscheinlich geht irgendwas mit den Includepfaden schief. Ich> krieg Meldungen wie:
Guck mal ganz oben in der Ausgabe von make, da wo pkg-config aufgerufen
wird. Wenn pkg-config ein Paket nicht findet gibt's garnichts mehr aus
und es gibt Folgefehler.
glm ist allerdings auch ein Spezialfall: Da hat vor einiger Zeit der
Maintainer das Install-Target entfernt und jede mir bekannte
Distribution patcht das wieder rein. z.B.
https://github.com/archlinux/svntogit-community/blob/packages/glm/trunk/PKGBUILD#L30
Keine Ahnung wie das deine Distro handhabt. Alternativ kannst du auch
Version 0.9.9.5 vom glm nehmen, da ist das Install target noch drin.
> Den ich leider nicht sehen kann
1
make QUIET=
Zeigt den Compileraufruf an.
> Versionsnummern stuenden, ggf. min/max oder mit welchen Versionen das jeweils
getestet wurde.
Bis jetzt war das noch nie ein Problem. Das älteste was noch supported
wird, ist das was bei Ubuntu 18.04 dabei ist.
Moin,
Merci, das hilft schon mal weiter.
Lukas K. schrieb:> Guck mal ganz oben in der Ausgabe von make, da wo pkg-config aufgerufen> wird. Wenn pkg-config ein Paket nicht findet gibt's garnichts mehr aus> und es gibt Folgefehler.
Huh, fiese Falle. Ja das war hier wohl das fehlende glm.pc.
Bei BLFS wird bei GLM nur ein Haufen Header nach /usr/include kopiert;
die werden dann wohl auch ohne pkg-configs Segen vom gcc gefunden.
Lukas K. schrieb:> make QUIET=>> Zeigt den Compileraufruf an.
Na, das nenn ich mal intuitiv ;-D
Schaut schon besser aus. Beim finalen linken geht grad noch was schief,
da werd' ich aber heut nicht mehr dazukommen, das genauer anzugucken.
Merci nochmal fuer den schnellen Tip.
Gruss
WK
Moin,
So, wenn man zufaellig grad ein BLFS-10.0 hat und moecht' horizon-1.4.0
bauen, dann koennte das mit den jeweiligen Versionen aus dem BLFS Book
fuer die libs aus dieser Liste
https://horizon-eda.readthedocs.io/en/latest/build-linux.html
sowie diesen Versionen von Zeugs, was nicht im BLFS-Book behandelt wird:
libzmq-4.3.4
libgit2-1.1.0
opencascade-7.5.0
cppzmq-4.7.1
podofo-0.9.7
libzip-1.7.3
unter zuhilfennahme des angepappten Makefiles hinhauen.
Da hab' ich entfernt, dass pkg-config auf glm.pc hofft (Gibbet nicht
beim BLFS) und dafuer ein paar libs extra mitangegeben, die mutmasslich
podofo braucht, aber nicht explizit Bescheid sagt.
Hab mit dem dann rausfallenden Binary zwar noch keine Platine/Schaltplan
erstellt, aber zumindest mal den default Pool gezogen.
Gruss
WK
Hi!
Kommenden Donnerstag probiere ich mal etwas neues: Ich streame 2-3
Stunden, wie ich mit Horizon EDA eine Platine designe. Da es sich nur um
eine kleine Platine handelt, versuche ich tatsächlich in dieser
Zeitspanne mit Schaltplan und Layout fertig zu werden.
Wer interessiert ist, darf mir gerne am __18.02. um 18:00 Uhr CET__ über
die Schulter schauen:
https://www.twitch.tv/electrifried
Wenn während des Streams Fragen zur Bedienung oder dem Design
auftauchen, können diese gerne im Chat des Streams gestellt werden.
Dafür wird dann aber ein Twitch-Account benötigt.
VG
Jue
Jue schrieb:> Da es sich nur um> eine kleine Platine handelt, versuche ich tatsächlich in dieser> Zeitspanne mit Schaltplan und Layout fertig zu werden.
Auch die Kreierung der Bauteile oder nur Schaltplan + Layout?
testi schrieb:>> Da es sich nur um>> eine kleine Platine handelt, versuche ich tatsächlich in dieser>> Zeitspanne mit Schaltplan und Layout fertig zu werden.>> Auch die Kreierung der Bauteile oder nur Schaltplan + Layout?
Ich habe glaube ich schon alles was ich brauche im Pool.
Aber wenn es von Interesse ist, kann ich auch ein Bauteil anlegen. Für
ein anderes Projekt benötige ich noch ein Relais. Ich kann gerne zeigen,
wie ich da vorgehe.
VG Jue
Martin S. schrieb:> Jue schrieb:>> Wer interessiert ist, darf mir gerne am __18.02. um 18:00 Uhr CET__ über>> die Schulter schauen:>> https://www.twitch.tv/electrifried>> Gibt's davon eine Aufzeichnung?
Wenn ich es technisch nicht versaue - ich streame das erste Mal - werde
ich wohl eine Aufnahme (evtl. sogar geschnitten) auf Youtube hochladen.
Ich kann aber nichts versprechen.
Martin S. schrieb:> Heißt: Twitch bietet da nichts an, oder? Youtube-Streams werden ja> automatisch? gespeichert und sind nachträglich als VoD abspielbar.
Afaik speichert Twitch für die einfachen Accounts nur zwei Wochen ...
aber wie gesagt: bin noch am lernen, wie der ganze neumodische Kram
funktioniert ;)
Jürgen F. schrieb:> Martin S. schrieb:>> Heißt: Twitch bietet da nichts an, oder? Youtube-Streams werden ja>> automatisch? gespeichert und sind nachträglich als VoD abspielbar.>> Afaik speichert Twitch für die einfachen Accounts nur zwei Wochen ...
Schau vorher nochmal, welche Rechte du an dem von der Plattform
aufgezeichneten Stream hast - nicht dass du eine Aufzeichnung durch die
eine Plattform nicht mehr selber nutzen (und damit z.B. bei einer
anderern Plattform uploaden) darfst.
Meine Einschätzung: lieber selber aufzeichnen und selber encodieren.
Jue schrieb:> Wer interessiert ist, darf mir gerne am __18.02. um 18:00 Uhr CET__ über> die Schulter schauen:> https://www.twitch.tv/electrifried>> Wenn während des Streams Fragen zur Bedienung oder dem Design> auftauchen, können diese gerne im Chat des Streams gestellt werden.> Dafür wird dann aber ein Twitch-Account benötigt.
Coole sache! Wäre es arg viel Mehraufwand auch Fragen aus dem #horizon
IRC-Channel auf freenode anzunehmen?
Lukas K. schrieb:> Coole sache! Wäre es arg viel Mehraufwand auch Fragen aus dem #horizon> IRC-Channel auf freenode anzunehmen?
Gute Idee! Ich kann mal versuchen ein Auge parallel auf den IRC zu
werfen und auch dort Fragen zu klären. Dann muss ich nicht unnötiger
Weise Menschen in den Walled Garden "Twitch" locken.
Danke an alle Zuseher! Hab mich sehr gefreut, dass ich nicht alleine im
Stream war. Hat Spaß gemacht :)
Martin S. schrieb:> Scheint ja doch geklappt zu haben mit der Aufzeichnung. Schöne Sache.> Dann hab ich mal wieder was nettes auf meiner Watch-List.
Jup. Für zwei Wochen hier nachzusehen:
https://www.twitch.tv/videos/919019498
Ich bin heute schon gut vorangekommen. Ich werde dann voraussichtlich
nächsten Mittwoch für den Rest am streamen sein.
VG Jue
Jürgen F. schrieb:> Für zwei Wochen hier nachzusehen:
Wer sich's aufheben will: youtube-dl kann das auch runterladen.
Sind aber wohl um die 6 GiB, meint es …
Jürgen F. schrieb:> Danke an alle Zuseher! Hab mich sehr gefreut, dass ich nicht alleine im> Stream war. Hat Spaß gemacht :)
Danke für den Stream, war mal schön zu sehen, dass viele den
implementieren Ideen auch trotz der eher spärlichen Dokumentation
verständlich sind.
Im Stream sind mir einige Dinge aufgefallen, die inzwischen behoben
sind:
- Reichelt und Conrad zählen nun zu den unerwünschten
Datenblatt-Domains
- Beim Platzieren eines Bauteils im Board wird es auch korrekt im
Schaltplan highlighted
- Wenn man die Anzahl an Innenlagen erhöht, bekommen die in der
Layer-box links auch gleich die richtige Farbe
- Beim mergen von Parts werden auch Symbole mit vorausgewählt
Jürgen F. schrieb:> Danke an alle Zuseher! Hab mich sehr gefreut, dass ich nicht> alleine im> Stream war. Hat Spaß gemacht :)>> Martin S. schrieb:>> Scheint ja doch geklappt zu haben mit der Aufzeichnung. Schöne Sache.>> Dann hab ich mal wieder was nettes auf meiner Watch-List.>> Jup. Für zwei Wochen hier nachzusehen:> https://www.twitch.tv/videos/919019498>> Ich bin heute schon gut vorangekommen. Ich werde dann voraussichtlich> nächsten Mittwoch für den Rest am streamen sein.>> VG Jue
Hab gerade ein bisschen in den Stream reingesehen - echt sehr
interessant und lehrreich. Vielen Dank für die Mühe!
Rein aus Interesse: Gibt's eigentlich nen Grund, warum du auf Twitch und
nicht auf Youtube streamst? Ich muss gestehen, dass ich Twitch jetzt
nicht so auf dem Radar hatte und ich bisher auch nicht wusste, dass das
auch Leute aus der Maker Szene nutzen.
Was ich ein bisschen schade finde ist, dass die Videos anscheinend auf
Twitch nur für 2 Wochen verfügbar sind. Hast du vor, die Videos evt.
auch auf YT hochzuladen? Wäre sehr schade, wenn das Video hier nach 2
Wochen wieder verschwindet.
Was auch immer "MSAA" heißen mag :-) (YAA - yet another acronym), es
scheint mit dem Antialiasing zu tun zu haben. Nachdem ich die
Einstellungen sowohl für Schematic als auch Board auf "MSAA 1x" geändert
habe, taucht die Warnung nicht mehr auf.
Danke fürs Zuhören. :-)
Edit: beim 3D-Viewer taucht es immer noch auf. Dafür finde ich irgendwie
keine Einstellmöglichkeit.
Jörg W. schrieb:> Edit: beim 3D-Viewer taucht es immer noch auf. Dafür finde ich irgendwie> keine Einstellmöglichkeit.
In der 3D-Ansicht ist das im Settings-Overlay (Knopf ist oben links) zu
finden.
Was hast du für eine GPU, die kein MSAA kann?
Lukas K. schrieb:> In der 3D-Ansicht ist das im Settings-Overlay (Knopf ist oben links) zu> finden.
OK.
> Was hast du für eine GPU, die kein MSAA kann?
Gute Frage, irgendeine Radeon. Vielleicht ist da auch was
fehlkonfiguriert?
Bisschen seltsam im Xorg log:
1
[ 147.933] (==) Automatically adding devices
2
[ 147.933] (==) Automatically enabling devices
3
[ 147.933] (==) Not automatically adding GPU devices
Dafür wiederum geht 3D trotzdem verdammt gut …
pciconf sagt:
Bernhard B. schrieb:> Hab gerade ein bisschen in den Stream reingesehen - echt sehr> interessant und lehrreich. Vielen Dank für die Mühe!
Schön, dass es dir etwas bringt :)
> Rein aus Interesse: Gibt's eigentlich nen Grund, warum du auf Twitch und> nicht auf Youtube streamst? Ich muss gestehen, dass ich Twitch jetzt> nicht so auf dem Radar hatte und ich bisher auch nicht wusste, dass das> auch Leute aus der Maker Szene nutzen.
Ich schaue tatsächlich gerne den ganzen Maker-Kanälen auf Twitch zu. So
war das für mich der logische Schluss auch dort zu streamen. Aber nichts
ist in Stein gemeißelt. Ich bin noch sehr viel am Lernen und
Ausprobieren.
> Was ich ein bisschen schade finde ist, dass die Videos anscheinend auf> Twitch nur für 2 Wochen verfügbar sind. Hast du vor, die Videos evt.> auch auf YT hochzuladen? Wäre sehr schade, wenn das Video hier nach 2> Wochen wieder verschwindet.
Ich werde das Video etwas zusammendampfen - also Gestammel
rausschneiden, Redepausen rausschneiden. Ich glaube die Form ist für die
Nachwelt interessanter als der vollständige Stream ;) Das Ergebnis lade
ich dann auf YT hoch.
VG Jue
Bin nun inzwischen ein gutes Stück durch dein Filmchen durch und habe
versucht, das Ganze hier mal mit einem leicht anders gearteten Relais
(Reed-Relais in SIL-Gehäuse) nachzuvollziehen.
Worüber ich am ende stolpere ist eine Verifikationswarnung "Pin x has
improper orientation".
Interessanterweise bekomme ich diese nicht für das zuvor angelegte
einfache Relais-Symbol, sondern nur für das hier mit der integrierten
Freilaufdiode. Dafür habe ich das vorige Symbol dupliziert und die Box
etwas vergrößert.
Was will mir diese Warnung sagen?
Jörg W. schrieb:> Was will mir diese Warnung sagen?
Ich vermute mal, dass dein Symbol nicht horizontal zentriert ist. Die
helle Box im Hintergrund ist die um den Ursprung zentrierte bounding
box, auf der alle Pins liegen sollten. Bei dir kommen die Pins rechts
auf der oberen/unteren Kante zu liegen und sollten daher nach dem
Symbol-Regeln nach oben/unten zeigen.
Gtk im Motif-fensterrahmen ist ja auch eine sehr interessante
Kombination ;) Eigentlich sollte bei dem Rules-Fenster da Gtk deinen
Fenstermanager davon überzeugen, dass dieses Fenster keinen Rahmen
braucht, weil ja Gtk den schon malt. Was ist eigentlich mit den
schließen-icons schief gelaufen? Die sehen ein wenig verunglückt aus.
Lukas K. schrieb:> Jörg W. schrieb:>> Was will mir diese Warnung sagen?>> Ich vermute mal, dass dein Symbol nicht horizontal zentriert ist. Die> helle Box im Hintergrund ist die um den Ursprung zentrierte bounding> box, auf der alle Pins liegen sollten.
Ah OK. Das erklärt es: ich hatte die Box nach links vergrößert, um Platz
für die Freilaufdiode zu bekommen. Da hätte ich sie auch nach rechts
vergrößern müssen.
Habe ich nun getan, jetzt ist das alles OK.
Ich fände es gut, wenn es dafür irgendwo bei den Fehlermeldungen eine
Hilfe gäbe, die ein paar Details erklärt. Mir ist ohnehin gerade nicht
ganz klar, wo diese Rules denn genau stehen (ansonsten hätte ich dort
mal nachgeschaut, was sie genau besagen).
> Gtk im Motif-fensterrahmen ist ja auch eine sehr interessante> Kombination ;)
Ich bin seit mehr als 25 Jahren halt fvwm-Nutzer. Damals war Motif-Look
das, dem sie alle nachgeeifert hatten, und fvwm hatte das ganz gut hin
bekommen.
Irgendwie hat dieser Windowmanager schlicht alles, was ich brauche, und
ich habe mich gut dran gewöhnt. Hatte auf meinem neuen Dienst-Laptop
(auf dem Unbuntu läuft, anders als mein handgestricktes FreeBSD hier)
mal eine Weile lang Mate als Desktop laufen, aber irgendwie bin ich auch
dort dann zu fvwm zurück.
> Eigentlich sollte bei dem Rules-Fenster da Gtk deinen> Fenstermanager davon überzeugen, dass dieses Fenster keinen Rahmen> braucht, weil ja Gtk den schon malt.
Wobei das eben eigentlich dem Sinn von X11 nicht entspricht: Dekoration
war schon immer Aufgabe des Windowmanagers. Der bestimmt damit auch das
look&feel.
> Was ist eigentlich mit den> schließen-icons schief gelaufen? Die sehen ein wenig verunglückt aus.
Nicht nur die, alle Gtk-Icons. Ich bin mir nicht ganz sicher, ob das nur
ein verunglückter Gtk-Build ist, oder ob das mit den weiter oben ja
schon festgestellten Problemen zusammenhängt, dass der X-Server beim
Start die Grafikkarte nicht erkannt hatte. Bin noch nicht dazu gekommen,
mich mal auszuloggen und den X-Server neu zu starten. Ist so lästig,
sind so viele Dinge offen, die man danach dann wieder neu zusammen
suchen müsste. ;-) Da diese verhunzten Icons ein reiner Schönheitsfehler
sind, ist mir das auch nicht allzu wichtig. (Der Radeon-Treiber im
X-Server wäre mir schon wichtiger, aber irgendwas spinnt auch an einem
SATA-Kabel, ich würde dann wohl die Kiste gleich mal komplett booten
wollen.)
Jörg W. schrieb:>> Was ist eigentlich mit den>> schließen-icons schief gelaufen? Die sehen ein wenig verunglückt aus.>> Nicht nur die, alle Gtk-Icons. Ich bin mir nicht ganz sicher, ob das nur> ein verunglückter Gtk-Build ist, oder ob das mit den weiter oben ja> schon festgestellten Problemen zusammenhängt, dass der X-Server beim> Start die Grafikkarte nicht erkannt hatte.
Nö, auch nach dem Neustart sind die noch verhunzt.
Anyway, wollte nun einen Pull Request für mein hübsches SIL-Relais
machen, aber:
Assertion failed: (buf && sig), function git_signature__writebuf, file /usr/ports/devel/libgit2/work/libgit2-1.0.1/src/signature.c, line 305.
17
18
[1] Abort horizon-eda (core dumped)
Core-File liegt noch rum, falls du denkst, dass man dem noch was
entnehmen kann.
Coredump ist reproduzierbar. Ich kann den pull request natürlich noch
mit der Hand erzeugen auf Github.
Jörg W. schrieb:>> Was hast du für eine GPU, die kein MSAA kann?>> Gute Frage, irgendeine Radeon.
Selbst mit passendem Treiber macht sie aber nur MSAA 1x.
Jörg W. schrieb:> Core-File liegt noch rum, falls du denkst, dass man dem noch was> entnehmen kann.
Ein Backtrace wäre ganz nützlich.
So ins blaue hineingeraten, guck mal ob in
https://github.com/horizon-eda/horizon/blob/master/src/pool-prj-mgr/pool-mgr/pool_remote_box.cpp#L1241
signature nicht vielleicht ein nullpointer ist. Allerdings sehe ich
gerade nicht so recht, wie das auftreten könnte, da in dem Dialog davor
eigentlich vom remote-repo user.name und user.email gesetzt werden. Wäre
vielleicht doch besser gewesen, den return-code von
git_signature_default zu überprüfen.
Tja, jetzt habe ich es aus dem Buildverzeichnis unter GDB-Steuerung
laufen lassen, und alles rennt durch. :-/ Hmm, damit hast du jetzt
meinen ersten Pool-Pullrequest. :-)
Hier ist der Stacktrace aus dem Coredump:
1
Core was generated by `horizon-eda'.
2
Program terminated with signal SIGABRT, Aborted.
3
4
warning: Unexpected size of section `.reg-xstate/102284' in core file.
5
#0 thr_kill () at thr_kill.S:3
6
3 RSYSCALL(thr_kill)
7
[Current thread is 1 (LWP 102284)]
8
(gdb) bt
9
#0 thr_kill () at thr_kill.S:3
10
#1 0x0000000803b4b094 in __raise (s=6) at /usr/src/lib/libc/gen/raise.c:52
11
#2 0x0000000803ac1289 in abort () at /usr/src/lib/libc/stdlib/abort.c:67
12
#3 0x0000000803b3b2a1 in __assert (func=<optimized out>, file=<optimized out>, line=<optimized out>, failedexpr=<optimized out>) at /usr/src/lib/libc/gen/assert.c:51
13
#4 0x0000000803851106 in () at /usr/local/lib/libgit2.so.1.0
14
#5 0x00000008037dc494 in () at /usr/local/lib/libgit2.so.1.0
15
#6 0x00000008037da932 in () at /usr/local/lib/libgit2.so.1.0
16
#7 0x00000008037dac9f in git_commit_create () at /usr/local/lib/libgit2.so.1.0
17
#8 0x0000000000649e89 in horizon::PoolRemoteBox::create_pr_thread() (this=0x80766ed00) at src/pool-prj-mgr/pool-mgr/pool_remote_box.cpp:1241
18
#9 0x000000000065336d in _ZNSt3__18__invokeIMN7horizon13PoolRemoteBoxEFvvEPS2_JEvEEDTcldsdeclsr3std3__1E7forwardIT0_Efp0_Efp_spclsr3std3__1E7forwardIT1_Efp1_EEEOT_OS6_DpOS7_
Jürgen F. schrieb:> Danke an alle Zuseher!
Danke dir nochmal für deine Aktivität!
Hat mich dazu bewogen, mein Horizon mal auf aktuellen Stand zu bringen
und wirklich mal wieder zu testen – siehe ersten Merge Request für den
Pool. Ganz zufällig :) habe ich mir auch ein Relais rausgesucht, aber
ein Reed-Relais, von dem ich gerade noch 5 Stück rumliegen habe (und
welches man auch aktuell noch kaufen kann).
Was mir bei der Datenblatt-Geschichte auffällt: könnte man dafür (oder
ist vielleicht schon?) einen lokalen Cache einrichten, in dem die die
runter geladenen PDFs zwischengespeichert werden? Dann muss man erstens
nicht jedesmal das Netz dafür belästigen, und zweitens kann ich mir die
gecacheten Datenblätter halt auch in der Regionalbahn in
Hinterposemuckel noch ansehen, wo meine Internetverbindung vielleicht
gerade nur mit viel Glück von einer 30 km entfernten polnischen
GSM-Basisstation erbracht wird. (Tatsächlich schon so erlebt in der
Uckermark.)
Was mir an Horizon generell auffällt: die 3D-Darstellung ist um
mindestens eine Größenordnung schneller als die von Kicad. Liegt das
daran, dass Lukas hier von vornherein (gab damals viele Diskussionen)
auf neuere OpenGL-Versionen gesetzt hat?
Hmm, bei den vielen offenen Pull-Requests auf Github bin ich mir gerade
nicht ganz sicher: gibt es wirklich noch nirgends ein SOT-23 Package?
Ich sehe SOT-23-5 und SOT-23-6, aber kein Standard-Package mit 3 Pins.
Jörg W. schrieb:> Kann das die Ursache sein?
Ja, war es. Wird nun im "Confirm PR"-Dialog überprüft.
Jörg W. schrieb:> einen lokalen Cache einrichten, in dem die die> runter geladenen PDFs zwischengespeichert werden?
Die Idee hatte ich auch mal gehabt. Wenn jemand anders die Idee auch
hat, kann sie ja so schlecht nicht sein.
Jörg W. schrieb:> die 3D-Darstellung ist um> mindestens eine Größenordnung schneller als die von Kicad. Liegt das> daran, dass Lukas hier von vornherein (gab damals viele Diskussionen)> auf neuere OpenGL-Versionen gesetzt hat
Ich hatte die 3D-Darstellung von KiCad nie als übermäßig langsam
empfunden. Ich hab gerade mal einen blick in den 3D-Code von KiCad
geworfen und die verwenden tatsächlich die doch gut abgehangenen display
lists. Dank modernerem OpenGL werden in Horizon durch Verwendung von
Instancing alle Bauteile mit dem selben Modell in einem Rutsch
gezeichnet.
Auch ist der 3D-Code in Horizon erheblich schlanker: Ein wc -l der
sourcen von der 3D-Ansicht in KiCad ergibt ca. 25kLOC, bei mir sind's
ca. 3700, wobei da noch Code zum ausrichten oder projizieren von
3D-Modellen drin ist.
Jörg W. schrieb:> gibt es wirklich noch nirgends ein SOT-23 Package?> Ich sehe SOT-23-5 und SOT-23-6, aber kein Standard-Package mit 3 Pins.
Ich meine mich zu erinnern, das mal in einen Pull request gesehen haben,
weiß leider nicht mehr welcher.
Lustig, dass aufgrund des ellenlangen Threads nun nach 4 Jahren immer
noch "halbfertig" drüber steht. ;-)
Wenn du willst, kann ich auch den Titel des initialen Postings mal
ändern. Der geänderte Titel erscheint ja dann in der Threadliste.
Lukas K. schrieb:> Ich hab gerade mal einen blick in den 3D-Code von KiCad geworfen und die> verwenden tatsächlich die doch gut abgehangenen display lists. Dank> modernerem OpenGL werden in Horizon durch Verwendung von Instancing alle> Bauteile mit dem selben Modell in einem Rutsch gezeichnet.
Ich weiß nicht mehr, ob das schonmal gefragt wurde, aber welchen
Hintergrund hast du eigentlich? Das Projekt ist absolut nicht trivial
und spielt imho in der Profi Liga aus Entwicklerperspektive. Ich hätte
dich in die Richtung hauptberuflicher Dev gesehen aber dafür ist das
Thema irgendwie zu elektrotechnisch. Was ist denn deine biographie?
Von 1000 Menschen, die sich an so eine Software heranwagen, schaffen
vielleicht 10 ein brauchbares Ergebnis. Horizon ist aber gefühlt ein bis
zwei Klassen über brauchbar.
Und woher nimmst du die Zeit?
Martin S. schrieb:> Das Projekt ist absolut nicht trivial> und spielt imho in der Profi Liga aus Entwicklerperspektive.
Da bin ich absolut mit dir einverstanden.
Soweit ich mal in einem Talk von Lukas auf YouTube gesehen habe hat er
Elektrotechnik studiert (und hat vor ~5 Jahren abgeschlossen, mit einer
Entwicklung welche er in einer frühen Version von Horizon zeichnen
durfte)
Gibt es eigentlich einen Ort wo man dir etwas Geld schicken kann (z.B.
Patreon, ...)? Ich bezahle gerne etwas fü gute Software, und finde es
nobel, dass du es erstens als OS anbietest und zweitens nirgends etwas
über spenden geschrieben hast.
Eine Frage kommt mir gerade in den Sinn:
Ich habe hier eine Datenbank (PostgresQL), in der ich so gut wie alle
meiner SMD-Bauteile katalogisiert habe. Primärschlüssel der Datenbank
ist letztlich einfach eine laufende Nummer, die dann als so eine Art
"Lagerhaltungsnummer" fungiert. (Im Moment noch ziemlich chaotisch im
"Lager". :)
Wenn ich mir nun einen Widerstand oder Kondensator in die Schaltung
einplane, würde ich natürlich vorzugsweise einen solchen nehmen (Wert,
Bauform), der bereits "im Lager" ist. U.U. würde ich halt beispielsweise
von der "Standardbauform" (derzeit 0603 bei mir) abweichen, wenn der
gewünschte Wert in großer Stückzahl in 0805 gerade da ist. Oder, mein
einziger Mini-MELF-Widerstand (aber davon dann knapp 200 Stück) hat 36,5
kΩ. Könnte man oftmals überall da benutzen, wo man jetzt gerade "nach
Nase" einen mit 33 kΩ einsetzen würde.
Dafür wäre es cool, wenn man im Pool dafür irgendein Attribut
hinterlegen könnte und dann danach filtern. Die Verbindung zur PgSQL-DB
muss nicht unbedingt "live" sein, ich könnte mir auch vorstellen, dass
per Batch irgendwie nächtlich zu propagieren oder immer nur dann
manuell, wenn ich mal wieder "shoppen" war.
Jörg W. schrieb:> Lustig, dass aufgrund des ellenlangen Threads nun nach 4 Jahren immer> noch "halbfertig" drüber steht. ;-)
Wenn mir ein besserer Titel einfallen würde... Unpassende Threadnamen
gehören ja schon fast zum guten Ton hier, man denke nur an "Brauche
Hilfe beim Bau eine Uhr".
Martin S. schrieb:> Ich weiß nicht mehr, ob das schonmal gefragt wurde, aber welchen> Hintergrund hast du eigentlich? Das Projekt ist absolut nicht trivial> und spielt imho in der Profi Liga aus Entwicklerperspektive.
Mit Elektronik angefangen, dann Richtung Software abgerutscht.
Aus Software-Sicht ist Horizon EDA eigentlich nichts herausragendes,
alles algorithmisch annnährend komplexe wie z.B. Polygonoperationen oder
der push&shove Router und Airwire-Berechnung kommt aus Libraries, bzw.
aus KiCad. Die 3D-Ansicht entstand u.a. durch Nachprogrammieren von
OpenGL-Tutorials wie https://open.gl/.
Jörg W. schrieb:> Dafür wäre es cool, wenn man im Pool dafür irgendein Attribut> hinterlegen könnte und dann danach filtern.
Das einfachste könnte sein, mit einem Skript alles vorhandene
Hühnerfutter zu erzeugen. Kann z.B. so aussehen:
https://github.com/horizon-eda/horizon-pool/blob/master/scripts/panasonic-erj/gen.py
Wichtig ist dabei, dass die UUID gleich bleibt.
Eine anderer Ansatz ist, einen eigenen StockInfoProvider zu
implementieren, der dann mit deiner Datenbank redet und so abfragt was
gerade da ist. Wäre dann an der Stelle von
https://horizon-eda.readthedocs.io/en/latest/feature-overview.html#stock-information
Lukas K. schrieb:>> Lustig, dass aufgrund des ellenlangen Threads nun nach 4 Jahren immer>> noch "halbfertig" drüber steht. ;-)>> Wenn mir ein besserer Titel einfallen würde...
Wie wäre es schlicht und einfach mit "Horizon-EDA"?
> Mit Elektronik angefangen, dann Richtung Software abgerutscht.
Willkommen im Klub. :-)
> Eine anderer Ansatz ist, einen eigenen StockInfoProvider zu> implementieren, der dann mit deiner Datenbank redet und so abfragt was> gerade da ist. Wäre dann an der Stelle von> https://horizon-eda.readthedocs.io/en/latest/feature-overview.html#stock-information
Schau ich mir mal an, klingt zumindest passend von der Richtung her.
Kurze schamlose Eigenwerbung: Heute bin ich um 18:00 Uhr wieder online
und bastle weiter mit Horizon EDA rum. Thema heute: einen
USB-Seriell-Adapter für den Debug-Header zusammenklicken. Speziell ist
heute, dass wir uns mit USB beschäftigen und somit differentielle
Leitungen auf dem PCB verlegen werden.
03.03.21 18:00 Uhr - https://www.twitch.tv/electrifried
Mein Grober Plan für die nächsten Wochen wird übrigens dann etwas
Software-lastiger. Die Mikrocontroller bekommen ein RTOS verpasst, mit
dem ich mich auch schon ein bisschen länger beschäftigt habe:
https://riot-os.org/
Hi! Ich habe heute (mal wieder) Horizon (versucht) zu kompilieren.
Leider bleibt es in der Datei zmq_helper.cpp stecken:
1
src/util/zmq_helper.cpp: In function ‘void horizon::zmq_helper::subscribe_int(zmq::socket_t&, uint32_t)’:
2
src/util/zmq_helper.cpp:33:10: error: ‘class zmq::socket_t’ has no member named ‘set’
3
33 | sock.set(zmq::sockopt::subscribe, buf);
4
| ^~~
5
src/util/zmq_helper.cpp:33:19: error: ‘zmq::sockopt’ has not been declared
6
33 | sock.set(zmq::sockopt::subscribe, buf);
7
| ^~~~~~~
8
src/util/zmq_helper.cpp: In function ‘Glib::RefPtr<Glib::IOChannel> horizon::zmq_helper::io_channel_from_socket(zmq::socket_t&)’:
9
src/util/zmq_helper.cpp:42:20: error: ‘class zmq::socket_t’ has no member named ‘get’
10
42 | auto fd = sock.get(zmq::sockopt::fd);
11
| ^~~
Anscheinend funktioniert die Versions-Erkennung nicht richtig.
Kommentiere ich diese aus, läuft der build weiter
1
#include "zmq_helper.hpp"
2
3
//#ifdef CPPZMQ_VERSION
4
//#if CPPZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 1)
5
//#define V431
6
//#endif
7
//#endif
8
9
namespace horizon::zmq_helper {
10
...
Leider gibts dann ein paar Warnings, angeblich habe ich Version >=4.3.1
von zmq. Lt. apt habe ich libzmq3-dev (4.3.2-2ubuntu1).
Kann es sein, dass die open angemeckerte get/set Methoden erst in einer
späteren Version vom zmq eingebaut wurden? Oder in 4.3.2 schon wieder
angeschafft?
1
src/util/zmq_helper.cpp: In function ‘bool horizon::zmq_helper::recv(zmq::socket_t&, zmq::message_t&)’:
2
src/util/zmq_helper.cpp:16:26: warning: ‘bool zmq::detail::socket_base::recv(zmq::message_t*, int)’ is deprecated: from 4.3.1, use recv taking a reference to message_t and recv_flags [-Wdeprecated-declarations]
3
16 | return sock.recv(&msg);
4
| ^
5
In file included from src/util/zmq_helper.hpp:2,
6
from src/util/zmq_helper.cpp:1:
7
/usr/include/zmq.hpp:1407:10: note: declared here
8
1407 | bool recv(message_t *msg_, int flags_ = 0)
9
| ^~~~
10
src/util/zmq_helper.cpp: In function ‘bool horizon::zmq_helper::send(zmq::socket_t&, zmq::message_t&)’:
11
src/util/zmq_helper.cpp:25:25: warning: ‘bool zmq::detail::socket_base::send(zmq::message_t&, int)’ is deprecated: from 4.3.1, use send taking message_t and send_flags [-Wdeprecated-declarations]
12
25 | return sock.send(msg);
13
| ^
14
In file included from src/util/zmq_helper.hpp:2,
15
from src/util/zmq_helper.cpp:1:
16
/usr/include/zmq.hpp:1326:10: note: declared here
17
1326 | bool send(message_t &msg_,
18
| ^~~~
Ach ja: XUbuntu 20.04. horizon lässt sich dann starten, habe aber nicht
intensiv getestet!
Übrigens danke fürs programmieren von Horizon!
Jörg schrieb
>Lustig, dass aufgrund des ellenlangen Threads nun nach 4 Jahren immer>noch "halbfertig" drüber steht. ;-)
Also ich finde den Thread-Titel sehr lustig. Mir gefällt diese Art des
Understatements.
Viele übertreiben ja bei der Beschreibung ihrer Werke und da ist es
wohltuend, mal das Gegenteil zu erleben.
chris_ schrieb:> Understatements
Understatement ist echt eine Untertreibung für das, wass diese
One-man-show in nichtmal der Hälfte der Zeit aus dem Boden gestampft
hat. Ich müsste wahrscheinlich die nächsten 30 Jahre nonstop
programmieren lernen, um das zustande zu bringen. Und hätte dann
vermutlich schlichtweg keine Lust dazu :-)
> Kann es sein, dass die open angemeckerte get/set Methoden erst in einer
späteren Version vom zmq eingebaut wurden? Oder in 4.3.2 schon wieder
angeschafft?
Danke für den Hinweis, tatsächlich war die Versionserkennung bei mir
falsch. Die get/set gibt's erst ab 4.7.0 und nicht schon ab 4.3.1.
Doch damit es leider nicht getan: Die Spezialisten von Ubuntu haben
statt ein Release von cppzmq zu paketieren, wohl das genommen, was
irgendwann auf deren master-Branch rumlag. Das gibt sich zwar als 4.7.0
aus, hat aber die benötigten Funktionen noch nicht. Deswegen tut es auch
mit eigentlich korrekter Versionserkennung auf fast keinem Ubuntu:
https://github.com/horizon-eda/horizon/runs/2605278090?check_suite_focus=true
Magst du einen Bugreport bei Ubuntu aufmachen, oder soll ich?
Eigentlich ist der der Eiertanz mit Versionserkennung nur drin, um
nervige deprecation-Warnings beim Bauen zu vermeiden...
Habe gerade neue Updates auf mein Linux gezogen und horizon Versucht neu
zu bauen (hing voher wegen zmq). Dabei kam es zu einem neuen Fehler und
ich habe
1
#include<optional>
in "src/parameter/program.hpp" und
"src/widgets/parameter_set_editor.hpp" einfügen müssen.
Damit war "gcc 11.1.0" zufrieden.
neuer PIC Freund schrieb im Beitrag #6700866:
> Damit war "gcc 11.1.0" zufrieden.
Danke für die Erinnerung daran, auf meinem Arch Linux mal wieder updates
zu installieren ;) Kam gerade noch rechtzeitig für das bevorstehende 2.0
Release.
chris_ schrieb:> Jörg schrieb>>Lustig, dass aufgrund des ellenlangen Threads nun nach 4 Jahren immer>>noch "halbfertig" drüber steht. ;-)>> Also ich finde den Thread-Titel sehr lustig. Mir gefällt diese Art des> Understatements.> Viele übertreiben ja bei der Beschreibung ihrer Werke und da ist es> wohltuend, mal das Gegenteil zu erleben.
Mich verwirrt es aber ...
Ist es nun eher eine Alpha oder schon für den produktiven Einsatz
geeignet?
Martin schrieb:> chris_ schrieb:>> Jörg schrieb>>>Lustig, dass aufgrund des ellenlangen Threads nun nach 4 Jahren immer>>>noch "halbfertig" drüber steht. ;-)>>>> Also ich finde den Thread-Titel sehr lustig. Mir gefällt diese Art des>> Understatements.>> Viele übertreiben ja bei der Beschreibung ihrer Werke und da ist es>> wohltuend, mal das Gegenteil zu erleben.>> Mich verwirrt es aber ...>> Ist es nun eher eine Alpha oder schon für den produktiven Einsatz> geeignet?
und warum genau, folgst Du dann nicht dem Link im ersten Post und
schaust den Zustand des Projektes an?
Hier für dich der Link direkt zur Release Seite, in der Hoffnung, dass
dies Deine Verwirrung auflöst:
https://github.com/horizon-eda/horizon/releases
Ralf M. M. schrieb:> Martin schrieb:>> chris_ schrieb:>>> Jörg schrieb>>>>Lustig, dass aufgrund des ellenlangen Threads nun nach 4 Jahren immer>>>>noch "halbfertig" drüber steht. ;-)>>>>>> Also ich finde den Thread-Titel sehr lustig. Mir gefällt diese Art des>>> Understatements.>>> Viele übertreiben ja bei der Beschreibung ihrer Werke und da ist es>>> wohltuend, mal das Gegenteil zu erleben.>>>> Mich verwirrt es aber ...>>>> Ist es nun eher eine Alpha oder schon für den produktiven Einsatz>> geeignet?>> und warum genau, folgst Du dann nicht dem Link im ersten Post und> schaust den Zustand des Projektes an?>> Hier für dich der Link direkt zur Release Seite, in der Hoffnung, dass> dies Deine Verwirrung auflöst:> https://github.com/horizon-eda/horizon/releases
Naja, die Reife eines Projekts abzuschätzen ist nicht so einfach und
nicht jeder hat die Zeit, es erstmal nen Tag zu testen. Und um das so
wirklich einzuschätzen braucht man etwas Einarbeitung.
Ich habe das vorhin auch gemacht und festgtestellt, dass es eine Version
2.0 gibt. Dass OSS sich mit Versionsnummer >1.0 noch nicht als
produktionsreif sieht, habe ich auch schon gesehen.
Und da im Betreff sogar explizit halbfertig steht, finde ich die Frage
mehr als gerechtfertigt und so einer schroffen Antwort unwürdig.
Bei dieser Frage ist außerdem ein eventuelles Statement regelmäßiger
Nutzer oder sogar des Autors deutlich hilfreicher als ne halbe Stunde
Changelog lesen und rumprobieren.
Jemand schrieb:> und nicht jeder hat die Zeit, es erstmal nen Tag zu testen
Dann bist du bei EDA komplett falsch.
Kommerzielle EDA-Tools kannst du kaum unter einer Woche
Einarbeitungszeit benutzen.
Den Tag wirst du dir schon gönnen müssen um zu sehen, ob du damit klar
kommst. Da helfen auch keine Einschätzungen anderer Nutzer (die ja dann
typischerweise sehr wohl bereits damit klar kommen).
Jörg W. schrieb:> Jemand schrieb:>> und nicht jeder hat die Zeit, es erstmal nen Tag zu testen>> Dann bist du bei EDA komplett falsch.>> Kommerzielle EDA-Tools kannst du kaum unter einer Woche> Einarbeitungszeit benutzen.>> Den Tag wirst du dir schon gönnen müssen um zu sehen, ob du damit klar> kommst. Da helfen auch keine Einschätzungen anderer Nutzer (die ja dann> typischerweise sehr wohl bereits damit klar kommen).
Okay, der Tag war auch sportlich geschätzt, da hast du Recht. Effektiv
verstärkt dieser Einwand die Aussage aber noch.
In obigem Post ging es ja eher um die Ausgereiftheit. Da finde ich
zumindest es echt hilfreich, andere Meinungen zu hören. Insbesondere,
wenn die Urheber der Meinungen schon geübter mit der Software sind.
Jemand schrieb:> oder sogar des Autors deutlich hilfreicher als ne halbe Stunde> Changelog lesen und rumprobieren.
Gerne doch. Bereits vor fast 3 Jahren habe ich damit das hier layoutet:
https://github.com/carrotIndustries/x-band-tx/ Wobei allerdings
anzumerken ist, dass Leute auch schon mit weitaus primitiverer Software
komplexere Boards entwickelt haben.
Für kleine bis mittelgroße Projekte ist Horizon EDA seit einiger Zeit,
spätestens seit Version 1.0 geeignet.
Nachteil gegenüber anderen Programmen, die schon etliche Jahre mehr auf
dem Buckel haben ist natürlich der geringere Bauteilvorrat und das
Fehlen von Dokumentation jenseits der auf https://docs.horizon-eda.org/
Auch ist die wahrscheinlich geringer, dass jemand vor dir ein Problem
schonmal hatte und dazu eine Lösung gefunden hat.
Lukas K. schrieb:> Nachteil gegenüber anderen Programmen, die schon etliche Jahre mehr auf> dem Buckel haben ist natürlich der geringere Bauteilvorrat
Na klar, in der Werbung zählen nur große Zahlen :( Im Vergleichstest
muss man aber alle Punkte gewichten und Bauteilevorrat sollte maximal zu
1% ins Testergebnis einfließen. Wenn man das anders bewertet, kommt so
ein Schrott wie die Eagle-Bibliotheken dabei raus.
Der Vorrat sollte groß genug sein, dass für jedes Feature ein Beispiel
dabei ist. Und das auch nur, weil zu einem guten Handbuch eben auch
Beispiele gehören. 3854 verschiedene Stecker (Eagle) verschwenden nur
Speicherplatz und der eine, den ich jetzt brauche, ist doch nicht dabei
oder, noch schlimmer, unbrauchbar bis falsch.
Lukas K. schrieb:> Für kleine bis mittelgroße Projekte ist Horizon EDA seit einiger Zeit,> spätestens seit Version 1.0 geeignet.
Dann wäre es vielleicht doch gut, wenn ein Moderator den Titel des
Ursprungsbeitrags mal anpassen würde. Er hat zwar schon Kultstatus, aber
um neue Nutzer anzuziehen, ist "halbfertig" kein guter Werbetext.
Lukas hat meine Frage jetzt schon beantwortet. Danke und einen Daumen
hoch für dein Projekt.
Mit dem Einarbeiten bekomme ich schon hin. Ich kann auch ein paar Fehler
in kauf nehmen. Aber wenn es quasi nicht möglich wäre am Ende eine
funktionstüchtigen Schaltplan und eine Platiene heraus zu bekommen würde
ich mir die Arbeit NOCH nicht machen mich einzuarbeiten.
Lukas K. schrieb:> Jemand schrieb:>> oder sogar des Autors deutlich hilfreicher als ne halbe Stunde>> Changelog lesen und rumprobieren.>> Gerne doch. Bereits vor fast 3 Jahren habe ich damit das hier layoutet:> https://github.com/carrotIndustries/x-band-tx/ Wobei allerdings> anzumerken ist, dass Leute auch schon mit weitaus primitiverer Software> komplexere Boards entwickelt haben.>> Für kleine bis mittelgroße Projekte ist Horizon EDA seit einiger Zeit,> spätestens seit Version 1.0 geeignet.>> Nachteil gegenüber anderen Programmen, die schon etliche Jahre mehr auf> dem Buckel haben ist natürlich der geringere Bauteilvorrat und das> Fehlen von Dokumentation jenseits der auf https://docs.horizon-eda.org/> Auch ist die wahrscheinlich geringer, dass jemand vor dir ein Problem> schonmal hatte und dazu eine Lösung gefunden hat.
Super, danke für die Antwort!
Ich werde es mir dann auch noch mal bei Zeiten anschauen, aktuell habe
ich für sowas keinen Kopf …
Seit dem Lesen des Changelogs und der Features habe ich echt Respekt vor
der Leistung, so ein Programm aus dem Boden zu stampfen :)
Jemand schrieb:> Seit dem Lesen des Changelogs und der Features habe ich echt Respekt vor> der Leistung, so ein Programm aus dem Boden zu stampfen :)
und wenn man sich jetzt zum Vergleich überlegt, wie sich solche
Programme wie EAGLE in der gleichen Zeit weiterentwickelt haben ...
Markus W. schrieb:> und wenn man sich jetzt zum Vergleich überlegt, wie sich solche> Programme wie EAGLE in der gleichen Zeit weiterentwickelt haben
Paretoprinzip bei der Arbeit: die ersten 80% brauchen 20% des Aufwandes.
Auch hilfreich ist bestimmt, keine Vergangenheit zu haben, die bis in
die DOS-Ära zurückreicht.
Außerdem gab es einige weitere günstige Umstände:
- Alles algorithmisch anspruchsvolle wie z.B. Polygonoperationen zum
Berechnen von Planes, das Berechnen der Luftlinien oder der interaktive
Router kommt aus Libraries:
https://github.com/horizon-eda/horizon/blob/master/README.md#included-third-party-software
- Da alles mit OpenGL gezeichnet wird, muss ich mir deutlich weniger
Gedanken darüber machen, welcher Teil vom Fenster sich nun geändert hat
und neu gezeichnet werden muss. Einfach alles neu malen, OpenGL ist
schon schnell genug. Wäre 10 Jahre früher nicht so einfach gewesen.
- Computer sind schnell: Für Undo/redo wird (fast) das gesamte Board
kopiert, anstatt sich zu merken, was tatsächlich geändert wurde. Ist
zwar nicht so effizient, aber dafür einfacher korrekt zu implementieren.
Gute Nachrichten für alle die sich hierarchische Schaltpläne gewünscht
haben: https://github.com/horizon-eda/horizon/tree/hierarchy-preview-2
Zum Anlegen eines neuen Blocks den "Schematic properties" dialog
aufmachen. Der Rest sollte dann hoffentlich selbsterklärend sein.
Das nächste Release Ende diesen Monats wird Hierarchie noch nicht
beinhalten, damit das noch ein wenig mehr Zeit zum sich stabilisieren
bekommt.
Riesen Respekt für die erbrachte Leistung!
Ich hoffe sehr, dass sich (bald) eine größere Community findet, die sich
um das Projekt kümmert und Codebeiträge liefert. Aktuell hindert mich am
Einsatz lediglich der Fakt, dass das Projekt quasi von dir alleine lebt.
Und ich bin echt beeindruckt mit welcher Leidenschaft, Ausdauer und
Know-How du das Projekt vorwärts bringst, das ist beispiellos für mich!
Aber falls du keine Lust mehr daran hast, steht es um die Zukunft von
HorizonEDA aktuell leider schlecht.
Sobald du eine kleine Gruppe ebenfalls begeistert Contributors für dein
Projekt am Start hast, können sich die anderen openSource EDA Systeme
warm anziehen, dann gibt es einen würdigen Konkurrenten! Und darauf
warte ich :-)
Julian W. schrieb:> Sobald du eine kleine Gruppe ebenfalls begeistert Contributors für dein> Projekt am Start hast, können sich die anderen openSource EDA Systeme> warm anziehen, dann gibt es einen würdigen Konkurrenten!
Nur weil sich mehr Leute beteiligen, muss es nicht automatisch besser
sein. Jeder hat evtl. andere Vorstellungen davon, was besser ist oder in
welche Richtung die Entwicklung gehen soll. Kompromisse finden ist nicht
einfach und ein Kompromiss nicht unbedingt besser. Momentan läuft die
Weiterentwicklung doch sehr gut und Lukas ist noch jung. Nachdem er so
viel investiert hat, wird er nicht von jetzt auf gleich die Lust
verlieren.
Habe mir gerade HorizonEDA zum ersten Mal angeschaut. Absoluter Respekt!
Die Bedienung ist wirklich intuitiv. Davon ist KiCAD meilenweit
entfernt.
Eine Sache, die nicht intuitiv war: Wie verschiebe ich die
Beschreibungstexte von Bauteilen? Teilweise sind die Strings sehr lang
und überschneiden sich mit anderen Elementen.
>Wie verschiebe ich die Beschreibungstexte von Bauteilen?
Mit Smash. Dazu mit Maus über Bauteil gehen und "h" drücken. Alternativ
über das Kontextmenu. Dann werden die Beschriftungen selektierbar.
Hallo,
ein Frage: bekomm ich Horizon irgendwie auf einer virtuellen Maschine
(Virtualbox) an den Start? Oder hab ich da aufgrund der nicht
vorhandenen 3D Beschleunigung keine Chance?
Viele Grüße,
Hermann
>> Simulation ist wohl nicht geplant, siehe Vortrag:
Es gibt doch bereits gute Simulationsprogramme .. sogar kostenfrei,
ngspice, ltspice.. weshalb muss ein PCB-CAD tool auch noch simulieren
können?
Ich verfolge die Entwicklung schon seit langem. Tolles Projekt. Leider
bin ich mit dem Pool-Konzept noch nicht so auf Du und immer noch hin-
und hergerissen, ob ich das so toll finde.
Die Schaltungsschlampe in mir hätte einen Pool mit leidlich generischen
Bauteilen für den Anfang ganz toll gefunden, anstatt diese Massen
anbieterspezifischer Passivbausteine. Aber das würde das Poolkonzept ja
ad absurdum führen.
Beim Schaltplan-Export als PDF hätte ich mir von einer 2.1 Version auch
schon mehr erhofft. Farbige Ausgabe, Zentrier- und Skalieroptionen zum
Beispiel, das sind programmiertechnisch ja fast Freebies. Ich weiss,
sowas ist Nebenschauplatz, aber ich steh auf schön gezeichnete
Schaltpläne (bei KiCad bereiten wir die als SVG exportierten Pläne auch
auf, im "Original" sind die auch nicht so tippitoppi, dass mam die
unbereinigt in Druck geben wollte).
Kim Cadasia schrieb:> Beim Schaltplan-Export als PDF hätte ich mir von einer 2.1 Version auch> schon mehr erhofft. Farbige Ausgabe
Geh' weg. Du hast noch nie auf der Baustelle die eine hellgelbe
Verbindung übersehen. Oder geht's um die völlig nutzlosen bunt
ausgefüllten Rechtecke?
Hermann schrieb:> Oder hab ich da aufgrund der nicht> vorhandenen 3D Beschleunigung keine Chance?
Ich hab's gerade mal wieder in einem Xephyr-Xserver mit
software-renderer llvmpipe ausprobiert und hat alles soweit
funktioniert, nur die 3D-Ansicht war arg ruckelig. Du brauchst halt was,
das OpenGL 4 oder OpenGL 3 mit den richtigen extensions kann.
> anstatt diese Massen anbieterspezifischer Passivbausteine.
Die sind inzwischen alle in ihren eigenen Pools. Im standard-Pool gibt
es inzwischen nur noch die CPL-passives. Wer will kann die dann im
BOM-Export im "similar parts" tab echten Bauteilen zuordnen.
> Zentrier- und Skalieroptionen zum Beispiel
An was dachtest du da? Hauptanwendungszweck vom PDF-Export ist, den
Schaltplan auch ohne das Programm installiert zu haben angucken zu
können. Was will man da mehr haben als die Schaltplanseiten wie sie sind
als PDF?
PDF export in einstellbaren Farben, denn die aus dem Editor will man ja
nicht haben, war mir bis jetzt den Aufwand nicht Wert und es hat mich
noch niemand davon überzeugt, dass man das wirklich unbedingt braucht.
Lukas K. schrieb:>> Zentrier- und Skalieroptionen zum Beispiel>> An was dachtest du da? Hauptanwendungszweck vom PDF-Export ist, den> Schaltplan auch ohne das Programm installiert zu haben angucken zu> können. Was will man da mehr haben als die Schaltplanseiten wie sie sind> als PDF?
Als unbedarfter User hatte ich z.B. beim ersten PDF-Export ein leeres
Blatt und war verwundert, bis mir aufgefallen ist, dass ich die
Schaltung links vom Nullpunkt gezeichnet hatte.
> PDF export in einstellbaren Farben, denn die aus dem Editor will man ja> nicht haben, war mir bis jetzt den Aufwand nicht Wert und es hat mich> noch niemand davon überzeugt, dass man das wirklich unbedingt braucht.
Bei Schaltplänen ist man meiner Meinung nach mittlerweile auf die
Farbgebungen trainiert, wie man sie von Altium, Kicad, Eagle und so
weiter kennt. Wichtigster Punkt sind da die farbliche Hervorhebung von
Labels.
Bei der Nachbearbeitung für den Druck sind unterschiedliche Farben auch
von Vorteil, weil wir die erste Bearbeitung so machen, dass anhand von
Farbe selektiert wird und dann eine Stylezuweisung erfolgt.
Von Farbe nach irgendwas ist leicht, aber von schwarz nach farbig halt
nicht. Von daher wäre schon ein Export mit den ggf. invertierten Farben
des Editors nicht schlecht.
Letztendlich sind Schaltpläne quasi ein Aushängeschild des erstellenden
Programms, weil das die Teile sind, die im Netz und in Doku auftauchen.
Sieht das aus wie Grütze, ist es schwer Interesse für das Programm
aufflammen zu lassen.
Ich weiss, technisch ist das völlig Banane, aber der Mensch ist ein
Gewohnheits- und Augentier. Da können wir Ings uns auch nicht ganz frei
von machen.
Kim Cadasia schrieb:> Als unbedarfter User hatte ich z.B. beim ersten PDF-Export ein leeres> Blatt und war verwundert, bis mir aufgefallen ist, dass ich die> Schaltung links vom Nullpunkt gezeichnet hatte.
Achso, dann liegt das daran, dass du für deinen Schaltplan keine Rahmen
festgelegt hast. Wenn du im "schematic properties" dialog einen
festgelegt hast, dann tut auch der PDF export sinnvoller.
> Bei Schaltplänen ist man meiner Meinung nach mittlerweile auf die
Farbgebungen trainiert, wie man sie von Altium, Kicad, Eagle und so
weiter kennt. Wichtigster Punkt sind da die farbliche Hervorhebung von
Labels.
Ich will ja nicht sagen, dass farbige PDF-Schaltpläne gänzlich unnütz
sind. Es ist wie so vieles eine Abwägung von Aufwand zu nutzen. Bis
jetzt ist diese eben negativ ausgefallen.
Thorsten schrieb:> Schön wäre es, wenn du einen Konverter bauen würdest. Von KiCad zu> Eagle und zurück z.b.
Hatten wir hier glaub schonmal. Ich jedenfalls werde es nicht
implementieren, da es unmäßig viel Aufwand ist, das so hinzubekommen,
dass es wirklich brauchbar ist. Da gibt es andere Dinge die mehr Spaß
machen zu bauen und nützlicher sind.
KiCad-Symbole und Footprints kann man übrigens importieren.
Hi! Ich habe mal wieder Horizon kompiliert! Wirklich ein schönes
Programm, ich finde die Bedienung auch intuitiv. Zwei Dinge:
1) Ein kleiner Bug: Wenn man im Board Editor auf eine Ecke einer
Leiterbahn klickt und diese per Kontextmenü verschieben will (Also
rechte Maustaste und dann im Kontextmenü Move) bleibt der
Mauspfeil/Fadenkreuz dort wo man im Kontext Menü geklickt hat, man
verschiebt aber gleichzeitig das Leiterbahn Eck, das sich woanders
befindet. Ich hoffe, es ist nachvollziehbar ;-)
2) Ich arbeite hier auf dem Notebook mit Xubuntu 21.10. Hier kollidieren
die ocelibs-dev, die Horizon benötigt, mit dem kicad-nightly. Ich habe
kicad nightly zum kompilieren deinstalliert. Siehe unten unter ENTFERNT.
Man kann natürlich diskutieren, ob das jetzt ein KiCad Problem ist. Aber
für dich als Info.
1
~$ sudo apt install kicad-nightly
2
Paketlisten werden gelesen… Fertig
3
Abhängigkeitsbaum wird aufgebaut… Fertig
4
Statusinformationen werden eingelesen… Fertig
5
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
tester schrieb:> bleibt der> Mauspfeil/Fadenkreuz dort wo man im Kontext Menü geklickt hat, man> verschiebt aber gleichzeitig das Leiterbahn Eck, das sich woanders> befindet. Ich hoffe, es ist nachvollziehbar
Das passiert bei mir nicht. Damit das so ist ist auch extra Code
vorhanden, der nach dem man auf einen Eintrag im Kontextmenü klickt die
cursorposition aktualisiert und erst dann das Move Tool startet.
tester schrieb:> Hier kollidieren> die ocelibs-dev, die Horizon benötigt, mit dem kicad-nightly. Ich habe> kicad nightly zum kompilieren deinstalliert. Siehe unten unter ENTFERNT.> Man kann natürlich diskutieren, ob das jetzt ein KiCad Problem ist.
Seltsam. Kicad braucht auch opencascade. Kannst du mal mit ldd und
dpkg-quer -S nachgucken woher KiCad dann opencascade bekommt? Horizon
EDA baut sehr wahrscheinlich auch mit dieser Opencascade-variante.
Lukas K. schrieb:> Das passiert bei mir nicht. Damit das so ist ist auch extra Code> vorhanden, der nach dem man auf einen Eintrag im Kontextmenü klickt die> cursorposition aktualisiert und erst dann das Move Tool startet.
Ich habe mal einen ScreenCast angehängt, der den Effekt zeigt. Bei KiCad
vermute ich, dass die bin-libs von KiCad-Nighly mitgebracht werden aber
die dev-libs fehlen.
> Ich habe mal einen ScreenCast angehängt, der den Effekt zeigt.
Tut doch alles so wie es soll. Nachdem du auf "Move" geklickt hast,
schnappt der Cursor zur Mausposition und es bewegt sich im Schaltplan
erstmal nichts.
Die alternative wäre ja, dass erstmal nichts passiert und dann beim
ersten Bewegen der Maus das zu bewegende Objekt zum Cursor schnappt.
Kannst du ausprobieren wenn du in der src/imp/imp.cpp
ImpBase::fix_cursor_pos z.B. durch ein return; am Anfang deaktivierst.
Dein Theme scheint im übrigen einen Bug zu haben: Die Buttons am rechten
Rand sollten eigentlich dunkel sein.
Lukas K. schrieb:> Tut doch alles so wie es soll.
Also irgendwie scheinen mir die Logiken verschiedener Leute ebenfalls
verschieden zu sein.
Also denk doch mal an eine eher einfache Arbeitsumgebung, wie z.B. eine
Tischlerei: Wie läuft da z.B. der Arbeitsablauf "ein wenig abhobeln" im
Detail ab?
- Tischler legt das Werkstück auf die Hobelbank
(Das ist vergleichbar mit dem Positionieren der Leiterplatte oder des
Stromlaufplanes auf dem Display)
- Tischler geht zum Werkzeugschrank
(Das ist vergleichbar mit dem Öffnen eines Menüs)
- Tischler nimmt den Hobel zur Hand
(Das ist vergleichbar mit der Auswahl "MOVE" im Menü)
- Tischler positioniert den Hobel auf dem Teil des Werkstücks, der
abgehobelt werden soll
(Das wäre vergleichbar mit dem Anklicken des zu verschiebenden Teiles
mit der Maus, aber da geht deine Logik andere Wege)
- Tischler betätigt den Hobel, der daraufhin einen Span abhobelt
(Das wäre vergleichbar mit dem tatsächlichen Verschieben des Teiles)
- Tischler legt den Hobel wieder weg und macht dann irgend etwas anderes
Lukas K. schrieb:> Nachdem du auf "Move" geklickt hast,> schnappt der Cursor zur Mausposition und es bewegt sich im Schaltplan> erstmal nichts.
Tja, nachdem du deinen Hobel aus dem Werkzeugschrank genommen hast,
fliegt der von selbst auf die Stelle, wo du als Tischler vorher zuletzt
deine Hand gehabt hast. Eigentlich ist das falsch, denn es ist nicht
ungewöhnlich, daß du allein durch das Anschauen deines Werkstückes
gemerkt hast, daß Bauteil 4811 ein wenig nach rechts geschoben werden
müßte. Das wiederum hat rein garnichts zu tun mit der Stelle, wo du
zuletzt mit deiner Hand angefaßt hast.
Mich erinnert deine Logik an die Symbol-Plazierung bei Kicad, wie ich
sie beim Ausprobieren von Kicad selber erlebt hatte.
W.S.
Seit gestern kann Horizon EDA neben Gerber auch ODB++ exportieren. Die
meisten bezahlbaren Platinenhersteller können nur Gerber, aber so
mancher SI/PI-Simulator kann wohl nur ODB++ und ich wollte mehr über das
Format lernen.
Wenn ich nichts übersehen habe ist Horizon EDA damit das erste Open
Source Layoutprogramm, das ODB++ exportieren kann.
Lukas K. schrieb:> Wenn ich nichts übersehen habe ist Horizon EDA damit das erste Open> Source Layoutprogramm, das ODB++ exportieren kann.
Dann werden wohl in Kürze Valor/Mentor/Siemens eine Horde schmieriger
Rechtsanwälte zu den Entwicklern schicken und von denen Lizenzzahlungen
usw. verlangen, bis die Schwarte kracht.
Lukas K. schrieb:> Seit gestern kann Horizon EDA neben Gerber auch ODB++ exportieren.
Das ist mir sowas von egal...
Schöner wäre es, wenn irgendwo erklärt wäre, wie man Netzlinien richtig
zeichnet. Ich probiere jetzt seit einer halben Stunde mit einem
Bauelement und zwei Power-Symbolen rum, und es ist mir erst ein einziges
Mal gelungen, eine korrekte Verbindung herzustellen (habe aber leider
nicht mitbekommen, wie genau ich das gemacht habe).
Ich (und wohl jeder andere) erwarte entweder: Klick für ersten Punkt der
Linie, zweiter Klick für zweiten Punkt der Linie. Fertig. (Sprich
automatische Erkennung: Pin/Junction getroffen, beende Net)
Oder: erster Klick für ersten Punkt der Linie, zweiten (anderen, z.B.
Rechts-)Klick zum Beenden und Herstellen des Kontaktes. (Manuelle
Unterscheidung zwischen: will nur Richtung ändern oder Net beenden).
In meiner Not habe ich dann mal was ganz anderes gemacht, einfach mal
ein Symbol so verschoben, dass die verbindenden Punkte der zwei Symbole
übereinander zu liegen kamen. Aber auch dabei kam nur Schwachsinn raus.
Eine unbrauchbare Verbindung (ERC(?)-Fehler: Junction on Pin), aber die
beiden Symbole waren nunmehr so miteinander verbunden, dass sie nicht
mehr einzeln beweglich waren.
Also diese Sachen sind mindestens erklärungsbedürftig (über die zwei
Zeilen in der Doku hinaus!), wahrscheinlich aber eher
überarbeitungsbedürftig. Ich kenne eine Menge E-CAD-Software, aber sowas
unlogisches und nicht-intuitives ist mir noch nirgendwo untergekommen.
Wenn schon einfachste grundlegende Operationen so gestaltet sind, dann
möchte ich garnicht tiefer gehen. Ich schaue in einem Jahr noch mal
nach...
Andreas S. schrieb:> Dann werden wohl in Kürze Valor/Mentor/Siemens eine Horde schmieriger> Rechtsanwälte zu den Entwicklern schicken und von denen Lizenzzahlungen> usw. verlangen, bis die Schwarte kracht.
Ganz im Gegenteil, Horizon EDA ist nun ODB++ Partner:
https://odbplusplus.com/design/partners/c-hater schrieb:> Ich (und wohl jeder andere) erwarte entweder: Klick für ersten Punkt der> Linie, zweiter Klick für zweiten Punkt der Linie. Fertig. (
Genau so verhält sich doch auch das "draw net line" tool.
Lukas K. schrieb:> Genau so verhält sich doch auch das "draw net line" tool.
Tja, bei dir. Aber ganz offensichtlich nicht bei anderen Leuten. Auch
ich habe schon 2 vergebliche Versuche hinter mir, zuerst scheiterte es
an der zu alten Version von OpenGL und später an etwas anderem,
vielleicht an einer zu neuen Version von OpenGL - wer weiß?
W.S.
Was haben denn deine Probleme, das zu compilieren (oder ein Compilat
überhaupt erstmal zu starten), mit der Art und Weise der Benutzung zu
tun?
c-hater schrieb:> Ich probiere jetzt seit einer halben Stunde mit einem Bauelement und> zwei Power-Symbolen rum, und es ist mir erst ein einziges Mal gelungen,> eine korrekte Verbindung herzustellen
Das spricht eher gegen dich denn gegen Horizon-EDA. Es mag ja manches an
Konzepten anders angehen als andere EDA-Tools, aber das Zeichnen des
Schaltplans ist nun wirklich alles andere als unintuitiv. Da muss ich
keine Doku erst lesen dafür, um das hinzubekommen.
Jörg W. schrieb:> Das spricht eher gegen dich denn gegen Horizon-EDA.
Warum immer derart gereizt?
Ich häng dir mal zwei Bilder dran. Das erste kommt, wenn man im
Schematic ein Bauteil einfügen will. Ich find's recht unübersichtlich.
Das zweite kommt, wenn man mehr als nur ein paar Sekunden in dieser
Bauteileauswahl verweilt. Aber das ist schlichtweg notwendig, weil Lukas
offenbar alle Widerstände und Kondensatoren mit allen Werten einzeln
eingepflegt hat. Und ehe man sich durch eine E48 von jeweils mehreren
Herstellern durchgehangelt hat, ist einige Zeit verstrichen. Mal
abgesehen von der Ungeordnetheit. Da hilft auch keine Voltextsuche -
oder ist dir geläufig, was unter "ERJ-2GEJ113" rangiert?
W.S.
Lukas K. schrieb:> c-hater schrieb:>> Ich (und wohl jeder andere) erwarte entweder: Klick für ersten Punkt der>> Linie, zweiter Klick für zweiten Punkt der Linie. Fertig. (>> Genau so verhält sich doch auch das "draw net line" tool.
Nein, tut es eben leider nicht. Erster Klick, Linie wird mit Startpunkt
verbunden (grünes Kreuz am Power-Symbol) und anderes Ende hängt am
Cursor. Soweit OK.
Zweiter Klick auf den entsprechenden Supply-Pin des IC. Und jetzt
passiert Scheiße. Statt mit dem Pin zu verbinden, wird eine Junction auf
dem Pin plaziert. Der erste Linienabschnitt ist damit beendet, an der
Junktion ist ein neuer befestigt, anderes Ende hängt am Cursor.
Rechtsklick beendet das Net, der zweite Linienabschnitt verschwindet,
aber die Junction bleibt.
Noch ein Rechtsklick (irgendwo) beendet das Werkzeug. Danach scheint so
eine Art ERC zu laufen. Endergebnis siehe Screenshot.
Richtung spielt keine Rolle, wenn man am Pin beginnt, passiert genau
dasselbe, bloß dass die dämliche überflüssige Junction dann halt am
Power-Symbol angepappt ist.
Und zweiten Klick gleich als Rechtsklick ausführen geht auch nicht, dann
verschwindet der erste Linienabschnitt und garnix bleibt über.
W.S. schrieb:> Ich häng dir mal zwei Bilder dran.
Hat nur mit des C-haters Sache rein gar nichts zu tun.
> Das erste kommt, wenn man im> Schematic ein Bauteil einfügen will. Ich find's recht unübersichtlich.
Du hast allerdings genau die entscheidenden Filter-Eingaben darüber
weggelassen.
> Das zweite kommt, wenn man mehr als nur ein paar Sekunden in dieser> Bauteileauswahl verweilt.
Das dürfte irgendwas auf deinem System sein, habe ich noch nie gesehen –
und ich habe Horizon schon in der Alpha-Phase gelegentlich probiert.
Kann es sein, dass dir irgendwelche Virenchecker oder andere "malware
protection" oder dergleichen da in die Quere schießen? Die
zusammengebrochene Kommunikation hier bezieht sich auf das message
passing (ZMQ) zwischen den beiden Horizon-Komponenten, die über lokale
Sockets funktioniert. Die beiden Teile haben eine sehr innige
Kommunikationsbeziehung. ;-)
(Das sind alle bei mir aktuell geöffneten PIPEs zwischen horizon-eda und
horizon-imp.)
> Aber das ist schlichtweg notwendig, weil Lukas> offenbar alle Widerstände und Kondensatoren mit allen Werten _einzeln_> eingepflegt hat.
Dafür kann man einerseits ja auch filtern (bspw. "100 k" eingeben),
außerdem gibt es mittlerweile außer der (standardmäßig geöffneten)
MPN-Suche auch vorgefertigte parametrische Suchen für Widerstände,
Kondensatoren und Induktivitäten.
c-hater schrieb:> Nein, tut es eben leider nicht.
Weil du das "Draw line" tool benutzt hast, zu erkennen an der gelben
statt grünen Linie. Dieses Tool malt Linien ohne elektrische Funktion
die sich daher auch nicht mit Pins verbinden.
W.S. schrieb:> Das zweite kommt, wenn man mehr als nur ein paar Sekunden in dieser> Bauteileauswahl verweilt. A
Die Titelleiste sieht mir jetzt nach einem Windows 7 aus, da es ab 8 das
classic theme nicht mehr gibt. Da Windows 7 von Microsoft nicht mehr
supported ist, ist auch von Horizon EDA nicht mehr supported. Wenn es
funktioniert, schön. Wenn nicht, ist es nicht mein Problem.
Lukas K. schrieb:> Da Windows 7 von Microsoft nicht mehr> supported ist, ist auch von Horizon EDA nicht mehr supported.
Naja gut, kann ich zu einem gewissen Grad verstehen, aber spekulieren,
woran es liegen mag, könnte man ja trotzdem. Ich (als
nicht-Windows-Nutzer) habe oben eine Hypothese gewagt, hättest du denn
auch eine?
Jörg W. schrieb:> hättest du denn> auch eine?
Der Editor (horizon-imp) redet über einen ZeroMQ TCP-Socket auf
localhost mit dem Projektmanager (horizon-eda). Wenn der Projektmanager
länger als 5 Sekunden braucht zu antworten schmeißt der Editor das
Handtuch und befindet den Socket für kaputt. Das war nicht immer so und
ein abgestürzter Projektmanger hatte den Editor mit in den Abgrund
gerissen. Um genauer zu wissen wo genau das schiefgegangen ist, zeigt
dieser Dialog nun auch an bei welcher Operation die Sockets zerbrochen
sind.
Entweder läuft irgendwas im Projektmanger, der sich aus historischen
Gründen um den "Place part"-Dialog kümmert, schief, sodass sich dieser
für mehr als eben diese 5 Sekunden nicht mehr meldet oder irgendeine
Windows-Verschlimmbesserungssoftware hat etwas gegen den TCP-Socket.
W.S. schrieb:> Lukas K. schrieb:>> Wenn nicht, ist es nicht mein Problem.>> Nun, das sagt mir genug.
Klar, keine Fehler auf der eigenen Seite suchen, oder?
Anhaltspunkte gab es ja schließlich jetzt, wo du gucken könntest.
Jörg W. schrieb:> Kann es sein, dass dir irgendwelche Virenchecker oder andere "malware> protection" oder dergleichen da in die Quere schießen?
Also, ich bin nicht der Autor von Horizon. Von da her kann ich deine
Frage nicht beantworten.
Aber ich halte es für eine nicht unzulässige Erwartung, daß ein Programm
zuverlässig läuft, egal ob und was für einen Virenscanner man sonst noch
so auf dem System hat.
Und mal zum Vergleich: das aktuelle Eagle 9.6.2 läuft auf diesem Rechner
problemlos. Und Fusion 360 läuft auch problemlos. Und die aktuelle
Softmaker-Suite auch. Ich will da jetzt nicht inhaltlich näher drauf
eingehen. Es geht bei anderen Programmen ganz offensichtlich.
W.S.
W.S. schrieb:> Aber ich halte es für eine nicht unzulässige Erwartung, daß ein Programm> zuverlässig läuft, egal ob und was für einen Virenscanner man sonst noch> so auf dem System hat.
Unzulässig nicht, aber unrealistisch. Jedenfalls, was Virenscanner
angeht.
W.S. schrieb:> Aber ich halte es für eine nicht unzulässige Erwartung, daß ein Programm> zuverlässig läuft, egal ob und was für einen Virenscanner man sonst noch> so auf dem System hat.
Wie mir scheint eine etwas gewagte Annahme in einer Windows-Umgebung.
W.S. schrieb:> Aber ich halte es für eine nicht unzulässige Erwartung, daß ein Programm> zuverlässig läuft, egal ob und was für einen Virenscanner man sonst noch> so auf dem System hat.
Auf Windows kann man meiner Erfahrung nach keine derartigen Erwartungen
hegen.
Wenn da irgendwer der Meinung ist, $NETZWERKVERBINDUNG sei böse, dann
kannst du dich als Anwendungsprogrammierer auf den Kopf stellen und mit
den Beinen wackeln, das wird nichts nützen.
> Und mal zum Vergleich:
Das hilft nichts, es sei denn, du hättest etwas zum Vergleich, was
architekturell zumindest ähnlich konzipiert ist (zwei Programmteile, die
massiv miteinander Socket IPC machen).
Es hilft dir ja auch nichts, wenn ich dir zum Vergleich sage, dass das
hier auf meinem FreeBSD gar kein Problem hat (und das wohlgemerkt, ohne
dass Lukas es jemals selbst auf einem FreeBSD hätte testen müssen – und
nein, FreeBSD und Linux sind sich keineswegs ähnlicher als die
verschiedenen modernen Windowsvarianten). Das sind dann ungefähr die
gleichen Äpfel mit Birnen verglichen, wie du das grad machst.
Jörg W. schrieb:> Das hilft nichts, es sei denn, du hättest etwas zum Vergleich, was> architekturell zumindest ähnlich konzipiert ist (zwei Programmteile, die> massiv miteinander Socket IPC machen).
Wozu? Glaubst du etwa, daß jemand, der sich eine Leiterplatte machen
will, sich um massiven Socket IPC kümmert? Nee, das sind alles nur
Sichtweisen aus Programmierers Sicht. Nicht das, was Anwender betrifft.
Nebenbei: Auch bei Eagle hat man wenigstens 3 Programmteile, die "massiv
miteinander" kommunizieren. Aber die machen das offenbar anders.
Glaube du mal nicht, daß die Ausrede, es sei der Vergleich Äpfel versus
Birnen, für den Anwender von irgendeiner Relevanz ist. Ob die
Programmteile nun per Socket IPC oder mit reitendem Boten miteinander
kommunizieren, ist aus Anwenders Sicht egal.
W.S.
Lukas K. schrieb:> Weil du das "Draw line" tool benutzt hast, zu erkennen an der gelben> statt grünen Linie. Dieses Tool malt Linien ohne elektrische Funktion> die sich daher auch nicht mit Pins verbinden.
Ah ja, das isses. Falsches Werkzeug erwischt. Erklärt auch den einen
gelungenen Versuch, da hatte ich dann wohl versehentlich mal das
richtige Werkzeug erwischt.
Also: ganz klar mein Fehler, zumal die Tool-Icons zwar nicht beschriftet
sind, aber bei Hover wenigstens einen Tooltip einblenden. Ich hätte mir
bloß mal die Zeit nehmen müssen, auch mal langsam mit der Maus über die
Icons zu fahren.
Bleibt allerdings zu fragen, wozu um alles in der Welt setzt ein Tool
zum Ziehen von Linien ohne jede elektrische Bedeutung denn Junctions?
Hätte es das nicht getan, wäre ich wahrscheinlich viel eher auf die
Tatsache gestoßen, dass ich da das falsche Tool am Wickel habe.
Und die andere Sache, das seltsame Verhalten beim Plazieren von Pins
direkt übereinander bleibt auch ungeklärt.
W.S. schrieb:> Wozu? Glaubst du etwa, daß jemand, der sich eine Leiterplatte machen> will, sich um massiven Socket IPC kümmert?
Wenn mit meinem geliebten, aber nicht mehr unterstützten System
irgendwas nicht funktioniert, dann gibt es halt zwei Varianten:
entweder, ich geh der Ursache mal auf den Grund (könnte ja nächste Woche
auch bei etwas ganz anderem auftreten), oder ich aktualisiere auf etwas,
was noch unterstützt wird.
OK, es gibt noch 'ne dritte Variante: Vogel Strauß spielen. Ob das aber
eine sinnvolle Strategie ist, sei dahin gestellt.
> Nebenbei: Auch bei Eagle hat man wenigstens 3 Programmteile, die "massiv> miteinander" kommunizieren. Aber die machen das offenbar anders.
Deutlich anders, mit einem komplett anderen Zweck. Kicad auch. Aber das
"wie" ist halt eine Architekturentscheidung des Programmierers für sein
Programm, nicht das Diktat des Anwenders.
Das Betriebssystem ist das, was für solche Dinge die Resourcen
bereitstellen muss, als Anwendungsprogrammierer möchte ich die einfach
nur nutzen können. Wenn eine konkrete Betriebssystemvariante das aus
irgendeinem Grund nicht tut, obwohl sie es tun sollte, dann ist das OS
kaputt, nicht die Anwendung.
Lukas K. schrieb:> oder irgendeine> Windows-Verschlimmbesserungssoftware hat etwas gegen den TCP-Socket.
Das könnte schon die Windows-eigene Firewall sein. Einmal unglücklich
geklickt, verhindert sie Socket-Kommunikation selbst über localhost
recht zuverlässig, ohne jemals wieder dem Benutzer das Problem erneut
zur Entscheidung vorzulegen.
Dieses Verhalten ist allerdings konstant über alle Windows-Versionen,
seitdem es diese Firewall überhaupt gibt und sie standardmäßig aktiv
ist. So weit ich mich erinnere also seit XP(SP3).
Lukas K. schrieb:> Was ist eigentlich mit den schließen-icons schief gelaufen? Die sehen> ein wenig verunglückt aus.
Dem bin ich nun endlich mal nachgegangen.
War/ist eine kaputte librsvg2. Default librsvg2 in FreeBSD ist 2.40.x,
weil es die letzte Version ist, die in C gebaut worden ist und damit auf
allen FreeBSD-Plattformen verfügbar ist. Die neuere Version ist ein
Rewrite in Rust. Ich habe jetzt die C-Version durch so eine neuere
ersetzt, nun sind die Icon-Darstellungen wieder OK.
c-hater schrieb:> Das könnte schon die Windows-eigene Firewall sein. Einmal unglücklich> geklickt, verhindert sie Socket-Kommunikation selbst über localhost> recht zuverlässig, ohne jemals wieder dem Benutzer das Problem erneut> zur Entscheidung vorzulegen.
Ergänzend: natürlich kann man das auch nachträglich noch beheben.
Einfach die Firewall-Konfiguration benutzen.
Allerdings würde ich eine Sache gern mal analysieren. Was passiert
eigentlich in einer Mehrbenutzer-Umgebung für Horizon-EDA? Wie findet
die eine Anwendungs-Komponente die andere (getrennt nach User!). Und ja:
auch Windows kennt mehrere Benutzer auf einer Maschine. Mindestens beim
TerminalServer.
Ja OK, ich könnte auch die Quelltexte lesen, habe aber ehrlich gesagt
keine Lust dazu. C++ nervt mich einfach mal nur. Muss ich mir im Hobby
nicht antun.
c-hater schrieb:> Ergänzend: natürlich kann man das auch nachträglich noch beheben.> Einfach die Firewall-Konfiguration benutzen.
Wäre natürlich zumindest was, was W.S. ja bei sich mal eruieren könnte.
Lukas K. schrieb:> Der Projektmanager übergibt dem Editor via Umgebungsvariable die> Socket-Adressen. Die Portnummern werden gewürfelt
Häh?
Das ist doch Bullshit. Die Socketaddresse dürfte doch in der normalen
Anwendung sowieso immer localhost sein. Also wäre es höchstens für
extrem exotische Anwendungen nützlich, die per Umgebung zu übermitteln,
man könnte also dem Client also als default localhost geben. Env-Scheiß
über. Komplexität über.
Aber das ist nur der kleinere Teil, was soll es bedeuten, dass die
Portnummern gewürfelt werden? Wie erfährt der jeweilige potentielle
Client das Würfelergebnis?
Also irgendwas stinkt hier schon rein im Konzept gewaltig. Und deine
Erklärungen machen das kein bissel mehr trustworthy.
c-hater schrieb:> Die Socketaddresse dürfte doch in der normalen> Anwendung sowieso immer localhost sein.c-hater schrieb:> wie erfährt der jeweilige potentielle> Client das Würfelergebnis?
Bei ZeroMQ ist die Portnummer teil der Adresse. Sieht dann z.B. so aus:
tcp://127.0.0.1:45421
c-hater schrieb:> Aber das ist nur der kleinere Teil, was soll es bedeuten, dass die> Portnummern gewürfelt werden?
Zumindest bei Nutzung der Winapi wird der Socket vom System vergeben.
Also gewürfelt.
Martin S. schrieb:> Zumindest bei Nutzung der Winapi wird der Socket vom System vergeben.> Also gewürfelt.
Für einen TCP-Server? Wohl kaum...
Wäre das wirklich so, hätte sich z.B. Winzigweich sicherlich nicht den
Mechanismus einfallen lassen müssen, mit dem sie mehrere Instanzen des
SQL-Servers auf einem Host anbieten können.
Diesen Mechanismus finde ich auch nicht so richtig schön, aber immer
noch besser als die für Horizon-EDA gewählte Variante der Übermittlung
per Umgebungsvariable. Wennschon IP-Netz, dann sollte sich sowas doch
eher auch vollständig hier abspielen.
Ich habe den 3D Mouse Support mal ausprobiert, jedoch ist die Zuordnung
der Achsen etwas unintuitiv bei meiner 3Dconnexion Space Navigator 3D
Mouse. Kann die Zuordnung konfiguriert werden?
Frank K. schrieb:> Kann die Zuordnung konfiguriert werden?
Nein, welcher teil genau ist denn unerwartet?
Bei der Maus die ich hatte war es so:
- Drücken/Ziehen in Z-Richtung: Zoom
- Drücken/Ziehen in der Ebene: Verschieben
- Kippen nach vorne/hinten: Kamera-Elevation
- Rotieren: Kamera-Azimuth
- Links/rechts kippen: ohne Funktion
Lukas K. schrieb:> Frank K. schrieb:>> Kann die Zuordnung konfiguriert werden?>> Nein, welcher teil genau ist denn unerwartet?>> Bei der Maus die ich hatte war es so:>> - Drücken/Ziehen in Z-Richtung: Zoom> - Drücken/Ziehen in der Ebene: Verschieben> - Kippen nach vorne/hinten: Kamera-Elevation> - Rotieren: Kamera-Azimuth> - Links/rechts kippen: ohne Funktion
Als Vergleich habe ich FreeCAD, die Bedienung per 3D Mouse funktioniert
bei mir damit so wie im angehängten png. Ich habe mal die Zuordung der
Achsen für Horizon so angepasst das es so funktioniert wie in FeeCAD.
Patch im Anhang. Es fehlt lediglich die Rotation um die Y-Achse (letztes
Bild im png).
Gruß,
Frank
Frank K. schrieb:> Ich habe mal die Zuordung der> Achsen für Horizon so angepasst das es so funktioniert wie in FeeCAD.
Interessant. Heißt das, dass XY-Bewegung, also Nummer 1 und 3 im Bild
von dir, sich auf x und z in e.motion auswirkt? In der Konfiguration von
spacenavd gibt es eine Option um Y und Z zu vertauschen, das sollte sich
dann ja aber auf Horizon EDA und FreeCAD gleichermaßen auswirken.
Ich hab gerade mal bei FreeCAD und blender in den Einstellungen
nachgesehen und dort gibt es jeweils auch eine Flip Y/Z-Option. Wie ist
die bei dir konfiguriert?
Lukas K. schrieb:> Frank K. schrieb:>> Ich habe mal die Zuordung der>> Achsen für Horizon so angepasst das es so funktioniert wie in FeeCAD.>> Interessant. Heißt das, dass XY-Bewegung, also Nummer 1 und 3 im Bild> von dir, sich auf x und z in e.motion auswirkt? In der Konfiguration von
Ja, so sieht es aus.
> spacenavd gibt es eine Option um Y und Z zu vertauschen, das sollte sich> dann ja aber auf Horizon EDA und FreeCAD gleichermaßen auswirken.
Ich habe keine speziellen Einstellungen vorgenommen. Im Anhang mal meine
Konfig.
>> Ich hab gerade mal bei FreeCAD und blender in den Einstellungen> nachgesehen und dort gibt es jeweils auch eine Flip Y/Z-Option. Wie ist> die bei dir konfiguriert?
In FreeCAD kann ich die Einstellung nicht finden. Vielleicht liegt das
an der Version, ich verwende 0.19.
Zwischenzeitlich habe ich das mal ausprobiert:
https://github.com/FreeSpacenav/spnavcfg
damit lassen sich die Achsen konfigurieren, und die Einstellungen
funktionieren in Horizon. Damit könnten die Einstellungen in meinem
Patch vorgenommen werden, ohne den Patch, es fehlt lediglich die
Roll-Achse.
Frank K. schrieb:> In FreeCAD kann ich die Einstellung nicht finden. Vielleicht liegt das> an der Version, ich verwende 0.19.
Das ist etwas unglücklich versteckt: Rechtsklick auf die Toolbar →
Customize → Spaceball motion. Hab's auf Anhieb auch nicht gefunden.
Frank K. schrieb:> es fehlt lediglich die> Roll-Achse.
Die gibt es auch nicht. In der 3D-Ansicht ist die Z-Achse stets
vertikal.
Lukas K. schrieb:> Frank K. schrieb:>> In FreeCAD kann ich die Einstellung nicht finden. Vielleicht liegt das>> an der Version, ich verwende 0.19.>> Das ist etwas unglücklich versteckt: Rechtsklick auf die Toolbar →> Customize → Spaceball motion. Hab's auf Anhieb auch nicht gefunden.
Ja, das ist kompliziert zu finden. Meine Einstellungen sind im Anhang.
>> Frank K. schrieb:>> es fehlt lediglich die>> Roll-Achse.>> Die gibt es auch nicht. In der 3D-Ansicht ist die Z-Achse stets> vertikal.
Im Vergleich zu FreeCAD fehlt bei Horizon dennoch die 6. Achse, heisst
eine der 3 möglichen Rotationen ist ohne Funktion. Bis jetzt git es
Elevation und Azimuth, Roll fehlt.
Hallo! Ich wollte mal wieder eine aktuelle Version von horizon auf einem
Ubuntu 22.04 System kompilieren. Zunächst war ich überrascht, dass nach
einem git pull das Makefile weg war, aber in der Doku fand ich dann den
Umstieg auf meson.
Das Problem ist aber, dass sich das Paket liboce-ocaf-dev anscheinend
mit den KiCAD Paketen der Version 7.0.x zwickt.
Das KiCAD Repsoitory:
https://ppa.launchpadcontent.net/kicad/kicad-7.0-releases/ubuntu/ jammy
main
Eine kleine Rückmeldung. Inzwischen habe ich horizon kompiliert
bekommen, aber schön war's nicht. Das Problem ist, dass die
OpenCascade-dev libs zwar installiert sind (per apt), aber die korrekten
Includes und Linker Flags/Pfade nicht weitergegeben werden bzw.
OpenCascade von Meson gar nicht erkannt wird. Da ich mich mit Meson
nicht auskenne, habe ich build.ninja per Hand verändern müssen. Konkret
musste ich folgendes tun:
1) Die Abfrage für die OCE Libs in meson.build auskommentieren
2) In build.ninja bei den Dateien export_step.cpp
imp_package_3d_occt.cpp und step_importer.cpp habe ich per Hand ein
-I/usr/include/opencascade ergänzt
3) Beim Linken von horizon_eda und horizon_imp jeweils von Hand die
ganzen OpenCascade Libs ergänzt.
Wieso erkennt Meson die OpenCascade Pakete nicht? In meson.build schlägt
ja schon die Zeile