Index: trunk/Changelog =================================================================== --- trunk/Changelog (revision 34679) +++ trunk/Changelog (revision 34680) @@ -1,3 +1,233 @@ +pcb-rnd 2.4.0 (r34679/r?????) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +pcb-rnd part: + + [ar_cpcb] + -Cleanup: use pen via padstack proto instead of old via diameters + -Fix: don't use old via hole diameter, extract this from pen's via padstack proto + + [autoplace] + -Cleanup: remove local vector implementation, use genvector for list of boxes + + [autoroute] + -Fix: copy and validate route style via padstack proto instead of diameters + -Change: switch over to using route style via padstack proto instead of diameters + + [build] + -Fix: byaccic make rule: use full relative paths to all files instead of cd'ing into the plugin's dir - this way generated #line will have full path too which may be less confusing to some weaker C compiler implementation + + [cam] + -Update: default file name derivation for new librnd export options vs. attributes API + -Cleanup: const correcntess for the new librnd export options API + + [core] + -Fix: implicit func declaration + -Fix: c89 violations (empty declarators) + -Fix: make Connection(find) result message more clear, especially when no object is found + -Fix: moving selected objects to current layer uses the move object call that has the bugfix for moving floaters + -Fix: padstack conversion shouldn't crash when it fails early, while counting layers + -Fix: obj_line unreg: do not unreg endpoint objects, they were not registered in the first place + -Del: old ring/hole diameter from the route style API + -Del: remove internal, legacy board via hole/pad diameter setter functions + -Del: box-box intersection code -> moved to librnd + -Cleanup: pcb_board_set_via_drilling_hole() shouldn't check for code hardwired minimal/maximal hole size (it was overriden using force anyway) + -Cleanup: pcb_board_set_via_size() shouldn't check for hardwired minimal/maximal via size (it was overridden by force anyway) + -Cleanup: remove PCB_MIN_PINORVIAHOLE (hardwired minimum size) + -Cleanup: remove PCB_MIN_PINORVIASIZE (hardwired size limitation, not in use) + -Cleanup: remove PCB_MIN_GRID (hardwired size limit not in use) + -Cleanup: remove PCB_MIN_PINORVIACOPPER (hardwired size not used in core) + -Cleanup: remove pcb_custom_route_style - not used by anything, not reentrant; leftover from a pre-conf time + -Cleanup: RouteStyle() action uses the central route-style-to-pen set function instead of trying to invent a local implementation + -Cleanup: remove pcb_board_set_line_width() and pcb_board_set_text_scale() from the public API - trivial short functions used by only one caller + -Cleanup: move undo serial management out from low level ApplyPen call so operation on selected will be a single undo serial + -Cleanup: UI layers do have a non-NULL, valid data parent, a dedicated (pcb_data_t *) within pcb_board_t; this makes ui layers less of a special case and is one step toward being reentrant + -Cleanup: registering a new UI layer requires a pcb_board_t * because UI layers are really under a board + -Cleanup: change the internal API of ListBlock so whether selection should be done is an extra explicit argument - fixes the unwanted subc selection on show netnames + -Cleanup: list_block_cb should never select; make object selection side effect an explicit argument in the basic list block call + -Add: font ID field in the route style struct + -Add: API CHANGE: undoable pcb_route_style_change() argument list extended with font id + -Add: RouteStyle() can set the font property + -Add: apply route style's font ID on pen when switching route style + -Add: new conf node: pen property for via padstack prototype ID + -Add: if a style has a via proto, selecting that style should set pen proto + -Add: SetSame() can pick up via style with via pstk proto + -Add: RouteStyle() can get and set the via-proto field + -Add: helper function to return pen via bbox larger side (useful for constructing via site search boxes) + -Add: ApplyPen() action on object, for lines and arcs + -Add: text object: undoable any-field change (low level) + -Add: ApplyPen() for text objects + -Add: ApplyPen for padstacks + -Add: ApplyPen(selected) to complement ApplyPen(Object) + -Add: public poly point preallocation API so loaders can save on reallocs + -Split: padstack bbox calculation so that a prototype's bbox can be calculated too + -Update: convert the default boards to lihata v8 - use explicit padstack vias and text scale in routing style + + [dialogs] + -Fix: don't fancy executing an infinite loop when grid is set to zero in padstack library preview + -Del: remove printer calibration dialog, print the url of the manual process instead + -Update: librnd API change on export options ->value removal: use hid->argument_array instead + -Add: padstack lib dialog: padstack prototype copy & paste using system clipboard + -Add: action pstklib(board, retid) lets the user select a prototype from the board's list and returns the pid as long + -Add: optional presel argument in pcb_dlg_pstklib() so it can select a padstack proto from the list on open + -Add: pstklib() action: optional presel argument + + [djopt] + -Cleanup: create local menu file so djopt entries can be removed from the central menu file + + [doc] + -Add: help page for printer calibration removal + -Add: note on ldconfig and non-standard-path installation vs. .so files + -Add: mention Solaris as a supported UNIX system + -Add: drc_query: document the stock rules + + [draw] + -Fix: explicit transformation enable_silk_invis_clr to enable the old "draw other-side silk with invisible object color" hack; on by default for the gui, off by default for export plugins + -Fix: restore NULL info after drawing padstacks and misc virtual layers, before drawing UI layers to ensure proper UI layer display + + [drc_query] + -Fix: default config: overlapping holes test: consider padstacks with hole > 0 only + + [export_lpr] + -Fix: load default values for ps inherited fields as well while initializing the export + -Del: remove calibration code that cross-called the ps exporter for the test page + -Add: optional plugin configuration for printer calibration default value in X and Y directions + + [export_openems] + -Fix: do not crash if excitation is not set (to_hz conversion returns error on input NULL) + + [export_png] + -Fix: do allow exporting mask and bottom silk in CAM mode + -Fix: in CAM mode render bottom side silk with invisible color if --as-shown is set + + [export_ps] + -Cleanup: do not rely on PCB_MIN_PINORVIAHOLE for drill helper minimum setting, just specify a small-enough number - PCB_MIN_PINORVIAHOLE is going to be removed from the API + -Fix: eps export: if CAM is active, do not omit the bottom silk when explicitly requested + -Fix: eps export: when exporting the bottom silk with CAM, --as-shown applies far-side inivisible-color + -Del: pscalib() action; also remove the calibration test page generator and calibration value guess code + + [export_stl] + -Fix: detect broken outline and cutout and throw an error instead of crashing + + [export_svg] + -Fix: --as-shown enables the far-side silk invisible-color on the bottom silk + + [exto_std] + -Change: line-of-vias: switch over to padstack proto in route style + + [fontsel] + -Add: extend the core and action APIs for modal selection of font ID without changing the font ID of a specific text object or the pen + -Add: FontSel(fontid) sets fungw result, typed long, to the selected font id (unless the user cancelled) + + [fp_fs] + -Fix: configurable prefix filter bug required full match, not prefix match + + [gui_act] + -Add: SetSame() works on text scale, thickness and font + + [import_mucs] + -Change: switch over to using via pstk proto instead of diameters + + [import_sch2] + -Fix: detect broken/unfinished import setup and invoke the dialog instead of reimport + + [io_bxl] + -Update: use full relative path in byaccic generated files + + [io_lihata] + -Fix: more graceful handling of invalid via hole dia problems (than assert) + -Fix: write text scale and clearence dummies without creating empty nodes; also fixes typos in scale_x/scale_y dummies + -Cleanup: remove route style old via diameters from internal API + -Add: concept of route style unset font id, for compatibility with old boards + -Add: v8 saves and loads route style fid (font ID) if it's not -1 + -Add: when saving diameters converter from io_pcb to lib_compat_help as it will need to be reused in io_lihata for pre-v8 + + [lib_hid_pcbui] + -Fix: find best fitting route style instead of first fit - because of wildcard text settings + -Fix: update pen by reselecting the current routing style after a routing style modification from the dialog + -Update: status line prints via prototype ID instead of diameters + -Add: route style dialog: font id button (invokes the font selector) + -Add: route style dialog: concept of unset font id, for compatibility with old boards + -Add: route style dialog: padstack proto selection button instead of obsolete via hole/dia (run the prototype selection dialog when clicked) + + [menu] + -Del: printer calibration menu item - no such feature anymore + -Add: ApplyPen menu items for object and for selected + -Add: menu binding for interactive custom grid setting + + [plugins] + -Fix: typo in various import plugins ("schamtics" -> "schematics") + -Cleanup: make sure all export plugins have their options as static const - it's private and should never change + -Cleanup: create local menu file for the puller plugin so its menus from the central menu file can be removed + -Update: librnd API change on export options ->value removal: update export plugins on librnd calls + -Update: export plugins: new way of loading default values for librnd API change + -Del: remove clibration hook from all export plugins - API is goignt o be removed from librnd + + [puller] + -Add: local menu file + + [qparse] + -Fix: in non-function syntax stray whitespace at the end shouldn't induce an extra empty argument at the end of argv[] + -Fix: update 'consumed' output to skip over closing parenthesis for function syntax or terminating semicolon + + [scconfig] + -Del: special buildin-hack for lib_compat_help: core doesn't depend on it anymore + + [teardrops] + -Fix: exto: set up intern copper layer offset when converting line into teardrop exto so that the new obejct won't change layer + -Fix: exto: accept only copper layers for edit object + + [tests] + -Update: vendordrill test res for the new pen terminology in info messages + -Update: cam test refs for black bottom silk color (svg without --as-shown doesn't do the gray invis color anymore) + + [tool_std] + -Fix: don't allow drag&drop cut&paste to even start if the rat layer is active - if we'd allow that, cut would remove objects but the subsequent paste would fail because the buffer tool can not be activated + -Cleanup: use pen via padstack proto bbox size for searches instead of the old diameters + -Add: place via from style proto + -Add: render via xor-draw using real via geometry (from proto) + -Add: xor-draw a clearance approximation when clearance indication is enabled + -Add: cache via and text tool IDs + + [util] + -Fix: sign verify typo: --print on crl should use the file name poassed on command line + -Update: repo.hu crl for another year + + [vendor] + -Cleanup: remove PCB_MIN_PINORVIACOPPER, rather repend on conf node design/min_wid for fixing up invalid route styles + -Cleanup: remove DRC section from the example - DRC in vendor files are not supported + -Change: switch over from tuning the .Hole field of the routing style struct to deal with via padstack prototypes + -Del: remove via pad diameter tuning - vendor drill is about changing drill sizes only, finding thin copper is up to the DRC + +librnd part: + + pcb-rnd 2.3.2 (r34276/r32586) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Index: trunk/Release_notes =================================================================== --- trunk/Release_notes (revision 34679) +++ trunk/Release_notes (revision 34680) @@ -1,27 +1,26 @@ -pcb-rnd 2.3.2 +pcb-rnd 2.4.0 ~~~~~~~~~~~~~ -This is mainly a bugfix release with secondary objective of going further -in librnd separation: librnd is now linked with -l. NOTE: this changes how -pcb-rnd is executed from the source tree, see file INSTALL, step 3. Because -of the longer development cycle, there are still a few new features. +This release is a major cleanup release, the final preparation for a major +version change to 3.0.0 in the near future. As such, it finally replaces the +old, diameter based via description in route styles (and tools) with padstack +prototypes and introduces lihata v8 to be able to represent this change in +the native file format. Feature highlight: -1. Anyload files to ease sharing and importing user scripts, menu patches, - drc rules, vendor drill, custom configuration and other pcb-rnd addons. - http://repo.hu/cgi-bin/pool.cgi?project=pcb-rnd&cmd=show&node=anyload +1. Route style switched over from 2-diameters via geoemtry to padstack + prototypes. Video tutorials about this change: + https://archive.org/details/pcb-rnd-via_pstk1 + https://archive.org/details/pcb-rnd-octa-via -2. Lihata board save as: denoise option that omits select/warn/found flags - and rat line objects from the save to reduce VCS noise. +2. Route style can remember and set text font to use -3. Per layer transformations option: per layer wireframe render option on - the GUI (right click context menu in the layer selector). +3. New file format versions: lihata board v8 and lihata subcircuit v8; + new board version for the route style upgrades and more detailed + text object clearance; new subc version for more detailed text object + clearance. -4. The propedit dialog has in-line help about which property means what - (top right region of the dialog box). - -5. Rewritten rendering code to get layer order from a configurable, domain - specific render script instead of hardwired C. - -6. Teardrop extended object. +4. Removed the half-working, export-plugin-specific printer calibration code + in favor of a simpler, documented method the user can perform with any + export flow.