diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e855de2..462c9f24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Image margin - Outline width - Solder paste removal + - V-CUTS layer ### Changed - Diff: diff --git a/README.md b/README.md index 36892d02..0ff564de 100644 --- a/README.md +++ b/README.md @@ -2591,7 +2591,8 @@ Notes: - `remap`: [dict|None] Replacements for PCB references using components (lib:component). - `show_solderpaste`: [boolean=true] Show the solder paste layers. - `variant`: [string=''] Board variant to apply. - - `vcuts`: [boolean=false] Render V-CUTS on the Cmts.User layer. + - `vcuts`: [boolean=false] Render V-CUTS on the `vcuts_layer` layer. + - `vcuts_layer`: [string='Cmts.User'] Layer to render the V-CUTS, only used when `vcuts` is enabled. - `warnings`: [string='visible'] [visible,all,none] Using visible only the warnings about components in the visible side are generated. - `category`: [string|list(string)=''] The category for this output. If not specified an internally defined category is used. Categories looks like file system paths, i.e. PCB/fabrication/gerber. diff --git a/docs/samples/generic_plot.kibot.yaml b/docs/samples/generic_plot.kibot.yaml index 97835a2f..11c4a42c 100644 --- a/docs/samples/generic_plot.kibot.yaml +++ b/docs/samples/generic_plot.kibot.yaml @@ -1409,8 +1409,10 @@ outputs: vcut: '#bf2600' # [string=''] Board variant to apply variant: '' - # [boolean=false] Render V-CUTS on the Cmts.User layer + # [boolean=false] Render V-CUTS on the `vcuts_layer` layer vcuts: false + # [string='Cmts.User'] Layer to render the V-CUTS, only used when `vcuts` is enabled + vcuts_layer: 'Cmts.User' # [string='visible'] [visible,all,none] Using visible only the warnings about components in the visible side are generated warnings: 'visible' # PDF (Portable Document Format): diff --git a/kibot/out_pcbdraw.py b/kibot/out_pcbdraw.py index 5fb1b062..b1d1d7ef 100644 --- a/kibot/out_pcbdraw.py +++ b/kibot/out_pcbdraw.py @@ -20,6 +20,7 @@ from .error import KiPlotConfigurationError from .misc import (PCBDRAW_ERR, W_AMBLIST, PCB_MAT_COLORS, PCB_FINISH_COLORS, SOLDER_COLORS, SILK_COLORS, W_PCBDRAW) from .gs import GS +from .layer import Layer from .optionable import Optionable from .out_base import VariantOptions from .macros import macros, document, output_class # noqa: F401 @@ -152,7 +153,9 @@ class PcbDrawOptions(VariantOptions): """ *[list(string)|string=none] [none,all] List of components to draw, can be also a string for none or all. The default is none. IMPORTANT! This option is relevant only when no filters or variants are applied """ self.vcuts = False - """ Render V-CUTS on the Cmts.User layer """ + """ Render V-CUTS on the `vcuts_layer` layer """ + self.vcuts_layer = 'Cmts.User' + """ Layer to render the V-CUTS, only used when `vcuts` is enabled """ self.warnings = 'visible' """ [visible,all,none] Using visible only the warnings about components in the visible side are generated """ self.dpi = 300 @@ -182,6 +185,8 @@ class PcbDrawOptions(VariantOptions): self.libs = ['KiCAD-base'] else: self.libs = ','.join(self.libs) + # V-CUTS layer + self._vcuts_layer = Layer.solve(self.vcuts_layer)[0]._id # Highlight if isinstance(self.highlight, type): self.highlight = None @@ -327,8 +332,7 @@ class PcbDrawOptions(VariantOptions): if self.show_solderpaste: plotter.plot_plan.append(PlotPaste()) if self.vcuts: - # TODO: Make layer configurable - plotter.plot_plan.append(PlotVCuts(layer=41)) + plotter.plot_plan.append(PlotVCuts(layer=self._vcuts_layer)) # Two filtering mechanism: 1) Specified list and 2) KiBot filters and variants if self.show_components is not None or self._comps: plotter.plot_plan.append(self.build_plot_components())