MATLAB Answers

Change Simscape solid color during runtime

2 views (last 30 days)
Mark on 12 Jun 2020
Answered: Steve Miller on 5 Jun 2021
Hi all,
As the title says, during a Simscape run I want to change the color of some solids.
In my case I have a Brick solid I want to color red if it's position goes past a particular point.
I can set the inital color in the Brick solid Properties->Graphic->Visual Properties->Color, and haved used variables in place of values in that field. I also changed the option from Compile-time to Run-time.
I can write to the workspace variable and change color between runs this way but not update the color during the run.
Any suggestions appreciated. Thanks
  1 Comment
Ameer Hamza
Ameer Hamza on 13 Jun 2020
A while ago, I tried doing something similar using event listeners, but simscape blocks are not like normal Simulink blocks. I guess their visualization cannot be updated during runtime.

Sign in to comment.

Answers (1)

Steve Miller
Steve Miller on 5 Jun 2021
Through MATLAB release R2021a, you cannot cannot change the color of a solid based on an input signal. What you can do, though, is put another solid just behind it that has the new color, and then when you want the color to change move that solid in front of the other solid.
In the video in this LinkedIn post, we used a set of solids to have the battery color change gradually as it heats up:




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!