Forum: Projekte & Code Neues, halbfertiges Elektronik-CAD-Programm


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Klaus R. (klausro)


Bewertung
0 lesenswert
nicht lesenswert
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!

von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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

von Klaus R. (klausro)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Klaus R. (klausro)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

von Klaus R. (klausro)


Bewertung
0 lesenswert
nicht lesenswert
Klaus R. schrieb:
> Noch ein kleiner Bug:

Du bist schnell! Danke!

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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).

: Bearbeitet durch User
von Uli (Gast)


Bewertung
1 lesenswert
nicht lesenswert
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

von Helmut S. (helmuts)


Bewertung
1 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Stefan S. (Gast)


Bewertung
5 lesenswert
nicht lesenswert
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.

von Holm T. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
...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

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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 :/

von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Bewertung
1 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Klaus R. (klausro)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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@Yoga:~/horizon/horizon/canvas$ diff -u pan.cpp pan.cpp.new 
--- pan.cpp  2017-11-17 22:03:48.259871554 +0100
+++ pan.cpp.new  2017-11-17 22:02:05.363867717 +0100
@@ -73,16 +73,23 @@
     float sc = this->scale;
     
     float scale_new=1;
+        
+        float factor = 1.5;
+        
+        if (pan_dragging == true) {
+            factor = 1.1;
+        }
+            
     if(scroll_event->direction == GDK_SCROLL_UP) {
-      scale_new = sc*1.5;
+      scale_new = sc*factor;
     }
     else if(scroll_event->direction == GDK_SCROLL_DOWN) {
-      scale_new = sc/1.5;
+      scale_new = sc/factor;
     }
     else if(scroll_event->direction == GDK_SCROLL_SMOOTH) {
       gdouble sx, sy;
       gdk_event_get_scroll_deltas((GdkEvent*)scroll_event, &sx, &sy);
-      scale_new = sc * powf(1.5, -sy);
+      scale_new = sc * powf(factor, -sy);
     }
     if(scale_new < 1e-7 || scale_new > 1e-2) {
       return;

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Klaus R. (klausro)


Bewertung
0 lesenswert
nicht lesenswert
Oh, gut. Frage: Was macht "g drag and keep slope"?

von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut B. (helmut55)


Bewertung
0 lesenswert
nicht lesenswert
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:
helmut@otto:~$ /home/data/Downloads/horizon/horizon-prj-mgr 
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
col 2
create proc
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 
Linking failure: Vertex info
-----------
0(2) : warning C7568: #version 330 not fully supported on current GPU target profile
0(13) : error C5108: unknown semantics "INSTANCEID" specified for "gl_InstanceID"

Fragment info
-------------
0(2) : warning C7568: #version 330 not fully supported on current GPU target profile
 
gl error 1281 in canvas/canvas_gl.cpp:98
end proc 19270
exit stat 6
helmut@otto:~$ 

Ich habe eine ältere Nvidia Karte
helmut@otto:~$ nvidia-detect 
Detected NVIDIA GPUs:
00:0d.0 VGA compatible controller [0300]: NVIDIA Corporation C61 [GeForce 6100 nForce 405] [10de:03d1] (rev a2)

Checking card:  NVIDIA Corporation C61 [GeForce 6100 nForce 405] (rev a2)
Your card is only supported up to the 304 legacy drivers series.
It is recommended to install the
    nvidia-legacy-304xx-driver
package.

Ich habe die Treiber Version 304.137 installiert.

Ausgabe von glxinfo:
helmut@otto:~$ /usr/bin/glxinfo
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_multisample, GLX_EXT_create_context_es2_profile, 
    GLX_EXT_create_context_es_profile, GLX_EXT_swap_control, 
    GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_float_buffer, 
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_swap_control, 
    GLX_SGI_video_sync
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_fbconfig_packed_float, 
    GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context, GLX_EXT_swap_control, 
    GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_copy_image, 
    GLX_NV_float_buffer, GLX_NV_multisample_coverage, GLX_NV_present_video, 
    GLX_NV_swap_group, GLX_NV_video_capture, GLX_NV_video_out, 
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_swap_control, 
    GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_swap_control, 
    GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_float_buffer, 
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_swap_control, 
    GLX_SGI_video_sync
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 6100 nForce 405/integrated/SSE2
OpenGL version string: 2.1.2 NVIDIA 304.137
OpenGL shading language version string: 1.20 NVIDIA via Cg compiler
OpenGL extensions:
    GL_ARB_ES2_compatibility, GL_ARB_color_buffer_float, 
    GL_ARB_compressed_texture_pixel_storage, GL_ARB_conservative_depth, 
    GL_ARB_copy_buffer, GL_ARB_depth_clamp, GL_ARB_depth_texture, 
    GL_ARB_draw_buffers, GL_ARB_explicit_attrib_location, 
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, 
    GL_ARB_fragment_shader, GL_ARB_framebuffer_object, 
    GL_ARB_get_program_binary, GL_ARB_half_float_pixel, 
    GL_ARB_half_float_vertex, GL_ARB_imaging, GL_ARB_internalformat_query, 
    GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multisample, 
    GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_occlusion_query2, 
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, 
    GL_ARB_provoking_vertex, GL_ARB_robustness, GL_ARB_sampler_objects, 
    GL_ARB_separate_shader_objects, GL_ARB_shader_objects, 
    GL_ARB_shading_language_100, GL_ARB_shading_language_420pack, 
    GL_ARB_shading_language_include, GL_ARB_shadow, GL_ARB_sync, 
    GL_ARB_texture_border_clamp, GL_ARB_texture_compression, 
    GL_ARB_texture_cube_map, GL_ARB_texture_env_add, 
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, 
    GL_ARB_texture_env_dot3, GL_ARB_texture_float, 
    GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two, 
    GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_storage, 
    GL_ARB_texture_swizzle, GL_ARB_timer_query, GL_ARB_transpose_matrix, 
    GL_ARB_vertex_array_bgra, GL_ARB_vertex_array_object, 
    GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, 
    GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_texture_float, 
    GL_ATI_texture_mirror_once, GL_EXT_Cg_shader, GL_EXT_abgr, GL_EXT_bgra, 
    GL_EXT_blend_color, GL_EXT_blend_equation_separate, 
    GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, 
    GL_EXT_compiled_vertex_array, GL_EXT_depth_bounds_test, 
    GL_EXT_direct_state_access, GL_EXT_draw_range_elements, GL_EXT_fog_coord, 
    GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, 
    GL_EXT_framebuffer_object, GL_EXT_gpu_program_parameters, 
    GL_EXT_import_sync_object, GL_EXT_multi_draw_arrays, 
    GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels, 
    GL_EXT_pixel_buffer_object, GL_EXT_point_parameters, 
    GL_EXT_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color, 
    GL_EXT_separate_shader_objects, GL_EXT_separate_specular_color, 
    GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, 
    GL_EXT_texture3D, GL_EXT_texture_compression_dxt1, 
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, 
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, 
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, 
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888, 
    GL_EXT_texture_lod, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, 
    GL_EXT_texture_object, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode, 
    GL_EXT_texture_storage, GL_EXT_texture_swizzle, GL_EXT_timer_query, 
    GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, GL_EXT_x11_sync_object, 
    GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, 
    GL_KTX_buffer_region, GL_NVX_conditional_render, 
    GL_NV_ES1_1_compatibility, GL_NV_alpha_test, GL_NV_blend_minmax, 
    GL_NV_blend_square, GL_NV_complex_primitives, GL_NV_copy_depth_to_color, 
    GL_NV_depth_clamp, GL_NV_fbo_color_attachments, GL_NV_fence, 
    GL_NV_float_buffer, GL_NV_fog_distance, GL_NV_fragdepth, 
    GL_NV_fragment_program, GL_NV_fragment_program2, 
    GL_NV_fragment_program_option, GL_NV_framebuffer_multisample_coverage, 
    GL_NV_half_float, GL_NV_light_max_exponent, GL_NV_multisample_filter_hint, 
    GL_NV_occlusion_query, GL_NV_packed_depth_stencil, GL_NV_pixel_data_range, 
    GL_NV_point_sprite, GL_NV_primitive_restart, GL_NV_register_combiners, 
    GL_NV_register_combiners2, GL_NV_texgen_reflection, GL_NV_texture_barrier, 
    GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4, 
    GL_NV_texture_expand_normal, GL_NV_texture_lod_clamp, 
    GL_NV_texture_rectangle, GL_NV_texture_shader, GL_NV_texture_shader2, 
    GL_NV_texture_shader3, GL_NV_vertex_array_range, 
    GL_NV_vertex_array_range2, GL_NV_vertex_program, GL_NV_vertex_program1_1, 
    GL_NV_vertex_program2, GL_NV_vertex_program2_option, 
    GL_NV_vertex_program3, GL_OES_compressed_paletted_texture, GL_OES_depth24, 
    GL_OES_depth32, GL_OES_depth_texture, GL_OES_element_index_uint, 
    GL_OES_fbo_render_mipmap, GL_OES_get_program_binary, GL_OES_mapbuffer, 
    GL_OES_packed_depth_stencil, GL_OES_point_size_array, GL_OES_point_sprite, 
    GL_OES_read_format, GL_OES_rgb8_rgba8, GL_OES_standard_derivatives, 
    GL_OES_texture_3D, GL_OES_texture_float, GL_OES_texture_float_linear, 
    GL_OES_texture_half_float, GL_OES_texture_half_float_linear, 
    GL_OES_texture_npot, GL_OES_vertex_array_object, GL_OES_vertex_half_float, 
    GL_S3_s3tc, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, 
    GL_SGIX_depth_texture, GL_SGIX_shadow, GL_SUN_slice_accum

OpenGL ES profile version string: OpenGL ES 2.0 NVIDIA 304.137 304.137
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.00
OpenGL ES profile extensions:
    GL_EXT_Cg_shader, GL_EXT_bgra, GL_EXT_framebuffer_object, 
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_s3tc, 
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888, 
    GL_EXT_unpack_subimage, GL_NV_alpha_test, GL_NV_blend_minmax, 
    GL_NV_complex_primitives, GL_NV_draw_buffers, GL_NV_fbo_color_attachments, 
    GL_NV_fragdepth, GL_NV_fragment_program, GL_NV_fragment_program2, 
    GL_NV_get_tex_image, GL_NV_read_buffer, GL_NV_texture_lod_clamp, 
    GL_NV_unpack_subimage, GL_NV_vertex_program, GL_NV_vertex_program1_1, 
    GL_NV_vertex_program2, GL_NV_vertex_program2_option, 
    GL_NV_vertex_program3, GL_OES_compressed_paletted_texture, GL_OES_depth24, 
    GL_OES_depth32, GL_OES_depth_texture, GL_OES_element_index_uint, 
    GL_OES_fbo_render_mipmap, GL_OES_get_program_binary, GL_OES_mapbuffer, 
    GL_OES_packed_depth_stencil, GL_OES_point_size_array, GL_OES_point_sprite, 
    GL_OES_read_format, GL_OES_rgb8_rgba8, GL_OES_standard_derivatives, 
    GL_OES_texture_3D, GL_OES_texture_float, GL_OES_texture_float_linear, 
    GL_OES_texture_half_float, GL_OES_texture_half_float_linear, 
    GL_OES_texture_npot, GL_OES_vertex_array_object, GL_OES_vertex_half_float

Ist meine Hardware zu alt? Oder siehst du noch einen Ansatzpunkt, dein 
Programm zum laufen zu bringen?

Helmut

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
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/

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Lukas,

warum haben Vias keinen Netznamen? Damit könnte man die in eine Plane 
setzen und denen den Netznamen der Plane geben.

Gruß
Helmut

: Bearbeitet durch User
von Abdul K. (ehydra) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Auf Wiki steht was von Softwareemulation.

Hm, also kann man deine Software nur auf neuen Geräten verwenden?

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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...

von Abdul K. (ehydra) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Du steigst also nicht so bald auf V4 um.

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hilft es , das Programm im Debugger zu starten. Debug-Builds 
sind auch hilfreich.

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
Uwe S. schrieb:
> ich den Fehler am besten ein?

Am besten mit dem gdb: Dazu den imp im gdb "von Hand" starten, siehe 
https://github.com/carrotIndustries/horizon/wiki/CLI-usage. Wenn's dann 
hinfällt, mit "bt" den Stack anzeigen lassen.

von Lukas K. (carrotindustries)


Bewertung
1 lesenswert
nicht lesenswert
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.

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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

von K. J. (theborg0815) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hm, wollte auch mal testen, kann es Compilieren aber starten tut es 
leider nicht.
...$ ./horizon-imp
wrong invocation
...$ ./horizon-prj
terminate called after throwing an instance of 'std::out_of_range'
  what():  vector::_M_range_check: __n (which is 1) >= this->size() (which is 1)
Abgebrochen (Speicherabzug geschrieben)

von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
Lukas K. schrieb:
> Uwe S. schrieb:
>> ich den Fehler am besten ein?
>
> Am besten mit dem gdb: Dazu den imp im gdb "von Hand" starten, siehe
> https://github.com/carrotIndustries/horizon/wiki/CLI-usage. Wenn's dann
> hinfällt, mit "bt" den Stack anzeigen lassen.

Sieht dann etwa so aus
(gdb) bt
#0  0x00007ffff22cba70 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff22cd19a in __GI_abort () at abort.c:89
#2  0x00007ffff28e3b85 in __gnu_cxx::__verbose_terminate_handler() ()
    at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff28e1956 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff28e19a1 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff28e1be4 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff290a15f in std::__throw_out_of_range(char const*) ()
    at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x000000010025f524 in std::map<horizon::UUID, horizon::BoardPackage, std::less<horizon::UUID>, std::allocator<std::pair<horizon::UUID const, horizon::BoardPackage> > >::at(horizon::UUID const&) (__k=..., this=<optimized out>) at /usr/include/c++/7/bits/stl_map.h:533
#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, unsigned long, double, std::allocator, nlohmann::adl_serializer> const&, horizon::Board&) (this=0x7fffffffcf88, j=..., brd=...) at board/track.cpp:15
#9  0x00000001002641ca in horizon::Track::Track(horizon::UUID const&, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> const&, horizon::Board&) (this=0x7fffffffcf30, uu=..., j=..., brd=...) at board/track.cpp:151
#10 0x000000010025856f in horizon::Board::Board(horizon::UUID const&, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> const&, horizon::Block&, horizon::Pool&, horizon::ViaPadstackProvider&) (this=0x100810580, uu=..., j=..., iblock=..., pool=..., vpp=...) at board/board.cpp:83
#11 0x000000010025a6d2 in horizon::Board::new_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, horizon::Block&, horizon::Pool&, horizon::ViaPadstackProvider&) (filename="/home/steinm/AVR/horizon/attiny-ir-receiver/board.json", block=..., pool=..., vpp=...) at board/board.cpp:149


von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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-started

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?

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Lukas K. schrieb:
> Ich hab den von KiCad eingebaut.

Das geht so einfach? Oo

Ist ja schon fast unglaublich ... :)

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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 ;)

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
Mampf F. schrieb:
> Das geht so einfach? Oo

