Coder Social home page Coder Social logo

thisisnotrocketscience / gerbertools Goto Github PK

View Code? Open in Web Editor NEW
710.0 710.0 139.0 19.84 MB

Tools to load/edit/create/panelizer sets of gerber files

License: MIT License

C# 99.66% HTML 0.19% Batchfile 0.01% Shell 0.03% Visual Basic .NET 0.12%

gerbertools's People

Contributors

bombela avatar crimier avatar deece avatar etgauth avatar etrinh avatar fabianogk avatar gezhaowan avatar icegoaliepaul avatar luigiesn avatar pysco68 avatar rpc-fw avatar shackmeister avatar stijnkuipers avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gerbertools's Issues

File error?

When i put the Gerber files inside the program, nothing appears.
What i wrong?
I used the new version of eagle. I was try the extension .gbr but i received the same result.
img_20180205_193736

Panelizer; Missing drill holes, not supporting NPTH and PTH?

Hi!
About to order my first batch of panelized PCB's, and thought I'd give this a shot.

I've exported my gerbers from KiCAD, where I got a NPTH.drl and PTH.drl file.
Is it possible to use these with Panelizer? It seems like it has only used the NPTH file, but as PTH...

Vector images

It would be awesome to have vector image exported artwork of the boards. Love your software :)

HOW TO build from source on Mono

This is how you build the GerberPanelizer from source on Linux.

Get @runesoeknudsen branch

git remote add github-pr-41 https://github.com/runesoeknudsen/GerberTools
git fetch github-pr-41
git checkout linuxHAck

Obtain dependency: Triangle.dll

This one is clean and easy.

git clone https://github.com/eppz/Triangle.NET
cd Triangle.NET/Triangle.NET
xbuild
cp Triangle/bin/Debug/Triangle.dll /tmp

Obtain dependency: DotNetZip.dll

This repo has it: https://github.com/haf/DotNetZip.Semverd
Can be done from source, but requires Ruby tools for that.
I preferred to pull the DotNetZip.1.11.0.nupkg package from their Appveyor CI. The .nupkg is just a zip file, the dll is inside.

Obtain dependency: OpenTK

https://www.nuget.org/packages/OpenTK/3.0.0-pre
https://www.nuget.org/packages/OpenTK.GLControl/3.0.0-pre

Patch up the source a bit

This diff was somehow necessary to get it to compile as well:

diff --git i/GerberPanelizer/GerberPanelize.cs w/GerberPanelizer/GerberPanelize.cs
index b30d7fc..59ed2b7 100644
--- i/GerberPanelizer/GerberPanelize.cs
+++ w/GerberPanelizer/GerberPanelize.cs
@@ -656,7 +656,7 @@ namespace GerberCombinerBuilder
 
             GL.Disable(EnableCap.DepthTest);
             GL.Enable(EnableCap.Blend);
-            GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
+            GL.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha);
             GL.Hint(HintTarget.LineSmoothHint, HintMode.Nicest);
             GL.Hint(HintTarget.PointSmoothHint, HintMode.Nicest);
 
diff --git i/GerberPanelizer/QuickFont/QFont.cs w/GerberPanelizer/QuickFont/QFont.cs
index 0ab0d53..fa97c9d 100644
--- i/GerberPanelizer/QuickFont/QFont.cs
+++ w/GerberPanelizer/QuickFont/QFont.cs
@@ -588,7 +588,7 @@ namespace QuickFont
 
                 if (Options.UseDefaultBlendFunction)
                 {
-                    GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
+                    GL.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha);
                 }
 
             }
@@ -1137,7 +1137,7 @@ namespace QuickFont
                 if (Options.UseDefaultBlendFunction)
                 {
 
-                    GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
+                    GL.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha);
 
                 }
             }

Start compilation

cd GerberTools/GerberPanelizer
xbuild

Finally, run it

mono bin/Debug/GerberPanelizer.exe

Breaktab in filled board gap not working as reported on HAD

