onshape-to-robot/onshape_to_robot/processor_collision_as_visual.py
Upstream Snapshot bb87928bce Import upstream snapshot 80e710700aac9573a2230f74f7ce9e094833a0bc
Upstream: https://github.com/Rhoban/onshape-to-robot
Upstream-Commit: 80e710700aac9573a2230f74f7ce9e094833a0bc
Upstream-Branch: master
2026-08-28 15:42:31 +08:00

36 lines
1.1 KiB
Python

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()