Der interaktive Router von KiCad ist von KiCad recht unabhängig mit 
eigenen Datenstrukturen implementiert. Alle Interaktion mit der 
Host-Applikation ist in einer eigenen Klasse gekapselt. Man muss daher 
'nur' das Interface zwischen Router und Applikation wirklich anfassen. 
Bei mir sind das 
https://github.com/carrotIndustries/horizon/blob/master/router/pns_horizon_iface.cpp 
und 
https://github.com/carrotIndustries/horizon/blob/master/core/tool_route_track_interactive.cpp 
Das Canvas musste ich auch noch ein bisschen anfassen. Alles in allem 
überschaubarer Aufwand und auch ohne wirkliche Dokumentation gut machbar 
gewesen.

von Kastanie (Gast)


Bewertung
2 lesenswert
nicht lesenswert
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!

von Mampf F. (mampf) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Kastanie schrieb:
> Wer kann der kann...
> Mein tiefer Reepekt vor dem ganzen Projekt Lukas!

Jau, der Lukas ist ein kluger Kopf :)

http://fichte-gymnasium.de/Joomla_15/index.php?option=com_content&view=article&id=113%3Ajtf-lukas-2011&Itemid=160

Puh, muss sagen, in dem damaligen Alter hätte ich das noch nicht können 
...

