Некорректно работает ручка вращения объекта
Добрый день!
При использовании ручки для изменения угла поворота, объект успешно поворачивается на любой угол, кроме 180 градусов. В этот момент, в свойствах объекта вид меняется с вида "Спереди" на вид "Сзади". Если вручную установить вид "Спереди" в свойствах объекта, то объект успешно поворачивается на 180 градусов. Исходники прилагаю.
Ответы
-
Подозреваю, что проекция стандартного объекта, повернутая на 180 градусов это и есть "другой вид"
Я об этом много раз говорил, что есть своя логика параметрических объектов.
0 -
Это можно как-то исправить? Чтобы при 180 градусах оставался вид спереди.
0 -
Боюсь, что нет.
0 -
у вас один вид и одно исполнение
0 -
я никогда не смогу разобраться:
angle = 360 - round(angleTwoPi(pntGrip2 - pntOrigin, -vecOY)); //измерение угла между векторами
ShowValue("Angle", angle);
if(0 <= angle && angle < 22.5) {
angle = 0;
}
if(22.5 < angle && angle < 67.5) {
angle = 45;
}
if(67.5 < angle && angle < 112.5) {
angle = 90;
}
if(112.5 < angle && angle < 157.5) {
angle = 135;
}
if(157.5 < angle && angle < 202.5) {
angle = 180;
}
if(202.5 < angle && angle < 247.5) {
angle = 225;
}
if(247.5 < angle && angle < 292.5) {
angle = 270;
}
if(292.5 < angle && angle < 337.5) {
angle = 315;
}
if(337.5 < angle && angle <= 360) {
angle = 360;
}но похоже тут что-то
0 -
Если просто вращать?
if(NMovingGrip == 2){
vecDirection = pntGrip2 - pntGrip0;
}
нормально?
0 -
Да нормально.
0 -
Скорее всего ошибка здесь. Я считаю угол от отрицательной оси OY.
angle = 360 - round(angleTwoPi(pntGrip2 - pntOrigin, -vecOY));
0 -
https://forum.nanocad.ru/discussion/comment/1522#Comment_1522Я не смогу разобраться. Перенёс точку поворота:
pntGrip2 = pntOrigin + vecDirection*(rL2+rL4+rL5) - vecPlane*(0);
А зачем так 👆️сложно?
if (NMovingGrip == 2) {
angle = angleTwoPi(Vector(1, 0, 0), pntGrip2 - pntGrip0);
angle = floor(angle / angleStep + 0.5) * angleStep;// angleStep, Public - изменяется из свойств
vecDirection = Vector(cos(angle), sin(angle), 0);
}Что пользователь не умеет поворачивать командой, или какая-то хитрость есть?
https://rutube.ru/video/7c8b79694334516f87f56f12d9f2f67f/?playlist=441203&playlistPage=1
0 -
Доложу, на всякий случай. Вы знаете, что можно распознавать графику и создавать несколько Исполнений и Видов без образмеривания сложной геометрии?
00:05 Создаём новую деталь в БД стандартных деталей
00:33 Добавляем «исполнение»
00:34 В контекстном меню выбираем «Непараметрическое распознавание»00:40 Указываем нужные примитивы на чертеже. Точка вставки «Исполнения» уже есть на чертеже. Это обычная точка “Point” платформы
00:44 Добавляем новый вид для данного исполнения и в правой части указываем какому «виду» оно соответствует
01:21 Добавляем новое исполнение
01:25 Редактируем название исполнений, которые будут отображаться в свойствах платформы и в при выборе в диалоге
01:43 Последовательно выбираем графику для конкретных чертежных видов и назначаем соответствие с видами MechWizard (TVIDS)02:30 Сохраняем объект в БД0
2:33 Запускаем «Мастер скриптов»02:37 Редактируем название объекта. И последовательно нажимаем кнопку «Вперед»
02:42 Указываем «Отображать объект во время вставки» и сохраняем скрипт02:52 Проверяем работу детали
03:13 Проверяем редактирование видов через панель «свойства» платформы03:19 Открываем мастер объектов
03:22 Создаем «Пользовательскую форму», нажав «Добавить форму»
03:24 Открываем форму и размещаем на ней необходимые «Элементы управления». Это «Просмотр» и «Виды и исполнения»
03:49 Находим в скрипте функцию OnDialog, удаляем или комментируем UniDialog и вместо него пишем
ShowForm ("Form1"); // Где Form1 – это имя формы созданное по умолчанию. Его всегда можно переименовать.0 -
В вашем случае, есть грип'c на изменения размеров самого обозначения, но можно создать несколько типоразмеров и так же менять исполнения (размер).
Что касается поворота - все останется таким же.
0 -
Почему в Vector передается cos и sin?
0 -
Не помню, но кажется не передается а вычисляется направление.
0 -
Нашел Ваш объект:
vecDirection = Vector(cos(angle), sin(angle), 0);
Направление по трем точкам
0 -
Я только не понял, у вас сам объект есть или нет
0
Разделы
- Все разделы
- 40 Общие вопросы
- 36 Работа nanoCAD в ОС Linux
- 323 Платформа nanoCAD
- 10 nanoCAD GeoniCS
- 72 nanoCAD BIM Строительство
- 30 nanoCAD Механика PRO
- 49 nanoCAD BIM Электро
- 11 nanoCAD BIM Вентиляция
- 10 nanoCAD BIM ВК
- 1 nanoCAD BIM Отопление
- 6 nanoCAD BIM СКС
- 40 nanoCAD BIM ОПС
- 2 nanoCAD Стройплощадка
- 3 nanoCAD Металлоконструкции
- 1 nanoCAD Конструкции PS
- 3 TDMS Фарватер
- Облака точек
- NSR Specification
- Учебным заведениям и учащимся