Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 10 в этой теме.
БАЗИС 10 - Скрипты - Страница 42
Цитата:
|
Сообщение от bbb i ko
В данном случае хочу сделать такой параметр, который будет определять площадь поверхности объекта.
|
PHP код:
let startPropsName = "name";
obj.UserPropertyName = startPropsName;// создаем параметр
obj.UserProperty[startPropsName] = 1; // пишем инфу
речь не пользовательских свойствах. В Смете в Базе Операций есть справочник Параметры с модели, там есть Пользовательские вычисляемые параметры, которые позволяют определить этот параметр через произвольный скрипт. Вот в этом скрипте не понятно как обратиться к объекту, поскольку там нет Model, Object, Object3 ... есть панель - Panel, но тогда скрипт работает только для объектов модели, построенных как панель. Вот непонятно как обратиться к произвольному объекту
Разобрался:
выдержка из мануала по Скриптам:
"Глобальные свойства БАЗИС Смета:
Panel
Доступ к параметрам панели.
Синтаксис:
Panel;
Тип данных:
Panel
Holes
Список отверстий панели
Синтаксис:
Holes;
Тип данных:
PanelHoles
Holes: свойство типа PanelHoles " 'Список отверстий панели
Material
Текущий материал
Синтаксис:
Material;
Тип данных:
String
Material: свойство типа String " "Текущий материал"
Result
Результат вычисления параметра
Синтаксис:
Result;
Тип данных:
Number
Result: свойство типа Number " 'Результат вычисления параметра'
Objects
Объекты скрипта
Синтаксис:
Objects;
Тип данных:
EstimateObjectList"
выдержка из мануала по Скриптам:
"Глобальные свойства БАЗИС Смета:
Panel
Доступ к параметрам панели.
Синтаксис:
Panel;
Тип данных:
Panel
Holes
Список отверстий панели
Синтаксис:
Holes;
Тип данных:
PanelHoles
Holes: свойство типа PanelHoles " 'Список отверстий панели
Material
Текущий материал
Синтаксис:
Material;
Тип данных:
String
Material: свойство типа String " "Текущий материал"
Result
Результат вычисления параметра
Синтаксис:
Result;
Тип данных:
Number
Result: свойство типа Number " 'Результат вычисления параметра'
Objects
Объекты скрипта
Синтаксис:
Objects;
Тип данных:
EstimateObjectList"
Цитата:
|
Сообщение от Letos
Попытался сделать пример подсчёта площади поверхности для выделенного объекта, но сразу оговорюсь - кроме того, что считаются все треугольники (будут проблемы со стыками объектов, если считать суммарную площадь нескольких объектов), ещё, из-за операций с вещественными числами (в основном, деление и корень), будет возникать погрешность (скорее всего неприемлемая). Например: есть шар с радиусом 100. Его площадь поверхности: 4*Pi*R^2 = 125663.706. Скрипт же у меня выдаёт 110134.391.
Код для получения площадиPHP код:
|
PHP код:
var area = 0;
// Получение площади поверхности объекта
function GetSurfaceArea(obj){
var result = 0;
if (obj.TriListsCount > 0) {
for (var t = 0; t < obj.TriListsCount; t++) {
var list = obj.TriLists[t];
result += list.SurfaceArea();
}
}
return result;
}
//Обработка объекта и вложенных объектов.
function ProcessObject(obj){
if (obj.List){
for (var i = 0; i < obj.AsList().Count; i++){
ProcessObject(obj[i]);
}
}
else
area += GetSurfaceArea(obj);
}
for (var i = 0; i < Model.SelectionCount; i++){
var obj = Model.Selections[i];
ProcessObject(obj);
}
alert('Площадь поверхности выделенных объектов = ' + area + 'mm\u00b2');
Цитата:
|
Сообщение от bbb i ko
речь не пользовательских свойствах. В Смете в Базе Операций есть справочник Параметры с модели, там есть Пользовательские вычисляемые параметры, которые позволяют определить этот параметр через произвольный скрипт. Вот в этом скрипте не понятно как обратиться к объекту, поскольку там нет Model, Object, Object3 ... есть панель - Panel, но тогда скрипт работает только для объектов модели, построенных как панель. Вот непонятно как обратиться к произвольному объекту
|
как в смете запустить скрипт?
Цитата:
|
Сообщение от wizardpnz
в смете тоже можно запустить скрипт? и там уже другая область видимости?
как в смете запустить скрипт? |
Я тут решил проверить свои писательские способности.
Попробовал написать инструкцию как написать скрипт для Базис-Сметы и подключить его.
Поскольку текст с картинками, то написал в Wordе и прикрепил этот файл во вложении.
Прошу сильно не пинать. Чукча не писатель
Попробовал написать инструкцию как написать скрипт для Базис-Сметы и подключить его.
Поскольку текст с картинками, то написал в Wordе и прикрепил этот файл во вложении.
Прошу сильно не пинать. Чукча не писатель
Цитата:
|
Сообщение от wizardpnz
как в смете запустить скрипт?
|
Код:
for (var i = 0; i < Objects.Count; i++){
var obj = Objects.Items[i];
if (obj.IsPanel())
Ну и еще: не все что работает в Мебельщике, работает и в Смете. Есть отличия, те же треугольники не получится получить для импортированного из автокада объекта (я надеюсь - это временно)) )
Цитата:
|
Сообщение от zorro
Я тут решил проверить свои писательские способности.
|
в смете можно получить доступ к смете изделия, которую выводит базис смета , чтобы из этих данных запилить свой отчёт???
Можно ли с помощью скрипта разрушить существующий блок?
Новые сообщения временно недоступны.
