Сложные типы линий могут содержать встроенные формы, которые хранятся в файлах форм. Линии сложных типов используются для обозначения инженерных сетей, границ, контуров и т.д.
Как и простые, сложные линии строятся динамически между задаваемыми пользователем вершинами. Формы и текстовые объекты, являющиеся частью сложных линий, всегда отображаются полностью и никогда не обрезаются.
Дескрипторы образца типа линии, содержащих объекты форм аналогичны дескрипторам простых типов линий.
Формы в типах линий описываются следующим образом:
[shape_name,shape_filename] or [shape_name,shape_filename,transform]
Здесь атрибут преобразование является необязательным и может задавать любую последовательность следующих параметров (через запятую):
R=## Относительный угол поворота
A=## Абсолютный угол поворота
U=## Вертикальный угол поворота
S=## Масштаб
X=## Смещение по X
Y=## Смещение по Y
В данном случае ## обозначает десятичное число со знаком (1, -17, 0,01 и т.д.). Угол поворота измеряется в градусах, остальные величины в единицах чертежа в соответствии с масштабом типа линий. После букв, обозначающих операции преобразования , ставятся знак равенства и число.
Ниже приведено описание линии с именем CON1LINE, повторяющееся звено которой состоит из линейного участка, пробела и формы CON1 из файла ep.shx. (Обратите внимание, что для правильной работы следующего примера необходимо, чтобы путь к файлу es.shx был известен системе.)
*CON1LINE, --- [CON1] --- [CON1] --- [CON1] A,1.0,-0.25,[CON1,ep.shx],-1.0
За исключением выражения в квадратных скобках, описание полностью совпадает с описанием простого типа линий.
Как было отмечено ранее, в общей сложности для описания формы, входящей в состав линии сложного типа, можно использовать 6 параметров. Только первые два из них являются обязательными и фиксированными, остальные четыре можно опустить или поменять местами. Ниже приведены два примера описания форм с использованием различных параметров.
[CAP,ep.shx,S=2,R=10,X=0.5]
Строится форма с именем CAP, описанная в файле ep.shx, в масштабе, в два раза превышающем масштаб единиц данной линии, повернутая относительно касательной к линии на 10 градусов против часовой стрелки и с отступом в 0,5 единиц по оси X.
[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1]
С помощью приведенной выше строки строится форма с именем DIP8, которая определена в файле pd.shx, со смещением по оси X на 0,5 единиц чертежа перед чертежом формы и по оси Y на одну единицу чертежа над линией, с нулевым углом поворота и в масштабе, равном масштабу единиц данной линии.
Форма добавляется в описание типа линии следующим образом:
[shape_name,shape_filename,scale,rotate,xoffset,yoffset]
Значения масштаба, поворота, смещения по оси X и Y должны быть выражены как десятичные числа со знаком, такие как 1, -17 или 0,01.
Имя используемой формы. Обязательный параметр. При его отсутствии тип линий не определяется. Если имя_формы отсутствует в указанном файле формы, тип линий загружается и может использоваться, но без внедренной формы.
Имя скомпилированного файла определения формы (SHX). При его отсутствии тип линий не определяется. Если имя_файла_формы не задано (путь не задан), выполняется поиск файла по вспомогательным путям программы. Если имя_файла_формы полностью задано, но не найдено в указанной папке, то путь удаляется, и выполняется поиск файла по вспомогательным путям программы. Если файл не найден, тип линий загружается и может использоваться, но без внедренной формы.
Используемый для формы масштабный коэффициент, на который умножается изначально определенный масштаб формы. Масштабный коэффициент должен содержать префикс S=, например s=0,5, указывающий масштабный коэффициент, равный 0,5. Если изначально определенный масштаб формы равен 0, значение S= само по себе используется в качестве масштаба.
Угол поворота формы, отображаемый в типе линий. Угол поворота должен содержать префикс U=, R= или A=.
Значение может быть снабжено
Этот параметр задает отступ формы по оси X, отсчитываемый от вершины линии. Смещение должно содержать префикс X=, например X=0,1, указывающий смещение, равное 0,1. Если смещение не задано или равно нулю, форма строится без смещения. Этот параметр употребляется, если необходима сплошная линия, включающая формы. На значение не влияет коэффициент масштаба, заданный выражением S=value.
Этот параметр задает отступ формы по оси Y, отсчитываемый от вершины линии. Смещение должно содержать префикс Y=, например Y=0,1, указывающий смещение, равное 0,1. Если смещение не задано или равно нулю, форма строится без смещения. Этот параметр употребляется, если необходима сплошная линия, включающая формы. На значение не влияет коэффициент масштаба, заданный выражением S=value.