# Visual Components

# Разные фишки

# Step size

Шаг робота в симуляции

Во вкладке Home

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-04/scaled-1680-/f87image.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-04/f87image.png)

Параметр Size

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-04/scaled-1680-/Ad4image.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-04/Ad4image.png)

# Захват инструментом

Часто бывает, что робот не захватывает деталь инструментом

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-04/scaled-1680-/ZTNimage.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-04/ZTNimage.png)

Кликаем на робота

Выбираем Action Configuration

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-04/scaled-1680-/L01image.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-04/L01image.png)

Определяем Detection volume. Часто его нужно увеличить по Z

Дальше задаем TCP для нужного TOOL, нажав на шестеренку справа от него

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-04/scaled-1680-/RRUimage.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-04/RRUimage.png)

# Смена инструмента ( Tool mount/dismount)

По умолчания 33 выход отвечает за отцепление инструмента

[https://www.youtube.com/watch?v=OsxlazzAXss](https://www.youtube.com/watch?v=OsxlazzAXss)

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/scaled-1680-/image.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/image.png)

Все данные по умолчанию

Отцепление инструмента

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/scaled-1680-/jKHimage.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/jKHimage.png)

Для того чтобы взять другой инструмент нужно использовать другой выход - 34

Также предварительно нужно с помощью Wizard сделать из него End Effector

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/scaled-1680-/iwximage.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/iwximage.png)

# Конвейер ( Conveyor)

Добавляем конвейер

Добавляем датчик ( conveyor sensor)

Добавляем статичную деталь для движения по конвейеру делаем snap to конвейер и attach to конвейер

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/scaled-1680-/vYoimage.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/vYoimage.png)

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/scaled-1680-/BJJimage.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/BJJimage.png)

Добавляем python скрипт, чтобы деталь ехала по конвейеру

Выбираем конвейер, вкалдка моделинг, Behaviours

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/scaled-1680-/P2Pimage.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/P2Pimage.png)

В коде скрипта для 4.8 добавить:

```python
def OnRun():
    comp = getComponent()
    path = comp.findBehaviour("One-WayPath__HIDE__")  # Проверьте имя!
    part = app.findComponent("Part0")
    
    if not path:
        print("Ошибка: путь 'One-WayPath__HIDE__' не найден!")
    if not part:
        print("Ошибка: объект 'Part0' не найден!")
    
    if path and part:
        path.grab(part)  # Или другой метод перемещения
```

# Управление кастомными servo

[![image.png](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/scaled-1680-/1Chimage.png)](https://docs.rise-automation.ru/uploads/images/gallery/2025-05/1Chimage.png)

```python
from vcScript import *

comp = getComponent()
servo = comp.findBehaviour("Servo Controller")

def OnSignal( signal ):
  pass

def OnRun():
  servo.setJointTarget(0,-342.0)
  servo.setJointTarget(1,-10.0)
  servo.setJointTarget(2,400.0)
  servo.setJointTarget(3,-512.0)
  servo.setJointTarget(4,-172.0)
  servo.setJointTarget(5,122)
  servo.setMotionTime(1.0)
  print servo.calcMotionTime()
  servo.move()



```