30 декабря 2012 г.

HTTraQt запущен ещё и на OS/2 o_O

Народ тут подключился и запустил программу на OS/2.

Уж не знаю даже, крутилось на виртуалке, или "вживую" делали.

Пришлось из-за плохой поддержки GCC 4.4 выкинуть инициализацию векторов в стиле c++0x, переписать несколько коряво ради совместимости со старыми компайлерами.

И потом запустилось.


Через интернет помогал немного сконфигурировать проект "вслепую". Но получилось, через пару-тройку сообщений по электронке

5 декабря 2012 г.

Завершаю тестирование HTTraQt

Программа HTTraQt является графической оболочкой для библиотеки httrack. Фактически, это клон программы WinHTTrack, но написанной с использованием библиотеки Qt4.

Адрес проекта http://sourceforge.net/projects/httraqt/?source=navbar


Сейчас доделываю некоторые мелочи, типа документации, занимаюсь поиском ошибок, в случае некорректных вводов пользователя и прочих "радостей" жизни.


Виджет для визуализации структуры каталогов был переделан в список  проектов только рабочего директория.
Переключать язык программы можно без рестарта.


Окно с установками немного переработано из табуляторного в кнопочный интерфейс переключений страниц.


Файл конфигурации cmake пока сделан только для Linux платформ, в дальнейшем будет дополнен и для компиляции на Windows.

В каталог исходников включены пропатченные исходники библиотеки httrack - было найдено немного ошибок, которые и исправил. Если не найду новые ошибки, то сообщу автору httrack.

Так что вскоре будет доделана домашняя страничка http://httraqt.sourceforge.net/
и будет добавлен в каталог http://qt-apps.org/

В проект также интегрированы скрипты для форматирования исходников, тестирования cppcheck

Для сборки из исходников небходимо установить из репозитория библиотеку httrack-dev, либо загрузить исходники для Linux с этой странички http://www.httrack.com/page/2/en/index.html
./configure
make 
и правами суперпользователя
make install

22 октября 2012 г.

деактивируем akonadi на KDE 4

деативировать нужно в том случае, если в системе вы не пользуетесь базой данных для PIM приложений, точнее - их настройки.
немного подробнее здесь можно узнать об этом ферймворке в википедии http://ru.wikipedia.org/wiki/Akonadi

в принципе, этот фреймворк можно выключить по двум причинам: если он начнет глючить из-за некорректного выключения копьютера - база данных может быть повреждена. Вторая причина - занимает память, что бывает критично на старых компьютерах с небольшим объёмом рабочей памяти.

каких-то способов выключить akonadi через окно установок KDE (systemsettings) нет, там можно вырубить только nepomuk (индексация метаданных) и всё.

Во многих руководствах можно встретить описнаие того, как выключить для определенного пользователя, в файле

~/.config/akonadi/akonadiserverrc

нужно заменить строчку
StartServer=true
на
StartServer=false

могут быть ситуации, если сервер работает на базе SQLITE3, тогда вы не найдете настройку  StartServer

14 августа 2012 г.

Автоматическое распознавание количества CPU в скрипте

Вот, использовал в скриптике

#!/bin/sh

COUNT=$(cat /proc/cpuinfo | grep 'model name' | sed -e 's/.*: //' | wc -l)
echo "number of detected CPUs =" $COUNT

cppcheck -j $COUNT --force --inline-suppr . 2>errors.txt

30 мая 2012 г.

получение списка внешних зависимостей для бинарника

Когда программист хочет создать установочный файл для Debian базированных систем, необходимо указывать список внешних зависимостей (необходимых пакетов для полноценного запуска бинарного файла).

команда для определения списка:

dpkg -l $( dpkg -S $( ldd YourBinaryOrLib | awk '{print $3}' ) | awk '{{sub(":"," ")} print $1}' )
где:  YourBinaryOrLib - ваш бинарный файл, для которого вы собираетесь создать установочный .deb пакет

вызов состоит из трёх частей:

ldd YourBinaryOrLib | awk '{print $3}'
выдаёт список внешних библиотек с полным именем пути (третья колонка).

dpkg -S $( ldd YourBinaryOrLib | awk '{print $3}' )
ищет название пакетов, к которым принадлежат библиотеки.
Далее результат отправляется потоком на
awk '{{sub(":"," ")} print $1}'
который распечатывает первую колонку, заменяя в ней знак ":" из строки на пробел.

Общий результат обрабатывается

dpkg -l
который показывает информацию о версии нужных нам пакетов.


автор: Карбофос

6 мая 2012 г.

статический анализ кода на c/c++

используем утилиту cppcheck:

cppcheck -j 2 --enable=style --force --inline-suppr . 2>errors.txt

по мотивам описания Using Cppcheck To Produce Better Code

4 мая 2012 г.

Xorg 1.12 снова поплыл

по крайней мере, на моей 64 битной системе нереальные утечки памяти в версии 1.12:

 1973 root      20   0 8179m 2,6g  20m S   6,3 66,6  18:14.71 Xorg

Т.к. это версия экспериментальная, то и устанавливать ее нужно для тестирования. Нужно знать, что залатают всё в версии 1.13. Так что если нет опыта работы, или боитесь, что система поплывёт в своп, тогда не следует и актуализировать Xorg

11 апреля 2012 г.

Делаем видеоуроки на Linux

Некоторое время назад для популяризации свободного софта (к примеру GIMP) возникла задача сделать наглядный видеоурок, в котором не только был бы показан процесс кликабельности софта, но и еще доступно пояснять, что же делается и почему.
При этом необходимо учитывать, что видеоурок (видеотуториал) должен быть расчитан также на людей со слабым зрением и плохослышащих. То есть, видео должно быть оснащено не только звуком, но и титрами, желательно крупными.

Чем записывать видео?

Во многих дистрибутивах Linux есть возможность установить из репозитория различные программы. Для захвата изображения компьютера нужен специальный софт, именуется сей процесс скринкастом (screencast). В дистрибутиве, который использую я, есть несколько таких программ: Istanbul, recordMyDesktop, Byzanz, но могут быть и некоторые другие, менее распространённые. Первые два из списка записывают в формате видео Ogg-Theora. Byzanz также может сохранять в формате флеш. Лично я использовал recordMyDesktop с прилагаемой к ней GUI, что упрощает пользование. Но любой пользователь может выбрать для себя более подходящий. В  recordMyDesktop можно выбрать участок захвата, не обязательно всю область экрана.После завершения записи идёт конвертация видео. Это может продолжаться некоторое время, в зависимости от мощности процессора и продолжительности времени самого видео. В зависимости от оборудования можно попытаться делать конвертацию видео "на лету"



Для продолжительного видео необходимо выбрать накопитель для сохранения большого объёма временных файлов.

После того, как файл был записан, можно переконвертировать его в контейнер AVI, для того, чтобы можно было достаточно просто обработать видеоредактором.

Для конвертации нужен один из конверторов: ffmpeg, или mencoder. Пример вызовов программ

ffmpeg -i NesterJ.ogv -vcodec mpeg4 -sameq -acodec libmp3lame NesterJ-ffmpeg.avi

или
mencoder NesterJ.ogv -ovc lavc -oac mp3lame -o NesterJ-mencoder.avi
 ссылка на источник: http://lgallardo.com/en/2009/04/10/convirtiendo-videos-a-avi/

После конвертации можно обрабатывать, но пока не будим спешить, если нам нужны титры (комментарии к видео). Для этого нужно приготовить файл-описатель субтитров. Я использовал программу Subtitle Composer, хотя есть и другие программы, например Subtitle Editor


Это самая трудоёмкая часть работы, т.к. нужно достаточно подробно описать все действия, которые видно на экране. Ещё лучше, если вы будете снабжать видео небольшими советами, чтобы можно было использовать видеоурок как небольшой, но наглядный справочник.


продолжение про звук и процесс видеомонтажа сделаю завтра. :)

Для видеомонтажа использовал программу Avidemux с фронтэндом на Qt

17 марта 2012 г.

Устанавливаем Cannon LBP 3300 на дебиан-базированный дистрибутив (перевод)

Эта статья описывает установку драйверов CAPT из исходников

Детали установки затрагивают принтер LBP3300 на 64-битную Debian-базированную систему

Если возможно, выключите принтер во время всего процесса компиляции и установки во избежание автоматической установки из других источников вашего дистрибутива.

Источник 1: http://ubuntuforums.org/showpost.php?p=6134355&postcount=2
Источник 2: https://help.ubuntu.com/community/HardwareSupportComponentsPrinters/CanonPrinters/Canon_LBP_2900#Compiling%20the%20driver%20%28amd64 %29%20Steps:Use Case

1. Компиляция драйверов из актуальных исходников Cannon
2. Установка собранных драйверов
3. Автозагрузка демона CAPT

