|
|
|
|
|
06.06.2017, 08:56
|
|
БАЗИС 10 - Скрипты
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565
Сказал(а) спасибо: 303
Поблагодарили 451 раз(а) в 189 сообщениях
06.06.2017, 08:56
Рейтинг:
()
Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 10 в этой теме.
Последний раз редактировалось systland; 26.12.2017 в 11:52..
|
Просмотров: 436246
|
23.01.2018, 20:17
|
#71
|
Пользователь
Регистрация: 15.02.2010
Сообщений: 52
Сказал(а) спасибо: 13
Поблагодарили 30 раз(а) в 15 сообщениях
Вес репутации: 184
|
Цитата:
Сообщение от Lonbus
Перестала работать расстановка позиций, в предыдущих версиях можно было так
PHP код:
Action.Control.Owner.Owner.dpModelTree.Controls[1].BtnArrangeClick();
Метод небезопасный, но при должном использовании все работало корректно. Больше похож на "костыль", но он работал.
В версиях 8 и 9 вызвать нажатие на кнопку, например, с именем BtnArrange, можно было процедурами
PHP код:
BtnArrange.PostClick(), BtnArrange.Click(), BtnArrangeClick();
Сейчас процедуры стали недоступны, с другой стороны почему-то остались процедуры унаследованные от TComponent.
Доступ к объектам TAction есть, но запуска расстановки позиций там не нашел.
Хочется, чтобы разработчики добавили TAction расстановки позиций на главную форму.
Или скажите пожалуйста где и что не нашел? Как запустить расстановку позиций?
|
Сразу скажу, что не я делал. Но мой скрипт, в котором тоже расстановка позиций использовалась переделали. Скрипт достаточно объемный, но вроде бы именно эта функция отвечает за расстановку. Правда выскакивает окошка с предложением создать чертежи, но как сказали ребята, которые переделывали скрипт, по-другом нельзя.
Зато хоть работает...
Скрытый текст
function arrangePositions() {
var mainForm = Action.Control.Owner.Owner;
if ((system.apiVersion == 85) || (system.apiVersion == 90)) {
var modelTree = mainForm.FindComponent("dpModelTree");
if (modelTree != undefined) {
if (modelTree.Visible == false) {
var actModelTree = mainForm.FindComponent("a3ModelTree");
if (actModelTree != undefined) {
actModelTree.Execute();
}
else {
alert('Недоступно событие <Структура модели>!');
return false;
}
}
if(confirm('Расстановка позиций будет выполнена заново.\nПродолжить?')) {
if (modelTree.Visible == true) {
var frmModelTree = modelTree.FindComponent("FrmModelTree");
if (frmModelTree != undefined) {
var btnArrange = frmModelTree.FindComponent("BtnArrange");
if (btnArrange != undefined) {
Action.Hint = 'Расстановка позиций...';
btnArrange.Click();
return true;
}
}
}
else {
alert('Закрыт инструмент <Структура модели>!');
return false;
}
}
else {
alert('Отменено пользователем!');
return false;
}
}
else {
alert('Недоступен объект <Структура модели>!');
return false;
}
}
else {
if(confirm("Расстановка позиций будет выполнена заново.\nДалее, при необходимости, создайте чертежи.\nПродолжить?")) {
makeDrawings = mainForm.FindComponent("a3MakeDrawings");
if (makeDrawings != undefined) {
Action.Hint = 'Расстановка позиций...';
deletePositions();
makeDrawings.Execute();
if (isEmptyPositions() == true) {
alert('Расстановка позиций не выполнена!');
return false;
}
return true;
}
else {
alert('Недоступно событие <Создать чертежи>!');
return false;
}
}
else {
alert('Отменено пользователем!');
return false;
}
}
alert('Невозможно выполнить расстановку позиций!');
return false;
}
[свернуть]
__________________
Если бы Бог хотел, чтобы мы думали только головой, он бы сделал нас колобками.
|
|
|
Пользователь сказал cпасибо:
|
|
23.01.2018, 22:24
|
#72
|
VIP
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
|
Расстановка позиций в последнем обновлении Базиса работает!
Добавлена функция расстановки позиций
Action.ArrangePositions(
All = 0,
New = 1,
Check = 2)
т.е
Action.ArrangePositions(0) - расстановка позиций заново,
Action.ArrangePositions(1) - расстановка позиций у новых объектов,
Action.ArrangePositions(2) - проверка позиций.
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
|
|
|
6 пользователя(ей) сказали cпасибо:
|
|
23.01.2018, 22:27
|
#73
|
Модератор
Регистрация: 19.02.2008
Адрес: www
Сообщений: 3,977
Сказал(а) спасибо: 7,296
Поблагодарили 16,962 раз(а) в 3,224 сообщениях
Вес репутации: 4063
|
Цитата:
Сообщение от maxgmv
Расстановка позиций в последнем обновлении Базиса работает!
|
вернули js32.dll - многое снова заработало (а в ченж логе ни слова)
но из-за node с XP проблемы остались...
|
|
|
23.01.2018, 22:31
|
#74
|
Пользователь
Регистрация: 15.02.2010
Сообщений: 52
Сказал(а) спасибо: 13
Поблагодарили 30 раз(а) в 15 сообщениях
Вес репутации: 184
|
Цитата:
Сообщение от maxgmv
Расстановка позиций в последнем обновлении Базиса работает!
Добавлена функция расстановки позиций
Action.ArrangePositions(
All = 0,
New = 1,
Check = 2)
т.е
Action.ArrangePositions(0) - расстановка позиций заново,
Action.ArrangePositions(1) - расстановка позиций у новых объектов,
Action.ArrangePositions(2) - проверка позиций.
|
Я в скриптах не понимаю ничего. Получается то, что я написал постом выше это пляски с бубном?
__________________
Если бы Бог хотел, чтобы мы думали только головой, он бы сделал нас колобками.
|
|
|
24.01.2018, 09:24
|
#75
|
VIP
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
|
Цитата:
Сообщение от AlexBolton
вернули js32.dll
|
Эта библиотека всегда была. Если не ошибаюсь без неё работать скрипты не будут.
Цитата:
Сообщение от Klim Bassenger
Получается то, что я написал постом выше это пляски с бубном?
|
С бубном или без, не знаю, но до январского обновления, действительно расстановка позиций в скриптах не работала.
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
|
|
|
Пользователь сказал cпасибо:
|
|
26.01.2018, 20:08
|
#76
|
Местный
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
|
как подключать модули node.js
типа такого
npm install excel4node
куда это писать
установить ноду отдельно?
или просто взять npm.exe оттуда
???
|
|
|
27.01.2018, 00:39
|
#77
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,032 раз(а) в 366 сообщениях
Вес репутации: 345
|
Цитата:
Сообщение от wizardpnz
как подключать модули node.js
типа такого
npm install excel4node
куда это писать
установить ноду отдельно?
или просто взять npm.exe оттуда
???
|
Для установки модулей через npm лучше установить nodejs, чтобы он подключил/установил все необходимые файлы (типа node-gyp, npm и т.д.)
|
|
|
Пользователь сказал cпасибо:
|
|
03.02.2018, 22:45
|
#78
|
Местный
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
|
работа с excel на базис10 нужно установить ноду и пакет excel4node
https://www.npmjs.com/package/excel4node
npm install excel4node
// Require library
var xl = require('excel4node');
// Create a new instance of a Workbook class
var wb = new xl.Workbook();
// Add Worksheets to the workbook
var ws = wb.addWorksheet('Sheet 1');
var ws2 = wb.addWorksheet('Sheet 2');
// Create a reusable style
var style = wb.createStyle({
font: {
color: '#FF0800',
size: 12
},
numberFormat: '$#,##0.00; ($#,##0.00); -'
});
// Set value of cell A1 to 100 as a number type styled with paramaters of style
ws.cell(1,1).number(100).style(style);
// Set value of cell B1 to 300 as a number type styled with paramaters of style
ws.cell(1,2).number(200).style(style);
// Set value of cell C1 to a formula styled with paramaters of style
ws.cell(1,3).formula('A1 + B1').style(style);
// Set value of cell A2 to 'string' styled with paramaters of style
ws.cell(2,1).string('string').style(style);
// Set value of cell A3 to true as a boolean type styled with paramaters of style but with an adjustment to the font size.
ws.cell(3,1).bool(true).style(style).style({font: {size: 14}});
wb.write('Excel.xlsx');
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
06.02.2018, 08:44
|
#79
|
Новичок
Регистрация: 21.09.2017
Сообщений: 19
Сказал(а) спасибо: 15
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
|
кто-нибудь разбирался уже, заработали схемы крепежа через скрипты? а то примеры потыкал, они как не работали так и продолжают. В обновлении не нашёл про это упоминаний, но вроде была информация что должны прикрутить.
|
|
|
06.02.2018, 10:11
|
#80
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,032 раз(а) в 366 сообщениях
Вес репутации: 345
|
Цитата:
Сообщение от Sergenald
кто-нибудь разбирался уже, заработали схемы крепежа через скрипты? а то примеры потыкал, они как не работали так и продолжают. В обновлении не нашёл про это упоминаний, но вроде была информация что должны прикрутить.
|
Вот небольшой пример:
PHP код:
var p1 = GetPanel("Укажите панель");
var p2 = GetPanel("Укажите панель");
if (p1 && p2){
Action.Continue();
var scheme = Action.Properties.NewFurniture('схема');
scheme.OnChange = function (){
DeleteNewObjects();
scheme.Value.MountScheme(p1, p2, FurniturePosition.Inside, NewVector(0, 0, 0));
}
}
установка схемы идет через функцию MountScheme();
Параметры:
1. Панель1
2. Панель2
3. Позиция установки схемы (сверху, снизу, изнутри, снаружи)
4. Базовая точка
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 09:31. Часовой пояс GMT +3.
|