Source code for modsim_package.cubit.rectangle_geometry

import sys
import pathlib
import argparse

import cubit


[docs] def main(output_file, width, height): """Create a simple rectangle geometry. This script creates a simple Cubit model with a single rectangle part. :param str output_file: The output file for the Cubit model. Will be stripped of the extension and ``.cub`` will be used. :param float width: The rectangle width :param float height: The rectangle height :returns: writes ``output_file``.cub """ output_file = pathlib.Path(output_file).with_suffix(".cub") cubit.init(["cubit", "-noecho", "-nojournal", "-nographics", "-batch"]) cubit.cmd("new") cubit.cmd("reset") cubit.cmd(f"create vertex 0 0 0") cubit.cmd(f"create vertex {width} 0 0") cubit.cmd(f"create vertex {width} {height} 0") cubit.cmd(f"create vertex 0 {height} 0") cubit.cmd(f"create surface vertex 1,2,3,4") cubit.cmd(f"save as '{output_file}' overwrite")
def get_parser(): script_name = pathlib.Path(__file__) # Set default parameter values default_output_file = script_name.with_suffix(".cub").name default_width = 1.0 default_height = 1.0 prog = f"python {script_name.name} " cli_description = "Create a simple rectangle geometry and write an ``output_file``.cub Cubit model file." parser = argparse.ArgumentParser(description=cli_description, prog=prog) parser.add_argument( "--output-file", type=str, default=default_output_file, # fmt: off help="The output file for the Cubit model. " "Will be stripped of the extension and ``.cub`` will be used, e.g. ``output_file``.cub " "(default: %(default)s", # fmt: on ) parser.add_argument( "--width", type=float, default=default_width, help="The rectangle width", ) parser.add_argument( "--height", type=float, default=default_height, help="The rectangle height", ) return parser if __name__ == "__main__": parser = get_parser() args = parser.parse_args() sys.exit( main( output_file=args.output_file, width=args.width, height=args.height, ) )