Практика 1. Организация макрокоманд (МК) и работа с ними

Содержание

Теоретические положения.
Язык системы “Вектор” /кратко/.
Использование клавиатуры при работе в “CG-Вектор”.
Использование клавиатуры при редактировании текста в DOS.
Работа с базовыми МК  в "Вектор".
Диаграмма состояний учебной версии системы “Vectoru”
Упражнение 1. Построение отрезка прямой на комплексном чертеже.
Упражнение 2. Задание окружности на комплексном чертеже.
Упражнение 3. Построить треугольник, найти середины сторон и соединить их.
Упражнение 4.1. Задать синусоиду, повернуть ее на 10 градусов, а сценарий mgd.scn переименовать в ur1z5c.mac.
Упражнение 4.2. до 360 градусов с шагом Из предыдущего сценария в цикле организовать построение синусоид, изменяя угол поворота от нуля 10 градусов.
Упражнение 5.1. Построить 4-ч угольник по его вершинам р1 и р2.
Упражнение 5.2 Организовать цикл построения окружностей в прямоугольнике предыдущей задачи, центры окружностей задаются по методу случайных чисел.
Упражнение 6. Построить в треугольнике p1-p2-p3 муар.

Тексты базовых МК.
Визуализации осей на комплексном чертеже
Задания отрезка
Задания окружности
Задание базовых МК пользователем (без использования сценария)
Задания отрезка
Задания окружности


Теоретические положения:

Сначала несколько определений (более полный перечень см. здесь).
Что такое система “Вектор”? Это система, обеспечивающая работу с графикой, расчетами и макрокомандами (МК).
Что такое макрокоманда?   Это список команд, написанный, или сохраненный системой как сценарий, при выполнении в системе каких-либо действий, на языке этой системы.
Что такое “Калькулятор”? Это язык, с помощью которого можно производить математические, графические и логические операции.
Что такое DOS? Это дисковая операционная система.
Что такое Windows? Это операционная система, построенная на принципе многооконности и единой базы графических возможностей.

Язык системы “Вектор” /кратко/, более подробно см. здесь.

Переменные:  n-n199 - целые числа; s-s199 - вещественные;
p(x,y,z) - p199 (х-x199, y- y199, z - z199) - типа “точка” (вектора).
Операции: + сложение; - вычитание; * умножение; / деление, = присвоение
Операторы:  ? - условный "если" /ставится после условия /; exit - выход.
Операции: <> - равенство;  > - больше; < - меньше; &  - и; ! - или; ^ - не.
Функции: sin - синус; cos - косинус; tan - тангенс, sqrt - кв. корень.
Директивы:  print$on/off - включить/выключить печать в mgd.log.
Вызов МК: имя МК: список присвоений.
Если МК начинается с n, s, p, x, y, z, то при ее вызове перед именем МК ставится (без пробела) символ $.
Перед комментариями ставится символ $ с пробелом.

Использование клавиатуры при работе в “CG-Вектор”:

enter - ввод команд -строк,
alt+c - вызов командной строки,
alt+s - очистка экрана от рисунков,
alt+M - удаление/восстановление меню,
alt+j - включить/выключить джойстик,
Esc - выход из подсостояний и из системы (подтвердить “y”).

Использование клавиатуры при редактировании текста в DOS

enter - вставить строку (если курсор стоит вначале строки),
enter - переместить все, что за курсором, на новую строку,
Delete - операция, обратная предыдущей, если курсор в конце строки, Delete -  удаление  символа, стоящего после курсора,
Backspase -  удаление впередистоящего символа,
Ctrl+y -  удаление непустой строки,
Delete - удаление пустой строки,

Работа с базовыми МК  в "Вектор"

ck.mac -  МК  задание осей на комплексном чертеже (КЧ)
Входные параметры - нет.
Обращение: сk

otrezok.mac - МК построения отрезка прямой
Входные данные: p101, p101 - регистры для начала и конца отрезка
Обращение: otrezok: p101=p1 p102=p2
Примечание. Название базовых МК может быть любое. В старых пособиях для построения отрезка использовалась МК: tprin.mac

okr.mac - МК построения  окружности
Входные данные: р100 - положение центра, s100  радиус окружности


Диаграмма состояний учебной версии системы “Vectoru”

1-е состояние
1 - Линии общего назначения
23 - Система координат экрана
22 - Случайное число (в n191) oт 00000 до 00000
27 - Удаление визуализации
2-е состояние - переход к заданию параметров линий
1 - Отрезок прямой
2 - Квадратично-рациональная
3 - Кубично-рациональная Безье
4 - Окружность
6 - Синусоида
3-е состояние - задание параметров отрезка
1 - Начальная точка   = (00000.0],00000.0],00000.0])
2 - Кoнeчная точка    = (00000.0],00000.0],00000.0])
4 - Визуализация  по стандартным проекциям _0
23 - Система коодинат экрана
Состояние "Система координат экрана"
1 - Начало СК : x0=#00000.0] y0=#00000.0
2 - Авт. oпрeдeлeниe oкна
3 - НСК на проекции YZ = (#00000.0],#00000.0],#00000.0])
4 - ВИзуализация Осей СК  по ст. проекциям _0
 
 
Упражнение 1. Построение отрезка прямой на комплексном чертеже
ur1z2.mac  - имя МК
ck                       $ задание осей комплексного чертежа
print$on             $  включить печать в mgd.log
: p1=10.,20.,5.  p2=60.,70.,50.   $  задаем точки начала и конца отрезка
otrezok: p101=p1 p102=p2  n=1 $ изображаем отрезок на гор. проекции
otrezok: n=2      $ на фронтальной
otrezok: n=3      $ на профильной
otrezok: n=5      $ в диметрии, а  n=4 - в изометрии
otrezok: p101=x1,y1,0.  p102=x2,y2,0.   $ в диметрии в пл. xy


 
Упражнение 2. Задание окружности на комплексном чертеже 
ur1z2.mac -  имя МК
print$on                   $ включить печать
ck                             $ задание осей комплексного чертежа
p1=20.,40.,10.          $ задание точки как центра будущей окружности
okr: p100=p1 s100=10.0  n=1 $ строим окружность в горизонт. пл.
okr: n=2                    $ окружность во фронтальной окружности
okr: n=3                    $ на профильной
okr: n=5                     $ в диметрии


 
Упражнение 3. Построить треугольник, найти середины сторон и соединить их.
ur1z3.mac - имя МК
print$on        $ включить печать
: p1=40.,10. p2=90.,160. p3= 190.,30.  p= 100., 70.
otrezok: p101=p1 p102=p2    $
otrezok: p101=p2 p102=p3
otrezok: p101=p3 p102=p1
p12=(p1+p2)/2.
p23=(p2+p3)/2.
p13=(p1+p3)/2.
otrezok: p101=p p102=p12
otrezok: p101=p p102=p23
otrezok: p101=p p102=p13


 
 
Упражнение 4.1. Задать синусоиду, повернуть ее на 10 градусов, а сценарий mgd.scn переименовать в ur1z5c.mac
 

ur1z4.mac - сценарий построения 2-х синусоид (2-я повернута на 10 градусов)
_Линии_общего_назначения
_Синусоида
 _Точка_привязки_=_(   145.0    70.0     0.0
 _Радиус_синусоиды_= 0007.0
 _Начальный_угол___________= 0000.0
 _Конечный_угол____________= 0700.0
 _Визуализация__по_стандартным_проекциям_ 0
 _Вращение__вокруг_оси_z__на_угол_ 0010.0
 _Визуализация__по_стандартным_проекциям_ 0
 _Выход
_Выход



 
Упражнение 4.2. Из предыдущего сценария в цикле организовать построение синусоид, изменяя угол поворота от нуля до 360 градусов с шагом 10 градусов
 
ur1z4c.mac  - организация построения множества синусоид
s > 360. ? exit    $ условие выхода
_Линии_общего_назначения
_Синусоида
 _Точка_привязки_=_(   145.0    70.0     0.0
 _Радиус_синусоиды_= 7.0
 _Начальный_угол___________= 0000.0
 _Конечный_угол____________= 0700.0
    _Вращение__вокруг_оси_z__на_угол_ s
 _Визуализация__по_стандартным_проекциям_ 0
_Выход
_Выход
ur1z4c: s=s+10.   $ рекурсивный цикл с шагом 10.0

Упражнение 5.1. Построить 4-ч угольник по его вершинам р1 и р2

ur1z5d.mac - имя МК
print$on        $ включить печать в протокол mgd.log
:p1=50.,10.   p2=200.,160.  $ первая и третья точки 4-х угольника
otrezok: p101=p1 p102=x2,y1     $ построение нижней стороны
otrezok: p101=x2,y1 p102=p2     $ 2-й боковины и т.д
otrezok: p101=p2 p102=x1,y2
otrezok: p101=x1,y2 p102=p1



 
 
Упражнение 5.2 Организовать цикл построения окружностей в прямоугольнике предыдущей задачи, центры окружностей задаются по методу случайных чисел. 

 
 

ur1z5c.mac - имя МК
n9 > 50 ? exit  $ условие выхода
22 50 200        $ выбор случайного числа от 50 до 200
x=n191            $ помещаем случайное число из n191 в текущий х
22 10 160        $ выбираем число для ординаты центра окружности
y=n191            $ помещаем в у
okr: p100=x,y s100=4.0 $ изображаем окружность
ur1z5c: n9=n9+1            $  идем на рекурсивный цикл

Примечание. Перед тем как запустить МК ur1z5c.mac необходимо, чтобы отработала ur1z5d.mac



 
Упражнение 6. Построить в треугольнике p1-p2-p3 муар 
 
 

date6.mac
: p1=50.,50. p2= 210., 50. p3=130., 150.
muar: s=0.0

muar.mac
s > 1.0 ? exit
p12=(1.-s)*p1+ s*p2  $ уравнение перебора точек на прямой р1-р2
p23=(1.-s)*p2+s*p3
otr: p101=p12 p102=p23
p31=(1.-s)*p3+s*p1
otr: p101=p23 p102=p31
otr: p101=p31 p102=p12
muar: s=s+0.05


Тексты базовых МК.

<ck.mac> МК визуализации осей на комплексном чертеже
_Система_коодинат_экрана
 _Начало_СК_:_x0=    40.0      0
 _НСК_на_проекции_YZ_=_(   145.0    95.0     0.0
 _ВИзуализация_Осей_СК__по_ст._проекциям_ 0 (или 1, 2, 3, 4, 5)



<otrezok.mac>  базовая МК построения отрезка прямой
_Линии_общего_назначения
 _Отрезок_прямой____________________________
 _Начальная_точка___=_( x101    y101    z101
 _Кoнeчная_точка____=_( x102    y102    z102
 _Визуализация__по_стандартным_проекциям_ n


<okr.mac>  базовая МК построения окружности
_Линии_общего_назначения
 _Окружность
 _Цeнтр_=_( x100    y100    z100
 _Горизонт._п/ось__= s100
 _Вертик._П/ось____= s100
 _Визуализация_по_стандартным_проекциям_ n

Задание базовой МК без использования сценария

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

<otrezok.mac>  базовая МК построения отрезка прямой
1                                                $     (_Линии_общего_назначения)
  1                                              $   (_Отрезок_прямой____________________________)
    1   х101 y101 z101                $   (_Начальная_точка___=_( x101    y101    z101 )
    2   х102 y102 z102                $   (_Кoнeчная_точка____=_( x102    y102    z102 )
    4 n                                         $  ( Визуализация__по_стандартным_проекциям_ n


<okr.mac>  базовая МК построения окружности
1
  1
    1  x100 y100 z100
    2  s100
    4 n