update a python demo that wws not working with current pcbnew version.
This commit is contained in:
parent
76d1365360
commit
e1fbe1cb3a
|
@ -44,12 +44,14 @@ popt.SetScale(1)
|
||||||
popt.SetUseAuxOrigin(True)
|
popt.SetUseAuxOrigin(True)
|
||||||
|
|
||||||
# This by gerbers only (also the name is truly horrid!)
|
# This by gerbers only (also the name is truly horrid!)
|
||||||
popt.SetSubtractMaskFromSilk(False)
|
popt.SetSubtractMaskFromSilk(False) #remove solder mask from silk to be sure there is no silk on pads
|
||||||
|
|
||||||
|
#Create a pdf file of the top silk layer
|
||||||
pctl.SetLayer(F_SilkS)
|
pctl.SetLayer(F_SilkS)
|
||||||
pctl.OpenPlotfile("Silk", PLOT_FORMAT_PDF, "Assembly guide")
|
pctl.OpenPlotfile("Silk", PLOT_FORMAT_PDF, "Assembly guide")
|
||||||
pctl.PlotLayer()
|
pctl.PlotLayer()
|
||||||
|
|
||||||
|
|
||||||
# Once the defaults are set it become pretty easy...
|
# Once the defaults are set it become pretty easy...
|
||||||
# I have a Turing-complete programming language here: I'll use it...
|
# I have a Turing-complete programming language here: I'll use it...
|
||||||
# param 0 is a string added to the file base name to identify the drawing
|
# param 0 is a string added to the file base name to identify the drawing
|
||||||
|
@ -70,15 +72,15 @@ plot_plan = [
|
||||||
for layer_info in plot_plan:
|
for layer_info in plot_plan:
|
||||||
pctl.SetLayer(layer_info[1])
|
pctl.SetLayer(layer_info[1])
|
||||||
pctl.OpenPlotfile(layer_info[0], PLOT_FORMAT_GERBER, layer_info[2])
|
pctl.OpenPlotfile(layer_info[0], PLOT_FORMAT_GERBER, layer_info[2])
|
||||||
|
print layer_info[0]
|
||||||
pctl.PlotLayer()
|
pctl.PlotLayer()
|
||||||
|
|
||||||
# Our fabricators want two additional gerbers:
|
# Our fabricators want two additional gerbers:
|
||||||
# An assembly with no silk trim and all and only the references
|
# An assembly with no silk trim and all and only the references
|
||||||
# (you'll see that even holes have designators, obviously)
|
# (you'll see that even holes have designators, obviously)
|
||||||
popt.SetSubtractMaskFromSilk(False)
|
|
||||||
popt.SetPlotReference(True)
|
popt.SetPlotReference(True)
|
||||||
popt.SetPlotValue(False)
|
popt.SetPlotValue(False)
|
||||||
popt.SetPlotInvisibleText(True)
|
popt.SetPlotInvisibleText(False)
|
||||||
|
|
||||||
pctl.SetLayer(F_SilkS)
|
pctl.SetLayer(F_SilkS)
|
||||||
pctl.OpenPlotfile("AssyTop", PLOT_FORMAT_PDF, "Assembly top")
|
pctl.OpenPlotfile("AssyTop", PLOT_FORMAT_PDF, "Assembly top")
|
||||||
|
@ -86,6 +88,7 @@ pctl.PlotLayer()
|
||||||
|
|
||||||
# And a gerber with only the component outlines (really!)
|
# And a gerber with only the component outlines (really!)
|
||||||
popt.SetPlotReference(False)
|
popt.SetPlotReference(False)
|
||||||
|
popt.SetPlotValue(False)
|
||||||
popt.SetPlotInvisibleText(False)
|
popt.SetPlotInvisibleText(False)
|
||||||
pctl.SetLayer(F_SilkS)
|
pctl.SetLayer(F_SilkS)
|
||||||
pctl.OpenPlotfile("AssyOutlinesTop", PLOT_FORMAT_PDF, "Assembly outline top")
|
pctl.OpenPlotfile("AssyOutlinesTop", PLOT_FORMAT_PDF, "Assembly outline top")
|
||||||
|
@ -94,118 +97,24 @@ pctl.PlotLayer()
|
||||||
# The same could be done for the bottom side, if there were components
|
# The same could be done for the bottom side, if there were components
|
||||||
popt.SetUseAuxOrigin(False)
|
popt.SetUseAuxOrigin(False)
|
||||||
|
|
||||||
## For documentation we also want a general layout PDF
|
# For documentation we also want a general layout PDF
|
||||||
## I usually use a shell script to merge the ps files and then distill the result
|
# I usually use a shell script to merge the ps files and then distill the result
|
||||||
## Now I can do it with a control file. As a bonus I can have references in a
|
# Now I can do it with a control file. As a bonus I can have references in a
|
||||||
## different colour, too.
|
# different colour, too.
|
||||||
|
|
||||||
popt.SetPlotReference(True)
|
popt.SetPlotReference(True)
|
||||||
popt.SetPlotValue(True)
|
popt.SetPlotValue(True)
|
||||||
popt.SetPlotInvisibleText(False)
|
popt.SetPlotInvisibleText(False)
|
||||||
# Remember that the frame is always in color 0 (BLACK) and should be requested
|
|
||||||
# before opening the plot
|
|
||||||
popt.SetPlotFrameRef(False)
|
|
||||||
pctl.SetLayer(Dwgs_User)
|
|
||||||
|
|
||||||
pctl.OpenPlotfile("Layout", PLOT_FORMAT_PDF, "General layout")
|
# Comments in, uhmm... green
|
||||||
pctl.PlotLayer()
|
#Note: currently, color is overidden by plot functions, so SetColor is not useful.
|
||||||
|
popt.SetColor( COLOR4D( 1.0, 0, 0, 1.0 ) ) # color = RED, GREEN, BLUE, OPACITY )
|
||||||
# Do the PCB edges in yellow
|
|
||||||
popt.SetColor(YELLOW)
|
|
||||||
pctl.SetLayer(Edge_Cuts)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
|
|
||||||
## Comments in, uhmm... green
|
|
||||||
popt.SetColor(GREEN)
|
|
||||||
pctl.SetLayer(Cmts_User)
|
pctl.SetLayer(Cmts_User)
|
||||||
pctl.PlotLayer()
|
pctl.PlotLayer()
|
||||||
|
|
||||||
# Bottom mask as lines only, in red
|
|
||||||
#popt.SetMode(LINE)
|
|
||||||
popt.SetColor(RED)
|
|
||||||
pctl.SetLayer(B_Mask)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
|
|
||||||
# Top mask as lines only, in blue
|
|
||||||
popt.SetColor(BLUE)
|
|
||||||
pctl.SetLayer(F_Mask)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
|
|
||||||
# Top paste in light blue, filled
|
|
||||||
popt.SetColor(BLUE)
|
|
||||||
#popt.SetMode(FILLED)
|
|
||||||
pctl.SetLayer(F_Paste)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
|
|
||||||
# Top Silk in cyan, filled, references in dark cyan
|
|
||||||
popt.SetReferenceColor(DARKCYAN)
|
|
||||||
popt.SetColor(CYAN)
|
|
||||||
pctl.SetLayer(F_SilkS)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
|
|
||||||
popt.SetTextMode(PLOTTEXTMODE_STROKE)
|
|
||||||
pctl.SetLayer(F_Mask)
|
|
||||||
pctl.OpenPlotfile("Assembly", PLOT_FORMAT_SVG, "Master Assembly")
|
|
||||||
pctl.SetColorMode(True)
|
|
||||||
|
|
||||||
# We want *everything*
|
|
||||||
popt.SetPlotReference(True)
|
|
||||||
popt.SetPlotValue(True)
|
|
||||||
popt.SetPlotInvisibleText(True)
|
|
||||||
|
|
||||||
# Remember than the DXF driver assigns colours to layers. This means that
|
|
||||||
# we will be able to turn references on and off simply using their layers
|
|
||||||
# Also most of the layer are now plotted in 'line' mode, because DXF handles
|
|
||||||
# fill mode almost like sketch mode (this is to keep compatibility with
|
|
||||||
# most CAD programs; most of the advanced primitive attributes required are
|
|
||||||
# handled only by recent autocads...); also the entry level cads (qcad
|
|
||||||
# and derivatives) simply don't handle polyline widths...
|
|
||||||
|
|
||||||
# Here I'm using numbers for colors and layers, I'm too lazy too look them up:P
|
|
||||||
popt.SetReferenceColor(19)
|
|
||||||
popt.SetValueColor(21)
|
|
||||||
|
|
||||||
popt.SetColor(0)
|
|
||||||
#popt.SetMode(LINE)
|
|
||||||
pctl.SetLayer(B_SilkS)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
popt.SetColor(14)
|
|
||||||
pctl.SetLayer(F_SilkS)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
popt.SetColor(2)
|
|
||||||
pctl.SetLayer(B_Mask)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
popt.SetColor(4)
|
|
||||||
pctl.SetLayer(F_Mask)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
popt.SetColor(1)
|
|
||||||
pctl.SetLayer(B_Paste)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
popt.SetColor(9)
|
|
||||||
pctl.SetLayer(F_Paste)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
popt.SetColor(3)
|
|
||||||
pctl.SetLayer(Edge_Cuts)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
|
|
||||||
# Export the copper layers too... exporting one of them in filled mode with
|
|
||||||
# drill marks will put the marks in the WHITE later (since it tries to blank
|
|
||||||
# the pads...); these will be obviously great reference points for snap
|
|
||||||
# and stuff in the cad. A pctl function to only plot them would be
|
|
||||||
# better anyway...
|
|
||||||
|
|
||||||
popt.SetColor(17)
|
|
||||||
#popt.SetMode(FILLED)
|
|
||||||
popt.SetDrillMarksType(PCB_PLOT_PARAMS.FULL_DRILL_SHAPE)
|
|
||||||
pctl.SetLayer(B_Cu)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
popt.SetColor(20)
|
|
||||||
popt.SetDrillMarksType(PCB_PLOT_PARAMS.NO_DRILL_SHAPE)
|
|
||||||
pctl.SetLayer(F_Cu)
|
|
||||||
pctl.PlotLayer()
|
|
||||||
|
|
||||||
# At the end you have to close the last plot, otherwise you don't know when
|
# At the end you have to close the last plot, otherwise you don't know when
|
||||||
# the object will be recycled!
|
# the object will be recycled!
|
||||||
pctl.ClosePlot()
|
pctl.ClosePlot()
|
||||||
|
|
||||||
# We have just generated 21 plotfiles with a single script
|
# We have just generated your plotfiles with a single script
|
||||||
|
|
Loading…
Reference in New Issue