Commit Graph

3002 Commits

Author SHA1 Message Date
stefan schippers 42a0ceb51f findnet.c: fix some errors in distance calculation leading to "holes" in the selection of instances. 2025-01-30 21:00:46 +01:00
stefan schippers eadd991651 reduce calls to find_closest_net_or_symbol_pin() in draw_crosshair() 2025-01-30 03:47:13 +01:00
stefan schippers ee750099e3 svgdraw(): draw in grey or red ignored or shorted devices, some fixes in ps_print() 2025-01-29 18:52:38 +01:00
stefan schippers 40fd937d51 shorted_instance(): fixed a bug: lvs_ignore active disallows evaluation of spice_ignore flags; ps_draw_symbol(): draw in grey or red ignored or shorted devices 2025-01-29 16:22:44 +01:00
stefan schippers 92bb16773c guard against trepassing max hierarchy level when descending, updates to cellview and traversal procs 2025-01-28 11:24:51 +01:00
stefan schippers 44cc37f013 optimization: comment out a call do dbg() in a deep, deep nested loop in draw_graph(), enable if needed 2025-01-27 15:33:46 +01:00
Stefan Schippers 56777a2944 fix mouse cursor restore when exiting graph and crosshair (not full-size) enabled 2025-01-27 13:10:53 +01:00
stefan schippers 8df1aa9996 some comments, removed redundant modifier key checks in callback() 2025-01-27 12:51:32 +01:00
stefan schippers 500d2e2bed some commentd added 2025-01-27 02:07:38 +01:00
stefan schippers 0d325f6957 force a crosshair draw at end of draw() (draw_crosshair(7,...)), intuitive interface direct drag of instances: fix some non-working combinations when stretch mode (y) is enabled. 2025-01-27 01:49:06 +01:00
stefan schippers bfd7895d4c edit_line_point() and edit_wire_point(): use mouse[xy]_snap instead of mouse[xy] for checking line/wire endpoint selection 2025-01-27 00:48:26 +01:00
stefan schippers 6669b4f177 renamed find_closest_net() to find_closest_wire() 2025-01-27 00:14:29 +01:00
stefan schippers f2cc1d0216 move_objects(RUBBER,...) and copy_objects(RUBBER): return immediately if snapped mouse coordinates not changed 2025-01-26 17:58:03 +01:00
stefan schippers bce1e652c6 refactored xctx->y_[12] to xctx->y[12] 2025-01-26 17:49:47 +01:00
stefan schippers 80a22c78a8 comments 2025-01-26 17:44:00 +01:00
stefan schippers 8086b5581e redraw_w_a_l_r_p_z_rubbers(): include zoom_rectangle(RUBBER), only execute if (snapped) coordinates changed, draw_crosshair(): only execute if (snapped) coordinates changed, find_closest_net_or_symbol_pin() is moved into draw_crosshair() so its calls are also minimized, do not allow z (zoom rectangle) if pending STARTWIRE, STARTLINE etc are in progress. 2025-01-26 15:19:22 +01:00
stefan schippers bbe8782bc0 more comments in callback(), add_wire_from_inst_pin() separated into add_wire_from_inst() and add_wire_from_wire(), changed the distance measurement for closest instance, works better with ituitive i/f, some edit shape point functions restricted to intuitive_interface only, to avoid too many combinations 2025-01-26 06:40:00 +01:00
stefan schippers ea5609dd0b more comments in callback() 2025-01-26 02:35:00 +01:00
stefan schippers 34f9ae73a0 more comments in callback() 2025-01-26 02:32:43 +01:00
stefan schippers 7e697672ce more comments in callback() 2025-01-26 02:00:07 +01:00
stefan schippers 70156a3bda intuitive interface, directly drag elements: default to wire stretch if enable_stretch is activated and normal move if using ctrl key and the other way around if enable_stretch is unset 2025-01-26 01:06:48 +01:00
stefan schippers 01989bba0c fix issue with previous fix, add enable_stretch parameter to select_inside() and select_rect() 2025-01-26 00:26:56 +01:00
stefan schippers 1bee3d766f included TheSUPERCD commit 260beff, if (full and only full) crosshair is displayed use snap mouse coordinates since mouse pointer is turned off; fixed an issue when selecting ridicolously small rectangles in find_closest_box() 2025-01-25 23:41:39 +01:00
stefan schippers dad3b78931 Add a line number in error report if failed sourced tcl scripts 2025-01-25 19:39:53 +01:00
stefan schippers 6cc7883e51 reduce overlap area when clearing crosshair, add return value to find_closest_net_or_symbol_pin() 2025-01-25 14:33:01 +01:00
stefan schippers 71aa4339bd add comment 2025-01-25 02:46:54 +01:00
stefan schippers 4700483fa4 draw_crosshair(): more logical what parameter values 2025-01-25 02:13:59 +01:00
stefan schippers 26bfe7691b add `xschem draw_hilight_net [on_window]` for quick draw or hilighted objects; add `xschem get_sim_sch` to get the current schematic hierarchy path, stripping off levels above the level the raw file was loaded. Strip off also leading dot; `xschem hilight_instname`: move fast option as -fast option; list_nets(): expand vector ports ; optimize update_op() for speed 2025-01-24 18:57:35 +01:00
stefan schippers 48264c0399 allow `xschem translate -1 string` to translate tokens that do not depend on specific instances; yet another change in wrap detection in graphs, always use simulator sweep-var instead of user specified sweep variable; simulated data will never wrap exactly to first value due to roundoff errors; -fast optionto `xschem hilight_netname` command 2025-01-24 03:52:20 +01:00
stefan schippers 7553222461 remove a piece of useless code in new_wire(), fix some MENUSTARTSNAPWIRE issues with crosshair drawing, enable no infix_interface operation for `W` command 2025-01-23 11:38:32 +01:00
stefan schippers 096eb126c1 comment in the code 2025-01-22 17:29:17 +01:00
stefan schippers 0824c1b9b8 fix garbage on screen due to crosshair cursor if copying by drag (Shift-click-drag) in intuitive interface (collision with snapped crosshair position) 2025-01-22 17:00:03 +01:00
stefan schippers 4e821586c2 replaced find_closest_net_or_symbol_pin() with new function that uses spatial hash table iterators for searching 2025-01-22 03:59:49 +01:00
stefan schippers 0c8631a101 MotionNotify events with Shift key down (and draw_crosshair enabled) will position the crosshair to the closest available landing point (inst pin or wire endpoint) 2025-01-22 01:57:09 +01:00
stefan schippers ed2a4f61c8 code formatting cleanups 2025-01-22 00:22:02 +01:00
stefan schippers 1015a9d71e added command `xschem set crosshair_layer` to change layer used for crosshair drawing 2025-01-21 16:50:31 +01:00
stefan schippers 7ee11e8dbc various fixes related to crosshair mouse display 2025-01-21 16:07:23 +01:00
stefan schippers 49aab703b4 set default value for crosshair_size tcl var to 0 2025-01-21 15:40:59 +01:00
stefan schippers 72d961aacd fix a regression where a mouse wheel zoom or schematic pan unexpectedly end an ongoing wire placement. Add xschemrc variable crosshair_size; if set to 0 draw full crosshair, if set to a small integer draw a small square around the mouse snapped coordinate 2025-01-21 15:38:19 +01:00
stefan schippers 99b0bba5b8 if big_grid_points is not set draw always thin axes and mouse crosshairs; dashed axes 2025-01-21 12:34:14 +01:00
stefan schippers 2b05b365e5 If opening a non existing xxxx.sym file euristically set netlist_type to symbol --> better implementation 2025-01-21 04:09:08 +01:00
stefan schippers 5d52d322b5 symbol_in_new_window(): if no symbol selected build file name for symbol of current schematic and open it in a new tab. If opening a non existing xxxx.sym file euristically set netlist_type to symbol. proc open_sub_schematic: if no symbol selected for subcircuit to open, open the corresponsing schematic of the symbol we are editing 2025-01-21 02:57:46 +01:00
stefan schippers 6adee35b89 update make_sym.awk to use a polyline instead of segments for the symbol box 2025-01-20 23:03:33 +01:00
stefan schippers c9f60ce1c8 clanup / better implementation of previous fix 2025-01-20 18:39:46 +01:00
stefan schippers c52ded63b0 complete previous fix 2025-01-20 18:21:12 +01:00
stefan schippers 7523c0015c correctly mangle generator calls with parameters containing forbidden characters. Transliterate to get valid SPICE identifiers 2025-01-20 17:54:06 +01:00
stefan schippers 724c264c9d allow Shift-T command (toggle spice_ignore attribute) to cycle through ignore-shorted-unset on selected elements 2025-01-20 16:48:31 +01:00
stefan schippers 0e53359ee0 update proc cellview 2025-01-20 14:52:30 +01:00
stefan schippers cb38deffa6 add -keep_symbols to `xschem load command`, options changed to have a leading dash, and moved at beginning of command arg list; `xschem netlist` command: add -keep_symbols option; `xschem setprop` command: move fast and fastundo to beginning of arg list with a leading dash; update proc cellview 2025-01-20 02:30:46 +01:00
stefan schippers 4f31c024c8 add option -noalert to `xschem netlist` command, update `proc cellview` 2025-01-19 23:29:41 +01:00
stefan schippers 16121b6e07 keep selection if aborting a move operation. This was probably a regression 2025-01-19 14:13:57 +01:00
stefan schippers 2bd1c79cd5 enhance drawing wires in intuitive_interface by dragging away from an instance pin or wire endpoint. Allow set manhattan/oblique direction as with w keybind 2025-01-19 13:59:18 +01:00
stefan schippers 4759d58ad5 add a prepare_netlist_structs() in get_pin_attr() to update net names for @#pin tokens 2025-01-19 02:31:58 +01:00
stefan schippers 6dcc9fd7c5 allow Shift-Click to terminate snapped wire placement (in addition to Shift-W) 2025-01-18 23:50:04 +01:00
stefan schippers ca1035eca1 add no-infix (set infix_interface 0) operation to move and copy operations 2025-01-18 21:59:04 +01:00
stefan schippers cfb491adb3 draw_crosshair(): parameter del renamed to what; @spice_get_current: special handling for resistors that are converted to b-sources: i(@r.x4.r1[i]) --> i(@b.x4.br1[i]) 2025-01-18 12:38:12 +01:00
stefan schippers 025823f14c `xschem go_back 0` allows to go up in hierarchy *NOT* saving a modified schematic 2025-01-17 18:11:35 +01:00
stefan schippers 151241afc7 add new command `xschem get modified` (returns 1 if circuit needs to be saved) 2025-01-17 17:48:02 +01:00
stefan schippers ac8db614c0 infix_interface xschemrc variable (default=1) can be set to 0 to disable infix (need to click a point after bindkey); disable warnings from graphs with autoload=1 if no raw file or matching analysis found; add m parameter (multiplicity) to bsource.sym, cmos_example.sch; remove dependency on external model file, use ngspice provided mos model 8 bsim3 models. 2025-01-17 17:15:48 +01:00
stefan schippers c57c49fde8 Hiding the TEXT layer will disable only symbol texts on that layer, not all texts, `proc select_layers` make the widget non-modal 2025-01-16 20:37:19 +01:00
stefan schippers ca6b8fe85b end_shape_point_edit(): fix erroneous set_modify because comparing unsmapped mouse saved coords with snapped actual mouse coords 2025-01-16 17:19:42 +01:00
stefan schippers f2225677cc fix regression in (V) cursor movement when multiple side-by-side graphs are present 2025-01-16 16:03:34 +01:00
stefan schippers bcca65da90 translate(), @spice_get_current, typo led to missing argument in printf() 2025-01-16 15:35:11 +01:00
stefan schippers 315c5bd600 added symbol attributes @spice_get_current_<param>, @spice_get_modelparam_<param>, @spice_get_modelvoltage_<param> 2025-01-16 02:52:52 +01:00
stefan schippers f79f9ecf1d removed dbg mesages 2025-01-15 19:12:30 +01:00
stefan schippers f2b9d0c6f3 added attribute @spice_get_current<n> for retrieving current through terminal <n> of primitive device; example: @spice_get_current2 to get base current of BJT device 2025-01-15 17:39:59 +01:00
stefan schippers 7d6c3f4764 destroy_all_tabs() do a final redraw to avoid inconsistent screen after some tab removals 2025-01-15 03:11:12 +01:00
stefan schippers 10991e662c added `xschem symbol_base_name` command to get the base symbol a symbol defined by instance `schematic` attribute comes from; updated `celview` procedure 2025-01-15 00:44:39 +01:00
stefan schippers a24145c16c revert change `LCC symbols: make 1st LCC level pins display spice_get_voltage annotation data` (not working as expected) 2025-01-14 01:13:14 +01:00
stefan schippers b0973ae8c0 add_pinlayer_boxes(): fix uninitialized bb[PINLAYER][i].fill, LCC symbols: make 1st LCC level pins display spice_get_voltage annotation data 2025-01-13 17:30:11 +01:00
stefan schippers 6cca3fefc4 add debug line in load_sym_def() 2025-01-13 13:30:15 +01:00
stefan schippers 0920c6804d comments and indentation in save.c 2025-01-13 11:58:16 +01:00
stefan schippers d05b7fa389 update schematic backannotation on cursor2 position if setting it numerically (Right button click on cursor) 2025-01-12 17:06:44 +01:00
stefan schippers 8da888a119 fix uninitialized `raw` pointer in graph_fullxzoom() and graph_fullxzoom() 2025-01-12 00:08:41 +01:00
stefan schippers 66a6c913e3 removed warning msg 2025-01-11 22:45:42 +01:00
stefan schippers 7d0a0e82bf name_unlabeled_instances() commented out redundant (never happens) check 2025-01-11 20:24:16 +01:00
stefan schippers a7d5865ab8 fix erroneous `all pins disconnected` warning when netlisting pin-to-pin connected element chains 2025-01-11 20:16:01 +01:00
stefan schippers bca1110282 add option -nohier to `xschem netlist` command, correctly restore netlist_dir at end 2025-01-11 17:55:46 +01:00
stefan schippers 7484a6363c interpret `xschem symbols {}` as `xschem symbols` (simpler for scripts), update proc cellview 2025-01-11 15:30:22 +01:00
stefan schippers 172ab4081d changed `xschem is_symgen` to `xschem is_generator` as name is more appropriate 2025-01-11 14:17:30 +01:00
stefan schippers 02d992d2a6 fix error checks in get_sch_from_sym() 2025-01-11 14:10:02 +01:00
stefan schippers 5161f3dc0a some doc updates and comments, error checks in get_sch_from_sym() 2025-01-11 14:08:23 +01:00
stefan schippers 9d54269d25 doc updates (@spice_get_node) 2025-01-11 01:34:41 +01:00
stefan schippers 69ddd2966c get_sym_name(): use with_quotes=6 in extraction of schematic attribute as done in get_additional_symbols() and get_sch_from_sym() 2025-01-10 17:40:16 +01:00
stefan schippers be76009a3c remove dbg msg 2025-01-10 17:15:53 +01:00
stefan schippers a0da5c7b51 fix resolution of symbol references like: symbolgen.tcl(buf), when descending into symbol correctly recognize generator and descend into generated symbol 2025-01-10 17:14:13 +01:00
stefan schippers 1d5ff21130 get_sch_from_sym() fix detection of empty instance `schematic` attribute 2025-01-10 16:51:20 +01:00
stefan schippers aeb57781a8 fix some c89 violations (warnings) 2025-01-10 16:14:24 +01:00
stefan schippers 59e7872f67 reduce some pointer indirections to array subscripts (readability) 2025-01-10 16:00:47 +01:00
stefan schippers 0a3fd95e06 code formatting 2025-01-10 14:58:10 +01:00
stefan schippers 882e20397d get_additional_symbols(), get_sch_from_sym(): allow to resolve schematic calls like: schematic=generator.tcl(@n\) --> let get_tok_value() return backslashes and remove surrounding "..." quotes 2025-01-10 14:12:05 +01:00
stefan schippers a29814d728 get_additional_symbols(), get_sch_from_sym(): allow to resolve schematic calls like: schematic=generator.tcl( @n ) where n=11 is defined in instance attrs. some fixes in cursor movement in waves_callback() 2025-01-10 06:03:52 +01:00
stefan schippers 2c1e1c1fe7 refactoring and cleanup of wave_callback() -8- 2025-01-10 02:35:50 +01:00
stefan schippers ef5d0e1b96 str_replace(): add parameter to specify number of substituitions (or all); replaced atof_spice() with atof_eng() in various parts related to numbers that do not come from spice netlists; fix numerical setting of cursors if log scale is set (wrong preset was shown); make wave labels in graph scale with gr->magx as X-axis labels; fix scaling roundoff issues in dtoa_eng(); add new `@spice_get_node <spice_node> ` token (where spice_node may contain @variables) in symbol texts to display indicated spice node value. Does not use TCL, thus faster and less "quoting hell" problems 2025-01-10 01:52:54 +01:00
stefan schippers aa36cbb897 @path expansion in translate(): remove path components above the level where raw file (if any) was loaded; added @spice_get_current in bsource.sym 2025-01-09 15:35:35 +01:00
stefan schippers c6a4e8b942 refactoring and cleanup of wave_callback() -7- 2025-01-09 04:23:23 +01:00
stefan schippers cd3eaf23ea refactoring and cleanup of wave_callback() -6- 2025-01-09 04:11:30 +01:00
stefan schippers 52b9cc1ee6 refactoring and cleanup of wave_callback() -5- 2025-01-09 00:46:42 +01:00
stefan schippers ff7c767c4d propagate drawing graph Hcursor functions to SVG/PDF exports 2025-01-09 00:31:11 +01:00
stefan schippers 7d7b381b7b refactoring and cleanup of wave_callback() -4- 2025-01-09 00:17:55 +01:00
stefan schippers ed9dc9b211 disable debug msg 2025-01-09 00:12:07 +01:00
stefan schippers 45a0af8005 fix unwanted clear of GRAPHPAN bit in button3 operations in wave_callback() 2025-01-09 00:11:04 +01:00
stefan schippers 444eb47eb5 refactoring and cleanup of wave_callback() -3- 2025-01-08 22:19:58 +01:00
stefan schippers d1e2328eb3 refactoring and cleanup of wave_callback() -2- 2025-01-08 21:12:59 +01:00
stefan schippers bbdfd3c61a refactoring and cleanup of wave_callback() 2025-01-08 16:36:45 +01:00
stefan schippers 0d7d1f5364 implemented drag with right-button pressed on left of Y axis to do a Y area zoom 2025-01-08 15:05:11 +01:00
stefan schippers 12a9276ee0 optimization in plotting routines: skip unwanted datasets, if no dc simulation there is no need to detect sweep variable wraps 2025-01-08 13:27:07 +01:00
stefan schippers 182b55adf8 fix some issues when setting numerical position of cursors (spurious activation of `GRAPHPAN`); proc input_line: return `preset` argument on Cancel 2025-01-08 01:21:05 +01:00
stefan schippers 149ee5fdc0 further refactoring of waves_callback() (reduce first loop over graphs to single iteration on graph_master) 2025-01-07 14:31:26 +01:00
stefan schippers d2321f1eeb cleanup code in waves_callback() 2025-01-07 13:04:41 +01:00
stefan schippers 15738bbf51 better drag waves in x direction (continue even if dragging outside of graph) 2025-01-07 12:03:49 +01:00
stefan schippers a3e7610d83 horizontal cursors in graphs 2025-01-07 04:20:32 +01:00
stefan schippers 9fda7e2f96 wip: put code in place for horiz cursors in graphs 2025-01-06 13:14:12 +01:00
stefan schippers 783fa04eb6 `xschem save` --> save_schematic(): added `fast` argument (do not update window/tab/sim button states for speed); `xschem select instance` --> select_element(): added `nodraw` argument in addition to existing `fast` (avoid drawing selected item for speed) 2025-01-05 13:27:49 +01:00
stefan schippers 4d76708534 save_schematic(): remove set_modify(2) if same name. need to add a dedicated parameter for save without title update 2025-01-05 11:27:18 +01:00
stefan schippers fd5fec64aa make uninstall: remove empty directories (share/xschem and share/doc/xschem); make command `xschem help` work also if running in src/ directory; use XSCHEM_SHAREDIR shell variable (if defined and directory existing), else set XCSCHEM_SHAREDIR to `pwd` if started from src/ dir, else set compile set XSCHEM_SHAREDIR. xschemrc can override this XSCHEM_SHAREDIR setting. 2025-01-05 01:29:04 +01:00
stefan schippers 09813f8e1e restrict `menu unpost by click` hack to 8.6+ tcl versions. the hack works on tcl8.4, but lets avoid potential problems on jurassic systems 2025-01-04 12:47:13 +01:00
stefan schippers f824f26c4f click on posted menu will unpost it. Now no more Motion event is needed to repost again the menu by another click 2025-01-04 12:39:22 +01:00
stefan schippers ee0de61220 add `2` and `3` argument to set_modify (do only clear/set modified flag), save() -> save_schematic(): do not update title/tab names if saving with same name. 2025-01-04 12:24:22 +01:00
stefan schippers 69a23355fb refactor some debug print messages for NULL strings 2025-01-04 11:33:58 +01:00
stefan schippers 4e2584341c updates on cellview and traversal; hack on Menu Button event handler to allow a click on a posted menu to unpost it. 2025-01-04 04:16:43 +01:00
stefan schippers 0e63e1bfff remove commented dirty hack 2025-01-03 13:48:23 +01:00
stefan schippers abc88e8819 Revert dirty hack to make a click on an open menu close it, still some issues 2025-01-03 13:15:30 +01:00
stefan schippers ed1149edb2 dirty hack to make a click on an open menu close it 2025-01-03 13:09:18 +01:00
stefan schippers e77cc334f4 has_included_subcircuit() and proc has_included_subcircuit: compare and reorder only ports with associated symbol pin. do not consider `extra` ports assigned via attributes 2025-01-03 00:49:54 +01:00
stefan schippers 294a10bd5a go_back(): if a write of modified schematic is requested before going up but write fails (for example due to permission issues) then issue a warning and go ahead anyway. Previously xschem got stuck in the lower hierarchy with no way to escape. If xschem load is done with `noundoreset` option do not change some context data (xctx->currsch, xctx->sch_path, xctx->portmap, xctx->sch_inst_number, ...). Various fixes/enhancements in cellview and traversal procedures. 2025-01-02 22:38:40 +01:00
stefan schippers 45382d1b1d fix `s` command (simulate) to work with new menu system 2025-01-02 13:22:34 +01:00
stefan schippers 2bd205427d load_schematic(): do not set xctx->time_last_modify if called with reset_undo == 0; fix persistent command mode when started from menu; update traversal procedures 2025-01-02 12:52:51 +01:00
stefan schippers 8fa2c9c22a add all_hierarchy parameter to proc traversal 2025-01-01 11:48:33 +01:00
stefan schippers 041d90548d xschem.tcl toolbar procs reordering 2024-12-31 22:57:28 +01:00
stefan schippers 3a8d36d0fe update add_custom_menu.tcl to new menu system, some refactoring in xschem.tcl for toolbar (add_toolbuttons procedure) 2024-12-31 21:00:09 +01:00
stefan schippers 05dc1a4772 update add_custom_menu.tcl for new menu system 2024-12-31 13:05:48 +01:00
stefan schippers b23b162f2c rewritten the menu system using a menubar vs the menubuttons 2024-12-31 03:51:05 +01:00
stefan schippers 2c8468ee1c add custom binding to MenuButton Button-1 events so clicking on a posted menubutton will unpost it 2024-12-30 19:03:06 +01:00
stefan schippers 1a14adaade Hovering other menu titles while one is open will drop down the other menus, even wihout holding down mouse button1 2024-12-30 15:31:59 +01:00
stefan schippers 1e75d69dfe remove unused variable mbg in menu system 2024-12-30 11:20:07 +01:00
stefan schippers c45ae9248b slightly bigger font for traversal 2024-12-30 01:11:37 +01:00
stefan schippers 724c67435c updates in traversal proc, fix searching for xschem_man.html if clicking the link into the About dialog and running xschem from the src/ dir. 2024-12-30 01:04:40 +01:00
stefan schippers 0ba037894f update keys.help 2024-12-29 21:37:17 +01:00
stefan schippers 135022a39d removed src/traversal.tcl 2024-12-29 19:39:29 +01:00
stefan schippers 0b4cedbf05 add Button3 drag for rectangle zoom, move ctx menu to Button3Release, updates in traversal and cellview 2024-12-29 19:35:49 +01:00
stefan schippers b68731481c updated cellview and traversal procedures 2024-12-29 14:47:27 +01:00
stefan schippers be39ce970b remove traversal.tcl from src/Makefile.in 2024-12-29 12:52:28 +01:00
stefan schippers 0ffd327b85 do not do a rectangle zoom (`z` key) if no minimum area is given; added `xschem get symbols` command; added `derived_symbols` in `xschem symbols` command; added menu `simulations->Keep symbols when traversing hierarchy`; created `proc cellview` and integrated `traversal.tcl` into xschem.tcl 2024-12-29 12:38:26 +01:00
stefan schippers 61c4f72c15 some `xschem test` benchmarks added 2024-12-24 03:15:50 +01:00
stefan schippers b16a5ef927 code comments 2024-12-23 12:24:06 +01:00
stefan schippers 3fecba878c fix double push_undo() call when adding a wire in intuitive_interface (by click and drag from a wire endpoint or symbol pin). This led to inconsistencies (spurious connecting dots on wires) when doing an Undo operation 2024-12-23 02:22:40 +01:00
stefan schippers 712b985333 proc edit_prop: better selection of value=".... \" .... \" ...": dont get confused by escaped quotes 2024-12-23 00:51:52 +01:00
stefan schippers 7a8ab78d11 restore rotten intuitive interface command ctrl-shift-click-drag to move a component creating wires if pins attached to components or wires 2024-12-22 18:49:58 +01:00
stefan schippers c4ebc92aa2 update xschem go_back command (pas integer notitle to go_back() function; simplify wrap handling vs sweep variable in draw_graph(), graph_fullyzoom(), calc_custom_data_yrange(), find_closest_wave() 2024-12-21 13:05:33 +01:00
stefan schippers 6682965dba make @spice_get_current work for pnp and npn symbols 2024-12-21 00:49:44 +01:00
stefan schippers b892ad8ac7 Make @spice_get_current report Id (drain current) for mos devices (defined as plain mosfets in model (ngspice syntax), may be to extend for Xyce) 2024-12-20 22:25:19 +01:00
stefan schippers 1ddafe3276 updated autozero_comp.sch to show saout histogram; xschem raw switch: do not call update_op() if not switching into a 1-point OP or DC sim 2024-12-20 11:56:53 +01:00
stefan schippers 47f0d2d57c improvements in raw_get_pos(), fix test_backannotated_subckt.sch (was not simulating anymore) 2024-12-20 02:28:38 +01:00
stefan schippers d9d75de337 remove dbg message 2024-12-20 01:19:02 +01:00
stefan schippers d03f3b52e1 bars for hystograms use squared lines, not rounded lines, added command `xschem raw pos_at node value` to find position (in raw file) where node = value 2024-12-19 23:53:11 +01:00
stefan schippers 7402385a82 fix regression from commit `graphs: always plot one point before x1 and one point after x2 of simulation`: 2-dimensional dc-sweeps did miss first or last point 2024-12-18 01:55:05 +01:00
stefan schippers da6532d8d8 doc updates (xschem image command) 2024-12-17 09:27:01 +01:00
stefan schippers 6b75aa62aa avoid a redundant set_modify(-1) in review_window("destroy"...) 2024-12-17 01:07:36 +01:00
stefan schippers 158ed8decc load_schematic(): do not invoke trim_wires (if enabled) if called non interactively with reset_undo == 0 (it will change name of top schematic in tab and window title while netlisting) 2024-12-16 16:44:56 +01:00
stefan schippers 5bc194f3a5 separated undo_initialized and mem_undo_initialized, so they can be used more interchangeably 2024-12-16 12:14:11 +01:00
stefan schippers b4423126ea add (disabled) debug message in proc set_tab_names 2024-12-16 09:09:39 +01:00
stefan schippers 8c4d5cb7b8 push_undo() correctly handle case when tmpdir can not be created (init_undo() fails) 2024-12-16 02:18:32 +01:00
stefan schippers cac5392a45 proc set_tab_names: call [xschem get schname] only once 2024-12-16 01:24:36 +01:00
stefan schippers 538d3bf2ad xschem raw values now returns full precision, no more 8 digit rounding, as this is undesirable for transient noise sims 2024-12-15 12:24:51 +01:00
stefan schippers 5eea0728c7 update in_memory_undo.c to be in sync with pop_undo(4, ...) 2024-12-14 22:39:13 +01:00
stefan schippers e8e217591d add verilator in addition to icarus verilog simulator 2024-12-12 12:45:24 +01:00
stefan schippers a97b47623f annotate_op: delete current raw file (to replace with new OP raw) ONLY if current loaded raw file is an OP simulation (npoints==1) 2024-12-11 01:54:31 +01:00
stefan schippers 13e38b803d annotate_op command only deletes loaded OP raw file (if any), does no more delete all loaded raw files. 2024-12-10 23:31:09 +01:00
stefan schippers 4bdfa44575 use ttk::combobox instead of spinbox where available (tcl > 8.4) for graph Line/HistoH/HistoV selection 2024-12-10 11:41:35 +01:00
stefan schippers 48d7522a8c remove debug messages 2024-12-10 00:37:26 +01:00
stefan schippers 893c48d7dd fix some HistH graph draw artifacts when panning/zooming the graph 2024-12-10 00:07:33 +01:00
stefan schippers 8bb69b65e9 HistogramH and HistogramV graph modes 2024-12-09 17:25:40 +01:00
stefan schippers 2a7ee749ba xschem raw add: add optional sweep_var parameter 2024-12-09 00:00:27 +01:00
stefan schippers 2ec8c61757 fix previous commit for digital graphs 2024-12-07 11:40:49 +01:00
stefan schippers f73cf30452 added a fix in draw_graph_points() to avoid waves to be drawn outside of the graph box container on Windows, where there is no working XSetCLipRectangles() 2024-12-07 00:56:04 +01:00
stefan schippers 963e877497 Allow wave expressions with spaces on a single line without quotes ("...."). Quotes can be used for wave expression on multiple lines. Side effect: multiple nodes can no more be specified on a single line separated with spaces. Use newlines 2024-12-05 02:54:08 +01:00
stefan schippers 75b5cc13f4 added `-undo 1` to all text widgets. If text_replace_selection is enabled replace selection when pasting also in entry widgets as done with text widgets 2024-12-04 16:38:35 +01:00
stefan schippers 0734414bd7 simplify some regsub pattern substitutions in xschem.tcl 2024-12-04 13:41:52 +01:00
stefan schippers ce99d093c4 screen grab: if draw crosshair is enabled and a screen grab is done show default mouse pointer 2024-12-01 11:55:46 +01:00
stefan schippers 5ae730a5fb waves_selected(): do not check sch_waves_loaded() to return is_inside 2024-11-30 10:57:06 +01:00
stefan schippers 17a564062c graphs: always plot one point before x1 and one point after x2 of simulation waves so they will extend to full graph area even if there are few simulation points. 2024-11-30 01:16:37 +01:00
stefan schippers ebc4babdd4 add graph_use_ctrl_key variable (default 0) to force holding Control key to interact with graphs. This avoid graphs "stealing" events that are expected to work on the schematic 2024-11-29 22:52:36 +01:00
stefan schippers 7ca8857302 starting a move (m) or copy (c) operation when nothing is selected does not change ui_state. Clearly a bug 2024-11-29 01:30:38 +01:00
stefan schippers 8eb60ae32b allow full specification of file selector window geometry and pane sizes. examples in xschemrc 2024-11-28 11:37:21 +01:00
stefan schippers 471675ad49 fully remember panedwindow (vertical and horizontal) sash positions in load_file_dialog 2024-11-28 10:06:37 +01:00
stefan schippers e2f19d8b7c better implementation of previous fix. if read_dataset() does not find a matching dataset, delete only current raw structure, not all loaded raw files. 2024-11-28 03:51:27 +01:00
stefan schippers 9c48617e4e xschem annotate_op command: if no OP analysis is found in raw file try to load a DC sweep and use first point for schematic annotation. This is done because Xyce stores OP data as a 1-point DC sweep 2024-11-28 03:18:32 +01:00
stefan schippers f9b341ef98 revert last changes in draw_graph_points(). Optimization was already done. 2024-11-28 00:51:38 +01:00
stefan schippers b642d63215 avoid unneeded calls to draw_crosshair(1) if crosshair is not enabled. Double performance of draw_graph_points() (do not draw on xctx->window if XCopyArea drawing model (now the default) is enabled 2024-11-27 16:13:48 +01:00
stefan schippers ca6fb60ce7 added `legend` checkbutton in graph dialog box to switch off signal legend in analog graphs 2024-11-25 14:29:19 +01:00
stefan schippers cf7933b99d save.c: do not assume complex data for `constants` raw file sections, deduce data type from Flags line (both complex and real constants sections exist) 2024-11-25 12:48:25 +01:00
stefan schippers 7fccc2eed1 better xschem bbox command 2024-11-22 03:12:57 +01:00
stefan schippers 4fff388f99 add `constants` plot type in graph sim type drop down menu 2024-11-22 00:11:37 +01:00
stefan schippers 893bd20901 remove a clipping condition in draw_graph_points() as graph-area clip is set in draw_graph() 2024-11-21 10:58:15 +01:00
stefan schippers 67a4407952 fix typo in condition (draw_pixmap instead of save_pixmap) 2024-11-16 10:19:34 +01:00
stefan schippers 7e699d94e5 indentations in xschem.tcl 2024-11-14 20:41:54 +01:00
stefan schippers 1c69848325 correctly handle `set_title & 2` in descend_schematic() 2024-11-14 00:35:21 +01:00
stefan schippers 819e2f0969 limit precision of (now unsnapped) selection rectangle dimensions in status line 2024-11-13 23:05:46 +01:00
stefan schippers de9c40af65 allow file extension spec in tmpfile creation, update index.html 2024-11-13 12:04:56 +01:00
stefan schippers 4fca204e8d improvement of previous commit. Sanitize paths ending with ////, like /aa/bb/cc/// 2024-11-12 22:48:21 +01:00
stefan schippers 169d743b33 insert symbols should tolerate paths in XSCHEM_LIBRARY_PATH ending with `/` 2024-11-12 20:58:09 +01:00
stefan schippers 20359ed43e update license info. Remove unneeded newline saving in version line of .sch/.sym files, remove c89 flag based on lib versions 2024-11-12 20:23:18 +01:00
stefan schippers aa95f0ff9d Small changes to allow build with tcl-tk 9.0 2024-11-12 01:16:43 +01:00
stefan schippers 127a2a0221 add needed include <stdarg.h> in scheduler.c (needed, probably some library or other include file was sourcing it). 2024-11-11 20:59:29 +01:00
stefan schippers 63ac9ccbb9 update Changelog for 3.4.6 2024-11-11 17:17:42 +01:00
stefan schippers dd33a067de select rectangles are unsnapped. much easier to select small objects 2024-11-10 09:53:37 +01:00
stefan schippers 346666e13d draw_graph_grid(): handle NaN in y-data , avoid infinite loop 2024-11-07 00:39:53 +01:00
stefan schippers b7e39700d4 add ability to read ASCII raw files 2024-11-06 11:59:00 +01:00
Stefan Schippers bb49cc9b26 fix incomplete line in actions.c 2024-11-05 20:09:04 +01:00
stefan schippers 92c99c10f9 get_additional_symbols(): some sanity checks, descend_schematic() more options in set_title argument (avoid set title, avoid processing pins/nets, avoid descending into i-th xdec[3] instance, descend as a whole xdec[3:0], add `xschem get_additional_symbols what` command, allow `xschem get_sch_from_sym -1 inv.sym` to get schematic associated with symbol. hier_psprint(): avoid printing / listing duplicate schematics, improved traversal.tcl 2024-11-05 13:59:37 +01:00
stefan schippers 0bd6ccef86 select_element(): do not draw selection if fast argument given 2024-11-03 10:33:11 +01:00
stefan schippers e26e03ff0b comments on top of change_sch_path() 2024-11-03 00:23:49 +01:00
stefan schippers 94d5c44599 xschem change_sch_path command for changing the current path we are descended in; set_title parameter for xschem descend and xschem go_back (optimization for faster scripts). optimized utility procedure traversal.tcl. Catch glob pattern errors in proc setglob 2024-11-03 00:22:40 +01:00
stefan schippers f3abdf2eb8 avoid another crash in case of malformed raw files (if raw->npoints not allocated return without attempting to read raw file) 2024-11-01 00:27:29 +01:00
stefan schippers 65bd4ce766 fix is_quoted() (reported "aaa\\\"bbb" as unquoted) 2024-10-31 11:06:19 +01:00
stefan schippers 71d5481dc8 move definition of my_memmem() outside of an #ifdef 2024-10-28 19:15:13 +01:00
stefan schippers c342a1c41f update svgdraw and psprint to recognize svg embedded images. svgdraw exports it as embedded svg 2024-10-28 18:55:13 +01:00
stefan schippers 76c1425180 get_surface_from_file(): better error checking 2024-10-28 12:45:50 +01:00
stefan schippers 17146a7cf7 get_surface_from_b64data() for svg images: create cairo surface only if filter_data() went successfully 2024-10-28 12:12:11 +01:00
stefan schippers 9894d31437 when inserting a svg image automatically set the filter attribute to rasterize svg to png (if tcl variable svg_to_png is set in xschemrc), "rsvg-convert" or "inkscape" or imagemagick "convert" can be used. see template xschemrc in src/ 2024-10-27 13:06:49 +01:00
stefan schippers 2c82e26dcb when importing svg images with a svg->png filter (like rsvg-convert) keep source svg data in the image_data attribute instead of the rasterized data. This will make these images scalable and schematics will be smaller (if using small vector SVGs) 2024-10-27 03:04:55 +01:00
Stefan Schippers 426cf9c33a revert change "draw_image(): do RECTORDER() before taking *x1, *y1", as it messes up images in rotated /flipped symbols 2024-10-26 18:09:12 +02:00
stefan schippers a7cded9f19 fix crash if multiple raw files are loaded and last one fails loading due to corrupt raw file 2024-10-24 22:16:46 +02:00
stefan schippers f8a676aebf avoid rasiing an error when typing a raw file with some tcl variables (like $netlist_dir/...) in Raw file textbox in graph dialog 2024-10-24 19:47:28 +02:00
stefan schippers 8de9004468 added operator "cph()" to transform discontinuous phase ph(xxx) in AC analyses to aontinuous phase, like ngspice cph() function. Usage: instead of ph(out) use "ph(out) cph()" 2024-10-16 17:02:36 +02:00
stefan schippers fa699fe2f1 change_elem_order(): use input_line instead of text_line dialog 2024-10-14 21:59:39 +02:00
stefan schippers 30e407b743 add "Properties" menu for "Change selected object insertion order" (Shift-S) 2024-10-14 21:41:07 +02:00
stefan schippers 02a891b173 further streamlined hash lookup functions 2024-10-14 15:35:53 +02:00
stefan schippers c0474a139d simplified hash table lookup functions (indirect pointer) 2024-10-14 14:39:22 +02:00
stefan schippers e4d9594065 small cosmetic changes in hash tables (initialization of next pointer) 2024-10-14 12:13:19 +02:00
stefan schippers 98475e328b avoid triggering tclcommand -> launcher() when dragging mouse with ctrl key around objects with such attribute 2024-10-12 20:47:34 +02:00
stefan schippers d387bb911d add commented example for custom radiobutton menu entries in add_custom_menu.tcl 2024-10-10 14:28:36 +02:00
stefan schippers baad052431 fix a potential crash (premature free() of pointer) when editing graph node names with % (dataset) specifier 2024-10-10 01:45:50 +02:00
stefan schippers 1b734d5202 fix refression (color of highlighted texts in only_probes view mode) 2024-10-07 15:50:29 +02:00
stefan schippers 835b05ce9f subst_token(): if s is empty and tok, new_val are gien just set return string to tok=new_val (no newlines whatsoever) 2024-10-05 11:43:57 +02:00
stefan schippers 4311ac424a handle NULL analysis type in debug messages (extra_rawfile()), recursive value substitution in symbol displayed strings: if translated text begins with @ search for recursive upper level definitions for text following @, example: @model symbol text, instance has model=@modeln, upper instance has modeln=nfet: resolve symbol text and display "@model" as "nfet", proc inutile: add optional wait argument to block xschem while dialog displayed 2024-10-03 13:08:32 +02:00
stefan schippers 95c7a68c92 enhance xschem print command (allow to specify bitmap size while using selection to indicate the boundbox to export) 2024-09-29 00:16:05 +02:00
stefan schippers bb1a1557bc svg and ps/pdf export: do not include data for offscreen graphs or images to reduce file size 2024-09-24 11:10:30 +02:00
stefan schippers 2372828c22 svgdraw and psprint: draw text after images as done in draw.c. Correct postscript / pdf image zoom factor from 0.97 to 1.0 to match scaling with other xschem elements. 2024-09-24 00:50:10 +02:00
stefan schippers aaac47720f draw_image(): add cairo_flush() to flush pending paints. In some cases a black square was exported instead of the image... Update Changelog for upcoming 3.4.6 2024-09-23 23:17:19 +02:00
stefan schippers a79e4304d9 draw_image(): do RECTORDER() before taking *x1, *y1 2024-09-23 15:57:32 +02:00
Stefan Schippers adb855db0b do not reset xctx->netlist_name after doing `Netlist` from gui (xschem netlist -erc) 2024-09-17 20:31:28 +02:00
stefan schippers f92dcfc49b add "proc ev7" (same as "proc ev", 7 significant digits) 2024-09-17 16:55:26 +02:00
stefan schippers 0afa12c3fb proc edit_prop: correctly set editprop_sympath when tcleval(...) is used 2024-09-16 16:55:09 +02:00
stefan schippers 2ef4b88146 sym_vs_sch_pins(): do tcl substitution on symbol references found in schematic being compared with symbol 2024-09-15 22:08:39 +02:00
stefan schippers 4ff7d0e2f8 load_sym_def(): process tcleval(....) (if present) in `name` argument (use tcl_hook2()) 2024-09-14 23:31:26 +02:00
stefan schippers 88b44db333 node_hash.c optimization: use inst[].lab instead of get_tok_value(..., "lab"...) 2024-09-14 09:52:06 +02:00
stefan schippers dfe2e05603 let symbol name entry box in component edit property dialog box expand in X direction if dialog box is enlarged 2024-09-12 00:36:52 +02:00
stefan schippers ba7e50ccc1 update hash calculation in xschemtest.tcl for LCC_instances netlist (due to changes in schematic) 2024-09-10 22:38:44 +02:00
stefan schippers 1108a71263 replace "UNDEF" with "-" in backannotated nodes that have no value in raw file. 2024-09-09 23:15:05 +02:00
stefan schippers a065fb93cc draw node names in graphs even if specified file / analysis (graph rawfile or sim_type attributes) is not loaded 2024-09-09 13:20:02 +02:00
stefan schippers ad96e222f1 if autoload is set in graph and a filename is given (rawfile graph attr) load raw file immediately when drawing graph. Don`t wait for user to load an intiial raw file to trigger auto loading 2024-09-08 13:43:29 +02:00
stefan schippers e5015488f3 double clicking in the center of a graph will now bring up the graph edit attributes dialog box even if no raw file is loaded 2024-09-07 10:11:52 +02:00
stefan schippers 3f4004fdca set verison to 3.4.6RC (Release Candidate) to avoid confusion 2024-09-07 00:01:39 +02:00
stefan schippers 1b6612669d bump version to 3.4.6, will be next release when fully tested 2024-09-06 23:39:16 +02:00
stefan schippers 1dd3e28b32 remove memory tracking alloc IDs 2024-09-06 22:27:05 +02:00
stefan schippers 391464bab9 fix another small memory leak due to tclvareval("xschem exit...")--> use tcleval() 2024-09-06 22:19:36 +02:00
stefan schippers 882f7f7434 fix memory leaks introduced since introduction of my_expand() 2024-09-06 18:33:09 +02:00
stefan schippers fddc4650d1 graphs will autoload (if autoload checked) raw data even if no raw file is specified in graph dialog box (use current loaded raw file, usually a different analysis) 2024-09-06 16:57:13 +02:00
stefan schippers 291ba02339 save 4 vars ( node, ph(node), re(node, im(node) ) instead of 2 ( node, ph(node )for ac plots 2024-09-06 10:24:12 +02:00
stefan schippers 27c0fd1622 use atof_spice() instead of atof() to read cursor position data from graph attributes 2024-09-05 14:53:36 +02:00
stefan schippers a94e0363fd Add "private cursor" check box in graph dialog box. This allow the related graph to have separate "a" and "b" cursors. These cursor positions are saved with the schematic and are thus persistent when reloading the schematic. 2024-09-05 00:51:15 +02:00
stefan schippers d40a17df64 correctly set top_path and current_win_path in preview_window() when calling alloc_xschem_data(), don`t use fake window paths (alert_ proc uses parent win path) 2024-08-31 09:00:48 +02:00
stefan schippers 2b94e845c0 fix a bug in preview symbol displaying when inserting components. Toplevel .load widget was destroyed before cleaning preview data in preview_window(), so after some insertion preview was no more displayed. 2024-08-31 08:07:17 +02:00
stefan schippers 0e44462227 resolved_net(): correctly handle subschematic nets attached via port to upper global node. (return VCC instead of x1.VCC) 2024-08-29 22:10:06 +02:00
stefan schippers 1a2a925fbf remove backslashes in translate3() call in draw_temp_symbol(), as done in draw_symbol() 2024-08-29 08:13:06 +02:00
stefan schippers eb7b9ae018 removed pointless my_strcat() in translate3() 2024-08-29 07:56:22 +02:00
stefan schippers d06e999daf better backslash handling in translate3() 2024-08-28 23:37:43 +02:00
stefan schippers a725838850 fix escape recognition in translate3(), so in symbol texts it is possible to write \\@name to an instance attribute to get literal @name in displayed text instead of the instance name. fix typo in tutorial_use_existing_subckt.html. some schematic updates (no more enable show_pin_net_names tcl variable) 2024-08-28 09:39:43 +02:00
stefan schippers 4f0c3afa23 port ordering for a schematic .subckt line will always be deduced from the symbol if it exists, even if the symbol type is not "subcircuit" (so it will be used for also "primitive" type symbols). 2024-08-24 08:21:08 +02:00
Stefan Schippers 652268c4d0 add tcl xschemrc variable "select_touch" that enables selecting objects touched by the selection rectangle if dragging to the left. Previously this behavior was enabled by "incremental_select" that shows selected elements while dragging. These two optional behaviors are now enabled/disabled by separate variables 2024-08-14 20:43:47 +02:00
stefan schippers 9f761176ec highlight disconnected instances at end of netlisting to better find them 2024-08-14 10:12:13 +02:00
stefan schippers a32386c23c issue a netlist error (and report message) if instances with pins have *all* pins disconnected. This is in 99.999% of the cases an error. 2024-08-14 10:08:36 +02:00
stefan schippers f850877b1e added tcl variable top_is_subckt and related Simulation->LVS menu, that keeps top level wrapped inside a .subckt / .ends, as lvs_netlist does. However top_is_subckt does only that and will not enable lvs_format to differentiate device lines in netlist (usually used for LVS comparison). 2024-08-06 12:20:32 +02:00
stefan schippers 8b5ed3f32e symbols picked up from CWD are saved in parent design without absolute paths even if the CWD is not in XSCHEM_LIBRARY_PATH list of places. 2024-07-19 15:13:38 +02:00
stefan schippers d444673b88 add `xschem log_write text` command so erc error messages are written into errfp instead of stderr by tcl 2024-07-12 07:09:32 +02:00
stefan schippers 28bef9b06e fix_symbols: add optional pattern parameter: `fix_symbols 0 devices` 2024-07-09 08:53:24 +02:00
stefan schippers e8e4196da2 sym_vs_sch_pins(): check for not NULL pin_dir to avoid crash, as per Tim Edwards findings 2024-07-03 08:39:56 +02:00
stefan schippers 079c643be0 add graph_autoload to tctx::global_list 2024-06-23 16:06:13 +02:00
stefan schippers 89eb02f188 add autoload checkbutton in graph properties to automatically load or not custom graph-specified raw files 2024-06-23 15:59:22 +02:00
stefan schippers 64d5472963 allow `global` atttributes on instances of gnd.sym and vdd.sym to override symbol `global` setting. This allows also to set global=1 to net labels (lab_net.sym, lab_pin.sym) to make the net global. 2024-06-23 11:02:25 +02:00
stefan schippers e122a9764e ps/pdf export: use highlight colors on instances / wires that are highlighted 2024-06-21 14:19:11 +02:00
stefan schippers d42ecf96c5 add attribute text_layer_n=lay, where n = text object inside symbol instance to change its layer 2024-06-21 13:18:52 +02:00
stefan schippers 4e236750ed add abs_path parameter to get_sym_name() for more flexibility 2024-06-21 11:33:28 +02:00
stefan schippers 5ce1f01f43 correctly evaluate tcleval(....) in spice_sym_def attributes (ie after substituting @vars) 2024-06-21 01:41:42 +02:00
stefan schippers 36c79f262c add @symref (in addition to @symname) substitution in spice_sym_def processing 2024-06-21 01:03:08 +02:00
stefan schippers fa4d4a0970 enhance spice_sym_def used in instances (with schematic=...) by substituting @param with values defined in instance if any (param=xxx) 2024-06-14 08:55:35 +02:00
stefan schippers f267077e99 allow @symname , @param (param defined in symbol template string) translation in instance or symbol spice_sym_def attributes 2024-06-14 08:21:43 +02:00
stefan schippers d7c77718c0 fix erroneous select_touch() usage if incremental_select is set to 0 in xschemrc 2024-06-12 09:12:33 +02:00
stefan schippers efdb6b64ce removed previously added use_pwd_instead_of_current_dirname tcl variable: now a `.` in search path is always assumed to be [pwd] and not the directory of the currently opened schematic. This will hopefully fix an endless list of user complains when using symbols from dirs not listed in XSCHEM_LIBRARY_PATH. 2024-06-11 00:24:30 +02:00
stefan schippers 5e93182f26 add use_pwd_instead_of_current_dirname xschemrc variable to replace curr_dirname in `proc abs_sym_path` and `proc rel_sym_path` with [pwd] instead of [xschem get current_dirname] (the path of currently loaded schematic) 2024-06-10 18:19:58 +02:00
stefan schippers 9545eea546 fix tcleval called with 2 arguments on windows build in print_image() 2024-06-09 23:38:20 +02:00
stefan schippers 9282ea670e fix bus_tap netlisting with bus pin (pin # 1) connected to unnamed net. If Tap pin (pin # 0) was already named as #net... (unnamed net ) delete and take name from bus pin and tap index 2024-05-31 11:50:02 +02:00
stefan schippers 9f368d32e5 sim_pinnumber attribute on schematic pins will be used for top level .subckt pin ordering if no corresponding symbol exists when creating a spice netlist 2024-05-31 09:07:56 +02:00
stefan schippers 5969b0f472 proc ev, ev0, to_eng: evaluate expr at global scope so global vars will be expanded correctly ($path) 2024-05-29 09:41:52 +02:00
stefan schippers 18a0c5e624 Use by default *.{sym,tcl} pattern in insert symbol and component browser 2024-05-28 14:32:20 +02:00
stefan schippers 087aa8c3b9 if a full path is given with -N set netlist file name as well as destination path; allow right click waveforms to set to bold even if cursors are drawn 2024-05-27 08:03:52 +02:00
stefan schippers 84b73bcdf4 `xschem setprop rect layer number fill val` : update cacted .fill value 2024-05-25 10:39:47 +02:00
stefan schippers 2060ca8871 update all text_bbox() calls to account for tabs in bbox calculation 2024-05-24 18:05:37 +02:00
stefan schippers d04162b31e use $tabstop setting in tk text widgets 2024-05-23 01:36:24 +02:00
stefan schippers 17bf6f3efb handle TABs in draw_string() (also ps and svg draw_string()), tcl var tabstop (default = 8) sets the tab positions. 2024-05-23 00:57:45 +02:00
stefan schippers 747652ffe1 xschem swap_cursors does not redraw. Use xschem redraw for that 2024-05-22 00:13:25 +02:00
stefan schippers 65b9c1b04b added command `xschem cursor 1|0 1|0` to enable or disable cursors via cmdline 2024-05-22 00:05:41 +02:00
stefan schippers 7cd7d16f6a add command `xschem swap_cursors` 2024-05-21 23:46:00 +02:00
stefan schippers 8067f58b43 uniquify /tmp/xschem_web (--> /tmp/xschem_web_xxxxxx), also handle like /tmp/xschem_undo_xxxxx, create on startup and remove on exit. 2024-05-20 19:00:33 +02:00
stefan schippers 35cac9bf22 netlist errors (if xschemrun from cmdline) return exit code 10 2024-05-17 00:20:27 +02:00
stefan schippers 7b8acd97da do not allow wrap variable to be set in draw_graph() and graph_fullyzoom() if viewing multiple OP simulations converted to DC (allow_wrap) 2024-05-14 11:54:10 +02:00
stefan schippers 5a32a77fd3 fix regression (xschem load_new_window was not working anymore with web urls) 2024-05-12 23:52:05 +02:00
stefan schippers 6db52b125c fix missing type for sym_vs_sch_pins(all) 2024-05-10 08:06:39 +02:00
stefan schippers be06ed50cb if top level schematic has an associated symbol (.sym) file ensure their ports match, otherwise issue an error. if netlisting fails return non zero exit code if netlisting from command line 2024-05-09 02:10:45 +02:00
stefan schippers 5e5dc5c3e5 translate(): return @spice_get_* tokens in engineerring notation if no tcleval(...) is used (no further expr processing) 2024-05-04 09:02:34 +02:00
stefan schippers 60c5230727 resolved_net(): resolve nets passed to symbols via attributes, avoid using dtoa_eng() in returned spice voltages, use dtoa(), since it may be used further in tcl expressions. 2024-05-03 15:00:51 +02:00
stefan schippers 7d181e43a1 spice_get_voltage attributes: assume "0" and "GND" equal to 0.0V (not saved by simulator), added vgs and vds showing in nmos4.sym and pmos4.sym if show/hide->show hidden texts enabled 2024-05-03 12:10:37 +02:00
stefan schippers 02e0705bf4 little adjust default layer 11 color (green) 2024-05-02 17:44:56 +02:00
stefan schippers c544c5bd6e xinit.c: test for tcl_interactive existence before testing value 2024-05-02 17:33:43 +02:00
stefan schippers c7bf1300c1 some better code formatting 2024-05-02 17:24:31 +02:00
stefan schippers 91fafecffb added some @#pin_name:spice_get_voltage examples on symbols, if no voltage is found return "" instead of "--UNDEF--" 2024-05-02 15:19:34 +02:00
stefan schippers 501fb7943f removed completely menu View->Show/hide->Show net names on symbol pins 2024-05-02 14:41:15 +02:00
stefan schippers 9c750b5044 add @#pin:spice_get_voltage attribute for pin texts that displays voltage of net attached to pin. remove net_name=... attributes from symbols and instance global attributes since it is no more used. set default value for show_pin_net_names to 1. 2024-05-02 10:32:12 +02:00
stefan schippers ba44bfb337 config.h: generate HAS_LIBREADLINE, do not add #include line for libreadline (yet) as this is wip 2024-05-01 11:53:54 +02:00
stefan schippers 6f9ddff72f revert change `do not load XSCHEM_LIBRARY_PATH if options are given on cmdline`. if no file to load is given $XSCHEM_LIBRARY_PATH will be loaded regardless of command line switches 2024-04-30 11:00:37 +02:00
stefan schippers 5a4b2cc6e0 launcher(): issue a warning dialog box if no action is defined (url or tclcommand) 2024-04-25 12:22:15 +02:00
stefan schippers 9631cd2bcf launcher(): bring up an alert dialog if tclcommand did not execute successfully 2024-04-25 12:10:56 +02:00
stefan schippers 60d4fd2345 drc_check(): if no fet_drc procedure found do nothing 2024-04-25 09:13:23 +02:00
stefan schippers c871efa627 xschem image rectangles: allow to fetch urls using filter="tcleval(wget --quiet http://.... -O -)" and image="" 2024-04-22 18:00:15 +02:00
stefan schippers 62eb256159 xschem wave processor: added <, >, <=, >=, ==, != and contitional ? (3 operands) operator 2024-04-22 15:11:25 +02:00
stefan schippers 6fc89f8d0b added comments in developer_info man page 2024-04-19 23:53:36 +02:00
stefan schippers b525252612 preview_window() : BUG 2: test for NULL tkpre_window[i] 2024-04-19 19:17:18 +02:00
stefan schippers c485bcd8a2 preview_window() : BUG: fix order of statements 2024-04-19 19:12:23 +02:00
stefan schippers 34a06d964d preview_window() : allow up to 10 simultaneous preview windows open 2024-04-19 19:05:38 +02:00
stefan schippers 372b21ae07 no load XSCHEM_START_WINDOW if cli options given (2); remove one unneeded var in preview_window() 2024-04-19 17:08:37 +02:00
stefan schippers 6b54542ab4 do not load XSCHEM_LIBRARY_PATH if options are given on cmdline 2024-04-19 13:55:25 +02:00
stefan schippers 531a19ce59 doc updates (xschem raw values with dset = -1) 2024-04-19 12:32:41 +02:00
stefan schippers 00d367ae0c Add xctx->mouse_moved state var to better handle ctrl-clicks (launcher() trigger) 2024-04-18 20:47:06 +02:00
stefan schippers 69ecb82750 in intuitive_interface allow to trigger laucher() by ctrl-click (if no mouse is moved), do not clear set_first_sel() data in intuitive_interface when clicking (without moving) multiple objects, better recognize .subckr or .model name in device_model attributes 2024-04-18 11:40:51 +02:00
stefan schippers 83f62bfdf9 postinit_commands: print error message if execution of specified commands fails 2024-04-16 00:17:02 +02:00
stefan schippers 8d68beb914 added drc_check() function, that evaluates tcl scripts contained in symbol `drc` attribute. Used for checking allowed dimensions, mostly 2024-04-15 16:43:56 +02:00
stefan schippers 260256afb9 improve preview_window, to redraw current schematic just use `xschem preview_window draw` (no filename -> use current loaded one) 2024-04-14 23:55:47 +02:00
stefan schippers 3d20b44ced translate3(): add eat_escapes parameter 2024-04-14 11:38:35 +02:00
stefan schippers 9c766c5260 modernization of symgen.awk, fine tuning of create_symbol.tcl 2024-04-12 01:44:48 +02:00
stefan schippers 6a4131699a improve `xschem add_symbol_pin` command, add create_symbol.tcl procedure 2024-04-12 00:06:36 +02:00
stefan schippers 80e2c47b0e improve `xschem add_symbol_pin` command 2024-04-11 00:05:59 +02:00
stefan schippers 6de84a69e9 better detect wrap arounds (use sweep var, first column saved by ngspice) in multiple sweep dc sims 2024-04-10 12:25:22 +02:00
stefan schippers f88f9f8e2e do not exit is calling xschem with a non existent file on cmdline 2024-04-10 12:08:09 +02:00
stefan schippers 1d72478138 do full x/y zoom when switching log/linear x/y scales in graphs 2024-04-09 09:15:56 +02:00
stefan schippers 51a34ed4a7 get_raw_index(): look up node name as is, before trying upper/lower case 2024-04-08 00:06:18 +02:00
stefan schippers 60e55212d5 handle rot/flip transfofmations for ellipses inside symbols 2024-04-06 23:13:14 +02:00
stefan schippers 059badaccd fix flip / rotation of ellipses (no absolute angles) 2024-04-06 11:31:36 +02:00
stefan schippers ce1d4b4bbb initial support for drawing ellipses (from rectangle boxes) 2024-04-05 01:34:54 +02:00
stefan schippers 83660bc531 update bespice communication routines according to Gerard updates 2024-04-04 00:55:26 +02:00
stefan schippers 35dffef618 has_included_subcircuit(): extend case insensitivity also on included subckt pins vs symbol pins 2024-04-03 00:56:05 +02:00
stefan schippers bcd4e9367b has_included_subcircuit(): use lowercase symname to check with lowercase spice_sym_def included netlist to avoid case mismatches (spice is case-insesitive) 2024-04-02 23:54:40 +02:00
stefan schippers 5e96c84992 simplify draw_graph(): reduce redundant arrays measure_p, measure_x, measure_prev_x to scalars 2024-04-01 23:33:15 +02:00
stefan schippers b004618c25 explicit parameters to interpolate_yval() 2024-04-01 23:23:45 +02:00
stefan schippers 1ed64e95ca optimize a bit draw_graph() (no allocate measure_*[] vars if no cursor) 2024-04-01 11:42:54 +02:00
stefan schippers d9871edb13 update LCC_instances.sch 2024-04-01 02:23:30 +02:00
stefan schippers 033493d0ec doc updates (cursors) 2024-04-01 00:33:09 +02:00
stefan schippers 318c52cd0f cursor positions always saved in true x values (no log taken for logx axes) avoid too many log10() / pow(10, ...) conversions 2024-04-01 00:25:50 +02:00
stefan schippers 8eecd73c50 removed impossible if() condition in backannotate_at_cursor_b_pos() 2024-03-31 13:36:35 +02:00
stefan schippers 9c5a1a9816 handle cursor drawing in multiple graphs, some with log scale some others without 2024-03-31 13:27:12 +02:00
stefan schippers 5dc27fb364 fix 2nd level @param subst in instances (like model=xxx@name in instances) 2024-03-31 00:36:42 +01:00
Stefan Schippers 731a265dcf removed some dead code 2024-03-30 20:16:47 +01:00
Stefan Schippers cab89d03d9 revert to commit 2024-03-26 18:48:48 2024-03-30 19:20:51 +01:00
stefan schippers 547bdec018 avoid rouding to 0 wave measures in show_node_measures() 2024-03-30 13:00:39 +01:00
stefan schippers 7756769a4e simplify node measurements and cursor handling 2024-03-30 11:25:02 +01:00
stefan schippers 89f494aa85 simplify node measurements --do not use this commit -- 2024-03-30 10:43:55 +01:00
stefan schippers 27c065327e improve cursor display and move with multiple graphs with different sweep variables (2) 2024-03-30 02:20:38 +01:00
Stefan Schippers ba76f42277 improve cursor display and move with multiple graphs with different sweep variables 2024-03-29 19:58:54 +01:00
stefan schippers fdeca4646a cursor a and b: when draging in a graph with default sweep var correctly map cursor in other graphs with different sweep vars 2024-03-29 13:57:06 +01:00
stefan schippers 659231e7ae remove dbg msg 2024-03-26 18:48:35 +01:00
stefan schippers 5789058775 do not auto highlight nets if operating point raw data is loaded (auto_hilight_graph_nodes=1) 2024-03-26 17:49:35 +01:00
stefan schippers fc19e646c7 set default live_cursor2_backannotate to 1 (enabled) 2024-03-26 15:39:16 +01:00
stefan schippers 3dcda64367 fix Alt-e command (proc open_sub_schematic) if no raw file loaded 2024-03-26 11:30:02 +01:00
stefan schippers 27f41119d8 fourth round of additions to improve auto_hilight_graph_nodes 2024-03-26 01:21:37 +01:00
stefan schippers 34d85db77e third round of additions to improve auto_hilight_graph_nodes 2024-03-26 00:20:40 +01:00
stefan schippers f53bc2c6b7 second round of additions to improve auto_hilight_graph_nodes 2024-03-25 22:28:29 +01:00
stefan schippers aa6182c65f initial support for auto_hilight_graph_nodes 2024-03-25 11:39:57 +01:00
stefan schippers 77a5cecef8 hier_hilight_hash_lookup(): set path param to const char * 2024-03-24 22:49:40 +01:00
Stefan Schippers faee6bbc89 apply cairo_font_scale also for nocairo fonts (in addition to nocairo_[xy]_font_scale) 2024-03-24 20:36:19 +01:00
Stefan Schippers 3186270548 apply cairo_font_scale to svg and ps/pdf exports 2024-03-24 19:59:28 +01:00
Stefan Schippers 85d7e565a3 cairo_font_scale can be changed runtime to rescale text fonts, hier_hilight_hash_lookup(() function to hilight an arbitrary hierarchic net; improved xschem list_hilights command 2024-03-24 19:34:30 +01:00
stefan schippers 642ee525ac fix grab screen window pathname calculation 2024-03-21 22:37:39 +01:00
stefan schippers 751c965e9f waves_selected(): better checking of mouse `is_inside` graph 2024-03-21 22:28:32 +01:00
stefan schippers 5417392357 grab screen make it work if initiated from additional tabs / windows 2024-03-21 22:10:27 +01:00
stefan schippers c51b4474e5 correctly resolve absolute paths for 2nd...Nth files given on cmdline that use ./ or ../ relative paths 2024-03-21 15:48:48 +01:00
stefan schippers 058b96ba7a fix a crash when netlisting top level elements in print_spice_element(), attempting to look up format string tokens into non-existent parent level (xctx->currsch-1 = -1)) 2024-03-21 14:41:15 +01:00
stefan schippers 85abc67c89 fix arc placement if moving mouse to the left for second point 2024-03-21 01:28:01 +01:00
stefan schippers 3e6a3ba886 draw_symbol() and draw_temp_symbol(): do the second level @ resolution with translate3(): if no @var definition is found leave @var as is. This is what we want, to avoid trying to substitute @m.xm1......[id] ngspice variables. 2024-03-21 00:12:48 +01:00
stefan schippers 12b01e31c6 draw_symbol() and draw_temp_symbol(): do not attempt to do a 2nd level @var resolution for texts as this creates more inconveniences than advantages (quoting hell) 2024-03-20 23:57:01 +01:00
stefan schippers e55c8294c2 fix ctrl-click in launchers if no intuitive interface is set 2024-03-20 18:43:25 +01:00
stefan schippers cc1a70d340 quoting hell mitigation: translate3() should not eat backslashes 2024-03-20 15:08:12 +01:00
stefan schippers 6886fd98e9 f**k 2024-03-20 12:28:49 +01:00
stefan schippers 3e722d217d remove dgb message 2024-03-20 11:55:36 +01:00
stefan schippers 8329720848 hash_file(): skip also .include lines if skip_path_lines parameter is set 2024-03-20 10:45:28 +01:00
stefan schippers 61b1c0b368 add `Tools->Grab screen area` function (unix only) 2024-03-20 03:53:56 +01:00
stefan schippers 6405ac4c09 simplified alpha removal and inversion in ps_embedded_image() 2024-03-18 11:53:51 +01:00
stefan schippers 197379989a edit_image(): add removal of transparency with white and black 2024-03-18 10:54:10 +01:00
stefan schippers cfccb64026 remove dbg msgs 2024-03-18 03:10:00 +01:00
stefan schippers f68cb6c18a start launcher commands on mouse button release (if no mouse movement has occurred) to allow ctrl-button1 drags 2024-03-18 02:39:54 +01:00