Adding a breaktab doesn't work between a board and a filled panel outline as the program doesn't seem to be aware for the filled area. This was reported in the HAD article and apparently a fix was provided but it doesn't seem to be in the latest binary available for download. Perhaps if I built from source I'd find this is fixed but so far haven't found instructions for building, I just see a whole bunch of VS projects and not sure where to start....

Breaktab artefact

Release: c4c91e2 2017-01-27
Some artefact of a breaktab.
Small offset of 0.5mm or changed dimension of breaktab solves the issue

breaktabs_artefact
breaktabs_artefact_combined

Demo:
demo.zip

Bug: Add more than 1 instance of the same board in succession crashes the tool

Start a new panel, drop in a board, then on the right side add an instance of it, then add it again and it crashes.

If you have 2 boards and add an instance of the first, then an instance of the 2nd, then an instance of the first again it does not crash. So this is related to adding the same board multiple times in succession.

Feature Request: Silk only and V-Score panelization

It would be cool to be able to use the panelizer for not just tab-bite panelizing but also for "silk only" and v-score panelizing.

For board houses that don't allow panelizing at all, usually you can get away with silkscreen lines and just cut them up yourself, some board houses (ie, Seeed) will charge you more for panelizing multiple designs unless you only use silk/nothing to separate them.

Essentially v-score is the same as silk only except instead of silk lines put them on an outline layer (maybe with an annotation text).

The Seeed Studio panelization rules....
http://support.seeedstudio.com/knowledgebase/articles/388503-what-are-the-pcb-panelization-rules

would probably be a good reference for v score.

Crashes on large gerber layers

I cannot panelize my gerbers that have a 23Mb copper layer. I'm trying to put six on one board and it cannot complete because it crashes. No indication what is really happening. Could be memory issue, but I have 16Gb of memory and it isn't using it all. How about a 64-bit version?

Margin between boards, min 2.0mm

Does setting Margin between boards reflect warning displayed when placing tabs?
Also in my example min 2.0 mm is not the case if I set 2.1 mm then breaktabs can be placed

Problems running under Linux mono

It's my first time trying to run the tools, and I uncovered an error when running in the obvious way on Linux. This occurs under both older Ubuntu (mono 3.2.8) and recent Arch (mono 4.8.0). The same release works fine under Windows 10. I haven't looked into whether previous GerberTools releases behave any better though.

$ cd GerberTools_2017_2_17/Panelizer
$ mono GerberPanelizer.exe