: Bearbeitet durch User
von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
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. :-)

Beitrag #5216803 wurde von einem Moderator gelöscht.
Beitrag #5216805 wurde von einem Moderator gelöscht.
Beitrag #5216807 wurde von einem Moderator gelöscht.
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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
-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.

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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++

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Lukas K. schrieb:
> So auf den ersten Blick fällt mir auf, dass du mit gcc linkst.

Ja, ich hatte mit
gmake CC=gcc6 CXX=g++6

gebaut.  Offenbar benutzt du aber nicht CXX sondern CC.

Mit
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.

von K. J. (theborg0815) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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. :/

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hab's geschafft, via VNC auf die Maschine zuzugreifen.

Wenn ich den Schaltplaneditor aus dem Project Manager starten will,
bekomme ich:
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
col 2
create proc

(<unknown>:7194): glibmm-ERROR **: 
unhandled exception (type std::exception) in signal handler:
what: can't find executable


[3]    Trace/BPT trap                env LD_LIBRARY_PATH=/usr/local/lib/gcc6 ./horizon-prj-mgr (core dumped)

(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.

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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. :)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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:
create proc
spawn /home/joerg/src/horizon/horizon-imp -c /home/joerg/txt/drawings/horizontest/top_sch.json /home/joerg/txt/drawings/horizontest/top_block.json 
terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid
end proc 11632
exit stat 134

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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:
proc                    /proc           procfs  rw              0       0

