Files
onshape-to-robot/onshape_to_robot/processor_collision_as_visual.py
T

36 lines
1.1 KiB
Python
Raw Normal View History

from pathlib import Path
from .message import bright, info, error, warning
from .processor import Processor
from .config import Config
from .robot import Robot, Part
from .geometry import Mesh
import numpy as np
class ProcessorCollisionAsVisual(Processor):
"""
This processor will update the part mesh and shapes to turn every collision into visual.
Can be useful for debugging
"""
def __init__(self, config: Config):
super().__init__(config)
# OpenSCAD pure shapes
self.collisions_as_visual: bool = config.get("collisions_as_visual", False)
def process(self, robot: Robot):
"""
Runs the processor
"""
if self.collisions_as_visual:
print(info("+ Converting collisions to visual"))
for link in robot.links:
for part in link.parts:
for mesh in part.meshes:
mesh.visual = mesh.collision
for shape in part.shapes:
shape.visual = shape.collision
part.prune_unused_geometry()