Unhandled Exception:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: XOR data length expected 2046820352, read 1370
Parameter name: stream
  at System.Drawing.Icon.InitFromStreamWithSize (System.IO.Stream stream, Int32 width, Int32 height) [0x00000] in <filename unknown>:0 
  at System.Drawing.Icon..ctor (System.Runtime.Serialization.SerializationInfo info, StreamingContext context) [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at System.Reflection.MonoCMethod.DoInvoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.ObjectRecord.LoadData (System.Runtime.Serialization.ObjectManager manager, ISurrogateSelector selector, StreamingContext context) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.ObjectManager.DoFixups () [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadNextObject (System.IO.BinaryReader reader) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadObjectGraph (BinaryElement elem, System.IO.BinaryReader reader, Boolean readHeaders, System.Object& result, System.Runtime.Remoting.Messaging.Header[]& headers) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.NoCheckDeserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceReader.ReadNonPredefinedValue (System.Type exp_type) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceReader.ReadValueVer2 (Int32 type_index) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceReader.LoadResourceValues (ResourceCacheItem[] store) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceReader+ResourceEnumerator.FillCache () [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceReader+ResourceEnumerator..ctor (System.Resources.ResourceReader readerToEnumerate) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceReader.GetEnumerator () [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceSet.ReadResources () [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceSet.GetObjectInternal (System.String name, Boolean ignoreCase) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceSet.GetObject (System.String name, Boolean ignoreCase) [0x00000] in <filename unknown>:0 
  at System.Resources.RuntimeResourceSet.GetObject (System.String name, Boolean ignoreCase) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceManager.GetObject (System.String name, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceManager.GetObject (System.String name) [0x00000] in <filename unknown>:0 
  at GerberCombinerBuilder.GerberPanelizerParent.InitializeComponent () [0x00000] in <filename unknown>:0 
  at GerberCombinerBuilder.GerberPanelizerParent..ctor () [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) GerberCombinerBuilder.GerberPanelizerParent:.ctor ()
  at GerberCombinerBuilder.Program.Main () [0x00000] in <filename unknown>:0 

Feature request: Crop board according to outline

If I try panelize board with some layers exceed board outline (typically silk screen) it can overflow to next instance.

Example single board:

pcb

Example panel:

panel

It would be nice to have some options to automatically crop/delete exceeding paths.

.gm1 file not taken into account

KiCad uses .gm1 files instead of .gml (file syntax is identical, copying .gm1 to .gml will work). It's stupid, but IIRC KiCad devs don't want to change that. It would be very useful (and user-friendly) to have a workaround for this. I am thinking about looking into it (should be simple to add), but I'm not sure I'll have the time this or next week.

Silk outside of outline is printed onto next board

I have a board design which has a silk layer which bigger than the board outline (yes, that is kind of stupid, but KiCad does not really help preventing this). I already ordered single boards an it was no problem. If I use the panelizer with this boards, the silk layer from one board is printed onto the board next to it.
Would be great if the silk stay on the board it belongs to.

Feature Req: in Panelizer, center tabs on gap

I loaded a board that doesn't cleanly fit the grid, and when placing tabs, it's difficult to center them. Snapping to the centerline of the gap on mouseup would make for symmetric tabs more often. (This test board is probably on an inch grid.)

Panelizer keeps crashing on Windows 10 64bit

Hi there,
I'm trying to get Panelizer (2017-01-17 Version) working on my machine, but when I open try to open my gerber folder it crashes everytime:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.EntryPointNotFoundException: Unable to find an entry point named 'glGenerateMipmap' in DLL 'opengl32.dll'.
at OpenTK.Graphics.OpenGL.GL.Core.GenerateMipmap(GenerateMipmapTarget target)
at OpenTK.Graphics.OpenGL.GL.GenerateMipmap(GenerateMipmapTarget target)
at QuickFont.TexturePage.CreateTexture(BitmapData dataSource)
at QuickFont.Builder.BuildFontData(String saveName)
at QuickFont.QFont..ctor(Font font, QFontBuilderConfiguration config)
at GerberCombinerBuilder.GLGraphicsInterface.CheckFont()
at GerberCombinerBuilder.GLGraphicsInterface.MeasureString(String p)
at GerberLibrary.GerberPanel.RenderInstance(GraphicsInterface G, Single PW, Color C, AngledThing b, Boolean errors, Boolean active, Boolean hover)
at GerberLibrary.GerberPanel.DrawBoardBitmap(Single PW, GraphicsInterface G, Int32 targetwidth, Int32 targetheight, AngledThing SelectedInstance, AngledThing Hoverinstance, Double snapdistance)
at GerberCombinerBuilder.GerberPanelize.glControl1_Paint(Object sender, PaintEventArgs e)
at System.Windows.Forms.Control.OnPaint(PaintEventArgs e)
at OpenTK.GLControl.OnPaint(PaintEventArgs e)
at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
at System.Windows.Forms.Control.WmPaint(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.UserControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2046.0 built by: NET47REL1
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

GerberPanelizer
Assembly Version: 1.0.6257.24941
Win32 Version: 1.0.*
CodeBase: file:///C:/Users/Nitek/Desktop/GerberTools_2017_2_17/Panelizer/GerberPanelizer.exe

System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2094.0 built by: NET47REL1LAST
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

System
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2093.0 built by: NET47REL1LAST
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2046.0 built by: NET47REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2046.0 built by: NET47REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2093.0 built by: NET47REL1LAST
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2046.0 built by: NET47REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

GerberLibrary
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Nitek/Desktop/GerberTools_2017_2_17/Panelizer/GerberLibrary.DLL

OpenTK.GLControl
Assembly Version: 1.1.0.0
Win32 Version: 1.1.2349.61993
CodeBase: file:///C:/Users/Nitek/Desktop/GerberTools_2017_2_17/Panelizer/OpenTK.GLControl.DLL

OpenTK
Assembly Version: 1.1.0.0
Win32 Version: 1.1.2349.61993
CodeBase: file:///C:/Users/Nitek/Desktop/GerberTools_2017_2_17/Panelizer/OpenTK.DLL

System.DirectoryServices
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2046.0 built by: NET47REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.DirectoryServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.DirectoryServices.dll

Triangle
Assembly Version: 0.0.6.0
Win32 Version: 0.0.6.0
CodeBase: file:///C:/Users/Nitek/Desktop/GerberTools_2017_2_17/Panelizer/Triangle.DLL

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Out of memory on .resx while trying to build on Mac

hi @StijnKuipers

Not sure if this is the right place, but since I've been trying to run the tools on Mac with very little success I thought I'd give a shot at compiling the source using VS for Mac.
The reason why I'm not able to run on Mac using Mono is because Homebrew's installation does not include mono32 and I get an error during launch.

In my mind it should be pretty straight forward to compile this using VS, but I get Out of Memory errors on all the .resx files, right after the Base64 encoding.

Any chance you have tips on this?
No hurry, let me know if you have time :)

In version from git, certain boards don't have silkscreen (latest release works fine)

So, there seems to be a regression somewhere between the current version in git and the January release. I just noticed it, don't know why it hasn't surfaced sooner. The bug is - on certain boards, silkscreen markings will never show up after they go through the panelizer, even if it's a single board on the panel (no other boards added). All boards are exported from KiCad 4.0.6, with same settings, but some do have this problem and some don't - the .gto and .gbo file headers are pretty much the same, and I can't tell whether there's anything else different. I'd do a git bisect on this, but for now it's not my personal priority - I can get by with using the stable revision, so I'd rather get some work done in the meantime (especially given I'm familiar neither with codebase nor with Visual Studio).

Here's how affected boards look like:
board without silkscreen
Will provide gerber zips upon request - both for affected and unaffected boards.

Bug: Having the output directory similar to one gerber instance can give bad results

If you set the Gerber output directory similar to one of the Gerber instances, and output the combined gerber several times in a row (after adjusting tab dimensions or positions for example), the output files looks to combine the previous results and the instance. Maybe the previous combined files should be deleted if present, before outputting new ones.

Provide method for correcting origin issues

Despite not being a bug in this project, the issue described in #22 is common enough that it seems reasonable to treat it as a quirk that a significant portion of random KiCad gerbers will have.

I suggest adding a decision path on the GerberMove tool if no coordinates are given, to reposition the origin?

Kicad 5

Hi everyone,
I'm using the kicad 5 version and when i plot the gerber files i see that the all files has the extansions ".GBR".

So using this guide, i see the extensions in kicad: https://goo.gl/PiiejM
Now i saved the gerber files in this "old" configuration, but nothing works....

screen shot 2018-08-05 at 18 33 46

Gerber rotation, arcs

When rotating gerbers, some arcs act funny
I have arcs on Silkscreen and Soldermask

90ยฐ NOT ok
combined_test_combined_bottom

0ยฐ OK
combined_test_combined_bottom

GerberPanelizer Build

I am having problems with the built version messing up the art when generating the panels. I have to move the tab around until it makes a good image.

Do you think you could release an updated build on your website?

Thanks either way I love the panelizer.

Can we have an updated release?

Hi,

I don't program in C#, so I was wondering if it would be possible to get an updated build. I see that there's been a lot of movement since the last release, and I understand that your time is limited and might be busy with life, so no probs if you are busy or thinking on getting some other stuff before releasing.

Cheers!

Boards with origin point far from 0,0 spawn outside panel area

Hi! In KiCad, for example, the drawing area is the size of an A4 sheet, and board element coordinates are calculated from the top left corner. So, a board that's drawn in the center of the KiCad drawing area, will spawn at ~(150, 100), which is well outside the drawing area for most panels (and there might be other factors at play, too, since IIRC I had boards that wouldn't appear without increasing the X/Y numbers even more). It's even worse when rotating boards, because they rotate in relation to the 0,0 point and you have to re-calculate the coordinates. I've described a workaround in this Gerber Panelizer tutorial I did recently, but it would be much more user-friendly if that issue was worked around automatically.

Struggling to build

Sorry to raise this as an issue but i couldn't find an email address for you.

I'm using Visual Studio Community 2015, 14.0.25431.01 and see these errors trying to build the library at head as of now. Unfortunately I'm not yet a C# guy so I'm flying blind here. I'll dig deeper if you need me to but this might be obvious.

1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(126,81,126,86): error CS1525: Invalid expression term 'throw'
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(126,81,126,86): error CS1002: ; expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,9,127,15): error CS1014: A get or set accessor expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,15,127,16): error CS1014: A get or set accessor expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,16,127,23): error CS1014: A get or set accessor expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,23,127,24): error CS1014: A get or set accessor expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,24,127,33): error CS1014: A get or set accessor expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,33,127,34): error CS1014: A get or set accessor expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,34,127,51): error CS1014: A get or set accessor expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,52,127,69): error CS1014: A get or set accessor expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,69,127,70): error CS1014: A get or set accessor expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,70,127,87): error CS1014: A get or set accessor expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,97,127,102): error CS1525: Invalid expression term 'throw'
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,97,127,102): error CS1002: ; expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,141,127,146): error CS1525: Invalid expression term 'throw'
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,141,127,146): error CS1002: ; expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Artwork Related\SVGWriter.cs(127,179,127,179): error CS1513: } expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Core\GraphicsInterface.cs(168,34,168,36): error CS1043: { or ; expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Core\GraphicsInterface.cs(168,34,168,36): error CS1513: } expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Core\GraphicsInterface.cs(168,81,168,86): error CS1525: Invalid expression term 'throw'
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Core\GraphicsInterface.cs(168,81,168,86): error CS1002: ; expected
1>Z:\tom\git\ThisIsNotRocketScience\GerberTools\GerberLibrary\Core\GraphicsInterface.cs(168,119,168,119): error CS1513: } expected
126:       public bool Dotted { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
127:       System.Drawing.Drawing2D.InterpolationMode GraphicsInterface.InterpolationMode { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }

line widths

Sorry, me again :) ๐Ÿ‘

