|
|
|
|
|
06.06.2017, 08:56
|
|
БАЗИС 10 - Скрипты
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565
Сказал(а) спасибо: 303
Поблагодарили 452 раз(а) в 189 сообщениях
06.06.2017, 08:56
Рейтинг:
()
Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 10 в этой теме.
Последний раз редактировалось systland; 26.12.2017 в 11:52..
|
Просмотров: 457678
|
29.08.2017, 15:05
|
#21
|
Новичок
Регистрация: 19.06.2013
Сообщений: 12
Сказал(а) спасибо: 5
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Подскажите добрые люди, как теперь в скриптах использовать схемы крепежа?
|
|
|
05.09.2017, 16:19
|
#22
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,035 раз(а) в 367 сообщениях
Вес репутации: 347
|
Цитата:
Сообщение от 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 для взаимодействия со схемами нужно поменять, поэтому подсказку для схем удалили, но старые функции, методы и свойства пока еще остались.
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
07.09.2017, 08:33
|
#23
|
Местный
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 455
Сказал(а) спасибо: 243
Поблагодарили 1,099 раз(а) в 210 сообщениях
Вес репутации: 389
|
Contour.Approximate()
Сообщите, пожалуйста, параметры.
Она, наверно, даёт отрезки, или точки.?
|
|
|
07.09.2017, 10:03
|
#24
|
Местный
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 807 раз(а) в 179 сообщениях
Вес репутации: 360
|
PHP код:
// создадим контейнер для точек
var Edge = Model.Edges.AddSpline();
// создадим контур
var ContourObject = AddContour();
ContourObject.Contour.AddCircle(0, 0, 10);
// разбиваем его на точки с отклонением не больше 0.1
ContourObject.Contour.Approximate(0.1, Edge.VertList);
for (var k = 0; k < Edge.VertList.Count; ++k) {
var Pos = Edge.VertList[k];
system.log(Pos.x + ' ' + Pos.y + ' ' + Pos.z);
}
// удаляем контейнер для точек
Model.Edges.Delete(Model.Edges.IndexOf(Edge));
|
|
|
Пользователь сказал cпасибо:
|
|
21.09.2017, 15:49
|
#25
|
Новичок
Регистрация: 28.02.2014
Сообщений: 10
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 1 сообщении
Вес репутации: 0
|
Доброго вермени суток.
Уже отвечали про схемы крепежа, но не очень помогло.
В примерах скриптов базиса схема открывается через OpenScheme.
Закинул в папку примера свой Fasteners.config - не заработало, прописал до него путь, то же самое. Прописал путь до файла в фурнитуре, так же не заработало.
В мануале вычитал про OpenFurnitureScheme/OpenFurnitureSchemes - результат ровно такой же как и с OpenScheme.
Может кто кодом показать как установить схему крепежа между двух панелей в 10-ом базисе? Буду премного благодарен.
|
|
|
21.09.2017, 16:37
|
#26
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,035 раз(а) в 367 сообщениях
Вес репутации: 347
|
Цитата:
Сообщение от djobik
Доброго вермени суток.
Уже отвечали про схемы крепежа, но не очень помогло.
В примерах скриптов базиса схема открывается через OpenScheme.
Закинул в папку примера свой Fasteners.config - не заработало, прописал до него путь, то же самое. Прописал путь до файла в фурнитуре, так же не заработало.
В мануале вычитал про OpenFurnitureScheme/OpenFurnitureSchemes - результат ровно такой же как и с OpenScheme.
Может кто кодом показать как установить схему крепежа между двух панелей в 10-ом базисе? Буду премного благодарен.
|
Нашел ошибку в своем предыдущем ответе. Файл старого формата схем - Schemes.config. Открытие схем производилось только из этого файла. После переноса настроек схем в файл Fasteners.config открытие из файла, по идее, уже не работало. На данный момент объект схемы можно получить либо из поля выбора фурнитуры (FurnitureInput и ScriptFurnitureProperty), либо создавать с нуля.
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
22.09.2017, 09:41
|
#27
|
Новичок
Регистрация: 28.02.2014
Сообщений: 10
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 1 сообщении
Вес репутации: 0
|
Цитата:
Сообщение от Letos
Нашел ошибку в своем предыдущем ответе. Файл старого формата схем - Schemes.config. Открытие схем производилось только из этого файла. После переноса настроек схем в файл Fasteners.config открытие из файла, по идее, уже не работало. На данный момент объект схемы можно получить либо из поля выбора фурнитуры (FurnitureInput и ScriptFurnitureProperty), либо создавать с нуля.
|
Не совсем то что нужно.
При установки схем через FurnitureInput имеем выходные данные в виде InFurniture, в которой нет способа задать базу расстановки для схемы. В итоге схема ставится без растягивания, как в исходнике.
При ScriptFurnitureProperty в итоге то же самое.
Может быть есть какой-то вариант указать базу?
|
|
|
22.09.2017, 11:26
|
#28
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,035 раз(а) в 367 сообщениях
Вес репутации: 347
|
Цитата:
Сообщение от djobik
Не совсем то что нужно.
При установки схем через FurnitureInput имеем выходные данные в виде InFurniture, в которой нет способа задать базу расстановки для схемы. В итоге схема ставится без растягивания, как в исходнике.
При ScriptFurnitureProperty в итоге то же самое.
Может быть есть какой-то вариант указать базу?
|
Я поковырял-поковырял, и вынужден огорчить: такого варианта нет. Обходных путей тоже не нашел.
|
|
|
24.09.2017, 15:20
|
#29
|
Пользователь
Регистрация: 31.05.2009
Адрес: Севастополь
Сообщений: 41
Сказал(а) спасибо: 11
Поблагодарили 9 раз(а) в 5 сообщениях
Вес репутации: 190
|
Очень нужна схема замены фурнитуры. Что то вроде того как реализована схема замены материалов. Очень часто произвожу замену одной и той же фурнитуры, выбирая каждую по отдельности. В скриптах я на уровне чайника, может кто поможет?
|
|
|
26.09.2017, 13:57
|
#30
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,035 раз(а) в 367 сообщениях
Вес репутации: 347
|
Цитата:
Сообщение от R0mchik
Очень нужна схема замены фурнитуры. Что то вроде того как реализована схема замены материалов. Очень часто произвожу замену одной и той же фурнитуры, выбирая каждую по отдельности. В скриптах я на уровне чайника, может кто поможет?
|
В Базисе есть кнопка "Замена фурнитуры", похожая по реализации на "Замену материалов", которая может заменить всю фурнитуру в модели. Возможно, это и ответ на заданный вопрос. Если нет, то уточните, что в Вашем понимании означает "схема замены фурнитуры" - алгоритм замены фурнитуры, отличный от Базисного, или же нечто иное?
|
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 06:35. Часовой пояс GMT +3.
|