Руководство

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

Итак, перед нами стол. Первое, на что надо обратить внимание — оси координат и их направление в верхнем левом углу. Именно по этим направлениям меняется координаты X и Y элементов. Стол можно приближать, удалять, перемещать (см. раздел Мышь). На столе отображается сантиметровая сетка (ее можно включать и выключать, см. раздел Клавиатура) и объекты. Объекты состоят из точек и соединяющих их линий. Существуют линии двух типов: прямые и кривые (сплайны). Для последних должны быть заданы промежуточные точки (см. разделы Мышь и Клавиатура).

На панели интерфейса расположен список объектов и поле с именем объекта. Для смены имени выделяем объект, нажимаем на поле для ввода имени и вводим имя с клавиатуры.

Иногда удобно поменять цвета некоторых объектов. Для этого воспользуемся установкой цвета объектов. Выделяем нужные объекты и нажимаем на прямоугольник с цветом. В появившемся окне устанавливаем цвет и сохраняем. Цвет объектов меняется.

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

Существует несколько режимов редактирования элементов:

  • Стрелка
  • Перемещение
  • Вращение
  • Масштабирование
  • Создание точек
  • Создание линий
  • Линейка

Стрелка служит для выделения объектов (см. раздел Мышь), перемещение, вращение и масштабирование служат по назначению.

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

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

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

Режим объектов
Редактирование на самом верхнем уровне. Только в этом режиме можно выделять несколько объектов одновременно. У выделенных объектов отображаются область максимальных границ (темный прямоугольник), замороженные линии, точки. У невыделенных — только основные линии.
 

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

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

Правая кнопка мыши зарезервирована для перемещения стола: нажимаем в любом месте и перемещаем. Колесиком масштабируем стол (изображение на столе).
Все остальные действия мышью производятся левой кнопкой.

В режимах стрелки, перемещения, вращения и масштабирования работает выделение деталей. Выделять можно нажатием на элемент или рамкой (нажимаем и вытягиваем прямоугольник: все, что попадает в его область — выделяется).

Режим стрелки существует непосредственно для выделения деталей. Чтобы выделить несколько деталей за несколько раз, удерживаем клавишу Ctrl. Чтобы сбросить выделение, нажимаем в любое место.

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

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

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

В режиме линий объекта выделяем линии — в нижнем углу экрана отображается суммарная длина всех выделенных линий.

В режиме создания точек нажатием добавляются новые точки. При нажатой клавише Ctrl подводим мышь к одной из линий выбранного объекта — появляется крестик разделителя линии и высвечивается длина линии с обеих сторон. При нажатии левой кнопки, линия разбивается на две и образуется точка, соединяющая их.
Пример: нужно укоротить рукав на 5 см, разделяем две линии на срезах за 50 мм от края, соединяем установленные точки и удаляем лишние линии.

В режиме создания линий при нажатии на точку объекта — начинаем вытягивать линию или заканчиваем на указанной точке. При вытягивании линии нажимаем левой кнопкой в любое место и, не отпуская кнопку, вытягиваем промежуточные точки, затем отпускаем и тянем линию дальше. Отменяем создание линии клавишей ESC (см. раздел Клавиатура)

В режиме линейки нажимаем левой кнопкой в любое место, вытягиваем линию, нажимаем, еще вытягиваем. В нижнем левом углу отображается длина установленных отрезков, исключая последний, привязанный к указателю мыши. Отменяем клавишей ESC (см. раздел Клавиатура)

Клавиатура

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

  • О — режим объектов
  • Л — режим линий
  • Т — режим точек
  • Н — режим создания линий
  • Ч — режим создания точек
  • И — режим линейки


Сочетания клавиш важно использовать в указанном порядке, например Ctrl+'+' будет работать, если '+' нажимаем при нажатом Ctrl.

Важно: в справке программы указаны только основные клавиши и сочетания. Полный список горячих клавиш приведен ниже.

Значения клавиш Ctrl и Shift также см. в разделе Мышь.

Горячие клавиши Режим Значение
G ОЛТНЧИ Включение/выключение сантиметровой сетки
'+' ОЛТНЧИ

Увеличение масштаба стола

'-' ОЛТНЧИ Уменьшение масштаба стола
Home ОЛТНЧИ Установка масштаба и позиции обозревателя в исходное положение
C ОЛТ

Установка центра выделенных деталей

Пример: нужно увеличить или повернуть детали не относительно их общего центра, а относительно определенной точки — наводим указатель мыши в нужное место и устанавливаем центр 

Ctrl+A ОЛТ Выделение всех незамороженных деталей
Ctrl+Z ОЛТ Отмена действия
Ctrl+Y ОЛТ Повтор действия
X/Y ОЛТ Установка смещения мыши только по оси X/Y

Пример: нужно переместить детали строго по горизонтали, нажимаем и удерживаем X и перемещаем

Delete ОЛТ Удаление выделенных деталей

При удалении точек удаляются линии, в которых участвуют точки; при удалении линий удаляются изолированные точки

Ctrl+B Л Разделение выделенных линий по общим точкам пересечения
Ctrl+Delete Л Удаление выделенных линий без удаления изолированных точек
Ctrl+'+' ОЛ В режиме объектов все выделенные объекты присоединяются к первому выделенному

В режиме линий все выделенные линии отделяются в новый объект

R+'+' ЛТ Поворот выделенных деталей по часовой стрелке на 90 градусов вокруг центра
R+'-' ЛТ Поворот выделенных деталей против часовой стрелки на 90 градусов вокруг центра
M+H ЛТ Отражение выделенных деталей по горизонтали относительно центра
M+V ЛТ Отражение выделенных деталей по вертикали относительно центра
V+H ЛТ

Заморозка выделенных деталей

При заморозке линий замораживаются все точки, участвующие в составе выделенных линий

При заморозке точек замораживаются все линии, которым принадлежит данная точка

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

При построении выкроек таким образом отмечаются ключевые места на чертежах

Shift+V+H ЛТ Заморозка выделенных деталей

В режиме линий замораживаются только линии, точки остаются не замороженными

В режиме точек замораживаются только точки, линии остаются не замороженными

V+N ЛТ Разморозка всех замороженных деталей

При разморозке линий, размораживаются замороженные точки в составе этих линий

При разморозке точек, размораживаются только точки

Ctrl+L Т

Быстрое создание линии между двумя выбранными точками

Обязательно должно быть выбрано строго две точки!

Ctrl+W Т

Объединение выбранных точек в одну

Пример: очень важно для того замыкать все точки, чтобы иметь замкнутую фигуру — перемещаем одну точку к другой на минимальное расстояние, выделяем обе точки и совмещаем их в одну
Ctrl+D Т

Извлечение промежуточных точек, деформирующих линию

Ко всем незамороженным линиям

ESC НИ

В режиме создания линий — отмена создаваемой линии

В режиме линейки — при первом нажатии отключается текущий отрезок, при втором — сбрасываются все измерения

H И Установка горизонтального отрезка измерения внутри объекта

Пример: нужно померить выкройку брюк на уровне колена — наводим указатель мыши внутрь одной половинки, нажимаем

H, наводим внутрь другой и тоже нажимаем H — в левом нижнем углу видим длину измерений в миллиметрах
V И Установка вертикального отрезка измерения внутри объекта

Важно обратить внимание на поля X и Y: это координаты текущего центра. Если выделен один объект, это координаты его центра. Если несколько — координаты центра их центров. В режиме линий это координаты центра выделенных линий, в режиме точек — выделенных точек.
Пример использования: нужно подвинуть точку строго на 1 см: выделяем нужные элементы, нажимаем на нужное поле, вводим координату на 10 больше и нажимаем Enter. Все сместится ровно на 10 мм.

Для точных вычислений и расчетов разработан калькулятор. На панели инструментов нажимаем кнопку с изображением калькулятора — появляется окно с кнопками. Теперь при нажатии на поля X и Y значения переносятся в поле калькулятора. Считаем на калькуляторе (прибавляем, вычитаем, умножаем, делим и т.д.) и нажимаем на кнопку "X>" или "Y>" для установки координаты X или Y.

Точки и линии имеют определенную группу — число от 1 до 9. Каждый элемент может принадлежать к любой из этих групп.
По умолчанию у всех стоит группа 1.

На панели интерфейса находятся объекты управления группами. При выделении элементов в поле номера группы высвечивается текущая группа. Если элементы не выделены или у них разные группы, поле остается пустым. Кнопками выбора группы (+, -) выбираем текущую группу. Для установки группы нажимаем "установить". В любой момент редактирования выбираем нужную группу и нажимаем "выбрать" — все элементы группы выделяются. Для того чтобы не сбросилось текущее выделение при нажатии "выбрать" удерживаем Ctrl.
Пример: нужно выделить группу 2 и 3, выбираем сначала 2, потом с нажатой клавишей Ctrl 3.

Аналогично можно размораживать элементы по группам: выбираем группу и нажимаем "разморозить". В режиме точек размораживаются только точки, в режиме линий — линии и точки.

Для того чтобы сделать собственную базу изделий, потребуется база скриптов и, желательно, база размеров. Скрипты пишутся на самом популярном языке программирования в мире C++. Несмотря на это, чтобы писать свои скрипты, не надо быть талантливым программистом, достаточно разобраться в элементарном синтаксисе.
Итак, основные типы, которые потребуются в освоении и написании скриптов:

 

int    целое число
uint    целое беззнаковое число
float число с плавающей точкой
bool логический тип, принимает значения true/false
string строка

 

 

container2 Контейнер, в котором хранятся точки, линии и параметры объектов. Основной объект, в который добавляем всю необходимую информацию во время расчетов и добавляем на сцену.
 
vector2 Двумерный вектор с координатами X и Y

 

 

vector2

Содержит 2 члена float X и float Y.

Пример:

void MAIN()
{
// объявляется вектор с координатами (0, 0)
    vector2 vec0;

// установка координат при инициализации
    vector2 vec1(10.f, 5.f);

// конструктор копирования
// вектору vec2 присвоятся координаты вектора vec1
    vector2 vec2(vec1);

// вектору vec1 присваиваются координаты (7, 8)
    vec1.X = 7.f;
    vec1.Y = 8.f;

// вектору vec1 присваиваются координаты (20, 30)
    vec1.Set(20.f, 30.f);
}


Основные функции объекта типа vector2:

void vector2::Set(float X, float Y)
    устанавливает координаты вектора X и Y

float vector2::GetLength()
    возвращает длину вектора (расстояние от точки (0, 0) до (X, Y))

float vector2::DotProduct(vector2&)
    скалярное произведение векторов

float vector2::GetDistanceFrom(vector2&)
    возвращает расстояние между точками

void vector2::RotateBy(float degrees, vector2 &other)
    поворачивает одну точку вокруг другой
    @degrees: градусы от [0 до 360)
    @other: вектор с координатами точки, вокруг которой вращать

void vector2::Normalize()
    нормализует вектор

float vector2::GetAngleTrig()
    возвращает угол вектора в градусах от [0 до 360)

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

Пример:

void MAIN()
{
    vector2 A, B;
    vector2 vec;

... // здесь производятся ваши вычисления 

    vec = B – A; // вычитание векторов
    vec.Normalize(); // нормализация вектора
    vec *= 10.f; // умножение вектора на число

...
}

 vertex2 и line2

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

Пример:

container2 v;

void MAIN()
{
...

// правильно:
    v.LineDivByLen(v.Line("A", "B"), "C", 10.f);

// неправильно:
    line2 line = v.Line("A", "B");
    v.LineDivByLen(line, "C", 10.f);
}

 container2

Для добавления точек в контейнер используется оператор ["имя_точки"], который возвращает ссылку на вектор с координатами точки. Если точки с указанным именем нет в контейнере, она добавляется, если точка уже есть, возвращается имеющаяся.

Пример:

container2 v; // объявлен глобальный контейнер v

void MAIN()
{
    v["A"]; // добавлена точка A с координатами (0, 0)
    v["A"].X = 10.f; // координате X точки A присваивается значение 10

    v["B"].Set(5.f, 5.f); // добавлена точка B с координатами (5, 5)
}

 Основные функции объекта типа container2:

int container2::TakeMeasures()
    вызывает окно с вводом мерок пользователем

float container2::Measure(string& code)
    возвращает значение размерного признака в текущей метрической системе
    @code: код мерки

float container2::Inc(string&)
    возвращает значение прибавки в текущей метрической системе
    @code: код мерки

float container2::MeasureMM(string& code)
    возвращает значение размерного признака в миллиметрах
    @code: код мерки

float container2::IncMM(string &code)
    возвращает значение прибавки в миллиметрах
    @code: код мерки

void container2::Shape(string&)
    устанавливает имя объекта, в который будут добавляться линии

line2& container2::Line(string &A, string &B)
    добавляет линию в установленный объект от точки A к точке B
    если точки A или B не существует, линия не будет добавлена

line2& container2::Line(string &A, string &B, string &object)
    добавляет линию в объект object от точки A к точке B
    если точки A или B не существует, линия не будет добавлена

bool container2::LineDivByLen(line2 &line, string &vertex, float len)
    разделяет линию точкой по указанной длине
    если длина больше длины линии, линия не разделится
    возвращает true/false — удалось или нет
    @vertex: имя новой точки

bool container2::LineDiv (line2 &line, string &vertex, float delta)
    разделяет линию точкой по указанной точке на линии от 0 до 1
    если длина больше длины линии, линия не разделится
    возвращает true/false — удалось или нет
    @vertex: имя новой точки
    @delta: параметр от 0 до 1

float container2::LineLength(line2 &line)
    возвращает длину линии

float container2::LineIntersection(line2 &line, vector2 &A, vector2 &B)
    возвращает точку на линии (на прямой или кривой) от 0 до 1

void container2::DeleteAllLines()
    удаляет все линии из контейнера

bool container2::Circle(vector2 &pos, float R, string &A, string &B, string &C, string &D)
    создает окружность из четырех кривых с центром в точке pos
    возвращает true/false — удалось или нет
    @R: радиус окружности
    @A: имя первой точки окружности
    @B: имя второй точки окружности
    @C: имя третьей точки окружности
    @D: имя четвертой точки окружности

Основные глобальные функции

void SceneAddFromScContainer(container2 &v)
    добавляет содержимое контейнера на сцену
    в режиме редактирования кода вместо этого выводит дополнительное окно

void Container2Save(container2 &v)
    запись в глобальный контейнер сцены

void Container2Load(container2 &v)
    загрузка из глобального контейнера сцены

void Container2Free()
    очистка глобального контейнера сцены

bool ScriptRunFromBase(string &script)
    выполнение скрипта из текущей базы
    @script: имя скрипта