Line widths are messed sometimes. By deleting instances of Gerbers and placing them again something changes. Seems it is not 100% reproducable.

Any changes in xml format from last versions?
How could number of instances affect line width? (not including "your" tabs)
Photos before - max. number of instances 4
Last photo is OK - max. number of instances 3

Maybe make About page COPY/PASTEABLE for bugs sake, photo for now
image

image
image
image

Bug: oval through-hole

if component pin is through-hole with shape oval and drill is oval, output gerber hole is not made!
Version 1.0.6257.24941 built on 17/02/2017

1
2
3

Gernerate single drill file only

As far as I understood the Panelizer is currently creating 2 drill files (combined.drl and combined.txt). Most services seem to honor only one of those files (I'm right now waiting for a dirtypcb order where I realized to late that, at least in the preview, only the combined.txt holes seem to be made :( ). Would be nice to have an option to have both files merged to prevent any issues like this.

Board inside another board.

In one of the designs I am working on, there is a large internal cutout within one of the board (defined on outline layer).

To save space I want to pack another board inside that cutout. When placing the board and adding break tabs, everything seems fine - I can see the board inside another and the break tabs connect:

sample

When exporting the merged gerbers, it seems that the internal board ("GPIO Breakout" in the sample image) doesn't make it to the rendered output - it gets deleted:

sampleexport

Fortunately the board is physically present in the merged gerber files, so the merged gerbers are usable, it's just the rendered picture that is incorrect.

I presume this is a bug in the rendering tool.

Feature Request: Drill diameter setting

It would be a good idea to include drill width option for mouse-bites. Also allow zero-width - this would not generate the wholes and whole design will behave like one pcb and fab houses will accept it, like ie. Elecrow which refused my panelized board, but they say if i keep bridges and remove holes it will be fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.