Продолжение. Ссылка на первую часть (Осторожно, трафик!).
![](https://habrastorage.org/r/w780q1/files/7e6/21f/b1e/7e621fb1e19c427d886fafa116311da1.jpg)
Продолжаем разбирать по полочкам революционный интерфейс CAD-системы КОМПАС-3D v17. В первой части наш проектировщик интерфейсов Сергей Швецов рассказал, с какими задачами столкнулась команда, с какими задачами столкнулись при разработке нового дизайна. Если вы не понимаете, откуда цитаты или не знаете спецтерминов — добро пожаловать в первую часть материала!
Осторожно, трафик!
Основные метафоры. Поведение.
Одной из главных задач, повторюсь, было сохранить преемственность между старым и новым интерфейсом. Задачу решали разными способами. Во-первых, поэлементно. Например, все значки нового интерфейса были перерисованы заново на основе прежних, были сохранены прежние метафоры, также попутно произведена их унификация. Пример второй. Кнопка группы команд на панели инструментов в старом интерфейсе могла «раскладываться» на несколько кнопок команд с похожей функциональностью. Первоначально было желание отказаться от этой функциональности, т.к. кнопки группы команд теперь присутствуют на панели «Параметры».
После тестирования было принято решение вернуть старую функциональность «раскладывания» кнопки по длительному нажатию на нее.
Во-вторых, функционально. Например, кнопки на Панели специального управления. Новая концепция предполагает перенос команд в контекст действий. Поэтому панель была исключена, а все кнопки, на ней присутствующие, перенесены в контекст действий пользователя или изменены. Так произошло с командой Указать заново — в новом интерфейсе её функцию выполняет «регистратор», у которого есть функциональность выбора, отображения и удаления объектов.
Классический (слева) и обновленный (справа) вид панели «Параметры» (Картинка кликабельна).
Другой пример — «Компактная панель» в старом интерфейсе и «Список наборов» в новом. Функция переключения между панелями инструментов сохранена и переосмыслена. Переключение происходит в новой, более удобной и компактной форме. Переключение не между панелями инструментов, отвечающих за тот или иной вид операций, а между логическими наборами команд, которые отвечают за тот или иной вид деятельности конструктора, будь то твердотельное моделирование или моделирование листового тела.
Компактная панель (слева) и список наборов (справа). Картинка кликабельна.
Команды. Значки. Контролы. Панели. Диалоги. Поведение.
Для уменьшения ментальной нагрузки на пользователя была проведена унификация всех элементов интерфейса (как внешнего вида, так и поведения). Т.е. если элементы внешне похожи, то и действия пользователя и функциональность у них должны быть похожи. Для чего это было нужно? Чтобы пользователь, зная базовые принципы, мог заниматься своей непосредственной деятельностью, а не вспоминал правила работы с тем или иным интерфейсным элементом, но в чуть-чуть другом окружении.
Также была проведена работа по унификации метафор значков (пиктограмм). Т.е. все одинаковые метафоры обозначают одинаковое действие или объект.
![](https://habrastorage.org/r/w1560/files/a1c/a8c/603/a1ca8c6034e74f25ac404272a325d595.png)
Метафоры значков.
Все панели теперь унифицированы и работают в едином интерфейсном пространстве. Отображение панелей управляется из единой группы Панели главного. Все панели унифицированы по дизайну и поведению. Т.е. любую панель можно отстыковать от края экрана и сделать плавающей, пристыковать к другим панелям или к другой стороне экрана и даже разместить на другом мониторе.
![](https://habrastorage.org/r/w1560/files/7f8/40d/a7a/7f840da7a9024271b26f123a14a3c2c9.png)
Плавающая панель «Переменные» (Картинка кликабельна).
Диалоговые сообщения тоже подверглись переработке, все они построены на единой базе и имеют единую кодировку сообщений.
![](https://habrastorage.org/r/w1560/files/306/21d/1cb/30621d1cbf894d4cbac15efdd573f862.png)
Диалог «Сохранение документа» (Картинка кликабельна).
![](https://habrastorage.org/r/w1560/files/92f/0d1/090/92f0d109081e4b8991aa6231182b55cf.png)
Диалог «Удалить объекты» (Картинка кликабельна).
Фреймворк, отсутствие хардкода, векторные значки, векторные хот-точки.
При переходе на новый интерфейс встала необходимость в выборе фреймворка для интерфейса. Сразу обозначу, что в данной главе я рассматриваю фреймворк только с интерфейсной стороны, оставляя критерии программистов за пределами повествования. Итак, существующие библиотеки готовых интерфейсных элементов не устраивали отсутствием нестандартных интерфейсных элементов, отсутствием гибкости и возможными проблемами с обновлением и поддержкой в будущем. Т.к. сторонняя библиотека — это всегда черный ящик. После нескольких тестов был выбран WPF от Microsoft как наиболее подходящий для наших целей.
![](https://habrastorage.org/r/w1560/files/c15/748/6e3/c157486e3d074453add427edc74a91e9.png)
Общий вид интерфейса. Включен режим отображения «Полутоновое с каркасом». (Картинка кликабельна)
Концептуально интерфейс выстроен таким образом, чтобы при небольших изменениях его можно было бы адаптировать под возникающие в будущем задачи. Во главу угла поставлена адаптивность интерфейса под различные разрешения экрана. То есть весь интерфейс (за редким исключением) адаптируется под нужды пользователей. Это достигается как «правильным» интерфейсным программированием, в котором размеры интерфейсных элементов не заданы жестко в коде, а зависят от размера системного шрифта, так и практически полным отсутствием растровых изображений в интерфейсе (кроме изображений в интерфейсной справке). Реализовать такое позволяет наше ноу-хау — полностью векторные значки, как монохромные, так и цветные. Вы спросите, как это помогает пользователю? Отвечаю. На любом разрешении экрана интерфейс v17 остается предсказуемым и стабильным. Все интерфейсные элементы пропорциональны друг другу и четко отображаются. Пользователь при помощи системных настроек Windows уже сейчас может управлять размерами интерфейсных элементов и интерфейсного текста. В будущем мы планируем сделать такую поддержку внутри КОМПАС-3D. Т.е. пользователь самостоятельно сможет настроить размер интерфейсного текста и значков в зависимости от своих предпочтений.
Но и на этом наша работа над векторизацией интерфейса не закончилась. Мы сделали векторные характерные точки, которые тоже могут менять свой размер в зависимости от установок системного шрифта в Windows.
Все команды доступны, минимум диалогов, диалоги «переезжают» на панель «Параметры». Минимум переключений контекста пользователя (работаем в потоке). Сквозное селектирование.
Для поддержания потокового состояния пользователей мы убрали модальность в командах. Теперь практически все команды доступны в любой момент времени. Если действие в команде завершено, ошибок построения нет и пользователь переключается на другую команду, то объект строится без подтверждения, и осуществляется переход на следующую команду. Это позволяет очень эффективно работать, не отвлекаясь на искусственные прерывания. Также минимизировано количество диалоговых окон. Некоторые из их убрали совсем, а их функциональность перенесли в панель «Параметры», в «деревья» на модель\чертеж. Некоторые, преобразовали в более удобный вид. Например, диалог задания размера теперь выглядит как небольшая панель рядом с размерной надписью.
![](https://habrastorage.org/r/w1560/files/369/981/3b9/3699813b9f4a44088759fad9e5e04aea.png)
Диалог задания размерной надписи. Классический вид (Картинка кликабельна)
![](https://habrastorage.org/r/w1560/files/4d8/bb9/a32/4d8bb9a324bd4f5e811b87644680976c.png)
Диалог задания размерной надписи. Обновленный вид (Картинка кликабельна)
Для облегчения нахождения объектов реализовано сквозное селектирование. То есть если объект присутствует в списке или дереве, то при селектировании его на модели или чертеже он подсвечивается в дереве или списке и наоборот.
Почему 50 оттенков серого и почему на 50 оттенков темнее.
В самом начале статьи я уже писал, что интерфейс — это зло. Но не расшифровал почему. Делаю это сейчас. Идеальный интерфейс, как ни парадоксально, — это полное отсутствие интерфейса. Если бы у инженера была возможность проектировать изделия без всякого дополнительного интерфейса, то это был бы идеальный продукт и его бы хотели все. Но исторически сложилось так, что эволюция технологий протекала через развитие и совершенствование инструментов, а любой инструмент это интерфейс. Делая инструмент более удобным и эффективным, вы как бы убираете его из своего сознания, т.е. не замечаете его, он для вас перестает существовать. Согласитесь, что во время работы вы чаще будете обращать внимание на лопату, если её черенок плохо отшлифован, и не будете вовсе обращать внимание на хорошо отполированный черенок, уделяя внимание непосредственно копке. Так и с интерфейсом. Чем меньше он заметен, тем больше вы отдаетесь своей работе, тем продуктивнее и счастливее становитесь.
Делая серый-нейтральный основным цветом для интерфейса нового КОМПАС-3D v17, мы убрали лишнюю, раздражающую составляющую старого интерфейса — беспричинное многоцветие.
Но мы не отказались полностью от цвета, как это может показаться на первый взгляд. Цвет теперь является дополнительным фактором, привлекающим внимание пользователя. Будь то цветная модель, или чертеж, или индикация состояния системы. Заметить яркий цветной огонек в сумерках гораздо легче, чем на праздничной елке с игрушками и мишурой. Не забыли мы и про контрастность. Контрастность нового интерфейса фон: текст\значки составляет 11,2:1 в светлой теме и 5,69:1 в темной. Это соответствует рекомендациям WCAG. Такой запас контрастности позволяет работать при разном освещении, не напрягая зрение.
Ну вот, пожалуй, и все. В следующих версиях мы не собираемся останавливаться на достигнутом и будем продолжать совершенствовать интерфейс и приемы работы.
![](https://habrastorage.org/r/w1560/files/c1e/a27/9e7/c1ea279e719841c5af5504277d590707.png)
Включен режим отображения «Каркас» (Картинка кликабельна).
![](https://habrastorage.org/r/w1560/files/942/e91/c43/942e91c43ab94eda8c710ffd681ca8be.png)
Коллаж разных режимов отображения в одном окне (Картинка кликабельна).
Сергей Швецов, дизайнер-проектировщик пользовательских интерфейсов АСКОН
![](https://habrastorage.org/files/7e6/21f/b1e/7e621fb1e19c427d886fafa116311da1.jpg)
Продолжаем разбирать по полочкам революционный интерфейс CAD-системы КОМПАС-3D v17. В первой части наш проектировщик интерфейсов Сергей Швецов рассказал, с какими задачами столкнулась команда, с какими задачами столкнулись при разработке нового дизайна. Если вы не понимаете, откуда цитаты или не знаете спецтерминов — добро пожаловать в первую часть материала!
Осторожно, трафик!
– Слон точно, как дворцовая колонна!
Глава 3. Сохраняем преемственность
Основные метафоры. Поведение.
Одной из главных задач, повторюсь, было сохранить преемственность между старым и новым интерфейсом. Задачу решали разными способами. Во-первых, поэлементно. Например, все значки нового интерфейса были перерисованы заново на основе прежних, были сохранены прежние метафоры, также попутно произведена их унификация. Пример второй. Кнопка группы команд на панели инструментов в старом интерфейсе могла «раскладываться» на несколько кнопок команд с похожей функциональностью. Первоначально было желание отказаться от этой функциональности, т.к. кнопки группы команд теперь присутствуют на панели «Параметры».
Пример был в первой части статьи:
Пример для группы команд Выдавливание.
![](https://habrastorage.org/r/w1560/files/d96/0f2/920/d960f2920f2f47c2996c67d1e6fb919e.png)
Классический вид. Группа отображалась по зажатой ЛКМ на иконке.
![](https://habrastorage.org/r/w1560/files/5c0/070/b4c/5c0070b4c5f0490c925c1bb20593ffa1.png)
Обновленный вид. Добавился вариант отображения группы в верхней части панели параметры (Картинка кликабельна).
![](https://habrastorage.org/files/d96/0f2/920/d960f2920f2f47c2996c67d1e6fb919e.png)
Классический вид. Группа отображалась по зажатой ЛКМ на иконке.
![](https://habrastorage.org/files/5c0/070/b4c/5c0070b4c5f0490c925c1bb20593ffa1.png)
Обновленный вид. Добавился вариант отображения группы в верхней части панели параметры (Картинка кликабельна).
После тестирования было принято решение вернуть старую функциональность «раскладывания» кнопки по длительному нажатию на нее.
Во-вторых, функционально. Например, кнопки на Панели специального управления. Новая концепция предполагает перенос команд в контекст действий. Поэтому панель была исключена, а все кнопки, на ней присутствующие, перенесены в контекст действий пользователя или изменены. Так произошло с командой Указать заново — в новом интерфейсе её функцию выполняет «регистратор», у которого есть функциональность выбора, отображения и удаления объектов.
![](https://habrastorage.org/files/c82/b85/1d1/c82b851d1c494e5596bfb553acbeda30.png)
Классический (слева) и обновленный (справа) вид панели «Параметры» (Картинка кликабельна).
Другой пример — «Компактная панель» в старом интерфейсе и «Список наборов» в новом. Функция переключения между панелями инструментов сохранена и переосмыслена. Переключение происходит в новой, более удобной и компактной форме. Переключение не между панелями инструментов, отвечающих за тот или иной вид операций, а между логическими наборами команд, которые отвечают за тот или иной вид деятельности конструктора, будь то твердотельное моделирование или моделирование листового тела.
![](https://habrastorage.org/files/859/b13/496/859b1349661248448ccedee50dea0d0c.png)
Компактная панель (слева) и список наборов (справа). Картинка кликабельна.
Для наглядности так выглядит список строительных наборов
Сейчас список может быть практически бесконечным, раньше он был серьезно ограничен и на компактной панели была только одна строительная панель «СПДС обозначения».
![](https://habrastorage.org/r/w1560/files/384/bda/3fb/384bda3fbdd04c22a3404cc79987eaea.png)
Остальные панели строительных инструментов располагались случайным образом:
![](https://habrastorage.org/r/w1560/files/3f5/f5e/cb0/3f5f5ecb088f44069e1c75a86f4a78ce.png)
![](https://habrastorage.org/files/384/bda/3fb/384bda3fbdd04c22a3404cc79987eaea.png)
Остальные панели строительных инструментов располагались случайным образом:
![](https://habrastorage.org/files/3f5/f5e/cb0/3f5f5ecb088f44069e1c75a86f4a78ce.png)
– Спор пустой –
Труба, колонна… Схож сей зверь с тахтой.
Глава 4. Тотальная унификация
Команды. Значки. Контролы. Панели. Диалоги. Поведение.
Для уменьшения ментальной нагрузки на пользователя была проведена унификация всех элементов интерфейса (как внешнего вида, так и поведения). Т.е. если элементы внешне похожи, то и действия пользователя и функциональность у них должны быть похожи. Для чего это было нужно? Чтобы пользователь, зная базовые принципы, мог заниматься своей непосредственной деятельностью, а не вспоминал правила работы с тем или иным интерфейсным элементом, но в чуть-чуть другом окружении.
Также была проведена работа по унификации метафор значков (пиктограмм). Т.е. все одинаковые метафоры обозначают одинаковое действие или объект.
![](https://habrastorage.org/files/a1c/a8c/603/a1ca8c6034e74f25ac404272a325d595.png)
Метафоры значков.
Все панели теперь унифицированы и работают в едином интерфейсном пространстве. Отображение панелей управляется из единой группы Панели главного. Все панели унифицированы по дизайну и поведению. Т.е. любую панель можно отстыковать от края экрана и сделать плавающей, пристыковать к другим панелям или к другой стороне экрана и даже разместить на другом мониторе.
![](https://habrastorage.org/files/7f8/40d/a7a/7f840da7a9024271b26f123a14a3c2c9.png)
Плавающая панель «Переменные» (Картинка кликабельна).
Диалоговые сообщения тоже подверглись переработке, все они построены на единой базе и имеют единую кодировку сообщений.
![](https://habrastorage.org/files/306/21d/1cb/30621d1cbf894d4cbac15efdd573f862.png)
Диалог «Сохранение документа» (Картинка кликабельна).
![](https://habrastorage.org/files/92f/0d1/090/92f0d109081e4b8991aa6231182b55cf.png)
Диалог «Удалить объекты» (Картинка кликабельна).
Так диалоги выглядели в прошлых версиях![](https://habrastorage.org/r/w1560/files/5f6/0b5/663/5f60b5663f6a43b791a381be2b6c8b5c.png)
![](https://habrastorage.org/r/w1560/files/718/538/11b/71853811bda04b398f595324da89dd87.png)
![](https://habrastorage.org/files/5f6/0b5/663/5f60b5663f6a43b791a381be2b6c8b5c.png)
![](https://habrastorage.org/files/718/538/11b/71853811bda04b398f595324da89dd87.png)
– Слон скорей всего похож на шахский трон!
Глава 5. Тотальная векторизация
Фреймворк, отсутствие хардкода, векторные значки, векторные хот-точки.
При переходе на новый интерфейс встала необходимость в выборе фреймворка для интерфейса. Сразу обозначу, что в данной главе я рассматриваю фреймворк только с интерфейсной стороны, оставляя критерии программистов за пределами повествования. Итак, существующие библиотеки готовых интерфейсных элементов не устраивали отсутствием нестандартных интерфейсных элементов, отсутствием гибкости и возможными проблемами с обновлением и поддержкой в будущем. Т.к. сторонняя библиотека — это всегда черный ящик. После нескольких тестов был выбран WPF от Microsoft как наиболее подходящий для наших целей.
![](https://habrastorage.org/files/c15/748/6e3/c157486e3d074453add427edc74a91e9.png)
Общий вид интерфейса. Включен режим отображения «Полутоновое с каркасом». (Картинка кликабельна)
Концептуально интерфейс выстроен таким образом, чтобы при небольших изменениях его можно было бы адаптировать под возникающие в будущем задачи. Во главу угла поставлена адаптивность интерфейса под различные разрешения экрана. То есть весь интерфейс (за редким исключением) адаптируется под нужды пользователей. Это достигается как «правильным» интерфейсным программированием, в котором размеры интерфейсных элементов не заданы жестко в коде, а зависят от размера системного шрифта, так и практически полным отсутствием растровых изображений в интерфейсе (кроме изображений в интерфейсной справке). Реализовать такое позволяет наше ноу-хау — полностью векторные значки, как монохромные, так и цветные. Вы спросите, как это помогает пользователю? Отвечаю. На любом разрешении экрана интерфейс v17 остается предсказуемым и стабильным. Все интерфейсные элементы пропорциональны друг другу и четко отображаются. Пользователь при помощи системных настроек Windows уже сейчас может управлять размерами интерфейсных элементов и интерфейсного текста. В будущем мы планируем сделать такую поддержку внутри КОМПАС-3D. Т.е. пользователь самостоятельно сможет настроить размер интерфейсного текста и значков в зависимости от своих предпочтений.
Векторные характерные точки![](https://habrastorage.org/r/w1560/files/587/f83/b6e/587f83b6e5a345b696cbbed7b5f7b8f9.png)
Характерные точки для элемента выдавливания(синие треугольники и квадраты).
![](https://habrastorage.org/files/587/f83/b6e/587f83b6e5a345b696cbbed7b5f7b8f9.png)
Характерные точки для элемента выдавливания(синие треугольники и квадраты).
Но и на этом наша работа над векторизацией интерфейса не закончилась. Мы сделали векторные характерные точки, которые тоже могут менять свой размер в зависимости от установок системного шрифта в Windows.
– Ваш слон – большая полированая пика!
Глава 6. Убираем модальность
Все команды доступны, минимум диалогов, диалоги «переезжают» на панель «Параметры». Минимум переключений контекста пользователя (работаем в потоке). Сквозное селектирование.
Для поддержания потокового состояния пользователей мы убрали модальность в командах. Теперь практически все команды доступны в любой момент времени. Если действие в команде завершено, ошибок построения нет и пользователь переключается на другую команду, то объект строится без подтверждения, и осуществляется переход на следующую команду. Это позволяет очень эффективно работать, не отвлекаясь на искусственные прерывания. Также минимизировано количество диалоговых окон. Некоторые из их убрали совсем, а их функциональность перенесли в панель «Параметры», в «деревья» на модель\чертеж. Некоторые, преобразовали в более удобный вид. Например, диалог задания размера теперь выглядит как небольшая панель рядом с размерной надписью.
![](https://habrastorage.org/files/369/981/3b9/3699813b9f4a44088759fad9e5e04aea.png)
Диалог задания размерной надписи. Классический вид (Картинка кликабельна)
![](https://habrastorage.org/files/4d8/bb9/a32/4d8bb9a324bd4f5e811b87644680976c.png)
Диалог задания размерной надписи. Обновленный вид (Картинка кликабельна)
Для облегчения нахождения объектов реализовано сквозное селектирование. То есть если объект присутствует в списке или дереве, то при селектировании его на модели или чертеже он подсвечивается в дереве или списке и наоборот.
– Алифа он прямей.
Глава 7. Контрастные темы
Почему 50 оттенков серого и почему на 50 оттенков темнее.
В самом начале статьи я уже писал, что интерфейс — это зло. Но не расшифровал почему. Делаю это сейчас. Идеальный интерфейс, как ни парадоксально, — это полное отсутствие интерфейса. Если бы у инженера была возможность проектировать изделия без всякого дополнительного интерфейса, то это был бы идеальный продукт и его бы хотели все. Но исторически сложилось так, что эволюция технологий протекала через развитие и совершенствование инструментов, а любой инструмент это интерфейс. Делая инструмент более удобным и эффективным, вы как бы убираете его из своего сознания, т.е. не замечаете его, он для вас перестает существовать. Согласитесь, что во время работы вы чаще будете обращать внимание на лопату, если её черенок плохо отшлифован, и не будете вовсе обращать внимание на хорошо отполированный черенок, уделяя внимание непосредственно копке. Так и с интерфейсом. Чем меньше он заметен, тем больше вы отдаетесь своей работе, тем продуктивнее и счастливее становитесь.
Делая серый-нейтральный основным цветом для интерфейса нового КОМПАС-3D v17, мы убрали лишнюю, раздражающую составляющую старого интерфейса — беспричинное многоцветие.
Примеры беспричинного многоцветия![](https://habrastorage.org/r/w780q1/files/0e8/92e/2ea/0e892e2ea9554cd597546a3c2f9a5e99.jpg)
![](https://habrastorage.org/r/w780q1/files/f5b/df9/438/f5bdf9438d494ffe93ecdfbe7d26d657.jpg)
![](https://habrastorage.org/r/w780q1/files/e47/678/ba1/e47678ba18a749109b3a2a64559848d0.jpg)
![](https://habrastorage.org/files/0e8/92e/2ea/0e892e2ea9554cd597546a3c2f9a5e99.jpg)
![](https://habrastorage.org/files/f5b/df9/438/f5bdf9438d494ffe93ecdfbe7d26d657.jpg)
![](https://habrastorage.org/files/e47/678/ba1/e47678ba18a749109b3a2a64559848d0.jpg)
Различные режимы отображения нового интерфейса
Но мы не отказались полностью от цвета, как это может показаться на первый взгляд. Цвет теперь является дополнительным фактором, привлекающим внимание пользователя. Будь то цветная модель, или чертеж, или индикация состояния системы. Заметить яркий цветной огонек в сумерках гораздо легче, чем на праздничной елке с игрушками и мишурой. Не забыли мы и про контрастность. Контрастность нового интерфейса фон: текст\значки составляет 11,2:1 в светлой теме и 5,69:1 в темной. Это соответствует рекомендациям WCAG. Такой запас контрастности позволяет работать при разном освещении, не напрягая зрение.
– Как даль он согнут!
Что готово? Не готово! Стрижка только начата!
Ну вот, пожалуй, и все. В следующих версиях мы не собираемся останавливаться на достигнутом и будем продолжать совершенствовать интерфейс и приемы работы.
![](https://habrastorage.org/files/c1e/a27/9e7/c1ea279e719841c5af5504277d590707.png)
Включен режим отображения «Каркас» (Картинка кликабельна).
![](https://habrastorage.org/files/942/e91/c43/942e91c43ab94eda8c710ffd681ca8be.png)
Коллаж разных режимов отображения в одном окне (Картинка кликабельна).
![](https://habrastorage.org/files/c4c/2e8/b28/c4c2e8b28762478fb7995b511c4b1b48.png)