В текущей версии интерпретатора поддерживаются:
Операторы присваивания и вызова [один оператор в строке].
Объявление составных построений [sub ... end sub].
Вызов составных построений в других составных построениях.
Выполнение циклов [for ... end for].
Измерители, элементы оформления [линии-выноски, размерные знаки, штриховки, заливки, стрелки].
Вывод пространственных координат точек [Z, !cout3D].
Не поддерживаются:
Вложенные операторы [ sub1 (sub2 (...)) ].
Вложенные циклы [for ... for ... end for ... end for].
Условный оператор [!if].
Списки.
Объектно-ориентированные объявления [операторы new и .].
Модификаторы стиля [через :].
Специальные символы
(Специальные символы: αβγδεζηθικλμνξοπρστυφχψω ∀∃∈∉∋∩∪∞∅°∠ ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ ≅≈≠≡⊂⊃⊄⊥)
Программа
PSIZE=1 nav(-50,0:0.5) v1 = @vr(100) vx = @vr(200) v2 = @vr(300) ht = @hr(-150) hq = @hr(0) hu = @hr(150) T = @pab(vx,ht) Q = @pab(vx,hq) U = @pab(vx,hu) ax2 = sxy(300,0,100,0:false,thin:x_2,-15,10) ax1 = sxy(300,150,100,150:false,thin:x_1,-15,10) ax3 = sxy(300,-150,100,-150:false,thin:x_3,-15,10) axi3 = sxy(200,-230,200,-60:false,thin:x^i_3) ay2 = sxy(200,-50,200,50:false,thin:y_2) ayi1 = sxy(200,60,200,230:false,thin:y^i_3) A = pxy(40,-10,20,20:A) B = pxy(0, 0:B) k = sab(A,B) sub pt (p) M = @pab(p, k) ret(M) end sub sub p4 (A) // !cout(A) R = @pre(A) I = @pim(A) [Rx,Ry]=@xy(R) [Ix,Iy]=@xy(I) v=@vrd(Q,Rx,true) h=@hrd(Q,Ry,true) A2=pab(v,h) h=@hrd(T,Ix,true) A3=pab(v,h) h=@hrd(U,Iy) A1=pab(v,h) plinpadd(pl1, A1) plinpadd(pl2, A2) plinpadd(pl3, A3) ret(A1,A2,A3) end sub pl11 = pline(0) pl12 = pline(0) pl13 = pline(0) pl1 = pl11 pl2 = pl12 pl3 = pl13 for (8) i in [-40:40] C$ = @pxy(0,0,-40,i) v = @hr(C$) M1$ = pt(v) p4(M1$) end for plins(pl1, pl2, pl3) pl21 = pline(0) pl22 = pline(0) pl23 = pline(0) pl1 = pl21 pl2 = pl22 pl3 = pl23 for (8) i in [-40:40] C$ = @pxy(0,0,-30,i) v = @hr(C$) M2$ = pt(v) p4(M2$) end for plins(pl1, pl2, pl3) pl31 = pline(0) pl32 = pline(0) pl33 = pline(0) pl1 = pl31 pl2 = pl32 pl3 = pl33 for (8) i in [-40:40] C$ = @pxy(0,0,-20,i) v = @hr(C$) M3$ = pt(v) p4(M3$) end for plins(pl1, pl2, pl3) pl41 = pline(0) pl42 = pline(0) pl43 = pline(0) pl1 = pl41 pl2 = pl42 pl3 = pl43 for (8) i in [-40:40] C$ = @pxy(0,0,-10,i) v = @hr(C$) M4$ = pt(v) p4(M4$) end for plins(pl1, pl2, pl3) pl51 = pline(0) pl52 = pline(0) pl53 = pline(0) pl1 = pl51 pl2 = pl52 pl3 = pl53 for (8) i in [-40:40] C$ = @pxy(0,0,0,i) v = @hr(C$) M5$ = pt(v) p4(M5$) end for plins(pl1, pl2, pl3) pl61 = pline(0) pl62 = pline(0) pl63 = pline(0) pl1 = pl61 pl2 = pl62 pl3 = pl63 for (8) i in [-40:40] C$ = @pxy(0,0,10,i) v = @hr(C$) M6$ = pt(v) p4(M6$) end for plins(pl1, pl2, pl3) pl71 = pline(0) pl72 = pline(0) pl73 = pline(0) pl1 = pl71 pl2 = pl72 pl3 = pl73 for (8) i in [-40:40] C$ = @pxy(0,0,20,i) v = @hr(C$) M7$ = pt(v) p4(M7$) end for plins(pl1, pl2, pl3) pl81 = pline(0) pl82 = pline(0) pl83 = pline(0) pl1 = pl81 pl2 = pl82 pl3 = pl83 for (8) i in [-40:40] C$ = @pxy(0,0,30,i) v = @hr(C$) M8$ = pt(v) p4(M8$) end for plins(pl1, pl2, pl3) pl91 = pline(0) pl92 = pline(0) pl93 = pline(0) pl1 = pl91 pl2 = pl92 pl3 = pl93 for (8) i in [-40:40] C$ = @pxy(0,0,40,i) v = @hr(C$) M9$ = pt(v) p4(M9$) end for plins(pl1, pl2, pl3) style(pl11, pl12, pl13, pl21, pl22, pl23, pl31, pl32, pl33, pl41, pl42, pl43, pl51, pl52, pl53, pl61, pl62, pl63, pl71, pl72, pl73, pl81, pl82, pl83, pl91, pl92, pl93: thin)
Графические команды
-- Точки
point = PXY (X, Y [,W]: [caption, cap-X, cap-Y])
point = PAB (line-a, line-b: [caption, cap-X, cap-Y])
point = PSP (obj, position| point-a, point-b, position: [caption, cap-X, cap-Y])
point-ideal = PIDEAL (line: [caption, cap-X, cap-Y])
point-real-part = PRE (complex-point: [caption, cap-X, cap-Y])
point-image-part-as-real = PIM (complex-point: [caption, cap-X, cap-Y])
point-real-and-image-part-as-real = PIM1 (complex-point: [caption, cap-X, cap-Y])
point-as-sum = PADD (point-a, point-b: [caption, cap-X, cap-Y])
point-as-difference = PSUB (point-a, point-b: [caption, cap-X, cap-Y])
point = PP (X: x^0-coef, x^1-coef, x^2-coef, ...: [caption, cap-X, cap-Y])
-- Прямые
line = SXY (X1, Y1, X2, Y2: [extension] [,style] [,color]: [caption, cap-X, cap-Y])
line = SAB (point-A, point-B: : [caption, cap-X, cap-Y])
line = SPA (line, point: : [caption, cap-X, cap-Y])
line = SOA (line, point: : [caption, cap-X, cap-Y])
line = SPF (point, angle, negative, line-to: : [caption, cap-X, cap-Y])
line = SKB (k-coeff, b-coeff [, x-flag]: : [caption, cap-X, cap-Y])
line = SABC (a-coeff, b-coeff, c-coeff: : [caption, cap-X, cap-Y])
arrow = ARROW (point-A, point-B: [style] [, color])
ls = LS (point-A, point-B: [length])
-- Окружности и дуги
circle = CCX (center-point, point|line|circle|V, diameterFlag: [style]: [caption, cap-X, cap-Y])
[circle, center-point] = CXYV (center-X, center-Y, V, diameter0flag: : [caption, cap-X, cap-Y])
[circle, center-point] = C2P (point-a, point-b: : [caption, cap-X, cap-Y])
[circle, center-point] = C3P (point-a, point-b, point-c: : [caption, cap-X, cap-Y])
[point-a, point-b] = PAC (line, circle: [caption, cap-X, cap-Y]: [caption, cap-X, cap-Y])
point-b = PAC2ND (line, circle, point-a: [caption, cap-X, cap-Y]: [caption, cap-X, cap-Y])
point-b = PAC2DIR (line, circle, point-a: [caption, cap-X, cap-Y]: [caption, cap-X, cap-Y])
[point-a, point-b] = P2C (circle-a, circle-b: [caption, cap-X, cap-Y]: [caption, cap-X, cap-Y])
point-b = P2C2ND (circle-a, circle-b, point-a: [caption, cap-X, cap-Y]: [caption, cap-X, cap-Y])
point-b = P2C2DIR (circle-a, circle-b, point-a: [caption, cap-X, cap-Y]: [caption, cap-X, cap-Y])
[line-a, line-b] = SCP (circle, point: : [caption, cap-X, cap-Y])
[line-a, point-a, line-b, point-b] = SCP (circle, external-point: : [caption, cap-X, cap-Y])
[arc, center-point] = A3P (point-a, point-b, point-c: : [style] [, color])
[arc, point-from, point-to] = APRA (center-point, radius, angle-from, angle-to: [style] [, color])
-- Кривые второго порядка
-- Полилинии
polyline = PLINE (code: [style] [, color])
PLINPADD (polyline, point-a [, point-b] [, point-c])
PLINS (polyline)
PLINZ (polyline)
SHADOW (polyline)
SECTION (polyline)
-- Линейки и измерители
value = MDX(point-a, point-b)
value = MDY(point-a, point-b)
value = MD(point, point-to|line|circle)
ruler = VR (x)
ruler = VRD (point, distance [, negative])
ruler = HR (y)
ruler = HRD (point, distance [, negative])
ruler = RD (line, distance [, negative])
obj = DL (point-a, point-b, pos-X, pos-Y: [caption, cap-X, cap-Y])
-- Преобразователи
T-object = TROFS (P-old: P-new)
T-object = TRMV (P1-old, P2-old | SEG-old: P1-new, P2-new | SEG-new)
T-object = TRSIM (P1-old, P2-old | SEG-old: P1-new, P2-new | SEG-new)
T-object = TRAFF (P1-old, P2-old, P3-old: P1-new, P2-new, P3-new)
T-object = TRMIR (point | line)
T-object = TRROD (line, point-old, point-new)
T-object = TRINV (circle)
[object, ...] = TROBJ (T-object, object, ...)
[object, ...] = TROBI (T-object, object, ...)
-- Системы координат начертательной геометрии
[axis, O] = CS12 (x, y)
[axis, O] = CS23 (x, y)
-- Разное
[x, y] = XY (point)
CAP (obj, caption [, cap-X, cap-Y])
CAPS (obj1, ...: caption-1 [, cap1-X, cap1-Y]: ...)
!ERASE (o1, o2, ...)
!RECSET (fname, max-recursion-depth)
!COUT (var1|precision-coeff|multiplier, var2|precision-coeff|multiplier, ...)
obj = LEADER (obj: [caption, cap-X, cap-Y])
/Пусто/