Let me know...

If you encounter a bug in the program, please send details of the problem along with the Crash Report to bug@zofzpcb.com.
Set of gerber files (a subset even better) allowing me to repeat the problem is substantially helpful. The files will be kept secret.

ZofzPCB Log

New Version - progress screenshots

bottom

main page

Bug List / To Do / deferred:

  1. Space Navigator revision - features update.
  2. GerberX2 "%TF.FileFunction" for autoload.Gerber X2 logo
  3. Alberto's reported bugs in flattening - rewrite cross detection to n*log(n) scan line algorithm, as it is in effects/triangulation.
  4. There is unnatural transparency gradient, close to the board edges, when observed from some angles. Best fix would be "per pixel fog". I am slowly allowing myself to think about this more GPU power demanding method.
    gradient of bottom
  5. One of recently corrected artifacts debug, caused another problem, visible as removal of a vertex in a very specific cases, see picture.
    This problem is very sensitive to actual value of View / Render Effects Parameters / Fade Gradient Length. As a workarround, you can change it by a small value and retriangulate the board.
    shortcuted circle
  6. Non-plated holes does not remove copper on top and bottom copper layers, making them virtually invisible. Drills in areas not covered by copper are properly visible.
  7. Sometimes board outline is routed via the drill file. This could be detected and possibly used instead of the board outline drawing Gerber file.
  8. I have build the menu (GUI) system on top of DXUT (3D graphics). I did it to enable working in a fullscreen mode. Fullscreen mode saves resources, especially for the older GPU - I still have fear that some users may suffer on GPU performance. It could be useful to have both systems: native windows GDI-GUI and current DXUT.

Version Log

ver 0.9.021 ()

Download Page

hot-fix

  1. Sometimes calling the Model Menu can crash the program. This happends after removal of the model menu, by poping up some other dialog.
  2. Gerber stray space character after '*' star character.

ver 0.9.020 ()

Download

features

  1. A lot of new component classes are added to the internal library.
  2. Menu system for selecting component types and adjusting component parameters.
  3. Mathematical operations for aperture macro definition: unary "-" and "+" and parentheses "(", ")" are added, as defined in GerberX2.
  4. Some file names are longer then dialog box - implemented horizontal scroll bar.
  5. Option to sort files by date/time.
  6. Lighting - simple ambient and difuse light dialog.
  7. CAM_Load_Rules - added sections OrCAD (Alexiej) and Cadence Allegro (Benjamin).
  8. CAM_Load_Rules - must be more visible - added edit button in the autoload dialog.

bug fixes

  1. Aperture Macro rotation center adjusted to the new clear Gerber definition.
  2. Aperture Macro rotation for circle added as option - defined by GerberX2.
  3. Save/Restore of the program window position and size may permanently prevent the program from starting, if minimized or otherwise inactive window position is saved. The Direct3D can initialize only in visible window - program was exiting with Direct3D device error.
  4. There was a hot-fix for old PCAD inserting space characters in Gerber files. The hot-fix was also removing spaces in G04 (comment). That was making problems when the comment string was starting with digits. eg. G0433...)
  5. Excellon routing offset matching to Gerber was not working. Slots could disapear or be miss-placed.
  6. The macro definition was not flattened before it's use. Negative drawing was preserved and was destroying parts of drawing outside the macro.
  7. Very short arcs were replaced by a full circle. This condition detection is now set to trigger on equal points only.
  8. Irregular pinout (via IPC356) could hang the program.

ver 0.5.0018 ()

Download

bug fixes

  1. Adding step and repeat have been changing ".zofzproj" format. This should have been accompanied with the .zofzproj version being incremented. I missed this. Unfortunately ".zofzproj" files which are saved by version 0.5.0015, are unreadable by any other version.

ver 0.5.0017 ()

Download

features

  1. Window position is stored in registry and restored on the program start.
  2. Easy switching between Display and ManualEdit of the stack file assign dialog.
  3. Random color generator for net colors is connected to net names, if IPC356 is loaded.
  4. When IPC356 is loaded, net color edits are stored in the .camset file, related to the net names.
  5. Zipped Gerbers-set file input. Unzipping (and zipping) is transparent to all browsing functions, including New/Auto
  6. Step and repeat for Gerbers and NC-drill files (finally).
  7. Single Layer Mode is activated by Ctrl + left mouse button click on the layer enable check-box now. That replaces Double-click activation.
  8. Freemium Stub
    1. Components visualisation is divided in 2 levels: Extruded models (free) and Model Tables (premium).
    2. STEP component models, when implemented, will belong to the premium part.
    3. Premium functionality is temporary free, till March 1, 2017.

bug fixes

  1. If the program window dimension changes, or is in any other way recreated, during the triangulation phase, the program crashes.
  2. Samba folders were not sorted. Actually there was no file-list sort at all.
  3. Buffer overrun in Auto-offset. Histogram bins max value "512.0" instead of "511.5" and "round" used for speed.

ver 0.5.0015 ()

Download

features

  1. Reading of the BOM file. Component info is displayed on the right plane.
  2. Tabelarized Component Library, autodetection. In case a component is not identified, the former "extruded" form is displayed. The component tables are stil under development. Currently, implemented are: L-lead (QFP, SO, SOT, DPACK), J-lead, DIP, chip capacitors (resistors).

bug fixes

  1. GUI bug - folder selection crash. I could not see it for a long time, but it seems I have fixed it with your help.

ver 0.5.0012 ()

Download

features

  1. Cross-Section of the PCB and components. Use "DEL" key, also measurement maker(s).
  2. Hole diameter display (was forgotten while in the implementation).
  3. Wheel zoom movement time constant setting in "Navigate" menu. Plus shift-key speed modifier. Ctrl and shift works also for keyboard controlled movements.
  4. Possibility to switch off auto-offset matching for drills and IPC356. Priority for zero offset if matching, in this case, is detected.

bug fixes

  1. PCB Outline processing, finding the correct outline, in case of multiple "T" connections, can explode in time or memory usage - possibly leading to crash. This often hapends if some tracks are misinterpreted as outline (in wrongly set meta drawing) or when mutlipe lines are not finised to exactly the same point.
  2. IPC356 autodetection of rotation angle units, when radians are used. Why to use radians anyway if there are only 3 digits of precision assigned for rotation?! 90deg=>157=>89.954deg
  3. Netlist related operations could crash if there were no components on a bottom side, in some cases.
  4. Removal of board outline of rendered board caused crasch.
  5. But report tool can handle "portable version" stored log file.

ver 0.5.0008 ()

Download

features

  1. More layer types can be used in the CAM_Load_Rules.txt - autoload script. Layers can be defined in each section. When particular section is used as a rule for filenames, associated layers are added to the program. Alternatively, layer types previously defined in the Stackup / More Layer Types can be used. See the description inside CAM_Load_Rules.txt

bug fixes

  1. If last object in an object list flattens to nothing, some other objects may be removed.
  2. Board outline containing sequentially equal points may cause crash.
  3. Board outline path selection could create empty loops by going back and forth the seme lines, in some cases.
  4. IPC356: if the 317-Through-Hole line entry was used to describe a SMD feature, it was read incorrectly, causing the Component-Mesh-Generator to crash.
  5. IPC356: unnamed nodes are assumed to be not-connected. The node name is automatically generated in form: " N/C_nnnnn". The same should be done to nodes named "N/C".

ver 0.5.0006 ()

Download

features

  1. Right mouse button drag moves the PCB.
  2. IPC356 does not contain information about THT component placement side (top/bottom). It is now possible to swap those components to the bottom side. Use right mouse button click on selected component.
  3. It is possible to hide unwanted components individually. Use right mouse button click on selected component.
  4. State of component hide and swap is saved together with the PCB stackup and rendered board files.
  5. Possibility to add more layer types. Acces via Menu: Stackup / More Layer Types. The extra types are saved together with stackup (.camset) and with rendered project (.zofzproj).
    Loading stackup file, adds to current set of layer types. Loading rendered project overwrites the types set.
    Layer types alone, are saved and loaded together with the Color Presets.
  6. All colors preset is saved and restored by stackup and rendered board files.
  7. Beside above, rendered board save/restore contains: state of layer enable checkboxes, the Component checkbox, the Hollow checkbox and saved camera positions (0..9)

bug fixes

  1. Semitransparent Solder Mask was drawn twice in the Hollow mode, possibly reducing the frame rate.
  2. Semitransparent Solder Mask transparency (alpha) value was reversed in the Hollow mode.
  3. Portable version cannot access its init file. Parameters are not saved for the next time the program is open. The path to the file is changed, by error, to the c:\windows directory and therefore not accessible without administrative privileges.
  4. Sometimes, when routing and drills are on separate files, auto-fit drills to Gerbers fails. One of the drill files is shifted or not visible.
  5. Overlapped, but not continuous routing on the drill "plate" may lose some of its components.

ver 0.5.0002 ()

Download

bug fixes

  1. Gerber parsing: resistance to missing coordinate number, assumed 0.
  2. Excellon parsing: linux style end-of-line character disturbed VC file seek exactnes - multipassing errors.

ver 0.5.0001 ()

Download

features

  1. Menu changes:
    1. view / net selection effect
    2. netlist / crosscheck - function of CPN keys
  2. Keys:
    1. CPN, C, for crosscheck versus measurement selection
    2. Ctrl */ rotate to the nearest rectangular rotation
    3. Home rotates to the nearest rectangular position
    4. Ctrl-Home, rotates to zero angle - as Home before
  3. DialogBoxes:
    1. Screenshot directory and use-project-directory check box
    2. Dialogs are not 'transparent' for the mouse click or drag
  4. Component Display Feature.
    At the moment, the only information about component is taken from IPC356 file. Components are represented by set of basic shapes: cube, pin/cylinder, rect-chip-filling. The actual component shape selection is guessed, based on e.g. component designators. (see IEEE 315 or Wikipedia). Also the THT component layer is always assumed to be TOP.
    Therefore, urgently, more features must be added:
    • Reading IDF (or BOM) file - identify component, footprint, THT-layer.
    • Component options: component disable switch or transparent switch.
  5. Related to above, component mouse selection and component's shadow mouse selection in case of disabled components.
  6. Clear selection and display rule: Selected Object and Hoover Object.
    Selected object, if used, takes over the right panel display. The hoover display is back after de-selection, e.g. esc key.
  7. Orthogonal camera screen-shots are now physically scaled (DPI).
  8. Cross-Check - direction Orcad->ZofzPCB and ZofzPCB->Orcad. (orcad needs a script).
  9. User Interface scaling - 4K displays or higher DPI displays.
  10. Flattening crash recovery.
  11. Several sections of CAM_Load_Rules.txt are added.

bug fixes

  1. Drill/Gerber fitting problem.
  2. Loading Gerber, possible infinite loop.
  3. Loading Gerber, Regular Polygon ADD..P predefined aperture, rotation not converted to radians.
  4. Loading IPC356, more tolerant file parser.
  5. Loading IPC356, empty file crash (example: no components and pins).
  6. Loading Excelon, cannot recall.
  7. Some settings were not saved to registry.
  8. Some features (e.g. distance markers) were not working correctly in Orthogonal camera.
  9. Issue with single layer board without plated holes.
  10. Auto-Loading a PCB without defined outline may cause crash by memory read exception.
  11. Auto-Loading a PCB with only one copper layer does not insert a core layer.
  12. PCB with only one copper layer have wrong displayed board edge thickness.
  13. Strange display artefact - That is division by zero (or even 0/0) in the vertex shader.
  14. Auto-reading (composing) from only a drill file will now add a bare core to the project. Also bug about negative board outline.
  15. If excellon Guess Option is dissabled, vey likely a bug will render all positions to zero.
  16. drills without any copper layer are rendered incorrectly (bottom of the box), minor visual problem.
  17. Statistical Guessing of the trailing or leading zeros is added in excelon.
  18. drill from/to coper number wrong display bug fixed.

ver 0.4.0005 ()

Download