Файлы для скачивания

Cannon Linux Printer Driver (CAPT) Source
llibcupsys2.deb  Этот "dummy" пакет решает вопрос зависимостей при установке пакета capt-common

Примечание: Установочные пакеты Deb могут быть установлены любым установщиком вашего дистрибутива: консольные dpkg, apt; фронт-энд synaptic и другие.

Шаг 1 - Установка необходимых пакетов для компиляции драйвера

Установите следующие пакеты перед началом компиляции-сборки (некотороые пакеты могут быть уже установлены на вашей системе, просто продолжите устанавливать другие пакеты из списка)

Последовательность установок пакетов, консоль. не забудьте про права суперюзера (root), или sudo. Если sudo настроен


sudo apt-get install build-essential
sudo apt-get install libstdc++6-4.4-dev 
sudo apt-get install debhelper 
sudo apt-get install libtool 
sudo apt-get install libglade2-dev
sudo apt-get install autoconf 
sudo apt-get install libglib2.0-dev 
sudo apt-get install libgtk2.0-dev
sudo apt-get install libltdl-dev 
sudo apt-get install libgpg-error-dev 
sudo apt-get install libcups2-dev 
sudo apt-get install libxml2-dev


Шаг 2 – Распаковать файлы с исходниками

tar xfz CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN.tar.gz
cd CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/Src/
tar xfz cndrvcups-common-1.90-1.tar.gz
tar xfz cndrvcups-capt-1.90-1.tar.gz


либо распаковать фронт-энд-программой, например Ark

Шаг 3 – Компиляция cndrvcups-common-1.90-1

cd cndrvcups-common-1.90
gedit ./debian/control


Измените текст “Architecture: i386” на “Architecture: amd64” сохраните исправленный файл и выйдите из редактора. Затем вызовите команду

dpkg-buildpackage

Пакет cndrvcups-common_1.90-1_amd64.deb будет собран и сохранён в директории CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/Src

Шаг 4 – Установка cndrvcups-common_1.90-1_amd64.deb

Этот установочный пакет должен быть установлен в первую очередь, до компиляции исходников cndrvcups-capt, т.к. последний зависим от установленной библиотеки cndrvcups-common

cd ..
sudo dpkg -i cndrvcups-common_1.90-1_amd64.deb



Шаг 5 – Компиляция и установка cndrvcups-capt-1.90-1

cd cndrvcups-capt-1.90
gedit ./debian/control


Измените “Architecture: i386” на “Architecture: amd64” сохраните файл и покиньте редактор

gedit ./debian/rules

Отреактивируйте строчку с опцией dh_shlibdeps, вставив в начале строки символ “# (комментарий), будет выглядеть так: 

# dh_shlibdeps

Сохрание файл и покиньте редактор

dpkg-buildpackage

Пакет cndrvcups-capt_1.90-1_amd64.deb будет создан и сохранен в директории CAPT_Printer_Driver_for_Linux_Src_V190_uk_EN/Src

sudo dpkg -i cndrvcups-capt_1.90-1_amd64.deb

После этой команды драйвер принтера будет установлен и готов к конфигурации.

Шаг 6 – Редактирование старт-скрипта для автостарта CAPT демона

Скрипт был изменён следующим обарзом для улучшения.

#!/bin/sh
# startup script for Canon Printer Daemon for CUPS (ccpd)
# Modified for Debian GNU/Linux

DAEMON=/usr/sbin/ccpd
LOCKFILE=/var/lock/subsys/ccpd
NAME=ccpd
DESC="Canon Printer Daemon for CUPS"

test -f $DAEMON || exit 0

. /lib/lsb/init-functions

export PATH=$PATH:/usr/local/sbin:/usr/local/bin

ccpd_start ()
{
log_begin_msg "Starting $DESC: $NAME"
start-stop-daemon --start --quiet --oknodo --exec ${DAEMON}
log_end_msg $?
}

ccpd_stop ()
{
log_begin_msg "Stopping $DESC: $NAME"
start-stop-daemon --stop --quiet --oknodo --signal 15 --exec ${DAEMON}
log_end_msg $?
}

case $1 in

start)
ccpd_start
;;

stop)
ccpd_stop
;;

status)
echo "$DESC: $NAME:" `pidof $NAME`
;;

restart)
log_begin_msg "Restarting $DESC: $NAME"
ccpd_stop
sleep 2
ccpd_start
log_end_msg $?
;;

*)
echo "Usage: ccpd {start|stop|restart|status}"
exit 1
;;
esac

