Aligning the Inputs and Outputs through m script

조회 수: 41(최근 30일)
Please see this link : http://i50.tinypic.com/vsdool.jpg
I am trying to create the input and output port automatically(thru m script). I am taking the Subsystem portHandles.Inport position and setting the postion for input. Once all the input and output are created, it is mixed with one and other. Please see the link for the screen shot. The signal names are not clearly visible to read. Is there any way to leave the gap between the two input(or output) ports?

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2012년 8월 24일
편집: Azzi Abdelmalek 2012년 8월 24일
try this to understand how to do it
% model1 : your model Name
% sub1: your subsystem name
tailx=50;taily=25;
x0=50;y0=50;yy0=y0;
for k=1:n
x=x0+tailx ;y=y0+taily
inp=['model1/input' num2str(k)]
add_block('Simulink/Sources/In1',inp)
set_param(inp,'Position',[x0 y0 x y ])
add_line('model1',['input' num2str(k) '/1'],['sub1/' num2str(k)],'autorouting','on' )
y0=y+20
end
  댓글 수: 4
Dharaneedharan Arumugam
Dharaneedharan Arumugam 2020년 12월 8일
THanks man, your script saved me big time!!!

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

추가 답변(1개)

Albert Yam
Albert Yam 2012년 8월 24일
Imagine a chart over layed on the subsystem. Draw where your margin lines are.
xspacing = [inportL inportR outportL outportR];
%column margins (left/right of blocks)
ystart = 100; % however far down you start
yhalf = 10; % block half width
dy = 30; % height of the row
for ii = 1:insigs
blockname = insig{ii};
addblock(...)
setparam(blockname_handle,'Position',[xspacing(1) ystart+ii*dy+yhalf xspacing(2) ystart+ii*dy-yhalf]);
end
for ii = 1:outsigs
blockname = outsig{ii};
addblock(...)
setparam(blockname_handle,'Position',[xspacing(3) ystart+ii*dy+yhalf xspacing(4) ystart+ii*dy-yhalf]);
end
something like that
  댓글 수: 3
Moorthy
Moorthy 2012년 8월 24일
Thank you Albert.

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

Community Treasure Hunt

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

Start Hunting!

Translated by