Source code for ansys_optical_automation.scdm_core.utils
import os
import subprocess
[docs]def get_scdm_install_location(version):
"""
Get the SpaceClaim installation path.
Parameters
----------
version : int
Version of SpaceClaim in numerical format. For example, ``211`` for 2021 R1.
Returns
-------
str
Path of the SpaceClaim installation.
"""
ansys_install_dir = os.environ["AWP_ROOT{}".format(version)]
scdm_install_dir = os.path.join(ansys_install_dir, "scdm")
return scdm_install_dir
[docs]def get_speos_core(version):
"""
get speos core path for version
Parameters
----------
version : str
Ansys Version used
Returns
-------
str
path to speos core executable
"""
ansys_install_dir = os.environ["AWP_ROOT{}".format(version)]
speos_core_dir = os.path.join(ansys_install_dir, r"Optical Products", r"Viewers", r"SPEOSCore.exe")
return speos_core_dir
[docs]def run_scdm_batch(scdm_version, api_version, script_file):
"""
Start a Speos script in batch mode via the ``subprocess.call`` method.
Parameters
----------
scdm_version : int
SpaceClaim version.
api_version : int
SpaceClaim API version.
script_file : str
Full path to the script file.
"""
scdm_install_dir = get_scdm_install_location(scdm_version)
scdm_exe = os.path.join(scdm_install_dir, "SpaceClaim.exe")
speos_path = os.path.join(
os.path.dirname(scdm_install_dir), "Optical Products", "Speos", "Bin", "SpeosSC.Manifest.xml"
)
command = [
scdm_exe,
r"/AddInManifestFile={}".format(speos_path),
r"/RunScript={}".format(script_file),
r"/Headless=True",
r"/Splash=False",
r"/Welcome=False",
r"/ExitAfterScript=True",
r"/ScriptAPI={}".format(api_version),
]
subprocess.call(command)