Release Notes for PCB 386+ V2.22

The following changes have been made in PCB 386+ between V2.20 and V2.22:

1. Fixed some minor graphical aberrations where rubberband lines would disappear if dialogs were brought up while rubberbanding .
2. Fixed a problem with selection of rotated rectangular or oval testpoints and vias.
3. Fixed an crash under certain conditions when doing a block copy.
4. Made the current layer selection dialog be active in the library editor.
5. Fixed a problem where MAKELIB could give pads negative coordinates.
6. Changed the code to check for spacing to module property text on copper layers.
7. Change the code so that a delete of a single wire or via would flag the copper pour as out of date.
8. Fixed a problem where under some conditions if a net had multiple zones PCB might not know the net was completely connected.
9. Fixed a problem handling pad symbol, via symbol, or coppertool names which consisted of a leading space followed by only numerical digits.  
10. Corrected a problem space checking rotated testpoints.
11. Fixed a crash when editing a library created by MAKELIB.
12. Fixed a problem with recognition of connectivity of testpoints inside zones.
13. Fixed a crash that could occur when renaming one net to another to merge them.
14. If the first action upon leaving the library editor was to rats nest a net the connectivity information could have been incorrect.
15. Changed the code to not allow net wiring to be put on non-copper layers.
16. Changed the name building code for pad stacks to generate unique names to stacks which only differed in the solder mask guard or solder paste guard values.
17. When placing one board into another if the placed board had nets with tool values which did not already exist in the board being edited, the nets could get bad values for those tools and cause a crash if referenced.
18. If the "Use Zones For Connectivity" flag was set it was possible for vias connected to planes to be marked as unnecessary by ratsnesting.
19. Fixed a problem with spacing errors falsely reported between square vias and diagonal wires.
20. Changed rats nesting to ignore zones on non-copper layers.
21. Fixed a problem with block copy asking for "Net Name Disposition" when nothing copied was in a net.
22. Fixed a crash which could occur when updating old databases with unusual characteristics.
23. In order to make sure that the rotation centers of modules always move correctly when dragging or moving modules the code had to be changed so that it is no longer possible to block move or drag just part of a module even if allow module edits is on if in the board editor.  It is still possible to move or drag just one part of a module.  Since the block move/drag function of part of a module is needed when in the library editor it still works there, and a visual indicator of the rotation center shows as a small yellow circle with a crosshair through it.  The yellow image is not an object and can't be graphically moved.  To change its location requires editing the rotation center in the module property dialog.
24. The user interface on the Printing and Plotting dialog was modified to allow a new page definition to be inserted at the head of the list of existing pages.
25. Fire9000 plot output now outputs the aperture macros in mils even when the body of the plot is in metric.
26. Dimension objects with tic marks embedded within fill zones now isolate completely from the zone.
27. Oval pads which are drawn rather than flashed now fill completely.
28. MODMOD_ is now a 32 bit application and no longer requires expanded memory.  Run times are shorter and any size file can be processed.
29. Hole objects on layer planes are now isolated using a flash instead of a draw wherever possible.
30. A copper pour short at the intersection of an arc and an oblique line has been corrected.
31. Fill zones with more than 24 segments in the outline no longer corrupt memory.
32. When plotting layer planes, PCB386 now distinguishes clearly between board outline and tracks from a board which has been converted to a module.  Only the tracks are isolated from the plane.
33.  The 'fixed drill size' option can now be used with the 'erase holes in printed output' option.
34.  The PrintPlot Driver dialog has been amended to allow the 'apply changes to all pages' option to be applied to output not being sent to a file.
35.  The 'generate multiple filenames' option on the PrintPlot Output dialog has been amended to override page definitions which were previously directed to the serial or parallel port.
36.  Specifying two different scale factors for pages belonging to the same plot set no longer creates an inconsistent Gerber 274D aperture file.
37.   Tracks between two holes whose length is shorter than the drill hole is wide no longer totally disappear when the 'keep drill holes open' option is used.
38.  MODMOD_ now preserves the database revision number at the top of the file whenever it is used to just modify pads or module centers of gravity.
39.  MODMOD_ no longer hangs compiling an ASCII module definition when the module has no outline defined.
40.  The board options added towards the end of the previous release cycle such as 'Module Extensions Are Invisible' are now fully supported by MODMOD_.
41.  Drill plots made of plane layers are now positive image rather than negative.
42.  An inconsistency in the scaling and conversion of metric apertures could cause the previous release of PCB386 not to find some apertures in a user supplied aperture file.  This has been corrected.
43. One new feature is if you execute the FIND command and enter a "?" and select ALL STRINGS in the dialog, and then select a coppertool name, pad stack name, or via stack name from the list, all the objects which reference those tools on the board will be highlighted if FIND HIGHLIGHTS is turned on in the GLOBAL OPTIONS dialog.
44. The aperture limit for GERBER output has been increased from 139 to 999.
45. Fill zones placed on non-copper layers now fill completely except in those areas covered by a no-fill zone.  These non-copper layer fill zones do not avoid pads or tracks or outlines in the manner of their copper layer cousins.  Fill zones on solder mask layers  can be laid across pads or vias or maybe just some random area of the board on which you do not want solder mask deposited.  A solder mask plot is a negative image, so the fill zone indicates where you do not want solder mask.  The same is true of a solder paste plot.
46. When printing from PCB386, the driver buffer size is now checked against the Paper X Width you may have specified.  If you specify a media width greater than can be accommodated by the driver buffer, the Print is stopped before memory is corrupted by a buffer overflow.  The error message you receive will tell you the maximum paper width supported by the current printer driver.
47. Fixed a problem with JUMP if a large grid divisor was used causing the jump to end up in the wrong location when jumping to a DRC or Bookmark.
48. When placing a very large module from a library onto a board it was possible for some of the endpoint coordinates for objects to be off by one grid.  This would typically only happen with modules that were boards saved as modules but could have happened with any very large module.
49. To prevent a possible crash when making a template file from a board file MAKE_T has been changed so that if run without the -D switch set even nets will not be deleted.  If it is desired to make a template from a routed board but without the wiring then save the board to another name after performing an Erase All Routes.
50. Outlined pads on Postscript plots which are rotated will now be displayed correctly.
51. There is a new /IGNORE switch on MODMOD which tells it to ignore translation errors and fix them instead.  This allows customers to repair some databases which were damaged by young versions of PCB386 to repair them without sending the designs in to technical support.
52.  Fixed a bug which could cause a crash when trying to drag a module in the library editor with "Allow Module Edits" turned off and the module still had pad with net names assigned.
