Skip to content

Commit 51c2f87

Browse files
committed
cli: added --pdf to pymcnp visualize
1 parent d3aeb02 commit 51c2f87

File tree

2 files changed

+49
-4
lines changed

2 files changed

+49
-4
lines changed

src/pymcnp/cli/visualize.py

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
pymcnp visualize <inp> [ options ]
44
55
Options:
6-
-c --cells Visualize cells.
7-
-s --surfaces Visualize surfaces.
6+
-c --cells Visualize cells.
7+
-s --surfaces Visualize surfaces.
8+
--pdf Write PDF.
89
"""
910

1011
import os
@@ -63,6 +64,40 @@ def draw_surfaces(self):
6364
if 'PYTEST_CURRENT_TEST' not in os.environ:
6465
plot.show() # pragma: no cover
6566

67+
def to_pdf_cells(self, path: str | pathlib.Path):
68+
"""
69+
Saves render of cells as PDF.
70+
71+
Parameters:
72+
path: Path to new pdf file.
73+
"""
74+
75+
# vis = self.inp.draw()
76+
# plot = pyvista.Plotter()
77+
# plot.add_mesh(vis.data)
78+
79+
path = _io.get_outfile(path, 'pdf', 'cells')
80+
# plot.save_graphic(str(path))
81+
82+
return path
83+
84+
def to_pdf_surfaces(self, path: str | pathlib.Path):
85+
"""
86+
Saves render of surfaces as PDF.
87+
88+
Parameters:
89+
path: Path to new pdf file.
90+
"""
91+
92+
vis = self.inp.draw()
93+
plot = pyvista.Plotter()
94+
plot.add_mesh(vis.data)
95+
96+
path = _io.get_outfile(path, 'pdf', 'surfaces')
97+
plot.save_graphic(str(path))
98+
99+
return path
100+
66101

67102
def main() -> None:
68103
"""
@@ -88,8 +123,14 @@ def main() -> None:
88123

89124
# Visualizing!
90125
if args['--cells']:
91-
visualize.draw_cells()
126+
if args['--pdf']:
127+
visualize.to_pdf_cells(file)
128+
else:
129+
visualize.draw_cells()
92130
else:
93-
visualize.draw_surfaces()
131+
if args['--pdf']:
132+
visualize.to_pdf_surfaces(file)
133+
else:
134+
visualize.draw_surfaces()
94135

95136
_io.done()

tests/test_pymcnp/test_cli/test_Visualize.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ class Test_Main:
3434
def test_valid(self):
3535
subprocess.run(['pymcnp', 'visualize', str(pathlib.Path(__file__).parent.parent.parent / 'files' / 'inp' / 'valid_A.i'), '--cells'])
3636
subprocess.run(['pymcnp', 'visualize', str(pathlib.Path(__file__).parent.parent.parent / 'files' / 'inp' / 'valid_A.i'), '--surfaces'])
37+
subprocess.run(['pymcnp', 'visualize', str(pathlib.Path(__file__).parent.parent.parent / 'files' / 'inp' / 'valid_A.i'), '--cells', '--pdf'])
38+
subprocess.run(['pymcnp', 'visualize', str(pathlib.Path(__file__).parent.parent.parent / 'files' / 'inp' / 'valid_A.i'), '--surfaces', '--pdf'])
39+
subprocess.run(['rm', str(pathlib.Path(__file__).parent.parent.parent / 'files' / 'inp' / 'valid_A-cells.pdf')])
40+
subprocess.run(['rm', str(pathlib.Path(__file__).parent.parent.parent / 'files' / 'inp' / 'valid_A-surfaces.pdf')])
3741

3842
def test_invalid(self):
3943
subprocess.run(['pymcnp', 'visualize', str(pathlib.Path(__file__).parent.parent.parent / 'files' / 'inp' / 'invalid_A.i')])

0 commit comments

Comments
 (0)