features

  1. AutoLoad suggests the path and name for saving the .camset file.
  2. Camera FOV (Field Of View) setting and orthogonal projection setting.
  3. Objects clearly outside of the Board Outline are removed.

bug fixes

  1. Introducing a new features in the netlist-browsing, I have managed to block the old one.
  2. ESC-key is not stopping the autopilot, but it is expected to.
  3. New version check function contact the website via wrong port (443 instead of 80). Till now that was working. Due to some kind of update, my provider has removed this redirection. I will make a notice about the new version release via the website and the social media.
  4. Above problem also disables the bug report tool.
  5. Auto-Load fail when simplified algorithm - could not decide gerber or excelon, after 20 first lines.
  6. If two outlines follow directly each other in the Gerber file and first point of the second is equal to the last point of the first then those two outlines will be connected. If the outlines overlap, XOR will be then applied instead of ADD.

ver 0.4.0004 ()

Download

features

  1. "Netlist/Nodes (PCB)" and "Netlist/Nodes (IPC356)" board browsing. The difference between those two methods plays role in case of discrepancies between PCB-detected netlist and IPC356 netlist.
  2. Reading the board outline from copper layers in addition to former method, that is using a separate layer. Meta image is distinguished from the layer image by using "impossible" thin tracks. The "meta-way" is now officially accepted by the Gerber Specification.
  3. Auto-Load works from a command line parameter if you specify just the folder path. If you specify a file of ".zofzproj" or ".camset" type, it is also loaded, as it was before.
  4. Automatic adding of core/prepreg in between copper layers, when [Set Equal Spacing] in BoardOutline / Thickness is pressed.

bug fixes

  1. Drill routing of more complicated shape, a multi-segment path, does not store mesh reference. Trying to highlight some nets (jump net, error, pin) can cause program crash.
  2. Drill routing of more complicated shape, a multi-segment path likely causes false positive detection of short circuit.
  3. False warning about unsaved work on program exit.
  4. Aperture Macro Comment not implemented. When encountered, causes syntax error: "Macro Primitive Type ?"
  5. False positive error: "Aperture Macro argument undefined."

ver 0.4.0003 ()

Download

features

  1. Changed format of .zofzproj file.

bug fixes

  1. Loading a rendered board (.zofzproj). if a layer is above some nomber of triangles, corrupted image is displayed.
  2. Macro expansion: add and subtract error - multiply and division is ok.

ver 0.4.0002 ()

Download

features

  1. Gerber Image Polarity "Force Negative" and "Force Positive" setting in addition to existing "Default Negative" and "Default Positive" settings.
  2. Auto-file-detection checks file content to be Gerber for layers and Gerber or Exelon for drills. This modification solves ambiguous sections, e.g. Protel99se v.s. Kicad "drl" and "txt" - Protel creates "drl" files in a rare binary format, whose could be taken as Kicad excellon drill files. This functionality is a stub for GerberX2 "%TF.FileFunction" - based autoload.Gerber X2 logo
  3. Some Gerber export modules can generate longer numbers (more digits) than format declared in the same Gerber file header. Workaround is possible in case of trailing zeros removal mode.
  4. edit box functionality: home, end, left, right, shift keys are operational.

bug fixes

  1. PCB outline drawing conversion to polygon: - non-closed shape correction range bugs:
    1. added range setting not working (view/sender effects/pen rad enlarge)
    2. added range setting applied only on already connected lines
    3. limit-rectangle (speed-up technique) rounding errors
  2. PCB outline crash when more than 800 lines
  3. Error-stop on depreciated Gerber command G55
  4. Hollow border can produce overlapping circles - sometimes visible e.g. on semitransparent solder mask

ver 0.4.0001 ()

Download

