1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
0. old, still waiting for ack
1. For the upcoming release ===============================================================================
- RELEASE: enable polybool2 for dev, disable polybool2 by default before the release
- RELEASE: polybool2: at the end of the full rewrite, remove /local/pcb/want_polybool and PCB_WANT_POLYBOOL (from scconfig and config.h too!)
+ BUG: bug_files/TODO/dxf_drill/*: drill color not detected properly and/or not reset [report: John Wehle ml: 6670]
2. For later releases ===============================================================================
- FEATURE: footprint versioning: http://repo.hu/cgi-bin/pool.cgi?project=pcb-rnd&cmd=show&node=footprint_ver
- FEATURE: emsim-rnd (dcpower)
- FEATURE: rbs_routing extras
- move via, stretch attached nets
- move multiple vias/pins/pads, stretch attached nets
- net autocompletion in sequential routing
- seq routing: cut existing segment and re-route
- FEATURE: DRC: custom DRC ignores [report: bdale 2025-02-12 IRC]
- a large table of:
- obj ID (vs. obj ID or list of objs that all need to present in the DRC report)
- DRC error class
- what to do with it ("ignore" for now)
- user specified comment (reason)
- maybe save this in the config, design role
- FEATURE: DRC: minimum mask bridge width check [report: John Wehle]
- need to use find.c to get "nets" of mask objects (including padstacks)
- then use the normal bloat-intersect code to see if two of them are closer than the required value
- BUG: polybool2: pcb-rnd/work/test_poly/phatch.lht: maybe {m d t} and PolyHatch(0, c) -> poly offseting bug on sharp corners ml=4159 [report: Majenko]
-> simpler test: PolyOffs(-10mil) also breaks
-> polybool2 bug: autotest2/offset03
-> solution:
-> write and expose a function that works on polyarea instead of pline because of offset04 where a single pline would end up as two islands
-> use pline_dup_with_offset_corner()
-> then do a new self isc resolver that trusts input edge directions and removes loops with negative direction (unless we are doing holes!)
-> revise the original offset calls in pcb-rnd and decide where to use the new one
-> consider rnd_pline_dup_offset() to start with: if (offs < 0) return pline_dup_with_offset_corner(src, offs, RND_PLINE_CORNER_SHARP); (also move #include offset2.c to the top of the file for this)
- librnd 4.3: search for TODO("librnd 4.3.0
- FEATURE: shift-click subc replace or reimport subc-replace: attempt to preserve floater positions and per terminal clearances and thermals [report: aron]
- DOC: pool node on how to use pixmap for breadboading
- BUG: bug_files/TODO/ppc_full.*: poly-clear-poly should respect full-poly flag and apply all islands only if full-poly is set
- BUG?: enforce style clearance doesn't work with middle-line rubber band move, see bug_files/TODO/drag.rs [report: Majenko]
-> may be a non-bug, if we take this as a line move operation (doesn't enforce)
- BUG?: pcb-rnd/work/test_poly/polyclpoly.lht: excess clearing into the corner of the outer poly; move the line a bit and it tends to disappear ml=3493 [report: gpaubert]
-> enable {m d d} (poly as-drawn) -> that clearance is the corner of the triangular poly
-> there are two ways this could be interpreted:
1. circle clears triangle first then smaller triangle clears big poly (no clearance blob in the top-left corner)
2. triangle clears big poly first then circle clears both (blob in the top-left corner)
-> if there is any bug: at the moment the order of operations is not guaranteed
- DEL: remove c-pcb support in favor of the more generic external autorouter plugin
- CLEANUP: rewrite query's parent_net_len_found_cb() to collect objects in a tree (from->to objects, at most 2 'to' objects from a single 'from'); use slab allocation for tree elems; see bug_files/revp.lht: {n l o} on the long horizontal line causes zig-zagging map that a single segment reverse won't fix; also revise pads ascii write with this [report: cuvoodoo]
- CLEANUP: TODO27: undo's removed list shouldn't depend on object IDs but probably remove list index because IDs are not unique if we want our operations to retrain IDs. Repro: shift-click subc replace twice, then undo; or drag&drop move selected object and undo [report: Igor2]
- CLEANUP/BUG: undo operation while drawing a multiple segment line doesn't change segment attached to the crosshair [report:wojciechk8]
- tool_line.c depends on pcb_undo()'s return value; can be fixed only when the old undo system is removed
- CLEANUP: think over how to handle subc selection: selecting all parts automatically is bad for propedit; bug_files/subcsel.bug [report: Wojciech]
- BUG: propedit adding/deleting attributes inconsistency; search depth problem (see TODO#28) bug_files/subcsel.bug [report: Ade]
- BUG: select a subc, propedit selection: padstacks are counted twice (e.g. for lid/thermal) [report: gpaubert]
- CLEANUP: layer order from data
- build a list of layers rendered, in the order of rendering while drawing layer groups; maybe use gdl and move the group to the end and use a terminator item; get pcb_search_obj_by_location_() to use this list for ordering
- BUG?: Far-side silk text can be selected and moved when the mouse is over front-side subcircuit. (but this is what we had with elements too! -> rewrite search.c to be a 'script' config) bug_files/TODO/farsilk.lht [report: Ade]
- CLEANUP: revise dialog boxes for string/integer input box character length
- BUG: Lihata persistent save:
- flag compatibility: save unknown, string-flags as loaded by io_pcb
- ind: FONTS: second font indents incorrectly
- ind: indentation bug in inline struct therm: closing } is preceded by indentation whitespace for some reason
- keep numeric format: test all
- keep unknown subtrees
- BUG: lhtpers indentation: bug_files/lhtpers_ins/; breakpoint in pers_table.c:34 and debug why the newline is getting in [report: Igor2]
- BUG: I/O bugs:
- eagle:
- BUG: xml: eagle XML import fails on polygon import reported by miloh, test file pcb-rnd-aux poly_selfi/eagle_polygon_crash.brd [report: erich], due to input file containing an invalid polygon: a self intersecting poly in line 156 - consider handling "width"?
- bin: eagle binary format v3 and libraries do not have a DRC block specifying restring or minimum feature widths. Binary loader should add a DRC block in these cases to the tree with the minimum settings needed for padstacks and features to load sensibly. [erich].
- bin: padstack clearances for element pins will rely on connectivity to other polygons layer by layer defined in the netlist; test case: alien_fmt_test/io_eagle_bin/net_poly_conn
- rubber stretch routing:
- IGNORE: BUG: Rubberband move line endpoints ignores connected arc endpoints. [Fixing:Ade]
- remove auto_via from the conf and code
- librnd later:
- FEATURE: librnd API: library window: allow long tags and long location text to split: rich text widget in librnd [report: Igor2]
3. Long term ===============================================================================
- FEATURE: multi: merge sch-rnd r4718 for proper multiboard support later
- FEATURE: copy sch-rnd's RtreeList action in act_read
- CLEANUP: footprint lib rework
- BUG: bug_files/TODO/TO247.rp, { w l }, select TO247, shift click onto subc in TO247.rp layout: 90 degree error [report: Erich]
-> wrong subx-aux x and y lines (names mixed up)
-> apply patch in bug_files/fp_rework to fix that, check with the script in the same dir
- sot23 and the whole sot* series is affected as well
- revise sil graphics for at least smd
- add assy drawing
- add keepout
- revise pad sizes and hole sizes, maybe starting from bedrock
- revise 3d (openscad) models if they still line up
- parametric common bugs:
- so(8,pad_clearance=0.1mm) creates pad clearance twice as large as needed [report: aron]
- BUG: start new layout: pcb-rnd foo.rp, export scad model, will export to foo.scad by default; then start new layout, save layout as bar.rp. When using export dialogue, dialogue defaults to previous filename foo.XXX for any of the export options. [report: Erich]
- FEATURE: "thermal recipe" so a padstack thermal can be put in a padstack or subc and it is changed with the layer binding [report: jg]
- FEATURE: netlist2: bug_files/ratside.txt optional rats constraints [report: Vuokko]
- FEATURE: openems mesher: do not ignore padstack copper [report: Evan]
- FEATURE: netlist import's ElementList(): [report: aron]
- postpone actions, present a list of changes only to the user (GUI)
- each item of the list should contain the corresponding actions to make the change
- the user can execute these items one by one
- CLEANUP: move pcb_pixmaps into the board struct, board free should free it, and it should call rnd_render->pixmap_free()
- CLEANUP: padstack bbox:
- per layer: keep a bbox per transformed shape per prototype, then getting the bbox of a padstack ref on a specific layer is looking up the shape, then 4 integer additions [report: Wojciech]
- when calculating overall padstack bbox, ignore layers that are not present? but then a layer change would require a recalc (but this is true for subcs too!) [report: Wojciech]
- FEATURE: depth controlled mech layers (routed) for internal cavities: http://www.saturnelectronics.com/products_capabilities/internal-cavity_boards.html -> user script, similar to on_every_layer: convert lines into bbvia slot padstacks; only when we already export bbvia in excellon; alternative: layer attribute on mech layers
- FEATURE: XOR rendering upgrade:
- experiment with 'emboss' kind of drawing instead of xor so rendering can stay 'direct'
- if worked: allow padstack xor draw to draw all shapes on all layers
- CLEANUP: layer group rewrite: remove PCB_MAX_LAYERGRP and PCB_MAX_LAYER and make them dynamic - use libualloc stack with reasonable page size and local var first page
- make pcb_layervis_save_stack() reentrant by letting the caller allocate the save buffer
- CLEANUP: reduce: get rid of autorouter/vector.[ch]
4. Low prio ===============================================================================
- BUG: elliptic: gtk2_gl: RTT/arc_sizes.lht - elliptical arc corner case render bug [report: Wed]
- BUG: elliptic: RTT/arc_sizes.lht - unable to move arcs which have different width and height [report: Ade] - rewrite pcb_is_point_on_arc() elliptical case at the bottom
- BUG: if foo() v0 exists in ~/.pcb-rnd/footprint and foo() v1 exists in ~/pcblib the tree view in the left paane of {w l} will load foo() v0 in ~/.pcb-rnd even if foo() v1 under ~/pcblib is being selected in the GUI with a mouse click. GUI selection fail. [report: Erich]
- FEATURE: DRC should warn for thin poly hair
- FEATURE: scconfig: menuconfig and a config file for scconfig: requires a more declarative dependency handling system -> being done in scconfig2
- FEATURE: alien file format: IDF (for 3D cads; spec comes with free permissive license; freecad should import it; ml: geda-user 18921; work/alien_formats/IDF; OP not interested)
|