
[[extdrVariables]]
#### extdrVariables

Представляет собой хранилище дополнительных типизированных данных ([.hl]#Переменных#) привязанных к примитиву.
Каждая переменная имеет имя, тип и "пользователькое" имя.
 * [.hl]#Имя# - идентификатор состоящий из латинских букв и цифр, начинается с буквы. По имени программа обращается
к переменным и различает их. Имя регистронезависимо
 * [.hl]#Тип# - определяет содержимое переменной, может быть как простым (<<zcadsimplytypes>>), так и сложным. сложные типы являются
комбинацией простых и определены в файле [.filepath]#rtl\system.pas# на паскалеподобном скриптовом языке
 * [.hl]#Пользователькое имя# - имя переменной для пользователя, пользователь видтит его например в инспекторе
объектов, может быть любым

[[zcadsimplytypes]]
##### Перечень простых типов данных
[cols=">4,<6"]
|======================================================
|Double|Число двойной точности
|Single|Число одинарной точности
|UnicodeString|Строка UTF16
|String|Платформозависимо. UTF8/16 На данный момент строка UTF8, возможно станет UTF16
|AnsiString|Строка UTF8
|Boolean|False/True
|Byte|8 бит, без знака
|ShortInt|8 бит, c знаком
|SmallInt|16 бит, c знаком
|LongInt|32 бит, c знаком
|Int64|64 бит, c знаком
|Cardinal|Алиас к LongWord
|Integer|Платформозависимо. 64/32/16 бит, c знаком
|PtrInt|Размерность указателя, c знаком
|Word|16 бит, без знака
|LongWord|32 бит, без знака
|QWord|64 бит, без знака
|DWord|Алиас к LongWord
|Uint64|Алиас к QWord
|Pointer|Платформозависимо. Указатель 64/32/16 бит, c знаком
|======================================================

Набор и значения переменных у примитивов можно редактировать командами <<VarsEd_com>> и <<VarsEdSel_com>>
Значения переменных доступны для изменения в инспекторе объектов (см. раздел <<objectinspector>>) при выделении примитивов.
Значения переменных можно экспортировать-импортировать командами <<DataExport_com>> и <<DataImport_com>>

Примитивы в черетеже имеют древовидную структуру, так все примитивы являются дочерними объектами чертежа,
примитивы в динамической части устройства это дочерние объекты этого устройства и т.д. При поиске у примитива какойлибо
переменной и не нахождении ее зкад обращается к родительскому примитиву и ищет ее там, так пока не дойддет до
вершины дерева - чертежа !!NEEDLINK!!

[[centralization]]
##### Централизация

Дополнительно к древовидной иерархии примитивов расширения переменных у разных примитивов могут ссылаться друг на друга.
Этот механизм называется [.hl]#централизация#

Например при выполнении схемы автоматизации и плана расположения оборудования можно примитивы [.ent]#DEVICE# обозначающие
один датчик на схеме и на плане связать между собой. Это позволит хранить характеризующий этот датчик набор переменных
в одном примитиве, но иметь к ним доступ из другого.

При таком объединении один примитив в связке выбирается главным ([.hl]#централь#), другие сылаются на него
([.hl]#представители#) В идеальном случае все переменные связки хранятся в централи, у представителей нет своих переменных,
они лишь предоставляют доступ к централи, при такой организации у пользователя не возникает путаницы с
фактическим местом нахождения переменной. Но также возможно хранить переменные и в представителях.

Создать централизованные примитивы можно командой <<VarsLink>>
