Форум профессиональных мебельщиков PROMEBELclub
 
PROMEBELclub - Форум для мебельщиков: конструкторов, дизайнеров, мастеров, технологов и всех, кто имеет отношение к производству и изготовлению мебели. Программы для конструирования и дизайна мебели. Мебельная литература и обучающие пособия.
 
 

Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик. Скрипты

Меню

Маркет


беспроводные выключатели для мебели
Ответ
 
Опции темы Опции просмотра
Старый 06.06.2017, 08:56  
БАЗИС 10 - Скрипты
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565

Сказал(а) спасибо: 303
Поблагодарили 451 раз(а) в 189 сообщениях
Версия для печати Отправить по электронной почте
systland systland вне форума 06.06.2017, 08:56
Рейтинг: ()

Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 10 в этой теме.
__________________


Последний раз редактировалось systland; 26.12.2017 в 11:52..
Просмотров: 425170
Ответить с цитированием Вверх
Старый 14.09.2018, 14:46   #271
andronf
Местный
 
Регистрация: 30.03.2010
Адрес: Минск
Сообщений: 291
Сказал(а) спасибо: 1,882
Поблагодарили 226 раз(а) в 96 сообщениях
Вес репутации: 245
andronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личность
По умолчанию

Помогите починить старый скрипт Установка опор на плоскость, не работает в Б10. Вылазят ошибки в логе и окно свойств не показывается.
PHP код:
FileOptions 'Ножки с поворотом.xml';
MakeProperties();
Action.Properties.Load(FileOptions);
Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
}
BtnMake NewButtonInput('Закончить');
BtnMake.OnChange = function() {
Make(); //Вызываем функцию построения всех панелей
Action.Finish();
}
Make();
Action.Continue();
true;
////////////////////////////////////////// --------- ОКНО СВОЙСТВ

function MakeProperties() {
Prop Action.Properties;
otsZada Prop.NewNumber('Отступ Зад',50);
otsPereda Prop.NewNumber('Отступ Перед',50);
otsBoka Prop.NewNumber('Отступ бока',50);
K_row Prop.NewNumber('Количество рядов',2);
K_row.OnChange = function() {
if (
K_row.Value<2) {
K_row.Value=2
}
}
Krepej Prop.NewFurniture('Ножки');
Povorachivat Prop.NewBool('Поворачивать')
PovernutDop Prop.NewCombo('Развернить ножку на''0\n90\n180\n270');
OkBtn Prop.NewButton('Построить',true);
OkBtn.OnClick = function() {
Make(); //Вызываем функцию построения всех панелей
Action.Finish();
}
Prop.OnChange = function() {
//if (Fas.Value > Hd.Value) alert('Предупреждение! Фаска больше чем высота дна.')
Make(); //Вызываем функцию построения всех панелей
};
}
//Obj = Model.Selected;
function Make()
{
DeleteNewObjects();
//FileFreza = 'Фреза1.frw';
// conturFrezi=NewContour();
// conturFrezi.Load(FileFreza);
Model.forEach (function(Obj) {

if (
Obj.Selected == true)

{
Nojki(Obj)

}
} )

}

function 
Nojki(Obj) {
if (
Krepej.Value)
{
otsZad otsZada.Value
otsPered 
otsPereda.Value;
otsBok otsBoka.Value;
ryadov K_row.Value;
lnpv GabarityContura(Obj);
ln NewPoint(lnpv[0].x+otsBok,lnpv[0].y+otsPered);
pv NewPoint(lnpv[1].x-otsBok,lnpv[1].y-otsZad);
mejdu_ryadov = (pv.x-ln.x)/(ryadov-1)
ryad=1
while (ryad<ryadov+1)
{
if(
Povorachivat.Value)
{
ugolPovorotaPered=(-(135+(90*(ryad-1)/(ryadov-1))))
ugolPovorotaZad=(-(45-(90*(ryad-1)/(ryadov-1))))
}
else
{

ugolPovorotaPered=0
ugolPovorotaZad
=0

}

p1 NewPoint(ln.x+(mejdu_ryadov*(ryad-1)), ln.y)
p2 NewPoint(ln.x+(mejdu_ryadov*(ryad-1)), pv.y)

Krepej.Value.Mount1(Obj,Obj.ObjectToGlobal(p1), ugolPovorotaPered Math.round(PovernutDop.Value));
Krepej.Value.Mount1(Obj,Obj.ObjectToGlobal(p2), ugolPovorotaZad Math.round(PovernutDop.Value));
ryad++;
}

}

}

function 
GabarityContura(Obj)

