Mailing list archives : pcb-rnd

ID:3734
From:pc...@cuvoodoo.info
Date:Sat, 1 Feb 2020 18:07:40 +0100
Subject:Re: [pcb-rnd] reversed missing layer export warning
in-reply-to:3708 from ge...@igor2.repo.hu
replies: 3738 from ge...@igor2.repo.hu
 
--sdtB3X0nJg68CQEu
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
 
On Mon, Jan 27, 2020 at 03:51:23AM +0100, gedau@igor2.repo.hu wrote:
> I agree with this one; are you willing to contribute this as a series of 
> svn commits?
 
see patch attached
 
> So I'd rather keep warnings to drive users to set up their layer stacks 
> properly, instead of keeping layer groups empty they don't really want. In 
> this setup I think I'd have more okempty-group in the default CAM jobs but 
> I would have okempty-content (or okempty) only in some very special 
> cases, e.g. when we see specific fabs yelling at us when sending a 
> through-hole design (with no stencil) without paste gerbers.
 
I agree with your rationale.
I added okempty-group to all copper/silk/paste/mask layers in the patch.
 
we did not mention them, but I would also add okempty-group  to assy export, and fab.
 
--sdtB3X0nJg68CQEu
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="cam.conf.patch"
 
Index: src_plugins/cam/cam.conf
===================================================================
--- src_plugins/cam/cam.conf	(revision 29577)
+++ src_plugins/cam/cam.conf	(working copy)
@@ -6,21 +6,21 @@
 					doc_png {
 						desc export top and bottom copper and silk in 600 DPI pngs
 						plugin png --dpi 600
-						write %base%.top.png=top-copper,top-silk
-						write %base%.bottom.png=bottom-copper,bottom-silk
+						write %base%.top.png=[okempty-group] top-copper,top-silk
+						write %base%.bottom.png=[okempty-group] bottom-copper,bottom-silk
 					}
 					{gerber:eagle} {
 						desc gerber export compatible with Eagle's gerber file names
 						plugin gerber --all-layers
-						write %base%.cmp=top-copper
-						write %base%.sol=bottom-copper
-						write %base%.ly%top_offs+1%=intern-copper
-						write %base%.plc=top-silk
-						write %base%.pls=bottom-silk
-						write %base%.stc=top-mask
-						write %base%.sts=bottom-mask
-						write %base%.crc=top-paste
-						write %base%.crs=bottom-paste
+						write %base%.cmp=[okempty-group] top-copper
+						write %base%.sol=[okempty-group] bottom-copper
+						write %base%.ly%top_offs+1%=[okempty-group] intern-copper
+						write %base%.plc=[okempty-group] top-silk
+						write %base%.pls=[okempty-group] bottom-silk
+						write %base%.stc=[okempty-group] top-mask
+						write %base%.sts=[okempty-group] bottom-mask
+						write %base%.crc=[okempty-group] top-paste
+						write %base%.crs=[okempty-group] bottom-paste
 						write %base%.oln=boundary
 						write %base%.ast=top-virtual(purpose=assy),top-doc(purpose=assy)
 						write %base%.asb=bottom-virtual(purpose=assy),bottom-doc(purpose=assy)
@@ -32,15 +32,15 @@
 					{gerber:fixed_topbottom} {
 						desc gerber export almost compatible with old 'fixed' naming style, with special casing top and bottom copper
 						plugin gerber --all-layers
-						write %base%.top.gbr=top-copper
-						write %base%.bottom.gbr=bottom-copper
-						write %base%.group%top_offs%=intern-copper
-						write %base%.topsilk.gbr=top-silk
-						write %base%.bottomsilk.gbr=bottom-silk
-						write %base%.topmask.gbr=top-mask
-						write %base%.bottommask.gbr=bottom-mask
-						write %base%.toppaste.gbr=top-paste
-						write %base%.bottompaste.gbr=bottom-paste
+						write %base%.top.gbr=[okempty-group] top-copper
+						write %base%.bottom.gbr=[okempty-group] bottom-copper
+						write %base%.group%top_offs%=[okempty-group] intern-copper
+						write %base%.topsilk.gbr=[okempty-group] top-silk
+						write %base%.bottomsilk.gbr=[okempty-group] bottom-silk
+						write %base%.topmask.gbr=[okempty-group] top-mask
+						write %base%.bottommask.gbr=[okempty-group] bottom-mask
+						write %base%.toppaste.gbr=[okempty-group] top-paste
+						write %base%.bottompaste.gbr=[okempty-group] bottom-paste
 						write %base%.outline.gbr=boundary
 						write %base%.topassy.gbr=top-virtual(purpose=assy),top-doc(purpose=assy)
 						write %base%.bottomassy.gbr=bottom-virtual(purpose=assy),bottom-doc(purpose=assy)
@@ -52,15 +52,15 @@
 					{gerber:fixed} {
 						desc gerber export almost compatible with old 'fixed' - top and bottom copper are not special cased but numbered from group0 (top)
 						plugin gerber --all-layers
-						write %base%.group%top_offs%.gbr=top-copper
-						write %base%.group%top_offs%.gbr=bottom-copper
-						write %base%.group%top_offs%.gbr=intern-copper
-						write %base%.topsilk.gbr=top-silk
-						write %base%.bottomsilk.gbr=bottom-silk
-						write %base%.topmask.gbr=top-mask
-						write %base%.bottommask.gbr=bottom-mask
-						write %base%.toppaste.gbr=top-paste
-						write %base%.bottompaste.gbr=bottom-paste
+						write %base%.group%top_offs%.gbr=[okempty-group] top-copper
+						write %base%.group%top_offs%.gbr=[okempty-group] bottom-copper
+						write %base%.group%top_offs%.gbr=[okempty-group] intern-copper
+						write %base%.topsilk.gbr=[okempty-group] top-silk
+						write %base%.bottomsilk.gbr=[okempty-group] bottom-silk
+						write %base%.topmask.gbr=[okempty-group] top-mask
+						write %base%.bottommask.gbr=[okempty-group] bottom-mask
+						write %base%.toppaste.gbr=[okempty-group] top-paste
+						write %base%.bottompaste.gbr=[okempty-group] bottom-paste
 						write %base%.outline.gbr=boundary
 						write %base%.topassy.gbr=top-virtual(purpose=assy),top-doc(purpose=assy)
 						write %base%.bottomassy.gbr=bottom-virtual(purpose=assy),bottom-doc(purpose=assy)
@@ -72,15 +72,15 @@
 					{gerber:universal} {
 						desc gerber export compatible with old 'univeral' include group name and suffix with eagle-like extensions
 						plugin gerber --all-layers
-						write %base%.%name%.gtl=top-copper
-						write %base%.%name%.gbl=bottom-copper
-						write %base%.%name%.g%top_offs%=intern-copper
-						write %base%.%name%.gto=top-silk
-						write %base%.%name%.gbo=bottom-silk
-						write %base%.%name%.gts=top-mask
-						write %base%.%name%.gbs=bottom-mask
-						write %base%.%name%.gtp=top-paste
-						write %base%.%name%.gbp=bottom-paste
+						write %base%.%name%.gtl=[okempty-group] top-copper
+						write %base%.%name%.gbl=[okempty-group] bottom-copper
+						write %base%.%name%.g%top_offs%=[okempty-group] intern-copper
+						write %base%.%name%.gto=[okempty-group] top-silk
+						write %base%.%name%.gbo=[okempty-group] bottom-silk
+						write %base%.%name%.gts=[okempty-group] top-mask
+						write %base%.%name%.gbs=[okempty-group] bottom-mask
+						write %base%.%name%.gtp=[okempty-group] top-paste
+						write %base%.%name%.gbp=[okempty-group] bottom-paste
 						write %base%.%name%.gko=boundary
 						write %base%.fab=virtual(purpose=fab),top-doc(purpose=fab)
 						plugin excellon
@@ -90,15 +90,15 @@
 					{gerber:OSH_Park} {
 						desc gerber export compatible with OSH Park's recommendations
 						plugin gerber --all-layers
-						write %base%.gtl=top-copper
-						write %base%.gbl=bottom-copper
-						write %base%.g%top_offs+1%l=intern-copper
-						write %base%.gto=top-silk
-						write %base%.gbo=bottom-silk
-						write %base%.gts=top-mask
-						write %base%.gbs=bottom-mask
-						write %base%.gtp=top-paste
-						write %base%.gbp=bottom-paste
+						write %base%.gtl=[okempty-group] top-copper
+						write %base%.gbl=[okempty-group] bottom-copper
+						write %base%.g%top_offs+1%l=[okempty-group] intern-copper
+						write %base%.gto=[okempty-group] top-silk
+						write %base%.gbo=[okempty-group] bottom-silk
+						write %base%.gts=[okempty-group] top-mask
+						write %base%.gbs=[okempty-group] bottom-mask
+						write %base%.gtp=[okempty-group] top-paste
+						write %base%.gbp=[okempty-group] bottom-paste
 						write %base%.gko=boundary
 						write %base%.ast=top-virtual(purpose=assy),top-doc(purpose=assy)
 						write %base%.asb=bottom-virtual(purpose=assy),bottom-doc(purpose=assy)
@@ -109,15 +109,15 @@
 					{gerber:Seeed} {
 						desc gerber export compatible with Seeed Studio's recommendations
 						plugin gerber
-						write %base%.GTL=top-copper
-						write %base%.GBL=bottom-copper
-						write %base%.GL%top_offs+1%=intern-copper
-						write %base%.GTO=top-silk
-						write %base%.GBO=bottom-silk
-						write %base%.GTS=top-mask
-						write %base%.GBS=bottom-mask
-						write %base%.GTP=top-paste
-						write %base%.GBP=bottom-paste
+						write %base%.GTL=[okempty-group] top-copper
+						write %base%.GBL=[okempty-group] bottom-copper
+						write %base%.GL%top_offs+1%=[okempty-group] intern-copper
+						write %base%.GTO=[okempty-group] top-silk
+						write %base%.GBO=[okempty-group] bottom-silk
+						write %base%.GTS=[okempty-group] top-mask
+						write %base%.GBS=[okempty-group] bottom-mask
+						write %base%.GTP=[okempty-group] top-paste
+						write %base%.GBP=[okempty-group] bottom-paste
 						write %base%.GML=boundary
 						write %base%.AST=top-virtual(purpose=assy),top-doc(purpose=assy)
 						write %base%.ASB=bottom-virtual(purpose=assy),bottom-doc(purpose=assy)
@@ -129,15 +129,15 @@
 					{gerber:JLC_PCB} {
 						desc gerber export for JLC PCB's filename convention
 						plugin gerber
-						write %base%.gtl=top-copper
-						write %base%.gbl=bottom-copper
-						write %base%.g%top_offs+1%l=intern-copper
-						write %base%.gto=top-silk
-						write %base%.gbo=bottom-silk
-						write %base%.gts=top-mask
-						write %base%.gbs=bottom-mask
-						write %base%.gtp=top-paste
-						write %base%.gbp=bottom-paste
+						write %base%.gtl=[okempty-group] top-copper
+						write %base%.gbl=[okempty-group] bottom-copper
+						write %base%.g%top_offs+1%l=[okempty-group] intern-copper
+						write %base%.gto=[okempty-group] top-silk
+						write %base%.gbo=[okempty-group] bottom-silk
+						write %base%.gts=[okempty-group] top-mask
+						write %base%.gbs=[okempty-group] bottom-mask
+						write %base%.gtp=[okempty-group] top-paste
+						write %base%.gbp=[okempty-group] bottom-paste
 						write %base%.gko=boundary
 						write %base%.ast=top-virtual(purpose=assy),top-doc(purpose=assy)
 						write %base%.asb=bottom-virtual(purpose=assy),bottom-doc(purpose=assy)
@@ -150,15 +150,15 @@
 					{gerber:protel} {
 						desc gerber export for a filename convention similar to protel's
 						plugin gerber
-						write %base%.gtl=top-copper
-						write %base%.gbl=bottom-copper
-						write %base%.g%top_offs+1%l=intern-copper
-						write %base%.gto=top-silk
-						write %base%.gbo=bottom-silk
-						write %base%.gts=top-mask
-						write %base%.gbs=bottom-mask
-						write %base%.gtp=top-paste
-						write %base%.gbp=bottom-paste
+						write %base%.gtl=[okempty-group] top-copper
+						write %base%.gbl=[okempty-group] bottom-copper
+						write %base%.g%top_offs+1%l=[okempty-group] intern-copper
+						write %base%.gto=[okempty-group] top-silk
+						write %base%.gbo=[okempty-group] bottom-silk
+						write %base%.gts=[okempty-group] top-mask
+						write %base%.gbs=[okempty-group] bottom-mask
+						write %base%.gtp=[okempty-group] top-paste
+						write %base%.gbp=[okempty-group] bottom-paste
 						write %base%.gko=boundary
 						write %base%.ast=top-virtual(purpose=assy),top-doc(purpose=assy)
 						write %base%.asb=bottom-virtual(purpose=assy),bottom-doc(purpose=assy)
@@ -170,15 +170,15 @@
 					{gerber:PCBWay} {
 						desc gerber export for PCBWay's filename convention
 						plugin gerber
-						write %base%-copper_top_l1.gbr=top-copper
-						write %base%-copper_bottom_l%top_offs+1%.gbr=bottom-copper
-						write %base%-copper_innter_l%top_offs+1%.gbr=intern-copper
-						write %base%-silkscreen_top.gbr=top-silk
-						write %base%-silkscreen_bottom.gbr=bottom-silk
-						write %base%-soldermask_top.gbr=top-mask
-						write %base%-soldermask_bottom.gbr=bottom-mask
-						write %base%-solderpaste_top.gbr=top-paste
-						write %base%-solderpaste_bottom.gbr=bottom-paste
+						write %base%-copper_top_l1.gbr=[okempty-group] top-copper
+						write %base%-copper_bottom_l%top_offs+1%.gbr=[okempty-group] bottom-copper
+						write %base%-copper_innter_l%top_offs+1%.gbr=[okempty-group] intern-copper
+						write %base%-silkscreen_top.gbr=[okempty-group] top-silk
+						write %base%-silkscreen_bottom.gbr=[okempty-group] bottom-silk
+						write %base%-soldermask_top.gbr=[okempty-group] top-mask
+						write %base%-soldermask_bottom.gbr=[okempty-group] bottom-mask
+						write %base%-solderpaste_top.gbr=[okempty-group] top-paste
+						write %base%-solderpaste_bottom.gbr=[okempty-group] bottom-paste
 						write %base%-profile.gbr=boundary
 						plugin excellon
 						write %base%-drills.xln=[okempty] virtual(purpose=pdrill),virtual(purpose=udrill)
@@ -187,17 +187,17 @@
 					{gerber:Elecrow} {
 						desc gerber export for Elecrow's filename convention including unplated holes (Untested)
 						plugin gerber
-						write %base%.GTL=top-copper
-						write %base%.GTS=top-mask
-						write %base%.GTO=top-silk
-						write %base%.GTP=top-paste
-						write %base%.GBL=bottom-copper
-						write %base%.GBS=bottom-mask
-						write %base%.GBO=bottom-silk
-						write %base%.GBP=bottom-paste
+						write %base%.GTL=[okempty-group] top-copper
+						write %base%.GTS=[okempty-group] top-mask
+						write %base%.GTO=[okempty-group] top-silk
+						write %base%.GTP=[okempty-group] top-paste
+						write %base%.GBL=[okempty-group] bottom-copper
+						write %base%.GBS=[okempty-group] bottom-mask
+						write %base%.GBO=[okempty-group] bottom-silk
+						write %base%.GBP=[okempty-group] bottom-paste
 						write %base%.GML=boundary
 						write %base%.FAB=virtual(purpose=fab),top-doc(purpose=fab)
-						write %base%.GL%top_offs+1%=intern-copper
+						write %base%.GL%top_offs+1%=[okempty-group] intern-copper
 						plugin excellon
 						write %base%.TXT=[okempty] virtual(purpose=pdrill)
 						write %base%-NPTH.txt=[okempty] virtual(purpose=udrill)
@@ -206,15 +206,15 @@
 					{gerber:orcad} {
 						desc gerber export compatible with Orcad's gerber file names
 						plugin gerber --all-layers
-						write %base%.top=top-copper
-						write %base%.bot=bottom-copper
-#						write %base%.ly%top_offs+1%=intern-copper
-						write %base%.sst=top-silk
-						write %base%.ssb=bottom-silk
-						write %base%.smt=top-mask
-						write %base%.smb=bottom-mask
-#						write %base%.spt=top-paste
-#						write %base%.spb=bottom-paste
+						write %base%.top=[okempty-group] top-copper
+						write %base%.bot=[okempty-group] bottom-copper
+#						write %base%.ly%top_offs+1%=[okempty-group] intern-copper
+						write %base%.sst=[okempty-group] top-silk
+						write %base%.ssb=[okempty-group] bottom-silk
+						write %base%.smt=[okempty-group] top-mask
+						write %base%.smb=[okempty-group] bottom-mask
+#						write %base%.spt=[okempty-group] top-paste
+#						write %base%.spb=[okempty-group] bottom-paste
 						write %base%.fab=boundary
 #						write %base%.ast=top-virtual(purpose=assy),top-doc(purpose=assy)
 #						write %base%.asb=bottom-virtual(purpose=assy),bottom-doc(purpose=assy)
 
--sdtB3X0nJg68CQEu--
 

Reply subtree:
3734 Re: [pcb-rnd] reversed missing layer export warning from pc...@cuvoodoo.info
  3738 Re: [pcb-rnd] reversed missing layer export warning from ge...@igor2.repo.hu