пример
|
4.0, 5' 4" |
Строковые
пример
|
"Строковая константа",'Стена', `Этаж 2` |
Производные
DIM var1 [dim_1], var2 [dim_1][dim_2] | Массивы |
var1 [num_expr] или var1
var2 [num_expr1][num_expr2] или var2 |
Переменные |
|
|
|
|||||
^ или ** | Степень | = | Равно | AND или & | Логическое И | ||
+ | Сложение | < | Меньше | OR или | | Логическое включающее ИЛИ | ||
- | Вычитание | > | Больше | EXOR или @ | Логическое исключающее ИЛИ | ||
* | Умножение | <= | Меньше или равно | ||||
/ | Деление | >= | Больше или равно | ||||
MOD или % | Остаток от деления | <> или # | Не равно |
ABS (x) | Возвращает абсолютное значение x |
INT (x) | Возвращает целую часть x.
(например INT(1.23) = 1, INT(-1.23) = -2). |
FRA (x) | Возвращает дробную часть x.
(например, FRA(1.23) = 0.23, FRA(-1.23) = 0.77). |
CEIL (x) | Наименьшее целое число, которое не меньше x. |
SGN (x) | Возвращает +1.0, если x положительное, -1.0, если x отрицательное, и 0.0, если x ноль. |
SQR (x) | Возвращает корень квадратный x. |
COS (x) | Возвращает косинус x. |
SIN (x) | Возвращает синус x. |
TAN (x) | Возвращает тангенс x. |
ACS (x) | Возвращает арккосинус x.
(-1.0 < x < 1.0; 0° < ACS(x) < 180°). |
ASN (x) | Возвращает арксинус x.
(-1.0 < x < 1.0; -90° < ASN(x) < 90°). |
ATN (x) | Возвращает арктангенс x.
(-90° < ATN(x) < 90°). |
PI | Возвращает константу Лудольфа (p = 3.1415926). |
EXP (x) | Возвращает e в степени х (e = 2.7182818). |
LGT (x) | Возвращает логарифм x по основанию 10. |
LOG (x) | Возвращает натуральный логарифм x. |
NOT (x) | Возвращает "ложь" (=0.0), если x "истина"(+0.0) и
"истина" (=1.0), если x "ложь" (=0.0). (Логическое отрицание). |
MIN (x1,x2, . . . xn) | Возвращает наименьший из аргументов.
Количество аргументов не ограничено. |
MAX (x1,x2, . . . xn) | Возвращает наибольший из аргументов. Количество аргументов не ограничено. |
RND (x) | Возвращает случайное значение между 0.0 и x.
(x > 0.0). |
STR (numeric_expression, len, frac) | Преобразует в символьную строку текущее значение числового выражения numeric_expression.
Параметр len - максимальное количество цифровых символов в строке, а frac - количество дробных знаков. |
STR (formatstring, numeric_expression) | Преобразует согласно формата, заданного в formatstring. |
SPLIT (string, format, var1 [, var2, ..., varn]) | Преобразует значение параметра string в один или несколько числовых или строковых элементов по заданному формату. Возвращает количество успешно
считанных значений. |
STW (string_expression) | Возвращает ширину строки string_expression (в метрах) с учетом текущего стиля. |
STRLEN (string_exp) | Возвращает длину строки (количество символов). |
STRSTR (string_exp1, string_exp2) | Возвращает позицию первого вхождения второй строки в первую, в противном случае возвращает 0. |
STRSUB (string_exp, begpos, numchars) | Возвращает подстроку строкового параметра string_exp, длиной в numchars символов и начинающуюся с позиции, указанной параметром begpos. |
ADDX dx | Перемещение локальной системы координат вдоль соответствующей оси на расстояние dx |
ADDY dy | Перемещение локальной системы координат вдоль соответствующей оси на расстояние dy |
ADDZ dz | Перемещение локальной системы координат вдоль соответствующей оси на расстояние dz |
ADD dx, dy, dz | Равносильна командам ADDX dx : ADDY dy : ADDZ dz. |
MULX mx | Масштабирование оси X локальных координат. Отрицательные значения mx означают одновременное изменение направлений осей координат (зеркальное отражение). |
MULY my | Масштабирование оси Y локальных координат. Отрицательные значения my означают одновременное изменение направлений осей координат (зеркальное отражение). |
MULZ mz | Масштабирование оси Z локальных координат. Отрицательные значения mz означают одновременное изменение направлений осей координат (зеркальное отражение). |
MUL mx, my, mz | Равносильна командам MULX mx : MULY my : MULZ mz. |
ROTX alphax | Поворот локальной системы координат вокруг оси X против часовой стрелки на alphax градусов соответственно. |
ROTY alphay | Поворот локальной системы координат вокруг оси Y против часовой стрелки на alphay градусов соответственно. |
ROTZ alphaz | Поворот локальной системы координат вокруг оси Z против часовой стрелки на alphaz градусов соответственно. |
ROT x, y, z, alpha | Поворот локальной системы координат вокруг оси, определенной вектором (x,y,z), против часовой стрелки на alpha градусов. |
XFORM a11, a12, a13, a14,
a21, a22, a23, a24, a31, a32, a33, a34 |
Определяет полную матрицу преобразований. Эта команда используется в основном в автоматической генерации GDL кода. Приводит к созданию одного элемента в стеке преобразований. |
ADD2 x, y | Эквивалентна команде ADD в пространстве, с учетом ее применения в плоскости. |
MUL2 x, y | Эквивалентна команде MUL2 в пространстве, с учетом ее применения в плоскости. |
ROT2 alpha | Эквивалентна команде ROT2 в пространстве, с учетом ее применения в плоскости. |
DEL n [, beg_with] | Удаляет n последних помещенных в стек элементов. |
DEL TOP | Удаляет все преобразования текущего скрипта. |
NTR ( ) | Возвращает текущее количество преобразований. |
Предложения передачи управления
FOR varnam = initial_value TO end_value [ STEP step_value ] | Первое предложение цикла FOR. Если ключевое слово STEP опущено, то приращение переменной равно 1.
В качестве переменной цикла нельзя использовать глобальную переменную. |
NEXT varnam | Последнее предложение цикла FOR. |
DO
[stmt1 stmt2 ... stmtn] WHILE condition |
Предложения, заключенные между ключевыми словами DO и WHILE
выполняются, если значение выражения condition истинно. Условие проверяется всякий раз после выполнения последовательности заданных в теле цикла предложений. |
WHILE condition DO
[stmt1 stmt2 ... stmtn] ENDWHILE |
Если значение выражения condition истинно, выполняется последовательность предложений, заключенных между ключевыми словами DO и ENDWHILE.
Условие проверяется перед каждым выполнением заданной последовательности предложений. |
REPEAT
[stmt1 stmt2 ... stmtn] UNTIL condition |
Предложения между ключевыми словами выполняются до тех пор, пока
выражение condition не примет значение истинно. Условие проверяется перед каждым выполнением заданной последовательности предложений. |
IF condition THEN label
IF condition GOTO label IF condition GOSUB label |
Предложение условного перехода. Если значение выражения condition равно 0, перехода нет, в противном случае происходит переход по метке label. |
IF condition THEN statement [ELSE statement]
или IF condition THEN
|
Если после ключевого слова THEN есть новая строка, то следующие команды
(все команды до ключевого слова ELSE или ENDIF) будут выполняться только в том случае, когда выражение в условии истинно (отлично от нуля). В противном случае, будут выполняться команды, следующие после ELSE. Если ключевое слово ELSE отсутствует, то будут выполняться
|
GOTO label | Предложение безусловного перехода. Происходит переход на предложение
с меткой label. |
GOSUB label | Обращение к внутренней подпрограмме. Метка label является точкой входа в подпрограмму.
См. описание меток в главе "Основные синтаксические элементы". |
RETURN | Происходит выход из внутренней подпрограммы. |
END
EXIT |
Конец GDL-скрипта. Программа завершает работу и происходит возврат
на предыдущий уровень. В файле GDL можно использовать несколько предложений END и EXIT. |
BREAKPOINT expression | Эта команда позволяет определить точки останова в GDL-скрипте. Отладчик GDL будет по этой команде останавливать выполнение скрипта, если значение параметра (числового выражения) истинно (равно 1) и установлен параметр Включить точки останова. При нормальном режиме выполнения программы интерпретатор GDL просто пропускает эти команды. |
Перейти на Управляющие предложения
Манипулирование буфером параметров
PUT expression [ , expression ] . . . | Сохраняет заданные значения в указанном порядке во внутреннем буфере параметров. |
GET (n) | Извлекает следующие n значений из внутреннего буфера параметров с их удалением. |
USE (n) | Извлекает следующие n значений из внутреннего буфера параметров без их удаления. Функция GET, следующая за USE, извлекает те же параметры. |
NSP | Возвращает количество параметров в буфере. |
Перейти на Управляющие предложения
CALL macro_name_string [,parameter_list]
CALL macro_name_string PARAMETERS [name1=value1, namen=valuen] |
Макроимя может быть константой, переменной строкового типа или параметром не превышающем 31 символ. Макроимя должно заключаться в кавычки (",',`,ґ,",',",').
Другие ограничения приведены в Справочном пособии по GDL. |
macro_name [parameter_list]
macro_name PARAMETERS [name1=value1, namen=valuen] |
Макроимя может использоваться в качестве команды. |
Перейти на Управляющие предложения
PRINT expression [, expression ]. . . | Выводит на экран все свои аргументы в специальном диалоговом окне. Аргументами могут быть выражения строкового или числового типа в любом количестве и в любой последовательности, разделенные запятыми. |
Перейти на Управляющие предложения
OPEN (filter, filename, paramstring) | Приводит к открытию файла заданным образом.
Функция возвращает целое положительное значение, идентифицирующее этот файл. Это значение в дальнейшем может использоваться в качестве ссылочного номера файла. |
INPUT (channel, recordID, fieldID, var1 [, var2,...]) | Считывает значения из файла, определяемого параметром channel, и приписывает их указанным переменным.
Значения могут быть числового или строкового типа, независимо от того какой тип имеют параметры. Функция возвращает число успешно прочитанных значений. Если встречается признак конца файла, то возвращается -1. |
OUTPUT channel, recordID, fieldID, expr1 [, expr2, ...] | Записывает в файл, определяемый значением channel, множество значений, определяемых выражениями.
В списке параметров должно быть по крайней мере одно выражение. Тип записываемых значений совпадает с типом значений выражений. |
VARTYPE (expr) | Возвращает 1, если выражения является числовым типом, 2 - строковым типом. |
CLOSE channel | Приводит к закрытию файла, определяемого значением channel. |
Директивы, используемые в 2D- и 3D-скриптах
Директивы, используемые только в 3D-скриптах
Директивы, используемые только в 2D-скриптах
[LET] varnam = n | Присвоение значения переменной. Фраза LET не является обязательной. Переменной varnam присваивается значение n. |
RADIUS rmin, rmax | Устанавливает сглаженность цилиндрических элементов и дуг в ломаной. Другие ограничения приведены в Справочном пособии по GDL.
Дуга представляется пропорционально ее размеру. |
RESOL n | Устанавливает сглаженность цилиндрических элементов и дуг ломаной. Окружности представляются правильными n-угольниками.
Дуга представляется пропорционально ее размеру. |
TOLER d | Устанавливает сглаженность цилиндрических элементов и дуг ломаной. Погрешность аппроксимации окружности (дуги), то есть наибольшее расстояние между предполагаемой дугой и аппроксимирующей ее хордой, будет не более d. |
PEN n | Установка цвета пера. |
[SET] STYLE name_string
[SET] STYLE index |
Установка стиля текстовых строк по его названию или индексу. Все последующие тексты будут иметь данный стиль до поступления нового предложения SET STYLE. |
Директивы, используемые только в 3D-скриптах
MODEL WIRE | Устанавливает способ представления создаваемых объектов.
Отсутствуют поверхности и внутренняя
Объекты являются прозрачными. |
MODEL SURFACE
MODEL SOLID |
Устанавливает способ представления создаваемых объектов.
Построение сечений основывается на пересечении соседних поверхностей. Обе модели создают одну и ту же внутреннюю
Отличие этих двух моделей обнаруживается только в том случае, когда часть объекта отсекается какой-либо плоскостью: MODEL SURFACE: так как объект пустотелый, то видна его внутренняя часть. MODEL SOLID: в плоскости сечения создается новая поверхность. |
[SET] MATERIAL name_string
[SET] MATERIAL index |
Установка покрытия по его названию или индексу. Все последующие поверхности будут иметь указанное покрытие до поступления нового предложения MATERIAL.
Исключением из этого правила являются поверхности тел BPRISM_, CPRISM_, FPRISM_, SPRISM_, CSLAB_, CWALL_, BWALL_, XWALL_, CROOF_, MASS . |
SHADOW keyword1[, keyword2] | Управляет отбрасыванием тени элементами при фотосъемке и векторном построении теней.
keyword1: ON, AUTO или OFF keyword2: ON или OFF |
SECT_FILL fill, fillbkgdpen, fillpen, contourpen | Определяет штриховку, используемую для 3D-элементов, последовательно генерируемых в окне разрезов/фасадов с номером индекса штриховки и тремя номерами перьев для фона штриховки, штрихов и контура соответственно. |
Директивы, используемые только в 2D-скриптах
[SET] FILL name_string
[SET] FILL index |
Установка образца штриховки по его названию или индексу. Все последующие
2D-многоугольники будут заштрихованы согласно этому образцу до поступления нового предложения SET FILL. |
[SET] LINE_TYPE name_string
[SET] LINE_TYPE index |
Установка типа линии по его названию или индексу. Все последующие 2D-линии (линии, дуги, многоугольники) будут иметь этот тип до поступления нового предложения SET LINE_TYPE. |
DRAWINDEX nr | Определяет порядок вычерчивания элементов 2D-скрипта. Элементы с меньшим drawindex будут вычерчены первыми.
Ограничение на параметр: 0 < nr < 50. (В текущей версии GDL допустимыми являются значения 10, 20, 30, 40 и 50, другие значения будут округляться.) |
HOTSPOT2 x, y [,unID] | Точка. unID является уникальным идентификатором точки в 2D-скрипте. |
LINE2 x1, y1, x2, y2 | Отрезок между двумя точками. |
RECT2 x1, y1, x2, y2 | Прямоугольник. |
POLY2 n, framefill, x1, y1, .... xn, yn | Открытый или замкнутый многоугольник с n вершинами. |
POLY2_ n, framefill, x1, y1, mask1, .... xn, yn, maskn | Аналогична предложению POLY за исключением того, что любые ребра могут быть опущены.
Если maski = 0, то ребро, исходящее из вершины (xi, yi), будет опущено. Если maski = 1, то ребро присутствует. Значение maski = -1 используется для определения отверстия. См. определение PRISM_ для более подробного ознакомления. |
POLY2_A n, framefill, fillpen,
x1, y1, mask1, ..., xn, yn, maskn |
Открытый или замкнутый многоугольник с n вершинами с дополнительными параметрами: перо штриховки, фон штриховки. |
POLY2_B n, framefill, fillpen,
fillbkgdpen, x1, y1, mask1, ..., xn, yn, maskn |
Многоугольник, в котором любые ребрамогут быть опущены. Имеет дополнительные параметры: перо штриховки, фон штриховки. Все остальные параметры аналогичныопределенным в предложении POLY2_. |
ARC2 x, y, r, alpha, beta | Дуга с центром в точке (x, y), радиусом r и ограниченная углами alpha и beta.
Alpha и beta измеряются в градусах. |
CIRCLE2 x, y, r | Окружность с центром в точке (x, y) и радиусом r. |
SPLINE2 n, status, x1, y1, angle1,, xn, yn, anglen | Сплайн-кривая, построенная по n контрольным точкам. Касательная сплайн-кривой в контрольной точке (xi,yi) определяется параметром anglei, угол касательной с осью x измеряется в градусах. |
SPLINE2_A n, status,
x1, y1, angle1, lenPrev1, lenNext1, ... xn, yn, anglen, lenPrevn, lenNextn |
Расширение предложения SPLINE2 (сплайн-кривая Безье), в силу своей сложности используется в основном при автоматической генерации 2D-скрипта (для получения более подробной информации обратитесь к Справочному пособие по ArchiCAD). |
PICTURE2 expression, a, b, mask | Может использоваться на плоскости по аналогии с предложением PICTURE в пространстве.
Значение вычисленного выражения expression строкового типа обозначает имя файла, а числового типа - индекс рисунка, хранящегося в библиотечном элементе. Индекс 0 - это специальное значение параметра, он указывает на картинку образца, воспроизводимую в окошке просмотра, при выборе библиотечного элемента. Остальные рисунки могут быть сохранены в библиотечных элементах только при сохранении всего проекта или выбранных элементов, содержащих рисунки, в формате Объект ArchiCAD. |
DRAWING2 [expression] | В зависимости от значения выражения создает чертеж библиотечного элемента (expression = 0,
по умолчанию) или выносную надпись элемента (expression = 1), связанного с объектом спецификации, содержащим эту команду. |
TEXT2 x, y, expression | Значение вычисленного выражения expression числового или строкового типа выводится в установленном ранее стиле, начиная с позиции с координатами x,y. |
Основные пространственные фигуры
Прямоугольный параллелепипед | Стены |
Фигуры вращения | Крыши и 3D-сетки |
Призмы | Двери/окна |
Перекрытия | Сложные тела |
Балка |
BLOCK a, b, c
BRICK a, b, c |
Первый угол которого расположен в начале локальных координат, а ребра имеют размеры a, b и c и направлены соответственно вдоль осей x, y и z..
|
CYLIND h, r | Прямой цилиндр вдоль оси z, с высотой h и радиусом r, проведенным из начала координат.
Если h равно нулю, то создается окружность в плоскости x-y. Если r равно нулю, то создается линия вдоль оси z. |
SPHERE r | Сфера с центром в начале координат и радиусом r. |
ELLIPS h, r | Полуэллипсоид.
Основание находится в плоскости x-y и представляет собой окружность с центром в начале координат и радиусом r. Длина полуоси, расположенной вдоль оси z, равна h. |
CONE h, r1, r2, alpha1, alpha2 | Усеченный конус.
Углы alpha1 и alpha2 указывают наклон нижней и верхней секущих плоскостей относительно оси z; r1 и r2 являются радиусами нижней и верхней окружностей, а h - высота вдоль оси z.
|
Перейти на Основные пространственные фигуры
PRISM n, h, x1, y1, . . . xn, yn | Прямая призма с многоугольником основания в плоскости x-y. (см. параметры предложения POLY)..
Высота вдоль оси z равна abs(h). Может также использоваться отрицательное значение h. В данном случае второе основание призмы расположено ниже плоскости x-y. |
PRISM_ n, h, x1, y1, mask1, . . . xn, yn, maskn | Аналогична PRISM за исключением того, что любые из горизонтальных ребер и боковых граней могут отсутствовать.
Используйте Справочное пособие по GDL для просмотра возможных значений maski. |
CPRISM_ topmat, botmat, sidemat,
n, h, x1, y1, mask1, . . . xn, yn, maskn |
Является расширением предложения PRISM_. Первые три параметра используются для указания наименования/индекса покрытия для верхней, нижней и боковой поверхностей. Все остальные параметры аналогичны параметрам предложения PRISM_.
|
BPRISM_ topmat, botmat, sidemat,
n, h, radius, x1, y1, mask1, . . . xn, yn, maskn |
Сглаженная криволинейная призма, имеющая ту же структуру данных, что и CPRISM_.
Единственным дополнительным параметром является radius. |
FPRISM_ topmat, botmat, sidemat, hillmat,
n, thickness, angle, hill_height, x1, y1, mask1, ... xn, yn, maskn |
Аналогична PRISM_, но имеет три дополнительных параметра: hillmat, angle и hill_height. Усеченная часть призмы присоединяется к верху правильной призмы..
|
SPRISM_ topmat, botmat, sidemat,
n, xb,yb, xe, ye, h, angle, x1, y1, mask1, . . . xn, yn, maskn |
Является расширением предложения CPRISM_. Верхняя грань может быть не параллельна плоскости x-y. Определение верхней грани аналогично определению наклонного ската крыши в предложении CROOF_. Высота призмы определяется в точках базовой линии. Верхняя и нижняя грани призмы никогда не пересекаются.
Смотрите Справочное пособие по GDL для обзора дополнительных параметров. |
Перейти на Основные пространственные фигуры
SLAB n, h, x1, y1, z1, . . . xn, yn, zn | Косая призма.
Боковые грани перпендикулярны плоскости x-y. Основаниями являются плоские многоугольники, повернутые относительно оси, параллельной плоскости x-y. Может также использоваться отрицательное значение h. В этом случае второе основание располагается под первым.. Проверка того, что многоугольники основания являются действительно плоскими, не производится. Вершины многоугольников, которые не лежат в соответствующих плоскостях, приводят к некорректному отбрасыванию теней и построению реалистических изображений. |
SLAB_ n, h, x1, y1, z1, mask1, . . . xn, yn, zn, maskn | Аналогична SLAB за исключением того, что любые из горизонтальных ребер и боковых граней могут отсутствовать. В этом смысле она аналогична предложению PRISM_. |
CSLAB_ topmat, botmat, sidemat,
n, h, x1, y1, z1, mask1, . . . xn, yn, zn, maskn |
Является расширением SLAB_. Первые три параметра используются для указания наименования/индекса покрытия для верхней, нижней и боковой поверхностей. Все остальные параметры аналогичны параметрам предложения SLAB_. |
Перейти на Основные пространственные фигуры
BEAM leftmat, rightmat, sidevmat, topmat, bottommat
height, x1, x2, x3, x4, y1, y2, y3, y4, t, mask1, mask2, mask3, mask4 |
Определение балки. |
Перейти на Основные пространственные фигуры
CWALL_ leftmat, rightmat, sidemat,
height, x1, x2, x3, x4, t, mask1, mask2, mask3, mask4, n, xbeg1, lower1, xend1, upper1, framevis1, ... xbegn, lowern, xendn, uppern, framevisn, m, a1, b1, c1, d1, ... am, bm, cm, dm |
Создает прямолинейную стену.
Линия привязки стены всегда преобразуется таким образом, чтобы совпадать с осью x. Боковые поверхности стены параллельны плоскости x-z. Левая и правая поверхности определяются согласно направлению оси x.. |
BWALL_ leftmat, rightmat, sidemat,
height, x1, x2, x3, x4, t, radius, mask1, mask2, mask3, mask4, n, xbeg1, lower1, xend1, upper1, framevis1, . . . xbegn, lowern, xendn, uppern, framevisn, m, a1, b1, c1, d1, . . . am, bm, cm, dm |
Сглаженная криволинейная стена, имеющая ту же структуру данных, что и CWALL_.
Единственным дополнительным параметром является radius. |
XWALL_ leftmat, rightmat, sidevmat, sidehmat,
height, x1, x2, x3, x4, y1, y2, y3, y4, t, radius, logheight, logoffset, mask1, mask2, mask3, mask4, n, xbeg1, lower1, xend1, upper1, framevis1, ... xbegn, lowern, xendn, uppern, framevisn, m, a1, b1, c1, d1, ... am, bm, cm, dm |
Расширенное определение стены на основе такой же структуры данных, как и в элементе BWALL_.
Смотрите Справочное пособие по GDL для ознакомления с дополнительными параметрами. |
Перейти на Основные пространственные фигуры
WALLHOLE n, status,
x1, y1, mask1, ... xn, yn, maskn [, x, y, z] |
С помощью этой команды Вы можете определить многоугольную фигуру, которая будет использоваться в качестве секущей в том месте стены, где размещается дверной или оконный проем.
Определенный таким образом проем будет виден только в 3D-представлении, так как на плоскости выполнение предложения WALLHOLE не имеет какого-либо эффекта. Если необходимо 2D-представление может быть описано скриптом. Примечание: для специальных проемов 3D-четверть не создается
|
Перейти на Основные пространственные фигуры
CROOF_ topmat, botmat, sidemat,
n, xb, yb, xe, ye, height, angle, thickness, x1, y1, alpha1, mask1, xn, yn, alphan, maskn |
Наклоненный скат крыши с задаваемыми углами боковых поверхностей.
|
MESH a, b, m, n, mask,
z11, z12, . . . z1m, z21, z22, . . . z2m, . . . zn1, zn2, . . . znm |
Простая сглаженная сетка на основе прямоугольника с равноотстоящей сетью.
Сторонами прямоугольника являются a и b. Величины m и n указывают на количество равноотстоящих точек вдоль осей x и y, соответственно. Значением zij является высота соответствующего узла сети. |
Перейти на Основные пространственные фигуры
ARMC r1, r2, l, h, d, alpha | Часть цилиндра, выходящая из другого цилиндра.
Линия сопряжения цилиндров также вычисляется и представляется. Угол alpha измеряется в градусах. |
ARME l, r1, r2, h, d | Часть цилиндра, выходящая из эллипсоида в плоскости y-z.
Линия сопряжения цилиндров также вычисляется и представляется. |
ELBOW r1, alpha, r2 | Сегментированное колено в плоскости x-z.
Радиус дуги равен r1, угол
|
VERT x, y, z | Вершина в плоскости x-y-z, определяемая тремя координатами. |
TEVE x, y, z, u, v | Расширение предложения VERT, включающее определение координат текстуры.
Может использоваться вместо предложения VERT, в том случае, если требуется не просто автоматическое нанесение текстуры, выполняемое системой ArchiCAD (см. предложение COOR), а заданные пользователем координаты текстуры. Примечание: использование координат (u,v) эффективно только для построения фотореалистических изображений, но отнюдь не для нанесения векторной штриховки. |
VECT x, y, z | Вектор нормали многоугольника, определяемый тремя координатами. В случае упрощенного определения (PGON.ivect = 0) можно не использовать это предложение. |
EDGE vert1, vert2, pgon1, pgon2, status | Определение ребра.
Индексы vert1 и vert2 должны отличаться и ссылаться на ранее определенные VERT. |
PGON n, ivect, status, edge1, edge2, . . . edgen | Определение сторон многоугольника.
Отрицательный индекс изменяет в многоугольнике направление запомненного вектора нормали или ребра на противоположное. |
PIPG filename, a, b, mask, n, ivect, status,
edge1, edge2, . . . edgen |
Определение многоугольника рисунка. Первые 4 параметра аналогичны элементу PICTURE, а остальные аналогичны элементу PGON. |
COOR wrap, vert1, vert2, vert3, vert4 | Локальная система координат для BODY для нанесения штриховки и текстуры.
Если индексы VERT используются только для определения локальной системы координат, то укажите их со знаком минус. |
BODY status | Формирует тело из определенных ранее примитивов. |
BASE | Сбрасывает счетчики примитивных элементов (VERT, TEVE, VECT, EDGE, PGON и PIPG).
Неявно используется после каждого определения составного элемента. |
Плоские фигуры в трехмерном пространстве
LIN_ x1, y1, z1, x2, y2, z2 | Отрезок, ограниченный точками P1(x1,y1,z1) и P2(x2,y2,z2). |
RECT a, b | Прямоугольник в плоскости x-y со сторонами a и b.
|
POLY n, x1, y1, . . . xn, yn | Многоугольник с n вершинами в плоскости x-y. Координатами i-ой вершины являются (xi, yi, 0).
|
POLY_ n, x1, y1, mask1, . . . xn, yn, maskn | Многоугольник у которого могут быть опущены
любые ребра.. Если maski = 0, то ребро, выходящее из вершины (xi,yi), отсутствует. Если maski = 1, то соответствующее ребро присутствует. Значение maski = -1 используется для указания на то, что создается
|
PLANE n, x1, y1, z1, . . . xn, yn, zn | Многоугольник с n вершинами в произвольной плоскости.
Координатами i-ой вершины являются (xi, yi, zi). Чтобы процессы отбрасывания теней и построения реалистических изображений были корректными, многоугольник должен быть плоским, однако интерпретатор не проверяет это условие. |
PLANE_ n, x1, y1, z1, mask1, . . . xn, yn, zn, maskn | Аналогична предложению PLANE за исключением того, что как и в POLY_, могут быть опущены любые ребра.
|
CIRCLE r | Окружность в плоскости x-y с центром в начале координат и радиусом r. |
ARC r, alpha, beta | Дуга (при построении каркасной модели) или сектор (в противном случае) в плоскости x-y с центром в начале координат, ограниченная углами alpha и beta и радиусом r.
Alpha и beta измеряются в градусах. |
HOTSPOT x, y, z [,unID] | Узловая точка в 3D с координатами (x, y, z).
unID является уникальным идентификатором точки в 3D-скрипте. |
Фигуры, создаваемые из ломаных линий
Значения маски используются для того, чтобы указать, должны ли присутствовать в пространственной фигуре соответствующие ребра и поверхности. Значения маски являются специфическими для каждого элемента, и смысл их значений можно найти при описании соответствующих предложений.
mask = j1 + 2*j2 + 4*j3 + 8*j4 + 16*j5 + 32*j6 + 64*j7
Значения j1, j2, j3, j4 указывают, присутствуют (1) или отсутствуют (0) соответствующие поверхности, а j5, j6, j7 указывают на присутствие (1) или отсутствие (0) соответствующих ребер.
Чтобы все ребра и поверхности присутствовали, установите значение маски равным 127.
Статус
Значения статуса используются для того, чтобы указать будет ли соответствующая вершина ломаной оставлять видимый след при повороте.
0 : все поперечные дуги/боковые ребра, исходящие из вершин, присутствуют.
1 : поперечные дуги/боковые ребра, исходящие из вершин, используются только для показа контура.
-1 : только для EXTRUDE: отмечает конец замкнутого многоугольника или отверстия и свидетельствует, что далее идет первая вершина следующего отверстия.
Для создания сглаженной 3D-фигуры установите значения всех статусов равными 1. Используйте статус 0 для получения ребра, исходящего из соответствующей вершины..
LIGHT red, green, blue, shadow,
radius, alpha, beta, angfalloff, dist1, dist2, distfalloff |
Источник света, точечный или дисковый, расположенный в начале локальных координат, излучает разноцветный [красный, зеленый, синий] световой поток вдоль оси x.
Преобразования координат влияют только на место расположения источника света и направленность освещения. Для ознакомления с комбинацией специальных параметров обратитесь к Справочному пособию по GDL. |
PICTURE expression, a, b, mask | Элемент типа рисунок, использующийся при фотосъемке.
Изображение вставляется в рамку, которая в любом из методов создания 3D-проекции трактуется как RECT. |
TEXT d, 0, expression | Трехмерное представление значения выражения числового или строкового типа в текущем стиле.
Замечание: Для совместимости с 2D-скриптами GDL высота символов в предложении DEFINE STYLE всегда выражается в мм. |
DATABASE_SET set_name [, desc_name, comp_name, unit_name, key_name, crit_name, listset_name] | Определение набора базы данных или выбор набора базы данных. Если эта команда размещается в скрипте
MASTER_GDL, то она определяет набор базы данных, содержащий дескриптор, компоненту, единицу измерения, ключ, критерии и файлы схемы сметы. |
||||||||||||
DESCRIPTOR name [,code, keycode] | Определение локального элемента общего описания. Скрипт может включать произвольное число команд DESCRIPTOR. | ||||||||||||
REF DESCRIPTOR code [, keycode] | Вызов элемента общего описания из внешней базы данных по коду и ключу. | ||||||||||||
COMPONENT name, quantity, unit [, prop_with, code, keycode, unitcode] | Описание локальной компоненты спецификаций. Скрипты могут содержать любое количество команд COMPONENT.
Смотрите Справочное пособие по GDL для ознакомления с prop_with кодами. |
||||||||||||
REF COMPONENT code [, keycode [, num_expr]] | Возвращает ссылку на компоненту во внешней базе данных по code и keycode. Значение, на которое умножается элемент в базе данных компонент может быть заменено числовым выражением num_expr, если данный параметр определен в предложении REF COMPONENT. | ||||||||||||
BINARYPROP | Ссылка на двоичные данные спецификаций (компоненты и элементы общего описания), определенные в библиотечном элементе в разделе Компоненты/Элементы общего описания. | ||||||||||||
SURFACE3D ( ) | Определяет площадь поверхности и объем трехмерной фигуры, задаваемой данным библиотечным элементом. | ||||||||||||
VOLUME3D ( ) | Определяет площадь поверхности и объем трехмерной фигуры, задаваемой данным библиотечным элементом. | ||||||||||||
POSITION position_keyword | Меняет тип элемента, связанного с компонентами и элементами общего описания, определяемых вслед за этой директивой в скрипте.
Если такие директивы не заданы в скрипте спецификаций, то спецификации библиотечного элемента вместе с их компонентами будут перечисляться в соответствии с их типом, установленным по умолчанию. Команда имеет следующие ключевые слова:
Директива остается в силе для всех последующих команд DESCRIPTOR и COMPONENT до тех пор, пока не встретится следующая директива. Скрипт может включать любое количество директив. |
||||||||||||
DRAWING | Возвращает ссылку на чертеж, описанный в 2D-скрипте того библиотечного элемента. Используется для помещения чертежей в смету. |
VALUES "name", val_def1 [, val_def2, ...,
val_defn] |
Команда определения списка значений. |
PARAMETERS name1=val1 [, name2=val2, ...,
namen=valn |
С помощью этой команды могут быть изменены значения параметра библиотечного элемента в скрипте параметров. Изменения примут силу только при следующей интерпретации. |
LOCK name1 [, name2, ... namen] | Блокирует поименованный параметр в диалоговом окне установки параметров. Заблокированный параметр будет представлен обесцвеченным в диалоговом окне и его значение нельзя изменить. |
Скрипт интерфейса пользователя
UI_DIALOG title [, sizex, sizey] | Определяет заголовок диалогового окна. В текущей версии GDL параметры sizex и sizey не используются. В скрипте интерфейса может быть только одна команда UI_DIALOG. |
UI_PAGE pagenum | Определяет закладку, в которой размещается элемент интерфейса. |
UI_BUTTON type, text, x, y, width, height | Определение кнопки на текущей закладке. Кнопки используются для перемещения с одной закладки на другую. Типы: UI_PREV для показа предыдущей закладки, UI_NEXT для показа следующей закладки. |
UI_GROUPBOX text, x, y, width, height | Прямоугольник для выделения группы логически связанных элементов. |
UI_SEPARATOR x1, y1, x2, y2 | Определение разделяющей линии, она может быть только горизонтальной или вертикальной. |
UI_PICT expression, x, y [, width, height] | Рисунок в диалоговом окне. Файл рисунка должен располагаться в установленной библиотеке. Выражение может быть именем файла или номером индекса рисунка, хранимым в библиотечном элементе, index=0 указывает на рисунок просмотра. |
UI_STYLE fontsize, facecode | Все UI_OUTFIELD и UI_INFIELD, создаваемые после этого ключевого слова, будут использовать этот стиль до следующего предложения UI_STYLE. |
UI_OUTFIELD text, x, y, width, height | Создание статического текста. |
UI_INFIELD "name", x, y, width, heitght [,versionFlag, pictName, nrImages, nrRows, cellX, cellY, imageX, imageY, imageExp1, text1, ..., imageExpn, textn] | Создание редактируемого текста или всплывающего меню для ввода параметра. Всплывающее меню создается в том случае, если тип параметра является списком значений, покрытием, штриховкой, типом линии или пером. |
Функции запроса текущего состояния
REQ ("GDL_version") | Запрашивает номер версии компилятора/интерпретатора GDL (Внимание, это не то же самое, что версия ArchiCAD). |
REQ ("Program") | Запрашивает код программы (1: ArchiCAD, 2: topCAD). |
REQ ("Serial_number") | Запрашивает серийный номер электронного ключа защиты. |
REQ ("Model_size") | Запрашивает размер текущей структуры трехмерных данных в байтах. |
REQ ("Red_of_material name")
REQ ("Green_of_material name") REQ ("Blue_of_material name") |
Запрашивает значение соответствующей компоненты цвета (красный, зеленый, синий) указанного покрытия. Результат в интервале между 0 и 1. |
REQ ("Red_of_pen index")
REQ ("Green_of_pen index") REQ ("Blue_of_pen index") |
Запрашивает значение соответствующей компоненты цвета (красный, зеленый, синий) указанного пера. Результат в интервале между 0 и 1. |
REQ ("Pen_of_RGB r g b") | Запрашивает значение индекса пера, которое ближе всего подходит к указанному цвету. Параметры r, g, b содержат значения в интервале между 0 и 1. |
REQUEST (question_name, name | index, var1 [, var2,....]) | Возвращает имя программы, макрос, этаж, идентификатор, формат единиц измерения.
Подробности смотрите в Приложении Справочного пособия по GDL. |
IND (MATERIAL, name_string) | Возвращает текущий индекс реквизитов покрытия. |
IND (FILL, name_string) | Возвращает текущий индекс реквизитов образца штриховки. |
IND (LINE_TYPE, name_string) | Возвращает текущий индекс реквизитов типа линии. |
IND (STYLE, name_string) | Возвращает текущий индекс реквизитов стиля. |
CUTPLANE [x, y, z [, side]]
[stmt1 stmt2 ... stmtn] CUTEND |
Строит плоскости сечения и удаляет отсеченные элементы. CUTPLANE может иметь различное число параметров.
Подробности смотрите в Справочном пособии по GDL. |
CUTPLANE angle
[stmt1 stmt2 ... stmtn] CUTEND |
Строит плоскости сечения и удаляет отсеченные элементы. CUTPLANE может иметь различное число параметров.
Подробности смотрите в Справочном пособии по GDL. |
CUTPOLY n,
x1, y1, . . . xn, yn [, x, y, z] [stmt1 stmt2 ... stmtn] CUTEND |
Аналогично предложению CUTPLANE, параметры принимают значение в текущей системе координат. Образующий многоугольник должен быть выпуклый и не содержать самопересечений. Сечение производится в направлении оси z, или Вы можете самостоятельно указать направление, задав вектор (x,y,z), определение которого не является обязательным.
Параметры определяют бесконечную многоугольную призму. Направление сечения совпадает с направлением призмы. Все элементы фигуры, попавшие внутрь призмы удаляются.. |
CUTPOLYA n, status, d,
x1, y1, mask1, . . . xn, yn, maskn [, x, y, z] [stmt1 stmt2 ... stmtn] CUTEND |
Аналогично предложению CUTPOLY, однако предоставляет возможность управления видимостью ребер создаваемых поверхностей. Сечение имеет форму многоугольной полубесконечной призмы. Конец секущего тела не может выходить за пределы рассекаемой фигуры. |
CUTSHAPE d
[stmt1 stmt2 ... stmtn] CUTEND |
При d=0.0 секущей является плоскость x-y, удаляются все элементы фигуры выше плоскости x-y.
d<0.0 определяет Г-образное сечение. Удаляется часть фигуры выше плоскости x-y, расположенная в положительном направлении по оси x (x>=0). d > 0.0 определяет П-образное сечение. Удаляется часть фигуры выше плоскости x-y, расположенная в промежутке 0 < x < d. |
FRAGMENT2 fragment_index, use_current_attributes_flag | Фрагмент с указанным индексом fragment_index выводится в окно полного 2D-вида с учетом текущих преобразований. |
FRAGMENT2 ALL, use_current_attributes_flag | Все фрагменты выводятся в окно полного 2D-вида с учетом текущих преобразований. |
BINARY mode [, section] | Это специальная команда для включения двоичных объектов в макрос GDL.
Множество вершин, векторов, ребер, многоугольников, тел и покрытий считываются из специального раздела файла библиотечного элемента. Они преобразуются в соответствии с текущими преобразованиями и объединяются в 3D-модель. Данные, содержащиеся в двоичном разделе, недоступны для редактирования пользователем.. Для ознакомления со значениями параметров и другими подробностями смотрите Справочное пособие по GDL. |
PROJECT2 projcode, angle, method | Создает проекцию 3D-скрипта в том же библиотечном элементе и добавляет построенные линии в параметрический 2D-символ.
Для ознакомления со значениями параметра projcode смотрите Справочное пособие по GDL. |
DRAWING2 | Создает чертеж библиотечного элемента, связанного с библиотечным элементом спецификации, содержащим эту команду. |
DRAWING3 projcode, angle, method | Создает проекцию 3D-скрипта библиотечного элемента, связанного с библиотечным элементом спецификации, содержащим данную команду.
Все параметры определяются по аналогии с PROJECT2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Приводимые ниже дополнительные коды маски/статуса позволяют создавать ломаные со специфическими отрезками и дугами. Они определяют отрезок или дугу, продолжающую ломаную в данной точке. Исходная маска/код(ы) статуса эффективны только в точке их определения (после дополнительного кода включается "+s").
Предыдущее состояние ломаной: заданы текущее положение и направляющая.
Отрезок по абсолютным координатам второй точки. |
|
где 0 < s < 100 |
Отрезок по относительным координатам второй точки. |
|
где 0 < s < 100 |
Отрезок по длине и направлению |
|
где 0 < s < 100 |
Отрезок по длине вдоль направляющей |
|
где 0 < s < 100 |
Установить начальную точку |
|
|
Замкнуть ломаную |
|
|
Установить направляющую |
|
|
Установить точку центра |
|
|
Дуга, касающаяся направляющей и оканчивающаяся в точке |
|
где 0 < s < 100 |
Дуга, касающаяся направляющей и имеющая заданные радиус и угол |
|
где 0 < s < 100 |
Дуга по точке центра и точке на радиусе конца дуги |
|
где 0 < s < 100 |
Дуга по точке центра и углу |
|
где 0 < s < 100 |
Окружность по ее центру и радиусу |
|
где 0 < s < 100
В данном случае влияние статуса s распространяется на всю окружность. Все углы измеряются в градусах. Неиспользуемые координаты, которые приведены со значениями 0 (для кодов 300, 700, 4000), могут иметь произвольные значения. |
Кроме того, реквизиты могут также определяться прямо в GDL-скрипте. Имеется два варианта:
Любой скрипт GDL может содержать определения покрытий, текстуры, штриховки, типов линий и стилей до первого использования их названий.
Определение покрытия
Расширенное определение штриховки
Определение типа линии
Определение стиля
DEFINE MATERIAL name type, m1, m2, . . . mn | Любой скрипт GDL может содержать определения покрытий до первого использования их названий. Покрытие, определенное таким образом, может использоваться только для 3D-элементов в самом скрипте и в скриптах нижнего уровня.
Смысл параметров и их допустимые значения приведены в Справочном пособии по GDL. |
DEFINE TEXTURE name, filename, x, y, mask, angle | Любой GDL-скрипт может содержать определение текстуры до первого использования ее названия. Текстура, определенная таким образом, может использоваться только в самом скрипте и в скриптах нижнего уровня.
Смысл параметров и их допустимые значения приведены в Справочном пособии по GDL. |
DEFINE FILL name pat1, pat2, pat3, pat4, pat5, pat6, pat7, pat8,
spacing, angle, n, freq1, dir1, offsetx1, offsety1, m1, len11, . . . lenm1, ... freqn, dirn, offsetxn, offsetyn, mn, lenn1, . . . lennm |
Любой скрипт GDL может содержать определения штриховок до первого использования их названий. Штриховка, определенная таким образом, может использоваться только в самом скрипте и в скриптах нижнего уровня.
Растровый рисунок штриховки определяется параметрами pat1...pat8 и используется в ArchiCAD только, если в диалоге команды Параметры/Вывод на экран... для параметра Штриховка поверхностей установлено значение Растровый рисунок. Для определения растрового рисунка, выберите его элементарную единицу штриховки. Такая элементарная единица представляется точками и пробелами в прямоугольной сетке с 8 делениями по горизонтали и вертикали (8x8). эти 8 параметров являются десятичными представлениями двоичных значений, определяющих рисунок штриховки (1 определяет точку, 0 - пробел). Вторая часть параметров определяют векторную штриховку (Параметры/Вывод на экран.../Штриховка поверхностей/Векторная штриховка) как совокупность пунктирных линий, повторяющихся с заданной частотой (freqi). Каждая такая линия описывается направлением (diri), смещением относительно начала координат (offsetxi, offsetyi) и определением образца, который представляется последовательностью чередующихся отрезков и пробелов, заданной длины (lenij). |
Перейти на Определение реквизитов
Расширенное определение штриховки
DEFINE FILLA name
pat1, pat2, pat3, pat4, pat5, pat6, pat7, pat8, spacingx, spacingy, angle, n, freq1, doffset1, dir1, offsetx1, offsety1, m1, len11, . . . lenm1, ... freqn, doffsetn,dirn, offsetxn, offsetyn, mn, lenn1, . . . lennm |
Расширение предложения DEFINE FILL.
В Справочном пособии по GDL можно ознакомиться со значениями дополнительных параметров. |
Перейти на Определение реквизитов
DEFINE LINE_TYPE name spacing, n, len1, . . . lenn | Любой скрипт GDL может содержать определения типов линий до первого использования их названий. Тип линии, определенный таким образом, может использоваться только для 2D-элементов в самом скрипте и в скриптах нижнего уровня..
В Справочном пособии по GDL можно ознакомиться со значениями дополнительных параметров. |
Перейти на Определение реквизитов
DEFINE STYLE name font_family, size, anchor, facecode
DEFINE STYLE name PLOTMAKER, size, anchor, slant DEFINE STYLE name PLOTTER, size, anchor, slant |
Любой скрипт GDL может содержать определения стилей до первого использования их названий. Стиль, определенный таким образом, может использоваться только в самом скрипте и в скриптах нижнего уровня..
В Справочном пособии по GDL можно ознакомиться со значениями дополнительных параметров. |