Does not support ground polygon
Hello,
It appears that Visolate fails with the below exception when there are any polygons in the pcb.
java -jar /tmp/Visolate/releases/visolate-3.1.1.jar
graphics device: :0.0
libGL error: failed to load driver: r600
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
pixel format 8:8:8 24-bit depth
WARNING: ignoring offset OFA0.0B0.0
WARNING: ignoring image polarity IPPOS
WARNING: ignoring layer polarity LPD
computing inch coords...
making nets...
102 nets
making half edge loops...
66 loops
computing inch coords...
making nets...
102 nets
making half edge loops...
70 loops
Comment at line 1: start of page 2 for group 0 idx 0
Comment at line 2: Title: (unknown), top
Comment at line 3: Creator: pcb 1.99z
Comment at line 4: CreationDate: Sun 23 Dec 2012 07:41:20 PM GMT UTC
Comment at line 5: For: joe
Comment at line 6: Format: Gerber/RS-274X
Comment at line 7: PCB-Dimensions (mm): 152.40 127.00
Comment at line 8: PCB-Coordinate-Origin: lower left
layer name: TOP
Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: TBD polygon mode
at visolate.simulator.Simulator.setPosition(Simulator.java:232)
at visolate.parser.Parser.CoordinateDCode(Parser.java:351)
at visolate.parser.Parser.DCode(Parser.java:316)
at visolate.parser.Parser.Code(Parser.java:219)
at visolate.parser.Parser.Input(Parser.java:98)
at visolate.Visolate.load(Visolate.java:722)
at visolate.Visolate.loadFile(Visolate.java:698)
at visolate.Visolate$2.actionPerformed(Visolate.java:144)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
test files used:
test.sch: schematic file: http://codepad.org/7EfApPjh test.pcb: pcb file: http://codepad.org/5JusexrR gerber file, output of the command: pcb -x gerber --verbose --metric --gerberfile test_board test.pcb: test_board.top.gbr: http://codepad.org/XVquxoKx
btw, it works without the polygon in the pcb.
Joe
Is there workaround using polygons? I also get:
graphics device: \Display0 pixel format 8:8:8 24-bit depth WARNING: ignoring offset OFA0.0B0.0 WARNING: ignoring image polarity IPPOS WARNING: ignoring layer polarity LPD computing inch coords... making nets... 102 nets making half edge loops... 66 loops computing inch coords... making nets... 102 nets making half edge loops... 73 loops Comment at line 3: EasyPC Gerber Version 18.0.8 Build 3632 Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: TBD polygon mode at visolate.simulator.Simulator.setPosition(Simulator.java:232) at visolate.parser.Parser.CoordinateDCode(Parser.java:351) at visolate.parser.Parser.DCode(Parser.java:316) at visolate.parser.Parser.Code(Parser.java:219) at visolate.parser.Parser.Input(Parser.java:98) at visolate.Visolate.load(Visolate.java:722) at visolate.Visolate.loadFile(Visolate.java:698) at visolate.Visolate$2.actionPerformed(Visolate.java:144) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$400(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
I use designspark 7.1 to create gerber files.

Is there workaround using polygons?
Yes. Two of them:
- Change your design to not have polygons. When milling with Voronoi paths, polygons make not too much sense anyways. If you want to cover an area with copper, simply draw its outline with regular tracks, the Voronoi algorithm will make it one surface, then.
- Write the code which handles polygons.
Hum, wow, 2020 and this is not fixed! This means it will not work with PCB.
Where is your patch / pull request?