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

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

Меню

Маркет


беспроводные выключатели для мебели
Ответ
 
Опции темы Опции просмотра
Старый 14.09.2019, 00:17  
БАЗИС 11-2023 - Скрипты
 
Аватар для AlexBolton
AlexBolton
Модератор
Регистрация: 19.02.2008
Адрес: www
Сообщений: 3,943

Сказал(а) спасибо: 7,295
Поблагодарили 16,918 раз(а) в 3,211 сообщениях
Версия для печати Отправить по электронной почте
AlexBolton AlexBolton вне форума 14.09.2019, 00:17
Рейтинг: ()

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

Новшества Базис Мебельщик версии 11:
.....
6. Работоспособность скриптов, созданных в более ранних версиях, не гарантируется в версии БАЗИС 11.
.....
52. Разработана панель инструментов для скриптов, на которую можно вывести, например, часто используемые скрипты, со своими иконками, хинтами и т.д.
53. Добавлена возможность автозапуска выбранного скрипта на любое из двух событий – Загрузка модели, и/или Сохранение модели.
.....

Новшества Базис Мебельщик версии 2021:

16. Отладчик скриптов.



VISUAL CODE

Код:
Примеры скриптов из видео

Вес панелей.js
Выделить панели без облицовки.js
Панель по 3 точкам.js
Прифуговка кромки.js
node.js обновился с 7.0.0 до 8.11.3

Напиши себе Базис или Моя первая тумбочка 2
Комплект - руководство+ файлы+ скрипт

Обратите внимание на полезные ответы в этой теме!

__________________
.
▓▒░ Халявы не бывает ░▒▓

[ Как правильно задавать вопросы на форумах ] | [ Как просто, быстро и правильно опубликовать фото и файлы в сообщении 15.03.2024]

[ USDownloader - удобно и безопасно скачиваем с файлообменников 09.02.2024] | [ Обходим блокировки сайтов, торрентов, месенджеров, ФО - RU - UA]


Любые вопросы по любому системному и мебельному софту, любые конвертации, настройки и т.д. >сюда< (кроме озвученных в мануалах, инструкциях и темах форума) ...

Последний раз редактировалось AlexBolton; 09.01.2024 в 11:56..
Просмотров: 599707
Ответить с цитированием Вверх
14 пользователя(ей) сказали cпасибо:
Старый 26.11.2021, 15:07   #551
Vanya2012
Новичок
 
Регистрация: 25.10.2016
Адрес: Люберцы
Сообщений: 4
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Vanya2012 пока не определено
По умолчанию

Спасибо! Очень помогло! А это можно как-то реализовать в Базис-Салоне?
Точнее, какой путь в скрипте указать в МПЛ для картинки, чтоб Салон мог её прочесть?
Vanya2012 вне форума   Ответить с цитированием Вверх
Старый 26.11.2021, 15:13   #552
kos100pudov
Местный
 
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 700 раз(а) в 265 сообщениях
Вес репутации: 292
kos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Vanya2012 Посмотреть сообщение
Спасибо! Очень помогло! А это можно как-то реализовать в Базис-Салоне?
Точнее, какой путь в скрипте указать в МПЛ для картинки, чтоб Салон мог её прочесть?
тут не подскажу...

вообще в скриптах пути к файлам прописываются относительно папки с самим скриптом, это если файл лежит в папке со скриптом или в его подпапках - "картинка1.jpg"
иначе путь нужно прописывать явно, но с двойными слэшами, допустим "C:\\Users\\Пользователь\\Documents\\Bazis\\Script s\\25.картинки на форме\\картинка1.jpg"

а в салонных скриптах разве есть функционал оконных форм?
__________________
Оно поди конечно если, а как коснись чего-нибудь, так вот те на пожалуйста..
kos100pudov вне форума   Ответить с цитированием Вверх
Старый 02.12.2021, 14:21   #553
bbb i ko
VIP
 
Регистрация: 04.07.2012
Сообщений: 1,946
Сказал(а) спасибо: 3,974
Поблагодарили 3,530 раз(а) в 1,157 сообщениях
Вес репутации: 1043
bbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспорима
По умолчанию

