📄 blockdiagram.java
字号:
addFunctionBlock( g1 ); g1_node = new Node( g1, Node.FBtype ); g2 = new FunctionBlock("G", "2", Sx + 2*gap, Sy, Bw, Bh ); g2_node = new Node( g2, Node.FBtype ); addFunctionBlock( g2 ); a1 = new Arc( 3, true, false, in_node,g1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + gap, Sy ); addArc( a1 ); a2 = new Arc( 3, true, false, g1_node, g2_node); a2.addPoint( Sx + gap, Sy ); a2.addPoint( Sx + 2*gap, Sy ); addArc( a2 ); a3 = new Arc( 3, true, false, g2_node, out_node); a3.addPoint( Sx + 2*gap,Sy ); a3.addPoint( Sx + 3*gap, Sy ); addArc( a3 ); break; case 2: setInput( new IOPoint("R", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y1", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); addSummingPoint( sp1 = new SummingPoint( Sx + gap, Sy ) ); sp1_node = new Node (sp1, Node.SPtype); g1= new FunctionBlock("G", "1", Sx + 2*gap, Sy, Bw, Bh ); g1_node = new Node( g1, Node.FBtype ); addFunctionBlock( g1 ); y2 = new FunctionBlock("Y2", "s", Sx + 2*gap, Sy+gap/2, Bw, Bh ); y2_node = new Node( y2, Node.FBtype ); addFunctionBlock( y2 ); a1 = new Arc( 3, true, true, in_node,sp1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + gap, Sy ); addArc( a1 ); a2 = new Arc( 3, true, false, sp1_node, g1_node); a2.addPoint( Sx + gap, Sy ); a2.addPoint( Sx + 2*gap, Sy ); addArc( a2 ); a3 = new Arc( 3, true, false, g1_node, out_node); a3.addPoint( Sx + 2*gap, Sy ); a3.addPoint( Sx + 3*gap, Sy ); addArc( a3 ); a4 = new Arc( 3, true, false, y2_node, sp1_node); a4.addPoint( Sx + 2*gap, Sy+gap/2 ); a4.addPoint( Sx + gap, Sy+gap/2 ); a4.addPoint( Sx + gap, Sy ); addArc( a4 ); break; case 3: setInput( new IOPoint("R", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); g1 = new FunctionBlock("G", "1", Sx + gap, Sy, Bw, Bh ); g1_node = new Node( g1, Node.FBtype ); addFunctionBlock( g1 ); y2 = new FunctionBlock("Y", "s", Sx + gap, Sy+gap/2, Bw, Bh ); y2_node = new Node( y2, Node.FBtype ); addFunctionBlock( y2 ); a1 = new Arc( 3, true, false, in_node,g1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + gap, Sy ); addArc( a1 ); a2 = new Arc( 3, true, false, g1_node, out_node); a2.addPoint( Sx + gap, Sy ); a2.addPoint( Sx + 3*gap, Sy ); addArc( a2 ); a3 = new Arc( 3, true, false, g1_node, y2_node); a3.addPoint( Sx + 2*gap, Sy ); a3.addPoint( Sx + 2*gap, Sy+gap/2 ); a3.addPoint( Sx + gap, Sy+gap/2 ); addArc( a3 ); break; case 4: setInput( new IOPoint("R", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); g1 = new FunctionBlock("G", "1", Sx + 2*gap, Sy, Bw, Bh ); g1_node = new Node( g1, Node.FBtype ); addFunctionBlock( g1 ); r2 = new FunctionBlock("R", "s", Sx , Sy+gap/2, Bw, Bh ); r2_node = new Node( r2, Node.FBtype ); addFunctionBlock( r2 ); a1 = new Arc( 3, true, false, in_node,g1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + 2*gap, Sy ); addArc( a1 ); a2 = new Arc( 3, true, false, g1_node, out_node); a2.addPoint( Sx + 2*gap, Sy ); a2.addPoint( Sx + 3*gap, Sy ); addArc( a2 ); a3 = new Arc( 3, true, false, in_node, r2_node); a3.addPoint( Sx + gap, Sy ); a3.addPoint( Sx + gap, Sy+gap/2 ); a3.addPoint( Sx, Sy+gap/2 ); addArc( a3 ); break; case 5: setInput( new IOPoint("R1", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); addSummingPoint( sp1 = new SummingPoint( Sx + 2*gap, Sy ) ); sp1_node = new Node (sp1, Node.SPtype); g1 = new FunctionBlock("G", "1", Sx + gap, Sy, Bw, Bh ); g1_node = new Node( g1, Node.FBtype ); addFunctionBlock( g1 ); r2 = new FunctionBlock("R2", "s", Sx + gap , Sy+gap/2, Bw, Bh ); r2_node = new Node( r2, Node.FBtype ); addFunctionBlock( r2 ); a1 = new Arc( 3, true, false, in_node,g1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + gap, Sy ); addArc( a1 ); a2 = new Arc( 3, true, true, g1_node, sp1_node); a2.addPoint( Sx + gap, Sy ); a2.addPoint( Sx + 2*gap, Sy ); addArc( a2 ); a3 = new Arc( 3, true, false, sp1_node, out_node); a3.addPoint( Sx + 2*gap, Sy ); a3.addPoint( Sx + 3*gap, Sy ); addArc( a3 ); a4 = new Arc( 3, true, true, r2_node, sp1_node); a4.addPoint( Sx + gap, Sy + gap/2 ); a4.addPoint( Sx + 2*gap, Sy + gap/2 ); a4.addPoint( Sx + 2*gap, Sy); addArc( a4 ); break; case 6: setInput( new IOPoint("R", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); addSummingPoint( sp1 = new SummingPoint( Sx + gap, Sy ) ); sp1_node = new Node (sp1, Node.SPtype); g1 = new FunctionBlock("G", "1", Sx + 2*gap, Sy, Bw, Bh ); g1_node = new Node( g1, Node.FBtype ); addFunctionBlock( g1 ); h1 = new FunctionBlock("H", "1", Sx + 2*gap , Sy+gap/2, Bw, Bh ); h1_node = new Node( h1, Node.FBtype ); addFunctionBlock( h1 ); a1 = new Arc( 3, true, true, in_node,sp1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + gap, Sy ); addArc( a1 ); a2 = new Arc( 3, true, false, sp1_node, g1_node); a2.addPoint( Sx + gap, Sy ); a2.addPoint( Sx + 2*gap, Sy ); addArc( a2 ); a3 = new Arc( 3, true, false, g1_node, out_node); a3.addPoint( Sx + 2*gap, Sy ); a3.addPoint( Sx + 3*gap, Sy ); addArc( a3 ); a4 = new Arc( 3, true, false, g1_node, h1_node); a4.addPoint( Sx + (2*gap)+(gap/2), Sy ); a4.addPoint( Sx + (2*gap)+(gap/2), Sy + gap/2 ); a4.addPoint( Sx + 2*gap, Sy + gap/2); addArc( a4 ); a5 = new Arc( 3, true, true, h1_node, sp1_node); a5.addPoint( Sx + 2*gap, Sy + gap/2 ); a5.addPoint( Sx + gap, Sy + gap/2); a5.addPoint( Sx + gap, Sy); addArc( a5 ); break; case 7: setInput( new IOPoint("", "", Sx+gap, Sy, 0, 0, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("", "", Sx + 2*gap, Sy, 0, 0, false ) ); out_node = new Node(output, Node.IOtype); a1 = new Arc( 100, true, false, in_node,out_node); a1.setColour(Color.black); a1.addPoint( Sx +gap,Sy ); a1.addPoint( Sx + 2*gap, Sy ); addArc( a1 ); } } else{ switch(++ tf_no ) { case 1: setInput( new IOPoint("R", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); g1 = new FunctionBlock("G1G2", "", Sx + gap + gap/2, Sy, Bw*2, Bh ); if ( g1 == null ) { System.out.println( "BD cons(" + tf_no + "," + before + ") cant create FB"); } addFunctionBlock( g1 ); g1_node = new Node( g1, Node.FBtype ); a1 = new Arc( 3, true, false, in_node,g1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + gap + gap/2, Sy ); addArc( a1 ); a2 = new Arc( 3, true, false, g1_node, out_node); a2.addPoint( Sx + gap + gap/2, Sy ); a2.addPoint( Sx + 3*gap, Sy ); addArc( a2 ); break; case 2: setInput( new IOPoint("R", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y1", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); addSummingPoint( sp1 = new SummingPoint( Sx + 2*gap, Sy ) ); sp1_node = new Node (sp1, Node.SPtype); g1= new FunctionBlock("G", "1", Sx + gap, Sy, Bw, Bh ); g1_node = new Node( g1, Node.FBtype ); addFunctionBlock( g1 ); g2= new FunctionBlock("G", "2", Sx + 2*gap, Sy+2*gap/3, Bw, Bh ); g2_node = new Node( g2, Node.FBtype ); addFunctionBlock( g2 ); y2 = new FunctionBlock("Y2", "s", Sx + 3*gap, Sy+2*gap/3, Bw, Bh ); y2_node = new Node( y2, Node.FBtype ); addFunctionBlock( y2 ); a1 = new Arc( 3, true, false, in_node,g1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + gap, Sy ); addArc( a1 ); a2 = new Arc( 3, true, true, g1_node, sp1_node); a2.addPoint( Sx + gap, Sy ); a2.addPoint( Sx + 2*gap, Sy ); addArc( a2 ); a3 = new Arc( 3, true, false, sp1_node, out_node); a3.addPoint( Sx + 2*gap, Sy ); a3.addPoint( Sx + 3*gap, Sy ); addArc( a3 ); a4 = new Arc( 3, true, false, y2_node, g2_node); a4.addPoint( Sx + 3*gap, Sy+2*gap/3 ); a4.addPoint( Sx + 2*gap, Sy+2*gap/3 ); addArc( a4 ); a5 = new Arc( 3, true, true, g2_node, sp1_node); a5.addPoint( Sx + 2*gap, Sy+2*gap/3 ); a5.addPoint( Sx + 2*gap, Sy ); addArc( a5 ); break; case 3: setInput( new IOPoint("R", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); g1 = new FunctionBlock("G", "1", Sx + 2*gap, Sy, Bw, Bh ); g1_node = new Node( g1, Node.FBtype ); addFunctionBlock( g1 ); g2 = new FunctionBlock("G", "1", Sx + gap, Sy + 2*gap/3, Bw, Bh ); g2_node = new Node( g2, Node.FBtype ); addFunctionBlock( g2 ); y2 = new FunctionBlock("Y", "s", Sx, Sy+2*gap/3, Bw, Bh ); y2_node = new Node( y2, Node.FBtype ); addFunctionBlock( y2 ); a1 = new Arc( 3, true, false, in_node,g1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + 2*gap, Sy ); addArc( a1 ); a2 = new Arc( 3, true, false, g1_node, out_node); a2.addPoint( Sx + 2*gap, Sy ); a2.addPoint( Sx + 3*gap, Sy ); addArc( a2 ); a3 = new Arc( 3, true, false, in_node, g2_node); a3.addPoint( Sx + gap, Sy ); a3.addPoint( Sx + gap, Sy+2*gap/3 ); addArc( a3 ); a4 = new Arc( 3, true, false, g2_node, y2_node); a4.addPoint( Sx + gap, Sy+2*gap/3); a4.addPoint( Sx , Sy+2*gap/3 ); addArc( a4 ); break; case 4: setInput( new IOPoint("R", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); g1 = new FunctionBlock("G", "1", Sx + 2*gap, Sy, Bw, Bh ); g1_node = new Node( g1, Node.FBtype ); addFunctionBlock( g1 ); g2 = new FunctionBlock("1/G", "", Sx + 2*gap, Sy+gap/2, Bw, Bh ); g2_node = new Node( g2, Node.FBtype ); addFunctionBlock( g2 ); r2 = new FunctionBlock("R", "s", Sx + gap , Sy+gap/2, Bw, Bh ); r2_node = new Node( r2, Node.FBtype ); addFunctionBlock( r2 ); a1 = new Arc( 3, true, false, in_node,g1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + 2*gap, Sy ); addArc( a1 ); a2 = new Arc( 3, true, false, g1_node, out_node); a2.addPoint( Sx + 2*gap, Sy ); a2.addPoint( Sx + 3*gap, Sy ); addArc( a2 ); a3 = new Arc( 3, true, false, g1_node, g2_node); a3.addPoint( Sx + 5*gap/2, Sy ); a3.addPoint( Sx + 5*gap/2, Sy+gap/2 ); a3.addPoint( Sx + 2*gap, Sy+gap/2 ); addArc( a3 ); a4 = new Arc( 3, true, false, g2_node, r2_node); a4.addPoint( Sx + 2*gap, Sy+gap/2 ); a4.addPoint( Sx + gap, Sy+gap/2 ); addArc( a4 ); break; case 5: setInput( new IOPoint("R1", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); addSummingPoint( sp1 = new SummingPoint( Sx + gap, Sy ) ); sp1_node = new Node (sp1, Node.SPtype); g1 = new FunctionBlock("G", "1", Sx + 2*gap, Sy, Bw, Bh ); g1_node = new Node( g1, Node.FBtype ); addFunctionBlock( g1 ); g2 = new FunctionBlock("1/G", "", Sx + 2*gap, Sy+gap/2, Bw, Bh ); g2_node = new Node( g2, Node.FBtype ); addFunctionBlock( g2 ); r2 = new FunctionBlock("R2", "s", Sx + 3*gap , Sy+gap/2, Bw, Bh ); r2_node = new Node( r2, Node.FBtype ); addFunctionBlock( r2 ); a1 = new Arc( 3, true, true, in_node,sp1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + gap, Sy ); addArc( a1 ); a2 = new Arc( 3, true, false, sp1_node, g1_node); a2.addPoint( Sx + gap, Sy ); a2.addPoint( Sx + 2*gap, Sy ); addArc( a2 ); a3 = new Arc( 3, true, false, g1_node, out_node); a3.addPoint( Sx + 2*gap, Sy ); a3.addPoint( Sx + 3*gap, Sy ); addArc( a3 ); a4 = new Arc( 3, true, false, r2_node, g2_node); a4.addPoint( Sx + 3*gap, Sy + gap/2 ); a4.addPoint( Sx + 2*gap, Sy + gap/2 ); addArc( a4 ); a5 = new Arc( 3, true, true, g2_node, sp1_node); a5.addPoint( Sx + 2*gap, Sy + gap/2 ); a5.addPoint( Sx + gap, Sy + gap/2 ); a5.addPoint( Sx + gap, Sy ); addArc( a5 ); break; case 6: setInput( new IOPoint("R", "s", Sx, Sy, Bw, Bh, true ) ); in_node = new Node(input, Node.IOtype); setOutput( new IOPoint("Y", "s", Sx + 3*gap, Sy, Bw, Bh, false ) ); out_node = new Node(output, Node.IOtype); g1 = new FunctionBlock("G1/1+(G1H1)", "", Sx + 3*gap/2, Sy, Bw*3, Bh ); if ( g1 == null ) { System.out.println( "BD cons(" + tf_no + "," + before + ") cant create FB"); } addFunctionBlock( g1 ); g1_node = new Node( g1, Node.FBtype ); a1 = new Arc( 3, true, false, in_node,g1_node); a1.addPoint( Sx ,Sy ); a1.addPoint( Sx + 3*gap/2, Sy ); addArc( a1 ); a2 = new Arc( 3, true, false, g1_node, out_node); a2.addPoint( Sx + 3*gap/2, Sy ); a2.addPoint( Sx + 3*gap, Sy ); addArc( a2 ); break; } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -