Simple XML Framework — пишем API для работы с диаграммами DIA
После установки приложение запускается с помощью команды dia. ПП: с помощью такой команды программа запустится в виде пары плавающих окон.
ПП. Dia в виде одного окна (с зафиксированными окнами) выглядит так:
Для начала стоит зайти в меню File ? Параметры и проверить личные настройки. Они сохраняются в вашем домашнем каталоге по адресу .dia/diarc (ПП: мне такой скрытый каталог найти не удалось). Большинство настроек можно оставить по-умолчанию, обратив внимание на следующее:
- Настройка диаграммы по умолчанию… Если вас не беспокоит экономия места на диске, то снимите флажок Сжимать сохраняемые файлы. Это позволит без труда манипулировать UML моделями позже.
-
Видимый … да
После щелчка на кнопке OK окна параметров, вы можете приступать к созданию диаграмм.
5.2. New diagram (Новая диаграмма)
ПП. При запуске программы Dia уже открывается один новый документ. Если планируется работать с несколькими, то следует выполнить команду Файл ? Создать. После этого в рабочей области появится вторая вкладка.
Диалоговое окно Настройка страницы (запускается из меню Файл) позволяет установить следующие свойства):
- Размер бумаги
- Ориентация. Используется портрет (книга) для большинства web-страниц и пейзаж (альбом) для просмотра пленки.
- Отступы. Оставьте как есть. Их размер соответствует бумажному формату.
- Масштабирование. Оставьте Масштаб … 100. Тем не менее, мы вернемся к этому позже.
После нажатия кнопки OK, окно параметров страницы исчезает, и вы готовы к созданию диаграммы.
Совместимость Dia с Windows
Редактор диаграмм Dia не требователен к компьютеру, его можно запустить даже на слабых машинах под управлением Windows XP версии XP SP2 или выше. Поддерживаются системы разрядностью 32 бит и 64 бит.
На данной странице можно скачать две версии программы Dia — установочную и портативную. Для запуска портативной версии распакуйте вложенный архив «dia_0.97.2_win32.zip», перейдите в папку «bin» и запустите файл «dia.exe».
По мере создания заметок к лекциям, презентаций к урокам и прочих обучающих материалов, постоянно хочется представить какую-нибудь схему для будущей аудитории более наглядно. Для создания таких схем можно использовать возможности построения графических объектов Microsoft Office или другого редактора из бесплатного офисного пакета. Однако есть программы, которые предназначены именно для таких целей.
В Microsoft Windows замечательным инструментом для рисования профессиональных диаграмм разных типов является Microsoft Visio. Однако она платная и очень дорогая, к тому же, использовать её можно только в Windows.
Одним из бесплатных аналогов является программа GNU Dia. В этом пособии я расскажу, для чего она вам нужна, и как с ней правильно работать.
GNU Dia — является простым, но весьма мощным редактором диаграмм от проекта GNU. Создана в среде GTK+.
Присутствуют все необходимые инструменты и обширная коллекция предустановленных объектов для добавления в создаваемые диаграммы.
5.3. Draw an Organization Chart (Создание организационной карты, схемы и т.п.)
При создании некой организационной структуры обычно требуется некоторое количество боксов (ПП: боксами будем иногда называть все прямоугольно-квадратное), сплошных и пунктирных линий. Все это может быть сделано базовыми инструментами. Так как же использовать базовые инструменты?
Обратите внимание на план (пп: это описание интерфейса программы, которое мы видим с левой стороны):
При задержке на значках курсора мыши будет показана подсказка. После щелчка на значке-кнопке инструмент будет активирован. После этого клик левой кнопкой мыши в рабочей области создает копию выбранной базовой формы. После размещения экземпляра фигуры автоматически происходит переключение на первый базовый инструмент (черная стрелка в левом верхнем углу), с помощью которого можно перемещать и изменять полученную фигуру.
Самый простой способ работы заключается в следующем:
- Выберите форму
- Щелкните по рабочей области.
- Создайте надпись в ней. (Это касается не базовых элементов, а большинство фигур из библиотек. Большинство библиотечных фигур может допускать текстовые метки внутри них).
- Переместите форму в место ее размещения.
- Соедините фигуры линиями. Убедитесь, что линии действительно связаны с метками формы.
- Создайте метки для линий в случае необходимости.
- Если надо, переместите фигуры и линии. Также можно добавить дополнительные точки соединения, чтобы разместить линии более точно.
- Добавляйте и изменяйте другие фигуры и линии.
«Cтратегия» в Simple Framework, начинаем писать DiaTreeStrategy
Класс реализующий «стратегию» (реализующий интерфейс Strategy) в Simple Framework занимается тем, что определяет сопоставление между узлами XML и классами в Java.
У этого интерфейса всего 2 метода — read() и write(). Первый занимается тем, что по переданному xml-узлу пытается понять, какой класс мы сейчас будем заполнять, а второй создает xml-узел, в который мы будем заполнять свойства объекта.
Писать стратегию с нуля — «дело не барское», тем более, что обычный TreeStrategy во всем остальном (кроме незнания как правильно сопоставлять классы и узлы типа object) — вполне хорошо работает. Потому мы его просто подправим. Отнаследуем и подправим.
public class DiaTreeStrategy extends TreeStrategy Читатель наверняка уже догадался, что «всё», что нам надо — это научить «стратегию» читать свойство type у тега object, и откуда-то понимать что «UML — Class» — соответствует классу diaXML.shapes.uml.UmlClass, а «Standard — Box» — классу diaXML.shapes.standart.StdBox.
Информацию о маппинге (type + version => имя класса) я решил хранить в обычном ArrayList:
Инициализируем маппинг прямо под объявлением
private Class readValueAdv(Type type, NodeMap node) throws Exception < // we need here catch only tag if( !»object».equals(node.getName()) ) return NULL; Node entry_type = node.get(«type»); Node entry_version = node.get(«version»); if( entry_type == NULL || entry_version==NULL) < return NULL; >; String name_type = entry_type.getValue(); String name_version = entry_version.getValue(); String className=NULL; Class expect=NULL; for (DiaObjToClassMapRecord crec: diaObj2ClassMap) < if ( ( crec.diaType!=NULL && (crec.diaType.equals(name_type) || !crec.diaType.isEmpty() && crec.diaType.equals(«*») ) ) && ( crec.diaVersion!=NULL && ( crec.diaVersion.equals(name_version) || !crec.diaVersion.isEmpty() && crec.diaVersion.equals(«*») ) ) ) < className = crec.javaClassName; break; >> if (className !=NULL) < expect = loader.load(className); Node entry = node.remove(label); >return expect; >
Теперь все что осталось — исправить метод read. public class DiaTreeStrategy extends TreeStrategy … @Override public Value read(Type type, NodeMap node, Map map) throws Exception < Class actualDeclaredByDia = readValueAdv(type, node); if (actualDeclaredByDia==NULL) return super.read(type, node, map); return new ObjectValue(actualDeclaredByDia); >Это, почти всё. Вернее, это был «краеугольный камень преткновения», который не позволял с помощью Simple Framework парсить файлы, которые генерирует DIA.
Естественно, помимо того, что описано в статье, было проведено много другой работы, связанной с аннотированием классов, исследованием того, как в Simple XML работают аннотации-перехватчики событий в процессе сериализации и разбора XML, созданием сервисных классов и тд. и тп., но это уже другой разговор.
5.4. Boxes and text (Боксы и текст)
На самом деле можно изначально использовать бокс, который включает текст, а также изменяется, если текст превышает границы бокса. Боксы из библиотеки Блок-схема (например, квадрат) позволяют легко включать в себя текст. К тому же можно создать собственную форму, которая «знает» о тексте.
Однако в данный момент выберем более сложный путь, а именно создадим прямоугольники с текстом, пользуясь исключительно базовыми инструментами.
После создания надписи можно настроить ее свойства через диалоговое окно, доступ к которому можно получить либо через двойной клик по надписи либо щелкнув на ней правой кнопкой мыши и выбрав Свойства. После размещения прямоугольника выбираем базовый инструмент Текст и щелкаем в центр бокса. Курсор появляется в его центре и мы можем ввести текст. При этом текст не выровнен как надо. Чтобы решить эту проблему следует вызвать окно свойств текста и выбрать выравнивание по середине как по горизонтали так и вертикали.
Если после этих манипуляций вы попробуете переместить бокс, то текст окажется к нему привязанным и переместится вместе с ним. Однако, если попытаться сдвинуть текст с места, то он отсоединиться от бокса. Чтобы затем точно выровнять текст в боксе можно воспользоваться стрелками на клавиатуре.
Для того, чтобы текст и бокс в дальнейшем все-время «путешествовали» вместе, их можно сгруппировать, например, выделив с помощью рамки выделения и нажав Ctrl + G.
Если в дальнейшем потребуется редактировать какую-либо часть группы, то сначала придется разгруппировать составной объект (Ctrl + Shift + G). ПП: в Windows XP горячие клавиши не работают, поэтому все приходится делать через меню.
Таким образом можно создать что-то наподобие этого:
ПП. Удобнее копировать боксы с текстом, предварительно выделив группу, чем настраивать текст для каждого прямоугольника. Для редактирования текста следует его выделить и нажать F2.
Формат хранения диаграмм в Dia и его особенности
Не будем сейчас разбирать полностью всю структуру, а перейдем сразу к «проблемным особенностям».
В .dia, структура хранения любого элемента диаграммы унифицирована: это тег object, который «обрамляет» перечень тегов attribute, в которых описываются все характеристики объекта.
Например, вот так описывается элемент ‘линия’ из базовой палитры DIA
Основная проблема тут в том, что все типы элементов описываются одним тегом. В итоге, не понятно как сказать Simple Framework, что — надо разбирать в объект класса Line, а — в объект класса Box. В штатном наборе инструментария Simple Framework я не нашел как решать эту задачу. Именно поэтому была описана «стратегия» DiaTreeStrategy, история создания которой приведена ниже.
К слову, раз уж мы говорим про минимализм Simple Framework применимо к разбору формата .dia, стоит упомянуть про аннотацию @Xpath и её ограничения.
Проблема кроется в том, что состав атрибутов объекта диаграммы, которые Dia сохраняет в xml — не постоянен и зависит от того, какие свойства вы меняли у данного объекта. Из-за этого, при разборе xml структур в .dia, нельзя использовать аннотацию @Xpath с указанием индекса для того, что бы сопоставить свойство класса и описываемый в xml атрибут объекта. Если бы в @Xpath можно было указать имя и значения атрибута, как мы это можем сделать в xpath-запросе — то это сделало бы задачу проще, но увы — в @Xpath можно указать только путь и индекс. Эти обстоятельства привели к появлению у меня в коде не самого удобного механизма заполнения свойств класса из массива атрибутов, но об этом в другой раз.
5.5. Lines (Линии)
Теперь мы можем добавить несколько линий. Мы будем использовать линии «Зигзаг». Рисуем их примерно от одного объекта к другому, а затем с помощью указателя перетаскиваем концы линии точно на метки соединяемых объектов. Когда конец линии фиксируется на метке, то становится красным.
Мы хотим сделать линии более интересными.
Свойства линий устанавливаются с помощью настроек главного окна:
- Цвет линии — с помощью иконок цвета переднего плана и фона.
- Ширина линии — определяется вертикальными линиями различной ширины.
- Стиль линии (например, пунктирная, штриховая) — по середине внизу.
- Форма концов линии — внизу слева и справа.
Вид линий, которые будут нарисованы, как раз определяются этими настройками. Но всегда можно изменить уже нарисованную линии. Для этого ее следует выделить с помощью указателя, затем открыть диалоговое окно ее свойств (двойной клик или через контекстное меню).
Таким образом, для изменения настроек уже существующих линии выполним следующие действия. Для каждой линии следует вызвать ее окно свойств и изменить ширину линии с 0,1 на 0,2. Сделайте линию, соединяющую «менеджера проектов» с «системным архитектором», пунктирной. Но длина штриха может оказаться слишком большой, чтобы линия выглядела адекватно. Поэтому изменим интервал на 0,5. Конечный результат должен быть примерно таким:
Скажем, «системный архитектор» на самом деле докладывает «исполнительному директору» (через длинную цепочку менеджеров среднего звена, конечно). Мы хотим это отметить, но не предавать большого значения. Поэтому нарисуем тонкую линию:
Эх. Мы хотим, чтобы линия находилась снаружи. Но нам не хватает еще одной точки изгиба на линии. Для ее добавления следует выделить линию, щелкнуть в определенном ее месте правой кнопкой мыши и выбрать Добавить сегмент. После добавления одного двух сегментов, можно расположить линию так, чтобы схема выглядела более приятно:
User login
Интегрированная операционная система предприятия, централизованно управляющая всеми бизнес-процессами компании в режиме реального времени
Операционные системы предприятия, универсальные (организационно-независимые), интегрированные, многоагентные, реального времени, или общо — IEM-системы, — новое поколение корпоративных управляющих систем, приходящих на смену ERP — системам планирования ресурсов.
Операционная система предприятия — кибернетический позвоночник компании, соединяющий разрозненные фрагменты бизнеса в единый, согласованно функционирующий, организм.
Фронт-, мидл-, бэк-офис; все дивизионы и филиалы, где бы они ни находились; клиенты, поставщики и подрядчики; мобильные, десктопные приложения и веб-сайты — все работают в глобальном информационном поле с равно актуальными и достоверными данными централизованного инфоконтейнера dia$par в режиме реального времени.
Одна компания — один диаспар. Сорокалетний кошмар «интеграций» и «синхронизаций» в хаосе вечно конфликтующих «систем» — завершен.
Активный dia$par эмулирует полный (замкнутый) цифровой двойник управляемого предприятия; идеально отражающий реальное предприятие, и уникальный настолько же, насколько уникально оно само.
Ваш диаспар работает именно так, как нужно именно вашему бизнесу — больше не надо выворачивать компанию наизнанку, пытаясь вколотить здравый смысл и современность в доисторический примитив «best practices» ERP.
Интегрированная операционная система предприятия замещает все ранее использовавшиеся монофункциональные системы (ERP, CRM, WMS, MES, PLM…) — одновременно, и все сразу.
В рамках dia$par реализуется любой потребный бизнес-функционал, при этом скорость прикладной разработки в 10 и более раз превосходит системы ERP-парадигмы. Continuous delivery — органическая методология доставки изменений в dia$par.
Универсальность IEM-модели (узел цепочек создания стоимости) гарантирует кибернетически-оптимальное управление произвольной организацией: dia$par равно эффективно управляет компаниями любой отрасли, масштаба и сложности операций.
От управления взаиморасчетами с контрагентами до задач сотрудников; от веб-сайтов до торгового складского оборудования, конвейеров, и станков с ЧПУ; закупки, продажи, услуги, мультимодальная логистика, проектный бизнес и строительство, розница, дистрибьюция, e-commerce b2b и b2c, производство дискретное и непрерывное, гарантийный сервис, офисы, магазины, склады, заводы, ремонтные цеха… Как бы масштабен, сложен и географически разнесен ваш бизнес бы ни был — цифровой двойник dia$par отразит его полностью, и в мельчайших деталях (включая, при необходимости, параллельную трансляцию интерфейсов на разных языках).
Тотальный синхронизатор: dia$par организует множество разрозненно исполняемых бизнес-процессов компании в единую в масштабе всего предприятия сеть виртуальных конвейеров, и далее автономно управляет ей — без вмешательства менеджмента.
Синхронность, прозрачность и взаимная согласованность исполнения сложных бизнес-операций, характерные для классического сборочного конвейера в материальном производстве, — dia$par обеспечивает компаниям любого типа, сферы и отрасли. Удобная, простая и надежная организация удаленной работы для всех категорий сотрудников, вплоть до полностью виртуального офиса — естественное следствие.
Автономная управляющая система — автопилот для бизнеса. Роевой Интеллект dia$par автоматически исполняет формализованные бизнес-операции любого уровня сложности — без вмешательства людей.
Центр управления Internet of Things: dia$par централизованно управляет любым цифровым оборудованием — от офисных принтеров и веб-сайтов до складских штабелеров, конвейерных линий и (будущих) беспилотных грузовиков.
Неограниченная адаптивность dia$par — мгновенная управляемость бизнеса любого масштаба. Изменения, в обычной компании требующие недель, месяцев или никогда, многоразовых собраний, убеждений, бюрократических переписок, преодоления саботажа на каждом этаже корпоративной иерархии, с dia$par занимают часы-дни, и заключаются в перенастройке параметров цифрового двойника.
Централизованный инфоконтейнер dia$par транслирует готовые для немедленной обработки Big Data исходные данные в режиме реального времени.
Рекордная производительность процессинга высокоуровневых бизнес-транзакций позволяет dia$par обеспечивать транзакционные потребности самых крупных компаний планеты в режиме мягкого реального времени.
Omni channel, выдающаяся устойчивость системы и безопасность данных, 100% соответствие GDPR, реальная роботизация на всех участках бизнес-процессов, agile… — все это вы получаете «из коробки».
И — минимум в десять раз быстрее и дешевле, в сравнении с монофункциональными системами ERP-парадигмы.
Доказанные операционные преимущества dia$par, продемонстрированные в реальной бизнес-практике эксплуатантов, являются системным следствием фундаментального технологического превосходства инновационной концепции ОС предприятия — парадигмы Intelligent Enterprise Managing (IEM) System.
Скопировать столбцы из одной таблицы в другую
Как в Dia скопировать столбцы из одной таблицы в другую? Неужели никак? Вот эта функция в Erwin. Наиболее близкое вот, скопировать таблицу целиком, а потом удалить лишнее, добавить недостающее.
Или может кто знает другую программу для Linux, где это можно.
[Решено] Цвет фона всплывающей подсказки
Ubuntu 18.04, KDE, dia 0.97+git
Если навести мышку на любую кнопку и подержать, показывается всплывающая подсказка. Во всех программах фон у нее черный, а шрифт белый. А в Dia шрифт белый, а фон очень светло серый, почти белый. Как сделать его черным либо синим?
Границы цикла в LibreOffice Impress, LibreOffice Draw, Dia
Доброго времени суток.
В ГОСТ 19.701-90 (ИСО 5807-85) Единая система программной документации (ЕСПД). Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения
есть символы для границ цикла
3.2.2.6. Граница цикла
Символ, состоящий из двух частей, отображает начало и конец цикла. Обе части символа имеют один и тот же идентификатор. Условия для инициализации, приращения, завершения и т.д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие.
В LibreOffice Impress, LibreOffice Draw, Dia этого символа нет.
Да, кстати, в LibreOffice Impress я не могу стрелку поместить в маркер символа. Когда символ двигается, то стрелка висит отдельно. Что делать?
Да, кстати, в Dia я не могу русский текст вставить в символ, только набрать. Что делать?
Кстати, этот символ есть в Microsoft Office Word и Microsoft Office Excel.
Экспортировать из Dia в SQL
Как из файла со схемой базы данных .diа сделать запросы для создания соответствующих таблиц? Нагуглил это, но непонятно как собрать.
Подскажите как в dia запилить сложную схему
Нужно сделать сложную схему подключения модулей. Хочу сделать принципиальную схему в dia (для начала).
Подскажите пожалуйста как сделать прямоугольник (для простого обозначения модуля) с множеством соединительных точек? Например, сверху прямоугольника 2 соединительных точки, расположенных пропорционально по длине стороны, слева 8 соединительных точек, расположенных пропорционально по длине стороны, ну и так далее.
Нашел пока только вариант вручную изменять соединительные линии, но при перемещении блока, естественно линии не перемещаются.
Если есть какие-то другие программы для сложных схем, то подскажите какие.
Debian 4.9.168-1+deb9u2 x86_64
сделать диаграмму структуры базы из дампа или данных (mysql)
Хочу визуализировать данные которые есть в mysql.
На выходе нужны стандартная диаграмма структуры базы и связей таблиц.
Могу сделать дамп, могу натравить «что-то» на саму базу.
Вопрос, чем можно это использовать?
Приложение для рисования диаграмм
Посоветуйте приложение для рисования диаграмм в онтопике. Хочется нарисовать несколько блоков и стрелками указать связи между ними. Смотрел Dia — все нравится, но хотелось бы иметь возможность прикрепить надпись к стрелке. Может быть можно в Dia сделать так? Или есть что-то более интересное?
векторная рисовалка для 3d-моделей
господа, а кто чем пользуется, чтобы нарисовать проекцию 3д-модели на плоскость (с подписями, размерами и прочими прелестями жизни)?
Вот есть, например, Tikz, но с 3d он почти не дружит (т.е. нарисовать-то проекции линий он сможет, а отсортировать плоскости по глубине — нет).
Слышал что-то про Asymptote, но мне на первый взгляд кажется чем-то огромным и неудобным.
Есть заброшенный (судя по всему) sketch4latex, с более-менее простым и понятным языком, но глючный. К примеру, у него сносит крышу при попытке найти нормаль к невыпуклому полигону, отчего при отрисовке начинаются жуткие артефакты.
Всякие xfig, dia, inkscape — ну круто, конечно, однако хотелось бы именно трехмерности (и не заниматься проецированием вручную).
Генерация схемы БД MySQL
Всем доброго времени суток. Имеется БД на MySQL. Хотелось бы иметь её визуальную схему для дальнейшего расширения. Но вот как её перегнать в программу, к примеру DIA (понравилась по всем параметрам), ломаю голову уже который день. PMA не предлагать. С mysql-workbench не разобрался.
ТЗ в нескольких словах: с помощью дампа БД построить схему её таблиц. С помощью оффлайн приложения.
Спасибо всем откликнувшимся, которые не закидают камнями.
Эпических обломов тред
Только что со мной произошел инцидент, который можно сравнить с падением в открытый люк, появившийся из ниоткуда прямо перед шагом от обретения чего-то прекрасного — именно так я себя сейчас чувствую.
Ну, значит, просыпаюсь я среди ночи, чтобы отлить, и вдруг мне в голову приходит гениальное решение задачи, которая мучает меня на протяжении последней недели. Муза спустилась с небес! Мчусь к компу, чтобы сформулировать мысль в виде UML диаграммы (задача из сферы проектирования). Напроектировал целый табун классов, и тут, внезапно Dia исчезает! . (см. первый абзац поста)
Полез я в журнал, а там:
Сегфолт произошел после добавления очередного атрибута, коих я до этого добавил около сотни (размазанных по разным классам). Т.е. повторить такое специально, скорее всего, не получится, поэтому и багрепорт писать не о чем.
UPD: пока писал пост, наткнулся на файл в домашней директории — Диаграмма1.dia.autosave. Найти бы и расцеловать того, кто до этого додумался! Только странно, что сохраняется в
А в чем ты рисуешь flowchart, $username?
Попробовал в dia нарисовать алгоритм в виде flowchart — всё бы ничего но вот невозможность выделять и копипастить текст между dia и другими программами — это ставит в тупик. Неужели все работают в режиме UML?
dia — как задать размер листа?
Subj, в диалоге настойка страницы можно выбрать только готовые пресеты «А4, А5, Letter, etc». А как свой размер задать?
В чём рисовать блоксхемы?
Нужен примитивный редактор, который бы:
- сам прокладывал линии между блоками после их перемещения
- имел набор базовых блоков (прямоугольники, ромбы и тд.)
- формат хранения svg, ну или что-то подобное
- написан на qt (gtk), никакого веба и облаков
- выполнял только одну функцию — рисование блоксхем
- супер легкий и производительный
Из того что опробовано:
- draw.io — самое адекватное и удобное из всего что пробовал. Но вебня + тормозит. Сохранение/открытие файлов через пень-колоду.
- dia — маргинальное убожество. 100500 функций и все для инопланетян. Сильно забагованная.
- inkscape — вроде всем хорош, но используется не по прямому назначению, и из-за этого не совсем удобен. Слоупок.
- graphviz — экстермально, пусть и unix-way. Хотелось бы более user-friendly + GUI.
- LO/OO/calligra — комбайны
Ъ по GTK2, как починить эту ерунду? Ака dia + GTK тема.
Соб-но, по мотивам предыдущей темы, поставил я dia2 для рисования UML схемок и всем торт, да вот мои перфекционический пукан подрывает одна маааленькая хрень. Вот эта:
http://storage3.static.itmages.com/i/15/1015/h_1444919294_5752956_5781b788ac.png
Есть идеи у лоровцев, куда копать?
Перемещено mono из talks
Онлайн редактор схем/формочек/ui для интрасети
hi all!
нид ёр хелп
не уверен, что в Генерал, но толксы мало кто читает, имхо
есть хотелка — дизайнер формочек/ui/схемок в онйлайне и в рамках внутресети.
т.е. что-то вроде https://moqups.com/ или http://www.gliffy.com/
в гугле я не зобанен, но чот ничего похожего не находится
сплошные дизайнеры uml
так вот, может кто-то что-то подобное поднимал?
уже начали смотреть в сторону виртуалки с иксами и dia внутри и фишкой gtk3 в html5 в браузере(ну или как-то так. недавно новость была)
dia. Как прикрепить панель иснтрументов.
тоесть как прикрепить панель инструментов к главному окну?
Рисование в линуксах для презентации
Мне нужно изобразить различные манипуляции с массивом и стеком для презентации LaTeX. Картинки могут быть такими и другими (посложнее). Стиль презентации строгий и буйство красок мне не требуется, но обязательно очень высокое качество.
Пока мне для этих целей представляется только dia и tikz. Что ещё посоветуете?
Dia segmentation
Добавление новых фигур в Dia
Сложилось так, что мне нужно нарисовать блок-схему в Dia, но части элементов мне не хватило. Пришлось добавлять новые. Делал я это по ману с сайта Dia: http://dia-installer.de/howto/create_shape/index.html.en. Нарисовал заготовку в LibreOffice Draw, экспортировал ее в svg, открыл svg-файл в Dia, экспортировал в shape-файл, добавил его в нужную галерею.
Проблема состоит в том, что в добавленных таким образом фигурах невозможно вводить текст, а мне это критично. Как задать свойства готовящейся картинки так, чтобы ввод текста в ней был возможен?
dia верхний/нижний индекс
Dia 0.97.2. Возможно ли вставить верхний/нижний индекс в тексте? Нужно не много: на эскизе графика обозначить y_1, y_0.
3.4. Background Color
The background color option allows you to change the color of the canvas. By default, the color is white. However, the color can be changed by selecting Diagram -> Properties and then selecting the «Colors» tab. The first color option is Background. You can change the color by selecting the drop-down list box and then using the standard color selection options. See Objects / Colors for more information about selecting colors.

Figure 3.4. Changing Background Color
The gridlines will change their color automatically to stay visible if the background color is changed to black.
Настройки Dia

В рабочей области отображается сетка. Для того, чтобы при создании объекта (например, рисование рамки) выполнялась автоматическая подгонка к узлам сетки, необходимо в меню Вид выбрать пункт Выравнивать по сетке.

Теперь, когда мы рисуем или перемещаем рамку, ее углы автоматически «прилипают» к узлам сетки. И в этом случае расположить объект между линиями сетки будет невозможно.

Внешний вид сетки
В меню Диаграмма выбираем пункт Свойства. В окне есть две закладки:
Сетка: настройка расстояния между линиями. Снять галочку «Динамическая сетка» и ввести интервал по x и y. Чтобы увидеть изменение сетки без закрытия окна, достаточно нажать кнопку [Применить].

Цвет: вторая вкладка позволяет настроить цвет фона в диаграмме Dia, цвет линий сетки и цвет границ страницы.

Настройка страницы
В меню Файл (окно Диаграмма) выберите пункт Настройка страницы. В окне можно выбрать ориентацию страницы и размер бумаги, указать отступы и масштабирование.

Изменение объектов в библиотеках
Мы уже говорили о том, что в программе Dia доступно несколько библиотек с самыми различными типами объектов. Есть возможность и переносить элементы из одной библиотеки в другую. Это очень удобно, если требуется создать свою библиотеку, в которой будут собраны самые необходимые элементы. В меню Файл выберите пункт Категории и объекты. (или нажмите клавишу F9 ).

Здесь мы выбираем библиотеки, между которыми необходимо переместить элементы. Указываем элемент и жмем кнопку [Копировать]. В результате он переносится в другую библиотеку.
При желании можно создать и новую библиотеку, для этого предусмотрена кнопка [Создать].
Кнопки [Вверх] [Вниз] предназначены для изменения позиции элемента в списке. Так, нажатие кнопки [Вверх] перемещает элемент на одну позицию влево (ближе к началу).
После настройки библиотеки необходимо подтвердить изменения кликом на кнопке [Применить].
И напоследок, название любого элемента можно изменить нажатием кнопки [Редактировать].