EVS Automation API for Python
The evs_automation Python package allows for the automation of Earth Volumetric Studio, a commercial product of C Tech Development Corporation.
This library provides a workflow for controlling EVS from any Python 3 environment. Care has been taken to enable the same functionality as internal Python API, as well as additional features specifically intended to function from automated workflows.
- Process Management: Start new, or connect to existing EVS processes, and automate actions
- Full EVS Python API: The evs.* python functions have all been ported, so scripts written inside EVS can be migrated to work via automation with few, minor changes.
- New API Additions: Additional API functions are availble, including loading .evs applications, running existing Python scripts, and shutting down EVS
- Python 3 (3.10 or later suggested. Anaconda recommended.)
- Earth Volumetric Studio, Version 2024.9.1 or later
- pywin32
- psutil
- packaging
Here's a simple example to start:
import evs_automation
try:
# Launch a new EVS process
with evs_automation.start_new() as evs:
# Load an application
evs.load_application('C:\\Projects\\my application.evs')
# Note that the syntax below is identical to the interal EVS Python script syntax
# Instance a titles module and set the title
newmodule = evs.instance_module('titles', 'titles', 363, 679)
evs.connect(newmodule, 'Output Object', 'viewer', 'Objects')
evs.set_module(newmodule, 'Properties', 'Title', 'Title added from script')
evs.set_module(newmodule, 'Positioning', 'Anchor Side', 0)
# Execute a Python script
evs.execute_python_script('C:\\Projects\\export_data.py')
# EVS (by default) will shut down at this point automatically
except Exception as e:
print(f"Received exception : {e}")```
Thank you for considering contributing to this project! We welcome all contributions, from minor fixes to major features. To ensure effective and smooth collaboration, please follow these guidelines:
-
Check and Open Issues: Before contributing, please check if there are existing issues on GitHub related to your problem or suggestion. If not, open a new one and share the details.
-
Pull Requests: If you want to make changes, first fork the repository, create a branch for your topic, and then submit a pull request. In your pull request, clearly explain what changes you made and why.
-
Code Review: The project maintainers will review your pull request. If there are any comments, please respond to them actively.
We aim to provide all contributors and maintainers with a safe and positive experience. Therefore, we ask you to follow this code of conduct, which is based on the Contributor Covenant:
-
Respect Each Other: Treat everyone working on the project respectfully, regardless of background.
-
Promote Inclusivity: Actively promote inclusivity and welcome diverse perspectives.
-
Maintain a Harassment-Free Environment: Avoid any behavior seen as harassment and maintain a harassment-free environment.
python_evs_automation is licensed under the MIT License. See LICENSE for more details.