필터 지우기
필터 지우기

Accurately Insert a Block in Simulink Model based on Mouse Position.

조회 수: 4 (최근 30일)
ES
ES 2013년 10월 16일
댓글: Guillaume 2023년 9월 14일
Hi, I want to insert a Block into a Simullink Model from Right Click Menu. The block should be inserted into the exact 'position' of the mouse right click. To calculate the 'position' i use
locationBase = get_param(modelName,'Location');%To account for floating windows etc
scrollOffset = get_param(modelName,'ScrollbarOffset');%To account for ScrollBar Position
I calculate the 'position' by
p_X = mousePositionX - locationBase(1) + scrollOffset(1);
p_Y = screenSizeY - mousePositionY - locationBase(2) + scrollOffset(2) ;
I add the block dimensions to find the 'position' to insert the blocks like this.
location = [p_X p_Y p_X+BlockWidth+BlockHeight];
This works well if the Model Browser is not open. If Model Browser is open, It adds additional offset to the position and the Blocks are inserted at the wrong place. How can I include offsets created by the Model Browser?

채택된 답변

Zack Peters
Zack Peters 2013년 10월 25일
편집: Zack Peters 2013년 10월 25일
The system has parameters named 'ModelBrowserVisibility' and 'ModelBrowserWidth'. I would suggest checking if the visibility is on and if so then add the 'ModelBrowserWidth' as an offset to the Y position of the 'location' variable.
~Zack
  댓글 수: 1
Guillaume
Guillaume 2023년 9월 14일
Hello,
This topic is quite old but I have the same issue. 'ModelBrowserWidth' seems to be no more available (R2022b), is there any other way to get this width information ? Thank you.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Programmatic Model Editing에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by