Forge, API и программирование – Русский – только для чтения
Задавайте вопросы и делитесь знаниями по Autodesk Forge и программированию на API программного обеспечения Autodesk
отмена
Отображаются результаты для 
Показать  только  | Вместо этого искать 
Вы имели в виду: 

Как влияет переменая ANGBASE на угол, вводимый с помощью getangle

4 ОТВЕТ 4
РЕШЕНО
Ответить
Сообщение 1 из 5
Anonymous
2640 просмотров, 4 ответов

Как влияет переменая ANGBASE на угол, вводимый с помощью getangle

Друзья! Из официальной справки:

 

It is important to understand the difference between the input angle and the angle returned by getangle . Angles that are passed to getangle are based on the current settings of ANGDIR and ANGBASE in theCommand Reference. However, once an angle is provided, it is measured in a counterclockwise direction (ignoring ANGDIR) with zero radians as the current setting of ANGBASE

 

Я мало что понял. Вот как это трактует Полещук и думаю, он перевёл правильно:

 

При вводе угла с помощью числа он принимается с учетом значения системных переменных ANGBASE и ANGDIR; возвращаемое значение учитывает значение ANGBASE и игнорирует значение ANGDIR.

 

Так или иначе, я понял, что величина вводимого угла зависит от переменной ANGBASE. Причём, как именно зависит, не написано. Я бы, например, к вводимому углу прибавлял ANGBASE. Ну то есть устанавливаю ANGBASE, допустим, 60 градусов. Угол с помощью getange ввожу 45 градусов. А при выводе его я учту, что ANGBASE это 60 градусов. То есть к 60-ти прибавлю 45 и получу 105 градусов и это значение и выведу.

 

(Не забываем также, что про путаницу в автокаде с радианами и градусами, то есть её нужно учесть)

 

Но суть я думаю, ясна. А теперь два кода абсолютно одинаковых. Только первый устанавливает ANGBASE в 0 градусов, а второй 57. Каким же образом ANGBASE влияет на величину вводимого угла? А никаким. И там и там угол на выходе 0.785398 радиан (45 градусов вводится и 45 градусов и выводится). В общем, непонятно в связи с этим, что значит возвращаемое значение учитывает значение ANGBASE, если по факту наблюдаем обратное.

 

(defun c:foo ()

  ;сперва установим AUNITS в 0
  (command "_setvar" "ANGBASE" 0)

  ;проверим, что AUNITS равна 0
  (setq temp (getvar "AUNITS"))
  (princ "AUNITS равна ")
  (princ temp)
  (princ " ")


  ;теперь установим ANGBASE в 0
  (command "_setvar" "ANGBASE" 0)


  ;проверим, что ANGBASE равна 0
  (setq temp (getvar "ANGBASE"))
  (princ "ANGBASE равна ")
  (princ temp)
  (princ " ")
  

  ;теперь введём угол 45 и посмотрим чем он равен
  (setq temp (getangle "Введи угол ")) 

  (princ "угол равен ")
  (princ temp)
  (princ)


  )
(defun c:foo ()

  ;сперва установим AUNITS в 0
  (command "_setvar" "ANGBASE" 0)


  ;проверим, что AUNITS равна 0
  (setq temp (getvar "AUNITS"))
  (princ "AUNITS равна ")
  (princ temp)
  (princ " ")


  ;теперь установим ANGBASE в 57 градусов
  (command "_setvar" "ANGBASE" 57)


  ;проверим, что ANGBASE равна 0
  (setq temp (getvar "ANGBASE"))
  (princ "ANGBASE равна ")
  (princ temp)
  (princ " ")
  

  ;теперь введём угол 45 и посмотрим чем он равен
  (setq temp (getangle "Введи угол ")) 

  (princ "угол равен ")
  (princ temp)
  (princ)


  )

Спасибо, кто откликнется.

4 ОТВЕТ 4
Сообщение 2 из 5
Alexander.Rivilis
в ответ: Anonymous

(getangle) игнорирует и ANGBASE и ANGDIR, (getorient) игнорирует только ANGDIR

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Сообщение 3 из 5
Anonymous
в ответ: Alexander.Rivilis

Похоже, что игонрирует. Но что-то же это значит:

 

Важно понимать разницу между углом ввода и угол, возвращаемой getangle. Углы, которые передаются getangle основаны на текущих настройках ANGDIR и ANGBASE в Command Reference. Однако, как только угол есть, он измеряется в направлении против часовой стрелки (игнорируя ANGDIR) с нулевыми радианами как в текущей настройки ANGBASE.

 

Не может же эта белиберда значить НИЧЕГО (ну то есть что getangle игнорирует ANGDIR и ANGBASE)

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++

 

Я не знаю, я не силён в английском, но в конце концов то, что getangle игнорирует ANGDIR и ANGBASE пишется так:

 

The getangle ignores ANGDIR and ANGBASE

 

Что то же умное хотели донести создатели этим абзацем, что же?

Сообщение 4 из 5
Alexander.Rivilis
в ответ: Anonymous


@Anonymous wrote:

Что то же умное хотели донести создатели этим абзацем, что же?


Это не создатели, а "технические писатели". К сожалению они не всегда понимают предметную область.

Но в данном случае дело не в этом. Если ты задаешь явно значение угла (в текущих единицах), то значения ANGBASE и ANGDIR игнорируются. Но (!!!) если ты задаёшь угол двумя точками, то отсчет угла идёт от ANGBASE. Например, если я задам ANGBASE = 45 градусов и в ответ на (getangle) укажу точки (0 0) и (10 10) то получу результат - 0. Если же ANGBASE будет равно 0, то для этих же точек (getangle) вернёт 0.785398

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Сообщение 5 из 5
Anonymous
в ответ: Anonymous


koanichL2GH5 написано:

Похоже, что игонрирует. Но что-то же это значит:

 

Важно понимать разницу между углом ввода и угол, возвращаемой getangle. Углы, которые передаются getangle основаны на текущих настройках ANGDIR и ANGBASE в Command Reference. Однако, как только угол есть, он измеряется в направлении против часовой стрелки (игнорируя ANGDIR) с нулевыми радианами как в текущей настройки ANGBASE.

 

Не может же эта белиберда значить НИЧЕГО (ну то есть что getangle игнорирует ANGDIR и ANGBASE)

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++

 

Я не знаю, я не силён в английском, но в конце концов то, что getangle игнорирует ANGDIR и ANGBASE пишется так:

 

The getangle ignores ANGDIR and ANGBASE

 

Что то же умное хотели донести создатели этим абзацем, что же?

 

В данном случае белиберда - это цитируемый машинный перевод 🙂 А в английском оригинале все написано абсолютно четко (разумеется, для знающих английский язык). Чтобы правильно понять смысл, нужно знать разницу между английскими глаголами PASS и PROVIDE. И тот и другой можно перевести как "передать", "указать". Но! Глагол PASS связан с движением или направлением движения (отсюда паспорт - т.е. буквально проход через порт, "пас" - пропуск хода, "пассажир" и т.д.). А PROVIDE означает прямую передачу чего либо (отсюда "провайдер"- тот, который даёт доступ). Потому PASS AN ANGLE по смыслу означает буквально "указать угол движением" или "задать угол по направлению", т.е., указать его мышкой на экране. А PROVIDE AN ANGLE означает "дать значение угла", т.е. ввести его в виде числового значения. Есть и другие мелочи. Потому вот как должен выглядеть смысловой, а не буквальный перевод цитируемого абзаца:


Важно понимать разницу между задаваемым углом, и углом, который возвращает функция getangle. Углы, задаваемые мышкой на экране, вводятся с учетом текущих настроек ANGDIR и ANGBASE (см. Перечень Команд). Однако, если введено числовое значение угла, он измеряется в направлении против часовой стрелки (игнорируя ANGDIR), а значение ANGBASE полагается равным 0 радиан.

 

Не нашли то, что искали? Задайте вопросы в сообществе или поделитесь своими знаниями.

Новая тема  

Autodesk Design & Make Report