Задачка немного другая - мне нужна табличка в экселе с кординатами всех объектов, цвета, привязки и пр. Ручками -слишком долго, нудно и не наглядно. Поэтому альтернативы визио не вижу - там можно нарисовать все экраны и экспортировать все данные в эксель (точнее даже связать в обе стороны). 
А далее у меня уже экслель уже умеет формировать данные для скетча, а скетч умеет эти данные разгребать - т.е. строить полноценное меню.
 
Для понимания на самом простом примере:
Эксел для текста формируется всего 4 строки:
const byte tstart[] = {0,1,3,7,7,8,8,9,1.....}; 
const byte ttext[] = { 93,11,11,92,11,10,10,22,91,..... }; // номер текста 
const int tx1[] = { 6476,1191,1641,6496,1178,1491,16..... };  //х1-коодината и цвет текста
const int ty1[] = { 8216,20742,20742,8216.....} // у1-координата и номер фонта. 
 
В printallkeys на все про все:
if (tstart[dispScreen+1]-tstart[dispScreen]>0)  // если на экране с номером dispScreen  есть текстовая информация
for (int N=tstart[dispScreen]; N<tstart[dispScreen+1]; N++) {
getTdata(N);  // выдираем все закодированные данные 
printText0(nx1, ny1); } // устанавливает цвета в соотвествии с номером и печает из буфера
 
void getTdata (byte N) {
nx1=tx1[N]&maskX; ny1=ty1[N]&maskY;  //  получаем координаты текста
Textcolor=(tx1[N]&maskColor)/maskColord; //номер цвета для текста
Font=(ty1[N]&maskFont)/maskFontd; // ... номер фонта (small, big...)
strcpy_P(buffer, (char*)pgm_read_word_near(&(print_[ttext[N]]))) ;  // закидываем текст в буфер
}
 
Для кнопок перехода по меню, слайдеров, переключателей, графиков и пр. несколько сложнее, но суть та же. Тач работает по тому же принципу.