Цитата:
Сообщение от seserg
Подскажите добрые люди, как теперь в скриптах использовать схемы крепежа?
|
Схемы крепежа используются также, как и в девятке.
Два варианта взаимодействия со схемами: создание с нуля и загрузка из старого формата (файла fasteners.config).
Нашел еще один хак: Можно через поле выбора фурнитуры выбрать схему и у поля вызвать метод Mount. Вот упрощенный пример:
Код:
var furnSel = NewFurnitureInput("схема");
furnSel.OnChange = ()=>{
furnSel.Mount(panel1, panel2, x, y, z);
}
Если создавать схему с нуля, то там нужно прописывать кучу параметров схемы. Если вы пишите скрипты через VSCode, можно добавить в файл определений d.ts следующие строки, которые упростят поиск нужного параметра:
Скрытый текст
Код:
/**
* Позиция фурнитуры при установке крепежа
*/
declare enum FurniturePosition {
/**
* Установка фурнитуры внутри стыка
*/
Inside,
/**
* Установка фурнитуры снаружи стыка
*/
Outside,
/**
* Установка фурнитуры вверху стыка (только для стыков с горизонтальной панелью)
*/
Up,
/**
* Установка фурнитуры внизу стыка (только для стыков с горизонтальной панелью)
*/
Down
}
/**
* Тип схемы установки крепежа
*/
declare enum SchemeType {
/**
* Тип схемы с фиксированным отступом
*/
WithBase,
/**
* Симметричный тип схемы
*/
Symmetric,
/**
* Тип схемы с переменным шагом
*/
VariableStep
}
declare class FurnitureScheme{
/**
* Установка крепежа в стык 2-х панелей
* @param panel1
* @param panel2
*/
Mount(panel1: Panel, panel2: Panel);
/**
* Задать количество крепежа для схемы
* @param count
*/
SetFurnitureCount(count: number);
/**
* Название схемы
*/
Name: String;
/**
* Основная фурнитура
*/
Furniture: InfFurniture;
/**
* Дополнительная фурнитура
*/
AdditionalFurn: InfFurniture;
/**
* Тип схемы
*/
SchemeType: SchemeType;
/**
* Минимальный отступ (для симметричной схемы)
*/
MinSymmetricIndent: Number;
/**
* Отступ в процентах (для симметричной схемы)
*/
Percent: Boolean;
/**
* Фиксировать отступ (для симметричной схемы)
*/
FixSymmetricIndent: Boolean;
/**
* Фиксированный отступ (для схемы с фиксированным отступом)
*/
FixBaseIndent: Number;
/**
* Минимальный отступ от противоположного края (для схемы с фиксированным отступом)
*/
MinBaseIndent: Number;
/**
* Кратность шага основной фурнитуры
*/
FurnitureStep: Number;
/**
* Кратность шага Дополнительной фурнитуры
*/
AdditionalFurnStep: Number;
/**
* Положение фурнитуры в стыке
*/
FurniturePosition: FurniturePosition;
}
declare class FurnitureSchemes{
/**
* Сохранить список схем в файл
* @param filename
*/
SaveTo(filename: string);
/**
* Добавить список схем из файла
* @param filename
*/
AddFromFile(filename: string);
/**
* Найти схему по имени
* @param SchemeName
*/
GetScheme(SchemeName: string): FurnitureScheme;
/**
* Получить номер схемы в списке
* @param Scheme
*/
IndexOf(Scheme: FurnitureScheme): Number;
/**
* Наличие схемы в списке
* @param Scheme
*/
Exists(Scheme: FurnitureScheme): Boolean;
/**
* Добавить схему в список
* @param FurnScheme
*/
AddScheme(FurnScheme: FurnitureScheme);
/**
* Удалить схему по имени
* @param SchemeName
*/
DeleteScheme(SchemeName: string);
/**
* Удалить схему по номеру
* @param index
*/
DeleteIndex(index: number);
/**
* Принять изменения в схеме
* @param Scheme
*/
AcceptScheme(Scheme: FurnitureScheme);
/**
* Создать новую схему
* @param SchemeName
*/
NewScheme(SchemeName: string): FurnitureScheme;
/**
* Список схем
*/
Schemes: Array<FurnitureScheme>;
/**
* Количество схем в списке
*/
Count: Number;
}
/**
* Открыть схему установки крепежа
* @param filename
* @param schemeGroup
* @param schemeName
*/
declare function OpenFurnitureScheme(filename: string, schemeGroup: string, schemeName: string): FurnitureScheme;
/**
* Открыть группу схем установки крепежа
* @param filename
* @param schemeGroup
*/
declare function OpenFurnitureSchemes(filename: string, schemeGroup: string): FurnitureSchemes;
/**
* Создать схему установки крепежа
* @param schemeName
*/
declare function NewFurnitureScheme(schemeName: string): FurnitureScheme;
[свернуть]
P.S. Так как схемы крепежа со времен девятки изменились, то, скорее всего, часть API для взаимодействия со схемами нужно поменять, поэтому подсказку для схем удалили, но старые функции, методы и свойства пока еще остались.