und mit "mount /proc" (als root) aktivieren.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
diff --git a/imp/imp_main.cpp b/imp/imp_main.cpp
index 7ba90aa..aa217a4 100644
--- a/imp/imp_main.cpp
+++ b/imp/imp_main.cpp
@@ -92,7 +92,7 @@ int main(int argc, char *argv[]) {
                std::locale::global(std::locale(std::cout.getloc(), new comma));
        }
        #else
-       std::locale::global(std::locale(""));
+       std::locale::global(std::locale("C"));
        #endif
 
 

Damit stürzt es an dieser Stelle nicht ab und startet.

Viel mehr an Tests ist über VNC hier gerade nicht drin.

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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, 
"")));

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe noch nicht ganz, was du damit erreichen willst. Nur das 
Dezimalzeichen zurücksetzen?

von Jonas F. (wuschelkuchen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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 ;)

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
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.

von Lukas K. (carrotindustries)


Bewertung
1 lesenswert
nicht lesenswert
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 ;)

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Bewertung
0 lesenswert
nicht lesenswert
Paralleles Bauen auf Mehrkernmaschinen wäre schön...

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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?

von Frank K. (frank)


Bewertung
0 lesenswert
nicht lesenswert
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

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Bewertung
0 lesenswert
nicht lesenswert

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Bewertung
0 lesenswert
nicht lesenswert
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);

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Bewertung
0 lesenswert
nicht lesenswert
Danke, jetzt kompiliert es unter Leap 42.2 und 42.3 durch.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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:
unhandled exception (type: std::exception) in signal handler:
what: map::at

end proc 6243
exit stat 133

: Bearbeitet durch Moderator
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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).

von Lukas K. (carrotindustries)


Bewertung
1 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.)

: Bearbeitet durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
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 …

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hast du eigentlich Ambitionen, das alles auch auf MacOS lauffähig
zu bekommen?

Habe mir nur der Neugierde halber mal kurz angesehen, wie man dort
zum Pfadnamen des aktuellen Prozesses gelangen würde.  Scheint da
über proc_pidpath() zu gehen.

https://stackoverflow.com/questions/14805896/how-do-i-get-the-full-path-for-a-process-on-os-x

von Bernd W. (berndwiebus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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...

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
Bernd W. schrieb:
> Aber die lässt sich nicht starten.
> Auch nicht aus einer Konsole.
./horizon-prj-mgr

Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis. 
Ich hab's im Wiki mal angepasst.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Abdul K. (ehydra) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Bernd W. (berndwiebus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hallo Lukas.

Lukas K. schrieb:

>> Aber die lässt sich nicht starten.
>> Auch nicht aus einer Konsole.
>
>
> ./horizon-prj-mgr
> 
>
> 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

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Tester (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Bernd W. (berndwiebus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
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?

: Bearbeitet durch User
von W.S. (Gast)


Bewertung
-6 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Angehängte Dateien:
  • preview image for 1.PNG
    1.PNG
    17,2 KB, 695 Downloads
  • preview image for 2.PNG
    2.PNG
    4,35 KB, 679 Downloads
  • preview image for 2a.PNG
    2a.PNG
    10,5 KB, 427 Downloads
  • preview image for 2b.PNG
    2b.PNG
    15,8 KB, 770 Downloads
  • preview image for 2c.PNG
    2c.PNG
    30,1 KB, 920 Downloads
  • preview image for 2d.PNG
    2d.PNG
    14,8 KB, 638 Downloads
  • preview image for 2e.PNG
    2e.PNG
    8,53 KB, 592 Downloads
  • preview image for 3.PNG
    3.PNG
    24,4 KB, 518 Downloads
  • preview image for 4.PNG
    4.PNG
    18,5 KB, 828 Downloads

Bewertung
3 lesenswert
nicht lesenswert
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

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
7 lesenswert
nicht lesenswert
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.

von Abdul K. (ehydra) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Sowas wie ne Batch-Datei wäre schon schön. Nicht das ich es jetzt in 
diesem Stadium persönlich installieren würde. Nur ein Vorschlag.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Abdul K. (ehydra) Benutzerseite


Bewertung
-5 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
3 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Bewertung
1 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Possetitjel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Abdul K. (ehydra) Benutzerseite


Bewertung
-1 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Abdul K. (ehydra) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
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 :-)

von Max G. (l0wside) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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?

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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. :)
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
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
create proc
exit stat 0

von Bernd W. (berndwiebus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Abdul K. (ehydra) Benutzerseite


Bewertung
-1 lesenswert
nicht lesenswert
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.

von Possetitjel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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...

von Abdul K. (ehydra) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich habe keine Ahnung wie MS das vorgibt. Vielleicht sinds auch nur 
16bitter.

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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?
$ sqlite3 .config/horizon/window_state.db 
SQLite version 3.21.0 2017-10-24 18:55:49
Enter ".help" for usage hints.
sqlite> SELECT * FROM window_state;
prj-mgr|1914|871|1|38|0
pool-editor-win-27|762|600|579|286|0
imp-symbol|1914|871|1|38|0
pool-mgr|1914|871|1|38|0

sqlite> UPDATE window_state SET width=100 WHERE window='prj-mgr';

sqlite> SELECT * FROM window_state;
prj-mgr|100|871|1|38|0
pool-editor-win-27|762|600|579|286|0
imp-symbol|1914|871|1|38|0
pool-mgr|1914|871|1|38|0

Alles kein Hexenwerk.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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.

von Abdul K. (ehydra) Benutzerseite


Bewertung
-1 lesenswert
nicht lesenswert
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.

von Ulrich B. (ulrich_b665)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hab mal versucht Horizon unter Solus Linux zu kompilieren, und es 
funktioniert erfreulicherweise out-of-the-box :)


Tools installieren:
$ sudo eopkg install git
$ sudo eopkg install -c system.devel
$ sudo eopkg install libgtkmm-3-devel cairomm-devel librsvg-devel util-linux-devel yaml-cpp-devel sqlite3-devel libboost-devel zeromq-devel cppzmq glm binutils-gold


Source herunterladen und Build starten:
$ mkdir -p ~/tmp/horizon
$ cd ~/tmp/horizon
$ git clone https://github.com/carrotIndustries/horizon.git 
$ make

Pool und Testprojekt herunterladen:
$ cd ~/tmp
$ git clone https://github.com/carrotIndustries/horizon-pool.git
$ git clone https://github.com/carrotIndustries/horizon-test-project.git

Starten:
$ ~/tmp/horizon/horizon-prj-mgr 
$ ~/tmp/horizon/horizon-pool-mgr 


Grüße, Ulrich

von Klaus R. (klausro)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Klaus R. (klausro)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Max G. (l0wside) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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?

von W.S. (Gast)


Bewertung
-6 lesenswert
nicht lesenswert
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.

von Abdul K. (ehydra) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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 :-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
5 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
@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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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".

von Sheeva P. (sheevaplug)


Bewertung
0 lesenswert
nicht lesenswert
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?

von Mampf F. (mampf) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
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

: Bearbeitet durch User
Beitrag #5222891 wurde von einem Moderator gelöscht.
von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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?

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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ü.

: Bearbeitet durch User
von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von W.S. (Gast)


Bewertung
-3 lesenswert
nicht lesenswert
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.

von Bernd W. (berndwiebus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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

: Bearbeitet durch User
von Bernd W. (berndwiebus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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

von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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

von Bernd W. (berndwiebus) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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!

von Possetitjel (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
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.

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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 ;-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
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.

: Bearbeitet durch Moderator
von Bernd W. (berndwiebus) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
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

von Possetitjel (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
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. :)

von Bernd W. (berndwiebus) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
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

von Lukas K. (carrotindustries)


Bewertung
1 lesenswert
nicht lesenswert
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.

von Possetitjel (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
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".

von Possetitjel (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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. ;-)

von Lukas K. (carrotindustries)


Bewertung
2 lesenswert
nicht lesenswert
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.

von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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

von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Sheeva P. (sheevaplug)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Sheeva P. (sheevaplug)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Lukas K. (carrotindustries)


Bewertung
1 lesenswert
nicht lesenswert
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.

von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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'?

von W.S. (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
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.

von Guido B. (guido-b)


Bewertung
2 lesenswert
nicht lesenswert
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!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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

von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Neue Frage
Was macht dieses "Apply to all", das erscheint, wenn man auf das Häkchen 
klickt? Scheinbar nichts oder macht es doch etwas?
Helmut

von Uwe S. (steinm)


Bewertung
0 lesenswert
nicht lesenswert
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

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
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

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Max G. (l0wside) Benutzerseite


Bewertung
3 lesenswert
nicht lesenswert
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...

von Lukas K. (carrotindustries)


Bewertung
2 lesenswert
nicht lesenswert
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 "/".

von Max G. (l0wside) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

: Bearbeitet durch User
von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Helmut S. (helmuts)


Bewertung
0 lesenswert
nicht lesenswert
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 
...

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
Lukas K. schrieb:
> 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.

Ist repariert, war was Windows-spezifisches: 
https://github.com/carrotIndustries/horizon/commit/7d5918d4846ea79cbfb803a365eb7fefc0f97535

von N. G. (newgeneration) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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:
...
Compiling file canvas3d/canvas3d.cpp...
In file included from ./canvas/poly2tri/poly2tri.h:35:0,
                 from canvas3d/canvas3d.cpp:11:
./canvas/poly2tri/common/shapes.h: In Konstruktor »p2t::Point::Point(double, double)«:
./canvas/poly2tri/common/shapes.h:60:29: Warnung: Deklaration von »y« überdeckt ein Element von »p2t::Point« [-Wshadow]
   Point(double x, double y) : x(x), y(y) {}
                             ^
./canvas/poly2tri/common/shapes.h:47:13: Anmerkung: verdeckte Deklaration ist hier
   double x, y;
             ^
...
Compiling file pool-mgr/duplicate/duplicate_window.cpp...
Compiling file resources.cpp...
Compiling file gitversion.cpp...
Linking final file horizon-imp...
Linking final file horizon-pool...
Linking final file horizon-prj...
Linking final file horizon-pool-update-parametric...
Linking final file horizon-prj-mgr...
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.

von Helmut S. (helmuts)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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?

von Lukas K. (carrotindustries)


Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.