pcb_print: fixed frame page orientation in GUI mode.
This commit is contained in:
parent
72a2c71ddb
commit
06bb47ea05
|
|
@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
- Problems expanding multiple KiCad variables in the same value.
|
- Problems expanding multiple KiCad variables in the same value.
|
||||||
- XML BoM: Fixed problems with fields containing / (#206)
|
- XML BoM: Fixed problems with fields containing / (#206)
|
||||||
- pcb_print: vias processing was disabled.
|
- pcb_print: vias processing was disabled.
|
||||||
|
- pcb_print: frame orientation in GUI mode.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- KiCad environment variables: more variables detected, native KiCad 6 names,
|
- KiCad environment variables: more variables detected, native KiCad 6 names,
|
||||||
|
|
|
||||||
|
|
@ -13,15 +13,17 @@ from .. import log
|
||||||
logger = log.get_logger()
|
logger = log.get_logger()
|
||||||
|
|
||||||
|
|
||||||
def patch_svg_file(file, remove_bkg=False):
|
def patch_svg_file(file, remove_bkg=False, is_portrait=False):
|
||||||
|
""" KiCad always prints in portrait """
|
||||||
logger.debug('Patching SVG file `{}`'.format(file))
|
logger.debug('Patching SVG file `{}`'.format(file))
|
||||||
with open(file, 'rt') as f:
|
with open(file, 'rt') as f:
|
||||||
text = f.read()
|
text = f.read()
|
||||||
text = re.sub(r'<svg (.*) width="(.*)" height="(.*)" viewBox="(\S+) (\S+) (\S+) (\S+)"',
|
if not is_portrait:
|
||||||
r'<svg \1 width="\3" height="\2" viewBox="\4 \5 \7 \6"', text)
|
text = re.sub(r'<svg (.*) width="(.*)" height="(.*)" viewBox="(\S+) (\S+) (\S+) (\S+)"',
|
||||||
|
r'<svg \1 width="\3" height="\2" viewBox="\4 \5 \7 \6"', text)
|
||||||
if remove_bkg:
|
if remove_bkg:
|
||||||
text = re.sub(r'<rect.*>', '', text)
|
text = re.sub(r'<rect.*>', '', text)
|
||||||
else:
|
elif not is_portrait:
|
||||||
text = re.sub(r'<rect x="(\S+)" y="(\S+)" width="(\S+)" height="(\S+)"',
|
text = re.sub(r'<rect x="(\S+)" y="(\S+)" width="(\S+)" height="(\S+)"',
|
||||||
r'<rect x="\1" y="\2" width="\4" height="\3"', text)
|
r'<rect x="\1" y="\2" width="\4" height="\3"', text)
|
||||||
with open(file, 'wt') as f:
|
with open(file, 'wt') as f:
|
||||||
|
|
|
||||||
|
|
@ -476,7 +476,8 @@ class PCB_PrintOptions(VariantOptions):
|
||||||
video_name = os.path.join(self.expand_filename_pcb(GS.out_dir), 'pcbnew_export_screencast.ogv')
|
video_name = os.path.join(self.expand_filename_pcb(GS.out_dir), 'pcbnew_export_screencast.ogv')
|
||||||
if os.path.isfile(video_name):
|
if os.path.isfile(video_name):
|
||||||
os.remove(video_name)
|
os.remove(video_name)
|
||||||
patch_svg_file(output, remove_bkg=True)
|
# Rotate the paper size if needed and remove the background (or it will be over the drawings)
|
||||||
|
patch_svg_file(output, remove_bkg=True, is_portrait=self.paper_portrait)
|
||||||
|
|
||||||
def plot_pads(self, la, pc, p, filelist):
|
def plot_pads(self, la, pc, p, filelist):
|
||||||
id = la._id
|
id = la._id
|
||||||
|
|
@ -742,6 +743,7 @@ class PCB_PrintOptions(VariantOptions):
|
||||||
pcb = PCB.load(GS.pcb_file)
|
pcb = PCB.load(GS.pcb_file)
|
||||||
self.paper_w = pcb.paper_w
|
self.paper_w = pcb.paper_w
|
||||||
self.paper_h = pcb.paper_h
|
self.paper_h = pcb.paper_h
|
||||||
|
self.paper_portrait = pcb.paper_portrait
|
||||||
self.paper = pcb.paper
|
self.paper = pcb.paper
|
||||||
|
|
||||||
def plot_extra_cu(self, id, la, pc, p, filelist):
|
def plot_extra_cu(self, id, la, pc, p, filelist):
|
||||||
|
|
|
||||||
|
|
@ -116,5 +116,5 @@ def test_pcb_print_simple_2(test_dir):
|
||||||
if context.ki6():
|
if context.ki6():
|
||||||
assert abs(w-431.8) < 0.1 and abs(h-279.4) < 0.1
|
assert abs(w-431.8) < 0.1 and abs(h-279.4) < 0.1
|
||||||
else:
|
else:
|
||||||
assert abs(w-297.0) < 0.1 and abs(h-210.0) < 0.1
|
assert abs(w-210.0) < 0.1 and abs(h-297.0) < 0.1
|
||||||
ctx.clean_up()
|
ctx.clean_up()
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ outputs:
|
||||||
plot_sheet_reference: true
|
plot_sheet_reference: true
|
||||||
format: 'PDF'
|
format: 'PDF'
|
||||||
frame_plot_mechanism: gui
|
frame_plot_mechanism: gui
|
||||||
|
keep_temporal_files: true
|
||||||
pages:
|
pages:
|
||||||
- layers:
|
- layers:
|
||||||
- layer: F.Cu
|
- layer: F.Cu
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue