Преобразование объектов

Материал из K3-Macro
(перенаправлено с «Scaleview»)
Макро | Редактирование объектов | Удаление | Перемещение | Поворот | Масштабирование | Зеркальное отражение | Гибка | Проецирование | Помещение объекта в систему координат | Размножение объектов | Редактирование примитива | Редактирование объекта | Обрезка | Разрыв | Редактирование поверхности | Редактирование отрезка | Редактирование дуги | Редактирование сплайна | Редактирование полилинии и плоской области | Создание фаски | Создание скругления | Удаление объектов

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

Перемещение объектов[править | править код]

За перемещение объектов отвечают команды move и moveadjacency.

Команда move имеет несколько режимов работы, которые представлены ниже.


move <Objects> [2points] [Prompt <Prompt>]<Point1> [<Point2>] { nocopy|copy <N> } — устаревший синтаксис

move { nocopy|copy|multicopy <N> } <Objects> [Prompt <Prompt>] [2points] <Point1> [<Point2>]

Команда осуществляет сдвиг объектов <Objects> на величину вектора сдвига <Point1>. Если указан ключи copy или multicopy, команда копирует выбранные объекты один раз (copy) или <N> раз (multicopy), сдвигая их каждый раз на величину вектора <Point1>. Если указан ключ nocopy, команда перемещает объекты <Objects>.

Ключ 2points позволяет указать вектор сдвига при помощи начальной <Point1> и конечной <Point2> точек. Такой способ сдвига является предпочтительным, поскольку позволяет однозначно задать направление вектора сдвига.


move <Objects> [Prompt <Prompt>]multi <Point1>, <Point21>, <Point22>, …, <Point2N> — устаревший синтаксис

move multi <Objects> [Prompt <Prompt>] <Point1>, <Point21>, <Point22>, …, <Point2N>

Команда осуществляет многократное копирование объектов <Objects> на величину вектора сдвига от точки <Point1> последовательно до точек <Point21>, <Point22>, …, <Point2N>


move <Objects> [Prompt <Prompt>] attach <Object> [permit <Pmt>] <Point> done nocopy|copy <N> — устаревший синтаксис

move { nocopy|copy|multicopy <N> } <Objects> [Prompt <Prompt>] attach <Object> [permit <Pmt>] <Point> done

Команда осуществляет сдвиг объектов <Objects> с приставлением (прилипанием) их к объекту <Object> . Ключ permit позволяет задать величину «притяжения» <Pmt> в миллиметрах, при достижении которой (расстояния между объектом и перемещаемыми объектами) осуществляется притяжение. Точка <point> осуществляет позиционирование объектов <Objects> .

Если указан ключи copy или multicopy, команда копирует выбранные объекты один раз (copy) или <N> раз (multicopy), сдвигая их каждый раз на величину вектора <Point1>. Если указан ключ nocopy, команда перемещает объекты <Objects>.

Необязательный ключ Prompt задает подсказку <Prompt>, которая будет появляться в командном окне в приглашении ввести вектор сдвига. Если ключ не задан, то подсказка будет иметь вид "Вектор сдвига:"


moveadjacency <Objects> <Point>

Команда сдвигает связанные линейные объекты <Objects> на величину вектора сдвига <Point>, не разрывая связанности. Связанными объектами считаются объекты, имеющие общую конечную точку.

Команда работает с объектами:

  • видимыми — то есть, не погашенными и находящимися на видимом слое;
  • объектами верхнего уровня — то есть, теми, которые не входят в другие объекты (группы) как составная часть.

Размножение объектов[править | править код]

pmove <Objects> <Object> <Shift>

Команда pmove осуществляет размножение объектов <Objects> по контуру <Object> с шагом сдвига <Shift>.

Поворот объектов[править | править код]

rotate <Objects> [2points] <Point1> [<Point2>] <Angle> nocopy|copy <N> — устаревший синтаксис

rotate { nocopy|copy|multicopy <N> } <Objects> [2points] <Point1> [<Point2>] <Angle>

Команда rotate осуществляет поворот объектов <Objects> на величину угла <Angle>, задаваемого в градусах (положительное направление – против часовой стрелки, если смотреть с конца оси поворота) относительно оси, проходящей через точку <Point1> и направленную «на зрителя» в текущем видовом окне.

Если указан ключи copy или multicopy, команда копирует выбранные объекты один раз (copy) или <N> раз (multicopy), поворачивая их каждый раз на величину угла <Angle>. Если указан ключ nocopy, команда поворачивает объекты <Objects> без копирования.

Ключ 2points позволяет указать ось поворота при помощи начальной <Point1> и конечной <Point2> точек. Такой способ задания оси поворота является предпочтительным, поскольку позволяет однозначно задать направление оси поворота.

Масштабирование объектов[править | править код]

Масштабирование объектов с копированием
Неравномерное масштабирование

За масштабирование объектов отвечают команды scale, scaleview и scalecoeff


scale <Objects> <Point> [vector <PointV>] <Scale> nocopy|copy <N> - устаревший синтаксис

scale { nocopy|copy|multicopy <N> } <Objects> <Point> [vector <PointV>] <Scale>

Команда осуществляет масштабирование объектов <Objects> на коэффициент <Scale> относительно точки <Point>. Если указаны ключ copy или multicopy, команда копирует выбранные объекты один раз (copy) или <N> раз (multicopy), заполняя расстояние от базовой точки до точки <Point>, как показано на рисунке «Масштабирование объектов с копированием» (масштабирование верхнего левого объекта с центром масштабирования в правом нижнем углу рисунка, масштабом 0.5 и копированием 4 раза). Если указан ключ nocopy, команда масштабирует объекты <Objects> без копирования.

Если указан необязательный ключ vector, то система запросит координаты вектора <PointV>, вдоль которого осуществляется масштабирование. Использование этого ключа приводит к неравномерному масштабированию по осям.

На рисунке «Неравномерное масштабирование представлен пример шестиугольника (снизу) и его копия, отмасштабированная по произвольному вектору (сверху)


scaleview <Objects> <Point> <Scalecoeff> <GrfCoeff>

Команда осуществляет масштабирование вида для объектов <Objects> относительно центра масштабирования <Point> с коэффициентом масштабирования <Scalecoeff> и графическим коэффициентом <GrfCoeff>. Использование данной команды удобно в случае необходимости пропорционального увеличения размеров объектов, текста и объектов типа «Размер».


scalecoeff <Objects> absolute|relative <Param>

Команда изменяет масштаб измеряемых расстояний для объектов <Objects> типа «Размер». Ключи absolute, relative позволяют задать абсолютную и относительную величину масштаба <Param>.

Зеркальное отображение объектов[править | править код]

Команда mirror имеет несколько режимов работы, которые представлены ниже.


mirror <Objects> <Point1>, <Point2> nocopy|copy - устаревший синтаксис

mirror { nocopy|copy } <Objects> <Point1>, <Point2>

Команда осуществляет зеркальное отражение объектов <Objects> относительно плоскости, проходящей через точки <Point1> и <Point2>, и перпендикулярной видовой плоскости.

Если указан ключ copy, команда копирует выбранные объекты относительно плоскости симметрии. Если указан ключ nocopy, команда отражает объекты <Objects> без копирования.


mirror <Objects> [1point] <Point> nocopy|copy - устаревший синтаксис

mirror { nocopy|copy } <Objects> [1point] <Point>

Команда осуществляет зеркальное копирование объектов <Objects> относительно точки <Point>, задающей точку центральной симметрии.

Если указан ключ copy, команда копирует выбранные объекты относительно точки центральной симметрии. Если указан ключ nocopy, команда отражает объекты <Objects> без копирования.


mirror <Objects> [3points] <Point>, <Point2>, <Point3> nocopy|copy - устаревший синтаксис

mirror { nocopy|copy } <Objects> [3points] <Point>, <Point2>, <Point3>

Команда осуществляет зеркальное отражение объектов <Objects> относительно плоскости, проходящей через точки <Point1>, <Point2> и <Point3>. Поскольку данный вариант команды задает плоскость симметрии независимо от видового окна, в макропрограммах рекомендуется использовать именно этот вариант.

Если указан ключ copy, команда копирует выбранные объекты относительно плоскости симметрии. Если указан ключ nocopy, команда отражает объекты <Objects> без копирования.

Гибка объектов[править | править код]

bend <Object> <Point1>, <Point2>, <Point3> [reorient] [radius <R>] <Angle>

Команда Гибка

Команда bend осуществляет гибку объекта <Object> вокруг оси, проходящей через точки <Point1> и <Point2> с радиусом <R> и углом гибки <Angle>. Точки <Point1>, <Point2>, <Point3> определяют плоскость, которая задает часть объекта <Object>, которая будет подвергаться гибке.

Ключ reorient определяет часть объекта, которая будет подвергаться гибке.

Так же команда Bend преобразует плоские области в грани, а полилинии – в аппроксимированные контура.

Проецирование объектов[править | править код]

Команда projection имеет несколько режимов работы, которые представлены ниже.


projection <Objects> vertical|horizontal <PointP> [2points] <Point1>[, <Point2>]

Команда осуществляет проецирование линейных объектов <Objects> на вертикальную (vertical) или горизонтальную (horizontal) плоскость проекции, проходящую через точку <PointP> перпендикулярно видовому окну, с направлением взгляда, заданным вектором <Point1>. Если задан ключ 2points, вектор направления взгляда задается от точки <Point1> до точки <Point2>.


projection <Objects> 2points <PointP1>, <PointP2> [2points] <Point1>[, <Point2>]

Команда осуществляет проецирование линейных объектов <Objects> на плоскость проекции, проходящую через точки <PointP1> и <PointP2> перпендикулярно видовому окну, с направлением взгляда, заданным вектором <Point1>. Если задан ключ 2points, вектор направления взгляда задается от точки <Point1> до точки <Point2>.


projection <Objects> 3points <PointP1>, <PointP2>, <PointP3> [2points] <Point1>[, <Point2>]

Команда осуществляет проецирование линейных объектов <Objects> на плоскость проекции, проходящую через точки <PointP1>, <PointP2> и <PointP3>, с направлением взгляда, заданным вектором <Point1>. Если задан ключ 2points, вектор направления взгляда задается от точки <Point1> до точки <Point2>.

Помещение объекта в систему координат[править | править код]

place <Object>

Команда place помещает объект <Object> в текущую систему координат, то есть перемещает объект таким образом, чтобы локальная система этого объекта совпала с текущей системой координат.


Макро | Редактирование объектов | Удаление | Перемещение | Поворот | Масштабирование | Зеркальное отражение | Гибка | Проецирование | Помещение объекта в систему координат | Размножение объектов | Редактирование примитива | Редактирование объекта | Обрезка | Разрыв | Редактирование поверхности | Редактирование отрезка | Редактирование дуги | Редактирование сплайна | Редактирование полилинии и плоской области | Создание фаски | Создание скругления | Удаление объектов