Цитата:
Сообщение от Igor_482 Посмотреть сообщение
Есть вариант, работает не только в БМ 2021, но после работы данного кода в смету выводится только в нем. Этот метод должен быть универсальным и для других версий, но для этого необходимо более тщательно изучить структуру хранимых данных в объекте Params.
PHP код:
var oPanel = Model.Selected,
oParams = oPanel.Params,
oMaterialAttendance = oParams.NodeNew('MaterialAttendance'),
oList = oMaterialAttendance.NodeNew('List'),
oItem = oList.NodeNew(''),
oArt = oItem.NodeNew('Art'),
oName = oItem.NodeNew('Name'),
oCount = oItem.NodeNew('Count');

oItem.Value = undefined;
oArt.Value = 'артикул';
oName.Value = 'некий материал';
oCount.Value = 999;
происходит не понятное для меня с реализацией этого кода. Создаю панель - выполняю скрипт, появляется доп.материал. Взял готовую модель - выделяю панель, выполняю скрипт - материалов нет. Но! далее добавляю вручную на эту панель доп.материал, нажимаю очистить доп.материалы - в свойствах доп.материалы пропадают. Но если открываю доп.материалы на просмотр, то в таблице как раз есть материал добавленный скриптом "некий материал". Также его видит и Смета.

пс. Взял другую модель - в ней все штатно отрабатывает
ппс. С чем это может быть связано?
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 02.12.2021, 17:14   #554
Igor_482
VIP
 
Аватар для Igor_482
 
Регистрация: 03.09.2008
Сообщений: 174
Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
Вес репутации: 366
Igor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личностьIgor_482 - просто великолепная личность
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
С чем это может быть связано?
Проблема может быть связана с созданием скриптом второй копии записи "MaterialAttendance" и подчиненного ему списка "List" функцией "NodeNew" в котором перечисляются все дополнительные материалы.

Для исключения этого следует использовать в скрипте в соответствующих вызовах функцию "FindOrCreate" вместо "NodeNew"


Код HTML:
var oPanel              = Model.Selected,
    oParams             = oPanel.Params,
    oMaterialAttendance = oParams.FindOrCreate('MaterialAttendance'),
    oList               = oMaterialAttendance.FindOrCreate('List'),
    oItem               = oList.NodeNew(''),
    oArt                = oItem.NodeNew('Art'),
    oName               = oItem.NodeNew('Name'),
    oCount              = oItem.NodeNew('Count');

oItem.Value  = undefined;
oArt.Value   = 'артикул';
oName.Value  = 'некий материал';
oCount.Value = 999;
[свернуть]

Так же уточню, что сам не изучал и не реализовывал на практике эту возможность в скрипте, другими словами код был просто демонстрацией возможности. А для написания полноценного скрипта стоит изучить и поэкспериментировать всеми любимые не документированные возможности требующегося для этого объекта - "Params".

Здесь перечислены свойства и функции подопытного


Код HTML:
OnQueryPassword: undefined
OnNodeLoaded: undefined
Version: 0
Password: 
Compress: false
RawByteStr: 
DataString: 
HeaderDataString: 
SaveToStream: function SaveToStream() { [native code] }
LoadFromStream: function LoadFromStream() { [native code] }
SaveToFile: function SaveToFile() { [native code] }
LoadFromFile: function LoadFromFile() { [native code] }
Assign: function Assign() { [native code] }
Clear: function Clear() { [native code] }
Date: [object Undefined]
Str: [object Undefined]
Float: [object Undefined]
Int: [object Undefined]
Bool: [object Undefined]
Nodes: [object Undefined]
DataSize: 0
AsString: 
AsFloat: 0
AsInteger: 0
AsBool: false
Value: undefined
RecursiveCount: 6
Count: 1
Owner: undefined
Doc: [object Undefined]
Name: Params
Delete: function Delete() { [native code] }
Complexity: function Complexity() { [native code] }
NodeNew: function NodeNew() { [native code] }
FindNode: function FindNode() { [native code] }
FindOrCreate: function FindOrCreate() { [native code] }
NodesClear: function NodesClear() { [native code] }
DeleteNode: function DeleteNode() { [native code] }
Search: function Search() { [native code] }
SearchPath: function SearchPath() { [native code] }
QueryValue: function QueryValue() { [native code] }
QueryNode: function QueryNode() { [native code] }
QueryNewNode: function QueryNewNode() { [native code] }
SetData: function SetData() { [native code] }
GetData: function GetData() { [native code] }
GetDataStream: function GetDataStream() { [native code] }
SaveStrings: function SaveStrings() { [native code] }
LoadStrings: function LoadStrings() { [native code] }
IsEmpty: function IsEmpty() { [native code] }
WriteVariant: function WriteVariant() { [native code] }
OverwriteVariant: function OverwriteVariant() { [native code] }
ReadVariant: function ReadVariant() { [native code] }
WriteBool: function WriteBool() { [native code] }
OverwriteBool: function OverwriteBool() { [native code] }
ReadBool: function ReadBool() { [native code] }
WriteInteger: function WriteInteger() { [native code] }
OverwriteInteger: function OverwriteInteger() { [native code] }
ReadInteger: function ReadInteger() { [native code] }
WriteFloat: function WriteFloat() { [native code] }
OverwriteFloat: function OverwriteFloat() { [native code] }
ReadFloat: function ReadFloat() { [native code] }
WriteString: function WriteString() { [native code] }
OverwriteString: function OverwriteString() { [native code] }
ReadString: function ReadString() { [native code] }
WriteDateTime: function WriteDateTime() { [native code] }
OverwriteDateTime: function OverwriteDateTime() { [native code] }
ReadDateTime: function ReadDateTime() { [native code] }
WriteData: function WriteData() { [native code] }
ReadData: function ReadData() { [native code] }
WriteObject: function WriteObject() { [native code] }
ReadObject: function ReadObject() { [native code] }
AddChildrenFromNode: function AddChildrenFromNode() { [native code] }
AssignChildren: function AssignChildren() { [native code] }
WriteAsXml: function WriteAsXml() { [native code] }
Compare: function Compare() { [native code] }
[свернуть]
Igor_482 вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
bbb i ko (02.12.2021), Ovsyanicov (03.12.2021)
Старый 02.12.2021, 20:46   #555
bbb i ko
VIP
 
Регистрация: 04.07.2012
Сообщений: 1,946
Сказал(а) спасибо: 3,974
Поблагодарили 3,530 раз(а) в 1,157 сообщениях
Вес репутации: 1043
bbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспорима
По умолчанию

Igor_482, да так доп.материалы стали записываться и в проблемной модели. Спасибо
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 03.12.2021, 15:07   #556
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Подскажите пожалуйста.
В скриптах БМ реализовано выбор точки на сцене, а если мне необходимо выделить грань или плоскость с подсветкой этого выбираемого элемента то как быть? Т.е при наведении курсора на ребро подсвечивалось ближайшее к курсору ребро.
Можно ли это как то реализовать скриптами?
Я нашел только функцию GetEdge. но она не выделяет ребра и при этом выбирает непонятно какое ребро.
В задаче у меня стоит построить багеты на корпусе, вот и хочу сначала построить контур, а потом по этому контуру строить багеты с запилами.
rombler вне форума   Ответить с цитированием Вверх
Старый 03.12.2021, 20:23   #557
kos100pudov
Местный
 
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 700 раз(а) в 265 сообщениях
Вес репутации: 292
kos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личность
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Подскажите пожалуйста.
В скриптах БМ реализовано выбор точки на сцене, а если мне необходимо выделить грань или плоскость с подсветкой этого выбираемого элемента то как быть? Т.е при наведении курсора на ребро подсвечивалось ближайшее к курсору ребро.
Можно ли это как то реализовать скриптами?
Я нашел только функцию GetEdge. но она не выделяет ребра и при этом выбирает непонятно какое ребро.
В задаче у меня стоит построить багеты на корпусе, вот и хочу сначала построить контур, а потом по этому контуру строить багеты с запилами.
прям чтоб после указания ребро оставалось выделенным или подсвеченным у меня не получилось.
возможно вам поможет:
выбрать любое ребро, любого объекта:
GetEdge('укажите ребро (этот текст не обязателен, можно использовать пустые кавычки)', Model);
ссылка на любое ребро, для получения дальнейшей инфы:
var edge = GetEdge('', Model);
дальше можно получить данные:
edge.EdgeType - бывает 1-линия, 2-дуга, 3-круг
edge.First = координата первой точки в 3д пространстве (т.е. нужно использовать edge.First.x для получения координат по оси x, ну и т.д.)
edge.Last = координата последней точки в 3д пространстве
ну и т.д. и т.п.
общий список свойств и методов для edge:
[object T3DEdge].GVertices =
[object T3DEdge].Vertices =
[object T3DEdge].GLast =
[object T3DEdge].GFirst =
[object T3DEdge].Last =
[object T3DEdge].First =
[object T3DEdge].VertList =
[object T3DEdge].Length =
[object T3DEdge].Count =
[object T3DEdge].DynamicEdge =
[object T3DEdge].Color =
[object T3DEdge].Owner =
[object T3DEdge].EdgeType =
[object T3DEdge].Assign =
[object T3DEdge].Clone =
[object T3DEdge].CloneWOOwner =
[object T3DEdge].Dir =
[object T3DEdge].GDir =
[object T3DEdge].AddVertex =
[object T3DEdge].InvertDirection =
[object T3DEdge].Transform =
[object T3DEdge].DrawLines =
__________________
Оно поди конечно если, а как коснись чего-нибудь, так вот те на пожалуйста..
kos100pudov вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
rombler (06.12.2021), skromvit (13.01.2022)
Старый 03.12.2021, 21:06   #558
Slav
Местный
 
Регистрация: 15.05.2012
Адрес: Москва
Сообщений: 259
Сказал(а) спасибо: 43
Поблагодарили 210 раз(а) в 89 сообщениях
Вес репутации: 212
Slav - весьма и весьма положительная личностьSlav - весьма и весьма положительная личностьSlav - весьма и весьма положительная личность
По умолчанию

Всем привет. Подскажите. Можно ли в пространстве модели создать произвольное отверстие , задав его диаметр, глубину, вектор направления и точку начала?
Slav вне форума   Ответить с цитированием Вверх
Старый 03.12.2021, 23:30   #559
kos100pudov
Местный
 
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 700 раз(а) в 265 сообщениях
Вес репутации: 292
kos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Slav Посмотреть сообщение
Всем привет. Подскажите. Можно ли в пространстве модели создать произвольное отверстие , задав его диаметр, глубину, вектор направления и точку начала?
задавался этим вопросом... просто создать в модели отверстие нельзя, т.к. отверстие это свойство фурнитуры.
как с нуля создать фурнитуру так и не узнал.
в итоге при необходимости:
есть файл фурнитуры в которой нет ничего, пустая модель фурнитуры.
подгружаю ее в модель.
у объекта "фурнитура" есть свойство Holes, которое отвечает за отверстия.
через него можно добавить отверстие методом - фурнитура.Holes.NewHole();
создаю ссылку на это отверстие;
далее задаю этому отверстию тип, позицию, направление, глубину, диаметр.
перестраиваю фурнитуру, чтоб зафиксить изменения.
вуаля.
естественно изначально "пустая фурнитура" ставиться в ноль ГСК с нулем градусов по осям.
далее можно играть, либо смещать и поворачивать саму фурнитуру, а отверстия строить с "базовым" расположением/направлением, либо фурнитуру ставить в "нуле" и играть чисто позицией отверстия и его направлением. это уже решается стаднартно через ...ToGlobal(...), ...ToObject(....) ну и т.д.
примитивный скрипт и "пустая фурнитура" для него во влож.
Вложения
Тип файла: zip отверстия в модели с нуля.zip (1.9 Кб, 25 просмотров)
__________________
Оно поди конечно если, а как коснись чего-нибудь, так вот те на пожалуйста..
kos100pudov вне форума   Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
Dzen_zs (28.11.2022), PravCom (04.12.2021), rombler (25.02.2022), Slav (04.12.2021)
Старый 04.12.2021, 00:45   #560
Slav
Местный
 
Регистрация: 15.05.2012
Адрес: Москва
Сообщений: 259
Сказал(а) спасибо: 43
Поблагодарили 210 раз(а) в 89 сообщениях
Вес репутации: 212
Slav - весьма и весьма положительная личностьSlav - весьма и весьма положительная личностьSlav - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от kos100pudov Посмотреть сообщение
задавался этим вопросом... просто создать в модели отверстие нельзя, т.к. отверстие это свойство фурнитуры.
Благодарю вас за ответ. Я хотел бы что бы мы с вами этот вопрос продолжили "раскуривать" в соседней ветке . Вопрос был наводящий на более глобальный вопрос по написанию скрипта поиска "проблемных деталей" и обработке таких деталей в модели перед базис ЧПУ.
Slav вне форума   Ответить с цитированием Вверх
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис ЧПУ 2021/2024 AlexBolton Базис-мебельщик 2021-2024 126 Вчера 08:56
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 714 06.03.2024 09:09
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1441 27.02.2024 10:48
V-Ray в Базис Мебельщик 11/2023 nayrogi Система БАЗИС 70 29.01.2024 17:25
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1524 07.12.2022 19:53


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


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

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