Изменение свойств объектов
Команда chprop изменяет значения различных свойств объектов. Возможные значения свойств объектов представлены в следующих разделах.
Изменение цвета объектов
chprop color [partly|wholly] <Objects> <N>
Команда изменяет цвет объектов <Objects>
на цвет с кодом <N>
. Код цвета <N>
должен быть в пределах от 0 до 239 или 242. Цвет 242 - это прозрачный цвет, который можно назначать структурным объектам (группам), чтобы входящие в состав группы подобъекты не изменяли свой цвет.
Изменение типа линии линейных объектов
chprop ltype [partly|wholly] <Objects> <N>
Команда изменяет тип линии линейных объектов <Objects>
на тип линии с кодом <N>
.
Изменение толщины линии
chprop lwidth [partly|wholly] <Objects> <N>
Команда изменяет толщину линии объектов <Objects>
, устанавливая ее равной <N>
. Однако следует иметь ввиду, что в K3 существует два типа отображения линий на видовом окне в зависимости от их толщины – в один пиксел и в два пиксела. Порог толщин линии устанавливается через карточку параметров (команда Установки/Параметры) в закладке Сцена/Состояние (см. рисунок).
Изменение свойства «Инструмент»/«Не инструмент»
chprop tool <Objects>
chprop not_tool <Objects>
Команды устанавливают для объектов <Objects>
свойство «инструмент» (tool
) или «не инструмент» (not_tool
). Это свойство определяет, будет ли объект удаляться при выполнении булевых операций. Объекты, имеющие свойство «инструмент» остаются при выполнении булевых операций, а сама операция производится с копиями этих объектов.
Изменение свойств отображения объектов
chprop frame <Objects>
Команда включает отображение объектов <Objects>
каркасом на всех видах.
chprop renderframe <Objects>
Команда включает отображение объектов <Objects>
каркасом на видах, где установлено полутоновое отображение.
chprop nonerenderframe <Objects>
Команда включает отображение объектов <Objects>
каркасом на видах, где установлено векторное отображение.
chprop normal <Objects>
Команда включает нормальное отображение объектов <Objects>
на всех видах.
Данные команды управляют режимом отображения твердотельных объектов.
Заливка объектов
chprop mapping [partly|wholly] [List] <Objects>
Команда осуществляет заливку объектов <Objects>
по параметрам в интерактивном режиме. В диалоговом окне (см. рисунок «Заливка объектов») необходимо указать секцию для закрашивания и материал. Поскольку данная команда использует диалоговое окно, применять эту команду в макропрограммах не рекомендуется.
Если задан ключ List
, команда показывает множество использованных в объектах <Objects>
материалов в формате Название материала (индекс материала). Если использован материал из неподключенной библиотеки материалов, то название материала — пустая строка, а индекс — нормальная строка.
Возможен синтаксис:
#var chprop mapping [partly|wholly] List <Objects>
В этом случае переменной var
присваивается 0, если в выбранных объектах не используются материалы, или 1, если используются.
chprop mapping [partly|wholly] [Rename] <Objects> <String1> <String2>
Команда заменяет используемые материалы в объектах <Objects>
, в индексе (полном имени текстуры) которых существует подстрока <String1>
на материал, индекс которого получается из индекса используемого материала заменой подстроки <String1>
на подстроку <String2>
при условии, что такой материал существует. Команда выдает протокол сделанных замен материалов.
Возможен синтаксис:
#var chprop mapping [partly|wholly] [Rename] <Objects> <String1> <String2>
Переменной var
присваивается 0, если не было сделано ни одной замены, или 1, если была сделана хотя бы одна замена.
Примеры:
// Заменить в выбранных объектах используемые материалы из библиотеки pkm6_0
// на материалы из библиотеки pkm6_3 с теми же номерами.
ChProp mapping Rename : "pkm6_0" "pkm6_3";
// Заменить в выбранных объектах используемый материал из библиотеки pkm6_0_imp.#86 ДСП Ольха темная
// на материал из библиотеки pkm6_3_iml.#12 Дерево Ольха рыжая.
ChProp mapping Rename : "pkm6_0_imp.#86" "pkm6_3_imp.#12";
chprop mapbypars [partly|wholly] <Objects> <Params>
Команда осуществляет заливку объектов <Objects>
по параметрам <Params>
.
Заливка распространяется только на объекты типа тело или пленка. При выборе на верхнем уровне объектов типа группа, заливка будет распространятся на все тела и пленки внутри этой группы.
Ввод параметров заливки представляет собой зацикленную последовательность пар:
<ParameterCode> <ParameterValue>
и завершается либо ключевым словом done
, либо знаком ;
<ParameterCode>
— целое число. Допустимые коды приведены в таблице (см. ниже).
Значение параметра зависит от кода и может быть либо целым числом, либо числом с плавающей точкой, либо строкой. При неверном задании кода или значения ошибка не выдается, просто эта пара игнорируется. У выбранных для заливки объектов будут изменяться только те параметры, которые введены в команде. Остальные останутся такими, какими были до вызова команды.
В графе таблицы «Умолчание» приведены значения параметров заливки у объектов, созданных стандартными корневыми средствами системы.
|
|
|
|
---|---|---|---|
|
Номер текстурной секции раскрашивания |
Номер конкретной секции раскрашивания. Либо: -1 — Для всех секций 0 — Для остальных секций |
|
|
Имя материала |
Строка с именем материала, или число с индексом материала в библиотеке материалов |
|
|
Масштаб текстуры по U — координате |
Число с плавающей точкой по абсолютной величине больше чем 0.0000001 |
|
|
Масштаб текстуры по V – координате |
Число с плавающей точкой по абсолютной величине больше чем 0.0000001 |
|
|
Сдвиг текстуры по U — координате |
Любое число с плавающей точкой |
|
|
Сдвиг текстуры по V — координате |
Любое число с плавающей точкой |
|
|
Угол поворота текстуры в градусах |
Любое число с плавающей точкой |
|
|
Сглаживание текстуры |
0 – не сглаживать 1 – сглаживать |
|
|
Размножение текстуры |
0 – не размножать 1 – размножать |
|
|
Смешивание текстуры и цвета |
0 – Использовать только цвет 1 – Использовать только текстуру 2 – Модулировать белым цветом 3 — Смешивать текстуру и цвет 4 – Модулировать цветом |
|
|
Локальная прозрачность в процентах |
от 0 (полностью не прозрачный) до 100 (полностью прозрачный) |
|
|
Режим подсветки ребрами |
0 – Не подсвечивать 1 – Подсвечивать цветом по умолчанию 2 – Подсвечивать цветом каркаса 3 – Подсвечивать заданным цветом |
|
|
Цвет ребер (используется, если предыдущий параметр равен 3) |
0 – 239 (Индекс в 240-цветной палитре K3) |
|
|
Режим вычисления масштабов текстуры |
0 – Задаются вручную (смотри параметры 2, 3) 1 – Вычисляются по габаритам текстурной секции 2 — Вычисляются по габаритам координатной плоскости 3 — Вычисляются по габаритам объекта |
|
|
Режим вычисления сдвигов текстуры |
0 – Задаются вручную (смотри параметры 4, 5) 1 – Вычисляются по габаритам текстурной секции 2 — Вычисляются по габаритам координатной плоскости 3 — Вычисляются по габаритам объекта |
|
|
Показ задних граней у прозрачных секций |
0 – Не показывать 1 – Показывать |
|
В описываемой команде код 0 задает секцию раскрашивания. Все остальные параметры будут воздействовать именно на эту секцию, до тех пор, пока не будет задана другая секция. Кроме конкретного номера секции можно задать значения:
-1 — Для всех секций
0 — Для остальных секций
Пример.
ChProp MapByPars All Done
0, -1 // Для всех секций
1, “In.Met.m3” // Меняем код материала на “In.Met.m3”
// – имя материала в таблице материалов
0, 3 // А для 3й секции
1, 12 // Меняем код материала на 12-й
// в текущей библиотеке материалов
14, 1 // Режим вычисления масштабов и
15, 1 // сдвигов – по габаритам текстурной секции
9, 1 // Режим наложения – только текстура
done; // Больше ничего не меняем, команда закончилась
chprop mapbydropper onlyaddinfo|notuseaddinfo|useaddinfo <SectionFrom> textsection <SectionTo1>, textsection <SectionTo2>, …, textsection <SectionToN>
chprop mapbydropper onlyaddinfo|notuseaddinfo|useaddinfo <SectionFrom> objects [partly|wholly] <Objects>
Команда осуществляет заливку объектов (objects <Objects>
) или текстурной секции объекта (textsection <SectionTo1>
, textsection <SectionTo2>
, ..., textsection <SectionToN>
) по образцу материала <SectionFrom>
, взятого из текстурной секции другого материала.
Дополнительные ключи:
onlyaddinfo
— только общая информация. Из исходного объекта берется только общая информация о наложении материала (локальная прозрачность, отображение задних граней у прозрачных объектов, подсветка каркасных линий);
notuseaddinfo
— без общей информации. Использовать только информацию о материале из исходной текстурной секции;
useaddinfo
— с общей информацией. Использовать информацию о материале из исходной текстурной секции и общую информацию о наложении материала.
В данной команде вместо указания объекта или секции для раскрашивания возможно использование ключа other
, который позволяет сменить образец для раскрашивания. То есть, его использование аналогично повторному вызову команды.
О секциях раскрашивания
Любое тело или пленка в K3 разбиты на несколько секций раскрашивания, каждая из которых имеет свой номер. Объекты конкретных приложений обычно имеют смысловые секции. Например: торец и боковая часть бревна; Декоративная поверхность и вспомогательная поверхность пола и т.п. Номер конкретной секции у конкретного объекта зависит от приложения (Мебель, Коттедж и пр.).
У объектов, созданных корневыми средствами системы, секции формируются по геометрическому принципу наименьшей вырожденности по отношению к одной из координатных плоскостей локальной системы координат объекта. У таких объектов номер секции может принимать одно из следующих значений (см. таблицу):
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
brepmapper <Object> <Section>
Команда brepmapper позволяет явно задать всем секциям объекта <Object>
типа "Тело" номер секции <Section>
.
Функции работы с библиотекой материалов
Int MatIDByPath(string <MatName>)
Функция MatIDByPath возвращает номер материала в организаторе материалов по названию, заданному строкой <MatName>
.
Пример.
=MatIDByPath("Lb.pkm6_0_iml.#11"); 207
Данная команда в макропрограммах не используется.
Изменение графического масштаба
chprop grfcoeff [partly|wholly] <Objects>
Команда меняет графический масштаб (коэффициент) у объектов <Objects>
.
Изменение слоя объектов
chprop layer [partly|wholly] <Objects> done <LayerName>
Команда меняет слой объектов <Objects>
на слой с именем <LayerName>
.