exit 0


Заменяем старое содержимое скрипта на новое

cd /etc/init.d
sudo cp ccpd ccpd-old
sudo gedit ccpd


Замените всё содержимое на данный сверху текст

Шаг 7 – Установка принтера в CUPS

sudo /etc/init.d/cups restart
sudo /usr/sbin/lpadmin -p LBP3300 -P /usr/share/cups/model/CNCUPSLBP3300CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E


Это действие добавит принтер LBP3300 в список

Шаг 8 – Установка принтера для CAPT

sudo /usr/sbin/ccpdadmin -p LBP3300 -o /dev/usb/lp0


Эта команда добавит принтер LBP3300 к CAPT минитор-программе (демон)


Шаг 9 – Добавляем CAPT в список автостарта демонов системы

sudo update-rc.d ccpd defaults 50


Ремарка*
Мы используем "50" для того, чтобы запустить ccpd одним из последних.

Шаг 10 – Завершение

Сейчас мы произвели все настройки, пришло время для включения принтера. Как только принтер будет включен, система запустит новый драйвер для нашего принтера и сделает его принтером по умолчанию.

Теперь наш последний шаг к изменению принтера по умолчанию и отключению автоматической установки принтера (Примечание: не удалять принтер - может автоматически устанавиться системой, поэтому его лучше отключить его или оставить его как есть)

Шаги, для изменения принтера по умолчанию

Выбирать
System-> Администратор-> PrintingThis выведет список всех установленных принтеров, щелкните правой кнопкой мыши принтер LBP3300 и установите по умолчанию.

Щелкните правой кнопкой мыши на автоматически установленный принтер (LBP3300-2) и снимите флажок Включено.

Сейчас мы завершаем, перезагрузив систему.



слямзил здесь, перевод текста - мой

p.s. на данный момент самая актуальная версия программы от Cannon версии 2.4 можно найти здесь  CAPT Printer Driver for Linux Version 2.40

14 марта 2012 г.

Сказ о том, как я к лобзику электромотор приделывал

Загорелся я как-то мыслей, ускорить процесс выпиливания красоты лобзиком. В обычных механизмах электролобзиков, продаваемых на рынке, есть некоторые недостатки. Самый главный из них - нет возможности достаточно быстро продевать пилку для обработки внутренних отверстий.



пример одного из таких электролобзиков

В таких лобзиках используются специальные пилки для шатающихся головок механизма. Стоимость их несколько выше, чем у обычных полотен, для них нужно делать бОльшее отверстие, чтобы продеть, или использовать хитрости. Всё из-за того, что в них есть специальные небольшие упоры для быстрой установки, если полотны нужно сменить.

Но даже при смене полотна, или для того, чтобы его продеть сквозь отверстие, нужно применить несколько усилий, в том числе и для фиксации полотна лобзика с деталью, в которую продета эта самая пилка. может быть эта проблема каким-то образом лучше решена в моделях лобзиков, по цене за 500 еврозелени и выше, но в магазинах я уже таких не видел. Да и вообще, у меня выпиливание лобзиком является увлечением сугубо домашним, поэтому как-бы для хобби это уже дороговато. Скоро сказка сказывается... И скоро дело делается. 
Решил я всё-таки сделать лобзик с электроприводом на основе обычного лобзика. Благо, механизм быстрой смены пилок для обычного лобзика я уже придумал и активно использую.


На этой фотке видно основную идею: зафиксировать лобзик, сделав что-то подобное поршню. Лобзик должен свободно перемещаться вертикально на закрытых шарикоподшипниках. Это было первой попыткой, после этого я немного переработал устройство, добавив по два подшипника с каждого бока. Они должны располагаться строго на одной вертикали, т.к. будут перемещаться в закрепленных для этого на бортиках "полозьях"


В качестве "полозьев" можно использовать, к примеру, распиленные детали от выдвижных ящиков элементов мебели. Не забывайте, что ширина подшипника должна быть чуть меньше ширины напрвляющих, чтобы обеспечить свободный ход по вертикали.

 На этой фотографии видно "полозья", они уже подогнаны и укреплены. на внутренние стороны бортиков.

 Боковины, верхнюю и нижнюю части лобзика я делал из ДСП толщиной 8 мм. Не используйте клееные доски - они могут от тряски развалиться по местам склейки.

Здесь видно, какой мотор я использовал. Это электроножовка, почти в целом корпусе, отрезал разве что, лишнее. 

