|
|
|
|
|
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..
|
Просмотров: 425200
|
02.03.2019, 10:09
|
#361
|
Пользователь
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
|
Добрый день.
где найти ликбез по скриптам для Базис-Салон?
(язык, примеры, запуск, отладка. вообщем "что да как")
я ранее писал скрипты для Мебельщик 10
|
|
|
08.03.2019, 10:11
|
#362
|
Местный
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
|
как переименовать кромку на панели произвольным именем?
|
|
|
08.03.2019, 10:42
|
#363
|
Местный
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
|
Код:
Model.forEachPanel(
function(obj) {
for (i = 0; i < obj.Butts.Count; i++) {
var butt = obj.Butts.Butts[i];
var buttMaterial = butt.Material
butt.Material = Model.UserProperty[buttMaterial];
butt.Sign = Model.UserProperty[buttMaterial];
}
}
)
переименовать кромки согласно пользовательским свойствам модели
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
09.03.2019, 07:13
|
#364
|
Местный
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 241
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
|
Скрытый текст
BtnMake = NewButtonInput('Закончить');
BtnMake.OnChange = function() {
Action.Commit()
Action.Finish();
}
d = []
p= GetPanel("Укажите панель")
co = AddCopy(p)
d.push(co)
co.Owner = p.Owner
//co.Owner = Model.Temp;
p.Owner.Build()
Action.Commit()
p.Visible = false
p.Selected = false
for(i=0;i< d.length;i++){
pp = d[i]
c =pp.Contour
c.AddRectangle(10,10,100,100)
pp.FullBuild()
}
Action.Commit()
Action.Continue()
Action.OnFinish = function(){
p.Owner=Model.Temp
DeleteNewObjects()
//Model.Build()
}
[свернуть]
Указанная панель(то есть заменившая её копия) не удаляется вручную после скрипта. Только если вырезать всё содержимое модели и вставить назад в модель.
(Базис 10.0.3)
Подскажите, пожалуйста, Как исправить?
|
|
|
09.03.2019, 12:04
|
#365
|
Пользователь
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
|
Цитата:
Сообщение от v22884
как исправить?
|
вот так копируйте.
PHP код:
var pnFromUser = GetPanel("Укажите панель");
var cpUserPn = pnFromUser.Clone();
@Letos - метод Clone, в отличие от AddCopy создаёт копию с новым UID, а AddCopy создает с UID равным -1.
http://promebelclub.ru/forum/showpos...&postcount=283
P.S.
- в переменных все же лучше использовать var или let при объявлении
- называйте переменные нормально
- прочитайте и используйте любой Style Guide по JS
- и да пребудет с Вами хороший код
=================
=================
Всем привет.
Необходим пример по масштабированию блока с помощью ElasticResize(). Блок уже есть с определенными размерами и заданными параметрами "Эластика". Нужно изменить его текущие размеры на взятые из файла. Проблемс скорее с тригонометрией, не понимаю где начало координат и как этот Resize работет с подаваемым на вход вектором.
Хорошо , бы наглядно как то это объяснить с примером.
PHP код:
element.ElasticResize({
x: взято из внешнего файла,
y: взято из внешнего файла,
z: взято из внешнего файла
});
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
11.03.2019, 11:13
|
#366
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от IStiv
Необходим пример по масштабированию блока с помощью ElasticResize(). Блок уже есть с определенными размерами и заданными параметрами "Эластика". Нужно изменить его текущие размеры на взятые из файла. Проблемс скорее с тригонометрией, не понимаю где начало координат и как этот Resize работет с подаваемым на вход вектором.
Хорошо , бы наглядно как то это объяснить с примером.
PHP код:
element.ElasticResize({
x: взято из внешнего файла,
y: взято из внешнего файла,
z: взято из внешнего файла
});
|
Точно сказать не могу, но попробуйте конвертировать в локальную СК объекта:
PHP код:
element.ElasticResize(element.NToObject({
x: взято из внешнего файла,
y: взято из внешнего файла,
z: взято из внешнего файла
}));
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
13.03.2019, 16:57
|
#367
|
Пользователь
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
|
у меня есть тумба с "эластиком" и выставленными значениями через свойства.
Как мне выставить другое значение ширины и высоты скриптом?
совет выше не работает или я не понял как.. там точка с координатами на вход , вроде как, а мне нужно размеры точные установить.
Модель16_с эластиком.zip
|
|
|
14.03.2019, 15:45
|
#368
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от IStiv
у меня есть тумба с "эластиком" и выставленными значениями через свойства.
Как мне выставить другое значение ширины и высоты скриптом?
совет выше не работает или я не понял как.. там точка с координатами на вход , вроде как, а мне нужно размеры точные установить.
Вложение 131453
|
Насчёт совета я чуть ошибся (у вас наверняка размеры берутся уже в ЛСК блока (ШхВхГ), поэтому их переводить не надо), но растяжение производится всё же в ЛСК объекта и единственный параметр функции - новый размер блока. На основе вашей модели сделал пример:
Код:
var obj = Model.Selected;
Undo.RecursiveChanging(obj);
obj.AsList().ElasticResize({
x: obj.GSize.x,
y: 1000,
z: obj.GSize.z
});
Выделил блок "ШВ72.50Дв", запустил скрипт и блок увеличился по высоте до 1000. Работает даже если блок, с помощью поворота, "положить на спину" - всё равно он растягивается по своей локальной высоте, а не по глобальной оси У.
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
15.03.2019, 09:34
|
#369
|
Пользователь
Регистрация: 04.04.2018
Адрес: Санкт-Петербург
Сообщений: 34
Сказал(а) спасибо: 18
Поблагодарили 18 раз(а) в 3 сообщениях
Вес репутации: 0
|
Добрый день.
Домучил свой первый скрипт. Все работает даже лучше чем задумывал. Доволен, аж ладошки потеют. А вот как сохранить не умею.
Скрипт заключен в форму
//-- window Window1
Window1 = { Form : NewForm() };
Props = Window1.Form.Properties;
Window1.Form.Width = 242;
Window1.Form.Height = 233;
Window1.Form.Caption = "Window1";
//-- window Window1 properties
// ....(сам скрипт)
Window1.Button1 = Props.NewButton("Печать");
Window1.Button1.SetLayout(0, 187, 100, 22);
Window1.Button2 = Props.NewButton("Сохранить");
Window1.Button2.SetLayout(136, 187, 100, 22);
//-- window Window1 events
//-- window Window1 ends
Window1.Form.ShowModal();
можно закончить
Window1.Form.Show();
тоже работает
Не знаю что дописать, чтобы можно было сохранить и/или отправить форму с результатами
работы скрипта в печать. Искал в интернете, но не нашел (может не разобрался).
Спасибо.
|
|
|
15.03.2019, 10:35
|
#370
|
Консультант
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
|
Цитата:
Сообщение от Guamoko
Добрый день.
Домучил свой первый скрипт. Все работает даже лучше чем задумывал. Доволен, аж ладошки потеют. А вот как сохранить не умею.
Скрипт заключен в форму
//-- window Window1
Window1 = { Form : NewForm() };
Props = Window1.Form.Properties;
Window1.Form.Width = 242;
Window1.Form.Height = 233;
Window1.Form.Caption = "Window1";
//-- window Window1 properties
// ....(сам скрипт)
Window1.Button1 = Props.NewButton("Печать");
Window1.Button1.SetLayout(0, 187, 100, 22);
Window1.Button2 = Props.NewButton("Сохранить");
Window1.Button2.SetLayout(136, 187, 100, 22);
//-- window Window1 events
//-- window Window1 ends
Window1.Form.ShowModal();
можно закончить
Window1.Form.Show();
тоже работает
Не знаю что дописать, чтобы можно было сохранить и/или отправить форму с результатами
работы скрипта в печать. Искал в интернете, но не нашел (может не разобрался).
Спасибо.
|
По поводу отправки в печать - беглым поиском нашёл, что есть модуль для Nodejs ( https://www.npmjs.com/package/ipp), который отправляет в печать (но только печать по сетевому принтеру), но придётся заморочиться и пока неизвестно, удастся ли вообще его подключить.
А по поводу сохранения непонятно - вы собираетесь сохранять просто текст результата работы, или "в красивом варианте" форму с текстом в ней??
|
|
|
|
|
|
Нижняя навигация
|
|
Опции темы |
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 17:54. Часовой пояс GMT +3.
|