Преобразование объектов
Команды преобразования объектов позволяют изменить положение в пространстве уже созданных в сцене объектов. При этом данные команды могут как изменять только положение имеющихся объектов, так и создавать одну или несколько копий объекта, не подвергая редактированию исходный объект.
Перемещение объектов
За перемещение объектов отвечают команды move и moveadjacency.
Команда move имеет несколько режимов работы, которые представлены ниже.
move { nocopy|copy|multicopy <N> } <Objects> [Prompt <Prompt>] [2points] <Point1> [<Point2>]
(устаревший синтаксис — move <Objects> [2points] [Prompt <Prompt>]<Point1> [<Point2>] { nocopy|copy <N> }
)
Команда осуществляет сдвиг объектов <Objects>
на величину вектора сдвига <Point1>
. Если указаны ключи copy
или multicopy
, команда копирует выбранные объекты один раз (copy
) или <N>
раз (multicopy
), сдвигая их каждый раз на величину вектора <Point1>
. Если указан ключ nocopy
, команда перемещает объекты <Objects>
.
Ключ 2points
позволяет указать вектор сдвига при помощи начальной <Point1>
и конечной <Point2>
точек. Такой способ сдвига является предпочтительным, поскольку позволяет однозначно задать направление вектора сдвига.
move multi <Objects> [Prompt <Prompt>] <Point1>, <Point21>, <Point22>, …, <Point2N>
(устаревший синтаксис — move <Objects> [Prompt <Prompt>]multi <Point1>, <Point21>, <Point22>, …, <Point2N>
)
Команда осуществляет многократное копирование объектов <Objects>
на величину вектора сдвига от точки <Point1>
последовательно до точек <Point21>
, <Point22>
, …, <Point2N>
move { nocopy|copy|multicopy <N> } <Objects> [Prompt <Prompt>] attach <Object> [permit <Pmt>] <Point> done
(устаревший синтаксис — move <Objects> [Prompt <Prompt>] attach <Object> [permit <Pmt>] <Point> done nocopy|copy <N>
)
Команда осуществляет сдвиг объектов <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{ nocopy|copy|multicopy <N> } <Objects> [2points] <Point1> [<Point2>] <Angle>
(Устаревший синтаксис — rotate <Objects> [2points] <Point1> [<Point2>] <Angle> nocopy|copy <N>
)
Команда rotate осуществляет поворот объектов <Objects>
на величину угла <Angle>
, задаваемого в градусах (положительное направление – против часовой стрелки, если смотреть с конца оси поворота) относительно оси, проходящей через точку <Point1>
и направленную «на зрителя» в текущем видовом окне.
Если указан ключи copy
или multicopy
, команда копирует выбранные объекты один раз (copy
) или <N>
раз (multicopy
), поворачивая их каждый раз на величину угла <Angle>
. Если указан ключ nocopy
, команда поворачивает объекты <Objects>
без копирования.
Ключ 2points
позволяет указать ось поворота при помощи начальной <Point1>
и конечной <Point2>
точек. Такой способ задания оси поворота является предпочтительным, поскольку позволяет однозначно задать направление оси поворота.
Масштабирование объектов
За масштабирование объектов отвечают команды scale, scaleview и scalecoeff
scale{ nocopy|copy|multicopy <N> } <Objects> <Point> [vector <PointV>] <Scale>
(Устаревший синтаксис — scale <Objects> <Point> [vector <PointV>] <Scale> nocopy|copy <N>
)
Команда осуществляет масштабирование объектов <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{ nocopy|copy } <Objects> <Point1>, <Point2>
(Устаревший синтаксис — mirror <Objects> <Point1>, <Point2> nocopy|copy
)
Команда осуществляет зеркальное отражение объектов <Objects>
относительно плоскости, проходящей через точки <Point1>
и <Point2>
, и перпендикулярной видовой плоскости.
Если указан ключ copy
, команда копирует выбранные объекты относительно плоскости симметрии. Если указан ключ nocopy
, команда отражает объекты <Objects>
без копирования.
mirror{ nocopy|copy } <Objects> [1point] <Point>
(Устаревший синтаксис — mirror <Objects> [1point] <Point> nocopy|copy
)
Команда осуществляет зеркальное копирование объектов <Objects>
относительно точки <Point>
, задающей точку центральной симметрии.
Если указан ключ copy
, команда копирует выбранные объекты относительно точки центральной симметрии. Если указан ключ nocopy
, команда отражает объекты <Objects>
без копирования.
mirror{ nocopy|copy } <Objects> [3points] <Point>, <Point2>, <Point3>
(Устаревший синтаксис — mirror <Objects> [3points] <Point>, <Point2>, <Point3> nocopy|copy
)
Команда осуществляет зеркальное отражение объектов <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>
в текущую систему координат, то есть перемещает объект таким образом, чтобы локальная система этого объекта совпала с текущей системой координат.