Показать сообщение отдельно
Старый 31.03.2020, 18:20   #1274
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от sergio1982 Посмотреть сообщение
Там только тело вращения было.
Нашёл 8 версию, проверил и итог неутешительный - поворот панели происходит в градусах, а тело вращения поворачивается в радианах. Итоговый скрипт получился такой (добавил только условие в функции):

код

PHP код:
/**
 * Повернуть объект вокруг точки
 * @param {Object3} obj Объект
 * @param {Vector} pointGCS Точка в ГСК
 * @param {Vector} axis Ось поворота
 * @param {Number} angle Угол поворота
 */
function RotateAroundPoint(objpointGCSaxisangle){
    var 
localPoint obj.ToObject(pointGCS);
    if (
obj.AsPanel)
        
obj.RotateGCS(axisangle);
    else
        
obj.RotateGCS(axisangle 180 Math.PI);
    var 
newPointGCS obj.ToGlobal(localPoint);
    var 
diff = {
        
xpointGCS.newPointGCS.x,
        
ypointGCS.newPointGCS.y,
        
zpointGCS.newPointGCS.z,
    }
    
obj.TranslateGCS(diff);
}
var 
pan Model.Selected;
Undo.Changing(pan);
var 
center = {
    
x: (pan.GabMax.pan.GabMin.x) / 2,
    
ypan.GabMax.y,
    
z: (pan.GabMax.pan.GabMin.z) / 2
}
// поворот относительно центра панели в нижней точке по оси Y на 90 градусов
RotateAroundPoint(
    
pan,
    
center,
    
AxisY,
    
90); 
[свернуть]
Letos вне форума   Ответить с цитированием Вверх