Цитата:
Сообщение от const
Его эта функция или нет не знаю, но спасибо!
|
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); // за пределами контура
}