Lukas K. schrieb: > (Kann im Padstack in den Eigenschaften vom Loch eingestellt werden) Danke, das war's. > Du hast dir ja eigene Padstacks für deine Pads gemacht? Warum hast du > nicht die vorhanden benutzt und parametriert? Zum Zeitpunkt des Erstellens wusste ich das schlicht nicht!
Klaus R. schrieb: > Lukas K. schrieb: >> Du hast dir ja eigene Padstacks für deine Pads gemacht? Warum hast du >> nicht die vorhanden benutzt und parametriert? > > Zum Zeitpunkt des Erstellens wusste ich das schlicht nicht! Ich habe es auch erst später verstanden. Wenn man es dann aber konsequent umsetzt, kommt man recht wenigen Padstacks aus. Das Konzept ist gut! Uwe
Noch ein kleiner Bug: Im Packages Editor nutzt "Draw Line Rectangle" immer den Top Copper Layer, unabhängig davon, welcher Layer gerade ausgewählt ist. Ein Hotkey dafür wäre schön.
Und noch einer: Am Ende des Part Wizards wird beim anlegen der Verzeichnisse für Entites, Units, Symbols und Parts nicht geprüft, ob die Verzeichnisse schon vorhanden sind.
Klaus R. schrieb: > Und noch einer: Am Ende des Part Wizards wird beim anlegen der > Verzeichnisse für Entites, Units, Symbols und Parts nicht geprüft, ob > die Verzeichnisse schon vorhanden sind. Auch repariert.
Hallo, erst mal danke an Klaus für das komplette Beispiel "rpicodec-2017-11-13.tgz". Ich habe mal die Gerber Files von dem Projekt erzeugt und mit einem Gerber Viewer - ViewMate (Pentalogix) - angeschaut. Beim Import des "bottom-layer" .gbl kommt eine Fehlermeldung. Ich habe dann "Ja" gedrückt. Das Ergebnis sieht aber auf den ersten Blick korrekt aus. Was könnte da der Fehler sein? Meine Version von horizon ist von ca. 23Uhr (heute).
:
Bearbeitet durch User
Hallo Lukas. Da ich mehr Anwender bin und weniger Programmierer: Gibt es fertige Windows Versionen (32bit)? Also Installer oder auch Portabel (entpacken und starten). Wäre es möglich diese und auch für andere (Win 64Bit / Linux 32/64) gleich immer mit zu machen. Von mir aus auch nur jede Woche oder nach schweren Fehlern. Grüße, Uli
Uli schrieb: > Wäre es möglich diese und auch für andere (Win 64Bit / Linux 32/64) > gleich immer mit zu machen. Von mir aus auch nur jede Woche oder nach > schweren Fehlern. Vielleicht hilft dir das schon mal zum Einstieg. Windows Versionen gibt es hier. Die Neueste dort ist von gestern. https://github.com/carrotIndustries/horizon/wiki/Getting-started Die Startseite. https://github.com/carrotIndustries/horizon Ziemlich unten auf "wiki" klicken. Da geht es dann weiter. Obwohl ich kein Programmierer bin, kompiliere ich jetzt selbst in Windows. #Einmalig mysys2 installieren Anleitung siehe Webseite von Lukas. https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Windows #Im home/user Verzeichnis von mysys2 ein Verzeichnis anlegen. mkdir horizonxyz mysys2 starten. Ein Terminal geht auf. In dem Terminal wird dann gearbeitet. #Vom home-Verzeichnis in dieses Verzeichns wechseln. cd horizonxyz #Die Source-Files herunterladen. git clone http://github.com/carrotIndustries/horizon #In das von clone angelegte Unterverzeichnis horizon wechseln. cd horizon #Kompilieren mit allen logischen cores des Prozessors. Beispiel i7 mit 4 cores + hyperthreading. make -j 8 Die debug-Symbole aus den Files löschen. strip horizon-* #Die WIN-Version im Ordner "dist" ablegen ./make_bindist.sh Im Unter-Ordner "dist" ist dann ein Verzeichnis horizon. Das ist das Programmverzeichnis für die Windows-Version.
:
Bearbeitet durch User
Helmut S. schrieb: > Das Ergebnis sieht aber auf > den ersten Blick korrekt aus. Was könnte da der Fehler sein? War wohl persönliches Unvermögen, Dinge richtig aus der Gerber-Spezifikation abzutippen. Ist repariert. Helmut S. schrieb: > Die debug-Symbole aus den Files löschen. > > strip horizon-* Das macht auch schon die ./make_bindist.sh beim Erstellen des dist-Verzeichnisses.
Also Lukas, ich muss es doch noch mal schreiben, ich bin schon sehr beeindruckt wie weit Du schon gekommen bist. Ich nehme mal stark an dass Du bisher nur einige tausend Stunden, vielleicht maximal 5000, an dem Programm gearbeitest hast. Und dann schon einen funktionierenden Schaltplaneditor, einen Layouteditor, Gerber Export und OpenGL. Wenn man das Vergleicht mit der elend langsamen Weiterentwicklung etwa von gEDA/PCB. Oder auch KiCad, wo sich ja auch über viele Jahre nur sehr wenig getan hatte. Dein Beispielil zeigt also, dass komplette Neuentwicklungen wirklich Sinn machen.
...schließe mich meinem Vorredener an, habs zwar bisher nicht angeguckt,
aber beeindruckt gelesen was hier diskutiert wird.
>Sinn machen.
^Sinn machen^Sinn haben^
Gruß,
Holm
Stefan S. schrieb: > Dein Beispielil zeigt also, dass komplette Neuentwicklungen wirklich > Sinn machen. Ja, mir geht es auch so ... Und die Code-Qualität und das Wissen das dahinter steckt ... Schon sehr beeindruckend. Leider leider entwickeln sich 90% eines Programms in 10% der Zeit ... Die anderen 10% benötigen dann 90% Zeit. Die zeitaufwändigen Sachen kommen vermutlich erst ... Bug-fixing und Usability ... Das ist dann immer das Stadium, in dem ich die Lust an etwas verliere und mir etwas neues zum Basteln suche :/
Hallo Lukas, ich habe nochmal eine Frage zu den Swap-Groups der Unit's. Wozu braucht man die? Können etwas pins einer Swap-Group getauscht werden? Hat die Nummer der Swap-Group eine Bedeutung? Uwe
Uwe S. schrieb: > Können etwas pins einer Swap-Group getauscht werden? Hat die > Nummer der Swap-Group eine Bedeutung? Für Pins soll die Swap group in Zukunft für's Pinswapping verwendet werden: 0 bedeutet nicht tauschbar, für alle anderen Nummern sind Pins mit gleicher Nummer tauschbar. (So wie bei EAGLE auch) Für Gates in Entities analog dazu. (Gateswapping) Bis jetzt kam mir nur noch keine zündende Idee, wie man das elegant implementieren kann. Was die Entwicklung anbetrifft: An einigen Stellen habe ich mir das Leben (vielleicht zu) einfach gemacht: 1. Schematic::expand() und Board::expand() Diese Methoden befüllen Schaltplan und Board mit Informationen aus der Netzliste, Räumen im Schaltplan Linien und Junctions auf, wenden im Board die Parameter auf Packages an, Berechnen airwires, etc. Alles das geschieht nach jedem Tool. D.h. auch wenn man nur eine Kleinigkeit angefasst hat, wird alles neu berechnet. Aktuell scheint das von der Geschwindigkeit her noch kein Problem zu sein, mal sehen wie lange das noch so bleibt. 2. Canvas::render() Rendert (macht aus Packags, Pads, etc. Linien und Dreiecke) immer alles neu und Trianguliert auch die Planes damit die von der GPU gerendert werden könnnen. Das geschieht, wenn ein Tool aktiv ist nach jeder Benutzereingabe. Durch den KiCad-Router hat das Canvas Möglichkeiten bekommen, bereits gerenderts zu löschen und Dinge nachträglich zum gerenderten hinzufügen. Vielleicht wird diese Funktionalität in Zukunft auch noch von mehr Tools genutzt werden, wenn Canvas::render zum Flaschenhals wird. 3. DRC hat quadratische Komplexität. DRC ist in sich recht abgeschlossen, d.h. man kann dort einfach ohne weitere Umbauten optimieren. Die Idee dabei war: Erstmal Komplexität vermeiden und machen, dass es funktioniert. Schneller bekommt man es später immer noch.
Nachtrag zum Kompilieren der WIN version auf einem WIN-PC. Einmalig mysys2 installieren. Anleitung siehe Webseite von Lukas. https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Windows Gtk-Bug, Grafikfehler nach dem 3D Aufruf -- In dem zip von mir ist eine gepatchte libgdk (ja, gdk, kein Tippfehler) Kopier' mal die libgdk-3-0.dll aus meinem zip nach C:\msys64\mingw64\bin --Lukas --- WIN version erzeugen In WIN mysys2 starten. Ein Terminal geht auf. In dem Terminal wird dann gearbeitet. #Im home/user Verzeichnis von mysys2 ein Verzeichnis anlegen. $ mkdir horizonxyz #Vom home-Verzeichnis in dieses Verzeichns wechseln. $ cd horizonxyz #Die Source-Files herunterladen. $ git clone http://github.com/carrotIndustries/horizon #In das von clone angelegte Unterverzeichnis horizon wechseln. $ cd horizon #Kompilieren mit allen logischen cores des Prozessors. Beispiel i7 mit 4 cores + hyperthreading. $ make -j 8 #Die WIN-Version im Ordner "dist" erzeugen. $ ./make_bindist.sh Im Unter-Ordner "dist" ist dann ein Verzeichnis horizon. Das ist das Programmverzeichnis für die Windows-Version.
:
Bearbeitet durch User
Helmut S. schrieb: > In dem zip von mir ist eine gepatchte libgdk (ja, gdk, kein Tippfehler) > Kopier' mal die libgdk-3-0.dll aus meinem zip nach C:\msys64\mingw64\bin Mittlerweile braucht man kein gepatchtes Gtk/gdk mehr, letzte Woche gab es ein Bugfix-release von Gtk mit dem Patch drin, das es auch schon in msys2 geschafft hat. Einfach in der mingw64-shell "pacman -Syu" eingeben, damit alle Pakete auf den aktuellen Stand gebracht werden.
Danke Lukas, nach dem update von mysys2 geht es jetzt ohne den Austausch der libgdk-3-0.dll. ----------------------------------------------------------- Aleitung zum Kompilieren der WIN version auf einem WIN-PC. Einmalig mysys2 installieren. Anleitung siehe Webseite von Lukas. https://github.com/carrotIndustries/horizon/wiki/B... --- WIN version erzeugen In WIN mysys2 starten. Ein Terminal geht auf. In dem Terminal wird dann gearbeitet. #Im home/user Verzeichnis von mysys2 ein Verzeichnis anlegen. $ mkdir horizonxyz #Vom home-Verzeichnis in dieses Verzeichns wechseln. $ cd horizonxyz #Die Source-Files herunterladen. $ git clone http://github.com/carrotIndustries/horizon #In das von clone angelegte Unterverzeichnis horizon wechseln. $ cd horizon #Kompilieren mit allen logischen cores des Prozessors damit es schnell geht. Beispiel CPU mit 4 cores + hyperthreading -> -j 8. $ make -j 8 #Die WIN-Version im Ordner "dist" erzeugen. $ ./make_bindist.sh Im Unter-Ordner "dist" ist dann ein Verzeichnis horizon. Das ist das Programmverzeichnis für die Windows-Version.
Ich wollte die Zoom-Stufen bei Bedarf kleiner machen (damit z.B. ein Schaltplan gut den Bildschirm ausfüllt). Wenn man jetzt Shift drückt, dann wir der Zoom-Faktor (bzw. Exponent) statt 1.5 auf 1.1 gesetzt.
1 | klaus@Yoga:~/horizon/horizon/canvas$ diff -u pan.cpp pan.cpp.new
|
2 | --- pan.cpp 2017-11-17 22:03:48.259871554 +0100
|
3 | +++ pan.cpp.new 2017-11-17 22:02:05.363867717 +0100
|
4 | @@ -73,16 +73,23 @@
|
5 | float sc = this->scale; |
6 | |
7 | float scale_new=1; |
8 | +
|
9 | + float factor = 1.5;
|
10 | +
|
11 | + if (pan_dragging == true) {
|
12 | + factor = 1.1;
|
13 | + }
|
14 | +
|
15 | if(scroll_event->direction == GDK_SCROLL_UP) { |
16 | - scale_new = sc*1.5;
|
17 | + scale_new = sc*factor;
|
18 | } |
19 | else if(scroll_event->direction == GDK_SCROLL_DOWN) { |
20 | - scale_new = sc/1.5;
|
21 | + scale_new = sc/factor;
|
22 | } |
23 | else if(scroll_event->direction == GDK_SCROLL_SMOOTH) { |
24 | gdouble sx, sy; |
25 | gdk_event_get_scroll_deltas((GdkEvent*)scroll_event, &sx, &sy); |
26 | - scale_new = sc * powf(1.5, -sy);
|
27 | + scale_new = sc * powf(factor, -sy);
|
28 | } |
29 | if(scale_new < 1e-7 || scale_new > 1e-2) { |
30 | return; |
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
Klaus R. schrieb: > Oh, gut. Frage: Was macht "g drag and keep slope"? Damit bleiben beim schieben der schrägen Leitung die vertikalen Segmente immer vertikal. Das hilft um ein schönes 45° Routing zu erhalten.
Hallo Lukas ich bin jetzt auch neugierig geworden und wollte mir dein Programm anschauen. Compilieren war nach der Aktualisierung der benötigten Pakete kein Problem. Die Ausgabe in den GL Canvas scheint es aber mit meiner Hardware nicht zu gehen: Diese Meldungen tauchen in der Konsole auf:
1 | helmut@otto:~$ /home/data/Downloads/horizon/horizon-prj-mgr |
2 | SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name, GROUP_CONCAT(tags.tag, ' '), parts.filename FROM parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages ON packages.uuid = parts.package WHERE parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid ORDER BY parts.MPN COLLATE naturalCompare ASC |
3 | col 2 |
4 | create proc |
5 | spawn /home/data/Downloads/horizon/horizon-imp -c /home/helmut/CAD/Horizon/HB test 1/top_sch.json /home/helmut/CAD/Horizon/HB test 1/top_block.json |
6 | Linking failure: Vertex info |
7 | ----------- |
8 | 0(2) : warning C7568: #version 330 not fully supported on current GPU target profile |
9 | 0(13) : error C5108: unknown semantics "INSTANCEID" specified for "gl_InstanceID" |
10 | |
11 | Fragment info |
12 | ------------- |
13 | 0(2) : warning C7568: #version 330 not fully supported on current GPU target profile |
14 | |
15 | gl error 1281 in canvas/canvas_gl.cpp:98 |
16 | end proc 19270 |
17 | exit stat 6 |
18 | helmut@otto:~$ |
Ich habe eine ältere Nvidia Karte
1 | helmut@otto:~$ nvidia-detect |
2 | Detected NVIDIA GPUs: |
3 | 00:0d.0 VGA compatible controller [0300]: NVIDIA Corporation C61 [GeForce 6100 nForce 405] [10de:03d1] (rev a2) |
4 | |
5 | Checking card: NVIDIA Corporation C61 [GeForce 6100 nForce 405] (rev a2) |
6 | Your card is only supported up to the 304 legacy drivers series. |
7 | It is recommended to install the |
8 | nvidia-legacy-304xx-driver |
9 | package. |
Ich habe die Treiber Version 304.137 installiert. Ausgabe von glxinfo:
1 | helmut@otto:~$ /usr/bin/glxinfo |
2 | name of display: :0.0 |
3 | display: :0 screen: 0 |
4 | direct rendering: Yes |
5 | server glx vendor string: NVIDIA Corporation |
6 | server glx version string: 1.4 |
7 | server glx extensions: |
8 | GLX_ARB_create_context, GLX_ARB_create_context_profile, |
9 | GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, |
10 | GLX_ARB_multisample, GLX_EXT_create_context_es2_profile, |
11 | GLX_EXT_create_context_es_profile, GLX_EXT_swap_control, |
12 | GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap, |
13 | GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_float_buffer, |
14 | GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_swap_control, |
15 | GLX_SGI_video_sync |
16 | client glx vendor string: NVIDIA Corporation |
17 | client glx version string: 1.4 |
18 | client glx extensions: |
19 | GLX_ARB_create_context, GLX_ARB_create_context_profile, |
20 | GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, |
21 | GLX_ARB_get_proc_address, GLX_ARB_multisample, |
22 | GLX_EXT_create_context_es2_profile, GLX_EXT_fbconfig_packed_float, |
23 | GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context, GLX_EXT_swap_control, |
24 | GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap, |
25 | GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_copy_image, |
26 | GLX_NV_float_buffer, GLX_NV_multisample_coverage, GLX_NV_present_video, |
27 | GLX_NV_swap_group, GLX_NV_video_capture, GLX_NV_video_out, |
28 | GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_swap_control, |
29 | GLX_SGI_video_sync |
30 | GLX version: 1.4 |
31 | GLX extensions: |
32 | GLX_ARB_create_context, GLX_ARB_create_context_profile, |
33 | GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, |
34 | GLX_ARB_get_proc_address, GLX_ARB_multisample, |
35 | GLX_EXT_create_context_es2_profile, GLX_EXT_swap_control, |
36 | GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap, |
37 | GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_float_buffer, |
38 | GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGI_swap_control, |
39 | GLX_SGI_video_sync |
40 | OpenGL vendor string: NVIDIA Corporation |
41 | OpenGL renderer string: GeForce 6100 nForce 405/integrated/SSE2 |
42 | OpenGL version string: 2.1.2 NVIDIA 304.137 |
43 | OpenGL shading language version string: 1.20 NVIDIA via Cg compiler |
44 | OpenGL extensions: |
45 | GL_ARB_ES2_compatibility, GL_ARB_color_buffer_float, |
46 | GL_ARB_compressed_texture_pixel_storage, GL_ARB_conservative_depth, |
47 | GL_ARB_copy_buffer, GL_ARB_depth_clamp, GL_ARB_depth_texture, |
48 | GL_ARB_draw_buffers, GL_ARB_explicit_attrib_location, |
49 | GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, |
50 | GL_ARB_fragment_shader, GL_ARB_framebuffer_object, |
51 | GL_ARB_get_program_binary, GL_ARB_half_float_pixel, |
52 | GL_ARB_half_float_vertex, GL_ARB_imaging, GL_ARB_internalformat_query, |
53 | GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multisample, |
54 | GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_occlusion_query2, |
55 | GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, |
56 | GL_ARB_provoking_vertex, GL_ARB_robustness, GL_ARB_sampler_objects, |
57 | GL_ARB_separate_shader_objects, GL_ARB_shader_objects, |
58 | GL_ARB_shading_language_100, GL_ARB_shading_language_420pack, |
59 | GL_ARB_shading_language_include, GL_ARB_shadow, GL_ARB_sync, |
60 | GL_ARB_texture_border_clamp, GL_ARB_texture_compression, |
61 | GL_ARB_texture_cube_map, GL_ARB_texture_env_add, |
62 | GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, |
63 | GL_ARB_texture_env_dot3, GL_ARB_texture_float, |
64 | GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two, |
65 | GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_storage, |
66 | GL_ARB_texture_swizzle, GL_ARB_timer_query, GL_ARB_transpose_matrix, |
67 | GL_ARB_vertex_array_bgra, GL_ARB_vertex_array_object, |
68 | GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, |
69 | GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_texture_float, |
70 | GL_ATI_texture_mirror_once, GL_EXT_Cg_shader, GL_EXT_abgr, GL_EXT_bgra, |
71 | GL_EXT_blend_color, GL_EXT_blend_equation_separate, |
72 | GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, |
73 | GL_EXT_compiled_vertex_array, GL_EXT_depth_bounds_test, |
74 | GL_EXT_direct_state_access, GL_EXT_draw_range_elements, GL_EXT_fog_coord, |
75 | GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, |
76 | GL_EXT_framebuffer_object, GL_EXT_gpu_program_parameters, |
77 | GL_EXT_import_sync_object, GL_EXT_multi_draw_arrays, |
78 | GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels, |
79 | GL_EXT_pixel_buffer_object, GL_EXT_point_parameters, |
80 | GL_EXT_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color, |
81 | GL_EXT_separate_shader_objects, GL_EXT_separate_specular_color, |
82 | GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, |
83 | GL_EXT_texture3D, GL_EXT_texture_compression_dxt1, |
84 | GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map, |
85 | GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, |
86 | GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, |
87 | GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888, |
88 | GL_EXT_texture_lod, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, |
89 | GL_EXT_texture_object, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode, |
90 | GL_EXT_texture_storage, GL_EXT_texture_swizzle, GL_EXT_timer_query, |
91 | GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, GL_EXT_x11_sync_object, |
92 | GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, |
93 | GL_KTX_buffer_region, GL_NVX_conditional_render, |
94 | GL_NV_ES1_1_compatibility, GL_NV_alpha_test, GL_NV_blend_minmax, |
95 | GL_NV_blend_square, GL_NV_complex_primitives, GL_NV_copy_depth_to_color, |
96 | GL_NV_depth_clamp, GL_NV_fbo_color_attachments, GL_NV_fence, |
97 | GL_NV_float_buffer, GL_NV_fog_distance, GL_NV_fragdepth, |
98 | GL_NV_fragment_program, GL_NV_fragment_program2, |
99 | GL_NV_fragment_program_option, GL_NV_framebuffer_multisample_coverage, |
100 | GL_NV_half_float, GL_NV_light_max_exponent, GL_NV_multisample_filter_hint, |
101 | GL_NV_occlusion_query, GL_NV_packed_depth_stencil, GL_NV_pixel_data_range, |
102 | GL_NV_point_sprite, GL_NV_primitive_restart, GL_NV_register_combiners, |
103 | GL_NV_register_combiners2, GL_NV_texgen_reflection, GL_NV_texture_barrier, |
104 | GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4, |
105 | GL_NV_texture_expand_normal, GL_NV_texture_lod_clamp, |
106 | GL_NV_texture_rectangle, GL_NV_texture_shader, GL_NV_texture_shader2, |
107 | GL_NV_texture_shader3, GL_NV_vertex_array_range, |
108 | GL_NV_vertex_array_range2, GL_NV_vertex_program, GL_NV_vertex_program1_1, |
109 | GL_NV_vertex_program2, GL_NV_vertex_program2_option, |
110 | GL_NV_vertex_program3, GL_OES_compressed_paletted_texture, GL_OES_depth24, |
111 | GL_OES_depth32, GL_OES_depth_texture, GL_OES_element_index_uint, |
112 | GL_OES_fbo_render_mipmap, GL_OES_get_program_binary, GL_OES_mapbuffer, |
113 | GL_OES_packed_depth_stencil, GL_OES_point_size_array, GL_OES_point_sprite, |
114 | GL_OES_read_format, GL_OES_rgb8_rgba8, GL_OES_standard_derivatives, |
115 | GL_OES_texture_3D, GL_OES_texture_float, GL_OES_texture_float_linear, |
116 | GL_OES_texture_half_float, GL_OES_texture_half_float_linear, |
117 | GL_OES_texture_npot, GL_OES_vertex_array_object, GL_OES_vertex_half_float, |
118 | GL_S3_s3tc, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, |
119 | GL_SGIX_depth_texture, GL_SGIX_shadow, GL_SUN_slice_accum |
120 | |
121 | OpenGL ES profile version string: OpenGL ES 2.0 NVIDIA 304.137 304.137 |
122 | OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.00 |
123 | OpenGL ES profile extensions: |
124 | GL_EXT_Cg_shader, GL_EXT_bgra, GL_EXT_framebuffer_object, |
125 | GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_s3tc, |
126 | GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888, |
127 | GL_EXT_unpack_subimage, GL_NV_alpha_test, GL_NV_blend_minmax, |
128 | GL_NV_complex_primitives, GL_NV_draw_buffers, GL_NV_fbo_color_attachments, |
129 | GL_NV_fragdepth, GL_NV_fragment_program, GL_NV_fragment_program2, |
130 | GL_NV_get_tex_image, GL_NV_read_buffer, GL_NV_texture_lod_clamp, |
131 | GL_NV_unpack_subimage, GL_NV_vertex_program, GL_NV_vertex_program1_1, |
132 | GL_NV_vertex_program2, GL_NV_vertex_program2_option, |
133 | GL_NV_vertex_program3, GL_OES_compressed_paletted_texture, GL_OES_depth24, |
134 | GL_OES_depth32, GL_OES_depth_texture, GL_OES_element_index_uint, |
135 | GL_OES_fbo_render_mipmap, GL_OES_get_program_binary, GL_OES_mapbuffer, |
136 | GL_OES_packed_depth_stencil, GL_OES_point_size_array, GL_OES_point_sprite, |
137 | GL_OES_read_format, GL_OES_rgb8_rgba8, GL_OES_standard_derivatives, |
138 | GL_OES_texture_3D, GL_OES_texture_float, GL_OES_texture_float_linear, |
139 | GL_OES_texture_half_float, GL_OES_texture_half_float_linear, |
140 | 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
Helmut B. schrieb: > Ist meine Hardware zu alt? Oder siehst du noch einen Ansatzpunkt, dein > Programm zum laufen zu bringen? Scheint so als sei die zu alt: Laut Wikipedia kann die GeForce 6100 wohl nur OpenGL 2.1, das reicht nicht. Die Karte ist aber auch schon deutlich über 10 Jahre alt... So spontan fällt mir da nichts ein, wie es ohne OpenGL 3-GPU funktionieren könnte.
Hallo Helmut, falls du noch einen neueren WIN7/WIN10 PC hast, kannst du ja mal die kompilierte WIN-Version herunterladen und damit testen. Die Neueste ist vom 18.11.2017. http://0x83.eu/horizon-zip/
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
Auf Wiki steht was von Softwareemulation. Hm, also kann man deine Software nur auf neuen Geräten verwenden?
Helmut S. schrieb: > warum haben Vias keinen Netznamen? Aktuell erhalten Vias ihr Netz durch den Track, der mit der Junction verbunden ist. Unverbundenen Vias Netze zuordnen zu können steht aber auch auf meiner zeitnahen Todo-Liste. Abdul K. schrieb: > Hm, also kann man deine Software nur auf neuen Geräten verwenden? Neuer im Sinne von Jünger als ~8 Jahre, ja. Horizon ist aber auch mehr ein Projekt für die Zukunft, bis es denn mal "ausgereift" ist, haben auch mehr Leute eine GPU, die OpenGL 3 kann. OpenGL 3 ist jetzt auch schon ~8 Jahre alt und mit OpenGL 2 will man heutzutage nichts mehr neu anfangen...
Lukas K. schrieb: > Unverbundenen Vias Netze zuordnen zu können steht aber > auch auf meiner zeitnahen Todo-Liste. Wenn das geht, wärst du zumindest in diesem Punkt dem KiCad schon voraus^^ Via-Stitching geht zwar mit KiCad auch, aber nur umständlich ... Braucht man aber oft und ist daher eine eigentlich recht wichtige Funktion.
Mampf F. schrieb: > Wenn das geht, wärst du zumindest in diesem Punkt dem KiCad schon > voraus^^ Ist drin: Man kann nun Vias mit dem "Set via net"-Tool Vias, die ohne Netz auf dem Board liegen ein Netz zuweisen.
Lukas K. schrieb: > Mampf F. schrieb: >> Wenn das geht, wärst du zumindest in diesem Punkt dem KiCad schon >> voraus^^ > > Ist drin: Man kann nun Vias mit dem "Set via net"-Tool Vias, die ohne > Netz auf dem Board liegen ein Netz zuweisen. Danke, dass man gleich mehrere Vias selektieren kann und denen auf einen Schlag das gleiche Netz, z. B. GND, zuweisen kann.
:
Bearbeitet durch User
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
Vielleicht hilft es , das Programm im Debugger zu starten. Debug-Builds sind auch hilfreich.
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.
Lukas K. schrieb: > Helmut S. schrieb: >> So war das doch bestimmt nicht gedacht oder >> doch? > > Leider ja, das Move-Tool hat weiß nichts von Design Rules. Der > Kicad-Router kann wohl Tracks unter Beachtung von Abständen verschieben, > mal sehen wie man das am besten eingebaut bekommt. Jetzt gibt es das Tool "Drag track interactive" (g), um einen Track zu verschieben. Mehrere Tracks kann das Tool nicht, dafür werden andere Tracks automatisch aus dem Weg geschoben.
Lukas K. schrieb: > > Jetzt gibt es das Tool "Drag track interactive" (g), um einen Track zu > verschieben. Mehrere Tracks kann das Tool nicht, dafür werden andere > Tracks automatisch aus dem Weg geschoben. Das heißt, du hast jetzt schon einen Push&Shove Router eingebaut, den KiCad erst seit kurzem hat und Eagle noch garnicht? Kranker scheiß :D
Hm, wollte auch mal testen, kann es Compilieren aber starten tut es leider nicht.
1 | ...$ ./horizon-imp |
2 | wrong invocation |
3 | ...$ ./horizon-prj |
4 | terminate called after throwing an instance of 'std::out_of_range' |
5 | what(): vector::_M_range_check: __n (which is 1) >= this->size() (which is 1) |
6 | Abgebrochen (Speicherabzug geschrieben) |
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
1 | (gdb) bt |
2 | #0 0x00007ffff22cba70 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
|
3 | #1 0x00007ffff22cd19a in __GI_abort () at abort.c:89
|
4 | #2 0x00007ffff28e3b85 in __gnu_cxx::__verbose_terminate_handler() ()
|
5 | at /usr/lib/x86_64-linux-gnu/libstdc++.so.6 |
6 | #3 0x00007ffff28e1956 in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
|
7 | #4 0x00007ffff28e19a1 in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
|
8 | #5 0x00007ffff28e1be4 in () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
|
9 | #6 0x00007ffff290a15f in std::__throw_out_of_range(char const*) ()
|
10 | at /usr/lib/x86_64-linux-gnu/libstdc++.so.6 |
11 | #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
|
12 | #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
|
13 | #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
|
14 | #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
|
15 | #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
|
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?
Lukas K. schrieb: > Ich hab den von KiCad eingebaut. Das geht so einfach? Oo Ist ja schon fast unglaublich ... :)
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
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.
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!
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
Lukas K. schrieb: > Uwe S. schrieb: >> #8 0x000000010025f524 in >> horizon::Track::Connection::Connection(nlohmann::basic_json<std::map, >> std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, >> std::allocator<char> >, bool, long, > > Ich hab gerade mal was gepushed, funktioniert's nun? Und wie! Danke.
Hallo Lukas, noch eine Frage. Bisher konnte man mit Shift und Bewegen der Maus den Canvas verschieben. Jetzt klappt das nur noch mit gleichzeitigem Maus-Links-Klick. Vermutlich hattest du deine Gründe dafür. Blöd ist allerdings, dass dieser Links-Klick dann nicht nur die Verschiebung startet, sondern z.B. auch den Start einer Linie oder eines Tracks setzt. Etwas konkreter: Geöffnet ist das Board und ich möchte einen Track routen, drücke also 'x'. Jetzt stelle ich fest, dass der Canvas verschoben werden muss, betätige als Shift, linke Maustaste und schiebe den Canvas passend. Leider habe ich damit aber auch gleichzeitig das Routen des Tracks gestartet. Also erstmal ESC, dann verschieben und nochmal 'x'. Mache ich was falsch? Uwe
Lukas K. schrieb: > Lukas K. schrieb: >> Helmut S. schrieb: >>> So war das doch bestimmt nicht gedacht oder >>> doch? >> >> Leider ja, das Move-Tool hat weiß nichts von Design Rules. Der >> Kicad-Router kann wohl Tracks unter Beachtung von Abständen verschieben, >> mal sehen wie man das am besten eingebaut bekommt. > > Jetzt gibt es das Tool "Drag track interactive" (g), um einen Track zu > verschieben. Mehrere Tracks kann das Tool nicht, dafür werden andere > Tracks automatisch aus dem Weg geschoben. Hallo Lukas, habe es gerade mal ausprobiert. Diese neue Funktion ist schon richtig gut. Jetzt muss ich nur noch lernen wie man neue Bauteile definiert. :-)
Beitrag #5216803 wurde von einem Moderator gelöscht.
Beitrag #5216805 wurde von einem Moderator gelöscht.
Beitrag #5216807 wurde von einem Moderator gelöscht.
Uwe S. schrieb: > Jetzt klappt das nur noch mit gleichzeitigem > Maus-Links-Klick. Vermutlich hattest du deine Gründe dafür. Blöd ist > allerdings, dass dieser Links-Klick dann nicht nur die Verschiebung > startet, sondern z.B. auch den Start einer Linie oder eines Tracks > setzt. Mir hatte das mit dem Shift ohne klicken nicht gefallen, weil das kaputt ging, wenn shift außerhalb des Canvas losgelassen wurde. Jetzt wird shift-click für Tools ignoriert.
Jörg W. schrieb: > Wenn ich mal mein OS (und damit auch den Compiler) aktualisiert habe, > schau ich mir Horizon auf jeden Fall auch mal an. Vermutlich wird Lukas > dann von mir als erstes einen Satz Patches für FreeBSD erhalten. :-) Ich mach' mal wieder einen Versuch, nachdem ich das FreeBSD auf das letzte 10-stable hochgezogen habe (11.x wird demnächst auch noch werden). OS-native Clang (3.4.1) macht noch kein C++14, aber ich habe ohnehin noch einen GCC 6 daliegen, der compiliert das zumindest erst einmal. Ein bisschen seltsam sind die vielen
1 | -pthread -D_THREAD_SAFE |
beim Compilieren; in jeder Zeile taucht dieses Konstrukt mehrere tausend(!) Mal auf. ØMQ hat mich ein Weilchen gekostet: die FreeBSD-Ports folgen hier der offiziellen Strategie von ØMQ und trennen die Bibliothek von den C++-Bindings, die man in cppzmq findet. Erst damit hat man dann zmq.hpp. Der Compiler läuft damit dann durch, aber der Linker wirft noch viele Fehler. Manches sieht mir recht seltsam aus, aber es ist Mitternacht, und ich geh' dann erstmal ins Bett. Ich hänge das Logfile vom Linker mal an.
Jörg W. schrieb: > Ich hänge das > Logfile vom Linker mal an. So auf den ersten Blick fällt mir auf, dass du mit gcc linkst. Versuch's doch mal mit dem g++
Lukas K. schrieb: > So auf den ersten Blick fällt mir auf, dass du mit gcc linkst. Ja, ich hatte mit
1 | gmake CC=gcc6 CXX=g++6 |
gebaut. Offenbar benutzt du aber nicht CXX sondern CC. Mit
1 | gmake CC=g++6 |
verschwinden die Fehler bezüglich der C++-Standardbibliothek, aber es bleiben viele Fehler für Glib unt Gtk. glibmm ist 2.50.1, gtkmm ist 3.22.0. Zu alt? Ich habe diese beiden gerade für alle Fälle auch nochmal mit dem GCC 6 (statt des Clang aus dem Basis-OS) neu compiliert und baue Horizon nochmal. Mal sehen, ob das was ändert.
Lukas K. schrieb: > K. J. schrieb: >> ber starten tut es >> leider nicht. > > Du startest auch die falschen Binaries. Unmittelbar startbar sind nur > horizon-prj-mgr und horizon-pool-mgr, siehe > https://github.com/carrotIndustries/horizon/wiki/Getting-started Ja danke das war es, jetzt scheitert es am OpenGL3, ok das kann meine Grafikkarte nicht, schade werde aber trotzdem das Projekt von dir weiterverfolgen, macht schon einen guten eindruck, mal schauen bin eh auf der suche nach einer neuen Grafikkarte.
Jörg W. schrieb: > Ich habe diese beiden gerade für alle Fälle auch nochmal mit dem GCC 6 > (statt des Clang aus dem Basis-OS) neu compiliert und baue Horizon > nochmal. Mal sehen, ob das was ändert. Ja, war schon besser. Hatte dann noch Linkerfehler für Cairo und YAML, sodass ich cairomm und yaml-cpp ebenfalls mit GCC 6 neu compiliert habe. (Ich vermute, bei yaml-cpp hätte der Upgrade an sich genügt.) Damit lässt es sich nun linken. Weiß nicht, ob der Clang in FreeBSD 11 dann C++14 bereits beherrscht; wenn, dann wären damit alle Versionsvoraussetzungen „aus der Dose raus“ erfüllt. Damit zeigt sich eigentlich, dass Lukas' Strategie, zu Beginn der Entwicklung „bleeding edge“ zu benutzen und davon auszugehen, dass diese in hinreichend kurzer Zeit ohnehin mainstream werden, offenbar funktioniert. Leider werde ich erst morgen abend wieder vor der FreeBSD-Kiste sitzen, um zu testen, ob's auch funktioniert. Im Moment bin ich mir noch nicht ganz sicher bezüglicher der GL-Version – in der Ausgabe von glxinfo sind so viele verschiedene Versions-Strings drin. :/
Hab's geschafft, via VNC auf die Maschine zuzugreifen. Wenn ich den Schaltplaneditor aus dem Project Manager starten will, bekomme ich:
1 | SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name, GROUP_CONCAT(tags.tag, ' '), parts.filename FROM parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages ON packages.uuid = parts.package WHERE parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid ORDER BY parts.MPN COLLATE naturalCompare ASC |
2 | col 2 |
3 | create proc |
4 | |
5 | (<unknown>:7194): glibmm-ERROR **: |
6 | unhandled exception (type std::exception) in signal handler: |
7 | what: can't find executable |
8 | |
9 | |
10 | [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.
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
Lukas K. schrieb: > FreeBSD kann wohl kein /proc/self/exe Es gibt ein /proc/curproc/file, welches ein Symlink auf das eigene Executable ist. Darüber müsste sich das arrangieren lassen, wenn ich das richtig sehe. > Ich freue mich über Patches :) Schau' ich mir an. > "OpenGL core profile version string" ist was du brauchst. Das muss >= 3 > sein. OpenGL core profile version string: 3.3 (Core Profile) Mesa 17.2.4 Sieht also gut aus. :)
Lukas K. schrieb: > Ich freue mich über Patches :) OK, der war einfach. :) Funktioniert offenbar wirklich genauso wie Linux, heißt halt nur anders. Fliegt dann aber trotzdem 'raus:
1 | create proc |
2 | spawn /home/joerg/src/horizon/horizon-imp -c /home/joerg/txt/drawings/horizontest/top_sch.json /home/joerg/txt/drawings/horizontest/top_block.json |
3 | terminate called after throwing an instance of 'std::runtime_error' |
4 | what(): locale::facet::_S_create_c_locale name not valid |
5 | end proc 11632 |
6 | exit stat 134 |
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:
1 | proc /proc procfs rw 0 0 |
und mit "mount /proc" (als root) aktivieren.
1 | diff --git a/imp/imp_main.cpp b/imp/imp_main.cpp
|
2 | index 7ba90aa..aa217a4 100644
|
3 | --- a/imp/imp_main.cpp
|
4 | +++ b/imp/imp_main.cpp
|
5 | @@ -92,7 +92,7 @@ int main(int argc, char *argv[]) {
|
6 | std::locale::global(std::locale(std::cout.getloc(), new comma)); |
7 | } |
8 | #else |
9 | - std::locale::global(std::locale(""));
|
10 | + std::locale::global(std::locale("C"));
|
11 | #endif |
Damit stürzt es an dieser Stelle nicht ab und startet. Viel mehr an Tests ist über VNC hier gerade nicht drin.
Jörg W. schrieb: > + std::locale::global(std::locale("C")); Hm, das ist nicht so schön, dann geht's auf deutschen FreeBSDs kaputt. Probier's mal mit std::locale::global(std::locale(std::setlocale(LC_ALL, "")));
Ich verstehe noch nicht ganz, was du damit erreichen willst. Nur das Dezimalzeichen zurücksetzen?
Ich bin schwer beeindruckt. Das Programm gefällt mir sehr. Ich bin gerade dabei, mich etwas einzuarbeiten und möchte ein kleines Projekt damit umsetzen. Es sieht ja schon sehr gut benutzbar aus. Das Konzept der Pools gefällt mir vor allem sehr gut. Das meiste, was ich in den 1 bis 2 Stunden, die ich jetzt davor sitze, entdeckt habe, wirkt sehr durchdacht! Zwei kleines Sachen sind mir aufgefallen: 1. Rechtecke mit abgerundeten Ecken versagen leider, wenn die Rundungen überlappen. Hintergrund ist, dass ich einen kleinen Punkt als Pin-1-Indikator setzen wollte. Dafür schien ein Rechteck mit runden Ecken die einfachste Lösung. Leider funktioniert der Grenzfall Eckradius gleich halber Kantenlänge nicht. Mit größerem Radius wird es nicht besser (siehe Anhang). 2. Es wäre schön, wenn es eine Möglichkeit gäbe, Ecken von Linien zu entfernen oder Linien aufzutrennen. Ich wollte einen komplizierteren Platinenumriss zeichnen und habe dafür zuerst das grobe Rechteck gemalt, was sehr bequem ging. Nur leider sehe ich keinen Weg, wie ich an einer Ecke noch etwas „wegschneiden” kann, weil die Linien immer als Rechteck verbunden sind und ich dieses nicht auftrennen kann, oder einen weiteren Knick einfügen kann. Ich hoffe das war so weit einigermaßen verständlich ;)
Jörg W. schrieb: > Ich verstehe noch nicht ganz, was du damit erreichen willst. Nur das > Dezimalzeichen zurücksetzen? Das Problem war, dass ich zum Einlesen von Zahlen strtod verwende, was locale-Abhängig ist und die Formatierung mit streams machen. strtod benutzt automatisch die System-Locale, nur die streams stehen standardmäßig auf "C". Ziel davon ist es, dass wenigstens der Dezimaltrenner gleich der System-Locale ist. Jonas F. schrieb: > Das meiste, was ich in den 1 > bis 2 Stunden, die ich jetzt davor sitze, entdeckt habe, wirkt sehr > durchdacht! Sehr schön :) > Zwei kleines Sachen sind mir aufgefallen: > > 1. Rechtecke mit abgerundeten Ecken versagen leider, wenn die Rundungen > überlappen. Hintergrund ist, dass ich einen kleinen Punkt als > Pin-1-Indikator setzen wollte. Dafür schien ein Rechteck mit runden > Ecken die einfachste Lösung. Leider funktioniert der Grenzfall Eckradius > gleich halber Kantenlänge nicht. Mit größerem Radius wird es nicht > besser (siehe Anhang). Das passiert, da das entstehende Polygon dann sich selbst schneidet bzw. berührt. Das gefällt der Library, die das Polygon trianguliert nicht so gut und die gibt dann komische Dinge aus. Ich bau noch ein, dass das wenigstens mit dem Tool nicht passieren kann. Als Pin1-Markierung ist es zu bevorzugen, die vorhandenen Linien zu kürzen/verlängern wie in http://www.ocipcdc.org/archive/What_is_New_in_IPC-7351C_03_11_2015.pdf beschrieben. > > 2. Es wäre schön, wenn es eine Möglichkeit gäbe, Ecken von Linien zu > entfernen oder Linien aufzutrennen. Ich wollte einen komplizierteren > Platinenumriss zeichnen und habe dafür zuerst das grobe Rechteck gemalt, > was sehr bequem ging. Nur leider sehe ich keinen Weg, wie ich an einer > Ecke noch etwas „wegschneiden” kann, weil die Linien immer als Rechteck > verbunden sind und ich dieses nicht auftrennen kann, oder einen weiteren > Knick einfügen kann. Horizon unterscheidet zwischen Linien und Polygonen. Linien sind für Dinge zu verwenden, die keine geschlossene Fläche darstellen, z.B. Linien auf dem Silkscreen. Alles was eine Fläche (z.B. Board-Outline) wird mit Polygonen dargestellt. Polygone sind prinzipiell immer geschlossen. Aber ja, du hast recht, man kann derzeit nur Ecken löschen und keine neuen einfügen. Das kommt noch recht zeitnah.
Lukas K. schrieb: > Ziel davon ist es, dass wenigstens der Dezimaltrenner gleich der > System-Locale ist. Hmm. Geänderte Dezimaltrenner ist das, was ich an diesem ganzen l16n-Kram am meisten hasse. Ich ärgere mich regelmäßig darüber, dass FreeCAD auf meinem Linux-Laptop ein "57.6 mm" völlig missinterpretiert, weil dort halt die komplette Umgebung auf deutsch steht (und ich zu faul war, das bislang zu ändern). An deutsche Menüs und Fehlermeldungen könnte ich mich ja zur Not noch gewöhnen, an geänderte Dezimaltrenner aber gar nicht. Auf meinem FreeBSD habe ich daher nur LC_CTYPE überhaupt auf deutsch stehen, der Rest ist nicht gesetzt. Ich wäre ja dafür, den Dezimaltrenner in den Preferences durch den Nutzer überschreibbar zu machen … Ich hoffe mal, der wird dann nicht für das Einlesen deiner JSON-Daten benutzt. ;-) OK, ich werde mir morgen mal anschauen, welche Variante auf FreeBSD da funktioniert. Bin ja auch gespannt, mit dem Programm dann mal real ein bisschen zu spielen, nach alldem, was die anderen inzwischen hier geschrieben haben.
Sodele, das Tool zum Hinzufügen von Ecken in Polygonen ist drin und das Tool zum malen von Polygonen mit runden ecken erzeugt keine ungültigen Polygone mehr. Jörg W. schrieb: > Ich wäre ja dafür, den Dezimaltrenner in den Preferences durch den > Nutzer überschreibbar zu machen … Hört sich sinnvoll an, mal drüber nachdenken... > Ich hoffe mal, der wird dann nicht für das Einlesen deiner JSON-Daten > benutzt. ;-) Da haben schon andere dran gedacht ;)
Mit diff --git a/Makefile b/Makefile index 077c01c..c5b6baf 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -CC=g++ +CC?=g++ PKGCONFIG=pkg-config kann man den benötigten Kompiler über eine Umgebungsvariable setzen.
Paralleles Bauen auf Mehrkernmaschinen wäre schön...
Uwe B. schrieb: > kann man den benötigten Kompiler über eine Umgebungsvariable setzen. Mal ne frage in die Runde: Müsste da nicht eigentlich CXX verwendet werden? Uwe B. schrieb: > Paralleles Bauen auf Mehrkernmaschinen wäre schön... make -j 8, etc. funktioniert
Okay, mein Fehler. Ich hatte env CC="g++-6" CFLAGS=-j9 make in der tcsh versucht. env CC="g++-6" make -j9 kommt deutlich schneller zum nächsten Problem: Wshadow -std=c++14 -O3 imp/tool_popover.cpp -o imp/tool_popover.o In file included from imp/imp.cpp:1:0: imp/imp.hpp:19:19: fatal error: zmq.hpp: Datei oder Verzeichnis nicht gefunden #include <zmq.hpp> ^ compilation terminated. Das ganze auf Opensuse 42.2 und gcc6.
Lukas K. schrieb: > Uwe B. schrieb: >> kann man den benötigten Kompiler über eine Umgebungsvariable setzen. > > Mal ne frage in die Runde: Müsste da nicht eigentlich CXX verwendet > werden? Ja, wäre sinnvoll.
Uwe B. schrieb: > In file included from imp/imp.cpp:1:0: > imp/imp.hpp:19:19: fatal error: zmq.hpp: Datei oder Verzeichnis nicht > gefunden > #include <zmq.hpp> > ^ > compilation terminated. > > Das ganze auf Opensuse 42.2 und gcc6. Auf FreeBSD war zeromq-cpp separat vom allgemeinen zeromq zu installieren. Vielleicht ja bei Opensuse auch?
Jörg W. schrieb: > Auf FreeBSD war zeromq-cpp separat vom allgemeinen zeromq zu > installieren. > Vielleicht ja bei Opensuse auch? Unter opensuse sollte das cppzmq-devel Paket installiert werden, doch unter Leap 42.2 gibt es das nicht, oder heisst anders. Gruß, Frank
Nachdem ich noch die Binutils-Gold installiert habe, lande ich bei ... Wshadow -std=c++14 -O3 pool-mgr/pool_notebook.cpp -o pool-mgr/pool_notebook.o pool-mgr/pool_notebook.cpp: In function ‘void horizon::send_msg(zmq::socket_t&, horizon::PoolUpdateStatus, const string&)’: pool-mgr/pool_notebook.cpp:826:30: error: no matching function for call to ‘zmq::message_t::message_t(horizon::pool_update_msg_t*&, size_t&)’ zmq::message_t zmsg(msg, sz);
Uwe B. schrieb: > Nachdem ich noch die Binutils-Gold installiert habe, lande ich bei Hmm, das gab's wohl damals noch nicht. Ich hab gerade mal was gepushed, damit's auch ohne diesen Konstruktor funktioniert.
Danke, jetzt kompiliert es unter Leap 42.2 und 42.3 durch.
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
Jörg W. schrieb: > Lukas K. schrieb: >> Uwe B. schrieb: >>> kann man den benötigten Kompiler über eine Umgebungsvariable setzen. >> >> Mal ne frage in die Runde: Müsste da nicht eigentlich CXX verwendet >> werden? > > Ja, wäre sinnvoll. Da fällt mir ein: du müsstest lediglich das Makefile so umbauen, dass ${CXX} benutzt wird und nicht ${CC}. Die beanstandete Zeile kann dann komplett entfallen, da die Voreinstellung für CXX "c++" ist, was auf einem Linux typischerweise ein Symlink auf g++ ist. Ohne explizite Zuweisung von CXX im Makefile wiederum kann man es immer übers Environment überschreiben.
Wenn ich im angehängten äußerst simplen Mini-"Projekt" (ein R und ein C, nur an einer Stelle verbunden) versuche, mit "dt" einen neuen Track zu zeichnen, der einen Knotenpunkt auf dem existierenden hat (startend auf Pin2 von R?, mithin eine Netz-Kollision), und ich zeichne von da weiter, dann crasht es beim Drücken der rechten Maustaste mit:
1 | unhandled exception (type: std::exception) in signal handler: |
2 | what: map::at |
3 | |
4 | end proc 6243 |
5 | exit stat 133 |
:
Bearbeitet durch Moderator
Jörg W. schrieb: > Ohne explizite Zuweisung von CXX im Makefile wiederum kann man es > immer übers Environment überschreiben. https://github.com/carrotIndustries/horizon/blob/master/Makefile#L1 Sollte doch eigentlich auch mit "?=" funktionieren? Jörg W. schrieb: > mit "dt" einen neuen Track > zu zeichnen Wozu? Benutzen willst du eigentlich "Route Track Interactive" (x), das macht keine DRC-Fehler, etc. Aber ja, abstürzen sollte es nicht.
Lukas K. schrieb: > Jörg W. schrieb: >> Ohne explizite Zuweisung von CXX im Makefile wiederum kann man es >> immer übers Environment überschreiben. > > https://github.com/carrotIndustries/horizon/blob/master/Makefile#L1 > Sollte doch eigentlich auch mit "?=" funktionieren? Ja, aber diese Zuweisung braucht man eben gar nicht, wenn man ${CXX} zum Compilieren benutzt (machst du ja inzwischen), denn die Variable CXX ist passend voreingestellt. Allerdings heißen die Optionen dazu natürlich dann auch CXXFLAGS, nicht CFLAGS. > Jörg W. schrieb: >> mit "dt" einen neuen Track >> zu zeichnen > > Wozu? Weil ich überhaupt erstmal die Kommandos kennenlernen wollte. > Benutzen willst du eigentlich "Route Track Interactive" (x), das > macht keine DRC-Fehler, etc. OK, hatte ich schon gedacht. > Aber ja, abstürzen sollte es nicht. Yep, das war mein einziger Punkt hierbei. Stacktrace kann ich liefern, aber der ist ziemlich nichtssagend (finde ich).
Gute Nachrichten für die Benutzer von nicht-tiling-Fenstermanagern: Horizon speichert nun die Position von Fenstern. Jörg W. schrieb: >> Aber ja, abstürzen sollte es nicht. > > Yep, das war mein einziger Punkt hierbei. Ist repariert.
Lukas K. schrieb: > Gute Nachrichten für die Benutzer von nicht-tiling-Fenstermanagern: > Horizon speichert nun die Position von Fenstern. Zwar nicht sonderlich wichtig für mich, aber kann bestätigen, dass es funktioniert (fvwm2). > Jörg W. schrieb: >>> Aber ja, abstürzen sollte es nicht. >> >> Yep, das war mein einziger Punkt hierbei. > > Ist repariert. Auch das klappt, danke! Habe mir mal den Gerber-Output angesehen. Wenn man ganz unbedarft einfach auf "Generate" drückt, bekommt man eine Ladung Dateien mit den Namen ".gbl", ".gbo", ".txt" usw. Richtig, das wurde vorher auch so angezeigt – ich finde es aber trotzdem verwirrend. Irgendwie sollte in der Voreinstellung da meiner Meinung nach der Projektname als Dateinamens-Teil vorgegeben sein, und der Rest dann nur als Suffix benutzt. Die einzige Möglichkeit, den Nicht-Suffix-Anteil für alle generierten Dateien zugleich zu ändern, hat man derzeit mit dem "Präfix"-Feld. Weiß nicht, ob das so gedacht war. Wenn, dann fände ich es gut, wenn alles, was man in dieses Eingabefeld tippt, auch in den Dateinamen automatisch mit auftaucht, und natürlich dass dieses Feld dann mit dem Projektnamen vorbelegt ist. Für Lagen (oder Bohrungsgruppen), die aktuell keine Daten enthalten, sollten m. E. auch keine Dateien erzeugt werden. Ansonsten meckert bspw. gerbv, dass es damit jetzt nichts anfangen kann, weil es vermeintlich RS-274-D-Dateien wären und sowas. Das Nichtgenerieren dieser Lagen könnte man ja unten im Statusfenster dokumentieren. Schließlich hatte ich im Layout noch so eine sinnlose Struktur drin, wie oben im Screenshot gezeigt: ein Leiterzug ohne Breite, der daraus entstanden war, dass da einfach kein Netz definiert ist, welches man hätte routen können. Während die 3D-Vorschau diese Linie ordentlich ausblendet, taucht sie in der Gerberlage auf. Bin mir noch nicht ganz schlüssig, wie man sinnvoll damit umgeht. Vielleicht sollte man einfach in Kupferlagen keine Linien mit einer Breite von 0 zulassen, sondern generell die DRC-mäßige Mindestbreite setzen, auch wenn es jetzt kein Netz dafür gibt? (Wenn du für irgendwas lieber Patches sehen würdest als Prosa, kannst du mir das gern sagen. Ich würde dann versuchen, was zu basteln.)
:
Bearbeitet durch Moderator
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 …
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
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
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...
Bernd W. schrieb: > Aber die lässt sich nicht starten. > Auch nicht aus einer Konsole.
1 | ./horizon-prj-mgr |
Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis. Ich hab's im Wiki mal angepasst.
Lukas K. schrieb: > Jörg W. schrieb: >> Hast du eigentlich Ambitionen, das alles auch auf MacOS lauffähig >> zu bekommen? > > Für Quartz gibt es (noch) keinen GdkGLContext. Wenn es den gibt, sollte > dem nichts im Wege stehen. Davon abgesehen, dass für Richard Stallman Apple der historische „Hauptfeind“ ist, so recht verstehe ich deren Policy da nicht. Im Jahr 2014 postet jemand offenbar zumindest teilweise funktionable Patches für Quartz: https://mail.gnome.org/archives/gtk-devel-list/2014-November/msg00017.html Im Jahr 2015 schaffen sie es dann gerade mal, eine “non-implementation” zu committen: https://mail.gnome.org/archives/commits-list/2015-May/msg01780.html > Jörg W. schrieb: >> Für Lagen (oder Bohrungsgruppen), die aktuell keine Daten enthalten, >> sollten m. E. auch keine Dateien erzeugt werden. > > Einige Hersteller geben an, dass sie gerne jede Lage hätten, auch wenn > sie leer ist. OK. > Jörg W. schrieb: >> Die einzige Möglichkeit, den >> Nicht-Suffix-Anteil für alle generierten Dateien zugleich zu ändern, >> hat man derzeit mit dem "Präfix"-Feld. Weiß nicht, ob das so gedacht >> war. > Ja Wenn ich mir das nochmal ansehe und ein wenig drüber nachdenke, würde ich das Layout etwas anders organisieren: Erstens linke und rechte Seite tauschen. Dann stehen Verzeichnisname und Dateiname auf der linken Seite. Das Feld "Prefix" würde ich in "Base Filename" umbenennen, die Beschriftung "Filename" in "Suffix". Ich denke, damit ist es dann eindeutig, wie sich die endgültigen Namen zusammensetzen, und dieser Vorschlag: >> Wenn, dann fände ich es gut, wenn alles, was man in dieses >> Eingabefeld tippt, auch in den Dateinamen automatisch mit auftaucht, >> und natürlich dass dieses Feld dann mit dem Projektnamen vorbelegt >> ist. … ist hinfällig. > Ok, Projektname als Vorbelegung beim Erzeugen eines neuen Projektes ist > drin. Die Idee mit dem zweiteiligen Dateinamen war, wirklich jedem > Fertigerwunsch gerecht werden zu können und nicht den Projektnamen für > jedes Layer einzeln eingeben zu müssen. Das ist durchaus sinnvoll. Das bringt mich drauf: diese Dateinamensendungen sind bei Gerber ja alles andere als standardisiert. Die Endungen, die du jetzt als Voreinstellung hast, sind die, die bspw. Altium benutzt. Andere Hersteller könnten da andere Vorlieben haben. In Zeiten, da die Dateinamenswelt nicht mehr aus 8+3 besteht, kann man ja auch Endungen wie .top oder .bottom benutzen statt kryptischer .gbt / .gbl. Das alles sowie die Details der generierten Dateien (Inch/Millimeter, Zahl der Dezimalstellen, Unterdrückung führender oder abschließender Nullen) ist typischerweise sehr spezifisch für einzelne Fertiger, auch wenn sich da allmählich mehr Toleranz und automatische Erkennung breit macht. Sowas müsste man eigentlich in einem “CAM Batch” als Voreinstellung hinterlegen können. Das eilt aber ganz gewiss nicht. > Jörg W. schrieb: >> Vielleicht sollte >> man einfach in Kupferlagen keine Linien mit einer Breite von 0 >> zulassen, sondern generell die DRC-mäßige Mindestbreite setzen, auch >> wenn es jetzt kein Netz dafür gibt? > > Im DRC wird das dann auch beanstandet, dass der Track dünn ist. Hätte ich auch erwartet :), den hatte ich nur für die Spielerei nicht laufen lassen. > Tracks > ohne Netz sollten ohnehin zukünftig einen DRC-Fehler geben. Finde ich schwierig: was ist der Unterschied zwischen einer Linie, die ich um Kupfer ziehe und bspw. einem Text? Der hat auch kein Netz. Einen DRC-Fehler sollte er nur bei Abstandsverletzung bringen. Eine Warnung wäre aber OK. > Jörg W. schrieb: >> Offtopic: kann man das Look&Feel von Gtk3 eigentlich von diesem >> "Tablet"-Aussehen irgendwie auch auf "normal" trimmen? > > Das Aussehen von Gtk3 ist vollständig durch CSS anpassbar. Andere Themes > gehen vielleicht ein wenig sparsamer mit padding um... OK, muss ich mir mal ansehen. Das Aussehen hatte mich schon gestört, als Evince als eines der wenigen Gtk-Programme, die ich sonst so habe, auf Gtk3 gewechselt ist.
Wenn Text kein Netz ist, dann gibts aber Krach wenn zwei verschiedene Netze von außerhalb den Buchstaben überkreuzen. Die würden dann über diesen Buchstaben bzw. Textstring kurzgeschlossen. Entweder der Text wird ein Netz (möglicherweise mit speziellen Namen), oder Text muß in der DRC extra behandelt werden, also eigene Regeln zu allen anderen Objekttypen bekommen. Was natürlich wegen O**2 rechenintensiv ist.
Hallo Lukas. Lukas K. schrieb: >> Aber die lässt sich nicht starten. >> Auch nicht aus einer Konsole. > >
1 | > ./horizon-prj-mgr |
2 | > |
> > Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis. > Ich hab's im Wiki mal angepasst. <vor stirn patsch> Das wird es vermutlich gewesen sein. Irgendwie war ich wohl zu unkonzentriert. Ich werde es mal probieren, wenn ich heute Nachmittag wieder zu Hause bin. Danke für Deinen Hinweis. Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.l02.de
:
Bearbeitet durch User
Jörg W. schrieb: > Wenn ich mir das nochmal ansehe und ein wenig drüber nachdenke, > würde ich das Layout etwas anders organisieren: Hört sich sinnvoll an, mal drüber nachdenken. Jörg W. schrieb: > Die Endungen, die du jetzt als > Voreinstellung hast, sind die, die bspw. Altium benutzt. Die Motivation war mehr, dass die ganzen billigen Fertiger (mindestens Seeedstudio, Elecrow, OSHPark) die Protel-Endungen haben wollen. Ist ja aber auch nur die Vorbelegung. Jörg W. schrieb: > Das alles sowie die Details der generierten Dateien (Inch/Millimeter, > Zahl der Dezimalstellen, Unterdrückung führender oder abschließender > Nullen) ist typischerweise sehr spezifisch für einzelne Fertiger, > auch wenn sich da allmählich mehr Toleranz und automatische Erkennung > breit macht. Genau darum habe ich diese Einstellungen erstmal weggelassen. Wenn mir jemand einen Fertiger zeigt, der mit Metrisch, 6 Stellen hinterm Komma ohne führende Nullen nicht zurecht kommt, bau' ich da noch Einstellungen dazu. Jörg W. schrieb: > Finde ich schwierig: was ist der Unterschied zwischen einer Linie, > die ich um Kupfer ziehe und bspw. einem Text? Tracks, Linien und Texte sind verschiedene Dinge und werden im DRC auch anders behandelt.
Lukas K. schrieb: > Die Motivation war mehr, dass die ganzen billigen Fertiger (mindestens > Seeedstudio, Elecrow, OSHPark) die Protel-Endungen haben wollen. Ist ja > aber auch nur die Vorbelegung. Hast du eigentlich (oder wer anders) schon mal eine Platine fertigen lassen? Spiele mit dem Gedanken, mal mein Projekt bei Elecrow fertigen zu lassen um zu sehen was raus kommt ;-) Was anderes: Zu Kontrollzwecken wäre auch eine (konfigurierbare) Druckerausgabe nicht schlecht. Es soll auch noch "Bastler" geben, die selbst ätzen. Ich z.B. lege gerne mal die realen Bauteile auf einen Ausdruck, bevor ich was bestelle, hätte dabei aber gerne Löcher in den TH Pads. Gut, man könnte als Workaround die Gerber Dateien mittels gerbv ausdrucken.
Nachtrag: Bernd W. schrieb: >> Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis. >> Ich hab's im Wiki mal angepasst. > > <vor stirn patsch> Das wird es vermutlich gewesen sein. Irgendwie war > ich wohl zu unkonzentriert. > > Ich werde es mal probieren, wenn ich heute Nachmittag wieder zu Hause > bin. Das war es leider nicht. Aber da sind noch andere merkwürdige Dinge. Ich such mal weiter. Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.l02.de
Bernd W. schrieb: > Nachtrag: > > Bernd W. schrieb: > >>> Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis. >>> Ich hab's im Wiki mal angepasst. >> >> <vor stirn patsch> Das wird es vermutlich gewesen sein. Irgendwie war >> ich wohl zu unkonzentriert. >> >> Ich werde es mal probieren, wenn ich heute Nachmittag wieder zu Hause >> bin. > > Das war es leider nicht. Aber da sind noch andere merkwürdige Dinge. > Ich such mal weiter. > > Mit freundlichem Gruß: Bernd Wiebus alias dl1eic > http://www.l02.de Hallo Bernd, ich habe hier einen Laptop mit zu alter Grafikkarte. Da startet zwar das erste Fenster und auch das zweite Fenster lässt sich anwählen, aber bei klicken auf "Board" tut sich nichts. Mit zu alten Grafikkarte funktioniert das Boardlayout von horizon nicht. Auf meinen Rechnern mit neuerer Grafikkarte habe ich dieses Problem nicht. Hast du genau das Problem oder erscheint bei dir gar kein Startbildschirm?
:
Bearbeitet durch User
Lukas K. schrieb: > Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis. > Ich hab's im Wiki mal angepasst. Nun, da gibt's durchaus noch eine Reihe ganz anderer Probleme. Ich hatte mir mal die "horizon-2017-11-21-0215.zip" heruntergeladen und versucht, dort irgend etwas zu starten. Ergebnisse: 1. libgio-2.00-0.dll wird vom Virenscanner als IDP.Generic erachtet und geblockt. 2. der "horizon-pool-mgr.exe" läßt sich zwar starten, aber außer einem leeren Fenster hat er nix aufzuweisen. Mit "Open" könnte man ja irgend ein "pool.json" laden - vorausgesetzt, man hätte sowas. In der Distri ist jedenfalls kein *.json enthalten. Erwartest du, daß ein Interessent so eine Datei vorhält? 3. auch "horizon-prj-mgr.exe" läßt sich starten, aber dort ist es fast das Gleiche wie zuvor: "No pools set up, You haven't set up any pools, add some in the preferences dialog...OK". Natürlich enthält die Distri auch kein "*.hprj" und in den Preferences ist's das Gleiche wie im vorigen Punkt, es fehlt am "pool". 4. alle anderen *.exe sind nicht startbar. So mein Freund, es ist wohl doch so, wie ich es bereits sehr viel weiter oben angedeutet habe: Während du dich mit tausenderlei "höheren" Details befaßt, fehlt es ganz krass an den simplen Fundamenten. Ich hätte erwartet, daß man als Benutzer zumindest die Chance hätte, das System erstmal irgendwie aufzusetzen, so daß es auch läuft und einen nicht vor ein zu nix brauchbares fast leeres Fenster setzt. Die penetrante und durch nichts lösbare Nachfrage nach dem ominösen Pool verhindert zuverlässig, daß man mit deinem Programm irgendwas beginnen kann. Erwarte bitte nicht, daß irgend ein Interessent eine derartige pool.json vorrätig hat. Entweder lieferst du eine derartige Datei als quasi Standard mit der Distri aus, oder du generierst per Menüpunkt "Neuer Pool" eine derartige Datei, sonst wird nix draus. Die Folge ist dann nämlich, daß dein Programm nach etwa drei Minuten wieder restlos von der Platte geputzt und abgehakt ist. Ist sowas deine Intention? Ich hatte es dir schon einmal gesagt, daß ganz am Anfang das Ausdenken, Formulieren und Festschreiben der Grundfunktionalität steht, sonst kommt man alsbaldigst in Teufels Küche. Du bist grad drauf und dran, so ziemlich ähnliche Fehler zu begehen wie die Kicad-Leute. Also nochmal: zu allererst die Fundamente und dann der Rest des Hauses - und der Innenausbau kommt nach dem Dach. W.S.
Hallo W. S., das Programm horizon hat richtig Potential das neue Standardprogramm fuer die Privatanwender zu werden. Lukas kennt sich sowohl mit Hardware, PCB-Layout und mit Software aus. Deshalb habe ich da größtes Vertrauen, dass das Programm ein großer Wurf wird. Ich gebe zu, dass der Einstieg eine gewisse Hürde darstellt. Deshalb habe ich mal eine Anleitung geschrieben und ein paar screenshots dazu gemacht. Siehe nachfolgender Text. 1. Ein beliebiges Verzeichnis anlegen, z. B. C:\horizon. Das Ganze natürlich außerhalb von C:\Program .. 2. Windows Version herunterladen https://github.com/carrotIndustries/horizon/wiki/Getting-started -> 1.png Uuterhalb "Windows" auf "here" klicken." Da landet man dann hier: http://0x83.eu/horizon-zip/ Den zip-file in dem Verzeichnis C:\horizon speichern und dort auspacken - "unzip here". Das legt dann ein Unterverzeichnis horizon an. In dem sind die exe-Dateien. Damit sieht das so aus: C:\horizon\horizon 3. Pool laden. https://github.com/carrotIndustries/horizon/wiki/Getting-started "Get the pool" "download zipped pool" klicken. horizon-pool-master.zip in C:\horizon speichern. Auspacken mit "unzip here". Damit hat man ein Unterverzeihnis C:\horizon\horizon-pool-master 4. Example Project laden https://github.com/carrotIndustries/horizon/wiki/Getting-started Ziemlich unten auf der Webseite ist Example project "test project" klicken https://github.com/carrotIndustries/horizon-test-project "Clone or download" klicken "Download ZIP" klicken und in C:\horizon speichern. horizon-test-project-master.zip auspacken mit "unzip here". Damit hat man ein Unterverzeihnis mit Schaltplan und Layout. C:\horizon\horizon-test-project-master 5. Programm starten Mit dem Explorer nach C:\horizon\horizon gehen. horizon-prj-mgr.exe starten -> 2.png Links oben of das Symbol klicken und dann weiter mit "Preferences" -> 2a.png Ein neues Fenster geht auf -> Add pool klicken -> 2b.png Jetzt die .json Datei aus dem Verzeichnis "C:\horizon\horizon-pool-master" waehlen -> 2c.png OK klicken -> 2d.png In dem kleinen Fenster "Preferences" auf x klicken." -> 2e.png Jetzt sind wir wieder im Fenster wie beim Start - 2e.png "Open" klicken" um das Beispielprojekt zu waehlen, C:\horizon\horizon-test-project-master\pic32-eth.hprj -> 3.png Zum Schluss "Open" klicken in dem Fenster -> 3.png Jetzt sieht das Fenster so aus -> 4.png Hier kann man jetzt den Schaltplan(Top Schematic) und das Layout(Board) laden. Den 3D View kann man aus dem PCB-Layout starten. Gruß, Helmut
:
Bearbeitet durch User
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.
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.
Abdul K. schrieb: > Sowas wie ne Batch-Datei wäre schon schön. Den Pool muss man nur einmal runterladen, danach braucht man sich darum nicht mehr kümmern. Dass das derzeitige Pool-Konzept nur ein Anfang ist, hatte Lukas ja schon geschrieben. An der Stelle wird sich also ohnehin nochmal was ändern. So schlecht dokumentiert hat er das alles gar nicht, steht halt in seinem Wiki. Da habe ich schon viel mehr Software erlebt, bei denen die Doku nur aus .cpp-Dateien bestand.
Sicher, nur du bist halt damit den ganzen Tag beschäftigt. Morgens klebt schon diverses C++ an der Kaffeetasse. Andere wollen das Programm nur einsetzen.
Abdul K. schrieb: > Andere wollen das Programm nur einsetzen. Naja, siehe Beitrag drüber: so weit ist es einfach noch nicht. Im Moment ist das praktisch nur was für Leute, die da bei der Entwicklung auch (zumindest passiv) mitmachen möchten. Das Teil wirft mit diversen Meldungen um sich, und es kann hie und da schon auch mal 'ne unhandled exception geben. Wenn man das berichtet, stellt Lukas es ab, aber wertvolle Arbeit würde ich damit nur mit ganz viel zwischendrin Speichern machen wollen im derzeitigen Stadium.
Abdul K. schrieb: > Sicher, nur du bist halt damit den ganzen Tag beschäftigt. Morgens > klebt > schon diverses C++ an der Kaffeetasse. > Andere wollen das Programm nur einsetzen. Hallo Abdul K., Man muss nicht selber kompilieren, wenn man einen WIN-PC hat. Lukas stellt sehr aktuelle exe-Dateien für Windows bereit. Das ist schon mal ein Superservice. https://github.com/carrotIndustries/horizon/wiki/Getting-started Get Horizon Windows "here" PS: Darauf musste man bei Gnu-Octave z. B. zehn Jahre warten. Achtung, nur weiterlesen, wenn man selber unter WIN kompilieren will. Die "build"-Umgebung in Windows lässt sich leichter installieren als die für Linux. Lukas hat das genau auf seiner Webseite beschrieben. Zusätzlich habe ich hier in einer meiner Antworten die notwendigen Kommandos zum erzeugen eigener WIN-exe zusammengefasst. Anleitung zum Kompilieren der WIN-exe auf einem WIN-PC. Einmalig mysys2 installieren. Anleitung siehe Webseite von Lukas. https://github.com/carrotIndustries/horizon/wiki/Building-horizon-on-Windows --- WIN version erzeugen In WIN mysys2 starten. Ein Terminal geht auf. In dem Terminal wird dann gearbeitet. #Im home/user Verzeichnis von mysys2 ein Verzeichnis anlegen. $ mkdir horizonxyz #Vom home-Verzeichnis in dieses Verzeichns wechseln. $ cd horizonxyz #Die Source-Files herunterladen. $ git clone http://github.com/carrotIndustries/horizon #In das von clone angelegte Unterverzeichnis horizon wechseln. $ cd horizon #Kompilieren mit allen logischen cores des Prozessors damit es schnell geht. Beispiel CPU mit 4 cores + hyperthreading -> -j 8. $ make -j 8 #Die WIN-Version im Ordner "dist" erzeugen. $ ./make_bindist.sh Im Unter-Ordner "dist" ist dann ein Verzeichnis horizon. Das ist das Programmverzeichnis für die Windows-Version.
:
Bearbeitet durch User
Wie starte ich einen neuen Pool? Gibt's dafür ein Tool? Wenn ich im Pool ein Symbol editiere (wird vermutlich bei anderen Elementen nicht anders sein), hätte ich außer "Save" auch gern ein "Save As …", damit ich ausgehend von einem vorhandenen Element ein neues ableiten kann.
Jörg W. schrieb: > Wenn du dich im Thread umsiehst, wirst du feststellen, > dass Lukas konstruktiver Kritik gegenüber durchaus sehr > aufgeschlossen ist. Ja, durchaus. > Auf Kritik der Art „du bist völlig auf dem Holzweg“ wird > er jedoch sehr sicher verzichten können, da brauchst du dir > also auch nicht erst die Mühe machen, sowas aufzuschreiben. Das ist sicher auch richtig -- das heißt aber nicht, dass diese Kritik zwingenderweise sachlich falsch ist. Ich hätte es auch wichtiger gefunden, vorhandene Software besser und interoperabler zu machen, als ein weiteres Komplettpaket zu schaffen -- aber es lohnt nicht, das dauernd wieder aufzuwärmen.
Ah Abstürze. Achgott, PCs eben. Ich hatte ja oben mal was über RUN-EDS anno 1992 geschrieben. Also damals ist diese Software so alle 2h abgestürzt. Und es gab einen speziellen abundzu Fehler, wo das Projekt irreparabel zerstört wurde. Das heißt, es wurde die Datei zerschreddert ohne sofortige Auswirkung. Irgendwann hat sich dieser Fehler dann offenbart und alles dazwischen an Arbeit reingesteckte, war damit futsch. Da nützt also auch kein Backup! Das MacOS ging auch so 2-mal pro Tag hops... Auf einem 19" Monitor konnte man beim Scrollen zugucken. So war das damals. Nur mal so erwähnt für die jungen Hüpfer. Die letzten Versionen RUN-EDS von 2001 waren recht stabil und hatten kaum Fehler. Das MacOS lief da bereits rockstabil. Und nochwas zu Bartels Autorouter: 2001 hatten wir die letzten Vergleichstest zum Specctre-Router gemacht. Der war besser als der Bartels. Und lief schneller auf billigerer Hardware, da Windoof-PC.
Possetitjel schrieb: > Ich hätte es auch wichtiger gefunden, vorhandene Software > besser und interoperabler zu machen, als ein weiteres > Komplettpaket zu schaffen Mag sein. Andererseits – wenn Lukas für sich erkannt hat, dass die vorhandene Software einfach mal eine „verfahrene Kiste“ ist (was ja letztlich auch W.S. für Kicad immer mal wieder behauptet, und was Stefan Salewski für gEDA so konstatiert hat), dann kann die Auflösung „Fang von vorn an und mach es besser“ durchaus die richtige sein. Kommt hinzu, dass Lukas es offenbar vom Arbeitsumfang tatsächlich in der Lage ist zu stemmen.
Jörg W. schrieb: > hätte ich außer "Save" auch gern ein "Save As …" Da fällt mir gerade auf: Alle Objekte im Pool Manager haben auch einen "Create"-Button – nur Symbole nicht. Irgendwie muss Lukas ja seine Symbole wohl auch angelegt haben.
Abdul K. schrieb: > Und nochwas zu Bartels Autorouter: 2001 hatten wir die letzten > Vergleichstest zum Specctre-Router gemacht. Der war besser als der > Bartels. Und lief schneller auf billigerer Hardware, da Windoof-PC. Wobei ich BAE seit 2001 unter FreeBSD benutze (die Linux-Version), ist also nicht so, dass sie originär Mac-Edelhardware benötigt hätten. ;) Zu anderen Autoroutern kann ich nicht so viel sagen.
Das besondere am Mac war die Software, nicht die Hardware. Naja, die Kombination in manchen Bereichen, z.B. die Maus kombiniert mit vollgrafischer Oberfläche. Allerdings hatten die ersten Macs schon echte EMV-Designs. Das habe ich bei den Windows-Kisten bzw. DOS IBM-PC ziemlich vermißt. Ok, falscher Thread :-)
Helmut S. schrieb: > Deshalb habe ich mal eine Anleitung geschrieben und ein paar screenshots > dazu gemacht. Siehe nachfolgender Text. Cool, danke. Damit habe ich es bei mir fix zum Laufen bekommen - bin ja neugierig und bewundere, was Lukas treibt. Aur meiner Büchse (i7-3770, 4GB RAM, Win 7, SSD) braucht es gefühlte 10 Sekunden für den Start. Anschließend sieht es dann etwas seltam aus - ich sehe zwar alle Bedienelemente, aber weder Schaltplan noch Layout. Grafikkarte ist eine Radeon HD3600 - ziemlich alte Gurke, lt. Wikpedia kann sie aber OpenGL 3.3. Windows behauptet, der Treiber sei aktuell. Das prüfe ich aber erst morgen, es ist Zeit fürs Bett. Fehlermeldungen wirft Horizon (2017-11-23-1801, das nenne ich mal bleeding edge) keine. Gibt es irgendwo ein Logfile?
Max G. schrieb: > Grafikkarte ist eine Radeon HD3600 - ziemlich alte Gurke, lt. Wikpedia > kann sie aber OpenGL 3.3. Windows behauptet, der Treiber sei aktuell. > Das prüfe ich aber erst morgen, es ist Zeit fürs Bett. > Ich habe gerade mal diese Version "horizon-2017-11-23-1801.zip" kurz gestartet. Die läuft einwandfrei auf einem PC mit neuerer Grafikkarte (GTX950). Nach meiner Erfahrung geht es ab Nvidia GTX560 und neuer problemlos. Bei einer Nvidia GTX260 geht fast alles bis auf das Füllen der Planes. Auf Rechnern mit Intel-CPU-Grafik läuft horizon auch. Das kann nur also nur an deiner Grafikkarte/Grafikkarten-Treiber liegen. Da hilft wohl nur eine neuere Grafikkarte.
:
Bearbeitet durch User
Jörg W. schrieb: > Da fällt mir gerade auf: Alle Objekte im Pool Manager haben auch einen > "Create"-Button – nur Symbole nicht. Der ist bei den Units, da zu jedem Symbol eine Unit gehört. Symbole sind nicht die Primärquelle für Pins, dazu hat's die Units. Für bessere discoverability hab ich jetzt auch noch einen Knopf bei den Symbols eingebaut. Jörg W. schrieb: > Wie starte ich einen neuen Pool? Gibt's dafür ein Tool? Nein, da Leute dazu motiviert werden sollen, den globalen Pool zu benutzen. Wer seinen eignen Pool (z.B. in einem Unternehmen) haben will, kopiert sich am einfachsten den globalen Pool, löscht alles was nicht gefällt und ändert die UUID in der pool.json > Wenn ich im Pool ein Symbol editiere (wird vermutlich bei anderen > Elementen nicht anders sein), hätte ich außer "Save" auch gern ein > "Save As …", damit ich ausgehend von einem vorhandenen Element ein > neues ableiten kann. Okay, kommt bald, wenn auch wohl als "Duplicate"-Knopf im Pool-Manager. Falls sich wer wundert, weshalb so offensichtlich notwendige Features fehlen: Als Entwickler hat man leider eine etwas verzerrte Sicht auf die Dinge und hat 1000 Einfälle, was man als nächstes bauen könnte. Sowas wie Duplicate war auch mal dabei. Meistens gewinnt dann aber der Spieltrieb und sowas die 3D-Vorschau kommt dabei raus oder man kümmert sich um Details wie unglückliche Auswahl-Boxen. Solche wünsche von anderen Anwendern/Testern helfen mir ungemein Ideen zu priorisieren. Danke an alle! Max G. schrieb: > Aur meiner Büchse (i7-3770, 4GB RAM, Win 7, SSD) braucht es gefühlte 10 > Sekunden für den Start. Anschließend sieht es dann etwas seltam aus - > ich sehe zwar alle Bedienelemente, aber weder Schaltplan noch Layout. Kannst du mal einen Screenshot von dem Malheur machen? Tester schrieb: > Hast du eigentlich (oder wer anders) schon mal eine Platine fertigen > lassen? Spiele mit dem Gedanken, mal mein Projekt bei Elecrow fertigen > zu lassen um zu sehen was raus kommt ;-) Nicht dass ich wüsste. Wenn du magst nur zu, aber sei nicht böse mit mir, wenn's nichts wird ;) > Was anderes: Zu Kontrollzwecken wäre auch eine (konfigurierbare) > Druckerausgabe nicht schlecht. So wie ich jetzt drüber nachdenke eigentlich recht wenig Aufwand mit cairo...
Max G. schrieb: > Fehlermeldungen wirft Horizon (2017-11-23-1801, das nenne ich mal > bleeding edge) keine. Die werden auf der Console rausgeworfen, also std::cerr << "irgendwas". Müsstest du unter Windows wohl direkt aus einem cmd.exe heraus starten. Fehlermeldungen kommen hier auch nicht sooo viele (wenn ich nicht gerade mal in eine Exception trete ;), aber es gibt massenhaft Debugausgaben, bis hin zu SQL statements, die beim Ausfüllen des Suchfeldes angezeigt werden. Irgendwas solltest du da also schon sehen. :)
1 | SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name, GROUP_CONCAT(tags.tag, ' '), parts.filename FROM parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages ON packages.uuid = parts.package WHERE parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid ORDER BY parts.MPN COLLATE naturalCompare ASC |
2 | SELECT parts.uuid, parts.MPN, parts.manufacturer, packages.name, GROUP_CONCAT(tags.tag, ' '), parts.filename FROM parts LEFT JOIN tags ON tags.uuid = parts.uuid LEFT JOIN packages ON packages.uuid = parts.package WHERE parts.MPN LIKE ? AND parts.manufacturer LIKE ? AND (parts.entity=? or ?) GROUP BY parts.uuid ORDER BY parts.MPN COLLATE naturalCompare ASC |
3 | create proc |
4 | exit stat 0 |
Noch ein Nachtrag: Bernd W. schrieb: > Nachtrag: >>> Ohne das ./ sucht die Shell in $PATH und nicht im aktuellen Verzeichnis. >>> Ich hab's im Wiki mal angepasst. >> >> <vor stirn patsch> Das wird es vermutlich gewesen sein. Irgendwie war >> ich wohl zu unkonzentriert. >> >> Ich werde es mal probieren, wenn ich heute Nachmittag wieder zu Hause >> bin. > > Das war es leider nicht. Aber da sind noch andere merkwürdige Dinge. > Ich such mal weiter. Schande über mich. Das war ich selber. Ein Klassiker, per remote auf dem falschen Rechner und das auch nicht mitkriegen. :( Nun startet das Programm, bricht aber mit einer Fehlermeldung ab: (horizon-prj-mgr:1424): glibmm-ERROR **: unhandled exception (type std::exception) in signal handler: what: unable to open database file Trace/Breakpoint ausgelöst Ich probier mal ein pull, ob es da was neues gibt. So, neue Daten, neuer build, aber gleiches Ergebnis: (horizon-prj-mgr:3274): glibmm-ERROR **: unhandled exception (type std::exception) in signal handler: what: unable to open database file Trace/Breakpoint ausgelöst Wenn mit der "database" der pool gemeint ist, den habe ich auch auf der Platte. Nur wie teile ich horizon mit, wo der ist? Bisher konnte ich ja noch nicht allzu viel an Ergebnis sehen, aber alleine die Menge an Sourcecode: "Hut ab" Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.l02.de Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.l02.de
Hallo Bernd, ließ doch mal meine vorletzte Message - die mit den vielen Screenshots. Da steht drin wie man den Pool hinzufügt. Das muss man nur einmal machen. Helmut
Bernd W. schrieb: > Nur wie teile ich horizon mit, wo der ist? Mit dem Pool Manager. Wundert mich nur, dass er ohne irgendeinen registrierten Pool überhaupt startet. Das hat er bei mir abgelehnt.
Bernd W. schrieb: > (horizon-prj-mgr:1424): glibmm-ERROR **: > unhandled exception (type std::exception) in signal handler: > what: unable to open database file Ist repariert, das Problem war folgendes: Zum Speichern der Fenstergrößen benutze ich auch SQLite und das erwartet logischerweise, dass es das Verzeichnis, in dem die Datenbank liegt schon existiert. Bis jetzt ist das nur keinem aufgefallen, da alle das Verzeichnis schon hatten.
Man brauch SQlite zur Speicherung von 4 32Bit Zahlen? Da würde mich mal interessieren, wie man ohne Starten des Programms die Koordinaten eines Fensters per Hand ändert. Wie aufwändig ist das? Was muß man tun? Rein interessehalber. Normalerweise ist das doch in einer ini-Datei oder schlimmer noch in der Registry.
Abdul K. schrieb: > Man brauch SQlite zur Speicherung von 4 32Bit Zahlen? Du brauchst zwei Mal 32bit für Fenstergrößen? Respekt. Den Monitor hätte ich auch gerne...
Ich habe keine Ahnung wie MS das vorgibt. Vielleicht sinds auch nur 16bitter.
Abdul K. schrieb: > Man brauch SQlite zur Speicherung von 4 32Bit Zahlen? Macht Dinge einfacher: Je nachdem, was der Anwender macht, können ja auch mehrere Fenster nahezu zeitgleich geschlossen werden und dereb Größen müssen gespeichert werden. Bei einer ini/json-Datei hätte ich über Locking nachdenken müssen, damit das nicht hinfällt, bei SQLite haben schon andere mit mehr Ahnung von der Materie drüber nachgedacht. Der Overhead meinerseits von SQLite verglichen mit einer Datei geht auch gegen null. > Da würde mich mal > interessieren, wie man ohne Starten des Programms die Koordinaten eines > Fensters per Hand ändert. Wie aufwändig ist das? Was muß man tun?
1 | $ sqlite3 .config/horizon/window_state.db |
2 | SQLite version 3.21.0 2017-10-24 18:55:49 |
3 | Enter ".help" for usage hints. |
4 | sqlite> SELECT * FROM window_state; |
5 | prj-mgr|1914|871|1|38|0 |
6 | pool-editor-win-27|762|600|579|286|0 |
7 | imp-symbol|1914|871|1|38|0 |
8 | pool-mgr|1914|871|1|38|0 |
9 | |
10 | sqlite> UPDATE window_state SET width=100 WHERE window='prj-mgr'; |
11 | |
12 | sqlite> SELECT * FROM window_state; |
13 | prj-mgr|100|871|1|38|0 |
14 | pool-editor-win-27|762|600|579|286|0 |
15 | imp-symbol|1914|871|1|38|0 |
16 | pool-mgr|1914|871|1|38|0 |
Alles kein Hexenwerk.
Lukas K. schrieb: > bei SQLite haben schon andere mit mehr Ahnung von der Materie drüber > nachgedacht Genau darin sehe ich auch den Vorteil. SQlite ist einfach stabile Technik, die man nur noch benutzen muss.
Interessant. Ich sehe nur das Problem, wie man das dann repariert wenn was kaputt ist. Bei einer Textdatei ist das oft gut machbar. XML wird schon schwieriger. Gerade eben habe ich einen Vista-Rechner, der partout zu einen bestimmten WLAN AP keine Verbindung aufbauen will. Mann kann die Liste der aktiven APs aufrufen und einen auswählen, und das wars dann auch. Keine Fehlemeldung und der alte AP weiterhin aktiv. Andere Platte rein, geht. Tja, also config defekt. Google bedient. Konfigurationsdateien gibts pro AP. Diese habe ich auch gefunden. Inhalt unlesbar. Dekodiermaske gibts nicht. Bei Windoof alles geheim. In der Registry das gleiche Spiel. Zig Einträge, aber völlig unsichtbar was wo im Bereich WLAN verknüpft ist. DAS IST EINFACH EIN SCHROTTKONZEPT! Das Ende vom Lied: Werde Vista platt machen und Win7 komplett frisch installieren. Nicht nur wegen dem AP, sondern weil eh noch andere Sachen Probleme machen. Selbst der Ersatz der Konfigurationsdatei für diesen speziellen AP von der anderen lauffähigen Platte hat nicht funktioniert.
Hallo, ich hab mal versucht Horizon unter Solus Linux zu kompilieren, und es funktioniert erfreulicherweise out-of-the-box :) Tools installieren:
1 | $ sudo eopkg install git |
2 | $ sudo eopkg install -c system.devel |
3 | $ 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:
1 | $ mkdir -p ~/tmp/horizon |
2 | $ cd ~/tmp/horizon |
3 | $ git clone https://github.com/carrotIndustries/horizon.git |
4 | $ make |
Pool und Testprojekt herunterladen:
1 | $ cd ~/tmp |
2 | $ git clone https://github.com/carrotIndustries/horizon-pool.git |
3 | $ git clone https://github.com/carrotIndustries/horizon-test-project.git |
Starten:
1 | $ ~/tmp/horizon/horizon-prj-mgr |
2 | $ ~/tmp/horizon/horizon-pool-mgr |
Grüße, Ulrich
Ich hätte noch eine Anregung: Wenn man ein Objekt anwählt, kann man ja die Attribute editieren. Wählt man z.B. mehrere Leiterbahnsegmente aus und möchte man bei allen z.B. die Breite ändern, muss man alle durch klicken. Es wäre schön, wenn man z.B. eine Checkbox mit "Apply to all" hätte, so dass nach dem Anwählen der Checkbox die Änderungen für alle Segmente simultan angewendet werden würde.
Klaus R. schrieb: > Es wäre schön, wenn man z.B. eine Checkbox mit "Apply to all" > hätte, so dass nach dem Anwählen der Checkbox die Änderungen für alle > Segmente simultan angewendet werden würde. Das gibt es doch schon, das macht der Knopf mit dem Haken. Ich hab' dem gerade mal noch einen Tooltip spendiert.
Aehm... der "Knopf mit Haken"? Die Haken "tun" bei mir nicht viel. Egal was ich anklicke, es ändert sich nur das als erstes angewähltes Segment. Edit: Ok, hab's kapiert. Erst die Breite für eines ändern, danach den Haken anwählen. Jetzt wird es für alle Angewählten übernommen.
:
Bearbeitet durch User
Lukas K. schrieb: > Kannst du mal einen Screenshot von dem Malheur machen? Gerne. Sieht originell aus, die Kontextmenüs gehen auch. Man sieht nur nichts. Auf der CMD-Konsole kommt nichts an, ist aber unter Windows typisch. Die Ausgabe von GUI-Programmen landet irgendwo im Nirvana und ist nur per Debugger sichtbar.
Max G. schrieb: > Gerne. Sieht originell aus, die Kontextmenüs gehen auch. Man sieht nur > nichts. Seltsam ist ebenfalls, dass an der Stelle, an der normalerweise der Grid-Multiplikator steht, nichts steht. Um Ausagabe auf der Konsole zu bekommen, musst du den horizon-prj-mgr.exe aus einer mingw-Konsole starten. Wenn du dir eh msys2 installierst, installier' dort drin mal gtk: pacman -S mingw-w64-x86_64-gtk3 und starte die gtk3-demo und öffne die OpenGL-Demo. Was passiert da?
Jörg W. schrieb: > Meinst du wirklich, dass du dir mit deinem Geblubber „Freunde“ machst? > > Wenn du dir den Thread mal ansiehst, dann wirst du feststellen, dass > es hinreichend viele Leute gibt, die selbst in dieser Phase durchaus > in der Lage sind, das Dingens zum Laufen zu bekommen. Ach Jörg, ich hab mich an dein unsachliches Geblubber und deine persönlichen Anfeindungen mittlerweile gewöhnt, so daß ich diese zumeist einfach überlese. Wenn was nicht funktioniert, dann sag ich das auch - ob dir das schmeckt oder nicht, ist deine Sache. Ich erwarte ganz schlicht und einfach, daß sowas benutzbar ist, ohne daß man erst Sherlock Holmes spielen muß. Ich werde also eben NICHT nach irgendwelchen fehlenden Teilen im Internet herumsuchen. Punkt. Jörg W. schrieb: > Wie starte ich einen neuen Pool? Gibt's dafür ein Tool? Ach? Sieh mal einer an. Ein paar Beiträge nach deinem obigen Einwurf kommst du auf das gleiche Problem, ja? Ich sag dir eins: Es kommt eben doch auf den vor jeglicher Programmiererei gefaßten, formulierten und gründlich überprüften Entwurf an. W.S.
Jetzt laß die Karottenindustrie einfach mal machen. In einem Jahr ist das bestimmt brauchbar. Ich habe jedenfalls vollsten Respekt! Danach kann Lukas mit dem Transverter TINA nach LTspice Projektfile weitermachen :-)
W.S. schrieb: > Ein paar Beiträge nach deinem obigen Einwurf kommst du auf das gleiche > Problem, ja? Nein, ein völlig anderes. Wie du Lukas' Antwort entnehmen kannst, gibt es das, wonach ich gefragt habe, derzeit schlicht noch nicht. Das liegt aber daran, dass er den zentralen Pool im Moment als Designentscheidung erst einmal so vorgesehen hat. Damit kann ich leben, Würgaround hat er genannt, einen Script, um einen neuen Pool zu erzeugen, könnte ich mir zur Not sicher auch selbst zimmern. > Wenn was nicht funktioniert, dann sag ich das auch Du kommst aber mit der Anspruchshaltung eines „Endkunden“ an und übersiehst geflissentlich, dass sich Horizon derzeit überhaupt nicht an solche richtet. Das hat Lukas in diesem Thread von vornherein klar gemacht, und das steht im Prinzip bereits in der Überschrift. Die Schritte, wie man es zum Laufen bekommt, sind beschrieben. Wenn dir das zu umständlich ist, dann ist das Programm im derzeitigen Zustand einfach mal nichts für dich, aber dann musst du doch auch nicht ständig wieder hier aufschlagen und allen, die es gar nicht hören wollen verkünden, wie schlecht es doch sei.
@Lukas, mal was ganz Nichttechnisches: du solltest deinen Dateien irgendeine Art von Copyright-Header voranstellen. Ohne einen solchen darf man sie ganz formal eigentlich nicht weiterverbreiten.
Lukas K. schrieb: > Jörg W. schrieb: >> Da fällt mir gerade auf: Alle Objekte im Pool Manager haben auch einen >> "Create"-Button – nur Symbole nicht. > > Der ist bei den Units, da zu jedem Symbol eine Unit gehört. Symbole sind > nicht die Primärquelle für Pins, dazu hat's die Units. Hmm, das hatte ich so noch nicht verstanden. Ich hatte gedacht, dass die Units nur das Bindeglied sind, man aber ein und dasselbe Symbol in verschiedenen Units benutzen könnte. > Für bessere > discoverability hab ich jetzt auch noch einen Knopf bei den Symbols > eingebaut. OK, danke. Ich würde die Buttons allerdings tauschen (siehe Patch), denn in allen anderen Tabs ist auch erst "Create", danach "Edit".
Jörg W. schrieb: > Max G. schrieb: >> Fehlermeldungen [...] > > Die werden auf der Console rausgeworfen, also std::cerr << "irgendwas". Wären da nicht std::clog oder std::wclog sinnvoller?
W.S. schrieb: > Ich erwarte ganz schlicht und einfach, daß sowas benutzbar ist, ohne daß > man erst Sherlock Holmes spielen muß. Ich werde also eben NICHT nach > irgendwelchen fehlenden Teilen im Internet herumsuchen. Punkt. Auf der Git-Seite war eine Anleitug, wo man das pool.json herbekommt ... rtfm Außerdem ist die Software noch nicht mal Beta ... Seufz
:
Bearbeitet durch User
Beitrag #5222891 wurde von einem Moderator gelöscht.
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
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
Hallo Lukas, ich hätte gerne die Möglichkeit im Parts-Editor das "Package" zu ändern, z. B. c0603 zu c0603a, weil die Anfoderungen an die Pads(pad stack) nicht bei allen die gleichen sind. Mal möchte der PCB-Hersteller die "solder mask" etwas anders (größer) oder der Platinenbestücker(oder auch ich) möchte etwas besonderes an der "paste-Mask" oder kleinere oder größere Pads. Kannst du das eiunbauen? Gruß Helmut
Helmut S. schrieb: > Kannst du das eiunbauen? Das gibt es schon in anderer Form: Im Board gibt es diese Einstellungen bei der Regel "Parameters". Mit Klick auf "Apply All" werden die Einstellungen dann auf alle Bauteile auf dem Board angewandt. Helmut S. schrieb: > ich hätte gerne die Möglichkeit im Parts-Editor das "Package" zu ändern, > z. B. c0603 zu c0603a, weil die Anfoderungen an die Pads(pad stack) > nicht bei allen die gleichen sind. Das Package ist nur bei Parts änderbar, die nicht von anderen Parts erben, da Package und Pin-Pad Zuordnung geerbt werden.
:
Bearbeitet durch User
Jörg W. schrieb: > Du kommst aber mit der Anspruchshaltung eines „Endkunden“ an und > übersiehst geflissentlich, dass sich Horizon derzeit überhaupt nicht > an solche richtet. Das hat Lukas in diesem Thread von vornherein klar > gemacht, und das steht im Prinzip bereits in der Überschrift. Das ist mir alles von Anfang an klar gewesen - und es geht auch überhaupt nicht um mich selber. Aber sag mal selbst, was aus einem Projekt werden soll, wenn (wie du schreibst) Lukas sich mit seinem Projekt DERZEIT garnicht an Endkunden richtet. Da passiert nämlich ganz leicht genau dasselbe, was ich schon bei Kicad erleben mußte. Nämlich, daß auf weite Strecke das ganze Projekt nur aus Sicht seiner Programmierer vorangetrieben wurde und daß eben dabei an den Endkunden vorbei programmiert worden ist. Je früher man so einen Projektentwurf einem echten Endkunden vorsetzt (oder einem, der zumindest sich bemüht, das Ding aus Anwendersicht mal anzuschauen), desto eher kann man den Gang der Entwicklung noch in die richtige Richtung hinbiegen. Wenn hingegen erstmal viele Pflöcke eingeschlagen und eine Menge Codezeilen geschrieben sind, dann sind Änderungen an der Grundstruktur schmerzhaft, aufwendig oder sogar unmöglich, ohne große Teile des Ganzen wieder einzureißen. Genau deshalb sind solche frühen Tests dringendst notwendig. Verstehst du das jetzt besser? Ich habe aus gutem Grunde immer wieder das Bauen eines Hauses als Gleichnis herangezogen. Eben zuerst die richtigen Fundamente legen, sonst braucht man später die Abrißbirne und den Bagger. W.S.
Hallo Lukas und Joerg. Jörg W. schrieb: > Mit dem Pool Manager. > > Wundert mich nur, dass er ohne irgendeinen registrierten Pool überhaupt > startet. Das hat er bei mir abgelehnt. Hat ja auch nicht gestartet....darum die Fehlermeldungen. ;O) Lukas K. schrieb: > Ist repariert, das Problem war folgendes: Zum Speichern der > Fenstergrößen benutze ich auch SQLite und das erwartet logischerweise, > dass es das Verzeichnis, in dem die Datenbank liegt schon existiert. Bis > jetzt ist das nur keinem aufgefallen, da alle das Verzeichnis schon > hatten. Der Build von gestern hat gestartet, und ich war in der Lage, den Pool einzubinden. Soweit also ok. Leider komme ich erst irgendwann die Woche dazu, mir das näher anzusehen.....und dann natürlich mit einem aktuellen Build Bis jetzt macht es einen guten aufgeräumten Eindruck. Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.l02.de
:
Bearbeitet durch User
Hallo Helmut. Helmut S. schrieb: > 3. Pool laden. > 4. Example Project laden > 5. Programm starten Danke für Deine Quasi Anleitung. Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.l02.de
Hallo Lukas, ich versuche gerade mal einen Pool aufzubauen und dabei eine sinnvolle Vorgehensweise zu finden. Im ersten Schritt habe ich erstmal Units und dazu die passenden Symbole angelegt. Aus denen kann man dann später Entities machen. Die Funktion "Duplicate Unit" ist dabei recht hilfreich. Dupliziert man aber erst das Symbol, steckt man in einer Sackgasse, weil man dem Symbol keine Unit zuordnen kann. Übersehe ich da was? Damit verwand dürfte eine andere Frage sein. Es gibt eine Unit "Generic 2 pin connector", die ist sowohl dem Symbol "Generic 2 pin connector (1x2)" als auch dem Symbol "Generic 2 pin connector (2x1)" zugeordnet. Ich vermute, da wurde ein Symbol dupliziert und dann der Name und das Symbol geändert. Die Unit blieb gleich, denn die ist ja ohnehin nicht änderbar. Was ist die Idee hinter dieser Vorgehensweise? Soll man damit solche Fälle wie das amerikanische und europäische Widerstandssymbol nur einer Unit zuordnen können? Beim Platzieren eines Parts im Schaltplan bekommt man zumindest die Auswahl zwischen diesen beiden, der einen Unit zugeordneten, Symbolen. In diesem Fall tritt übrigens ein Fehler auf. Wenn man die Box zur Auswahl des Symbols mit "Cancel" schließt, dann stürzt der Schaltplan-Editor ab. Nochmal eine positive Rückmeldung: ich baue jetzt seit ca. 2 Wochen fast täglich ein neues Debian-Paket und das klappt zu > 95% immer reibungslos. Manchmal muss ich meinen Patch für das Makefile anpassen, mehr aber nicht. Klasse Leistung. Uwe
Hallo W.S. W.S. schrieb: > Aber sag mal selbst, was aus einem Projekt werden soll, wenn (wie du > schreibst) Lukas sich mit seinem Projekt DERZEIT garnicht an Endkunden > richtet. > > Da passiert nämlich ganz leicht genau dasselbe, was ich schon bei Kicad > erleben mußte. Nämlich, daß auf weite Strecke das ganze Projekt nur aus > Sicht seiner Programmierer vorangetrieben wurde und daß eben dabei an > den Endkunden vorbei programmiert worden ist. Sagmal, Rauchst Du irgendwas? Das soll ein OpenSource Projekt werden! Als solches hat es KEINE KUNDEN. ;O) Das hat für den Anwenden den riesen Vorteil, dass es nicht darauf getrimmt sein muss, die Entscheider zu beeindrucken, die selten auch Anwender sind, sondern es wird von Leuten geschrieben, die selber Elektronikentwicklung machen. Als OS Programm kann es im allgemeinen deutlich praxisorientierter (insbesondere für Kleinanwender) sein, als proprietäre Software, die aus Verkaufsgründen immer auf Eindruck machen schielen muss. ;O) > Genau deshalb sind solche frühen Tests dringendst notwendig. ??? So wie ich das hier verstehe, sind zig Leute gerade mit Testen beschäftigt. WAS ist dein Problem? > Verstehst du das jetzt besser? Ich habe aus gutem Grunde immer wieder das > Bauen eines Hauses als Gleichnis herangezogen. Eben zuerst die richtigen > Fundamente legen, sonst braucht man später die Abrißbirne und den > Bagger. Die Menschheit baut wesentlich länger Häuser als sie CAD Programme schreibt. Insofern besteht bei Häusern sehr viel tradiertes Wissen, wärend bei CAD Programmen eigentlich alle Programme noch irgendwie in einem Experimentierstadium sind. So auch hier, wo ein paar Sachen ausprobiert werden sollen. Wenn Du konkrete Vorschläge hast, dann kannst Du sie bestimmt anbringen, aber was Du machst, ist eine Besinnung auf Grundlagen einfordern, die so überhaupt noch nicht existieren. Mal ganz abgesehen von Deinem etwas aggressiven Tonfall. Niemand startet ein solches Projekt ohne Vorüberlegungen. Selbst wesentlich kleinere Sachen habe ich selber Monate- bis Jahre im Kopf herumgewälzt, bevor ich ein kleines Konzept gemacht habe. So ist Lukas mit Sicherheit nicht dabei, ohne Konzept zu arbeiten. Aber an irgendeinem Punkte muss Schluss sein mit Konzept, und es muss angefangen werden, das ganze Umzusetzten. Weil jedes Konzept kann fatale Fehler enthalten, die erst auffallen, wenn man es anfängt Umzusetzten. Mann könnte also eine Ewigkeit damit verbringen, ein extrem detailiertes und perfektes Konzept aufzustellen, was überhaupt nicht funktioniert. Deine "geforderte" Vorgehensweise ist eher eine Projektverhinderungsstrategie, wenn man es genau sieht. Was ist eigentlich Deine Agenda? Konkrete Vorschläge kommen ja nicht...... Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.l02.de
:
Bearbeitet durch User
Uwe S. schrieb: > Klasse Leistung. Auf FreeBSD 11.x (da kann der Clang native C++14) würde es praktisch aus der Dose heraus bauen. Ich finde das auch eine gute Leistung!
Bernd W. schrieb: >> Genau deshalb sind solche frühen Tests dringendst >> notwendig. > > ??? So wie ich das hier verstehe, sind zig Leute > gerade mit Testen beschäftigt. WAS ist dein Problem? Zu viele Fragen auf einmal :) 1. Das Problem von W.S. ist, dass er eine richtige Frage im falschen (sozialen) Kontext diskutieren will. Er ist ungefähr genauso nervig wie ein überzeugter Veganer auf dem Jahresball der Metzger-Innung: Sachlich vielleicht gar nicht falsch, aber nutzlos, nervtötend, unangemessen. 2. Deine Feststellung, FOS-Software habe keine Kunden (sondern nur Anwender) ist sachlich richtig, geht aber nicht weit genug: Manchmal hat sie nicht einmal "echte" Anwender. Der Spruch "Wenn Du hier nichts beitragen kannst, dann hast Du auch kein Recht, Forderungen zu stellen" schreibt die Inzucht auf Dauer fest. Das "Problem" (wenn es denn eins ist) bei Lukas' Vorgehen liegt in der ZIELSTELLUNG, nicht in der Durchführung. 3. Software-Tests werden aus unterschiedlichen Gründen gemacht. Die Fragen "Haben wir das Richtige implementiert?" und "Haben wir es richtig implementiert?" zielen in unterschiedliche Richtungen. Hier im Thread liegt der Fokus eindeutig auf der zweiten Frage. Das ist für sich genommen nicht falsch, aber W.S. bemängelt (nach meinem Verständnis) nur, dass die erste Frage deutlich zu wenig diskutiert wird. Letztlich liegen bei FOS-Software Licht und Schatten noch näher beieinander als bei kommerzieller: Gute FOSS-Software ist unter Umständen SEHR gut, eben weil der Programmierer auch der Anwender ist. Bei FOSS-Software, die aber an den Bedürfnissen (einiger) Anwender vorbeigeht, haben diese Anwender NOCH weniger Einfluss als bei kommerzieller Software: Gegen die Replik "Du hast mir gar nix vorzuschreiben -- ich bin nicht Dein Codiersklave!" hat man keine Handhabe. Bei kommerzieller Auftragsentwicklung sieht das deutlich anders aus. Ich bin ein ausgesprochener Freund von FOSS, aber man darf die Nachteile des Modells auch nicht übersehen. Bernd W. schrieb: > Weil jedes Konzept kann fatale Fehler enthalten, die erst > auffallen, wenn man es anfängt Umzusetzten. Ja -- aber dann taugt das Konzept nichts :) > Mann könnte also eine Ewigkeit damit verbringen, ein > extrem detailiertes und perfektes Konzept aufzustellen, > was überhaupt nicht funktioniert. Es gibt immer viele Wege, etwas falsch zu machen; das Aufstellen von Konzepten bildet da keine Ausnahme :) Projektplanung ist viel schlechter lehrbar als Bohren, Feilen oder Steaks braten, aber dennoch ist es ein Handwerk wie viele andere auch. Der sehr verbreitete Spruch "Wer glaubt, dass Projektleiter Projekte leiten, der glaubt auch, dass Zitronenfalter Zitronen falten" ist im Wesentlichen nur eins: Sehr dumm.
Possetitjel schrieb: > Es gibt immer viele Wege, etwas falsch zu machen; das > Aufstellen von Konzepten bildet da keine Ausnahme :) Mmhmm, oft hat man ja ein Bild vor Augen, wie das fertige Projekt aussehen soll ... Solange man quasi nur einer ist, der an einem Projekt arbeitet, ist es auch kein Problem, das genau so umzusetzen, wie man sich das vorstellt. Da braucht man dann keine Projektplanung oder Konzepte ;-)
Possetitjel schrieb: > Die Fragen "Haben wir das Richtige implementiert?" und "Haben wir es > richtig implementiert?" zielen in unterschiedliche Richtungen. Hier im > Thread liegt der Fokus eindeutig auf der zweiten Frage. Das sehe ich keineswegs so. Lukas hat weiter oben selbst postuliert, dass er für alle Anregungen dankbar ist, auch die, die in Richtung der ersten Frage gehen. Was er dabei sicher nicht in Frage stellen wird, ist den grundlegenden Workflow des Gesamtsystems. Der ist ja bei ihm insbesondere daraus entstanden, dass er mit dem, was es schon gab, aus Anwendersicht völlig unzufrieden war und es daher anders angehen wollte.
:
Bearbeitet durch Moderator
Hallo Possetitjel. Possetitjel schrieb: > 2. > Deine Feststellung, FOS-Software habe keine Kunden (sondern > nur Anwender) ist sachlich richtig, geht aber nicht weit > genug: Manchmal hat sie nicht einmal "echte" Anwender. Der > Spruch "Wenn Du hier nichts beitragen kannst, dann hast Du > auch kein Recht, Forderungen zu stellen" schreibt die Inzucht > auf Dauer fest. Vernünftigen Argumenten gegenüber ist ja auch niemand abgeneigt, sie zumindest in Erwägung zu ziehen. Allerdings, wenn Nischen Anwender sich ihre eigene Software als ihr eigenes Handwerkszeug selber in die Hand schreiben, sind sie wohl auch die einzigen wirklichen Experten dafür. > Das "Problem" (wenn es denn eins ist) bei Lukas' Vorgehen > liegt in der ZIELSTELLUNG, nicht in der Durchführung. Es geht um beides, Zielstellung und Durchführung. > Software-Tests werden aus unterschiedlichen Gründen gemacht. > Die Fragen "Haben wir das Richtige implementiert?" und "Haben > wir es richtig implementiert?" zielen in unterschiedliche > Richtungen. > Hier im Thread liegt der Fokus eindeutig auf der zweiten Frage. > Das ist für sich genommen nicht falsch, aber W.S. bemängelt > (nach meinem Verständnis) nur, dass die erste Frage deutlich > zu wenig diskutiert wird. So verstehe ich das auch.....aber W.S. bringt auch keine konkreten Vorschläge für ein Ziel. Er bemängelt nur, dass es nicht gemacht wurde. Ich gehe aber davon aus, dass das jeder macht, auch wenn es nicht unbedingt nach aussen sichtbar ist. Und das Ergebnis einer solchen Überlegung muss nicht mit dem Übereinstimmen, was bei W.S. herauskommen würde. ;O) > Bei FOSS-Software, die aber an den Bedürfnissen (einiger) > Anwender vorbeigeht, haben diese Anwender NOCH weniger > Einfluss als bei kommerzieller Software: Gegen die Replik > "Du hast mir gar nix vorzuschreiben -- ich bin nicht Dein > Codiersklave!" hat man keine Handhabe. Bei kommerzieller > Auftragsentwicklung sieht das deutlich anders aus. Richtig. Aber das sehe ich nicht als Problem. Weil eigentlich schreiben FOSS Entwickler immer extreme Nischensoftware für sich selber. Der Erfolg einiger dieser Produkte ist dann auf das Versagen kommerzieller Konzepte zurückzuführen. Also eher Zufall. Merkwürdigerweise treten diese Zufälle aber sehr häufig auf... > Bernd W. schrieb: >> Weil jedes Konzept kann fatale Fehler enthalten, die erst >> auffallen, wenn man es anfängt Umzusetzten. > > Ja -- aber dann taugt das Konzept nichts :) Richtig....aber wann will man das sonst feststellen, wenn nicht durch einen Umsetzungsversuch? > >> Mann könnte also eine Ewigkeit damit verbringen, ein >> extrem detailiertes und perfektes Konzept aufzustellen, >> was überhaupt nicht funktioniert. > > Es gibt immer viele Wege, etwas falsch zu machen; das > Aufstellen von Konzepten bildet da keine Ausnahme :) Ohja. > > Projektplanung ist viel schlechter lehrbar als Bohren, > Feilen oder Steaks braten, aber dennoch ist es ein > Handwerk wie viele andere auch. Ich sehe es eher als Kunst, weil mir komplett die Begabung dazu fehlt. Aber ich sehe dieses Fehlen einer Begabung dazu auch bei W.S., solange er nicht konkreter wird. ;O) Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.l02.de
Jörg W. schrieb: > Possetitjel schrieb: >> Die Fragen "Haben wir das Richtige implementiert?" und >> "Haben wir es richtig implementiert?" zielen in >> unterschiedliche Richtungen. Hier im Thread liegt der Fokus >> eindeutig auf der zweiten Frage. > > Das sehe ich keineswegs so. Ich weiss :) > Lukas hat weiter oben selbst postuliert, dass er für alle > Anregungen dankbar ist, auch die, die in Richtung der > ersten Frage gehen. Ja, aber... > Was er dabei sicher nicht in Frage stellen wird, ist den > grundlegenden Workflow des Gesamtsystems. Eben. Das bedeutet faktisch: Es gibt eine gewisse Zahl fundamentaler Design-Entscheidungen, die nicht verhandelbar sind. Punkt. (Dazu gehört aus meiner Sicht z.B., dass es ein Komplett- paket werden soll.) > Der ist ja bei ihm insbesondere daraus entstanden, dass > er mit dem, was es schon gab, aus Anwendersicht völlig > unzufrieden war und es daher anders angehen wollte. Richtig. Wenn man die Äußerungen von W.S. mal mit gutem Willen liest (und über seinen unangemessenen Ton großzügig hinwegsieht), dann ist genau DAS ja auch sein Kritikpunkt: ER (L.) war unzufrieden, ER wollte es anders angehen. Was andere Anwender wollen, was andere Anwender stört, spielt keine wesentliche Rolle. (Wäre es anders, hätte es eine Planungsphase gegeben, in der die Wünsche der Anwender ermittelt worden wären. Gab es aber meines Wissens nicht.) Nur um nicht missverstanden zu werden: L. macht nix falsch. Er programmiert sich einfach die Software, die er haben möchte. Die Kritik zielt auf eine generelle Schwäche von FOSS.
Possetitjel schrieb: > Was andere Anwender wollen, was andere Anwender stört, spielt keine > wesentliche Rolle. Bezüglich des grundlegenden Designs: richtig. Ansonsten sehe ich schon, dass er auf geäußerte Wünsche eingeht. > Die Kritik zielt auf eine generelle Schwäche von FOSS. Die aber auch eine Stärke sein kann: es wird einfach mal gemacht, und „der Markt“ kann dann zeigen, ob sich das durchsetzt. Dieser besteht ja am Ende aus viel mehr Nutzern als nur W.S. :)
Hallo Jörg und Possetitjel- Jörg W. schrieb: >> Was andere Anwender wollen, was andere Anwender stört, spielt keine >> wesentliche Rolle. > > Bezüglich des grundlegenden Designs: richtig. Immerhin hat er das ganze ja gestartet, weil er mit den herkömmlichen Designs unzufrieden war, und eigene Ideen hatte. Da ist kaum zu erwarten, dass er ausgerechnet diese Grundlagen ändert. > > Ansonsten sehe ich schon, dass er auf geäußerte Wünsche eingeht. Das sehe ich auch. > >> Die Kritik zielt auf eine generelle Schwäche von FOSS. > > Die aber auch eine Stärke sein kann: es wird einfach mal gemacht, und > „der Markt“ kann dann zeigen, ob sich das durchsetzt. Dieser besteht > ja am Ende aus viel mehr Nutzern als nur W.S. :) Eben. Es scheint oft also eine ganze Menge von Leuten zu geben, die sich gut mit den Konzepten dieser Software anfreunden können. Mit freundlichem Gruß: Bernd Wiebus alias dl1eic http://www.l02.de
Uwe S. schrieb: > Dupliziert man aber erst das Symbol, steckt man in einer > Sackgasse, weil man dem Symbol keine Unit zuordnen kann. Übersehe ich da > was? Nein, das ist by Design so: Symbole stellen nur die Pins einer Unit dar und sind daher recht fest mit dieser verbunden. Ohne Unit wüsste ein Symbol nicht, wie die Pins heißen. Ein Dialog zum Austauschen der Unit, wobei die Pins dann über Namen zur neuen Unit zugeordnet werden, wäre allerdings denkbar, wenn das unbedingt so gebraucht wird. > Damit verwand dürfte eine andere Frage sein. Es gibt eine Unit "Generic > 2 pin connector", die ist sowohl dem Symbol "Generic 2 pin connector > (1x2)" als auch dem Symbol "Generic 2 pin connector (2x1)" zugeordnet. > Ich vermute, da wurde ein Symbol dupliziert und dann der Name und das > Symbol geändert. Die Unit blieb gleich, denn die ist ja ohnehin nicht > änderbar. Was ist die Idee hinter dieser Vorgehensweise? Soll man damit > solche Fälle wie das amerikanische und europäische Widerstandssymbol nur > einer Unit zuordnen können? Das ist ein möglicher Anwendungsfall. Die Idee hier bei den Steckern war diese: In der Netzliste (Unit/Entity) ist es ja egal, wie die Pins nun räumlich im Stecker angeordnet sind, daher gibt es für jede Anzahl Pins nur eine Unit. So kann man auch ohne Probleme später mit dem "Assign Part"-Tool aus einem 1x10 einen 2x5-Stecker machen, da beide für die Netzliste identisch sind (selbe Unit/Entity). Im Schaltplan will man damit's optisch besser zum Board passt beide Optionen haben. Geplant sind hier noch diese Dinge: Symbol im Schaltpan änderbar machen (für Units mit mehreren Symbolen). Vielleicht: Parts können bevorzugte Symbole angeben, damit z.B. der 2x5-Wannenstecker standardmäßig auch das 2x5-Symbol bekommt und nicht erst der Dialog zur Auswahl des Symbols aufgeht. > Beim Platzieren eines Parts im Schaltplan > bekommt man zumindest die Auswahl zwischen diesen beiden, der einen Unit > zugeordneten, Symbolen. > In diesem Fall tritt übrigens ein Fehler auf. Wenn man die Box zur > Auswahl des Symbols mit "Cancel" schließt, dann stürzt der > Schaltplan-Editor ab. Ist repariert.
Jörg W. schrieb: > Possetitjel schrieb: >> Was andere Anwender wollen, was andere Anwender >> stört, spielt keine wesentliche Rolle. > > Bezüglich des grundlegenden Designs: richtig. Gut. Dann haben wir ja bis dahin erstmal Konsens. > Ansonsten sehe ich schon, dass er auf geäußerte > Wünsche eingeht. Selbstverständlich; das habe ich auch schon mehrfach zugestanden. Das ist ja gar nicht mein Zielpunkt. >> Die Kritik zielt auf eine generelle Schwäche von FOSS. > > Die aber auch eine Stärke sein kann: es wird einfach mal > gemacht, und „der Markt“ kann dann zeigen, ob sich das > durchsetzt. Naja. Das ist kein Alleinstellungsmerkmal von FOSS; das machen die Kommerziellen genauso. Der ärgerliche Unterschied ist nur, dass es bei FOSS überhaupt nicht notwendig wäre. Da es keinen Zwang zur Rentabilität gibt, muss sich niemand "durchsetzen".
Bernd W. schrieb: > Immerhin hat er das ganze ja gestartet, weil er mit den > herkömmlichen Designs unzufrieden war, und eigene Ideen > hatte. Sicher; Unzufriedenheit als Motiv, etwas zu ändern, ist ja ein durchaus häufiger Fall. > Da ist kaum zu erwarten, dass er ausgerechnet diese > Grundlagen ändert. Naja, fraglich ist, was GENAU ihn gestört hat und was also diese Grundlagen sind. Die Tatsache, dass es (meines Wissens) kein wirklich universelles Austauschformat für Schaltpläne gibt, war es schon mal nicht -- sonst hätte er sich das als Thema vorgenommen. Die Tatsache, dass jede Software die Bauteil-Stammdaten (Symbole, Footprints, ggf. Datenblätter, Spice-Modelle...) mehr schlecht als recht (und natürlich inkompatibel zu allen anderen Systemen) verwaltet, war es offensichtlich auch nicht. Nur um mal zwei Punkte zu nennen, die MICH stören. > Eben. Es scheint oft also eine ganze Menge von Leuten zu > geben, die sich gut mit den Konzepten dieser Software > anfreunden können. Was bleibt einem denn übrig? Die Alternativen sind ja noch schlimmer. Außerdem sind Anwender manchmal (notgedrungen) unfassbar leidensfähig -- sonst wären MS-DOS, Windows98 oder vi nie zum Einsatz gelangt.
Possetitjel schrieb: > Die Tatsache, dass jede Software die Bauteil-Stammdaten (Symbole, > Footprints, ggf. Datenblätter, Spice-Modelle...) mehr schlecht als recht > (und natürlich inkompatibel zu allen anderen Systemen) verwaltet, war es > offensichtlich auch nicht. Wieso? Gerade an dieser Stelle hat sich Lukas ja intensiv Gedanken gemacht. Also nicht Austauschbarkeit, das bleibt sowieso immer Wunschdenken, aufgrund nicht deckungsgleicher Konzepte – BAE bspw. benutzt metrisches Raster für die Schaltplandarstellung, viele andere (aus mir nicht nachvollziehbaren Gründen) zölliges. Da half es eben bei BAE auch nicht besonders, dass man per Script Eagle-Daten einlesen kann. Aber bezüglich der Organisation der Daten sehe ich schon ein Konzept. Das kann einem natürlich nun gefallen oder nicht, das ist wieder was anderes. ;-)
Die Situation mit Formaten für Schaltplan/Board/etc. ist ähnlich wie die mit Formaten für Textverarbeitung: Das Dateiformat muss jedes Feature, jede noch so versteckte Einstellung der Applikation abbilden. Bei Textverarbeitung hat man das gelöst, indem Formate von Applikationen zum Standard erklärt wurden. Mittelbar wurde damit die Applikation selber zum Standard, da man um das Format vollständig zu unterstützen die Applikation praktisch nachbauen muss. Wenn jetzt z.B. Autodesk es hinbekommen würde das XML-Format von Eagle als Standard bei der ISO oder so durchzubekommen, wären alle Applikationen, die das Format verwenden im Kern eben Eagle - mit allen vor- und Nachteilen. Ein Austauschformat zur Darstellung von Footprints und Symbolen ist in der Tat wünschenswert und meines Erachtens auch deutlich einfacher umsetzbar als ein Austauschformat für Schaltpläne, da alle Programme halbwegs vergleichbare Vorstellungen von Symbol und Package haben.
Hallo Lukas, ich habe mal angefangen einige der Units, Entities und Symbols aus meinem lokalen Pool als Pull-Request bei github einzustellen. Wenn das für dich so in Ordnung ist, dann hätte ich auch noch mehr und würde die auch als Pull-Request zur Verfügung stellen. Konkrete Bauteile habe ich auch noch ein paar, aber die können erstmal warten. Uwe
Hallo Lukas, jetzt habe zu viel gespielt und mein Pool lässt sich nicht mehr aktualisieren. Gemäß Fehlermeldung fehlt eine Symbol-Datei, die ich zuvor gelöscht hatte. Die Units und Entities aber auch. Mag sein, dass mir da ein Fehler unterlaufen ist. Ich stelle mir aber die Frage, woher der Pool-Manager überhaupt weiß, welche Datei fehlt. Läuft das nicht alles über Ids? Ich finde in keiner der json-Dateien eine Referenz auf die fehlende Datei. Uwe
Uwe S. schrieb: > Ich stelle mir aber die Frage, woher > der Pool-Manager überhaupt weiß, welche Datei fehlt. Läuft das nicht > alles über Ids? Ich finde in keiner der json-Dateien eine Referenz auf > die fehlende Datei. Den Dateinamen, die der Pool Manager anzeigt, ist die Datei bei der die Exception aufgetreten ist. Irgendwas, das die Datei referenziert gibt's nicht. Seit gerade sagt der einem auch welche UUID und welcher Typ fehlt. Uwe S. schrieb: > Wenn das > für dich so in Ordnung ist, dann hätte ich auch noch mehr und würde die > auch als Pull-Request zur Verfügung stellen. Schaut gut aus und ist merged. Bei den Symbolen hab' ich noch die Pin-Namen aus gemacht, da die sonst komisch ausschauen. Jetzt wo es im Pool auch Bauteile mit invertierten Pins gibt, sollte das horizon auch abbilden können: Wahrscheinlich wird es für die Pins in den Units noch Flags geben, um Eingenschaften wie Invertiert, oder Takteingang zu kennzeichnen, damit man nicht immer selber malen muss.
Possetitjel schrieb: > Bei FOSS-Software, die aber an den Bedürfnissen (einiger) > Anwender vorbeigeht, haben diese Anwender NOCH weniger > Einfluss als bei kommerzieller Software: Gegen die Replik > "Du hast mir gar nix vorzuschreiben -- ich bin nicht Dein > Codiersklave!" hat man keine Handhabe. Bei kommerzieller > Auftragsentwicklung sieht das deutlich anders aus. OpenSource ist aber keine Auftragsentwicklung! Trotzdem kann man Einfluß darauf nehmen, wenn man freundlich fragt oder gar einen funktionsfähigen Patch einreicht. Oder wenn man das Projekt forkt und seine Vorstellungen innerhalb dieses Forks realisiert. Oder indem man jemanden dafür bezahlt, eine dieser drei Vorgehensweisen umzusetzen. In der kommerziellen Auftragsentwicklung hast Du im Übrigen auch keinerlei Einflußmöglichkeit. Dann wird umgesetzt, was in der Spezifikation steht, auf deren Basis die Angebote, Preise und Zeitpläne kalkuliert und der Auftrag erteilt worden ist. Wenn Du Änderungen willst, mußt Du sie bezahlen. > Ich bin ein ausgesprochener Freund von FOSS, aber man darf > die Nachteile des Modells auch nicht übersehen. Das ist natürlich richtig, aber Du konstruierst welche, wo keine sind, und noch dazu mit falschen Analogien.
Possetitjel schrieb: > Das bedeutet faktisch: Es gibt eine gewisse Zahl fundamentaler > Design-Entscheidungen, die nicht verhandelbar sind. Punkt. Ohne solche Designentscheidungen kann man keine Software entwickeln. Sonst diskutiert man das Projekt tot, bevor es angefangen hat.
Lukas K. schrieb: > Wahrscheinlich wird es für die Pins in den > Units noch Flags geben, um Eingenschaften wie Invertiert, oder > Takteingang zu kennzeichnen, damit man nicht immer selber malen muss. Jetzt gibt es im Symbol-Editor für Pins dekorative Elemente wie Invertiert, Takteingang, Schmitt-Trigger, oder Open-Collector/Emitter mit/ohne Pullup/pulldown.
Hab's gerade mal die Pin-Dekorationen probiert. Funktioniert super. Ist die Bezeichnung 'Dot' für invertierte Pins nicht etwas unglücklich? Warum nicht 'Inverted'?
Bernd W. schrieb: > Hallo W.S. > ... > Sagmal, Rauchst Du irgendwas? Das soll ein OpenSource Projekt werden! > Als solches hat es KEINE KUNDEN. ;O) Erstens: nein ich bin Nichtraucher Zweitens: du bist unverschämt, sowas zu schreiben. Also bleib sachlich. Drittens: wenn du dediziert was gegen das Wort "Kunde" hast, dann nenne es doch einfach "finaler Anwender". Kommt auf's Gleiche raus. Es sind eben immer diejenigen, die ein Produkt benutzen wollen und nicht darin herumkonstruieren/programmieren wollen - und die eben auch nicht zuvor irgendwelche anderen Teile wie Pools und so von woanders zusammensuchen wollen/können. Aber "Kunde" ist griffiger und allgemeinverständlicher. Negativbeispiel: Frag doch mal nen Verkäufer im Mediamarkt, wieviel uint8_t's die Festplatte im Regal hat. Bernd W. schrieb: > So verstehe ich das auch.....aber W.S. bringt auch keine konkreten > Vorschläge für ein Ziel. Er bemängelt nur, dass es nicht gemacht wurde. Wiebitte??? Zur Sache: Das vorbereitete Projekt herunterzuladen und zu installieren/auszupacken reicht nicht. Es fehlt an dem Pool, was auch immer dessen Inhalt sein mag. Offenbar muß ich mich selber zitieren: W.S. schrieb: > Ich hätte erwartet, daß man als Benutzer zumindest die Chance hätte, das > System erstmal irgendwie aufzusetzen, so daß es auch läuft und einen > nicht vor ein zu nix brauchbares fast leeres Fenster setzt. Die > penetrante und durch nichts lösbare Nachfrage nach dem ominösen Pool > verhindert zuverlässig, daß man mit deinem Programm irgendwas beginnen > kann. Erwarte bitte nicht, daß irgend ein Interessent eine derartige > pool.json vorrätig hat. Ist dir das nicht klar genug? Nein? Dann sag ich es mal anders: In jede Distribution gehört wenigstens eine minimale "pool.json" hinein, damit man zumindest etwas vom eigentlichen Programm überhaupt sieht. Noch besser wäre es, wenn es einen Menüpunkt gäbe, mit dem man auf Knopfdruck sowas generieren kann. Bedarf dafür ist da, siehe Jörg: "Wie starte ich einen neuen Pool? Gibt's dafür ein Tool?" Eben. Meine Rede die ganze Zeit über. W.S.
W.S. schrieb: > Wiebitte??? > > Zur Sache: > Das vorbereitete Projekt herunterzuladen und zu installieren/auszupacken > reicht nicht. Es fehlt an dem Pool, was auch immer dessen Inhalt sein > mag. Öhm, RTFM!
W.S. schrieb: > Bedarf dafür ist da, siehe Jörg: Wenn du keine Ahnung hast, worüber ich schreibe, dann benutz' mich bitte nicht als Referenz. Den Standard-Pool runterzuladen und zu aktivieren, braucht's nur ein RTFM.
Hallo Lukas, in GitHub sehe ich Kommentare für eine neue Funktion um packages zu wählen. "board add alternate packages ...." Ich habe heute Abend dein Programm kompiliert. Sollte man das Package in dem PCB-Fenster auswählen können? Ich kann da aber in dem Feld "Package" nichts ändern. Siehe Bild. Ist die Funktion noch nicht fertig oder muss ich an anderer Stelle vorher etwas einstellen? Gruß Helmut
:
Bearbeitet durch User
Diese Funktion ist so gemeint: Im Package kann man (im Popover, wo man auch Name, etc. eintippt) ein Package als alternate Package für ein anderes Package eintragen. Im Pool gibt es als Beispiel wie sowas aussehen kann die Packages "R0603 (manual soldering)" und "C0603 (manual soldering)". Diese haben als "alternate for" R0603 bzw. C0603 eingetragen. In der Combobox zum Package erscheinen dann alle Packages, die als "alternate for" das Package des Parts eingetragen haben. Diese Funktion ist ausdrücklich nicht dafür vorgesehen verschiedene Packages (z.B. DIP und SMD) einem Part zuzuordnen. Helmut S. schrieb: > Ist die Funktion noch nicht fertig oder muss > ich an anderer Stelle vorher etwas einstellen? Du musst wohl noch deinen Pool aktualisieren, damit da auch die oben genannten Packages drin sind.
Hallo Lukas,
> Du musst wohl noch deinen Pool aktualisieren,
Habe gerade mal den Pool ganz neu heruntergeladen und unzip gemacht.
Dann den Pool-manager gestartet. Es sind keine packages und parts mehr
da. Die fehlen jetzt.
Teste das doch mal bei dir. Poolverzeichnis löschen, Pool herunterladen,
unzip vom Download des Pools machen, pool manager starten und schauen.
Mein Pool ist jetzt unbrauchbar.
:
Bearbeitet durch User
Helmut S. schrieb: > Teste das doch mal bei dir. Poolverzeichnis löschen, Pool herunterladen, > unzip vom Download des Pools machen, pool manager starten und schauen. > Mein Pool ist jetzt unbrauchbar. Tatsache, das ist hingefallen, weil jetzt auch Packages andere Packages referenzieren und die Reihenfolge in der die Packages geladen werden relevant ist. Ist nun repariert.
Lukas K. schrieb: > Helmut S. schrieb: >> Teste das doch mal bei dir. Poolverzeichnis löschen, Pool herunterladen, >> unzip vom Download des Pools machen, pool manager starten und schauen. >> Mein Pool ist jetzt unbrauchbar. > > Tatsache, das ist hingefallen, weil jetzt auch Packages andere Packages > referenzieren und die Reihenfolge in der die Packages geladen werden > relevant ist. Ist nun repariert. Habe gerade noch mal kompiliert. Dann habe ich den Pool Manager gestartet. Dort musste ich "Update Pool" wählen. Danach habe ich das Layout geöffnet. Jetzt kann ich ein anderes Package wählen. >Diese haben als "alternate for" R0603 bzw. C0603 eingetragen. Jetzt stellt sich mir die Frage wo wird definiert welches alternative Package möglich ist.
Helmut S. schrieb: > Lukas K. schrieb: >>Diese haben als "alternate for" R0603 bzw. C0603 eingetragen. > Jetzt stellt sich mir die Frage wo wird definiert welches alternative > Package möglich ist. Im Pool-Manager. Einfach ein Package öffnen und dann mal das Menü in der Kopfzeile ausklappen. Dort wo man den Namen, Manufacturer und Tags eingeben kann, gibt es jetzt noch einen Button 'Alternate for'. Uwe
Uwe S. schrieb: > Helmut S. schrieb: >> Lukas K. schrieb: >>>Diese haben als "alternate for" R0603 bzw. C0603 eingetragen. >> Jetzt stellt sich mir die Frage wo wird definiert welches alternative >> Package möglich ist. > > Im Pool-Manager. Einfach ein Package öffnen und dann mal das Menü in der > Kopfzeile ausklappen. Dort wo man den Namen, Manufacturer und Tags > eingeben kann, gibt es jetzt noch einen Button 'Alternate for'. > > Uwe Danke Uwe, jetzt finde ich es auch. Man kann/muss das alternative package für jedes Bauteil auswählen, wenn man es ändern will. Das ist OK. Im Anhang ein screenshot für alle die es interssiert. Helmut
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
Helmut S. schrieb: > Neue Frage > Was macht dieses "Apply to all", das erscheint, wenn man auf das Häkchen > klickt? Scheinbar nichts oder macht es doch etwas? Wenn du mehrere Objekte ausgewählt hast, dann wird die Eigenschaft auf alle angewendet. In deinem Fall, mit nur einem Objekt, ist also in der Tat nichts zu sehen. Besser wäre es wohl, den Button dann garnicht anzuzeigen. Die gleiche Funktion gibt es auch bei mehreren ausgewählten Pads, wenn man 'Edit pads' aufruft. Uwe
Uwe S. schrieb: > Besser wäre es wohl, den Button dann garnicht > anzuzeigen. Ist jetzt (fast) so drin und der Tooltip ist auch ein bisschen erklärender. Ganz ausblenden wollte ich den Knopf nicht, weil das dann komisch aussah.
Helmut S. schrieb: > Neue Frage > Was macht dieses "Apply to all", das erscheint, wenn man auf das Häkchen > klickt? Scheinbar nichts oder macht es doch etwas? Wenn du mehrere Objekte ausgewählt hast, dann wird die Eigenschaft auf alle angewendet. Danke Uwe, das passt. Lukas K. schrieb: > Uwe S. schrieb: >> Besser wäre es wohl, den Button dann garnicht >> anzuzeigen. > > Ist jetzt (fast) so drin und der Tooltip ist auch ein bisschen > erklärender. Ganz ausblenden wollte ich den Knopf nicht, weil das dann > komisch aussah. Hallo Lukas, Die Erklärung gefällt mir. Siehe screenshot für alle anderen. Flipped "on" bedeutet Bauteil ist auf der Unterseite. Flipped "off" bedeuted das Bauteil ist auf der Oberseite. Man kann die Lage eines Bauteils an dessen Farbe erkennen. Lukas, könntest du mal wieder eine WIN-Version machen für die Leute die nicht kompilieren wollen? Helmut
Noch ein Tipp Wenn man mehrere Bauteile selektiert hat, dann kann man mit den Pfeiltasten links und rechts unter Packages ein Bauteil nach dem anderen wählen. Klickt man auf 1/3 dann geht zusätzlich ein "Dialogfenst" mit Radiobuttons auf. Da kann man mit einem Klick eines der selektierten Bauteile auswählen.
:
Bearbeitet durch User
Helmut S. schrieb: > Lukas, könntest du mal wieder eine WIN-Version machen für die Leute die > nicht kompilieren wollen? Soeben geschehen. Wenn sich jemand mit Appveyor auskennt und Windows-CI bauen mag, wäre ich demjenigen sehr verbunden :) Ein paar Worte noch zu dem Property-Editor auf der rechten Seite im allgemeinen: Tabellarische Propery-Editoren, wie man sie von vielen IDEs und CAD-Programmen kennt, wie z.B. http://doc.qt.io/qt-5/images/designer-property-editor.png waren mit immer zu fummelig zu bedienen und zeigen u.U. komische Platzhalter an, wenn mehrere Objekte ausgewählt sind. Daher stehen die Namen über und nicht neben den Werten und alles ist ein normales Widget und nicht die hakelig zu bedienenden Widgets aus Listen/Tabellen. Das "1/3" zur Auswahl des aktuellen Objektes in Kombination mit dem "Apply to all"-Knopf schien mir als gute Lösung um sowohl eines als auch mehrere Objekte zu bearbeiten. Wenn man eine Property anfasst, wird zunächst eine kurze Zeit gewartet, ob noch was passiert, um mehrere schnell aufeinander folgenden Änderungen zu einem Undo/Redo-Schritt zusammenzufassen. In dieser Zeit wird das "Commit pending" eingeblendet.
Hallo Lukas, war deine letzte Änderung jetzt so wichtig, dass man unbedingt wieder neu kompilieren sollte? Ich habe natürlich für mich neu kompiliert. core fix tool includes 44 minutes ago
Helmut S. schrieb: > core fix tool includes 44 minutes ago Nichts wichtiges, nur in paar includes angepasst, damit es nicht unnütz Dateien neu bauen muss.
Max G. schrieb: > Anschließend sieht es dann etwas seltam aus - > ich sehe zwar alle Bedienelemente, aber weder Schaltplan noch Layout. Auf einem anderen Rechner läuft es jetzt. Die UI sieht dank GTK ziemlich ungewohnt aus, aber daran gewöhnt man sich schnell. Gefühlt ist es wie ein Rewrite von KiCAD, der ein paar hakelige Punkte (Library-Verwaltung, Sync Schaltplan/Board) neu konzipiert hat. In jedem Fall sind einige Dinge besser als beim Adler gelöst. Bis jetzt finde ich´s ziemlich gut (und ich bin Schwabe ;) Ein paar Kleinigkeiten, die mir als unbedarftem Erstnutzer aufgefallen sind: * Der Unit Editor ist noch nicht ganz rund: * Ich kann keine Einträge löschen ("-" bewirkt nichts) * Ich würde mir wünschen, neue Einträge einfach per Tab/Enter o.ä. erzeugen zu können. Dann kann ich die Pinliste aus dem Datenblatt einfach abtippen und muss nicht zwischen Tastatur und Maus wechseln * Nach dem Hinzufügen eines Pins mit "+" hüpft der Cursor irgendwo hin, und die blaue Markierung ebenfalls. Manchmal auf´s gleiche, manchmal auch nicht. * Die automatische alphabetische Sortierung nervt mich eher, ab einer gewissen Anzahl muss ich scrollen, um zu finden, wo es denn jetzt weitergeht. Ich würde sie eher weglassen. Anregung: fertige Einträge mit Labels darstellen und erst nach Anklicken, nur für den aktuellen Eintrag, Combobox/Entry verwenden. Ist deutlich platzsparender. * "Enter Datum" ist zwar vermutlich korrekt, aber recht ungebräuchlich. "Enter Value" wäre gängiger. * Beim Duplizieren eines Packages beschwert sich Horizon, dass das Verzeichnis nicht existiert, anstatt es einfach anzulegen. Nach ANlegen von Hand geht´s problemlos. * Der Footprint Generator ist prima. Nur: wenn ich versuche, ein Quad-Package zu erzeugen, malt er nur die rechte und linke Pinreihe. Unten und oben fehlt. * Muss ich für das Zeichnen einer Verbindung im Schaltplan tatsächlich "dn n" tippen? * Änderungen beim Zeichnen (sei es Mirror, sei es Undo, ...) werden erst dann übernommen, wenn die Maus wieder bewegt wird. Bis dahin bleibt der alte Zustand erhalten. * Wie kriege ich es hin, dass eine abknickende Linie den Knickpunkt wechselt (das, was bei Eagle Strg+rechte Maustaste macht)? More to come...
Max G. schrieb: > Max G. schrieb: >> Anschließend sieht es dann etwas seltam aus - >> ich sehe zwar alle Bedienelemente, aber weder Schaltplan noch Layout. > > Auf einem anderen Rechner läuft es jetzt. Die UI sieht dank GTK ziemlich > ungewohnt aus, aber daran gewöhnt man sich schnell. > Gefühlt ist es wie ein Rewrite von KiCAD, der ein paar hakelige Punkte > (Library-Verwaltung, Sync Schaltplan/Board) neu konzipiert hat. In jedem > Fall sind einige Dinge besser als beim Adler gelöst. Bis jetzt finde > ich´s ziemlich gut (und ich bin Schwabe ;) Sehr schön :) > Ein paar Kleinigkeiten, die mir als unbedarftem Erstnutzer aufgefallen > sind: > * Der Unit Editor ist noch nicht ganz rund: > * Ich kann keine Einträge löschen ("-" bewirkt nichts) Kann ich jetzt nicht so reproduzieren. Einen oder mehrere Pins auswählen (sodass die blau werden), dann auf - klicken und die Pins verschweiden > * Ich würde mir wünschen, neue Einträge einfach per Tab/Enter o.ä. > erzeugen zu können. Dann kann ich die Pinliste aus dem Datenblatt > einfach abtippen und muss nicht zwischen Tastatur und Maus wechseln Hört sich sinnvoll an, kommt bald. > * Nach dem Hinzufügen eines Pins mit "+" hüpft der Cursor irgendwo > hin, und die blaue Markierung ebenfalls. Manchmal auf´s gleiche, > manchmal auch nicht. > * Die automatische alphabetische Sortierung nervt mich eher, ab einer > gewissen Anzahl muss ich scrollen, um zu finden, wo es denn jetzt > weitergeht. Ich würde sie eher weglassen. Ah, das hängt wohl zusammen, da neue Einträge automatisch einsortiert werden. Wär' wohl besser, wenn die direkt nach dem Eintrag kommen, der davor ausgewählt war. Die Sortierung habe ich eingebaut, weil die Pins innerhalb einer Unit sonst gar keine sinnvolle Reihenfolge hätten. > Anregung: fertige Einträge mit Labels darstellen und erst nach > Anklicken, nur für den aktuellen Eintrag, Combobox/Entry verwenden. Ist > deutlich platzsparender. Das schaut dann komisch aus, wenn sich die Höhe von den Zeilen verändert, je nachdem wo der Cursor gerade steht. > * Beim Duplizieren eines Packages beschwert sich Horizon, dass das > Verzeichnis nicht existiert, anstatt es einfach anzulegen. Nach ANlegen > von Hand geht´s problemlos. Du benutzt horizon auf Windows, oder? Die Meldung da kommt vom Windows-Dialog zum Speichern selber. Windows scheint keinen brauchbaren Dialog zu haben, um einen neuen Ordner anzulegen, nur Dialoge um vorhandene Ordner auszuwählen. Ich könnte an der Stelle auch den Dateidialog von Gtk benutzen, aber dann beschweren sich Leute zurecht, dass der komisch ausschaut... > * Der Footprint Generator ist prima. Nur: wenn ich versuche, ein > Quad-Package zu erzeugen, malt er nur die rechte und linke Pinreihe. > Unten und oben fehlt. Was für Einstellungen hast du da gemacht? Bei mir hat das immer funktioniert. > * Muss ich für das Zeichnen einer Verbindung im Schaltplan tatsächlich > "dn n" tippen? Entweder "dn" oder "n". > * Änderungen beim Zeichnen (sei es Mirror, sei es Undo, ...) werden erst > dann übernommen, wenn die Maus wieder bewegt wird. Bis dahin bleibt der > alte Zustand erhalten. Höre ich jetzt s zum ersten mal, was sind da die genauen Umstände? > * Wie kriege ich es hin, dass eine abknickende Linie den Knickpunkt > wechselt (das, was bei Eagle Strg+rechte Maustaste macht)? Du meinst von horizontal-vertikal auf vertikal-horizontal umschalten? Das geht mit "/".
Hallo Lukas, alle Erfahrungen auf Windows 7 64 bit, integrierte Grafik (Intel 5500, was auch immer das ist). * Zum Einträge löschen im Unit Editor: ach so, ich muss auf den Rand klicken, um den Frame(?) auszuwählen. Wäre gut, wenn Cursor im Feld auch reichen würde. * Zu der Darstellung mit Labels/Entry: ja, die Höhe verändert sich, die Gesamthöhe aber nicht. Anbei mal eine kurze hässliche Fingerübung in Python zur Demo, wie das aussähe. [mg] >> * Beim Duplizieren eines Packages beschwert sich Horizon, dass das >> Verzeichnis nicht existiert, anstatt es einfach anzulegen. Nach ANlegen >> von Hand geht´s problemlos. > > Du benutzt horizon auf Windows, oder? Die Meldung da kommt vom > Windows-Dialog zum Speichern selber. Windows scheint keinen brauchbaren > Dialog zu haben, um einen neuen Ordner anzulegen, nur Dialoge um > vorhandene Ordner auszuwählen. Ich könnte an der Stelle auch den > Dateidialog von Gtk benutzen, aber dann beschweren sich Leute zurecht, > dass der komisch ausschaut... Ja, Windows, s.o. Lasse doch einfach den darüberliegenden Ordner auswählen und generiere den Namen aus dem schon bekannten Packagenamen. [mg] >> * Der Footprint Generator ist prima. Nur: wenn ich versuche, ein >> Quad-Package zu erzeugen, malt er nur die rechte und linke Pinreihe. >> Unten und oben fehlt. > > Was für Einstellungen hast du da gemacht? Bei mir hat das immer > funktioniert. Screenshots anbei. Ist reproduzierbar. >> * Änderungen beim Zeichnen (sei es Mirror, sei es Undo, ...) werden erst >> dann übernommen, wenn die Maus wieder bewegt wird. Bis dahin bleibt der >> alte Zustand erhalten. > > Höre ich jetzt s zum ersten mal, was sind da die genauen Umstände? Ist durchgängig so, vermutlich irgendein Treiberthema Gtk/Windows. Ich finde es aber nicht schlimm, höchstens ein bisschen gewöhnungbedürftig. Danke noch mal für dein Engagement! Max
Max G. schrieb: > * Zu der Darstellung mit Labels/Entry: ja, die Höhe verändert sich, die > Gesamthöhe aber nicht. Anbei mal eine kurze hässliche Fingerübung in > Python zur Demo, wie das aussähe. Das Problem bei der Sache ist, dass wenn man auf einen Eintrag klickt, dieser seine Position in der Liste leicht ändert. Das so hinzubekommen, dass ich damit zufrieden wäre, ist mir gerade zu viel Aufwand. Max G. schrieb: > Ja, Windows, s.o. > Lasse doch einfach den darüberliegenden Ordner auswählen und generiere > den Namen aus dem schon bekannten Packagenamen. Das selbe Problem gibt's auch beim neu anlegen von Packages. Vielleicht fällt mir da noch was ein... Max G. schrieb: > Screenshots anbei. Ist reproduzierbar. Hm, vielleicht sind die anderen Pads auch einfach nur an der falschen Position? Drück mal auf "Pos1", damit alles dargestellt wird.
Hallo Lukas, ich habe gerade die neueste Funktion im Schaltplan ausprobiert. schematic editor: start net lines by dragging from pins/junctions Dabei fielen mir mal wieder diese Überschneidungen an den Knicken der Leitungen auf. Ehrlich gesagt habe ich das noch nie in irgend einem anderen Schaltplan gesehen. Ich hätte es gerne ohne diese Überschneidungen, weil das dem ansonsten sehr guten Eindruck des Schaltplanes schadet. Ist das nur zu Debug-Zwecken so? Gruß Helmut
:
Bearbeitet durch User
Helmut S. schrieb: > Ist das nur zu Debug-Zwecken so? Ist jetzt standardmäßig aus und kann ebenso wie das automatische starten von Netzlinien in den Einstellungen angepasst werden.
Lukas K. schrieb: > Helmut S. schrieb: >> Ist das nur zu Debug-Zwecken so? > > Ist jetzt standardmäßig aus und kann ebenso wie das automatische starten > von Netzlinien in den Einstellungen angepasst werden. Danke Lukas, eine clevere Idee das konfigurierbar zu machen. Auf die Idee wäre ich jetzt nicht gekommen. Da werde ich doch gleich mal den compiler starten ...
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
Hallo Lukas, erst einmal danke für die Zeit, die du in dieses Projekt investierst. Ist echt super! Allerdings gibt es eine Kleinigkeit von mir anzumerken: Ich finde, dass man von den Compiler-Meldungen regelrecht erschlagen wird. Ich mache das bei meinen Makefile-Projekten immer so: sobald ich weiß, dass die Compiler-/Linker-Aufrufe stimmen, gebe ich nur noch eine Status-Meldung pro Datei aus und nicht mehr die gesamte Command-line. Dadurch sieht das das kompilieren so aus:
1 | ... |
2 | Compiling file canvas3d/canvas3d.cpp... |
3 | In file included from ./canvas/poly2tri/poly2tri.h:35:0, |
4 | from canvas3d/canvas3d.cpp:11: |
5 | ./canvas/poly2tri/common/shapes.h: In Konstruktor »p2t::Point::Point(double, double)«: |
6 | ./canvas/poly2tri/common/shapes.h:60:29: Warnung: Deklaration von »y« überdeckt ein Element von »p2t::Point« [-Wshadow] |
7 | Point(double x, double y) : x(x), y(y) {} |
8 | ^ |
9 | ./canvas/poly2tri/common/shapes.h:47:13: Anmerkung: verdeckte Deklaration ist hier |
10 | double x, y; |
11 | ^ |
12 | ... |
13 | Compiling file pool-mgr/duplicate/duplicate_window.cpp... |
14 | Compiling file resources.cpp... |
15 | Compiling file gitversion.cpp... |
16 | Linking final file horizon-imp... |
17 | Linking final file horizon-pool... |
18 | Linking final file horizon-prj... |
19 | Linking final file horizon-pool-update-parametric... |
20 | Linking final file horizon-prj-mgr... |
21 | Linking final file horizon-pool-mgr... |
Ich habe das diff-file vom Makefile einfach mal angehängt. Du musst das selbstverständlich nicht übernehmen, ist ja auch nur eine kosmetische Angelegenheit, die man nur beim kompilieren sieht :-) Das hat allerdings auch den Vorteil, dass man die Warnings besser sehen kann. Ein weiterer Punkt sind allerdings die ganzen Warnings bezüglich gleichnamigen Variablen (-Wshadow). Diese Variablen würde ich umbenennen, sonst kommt man teilweise echt durcheinander... :-) Mit freundlichen Grüßen, N.G.
Hallo Lukas, ich habe gerade einen reproduzierbaren "crash case" im PCB Layout gefunden. Version: WIN horizon-2017-12-10-0139.zip Zeichne mit dl ein Dreieck Selektiere das ganze Dreieck Dann Rechtsklick in dem Bereich des selektierten Dreiecks -> Select more Dann stürzt das Pogramm ab. Ich hatte übrigens gehofft einen log-file von dem crash zu bekommen. Da ist aber keiner. Bekomme ich den log-file nur in der mysys2 Umgebung?
N. G. schrieb: > Ein weiterer Punkt sind allerdings die ganzen Warnings bezüglich > gleichnamigen Variablen (-Wshadow). Diese Variablen würde ich > umbenennen, sonst kommt man teilweise echt durcheinander... :-) Das ist in Code, der nicht von mir ist. Sofern's da keinen dringenden Grund zu gibt, fass' ich den nicht an. N. G. schrieb: > [...] > Das hat allerdings auch den Vorteil, dass man die Warnings besser sehen > kann. Schaut sinnvoll aus, vielleicht bau' ich das in ner ruhigen Minute noch mit der Option die Compiler-Aufrufe anzuzeigen ein. Helmut S. schrieb: > ich habe gerade einen reproduzierbaren "crash case" im PCB Layout > gefunden. Ist repariert. Zusätzlich werden jetzt Exceptions aus den Tools abgefangen und erscheinen im Log-Fenster.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.