{
var 
text '';
ln NewPoint(00); //левый низ
lv NewPoint(00); //левый верх
pn NewPoint(00); //правый низ
pv NewPoint(00); //правый верх контура
kontur Obj.Contour;
kstoron kontur.Count;
// var k_ne_krugov = 0;
for (0kstoroni++) {
if (
kontur[i].ElType != 3) { //k_ne_krugov = k_ne_krugov+1
ln NewPoint(Math.round(kontur[i].Pos1.10) / 10Math.round(kontur[i].Pos1.10) / 10);
lv NewPoint(Math.round(kontur[i].Pos1.10) / 10Math.round(kontur[i].Pos1.10) / 10);
pn NewPoint(Math.round(kontur[i].Pos1.10) / 10Math.round(kontur[i].Pos1.10) / 10);
pv NewPoint(Math.round(kontur[i].Pos1.10) / 10Math.round(kontur[i].Pos1.10) / 10);
}
};
for (
0kstoroni++) {
if (
kontur[i].ElType != 3) {
Pos1x Math.round(kontur[i].Pos1.10) / 10;
Pos1y Math.round(kontur[i].Pos1.10) / 10;
Pos2x Math.round(kontur[i].Pos2.10) / 10;
Pos2y Math.round(kontur[i].Pos2.10) / 10;

if (
ln.Pos1x) {
ln.Pos1x
};
if (
ln.Pos2x) {
ln.Pos2x
};
if (
ln.Pos1y) {
ln.Pos1y
};
if (
ln.Pos2y) {
ln.Pos2y
};

if (
lv.Pos1x) {
lv.Pos1x
};
if (
lv.Pos2x) {
lv.Pos2x
};
if (
lv.Pos1y) {
lv.Pos1y
};
if (
lv.Pos2y) {
lv.Pos2y
};

if (
pn.Pos1x) {
pn.Pos1x
};
if (
pn.Pos2x) {
pn.Pos2x
};
if (
pn.Pos1y) {
pn.Pos1y
};
if (
pn.Pos2y) {
pn.Pos2y
};

if (
pv.Pos1x) {
pv.Pos1x
};
if (
pv.Pos2x) {
pv.Pos2x
};
if (
pv.Pos1y) {
pv.Pos1y
};
if (
pv.Pos2y) {
pv.Pos2y
};

}
};

text4 = ('ln ---- ' ln.' - ' ln.'\n' +
'lv ---- ' lv.' - ' lv.'\n' +
'pn ---- ' pn.' - ' pn.'\n' +
'pv ---- ' pv.' - ' pv.'\n');
// alert(text4);
ln_v ln//левый низ выреза
pv_v pv//правый верх выреза

if (ln_v.lv.x) {
ln_v.lv.x
};
if (
ln_v.pn.y) {
ln_v.pn.y
};

if (
pv_v.pn.x) {
pv_v.pn.x
};
if (
pv_v.lv.y) {
pv_v.lv.y
};

SeredinaVisotiPaneli = (pv_v.ln_v.y) * 0.5;
SeredinaShiriniPaneli = (pv_v.ln_v.x) * 0.5;

lnpv = []

lnpv.push(ln_v);
lnpv.push(pv_v);

return 
lnpv

Спасибо.
Миниатюры
2018-09-14_14-38-21.jpg  
andronf вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
freedree (20.03.2020)
Старый 14.09.2018, 15:23   #272
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от andronf Посмотреть сообщение
Помогите починить старый скрипт Установка опор на плоскость, не работает в Б10. Вылазят ошибки в логе и окно свойств не показывается.

Спасибо.
Строки 88-89 замените на эти:
Код:
p1 = NewVector(ln.x+(mejdu_ryadov*(ryad-1)), ln.y, 0) 
p2 = NewVector(ln.x+(mejdu_ryadov*(ryad-1)), pv.y, 0)
Они создают трёхмерную точку вместо двумерной.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
andronf (14.09.2018), Анатолий.ru (14.09.2018)
Старый 20.09.2018, 09:20   #273
andronf
Местный
 
Регистрация: 30.03.2010
Адрес: Минск
Сообщений: 291
Сказал(а) спасибо: 1,882
Поблагодарили 226 раз(а) в 96 сообщениях
Вес репутации: 245
andronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личность
По умолчанию

Приветствую всех! Поправил свой скрипт из 271 поста строчками из 272 поста и все хорошо заработало, сразу. А теперь когда его запускаю происходит странная картина: окно свойств, где надо вибирать опоры не появляется, но скрипт отрабатывает и ставит опоры, которые ставились прошлый раз и в вроде бы с программой тоже все нормально, но если базис закрыть, то появляется окно с ошибкой, что обратился не в ту область памяти. Хелп.
Миниатюры
2018-09-19_14-09-15.png  
andronf вне форума   Ответить с цитированием Вверх
Старый 20.09.2018, 09:49   #274
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от andronf Посмотреть сообщение
Приветствую всех! Поправил свой скрипт из 271 поста строчками из 272 поста и все хорошо заработало, сразу. А теперь когда его запускаю происходит странная картина: окно свойств, где надо вибирать опоры не появляется, но скрипт отрабатывает и ставит опоры, которые ставились прошлый раз и в вроде бы с программой тоже все нормально, но если базис закрыть, то появляется окно с ошибкой, что обратился не в ту область памяти. Хелп.
Проверил у себя - всё нормально. У вас окно свойств вообще не показывается, или не показываются только поля начиная с поля выбора опоры? И такой еще вопрос - в лог хоть какая-нибудь ошибка вылезает?
Letos вне форума   Ответить с цитированием Вверх
Старый 20.09.2018, 12:43   #275
andronf
Местный
 
Регистрация: 30.03.2010
Адрес: Минск
Сообщений: 291
Сказал(а) спасибо: 1,882
Поблагодарили 226 раз(а) в 96 сообщениях
Вес репутации: 245
andronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личность
По умолчанию

Попробую объяснить. Мне кажется, что со скриптом все нормально, но его работа сказывается на самочувствии базиса. Иногда все нормально проходит, а иногда нет. Допустим выделил я дно, окно свойств у меня всегда открыто, запускаю скрипт, он как будто сразу отрабатывает,ставит опоры и завершает свою работу, т.е. окно свойств немного моргнет и все, никаких настроек и параметров скрипта нет и нет кнопки построить. Как то так. Думаю может на работу скрипта оказывает влияние другой крепеж, который воткнут в панель.
В логе ошибок нет.

Последний раз редактировалось andronf; 20.09.2018 в 13:36.
andronf вне форума   Ответить с цитированием Вверх
Старый 20.09.2018, 14:29   #276
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от andronf Посмотреть сообщение
Попробую объяснить. Мне кажется, что со скриптом все нормально, но его работа сказывается на самочувствии базиса. Иногда все нормально проходит, а иногда нет. Допустим выделил я дно, окно свойств у меня всегда открыто, запускаю скрипт, он как будто сразу отрабатывает,ставит опоры и завершает свою работу, т.е. окно свойств немного моргнет и все, никаких настроек и параметров скрипта нет и нет кнопки построить. Как то так. Думаю может на работу скрипта оказывает влияние другой крепеж, который воткнут в панель.
В логе ошибок нет.
Попробуйте этот скрипт. Проблема с "Запустился и сразу завершился" должна исчезнуть. Если повезёт, то и Access Violation пропадёт.
Вложения
Тип файла: rar test.rar (1.9 Кб, 17 просмотров)
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
andronf (20.09.2018)
Старый 20.09.2018, 14:52   #277
Uncle
VIP
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,024 раз(а) в 6,492 сообщениях
Вес репутации: 5257
Uncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспорима
По умолчанию

Цитата:
Сообщение от andronf Посмотреть сообщение
но если базис закрыть, то появляется окно с ошибкой, что обратился не в ту область памяти
У меня, к стати, такая же ошибка вылетает после этого скрипта. При чем, в диспетчере задач остается висеть процес bazis.exe ещё долгое время после закрытия программы. Или вручную завершаю или со временем появляется окно "Завершена работа программы Базис Мебельщик - искать решение ... и т.д."
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
Uncle вне форума   Ответить с цитированием Вверх
Старый 20.09.2018, 15:53   #278
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Uncle Посмотреть сообщение
У меня, к стати, такая же ошибка вылетает после этого скрипта. При чем, в диспетчере задач остается висеть процес bazis.exe ещё долгое время после закрытия программы. Или вручную завершаю или со временем появляется окно "Завершена работа программы Базис Мебельщик - искать решение ... и т.д."
Попробуйте попользоваться таким вариантом скрипта:
Код:
function forEachInList(list, func){
    if (!func)
        return;
    for (var i = 0; i < list.Count; i++){
        var obj = list.Objects[i];
        func(obj);
        if (obj.List){
            forEachInList(obj.AsList(), func);
        }
    }
}

UnSelectAll();
var positions = prompt("Введите номера позиций через пробел");
var nums = positions.split(' ');
forEachInList(Model, function(obj) {
    if (nums.indexOf(obj.ArtPos) >= 0) {
        obj.Selected = true;
    }
})
Если с этим скриптом всё будет нормально и моё предположение верно, то проблема в функции Model.forEach.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Uncle (20.09.2018), АлКузнецов (05.05.2020)
Старый 20.09.2018, 15:59   #279
Uncle
VIP
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,024 раз(а) в 6,492 сообщениях
Вес репутации: 5257
Uncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспорима
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Если с этим скриптом всё будет нормально
Протестировал три раза работу скрипта с последующим закрытием программы - ошибки пока не было.
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
Uncle вне форума   Ответить с цитированием Вверх
Старый 15.10.2018, 08:39   #280
Last81
Новичок
 
Регистрация: 20.04.2014
Сообщений: 24
Сказал(а) спасибо: 2
Поблагодарили 13 раз(а) в 5 сообщениях
Вес репутации: 0
Last81 на пути к лучшему
По умолчанию

помогайте форумчане.
Panel.AddPlastic(МатLak,true);
строчка кода наносит пластик на панель. а какой код позволяет назначить ориентацию текстуры пластика?
Last81 вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик. Скрипты

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис-Мебельщик 10 systland Базис-мебельщик 10 1264 13.03.2024 22:48
БАЗИС-Мебельщик 7.0 Shadow Базис-мебельщик 7 2230 29.11.2019 10:37
Базис-мебельщик JavaScript ran Ищу работу 0 09.05.2014 10:08


Текущее время: 15:54. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL

џндекс.Њетрика