features

  1. Beside signed installation package, there is a companion version, running directly from a folder, without installation and associated privileges. It keeps all settings and examples in the same directory, whenever you place it.
  2. Two more color presets from Christian Weidner, including OSHPark purple.
  3. Ultra High resolution screenshots. x1 (current resolution) to.. x10 19200x10500. download example
  4. Gerber parser allows for Gerber X2 codes: %TF %TA %TD codes, but ignores its content. You can read Gerber X2, but ZofzPCB makes no use of the new additional information at the moment.
  5. Still not correctly interpreting board outline drawing when using single line as a board cut-out. this can happen in panelisation. Example: two rectangles, one inside the other, form a frame shape. This may be not intended.
  6. Additional syntax in CAM_Load_Rules.txt autoload script:
    • Plated/Non-Plated option (Drill_PTH/Drill_NPTH).
    • drills from-to assignment.
  7. Added section "Mentor" and section "Proteus" to the CAM_Load_Rules.txt autoload script.
  8. Added Mentor specific Excellon drill size definition.

ver 0.4.0000 ()

Download

I need some pleasure too. Feature-freeze dissolves. I have decided to add correct thickness for tracks and other layers. It is possible to switch it off in the view menu. This could be required if those additional triangles overheats your GPU, causing too low frame rate. This is now an official release.
I have arranged for code certificate. That is securing the install package transfer.
  1. I have 3 reports about error in the triangulation, it seems to be the same bug - transparency fade-out band extraction (used for preparing the hollow effect). It is related to creating band (or ribbon) inside big surfaces, in case of bumpy track drawing e.g. horizontal tracks only. I am still searching the solution faster then n^2. bumpy edge of dorizontal tracks
  2. Some old software does not generate Gerber image polarity parameter %IPPOS*% or %IPNEG*%. Therefore I have added "Def. Negative" checkbox. The checkbox defines image polarity in case the Gerber file does not declare it (default polarity). Now I found that there are some Gerber files simply declaring wrong image polarity. This is driving me crazy. What to do?
  3. Extremely long "flattering" time. Detailed description:
    for the "flattering" I am still using bounding rectangles to limit the edges crossing algorithm. It works for local and short tracks. But when it is not efficiently working, I have n^2 operations, and this can grow huge. The second stage (triangulation) I have already n*log(n) – scan line sweep algorithm successfully implemented. And I am planning to apply this to the first phase too. (edges are circles – that is the difficult point). So, n*log(n) is much faster then n*n, I have already seen this. (n is a big number.) Additionally, since I am using double precision and(especially for circles) I am using 3 value logic: (yes – no – do not know), there is a possibility that I need to solve binary equation system to meaningfully decide what edges are staying and what are removed. Sometimes it takes a very big matrices to solve (n^3 for the Gaussian back-substitution algorithm)! Solution for this is a double-double arithmetic package – a very cool approach, using pair of double numbers to have almost quadruple precision. This should minimize the ‘do-not-know’ state, as it did in triangulation.
  4. Spaces (character 32) in the Gerber files are forbidden by format definition. But somehow, there are Gerber files containing spaces, as I have seen, in the aperture definitions.
  5. Gerber file read, statements like: $1=$2+$3 - there is a chance of exception.
  6. Lack of pads or IPC356 test-points on one side and simultaneous lack of THT pads-test-poins causes auto-scale and auto-offset calculations for IPC356 fail, placing components and test-points almost at infinity.
  7. IPC356 Load errors were not displayed.
  8. Multiple IPC356 netlist test-points definitions on a single place could cause problems by error browsing.
  9. Only first type of IPC356 errors were displayed correctly. Next sections listings interpretations were shifted.

ver 0.3.0002 ()

Download

This is a feature-freeze version. There are new features related to IPC-356 and netlist. Alberto have reported some crashes in flatening.

ver 0.3.0001 ()

Download

The most robust triangulation I ever had. - I have finally implemented simply a higher resolution calculations in previously unsolvable cases. I use library from High-Precision Software Directory - really clever quad-precision constructed on FPU double precision base. The flattening part however is still in FPU double, where the special cases are solved by a three-valued logic. All 3 Alberto's reported crashes are fixed. I am still working on some new features.

ver 0.3.0000 ()

Download

ver 0.2.0012 ()

