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

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

Реклама

Реклама на портале PROMEBELclub
шкаф-купе со скидкой по акции
Реклама на портале PROMEBELclub

искусственный камень купить мебель в Екатеринбурге
Ответ
 
Опции темы Опции просмотра
Старый 06.06.2017, 09:56  
Скрипты Базис-Мебельщик 10
 
Аватар для systland
systland
Модератор
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 539

Сказал(а) спасибо: 270
Поблагодарили 385 раз(а) в 167 сообщениях
Версия для печати Отправить по электронной почте
systland systland вне форума 06.06.2017, 09:56
Рейтинг: (1 голосов - 2.00 средняя оценка)

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


Последний раз редактировалось systland; 26.06.2017 в 15:11..
Просмотров: 6618
Ответить с цитированием Вверх
Старый 11.11.2017, 15:10   #51
De_mon
Пользователь
 
Регистрация: 29.12.2014
Адрес: Уфа
Сообщений: 97
Сказал(а) спасибо: 85
Поблагодарили 69 раз(а) в 40 сообщениях
Вес репутации: 59
De_mon скоро придёт к известности
По умолчанию

Поделитесь пожалуйста скриптом установки ручек для 10й версии, руки не дойдут 9й переписать
De_mon вне форума   Ответить с цитированием Вверх
Старый 20.11.2017, 14:05   #52
Sergenald
Новичок
 
Регистрация: 21.09.2017
Сообщений: 2
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Sergenald пока не определено
По умолчанию

День добрый. И так, новая задачка пришла от куда не ждал.
Нужно:
1)создать блок
2)в него добавить панели
3)по окончании скрипта созданный блок делать не видимым (панели из него не отображаются в окне модели, в окне свойств выделен светло-серым)
С первыми двумя пунктами ни каких проблем не возникло (для наглядности в двух разных исполнениях):

Скрытый текст


b = BeginBlock('Block_1');
AddVertPanel(0,0,1000,1000,0);
EndBlock();
c = AddBlock('Block_2');
Panel = AddVertPanel(0,0,1000,1000,100);
Panel.Owner = c;
[свернуть]

а вот с третьим всё не так гладко. При использовании .Visible = false; на блоке, каким бы способом он не создавался, код не прерывается, всё отрабатывает, а по окончании просто не добавляет блок в модель.

Скрытый текст


b = BeginBlock('Block_1');
AddVertPanel(0,0,1000,1000,0);
EndBlock();
c = AddBlock('Block_2');
Panel = AddVertPanel(0,0,1000,1000,100);
Panel.Owner = c;
b.Visible = false;
c.Visible = false;
[свернуть]

Мысль 1) Visible срабатывает слишком хорошо и блока не видно даже в настройках модели, но для программы он есть. *Но материала из него нет и в смете, и восстановление видимости его не находит. Из чего делаю вывод что он просто удаляется программой.
Мысль 2) Visible не является применимой к блокам. *Но Block дочерний от List3D, а List3D дочерний от Object3, в котором и определён Visible. По этому к примеру команда alert(Block.Visible); безошибочно отрабатывает.
И так вопрос: как скрыть блок? Может кто ещё какие команды знает для работы с видимостью?
Sergenald вне форума   Ответить с цитированием Вверх
Старый 20.11.2017, 14:34   #53
Letos
Пользователь
 
Регистрация: 28.06.2017
Сообщений: 36
Сказал(а) спасибо: 10
Поблагодарили 110 раз(а) в 22 сообщениях
Вес репутации: 31
Letos скоро придёт к известностиLetos скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Sergenald Посмотреть сообщение
И так вопрос: как скрыть блок?
Вот первый попавшийся способ:

Скрытый текст

Код:
/**Имя блока. Желательно уникальное */
const blockName = 'My_script_block_#_1';
var b = BeginBlock(blockName);
AddVertPanel(0,0,1000,1000,0);
EndBlock();
//Сохраняем блок в модель
Action.Commit();
//Идем по всем объектам модели и ищем наш блок
Model.forEach((obj)=>{
    // Если имена совпадают, то это наш объект.
    // При наличии нескольких объектов с этим именем
    // в переменную b запишется последний найденный
    if (obj.Name === blockName){
        b = obj;
    }
})
// Делаем объект невидимым
b.Visible = false;
//Если заданное уникальное имя не нравится, меняем на то, 
// которое должно быть.
b.Name = 'Block_1'
[свернуть]


UPD: При сохранении объектов, созданных в скрипте, сохраняются только видимые, а все невидимые удаляются (причем так только у корневых объектов. Панель в блоке можно делать невидимой и до сохранения). Поэтому созданный блок прекрасно делался невидимым а по завершении скрипта он не переносился в модель и удалялся.

Последний раз редактировалось Letos; 20.11.2017 в 14:42. Причина: UPD
Letos вне форума   Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
djobik (21.11.2017), maxgmv (21.11.2017), Ovsyanicov (20.11.2017), Sergenald (22.11.2017)
Старый 30.11.2017, 18:55   #54
tekken2007
Новичок
 
Регистрация: 29.05.2010
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 18 раз(а) в 4 сообщениях
Вес репутации: 0
tekken2007 на пути к лучшему
По умолчанию

Всем привет! Кто то сможет исправить скрип ..использую несколько скриптов после перехода на 10 ... половина накрылась, я от этого далекий..

Скрытый текст


FileOptions = 'Труба_Настройки.xml';










MakeProperties();

Action.Properties.Load(FileOptions);



Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
}






Action.Continue();

function MakeProperties() {

Prop = Action.Properties;







Krepej = Prop.NewFurniture('Трубодержатель');
Truba = Prop.NewMaterial('Материал Трубы')
Diametr = Prop.NewNumber('Диаметр трубы', 25)
Shirina = Prop.NewNumber('Ширина трубы', 25)
Vertik = Prop.NewBool('Вертикальная')
Vertik.OnChange = function()
{
Action.Commit()
}
}

if (Vertik.Value)
{
Bok1 = GetPanel("Укажите Нижнюю панель");
Bok2 = GetPanel("Укажите Верхнюю панель");

y1k = Bok1.GabMax.y
y2k = Bok2.GabMin.y


SetCamera(p3dTop )

z1 = Bok1.GabMin.z + 1;
z2 = Bok1.GabMax.z - 20;

}
else
{
Bok1 = GetPanel("Укажите 1-ую панель");
Bok2 = GetPanel("Укажите 2-ую панель");

x1k = Bok1.GabMax.x
x2k = Bok2.GabMin.x

x1 = x1k + 1;
x2 = x2k - 1;

SetCamera(p3dLeft)

z1 = Bok1.GabMin.z + 1;
z2 = Bok1.GabMax.z - 20;


}

//TPro = Bok2.Contour.TProjection;
//alert(Bok1);

//SetCamera(Bok1.PanelSideEnum(true));

//SetCamera(Bok1.PanelSideEnum=true);









function MoveOdj()
{
DeleteNewObjects()
Truba.SetActive()
Ext = AddExtrusion('Труба D25');
Ext.Name = 'Труба'
// выталкиваемый профиль
//truba = 'Труба25.frw'
//Ext.Contour.AddCircle(0, 0, Diametr.Value*0.5)
if (Shirina.Value < Diametr.Value) {
Ext.Contour.AddCircle(0, 0, Diametr.Value * 0.5);
}
else {
d = Shirina.Value - Diametr.Value
p1 = NewPoint(-Diametr.Value * 0.5, 0);
p2 = NewPoint(Diametr.Value * 0.5, 0);
p3 = NewPoint(-Diametr.Value * 0.5, d);
p4 = NewPoint(Diametr.Value * 0.5, d);
centre1 = NewPoint(0, -Diametr.Value * 0.5);
centre2 = NewPoint(0, Diametr.Value * 0.5 + d);
Ext.Contour.AddArc3(p1, centre1, p2);
Ext.Contour.AddArc3(p3, centre2, p4);
Ext.Contour.AddLine(p1.x, p1.y, p3.x, p3.y);
Ext.Contour.AddLine(p2.x, p2.y, p4.x, p4.y);

};

if (Vertik.Value)
{
Ext.Orient(AxisY, AxisZ);
// установим длину профиля
Ext.Thickness =y2k-y1k;
Ext.PositionX = Action.Pos3.x
Ext.PositionY = Action.Pos3.y
Ext.PositionZ = Action.Pos3.z
Ext.Translate(NewVector(0, y1k, 0))

Krepej.Value.Mount1(Bok1, Action.Pos3.x, y1k, Action.Pos3.z, 0)
Krepej.Value.Mount1(Bok2, Action.Pos3.x,y2k, Action.Pos3.z, 0)
}
else
{
// вытянем профиль вдоль оси X
Ext.Orient(AxisX, AxisZ);
Ext.RotateX(90);
// установим длину профиля
Ext.Thickness =x2-x1;
Ext.PositionX = Action.Pos3.x
Ext.PositionY = Action.Pos3.y
Ext.PositionZ = Action.Pos3.z
Ext.Translate(NewVector(x1, 0, 0))

Krepej.Value.Mount1(Bok1, x1k, Action.Pos3.y, Action.Pos3.z, 0)
Krepej.Value.Mount1(Bok2, x2k, Action.Pos3.y, Action.Pos3.z, 0)
}

}

Action.ShowPoints = true;
Action.OnMove = function() {MoveOdj()};
Action.OnClick = function() {Action.Finish()};
Action.Continue();
[свернуть]
tekken2007 вне форума   Ответить с цитированием Вверх
Старый 01.12.2017, 09:54   #55
Letos
Пользователь
 
Регистрация: 28.06.2017
Сообщений: 36
Сказал(а) спасибо: 10
Поблагодарили 110 раз(а) в 22 сообщениях
Вес репутации: 31
Letos скоро придёт к известностиLetos скоро придёт к известности
По умолчанию

Цитата:
Сообщение от tekken2007 Посмотреть сообщение
Всем привет! Кто то сможет исправить скрип
Запустил у себя, все заработало, и вроде даже как надо. Вы бы хотя бы описали что не работает и после каких действий. Если у вас просто не запускается скрипт, то попробуйте запустить его из редактора скриптов и прислать скриншот выпавшей ошибки в логе. Во вложении пример такого скриншота.
Миниатюры
scriptError.png  
Letos вне форума   Ответить с цитированием Вверх
Старый 01.12.2017, 13:45   #56
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 247
Сказал(а) спасибо: 558
Поблагодарили 296 раз(а) в 118 сообщениях
Вес репутации: 159
Ovsyanicov - очень-очень хороший человекOvsyanicov - очень-очень хороший человекOvsyanicov - очень-очень хороший человекOvsyanicov - очень-очень хороший человекOvsyanicov - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Запустил у себя, все заработало, и вроде даже как надо
Я тоже ради интереса запустил и, вроде, заработало. Но потом выбрал в свойствах трубодержатель и понял - надо исправлять ))
Нажмите на изображение для увеличения
Название: 01.png
Просмотров: 19
Размер:	5.7 Кб
ID:	123675Нажмите на изображение для увеличения
Название: 02.png
Просмотров: 28
Размер:	34.2 Кб
ID:	123676Нажмите на изображение для увеличения
Название: 03.jpg
Просмотров: 33
Размер:	22.1 Кб
ID:	123678
При любом перемещении курсора происходит установка трубодержателей. Сама труба вместе с нужными трубодержателями устанавливается по ЛКМ.
Ovsyanicov вне форума   Ответить с цитированием Вверх
Старый 01.12.2017, 15:43   #57
Letos
Пользователь
 
Регистрация: 28.06.2017
Сообщений: 36
Сказал(а) спасибо: 10
Поблагодарили 110 раз(а) в 22 сообщениях
Вес репутации: 31
Letos скоро придёт к известностиLetos скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Ovsyanicov Посмотреть сообщение
Я тоже ради интереса запустил и, вроде, заработало. Но потом выбрал в свойствах трубодержатель и понял - надо исправлять ))
Приложил новый, исправленный скрипт (сменил формат на тхт, чтоб загрузился как вложение)

Цитата:
Сообщение от Ovsyanicov Посмотреть сообщение
При любом перемещении курсора происходит установка трубодержателей. Сама труба вместе с нужными трубодержателями устанавливается по ЛКМ.
У меня версия чуть поновее, где эта ошибка исправлена, поэтому у меня все нормально было)). Суть ошибки - функция Mount1 ставила крепеж сразу в модель, а не во временный объект. Это приводило ко многим жутким вещам - например все установленные во время перемещения курсора трубодержатели не отображались в истории. Поэтому в скрипт добавлено новое условие:
Код:
  //Если существует крепеж, и он не во временной области модели
  if (kr1 && kr1.Owner !== Model.Temp){
    //Удаляем крепеж
    DeleteObject(kr1);
    //удаляем ссылку на объект
    kr1 = undefined;
  }
Кстати, я видел, что есть "Библиотека фрагментов". Беглым поиском попытался найти "Библиотеку скриптов", но не нашел. Есть ли таковая, и, если ее нет, то имеет ли смысл ее создавать?
Вложения
Тип файла: txt script.txt (3.8 Кб, 7 просмотров)
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
maxgmv (01.12.2017), Ovsyanicov (01.12.2017)
Старый 01.12.2017, 16:17   #58
Uncle
Модератор
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 7,713
Сказал(а) спасибо: 13,076
Поблагодарили 15,180 раз(а) в 4,802 сообщениях
Вес репутации: 3925
Uncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспорима
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Беглым поиском попытался найти "Библиотеку скриптов", но не нашел. Есть ли таковая, и, если ее нет, то имеет ли смысл ее создавать?
Как таковой библиотеки нет. Есть парочка тем о скриптах от версии к версии Базиса. Обсуждается работа скрипта, какие - то скрипты выкладываются.. Массово выкладывать скрипты, на сколько я понял, компетентные в написании скриптов пользователи, особо не проявляют инициативы. Оно наверно и понятно - создание скрипта дело трудоемкое (не спец в этом, но так предполагаю)... Если у Вас есть желание открыть подобную тему, делиться в ней наработками - уверен, многие будут Вам очень признательны...
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
Uncle вне форума   Ответить с цитированием Вверх
6 пользователя(ей) сказали cпасибо:
Старый 04.12.2017, 09:06   #59
Megabyte
Пользователь
 
Регистрация: 11.07.2010
Сообщений: 99
Сказал(а) спасибо: 165
Поблагодарили 85 раз(а) в 31 сообщениях
Вес репутации: 117
Megabyte скоро придёт к известности
По умолчанию

Всем добрый день.

Возможно ли сделать следующее:
Есть список с названиями элементов (в файле Эксель, но можно записать в текстовый формат, csv или другой).
С помощью скрипта создать в Модели сборки с названиями из списка. Количество элементов в списке заранее неизвестно.

В написании скриптов мои знания сильно ниже среднего Поэтому буду долго и мучительно искать нужное решение.

Если кто-то знает несложное решение, буду признателен за подсказку.

По предыдущему сообщению вопрос снят. Решил другим способом.

Последний раз редактировалось AlexBolton; 04.12.2017 в 10:50.
Megabyte вне форума   Ответить с цитированием Вверх
Старый 07.12.2017, 10:13   #60
Letos
Пользователь
 
Регистрация: 28.06.2017
Сообщений: 36
Сказал(а) спасибо: 10
Поблагодарили 110 раз(а) в 22 сообщениях
Вес репутации: 31
Letos скоро придёт к известностиLetos скоро придёт к известности
По умолчанию

Товарищи скриптописатели, скриптопользователи, и все, неравнодушные к скриптам в Базисе. Предлагаю принять участие в обсуждении модернизации раздела системы Базис (а именно скриптов). Основная идея изложена в этом сообщении.
Letos вне форума   Ответить с цитированием Вверх
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис-Мебельщик 10 systland Базис-мебельщик 10.0 223 08.12.2017 22:34
БАЗИС-Мебельщик 7.0 Shadow Базис-мебельщик 7.0 2228 12.09.2016 19:13
Базис-мебельщик JavaScript ran Ищу работу 0 09.05.2014 10:08


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


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
© 2007-2017 PROMEBEL