Вот такая, самая простая, даже еще проще - с фиксированной частотой оборотов, 3100 об/мин. Отрезаем ручку и нижнюю половину нижней части для выхлопа к пылесосу. Т.к. мотор прикрепляется точно в таком же положении, как он изображен, необходимо развернуть на 180 градусов стержень, к которому раньше прикреплялось полотно ножовки. Механизм крепления нужен для того, чтобы к нему прикрутить наш "поршень" с лобзиком.

Этот болт удерживает язычек, который и прикручивается к фиксатору ножовки. Ручку лобзика нужно удалить, т.к. будет только мешать.

В моем случае мне пришлось купить тиристорный регулятор оборотов мотора, т.к. 3100 оборотов в минуту - уж сильно много. Да и хотелось бы обойтись без редукторов. частоту можно настроить в пределах 300-400 оборотов в минуту. Настраивается переменным резистором. После всего нужно герметично закрыть мотор, чтобы в него не попадала пыль.

Когда перебираете механизм ножовки, будьте особенно аккуратными, собирайте так, чтобы не оставались лишние детали, детали должны быть также прикреплены также как и было раньше, меняется только положение стержня! Будьте осторожны при работе с электричеством. Я несу ответсвенность только за свой электростанок, собранный своими руками, а не за чужие ошибки. ;)

24.03.2012. небольшое доплнение фоток

 внутреннее устройство

крепление

 испытания

запрещено копировать для коммерческого использования.

27 февраля 2012 г.

Потихоньку собираю детали для ПК "Специалист - Экспресс"

На старой плате "Корвет" позаимствовал К580ВМ80А и К565РУ5Г. Может быть это и акт вандализма, но второй Корвет у меня-то остался. :)
С другими деталями возникают некоторые трудности, т.к. напаять все к сожалению невозможно. Нашел страничку аналогов микросхем

Вот что нашел:

INTEL 3212     К589ИР12   МНОГОРЕЖИМНЫЙ БУФЕРНЫЙ РЕГИСТР
INTEL 3216     К589АП16   ЧЕТЫРЕ ДВУНАПР.ПЕРЕД.ТРИ СОСТ.
INTEL 8080     K580ИК80   МИКРОПРОЦЕССОР
INTEL 8255     K580ИК55   ПРОГР.ИНТЕРФЕЙС ПЕРИФЕР.УСТРОЙСТВ

SN7474         K155ТМ2    ДВА  D-ТРИГГЕРА
SN7495А        К155ИР1    4-Х РАЗРЯД. СДВИГОВЫЙ РЕГИСТР
SN7404         К155ЛН1    ШЕСТЬ ИНВЕРТОРОВ
SN74193        К155ИЕ7    ДВОИЧН. 4-Х РАЗРЯД. РЕВЕРС. СЧЕТЧИК
SN7493         K155ИЕ5    ДВОИЧНЫЙ СЧЕТЧИК
SN7402         К155ЛЕ1    ЧЕТЫРЕ "2ИЛИ-НЕ"
SN74ОО         К155ЛА3    ЧЕТЫРЕ "2И-НЕ"
SN7430         K155ЛА2    ОДНА "8И-НЕ"
SN7410         К155ЛА4    ТРИ "3И-НЕ"
SN74О1         К155ЛА8    ЧЕТЫРЕ "2И-НЕ"
SN7408         К155ЛИ1    ЧЕТЫРЕ "2И"
SN74155        K155ИД4    ДВОЙНОЙ ДЕШИФ."2ВХ/4ВЫХ","3ВХ/8ВЫХ" (И)
SN74153        К155КП2    ДВОЙНОЙ МУЛЬТИПЛЕКСОР "4ВХ/1ВЫХ" (И)
SN74365        К155ЛП10   ШЕСТЬ (BUS) ПЕРЕДАТЧИКОВ

Некоторые аналоги микрух можно найти здесь: К155ЛА3

23 февраля 2012 г.

Дела давно минувших дней, или часы-конструктор на К145ИК1901

Было дело. :) Контсруктор назывался "СТАРТ 7231 ЧАСЫ-БУДИЛЬНИК ЭЛЕКТРОННЫЕ".

Самый первый конструктор, который купил мне папа.






и внешний вид, коробка, процесс сборки:







фотки найдены на просторах интернета здесь и здесь

22 февраля 2012 г.

Симметрия в рисунках: обработка редактором GIMP