No more Z-fighting. Thanks to a very good explanation of Z-buffer format

  1. Effect bug - fix it by setting View / Render Effects / Minimal Hollow Area to 0
  2. 0x80004005 error message: Locking of the vertex buffer as update, when at least 200MB of video memory is allocated. Workaround: change the window size (buffers will be recreated)
  3. Netlist detection for negative rectangle - short circuit falsely detected
  4. Board outline drown (routed) in the drill file, when it is a closed loop, is acting as one big hole and making all components shorten. It should actually create 2 netlist entries instead and leave the cut-out on place. In addition there is a bug in the current version, related to simplified handling of routed loops
  5. Alberto's reported crash. It is very likely related to the above drill-loop handling There are 2 independent bugs
  6. User rights problem by installation - please run the installation as administrator. This can be done using right-click on setup.exe. The setup.exe is now included in the download package. Another cause may be a default selection of installing for ALL users.

ver 0.2.0011 ()

Solder Mask semi-transparency looks better, but requires more power form pixel shader

  1. Solder Mask is very close to the copper layer and Silkscreen, we have Z-fighting artifact when board is far from camera

ver 0.2.0010 ()

excellon G85 and excellon empty fast fix

  1. Installation package contains DLLs from WinXP. Internet related help functions are not working on Win7. To fix this issue delete from program directory (C:\Program Files (x86)\ZofzPCB\ZofzPCB) the following DLLs:
    1. VERSION.dll
    2. WINHTTP.dll
    3. COMDLG32.dll
  2. Solder mask should be negated and semitransparent, regardless increase GPU power
  3. Right panel check boxes "orphaned" and overlapped while manual layers build-up process
  4. Right panel check boxes may not be visible after auto-load

ver 0.2.0009 ()

features:

  1. Excellon G00, G01, G2, G3, G5 implemented for complex slot cnc-routing
  2. Drill file in a Gerber Format: Circle=Drill, Track=cnc-Routing
  3. Automatic drill file format recognition
  4. Screen Saver

ver 0.2 ()

features:

  1. Translucent and opaque PCB volume rendering - slider adjustable (real-time)
  2. Individual layer visibility checkboxes
  3. Side-bar menu

Pre-release Version 0.2.0007 () - bug fixes:

  1. Side bar: copper layer numbers are not assigned in some cases
  2. Download button disconnected form its handler
  3. Hollow option badly influences measurement text display
  4. Slot drills are seen as somehow bigger to netlist detection algorithm
  5. Error in pads search by mouse "E" edge projection
  6. Layer disable have no effect on mouse projection detection

ver 0.1.0010 ()

features: autopilot

  1. Save .zofzproj file for zero sized components - in this case file is broken.
  2. "Polygon flash" pads (e.g. octagonal) are not seen by drill/pads matching. In case there are only "polygon" pads, drill fitting is not working.
  3. Bug in Save .zofzproj file, when pcb contains zero-sized elements.
  4. Camera motion breaking after releasing cursors keys is independent for each direction.
  5. Polygon pads are now also taken for drill/gerber offset and scale matching.
  6. Board volume done by 2 "bottoms" of the pcb (only one visible unless cam. is inside PCB) and color manipulation.
  7. Board volume dimension adjusting accordingly to peeling layers - now "single layer" option seams unnecessary.
  8. Layers have hollow and opaque option, pre-rendered, allowing immediate switch
  9. Big surfaces are divided to smaller, to avoid very long triangles. Important for vertex based color error, more visible after adding above feature.
10.2012 - 05.2013: no progress
  1. New, faster algorithm for polygon intersections, processing surfaces for triangulation stage for straight segments only.
  2. Very small "hollows" are skipped.
  3. Non-plated drill files, if listed at first position, could cause read error.
  4. New Side Panel - individual layer visible checkbox, volume transparency slider, hollow/opaque options.
  5. Mouse wheel used for zoom by default.
  6. Color scheme concept is a bit different now - color picker menu is updated.
  7. Color scheme save / restore - integrated into menu. Repository: "%APPDATA%\ZofzPCB\*.color".
  8. Changes in geometry algorithms requires adjustments in .zofzproj file format
  9. Changes in geometry algorithms requires adjustments in the layer editor
  10. RS274X commands development:
    any two character command
    without parameters
    e.g. "%AD*%"
    optimized out? quietly ignored
    SRX1Y1... Step and Repeat
    meaning "no repeat"
    quietly ignored
    SR real Step and Repeat
    (other as above)
    not implemented
    signaling error
  11. New Rendering Effects Parameters in View menu

ver 0.1.0003

features: layer spreading, support for 3D mouse from 3Dconnexion

  1. New version download broke - not connecting to browser. Fixed 04-07-2012, upgrade not required, version number not changed.
  2. Seams more testing finally taking place, several problems are detected in the core of the program:
    1. "Complex Apertures Tracks not implemented" Gerber tracks drown by complex apertures, till now only circular apertures can be used for drawing. Now expanding to rectangular.
    2. Regular Polygon apertures error.
    3. Excellon explicit decimal point format request - please send me a file example.
    4. Special cases by rendering/triangulation.

ver 0.1 - the major update

  1. Resizing (or other Direct3D Reset) and active net marker - program crash.
  2. Triangulation, weakly simple polygon touch point, some special edges order and directions - program crash.
  3. Sensitivity to aperture sizes close to assumed calculation error (0.1um) - program crash. There is a tendency to use such tracks for "meta" object, like operator text or measurements. Object below 1um will not be triangulated.

ver 0.0.0008

  1. Zero sized tracks were crashing the program. Now objects rendering to "nothing" are disposed.
  2. Aperture Macro (AM) was instantiated to aperture definition using millimetres, even when inch was specified.

ver 0.0.0007

  1. Debug Log Debug log file was written in the program directory. This is not allowed above winXP.
    The place is changed to CSIDL_COMMON_APPDATA
    winXP: C:\Documents and Settings\All Users\Application Data\ZofzDebugLogFile.txt
    win7: C:\ProgramData\ZofzDebugLogFile.txt
  2. Gerber File Reading - multiplication sign in aperture macro definition is 'x'. (according to RS-274X).
    ZofzPcb have been treating capital 'X' as coma.
    Now  both, small and capital 'x' means multiplication.

ver 0.0.0006

  1. Wide range of graphics hardware - exclusive use of 16-bit vertex indexing
  2. Support for G85 - slot drills
  3. Two layer-dissection options - use mouse wheel click

ver 0.0.0005

  1. Guessing Excellon drill format:
     - decimal point - search for fit in a loop.
     - first guess is a copy of gerber settings
  2. RS274X commands development:
    AS Axis Select ignored
    MI Mirror Image ignored
    SF Scale Factor implemented
    IJ  Image Justify ignored
    IO Image Offset implemented
    IR Image Rotation implemented
    PF Plotter Film ignored
    KO Knockout not implemented
    signaling error
    LN Layer Name ignored
    SR Step and Repeat not implemented
    signaling error
    IF Include File not implemented
    signaling error
  3. There are some popular graphic cards, having a limitation of 16-bit primitive indexing.
    Example is Intel's GMA 3150.
    At the moment, the gerber viewer uses one vertex/index buffer per layer. 16 bits is usually not enough for this approach. However, whenever possible, the gerber viewer will use 16bits, allowing small designs to be displayed. Unfortunately some components of the demo file are bigger. 
    Flexible approach will be implemented in one of the next versions.

ver 0.0.0004

  1. Guessing Excellon drill format - it is often needed to put file format options manually.
    Option to use a copy of associated gerber read settings will be implemented.
  2. Following RS274X commands cause 'debug' exception:
    AS Axis Select
    MI Mirror Image
    SF Scale Factor
    IJ  Image Justify
    IO Image Offset
    IR Image Rotation
    PF Plotter Film
    KO Knockout
    LN Layer Name
    SR Step and Repeat
    IF Include File

ver 0.0.0003

  1. Load stops when reading CAM files.
     Reading empty gerber files (containing no drawing primitives)  creates empty layer - this is understood as already signaled file read error.
    workaround: remove empty layers from layer stack list
    status: fixed in ver 0.0.0004
  2. Problem in flattening a rectangular track fill path, where track grid exactly equals track width.
    workaround: increase filling-tracks width or decrease grid in your CAD
    status: fixed in ver 0.0.0004
top

main page
spacer

External Resources