This automatically makes con file that chips are overlapped with each other
chip_positions = []
ROW = 9 #縦の数を定義
COLUMN = 9 #横の数を定義
CHIP_SIZE = 0.6
DIFF_mm = 0.01
ROW.times do |row_i|
column_chip = []
COLUMN.times do |col_i|
diff_mm_x = DIFF_mm * col_i
original_pos_x = 0.3 + col_i * CHIP_SIZE
slided_pos_x = (original_pos_x - diff_mm_x).round(2)
diff_mm_y = DIFF_mm * row_i
original_pos_y = 0.3 + row_i * CHIP_SIZE
slided_pos_y = (original_pos_y - diff_mm_y).round(2)
column_chip << [slided_pos_x, slided_pos_y]
end
chip_positions << column_chip
end
File.open("overlap.con", "w") do |f|
f.puts "/*--- Condition.con ---*/\n\nPX60000;\n\nSZ#{CHIP_SIZE};\nR20.9000,0.9000;3.9000,3.9000;\nSI0;\nSJ0;\nST0;\n"
chip_positions.each.with_index(1) do |row_array, row_i|
row_array.each.with_index(1) do |pos_x_y, col_i|
f.puts "PCtest#{row_i}0#{col_i};\n#{pos_x_y[0]},#{pos_x_y[1]};\n"
f.puts "PPtest#{row_i}0#{col_i};\n#{pos_x_y[0]},#{pos_x_y[1]};\n"
f.puts "SI0;\nSJ0;\nST0;\n"
f.puts "\n" if col_i == row_array.length
end
end
f.puts "!END\n"
end
/*--- Condition.con ---*/
PX60000;
SZ0.6;
R20.9000,0.9000;3.9000,3.9000;
SI0;
SJ0;
ST0;
PCtest101;
0.3,0.3;
PPtest101;
0.3,0.3;
SI0;
SJ0;
ST0;
PCtest102;
0.89,0.3;
PPtest102;
0.89,0.3;
SI0;
SJ0;
ST0;
PCtest103;
1.48,0.3;
PPtest103;
1.48,0.3;
SI0;
SJ0;
ST0;
PCtest104;
2.07,0.3;
PPtest104;
2.07,0.3;
SI0;
SJ0;
ST0;
PCtest105;
2.66,0.3;
PPtest105;
2.66,0.3;
SI0;
SJ0;
ST0;
PCtest106;
3.25,0.3;
PPtest106;
3.25,0.3;
SI0;
SJ0;
ST0;
PCtest107;
3.84,0.3;
PPtest107;
3.84,0.3;
SI0;
SJ0;
ST0;
PCtest108;
4.43,0.3;
PPtest108;
4.43,0.3;
SI0;
SJ0;
ST0;
PCtest109;
5.02,0.3;
PPtest109;
5.02,0.3;
SI0;
SJ0;
ST0;
PCtest201;
0.3,0.89;
PPtest201;
0.3,0.89;
SI0;
SJ0;
ST0;
PCtest202;
0.89,0.89;
PPtest202;
0.89,0.89;
SI0;
SJ0;
ST0;
PCtest203;
1.48,0.89;
PPtest203;
1.48,0.89;
SI0;
SJ0;
ST0;
PCtest204;
2.07,0.89;
PPtest204;
2.07,0.89;
SI0;
SJ0;
ST0;
PCtest205;
2.66,0.89;
PPtest205;
2.66,0.89;
SI0;
SJ0;
ST0;
PCtest206;
3.25,0.89;
PPtest206;
3.25,0.89;
SI0;
SJ0;
ST0;
PCtest207;
3.84,0.89;
PPtest207;
3.84,0.89;
SI0;
SJ0;
ST0;
PCtest208;
4.43,0.89;
PPtest208;
4.43,0.89;
SI0;
SJ0;
ST0;
PCtest209;
5.02,0.89;
PPtest209;
5.02,0.89;
SI0;
SJ0;
ST0;
PCtest301;
0.3,1.48;
PPtest301;
0.3,1.48;
SI0;
SJ0;
ST0;
PCtest302;
0.89,1.48;
PPtest302;
0.89,1.48;
SI0;
SJ0;
ST0;
PCtest303;
1.48,1.48;
PPtest303;
1.48,1.48;
SI0;
SJ0;
ST0;
PCtest304;
2.07,1.48;
PPtest304;
2.07,1.48;
SI0;
SJ0;
ST0;
PCtest305;
2.66,1.48;
PPtest305;
2.66,1.48;
SI0;
SJ0;
ST0;
PCtest306;
3.25,1.48;
PPtest306;
3.25,1.48;
SI0;
SJ0;
ST0;
PCtest307;
3.84,1.48;
PPtest307;
3.84,1.48;
SI0;
SJ0;
ST0;
PCtest308;
4.43,1.48;
PPtest308;
4.43,1.48;
SI0;
SJ0;
ST0;
PCtest309;
5.02,1.48;
PPtest309;
5.02,1.48;
SI0;
SJ0;
ST0;
PCtest401;
0.3,2.07;
PPtest401;
0.3,2.07;
SI0;
SJ0;
ST0;
PCtest402;
0.89,2.07;
PPtest402;
0.89,2.07;
SI0;
SJ0;
ST0;
PCtest403;
1.48,2.07;
PPtest403;
1.48,2.07;
SI0;
SJ0;
ST0;
PCtest404;
2.07,2.07;
PPtest404;
2.07,2.07;
SI0;
SJ0;
ST0;
PCtest405;
2.66,2.07;
PPtest405;
2.66,2.07;
SI0;
SJ0;
ST0;
PCtest406;
3.25,2.07;
PPtest406;
3.25,2.07;
SI0;
SJ0;
ST0;
PCtest407;
3.84,2.07;
PPtest407;
3.84,2.07;
SI0;
SJ0;
ST0;
PCtest408;
4.43,2.07;
PPtest408;
4.43,2.07;
SI0;
SJ0;
ST0;
PCtest409;
5.02,2.07;
PPtest409;
5.02,2.07;
SI0;
SJ0;
ST0;
PCtest501;
0.3,2.66;
PPtest501;
0.3,2.66;
SI0;
SJ0;
ST0;
PCtest502;
0.89,2.66;
PPtest502;
0.89,2.66;
SI0;
SJ0;
ST0;
PCtest503;
1.48,2.66;
PPtest503;
1.48,2.66;
SI0;
SJ0;
ST0;
PCtest504;
2.07,2.66;
PPtest504;
2.07,2.66;
SI0;
SJ0;
ST0;
PCtest505;
2.66,2.66;
PPtest505;
2.66,2.66;
SI0;
SJ0;
ST0;
PCtest506;
3.25,2.66;
PPtest506;
3.25,2.66;
SI0;
SJ0;
ST0;
PCtest507;
3.84,2.66;
PPtest507;
3.84,2.66;
SI0;
SJ0;
ST0;
PCtest508;
4.43,2.66;
PPtest508;
4.43,2.66;
SI0;
SJ0;
ST0;
PCtest509;
5.02,2.66;
PPtest509;
5.02,2.66;
SI0;
SJ0;
ST0;
PCtest601;
0.3,3.25;
PPtest601;
0.3,3.25;
SI0;
SJ0;
ST0;
PCtest602;
0.89,3.25;
PPtest602;
0.89,3.25;
SI0;
SJ0;
ST0;
PCtest603;
1.48,3.25;
PPtest603;
1.48,3.25;
SI0;
SJ0;
ST0;
PCtest604;
2.07,3.25;
PPtest604;
2.07,3.25;
SI0;
SJ0;
ST0;
PCtest605;
2.66,3.25;
PPtest605;
2.66,3.25;
SI0;
SJ0;
ST0;
PCtest606;
3.25,3.25;
PPtest606;
3.25,3.25;
SI0;
SJ0;
ST0;
PCtest607;
3.84,3.25;
PPtest607;
3.84,3.25;
SI0;
SJ0;
ST0;
PCtest608;
4.43,3.25;
PPtest608;
4.43,3.25;
SI0;
SJ0;
ST0;
PCtest609;
5.02,3.25;
PPtest609;
5.02,3.25;
SI0;
SJ0;
ST0;
PCtest701;
0.3,3.84;
PPtest701;
0.3,3.84;
SI0;
SJ0;
ST0;
PCtest702;
0.89,3.84;
PPtest702;
0.89,3.84;
SI0;
SJ0;
ST0;
PCtest703;
1.48,3.84;
PPtest703;
1.48,3.84;
SI0;
SJ0;
ST0;
PCtest704;
2.07,3.84;
PPtest704;
2.07,3.84;
SI0;
SJ0;
ST0;
PCtest705;
2.66,3.84;
PPtest705;
2.66,3.84;
SI0;
SJ0;
ST0;
PCtest706;
3.25,3.84;
PPtest706;
3.25,3.84;
SI0;
SJ0;
ST0;
PCtest707;
3.84,3.84;
PPtest707;
3.84,3.84;
SI0;
SJ0;
ST0;
PCtest708;
4.43,3.84;
PPtest708;
4.43,3.84;
SI0;
SJ0;
ST0;
PCtest709;
5.02,3.84;
PPtest709;
5.02,3.84;
SI0;
SJ0;
ST0;
PCtest801;
0.3,4.43;
PPtest801;
0.3,4.43;
SI0;
SJ0;
ST0;
PCtest802;
0.89,4.43;
PPtest802;
0.89,4.43;
SI0;
SJ0;
ST0;
PCtest803;
1.48,4.43;
PPtest803;
1.48,4.43;
SI0;
SJ0;
ST0;
PCtest804;
2.07,4.43;
PPtest804;
2.07,4.43;
SI0;
SJ0;
ST0;
PCtest805;
2.66,4.43;
PPtest805;
2.66,4.43;
SI0;
SJ0;
ST0;
PCtest806;
3.25,4.43;
PPtest806;
3.25,4.43;
SI0;
SJ0;
ST0;
PCtest807;
3.84,4.43;
PPtest807;
3.84,4.43;
SI0;
SJ0;
ST0;
PCtest808;
4.43,4.43;
PPtest808;
4.43,4.43;
SI0;
SJ0;
ST0;
PCtest809;
5.02,4.43;
PPtest809;
5.02,4.43;
SI0;
SJ0;
ST0;
PCtest901;
0.3,5.02;
PPtest901;
0.3,5.02;
SI0;
SJ0;
ST0;
PCtest902;
0.89,5.02;
PPtest902;
0.89,5.02;
SI0;
SJ0;
ST0;
PCtest903;
1.48,5.02;
PPtest903;
1.48,5.02;
SI0;
SJ0;
ST0;
PCtest904;
2.07,5.02;
PPtest904;
2.07,5.02;
SI0;
SJ0;
ST0;
PCtest905;
2.66,5.02;
PPtest905;
2.66,5.02;
SI0;
SJ0;
ST0;
PCtest906;
3.25,5.02;
PPtest906;
3.25,5.02;
SI0;
SJ0;
ST0;
PCtest907;
3.84,5.02;
PPtest907;
3.84,5.02;
SI0;
SJ0;
ST0;
PCtest908;
4.43,5.02;
PPtest908;
4.43,5.02;
SI0;
SJ0;
ST0;
PCtest909;
5.02,5.02;
PPtest909;
5.02,5.02;
SI0;
SJ0;
ST0;
!END