К предыдущей теме про обработку симметричных рисунков для выпиливания лобзиком.
Вполне вероятно, что у новичков будут возникать вопросы также по этому пункту. Разберёмся на примере.



У меня есть половина рисунка, который я обработал. из него нужно сделать полное изображение. Можно заметить даже невооруженным глазом, что рисунок не расположен строго вертикально. При обработке, видимо, его сдвинули. Сделаем так, чтобы левая часть рисунка располагалась строго вертикально. Подбирал угол вручную, проверял или сеткой, либо выделением прямоугольной области.

увеличение


Вращаем

После того, как линия получилась строго вертикальной, затем выделить (для выбора режима - кликнуть пунктирный праямоугольник) нужный участок, левая сторона которого должна проходить по оси симментрии,  копировать рисунок в буфер обмена. И сразу же создать новое изображение из обменника.

Следующий пункт: увеличить размер слоя вдвое, не забудьте разорвать "цепь", чтобы не произошло увеличение по двум осям координат.


После этого подгоняем размер изображения к размеру слоя.
Делаем снова копию в этот же рисунок из буфера обмена. Получаем что-то вроде такого изображения, в котором есть основной слой и "свежий", только что скопированный.

два слоя. нижний и верхний

После операции копирования верхний слой "активный", его сразу можно трансформировать как слой горизонтально.


Слой всё еще остается активным, его можно перетащить. Более аккуратно - клавишами курсора, для того чтобы сделать процесс быстрее - нажмите "Shift" и клавишу курсора. Затем - более точно подгоняем по пунктам.


Теперь можно сохранить рисунок в файл.



результат

Не забывайте, что если программа GIMP для вас нова, то всего лишь нужны навыки и терпение - из-за того, что нет опыта работы с ней. :)

21 февраля 2012 г.

Процесс восстановления рисунка для выпиливания с фотографии. часть 2.

В первой части я рассматривал достаточно простое восстановление рисунка, используя кальку, карандаш и сканер.

В этот раз можно попытаться обойтись и без ручной работы вовсе, без выше перечисленных предметов, кроме компьютера и графического редактора GIMP.

Задание: восстановить рисунок с фотографии пенала для карандашей.
Фотография достаточно плохого качества, вот оригинал:

фотография пенала

Первое, что необходимо сделать - вытянуть искажения рисунка, т.к. сделана фотография, судя по всему, обычной мыльницей. Как вытянивается рисунок, было описано в первой части.

Инструмент "Перспектива"

Остановимся на верхней части пенала. Она симметрична, значит можно выполить только половину работы.

окончательный процесс выравнивания "перспективы" рисунка

После того, как подравняли перспективные искажения фотографии, можно его "перевернуть" в редакторе и увеличить (скалировать) рисункок для того, чтобы попытаться увидеть побольше деталей. Опция Размер изображения, увеличить с интерполяцией Sinc (Lanczos 3) помощь здесь

Результат

Затем можно (и даже нужно) работать с половиной рисунка, чтобы качественно восстановить симметричный рисунок.
В редакторе GIMP есть инструмент для обработки контуров помощь здесь

Инструмент "Контуры"

Начинаем работать с контурами. выбираем для начала участок попроще. 
Совет: для замыкания контура необходимо нажать кнопку "Ctrl" перед кликом мышки на завершающую (начальную) точку.


Первый контур


Изгибаем контуры, кликнув и не отпуская линию, тянем ее до примерного расположения, делаем набросок. После этого регулируем угол огиба с помощью вращения векторов (веторы исходят из точек углов). На рисунке хорошо видно.

Все контуры подогнаны к рисунку


Весь рисунок. Точки проставлять только в углах, либо промежуточных точках, но нечасто.


Окончательная доводка

Окно инструментов 

После доводки контура нужно из диалога контура (помощь) вызвать "Контур в выделенную область". Затем можно работать над симметрией рисунка: создать из скопированного в буфер обмена контурного рисунка новое изображение, увеличить его ширину вдвое для зеркального отражения. и добавьте еще одну копию слоя, которую нужно будет преобразовать по горизонтали, симметрия всё же!

Контур без оригинального рисунка.

Готовый рисунок с прозрачностью, которую можно заполнить цветом. Например, светло-серым.

На предпоследнем рисунке видно, что около верхнего цветка была сделана небольшая ошибка, внешний контур не выглядит сильно уж овальным. Но в редакторе можно сделать пару шагов назад и без особых проблем исправить положение дел. Что и продемонстрировано на последнем рисунке. :)