Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 11 в этой теме.
Новшества Базис Мебельщик версии 11:
..... 6. Работоспособность скриптов, созданных в более ранних версиях, не гарантируется в версии БАЗИС 11.
.....
52. Разработана панель инструментов для скриптов, на которую можно вывести, например, часто используемые скрипты, со своими иконками, хинтами и т.д.
53. Добавлена возможность автозапуска выбранного скрипта на любое из двух событий – Загрузка модели, и/или Сохранение модели.
.....
Новшества Базис Мебельщик версии 2021:
16. Отладчик скриптов.
Новшества Базис Мебельщик версии 2024:
5.«Использовать новый движок скриптов (в бета-тесте)» - Node.js v20.2.0
VISUAL CODE
Код:
Примеры скриптов из видео
Вес панелей.js
Выделить панели без облицовки.js
Панель по 3 точкам.js
Прифуговка кромки.js
Любые вопросы по любому системному и мебельному софту, любые конвертации, настройки и т.д.>сюда< (кроме озвученных в мануалах, инструкциях и темах форума) ...
Последний раз редактировалось AlexBolton; 02.05.2024 в 11:30..
Не решил, а повторил за человеком. Или несколькими человеками, скомпилировав несколько кусков кода в один)
Для человека не желающего погружаться в тему возможно хорошая подмога. Языков программирования и технологий сейчас капец как дофига, вникать в каждую жизни не хватит. Но на интеллект не катит.
Согласен. Но мы ведь тоже так действуем в большинстве своем. Учимся, повторям за кем-то разработанную программу или ее части. Единственное что в этой области пока нас отличает - что языки програмирования разработаны человеком. Но вот когда ИИ разработает свой язык программирования (если его интелект повысится до такого уровня), не доступный человеку - вот тогда боюсь нам придется туго...
Добрый день. Подскажите пожалуйста, каким образом текущее поле выбора кромки в селекторе на панели свойств (Action.Properties.NewButt('')), можно сохранить в объект, чтоб потом из этого объекта восстановить снова в поле выбора? Иными словами, как запозиционировать селектор выбора кромки в нужное (сохраненное) положение? Тот же вопрос относительно выбора материала и фурнитуры. Я понимаю, что можно через property.Save и property.Load , но это довольно коряво, к тому же, останется паразитный файл (или файлы можно как-то удалять?).
Добрый день. Итак, ниже код для определения первой и второй панели в соединении. Не вкладной и накладной, т.к. ... ну вы догадаетесь. Код работает для параметрической фурнитуры. Конкретно для конфирматов, гвоздей и шурупов. Для другой параметрической фурнитуры код аналогичен, с небольшими нюансами. Для произвольной фурнитуры немного сложнее.
PHP код:
var panelFirst; var panelSecond; Model.forEach( function(Obj){ if(Obj instanceof TFastener){ var panel = Obj.FindFastenedObjects(); for (var r=0; r<panel.length; ++r){ if (Obj.DatumMode == 3 && Obj.ParamType == 1){ if (CheckHole(Obj.Holes.First(), Obj, panel[r])){ panelSecond = panel[r]; }else { panelFirst = panel[r]; }}}}}); alert ('Первая панель в соединении - ' + panelFirst.Name); alert ('Вторая панель в соединении - ' + panelSecond.Name);
В коде использована функция CheckHole, опубликованная bbb i ko https://xn--90aakbzfbcrjl8bxh.xn--p1...=14883&page=41
Его эта функция или нет не знаю, но спасибо!
И без всяких векторов, понтов и п...жа.
А на счет моего образования, интелекта и возраста: "Прости им Господи, ибо не ведают они что творят".
P.S. И да, моего кода тут чуть более 10 строк.
const, мне нужно в очередной раз объяснять многоуважаемой публике, что вы, в очередной раз наделали в штанишки? Или кому нибудь другому данную экзекуцию доверим?
Вот я очень давно не видел такого упертого (или упоротого) представителя homo sapiens.. Я вам крайне рекомендую удалить этот позор и не плодить чушь. Не выставляйте себя на посмешище. У меня к вам на самом деле очень позитивное отношение.
const, мне лично не нужны ваши деньги и я их не вымогаю. Просто меня очень раздражает глупость человечья как таковая.. Если бы форум был устроен иначе, то мы бы с вами вообще не общались. Я или другой конструктор, выложили бы то, что вам надо, и написали ценник на кусок кода.. Нравится покупай. Не нравится -пишем самостоятельно или ждем помощи "добрых людей". И в этом случае я бы вас считал бы милым таким пушистым потенциальным клиентом...
скоро мне это все надоест.. опять час моей жизни украли..
последний раз отписываю по данной теме..дальше либо его , либо меня в бан отправьте пожалуйста
PHP код:
// переделал скрипт от const до адекватного состояния
// потому что, его скрипт вообще неадекватный
// все это для того, что бы хоть немного понять что он хотел всем этим сказать
var Obj=Model.Selected // Obj- это выделенный объект
if((Obj instanceof TFastener)&& (Obj.DatumMode == 3 )){//если Obj - является типом ообъекта "фурнитура", и она ставится по пласти одной и по торцу другой панели
var panels = Obj.FindFastenedObjects(); // panels - это панели на кторые Obj воздейсвует своими отверстиями
for (var r=0; r<panels.length; ++r){ // переберем в цикле все панели panels
var rez= CheckHole(Obj.Holes.First(), Obj, panels[r]) // отправим аргументы в функцию CheckHole
if (rez){ // если tue то
var panelSecond = panels[r]; // вторая панель - это панель, которая имеет пересечения c первым отверстием отъекта фурнитура
}else { // иначе
var panelFirst = panels[r];}// первая панель - это панель, которая не имеет пересечения c первым отверстие отъекта фурнитура
};
};
// в итоге мы получаем абсолютно глупый и самое главное локальный вывод :
alert ('Первая панель в соединении - ' + panelFirst.Name);
alert ('Вторая панель в соединении - ' + panelSecond.Name);
// недостатки скрипта: (он даже с исправлениями намного хуже того бесплатного говно-скрипта, котрый давал я выше)
// 1) скрипт работает строго под евровинт на компьютере const
// 2) если создать 2 евровинта в пользовательской фурнитуре с 2 мя отверстиями 5 и 8 мм и
// 2.1 - в структуре модели 5 диаметр первый по списку а 8 диаметр второй по списку ,
// 2.2 - в структуре модели 8 диаметр первый по списку а 5 диаметр второй по списку ,
// скрипт будет работать только в 1 из 2 возможных вариантов, то есть он не учитывает рандомные сценарии от других пользователей
// такой скрипт ни в коем случае нельзя использовать на ПК технолога , который практикует прием заказов со стороны
// 3)сама по себе функция CheckHole - сомнительная функция, поскольку определяет пересечение с применением GMax,
// и может вызвать проблемы в нахождении отверстий на криволинейном контуре
// Но поскольку основная масса делает тумбочки, то CheckHole "канает и так" .. и может считаться "годнотой"
// в принципе, под пивас работать в большинстве сценариев будет
// НО серьезные люди такие функции не используют в своей практике
// Вывод: Очередной говно-код, за то сам пишу..
function CheckHole(hole, fast, panel){ // hole- вектор, координаты центра отверстия внутри ГСК fast, fast - фурнитура, panel -панель
var holeCenter = fast.ToGlobal({ // пересчитаем координаты вектора из ГСК fast в ГСК проекта и получим 3D вектор holeCenter
x: hole.Position.x + hole.Direction.x * (hole.Depth / 2),
y: hole.Position.y + hole.Direction.y * (hole.Depth / 2),
z: hole.Position.z + hole.Direction.z * (hole.Depth / 2),
})
holeCenter = panel.ToObject(holeCenter); // пересчитаем координаты вектора holeCenter в 2D контура панели
return (holeCenter.x > panel.GMin.x) && (holeCenter.x < panel.GMax.x) && // производим сравнивание положения точки holeCenter //
(holeCenter.y > panel.GMin.y) && (holeCenter.y < panel.GMax.y) && // и возвращаем true или false в зависимости находится ли точка
(holeCenter.z > panel.GMin.z) && (holeCenter.z < panel.GMax.z); // за пределами контура
}
Вот вы решили подлить масла, а зачем? Const хоть и во многом заблуждается, но он по мне не глупый человек. И черт побери, мне нравится его эта упертость. Глядишь и правда начнет что то толковое писать тут и выкладывать...Он по крайней мере что то рабочее в виде строк кода пытается выложить.. Сидит и грызет гранит знаний. И это хорошо.
А вот вы сейчас тот самый срач развозите. Не делайте этого. Умные люди видят и читают. Хотите ему чем то помочь? Тогда выкладывайте что то по текущей проблеме. Напишите свой вариант скрипта. Если он будет работать, многие вам будут благодарны за это.
Между прочим скрипт по поиску и нахождению вкладной и накладной панели- очень хорошая заготовка (функция) для решения специфических задач. Если функция кем либо будет решена и выложена, то такая функция породит много полезного кода для огромного пласта людей, которые вообще ничего не соображают в скриптах.
Я вот лично хочу сказать Const спасибо, за то что он смог , сам того вероятно не понимая, осветить проблему и так сказать сформулировать задачу.
Иногда сама в себе постановка задачи, играет решающее значение. И она - намного важнее, навыка писать код.
Лично мне на этом форуме сам код нафик не сдался.. То что я не понимаю - вполне можно получать от ТП без геморроя. В конечном итоге я им какие никакие плачу деньги. И кстати ТП радует. Там люди на правильно сформулированный вопрос - отвечают четко и по делу. ТП ни разу не разочаровало.
То, что вы называете срач- это моя попытка бороться не сколько с отсутствием знаний (дело временное и поправимое), как попытка осадить очень ужасное качество- "самоуверенность". То есть, человек уверен и убежден, что так, как он думает -истина. И все дальнейшие попытки ему оказать помощь - бесполезны. Пока он не откажется от своего упрямства, любой здравый смысл перестает работать.
Добавлено через 10 минут
Цитата:
Сообщение от const
И без всяких векторов, понтов и п...жа.
Вот пример.. Пишет что без векторов.. И тут же выкладывает скрипт, в котором есть вектора.
Он даже понять не пытается, что вектора - это основа. И без них он далеко не уйдет.
Пока он так думает, не видать ему хорошего кода. (90% самого аху...ного кода - вектора). А самое стремное, что ему безумно нравится идея, что можно прекрасно обходиться без векторов.
А вот вы сейчас тот самый срач развозите. Не делайте этого. Умные люди видят и читают. Хотите ему чем то помочь? Тогда выкладывайте что то по текущей проблеме. Напишите свой вариант скрипта. Если он будет работать, многие вам будут благодарны за это.
Золотые слова! Вот бы ты и сам так делал!
Цитата:
Сообщение от Slav
Иногда сама в себе постановка задачи, играет решающее значение. И она - намного важнее, навыка писать код.
Согласен, но тем, кто еще не познал мудрость "векторов" сложно ее сформулировать, нужно помогать!
Цитата:
Сообщение от Slav
как попытка осадить очень ужасное качество- "самоуверенность".
А получается травля. Не говоря уже об собственной самоуверенности.
Цитата:
Сообщение от Slav
Вот пример.. Пишет что без векторов.. И тут же выкладывает скрипт, в котором есть вектора.
Он даже понять не пытается, что вектора - это основа. И без них он далеко не уйдет.
Вот! Это и нужно объяснять! Только мягко, без травли. Мож даже статью написать какую-нить, если есть возможность и желание. Я тоже не понимал, пока не погрузился! Мне до сих пор не верится, что нужно заниматься этой низкоуровневой жестью, хотя у базиса все давно реализовано, просто по какой-то причине этого нет в апи.
Цитата:
Сообщение от Slav
А самое стремное, что ему безумно нравится идея, что можно прекрасно обходиться без векторов.
А если после придёт кто то злой и умнее, и скажет что всё неправильно, конфуз получится всей благой общественности на потеху.
Цитата:
Сообщение от фломастер
просто по какой-то причине этого нет в апи.
Скрипты чтоб панельки выделить и в сообщении что то вывести, а если всё бы в приличном виде добавили в апи, то были бы не обновления, а копипаст скриптов, точнее они выглядели бы не так оригинально.
Хотя не знаю, некоторые говорят что им в ТП все секреты дарят.
А если после придёт кто то злой и умнее, и скажет что всё неправильно, конфуз получится всей благой общественности на потеху.
Вот именно! Ровно поэтому я выступаю против токсичных комментариев!
Тот, кто более информирован, определенно должен исправить статью менее подкованного человека! Это прям долг чести!
НО!!!!!!!! Этот человек не имеет права насмехаться над предположениями предшественника, он должен просто рассказать, почему это работает не так, как предполагалось предыдущим оратором.
Цитата:
Сообщение от sergio1982
Скрипты чтоб панельки выделить и в сообщении что то вывести, а если всё бы в приличном виде добавили в апи, то были бы не обновления, а копипаст скриптов, точнее они выглядели бы не так оригинально.
Хотя не знаю, некоторые говорят что им в ТП все секреты дарят.
На текщий момент форум подарил мне гораздо больше чем ТП. Я понимаю, почему ТП неинтересно заморачиваться, и им проще солгать, нежели объяснять неокону тяжелый путь векторов, понтов и ****ежа. Очень давно, представители базиса сказали мне, что их интересует вопрос как заработать денег, а остальное их мало ебет. И я понимаю эту позицию! Никто, просто так не хочет трахаться с векторами за бесплатно!
Но! Мы-то в отличие от базиса, зарабатываем не на скриптах, а на мебели! Это тяжелый труд, не менее тяжелый, чем разработка базиса! Да, базис интеллектуальный, а мебель так... ремесло.
Но! Наша задача увеличить скорость производства и свести к нулю "человеческий фактор".
Задача Базиса - увеличить прибыль!
Так давайте двигаться навстречу друг другу? В чем проблема, кроме того, что мы не умеем сотрудничать? Давайте учиться!