Как измерить угол в нанокаде
Перейти к содержимому

Как измерить угол в нанокаде

  • автор:

Как измерить угол в нанокаде

МышьОКЛента: Главная, Оформление – Выноски – Универсальная выноска

МышьОКМеню: Черчение – Выноска > Универсальная выноска…

МышьОКПанель: Утилиты –

КлавиатураОК

Командная строка: УНВ, УНВЫНОСКА (NOTE)

Команда открывает диалоговое окно Универсальная выноска для задания параметров выноски:

Кнопки добавления/удаления полей ввода текста и добавления границы:

Добавление строки поля ввода текста.

Удаление строки поля ввода текста.

Создание простой выноски.

Создание многострочной выноски.

Кнопки выбора типа стрелки линии-выноски:

Кнопки выбора выравнивания текста на полке выноски:

По левому краю полки.

По центру полки.

По правому краю полки.

Кнопка Вставить спецсимвол открывает диалог с таблицей специальных символов для их выбора и вставки в текущую позицию курсора в полях ввода текста.

Кнопка Записная книжка открывает диалог Записная книжка .

Кнопка Копирование свойств временно закрывает диалог для указания уже вставленной выноски, свойства которой нужно скопировать для назначения вновь создаваемой.

Кнопка Добавить линию-выноску предназначена для вставки дополнительных линий-выносок. Кнопка становится активной при редактировании уже вставленной в чертёж позиционной выноски.

Щелчок правой кнопки мыши в поле ввода текста открывает контекстное меню, в котором доступны дополнительные команды:

История – содержит перечень последних введенных текстовых строк.

Часто используемые – является списком, настраиваемым пользователем. Набрав нужный текст выноски, можно добавить его в список часто используемых для последующего быстрого обращения к нему.

Шаблоны – подключает шаблоны.

Поиск в Norma CS – обращается к Norma CS.

Добавить строку – добавляет строку к тексту выноски (в диалоговом окне появляется поле для новой строки).

Удалить строку – убирает строку.

Верхний индекс – вставляет верхний индекс.

Нижний индекс – вставляет нижний индекс.

Вставить дробь – вставляет дробный текст.

Взять с чертежа – позволяет выбрать текст или значение в текущем чертеже.

Внедрить объект. – вставляет объект чертежа вместо текста выноски.

Создать гиперссылку. – создает гиперссылку.

Символы – вставляет стандартный символ (градус, уклон и т. п.) или любой символ из таблицы символов ОС.

Отменить – отменяет последнее действие.

Вырезать , Копировать , Вставить – стандартные операции с использованием буфера ОС.

Удалить – удаляет текст из поля ввода.

Выделить все – выделяет весь текст в поле ввода (например, для замены).

Команда контекстного меню Взять с чертежа открывает диалог Выбор значения , позволяющий скопировать значения с объектов чертежа:

Измерить расстояние (Z) – взять с чертежа линейный или диаметральный геометрический размер. Команда может быть вызвана нажатием клавиши Z .

Измерить угол (Х) – взять с чертежа угловой размер. Команда может быть вызвана нажатием клавиши Х .

Вычислить периметр или длину траектории (С) – взять с чертежа значение периметра замкнутой линии или длину ломанной. Команда может быть вызвана нажатием клавиши С .

Вычислить площадь (V) – взять на чертеже значение площади замкнутого контура. Команда может быть вызвана нажатием клавиши V .

Составная площадь(Shift+V) – взять на чертеже значение нескольких площадей замкнутого контура.

Калькулятор (M) – вычислить числовое значение с помощью встроенного калькулятора nanoCAD.

Записная книжка (,) – вставить текстовую информацию из записной книжки.

Взять из свойства (В) – взять значения параметров стандартной детали базы данных nanoCAD. Параметр вставляется с сохранением динамической связи с объектом. При изменении параметра детали изменяется строка в поле ввода.

Примечание: Для вставки статического текста удерживайте CTRL во время выбора параметра.

Взять текст с объекта (N) – взять текст с объекта чертежа.

Отмена – отказ от команды и возврат к предыдущему меню.

Для создания универсальной выноски:

1. Ввести в текстовых полях нужный текст.

2. Выбрать необходимые параметры выноски.

3. Нажать кнопку ОК .

4. Задать точку на объекте, в которую будет направлена стрелка выноски.

5. В командной строке и контекстном меню доступны опции переключения типа стрелки линии-выноски:

Ничего – без стрелки.

Стрелка – со стрелкой.

Точка – с точкой.

6. Выбрать опцию и/или задать место размещения на чертеже полки выноски.

Определение угла между отрезками

Здравствуйте!
Есть в АвтоЛИСПе функция «DISTANCE». Для которой в АвтоКАДе есть аналогичная команда «_Dist». Так же с помощью АвтоКАДа можно определить угол между двумя прямыми с помощью команды «_Dimangular». Но есть ли в АвтоЛИСПе аналог этой команды?

P.S.: Функция «ANGLE» — не очень удобная.

Сообщений: 2335 Баллов: 2411 Регистрация: 09.03.2007
07.04.2008 12:52:56

Цитата
Mazai пишет:
. с помощью АвтоКАДа можно определить угол между двумя прямыми с помощью команды «_Dimangular». Но есть ли в АвтоЛИСПе аналог этой команды?

Аналог команды _Dimangular есть, но это же не то, она служит для нанесения размеров.
Просто можно написать свою функцию, которая на входе получает 2 отрезка, а на выходе возвращает угол.

Никогда не говори никогда.
07.04.2008 13:26:35

Думал, что просто есть аналог, вот и спросил. А так — действительно придёться нацарапать свою маленькую функцию.

Сообщений: 772 Баллов: 772 Регистрация: 05.05.2004
07.04.2008 16:36:35

Цитата
Mazai пишет:
Думал, что просто есть аналог, вот и спросил. А так — действительно придёться нацарапать свою маленькую функцию.

Можно применить одну из функций Калькулятора. Синтаксис следующий —
(command «cal» «a=ang(end,end,end)»)

end — обозначение привязки конточка.

08.04.2008 09:52:39

Попробовал написать это в командной строе, получил ответ:
«Используйте ANG(v), ANG(p1,p2), ANG(apex,p1,p2), ANG(apex,p1,p2,p)»

«p1, p2» — точки,
«v» — вектор,
а что значит «apex»?
Интересно как расшифровать последний вариант «ANG(apex,p1,p2,p)» ?

Сообщений: 2335 Баллов: 2411 Регистрация: 09.03.2007
08.04.2008 10:28:22

Цитата
Mazai пишет:
Интересно как расшифровать последний вариант «ANG(apex,p1,p2,p)» ?

ang(вершина,p1,p2,p)
Определение угла между отрезками (вершина,p1) и (вершина,p2). . отрезки считаются трехмерными. Последний параметр, точка p, используется для задания ориентации угла. Угол измеряется против часовой стрелки относительно оси, направленной из точки вершина в точку p.

Прикрепленные файлы
Никогда не говори никогда.
08.04.2008 11:16:38

Цитата
Алексей Романов пишет:
нужно вычислить разницу.

Разницу вычислить — не всегда удачное решение.
Отрезки рисуются по двум точкам — эти точки — задают вектор, по которому высчитывается угол к оси X. Таким образом, если рисовать отрезок из т1 в т2 — угол будет иметь одну величину, а если мы отрезок переориентируем и нарисуем его сперва из т2 в т1 (направим вектор в другуй сторону), то угол будет иметь другое значение. Хотя на вид — отрезок как был нарисован в одном месте, так и остался.
На чертеже визуально не понятно — из какой в какую точку направлен отрезок. И вычислить угол между двумя такими отрезками можно, но результат не всегда получаеться таким, каким ты его ожидаешь увидеть, потому что всё зависит от того, как были нарисованы отрезки. Вот я и задумался — как сделать так — что бы угол определялся именно по тому «обходу» который «визуально » понятен (бралось внутреннее значение угла).

Сообщений: 772 Баллов: 772 Регистрация: 05.05.2004
08.04.2008 11:37:10

Cинтаксис (command «cal» «a=ang(end,end,end)») для англ. версии. В русской cal меняется на кальк.
Вариант функции ang (apex, p1, p2, p) необходим для задания правой системы координат в трехмерном пространстве.
Вариант ang(apex, p1,p2) для плоскости.
К сожалению, хорошая документация по калькулятору была только в 12 версии.

Сообщений: 2335 Баллов: 2411 Регистрация: 09.03.2007
08.04.2008 13:20:17

Цитата
Mazai пишет:
И вычислить угол между двумя такими отрезками можно, но результат не всегда получаеться таким, каким ты его ожидаешь увидеть, потому что всё зависит от того, как были нарисованы отрезки. Вот я и задумался — как сделать так — что бы угол определялся именно по тому «обходу» который «визуально » понятен (бралось внутреннее значение угла).

Конечно, полученный угол функция должна оценить и принять соответствующий алгоритм вычислений (а не просто вычислить разницу), это у меня работало. Здесь есть другой момент, когда отрезки физически не пересекаются, тут все понятно, а когда они пересекаются, то получается 2 угла. У меня отрезки выбирал пользователь, поэтому я просто в функцию дополнительно передавал точки указания, которые однозначно указывают на нужный угол.

Никогда не говори никогда.
09.04.2008 09:13:48

Вот я написал небольшого монстрика, который по выбранным отрезкам (по их меткам), определяя их точки начала и конца, и ещё по точке пересечения прямых этих отрезков может определить внутренний угол. Кому надо — можете пользоваться

;|=========================================================
* Определение угла между двумя отрезками
* Параметры вызова:
Line1 метка линии 1 на чертеже
Line2 метка линии 2 на чертеже
|;
(defun Ang_Between_Line
(Line1 Line2 / Ang obj_Line1 obj_Line2 ptStart1 ptStart2 ptEnd1 ptEnd2 Angel_1 Angel_2)
(setq obj_Line1 (vlax-ename->vla-object (handent Line1))
obj_Line2 (vlax-ename->vla-object (handent Line2))
);_end setq
(setq ptStart1 (vlax-safearray->list
(vlax-variant-value
(vla-get-StartPoint obj_Line1)))
ptEnd1 (vlax-safearray->list
(vlax-variant-value
(vla-get-EndPoint obj_Line1)))
ptStart2 (vlax-safearray->list
(vlax-variant-value
(vla-get-StartPoint obj_Line2)))
ptEnd2 (vlax-safearray->list
(vlax-variant-value
(vla-get-EndPoint obj_Line2)))
);_ end setq
(cond ((equal PtStart1 ptStart2)
(setq PtInters PtStart1)
(setq Angel_1 (angle PtEnd1 PtInters)
Angel_2 (angle PtEnd2 PtInters))
) ;_ end cond 1
((equal PtStart1 ptEnd2)
(setq PtInters PtStart1)
(setq Angel_1 (angle PtEnd1 PtInters)
Angel_2 (angle PtStart2 PtInters))
) ;_ end cond 2
((equal PtEnd1 ptStart2)
(setq PtInters PtEnd1)
(setq Angel_1 (angle PtStart1 PtInters)
Angel_2 (angle PtEnd2 PtInters))
) ;_ end cond 3
((equal PtEnd1 ptEnd2)
(setq PtInters PtEnd1)
(setq Angel_1 (angle PtStart1 PtInters)
Angel_2 (angle PtStart2 PtInters))
) ;_ end cond 4
(T
(if
(setq PtInters (inters PtStart1 PtEnd1 ptStart2 PtEnd2 nil))
(setq Angel_1 (angle PtStart1 PtInters)
Angel_2 (angle PtStart2 PtInters))
(setq Angel_1 0
Angel_2 0)
);_ end if
);_ end cond 5
) ;_ end COND
(setq Ang (abs (- Angel_1 Angel_2)))
(if (> Ang Pi)
(setq Ang (- (* 2 Pi) Ang))
);_ end if
Ang
);_ end defun

Измерение угла (Страница 1 из 2)

Друзья! Почему нет функции измерения углов (мне нужно измерить угол между двумя прямыми)? В худшем случае точка пересечения находится в далекой галлактике (угол между прямыми около 0град)
Расстояние -есть, площадь объем -тоже есть, а угла нет.
Мне говорят что можно угловым размером найти угол между двумя прямыми, но это я и сам знаю.

#2 Ответ от kma 10 июля 2008г. 10:19:38

Re: Измерение угла

при измерении угла двух прямых в ком. строке будет написан угол :), если ты это хотел узнать

#3 Ответ от rocker 10 июля 2008г. 10:27:51

Re: Измерение угла

> kma
Если я не ошибаюсь, то значение угла в ком. строке будет выведено после выбора опции Text.

#4 Ответ от kma 10 июля 2008г. 10:31:40

Re: Измерение угла

выделил одну прямую, потом вторую, и в ком. строке получишь текст с углом

#5 Ответ от rocker 10 июля 2008г. 10:42:41

Re: Измерение угла

> kma
Все правильно, спасибо, так в классическом ACAD-e.

#6 Ответ от Михайлов Юрий 10 июля 2008г. 11:27:08

Re: Измерение угла

Я конечно дико извиняюсь, но меня наверное не поняли. Я не понял что значит «при измерении угла двух прямых» где это найти.
2. непонятно как у тебя такое происходит «выделил одну прямую, потом вторую, и в ком. строке получишь текст с углом»
У меня 2007, может в нем этого нет?
3. Речь идет о панели INQUIRY.

#7 Ответ от Hrenn 10 июля 2008г. 11:33:19

Re: Измерение угла

на это требуется лиспик составить. всего-то и делов.

#8 Ответ от Михайлов Юрий 10 июля 2008г. 11:46:15

Re: Измерение угла

> Hrenn
Я не умею. Как это сделать?
Помогите кто может, кто может-помогите.

#9 Ответ от VVA 10 июля 2008г. 15:07:40

Re: Измерение угла

#10 Ответ от Atol 10 июля 2008г. 15:15:26

Re: Измерение угла

> Михайлов Юрий
А чем тебе команда простановки Углового размера не нравиться?

#11 Ответ от Михайлов Юрий 11 июля 2008г. 10:04:52

Re: Измерение угла

> Толстов Евгений (Atol)
У меня встречное предложение: Предлагаю разработчику AUTODESK убрать панель INQUIRY. 1.Расстояние измерять с помощью линейного размера.
2. Площадь, объем, вес измерять с помощью мат. и геом.формул и калькулятора.
3. Координаты точек — с помощью миллиметровой бумаги.

#12 Ответ от Михайлов Юрий 11 июля 2008г. 10:08:20

Re: Измерение угла

Коллеги! Я добрые люди написали код!Спасибо большое. Преклоняюсь перед Вашими знаниями.
Я так подумал, что если хорошо знать ЛИСП, то можно понасоздавать себе комманд очень полезных, например, построение касательных окружностей, дут ( с заданием нужного радиуса), прямых, да так чтобы и фантомы отрисовывало.
Я в Автокаде 2-й год, но все равно, сложную геометрию с сопряжениями, переходами рисую в КОМПАСЕ v8. А там функционал примитивов больше. Я до этого 7 лет в Компасе на заводе «зоря»-«машпроект» отработал.
С уважением, Михайлов Юра, 29 лет, ООО «Николаевкоммундорпоект» , г.Николаев, Украина.

#13 Ответ от LeonidSN 11 июля 2008г. 11:59:27

Re: Измерение угла

> Михайлов Юрий
Может не стоит так уж наезжать на AUTODESK по этому поводу?
Мне и моим коллегам, например, обычно хватает команды _dimangular для определения угла между двумя прямыми. Если очень хочется использовать панель INQUIRY, то там есть команда _list, которая дает угол для одной прямой. Измерь обе и посчитай разницу.
То что ты предлагаешь, есть улучшение или расширение возможностей AutoCAD, но не повод для его критики.
В работе AUTODESK есть немало реальных недостатков, найди их и выскажись.

#14 Ответ от Vova 11 июля 2008г. 18:23:54

Re: Измерение угла

при измерении угла двух прямых в ком. строке будет написан угол :), если ты это хотел узнать

выделил одну прямую, потом вторую, и в ком. строке получишь текст с углом

Поясни, как это делается

LeonidSN пишет:

. _dimangular для определения угла между двумя прямыми. Если очень хочется использовать панель INQUIRY, то там есть команда _list, которая дает угол для одной прямой. Измерь обе и посчитай разницу

Не надо забывать, что по умолчания команда считает угол с точностьп до целого градуса. (тогда как линейный размер считает до 4-го знака). Мы на этом чуть не поимели большие убытки, так как исполнитель этого не знал. По команде List. Угол зависит от направления, в котором были сделаны линии. Так что этот способ без математики не катит.
Вот этим я пользуюсь много лет

; File: ABL.LSP, Angle Between Two Lines (defun C:ABL () (setvar "cmdecho" 0) (defun *error* (msg) (princ "error : ") (princ msg) (terpri) ) (setq L1 (entsel "\nFor Angle Between Lines:-- Select First Line: ") LW1 (entget (car L1)) P11 (cdr (assoc 10 LW1)) P21 (cdr (assoc 11 LW1)) W1 (angle P11 P21) L2 (entsel "\nSelect Second Line: ") LW2 (entget (car L2)) P12 (cdr (assoc 10 LW2)) P22 (cdr (assoc 11 LW2)) W2 (angle P12 P22) W (abs (- W1 W2))) (if (> W pi)(setq W (- W pi))) (setq W (* W (/ 180 pi)) WC (- 180 W) A (min W WC) C (max W WC)) (prompt " Angle is = ") (prompt (rtos A 2 4)) (prompt " ** 180 - Angle is = ") (prompt (rtos C 2 4)) (princ) )

Как начертить линию с заданным углом наклона?

Почему-то программа не ставит линию под углом, который я задаю. Это проблема настроек или просто глюк? Возможно я что-то не так делаю, подскажите, пожалуйста, как верно задавать угол?

Просмотров: 140044
Регистрация: 14.02.2008
Сообщений: 158
Сообщение от evsu

Почему-то программа не ставит линию под углом, который я задаю. Это проблема настроек или просто глюк? Возможно я что-то не так делаю, подскажите, пожалуйста, как верно задавать угол?

А как Вы чертите вообще?

Используйте относительные координаты, то есть после запроса программы на указание следующей точки линии, в командной строке напечатайте: @(длина)<(Величина угла в градусах)

всё что связано с упорядоченным движением заряженных частиц

Регистрация: 27.07.2007
Сообщений: 1,693

как это рисовать линию под углом?? сначала рисуется линия, потом поворачиваешь её на нужный угол командой _.rotate (со знаком «+» против часовой стрелки, со знаком «-» по часовой). Возможно ещё у тебя включен режим ORTHO (ортогональность), выключить её можно клавишей F8 (или внизу нажать на соотв кнопку), а так чтобы сразу задавать угол линии, знаю что это возмно только с использованием макроса

Регистрация: 06.11.2008
Сообщений: 4

я ставлю первую точку затем пишу в диалоговом окне линии <(Величина угла в градусах) enter и сразу пишу длину линии

Регистрация: 06.11.2008
Сообщений: 4
Сообщение от Jоhnny
как это рисовать линию под углом??
я имею в виду задачу параметров этой линии, которые задаю ей когда ее рисую
Регистрация: 06.11.2008
Сообщений: 4
Сообщение от naftul

Используйте относительные координаты, то есть после запроса программы на указание следующей точки линии, в командной строке напечатайте: @(длина)<(Величина угла в градусах)

спасибо большое, разобралась
Регистрация: 14.02.2008
Сообщений: 158
Сообщение от evsu

я ставлю первую точку затем пишу в диалоговом окне линии <(Величина угла в градусах) enter и сразу пишу длину линии

Если под диалоговым окном Вы подразумеваете строку для ввода команд, то после запроса на координаты второй точки пишите: @(L)
Регистрация: 14.02.2008
Сообщений: 158
На здоровье!
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133
Command:line
enter
pick a point
@10<45 __________________
Сквозь тернии к звездам. и обратно :yes:

Наше дело труба

Регистрация: 19.11.2006
Томск_Комсомольск-на-Амуре
Сообщений: 1,736
Сообщение от Jоhnny

как это рисовать линию под углом?? сначала рисуется линия, потом поворачиваешь её на нужный угол командой _.rotate (со знаком «+» против часовой стрелки, со знаком «-» по часовой). Возможно ещё у тебя включен режим ORTHO (ортогональность), выключить её можно клавишей F8 (или внизу нажать на соотв кнопку), а так чтобы сразу задавать угол линии, знаю что это возмно только с использованием макроса

Теперь понятно почему народ отключает DYN/ДИН, — чтобы не мелькал и не мешал линии _.rotate поворачивать. (добрая шутка)
Обидно за Автокадик.
Влючить ДИН (кнопка в строке состояния или F12)
Команда _line — указываем первую точку и отводим курсор, за ним тянется «резинка», а в окнах дин.подсказок рядом с курсором отображаются текущие значения длины Отрезка и его острый угол от 0 с любой выбраной точностью и шагом (при откл.Орто и Отс-Поляр).
Дальше можно:
— либо выбирая нужные значения длины и угла указать вторую точку ЛКМ;
— либо (точно) ввести в окнах подсказок длину отрезка и угол. Переключение между окнами с помощью ТАБ. То есть, ввел длину — ТАБ — окно закрыто на замок, ввел угол и Enter, — отрезок построен. Если вместо Enter снова нажать ТАБ — то можно опять менять длину. и так до бесконечности или Enter.
Режим ОРТО, при построении отрезков, на конечный результат не влияет, а только лишает визуализации процесса.
Если выбрать Полярную привязку, задать ее шаг и включить ШАГ, то можно строить отрезки с заданным шагом.

Таким же способом можно изменять и параметры уже построенного Отрезка и др. : активировать его крайнюю ручку ( она станет красной), переключением окон ТАБ выбрать корректируемый параметр и изменить.

Если окна ДИНввода не такие, не те, лишние или плохо выглядят, — то ПКМ на кнопке ДИН и выбрать нужные Настройки.

Ну а общий случай построения отрезка под углом (второй его точки, когда первая указана мышью) в Автокаде с клавиатуры, конечно же:
Команда: _line Первая точка:
Следующая точка или [Отменить]: @150

При этом, если в настройках ДИН выбраны Относительные координаты и ДИН включен, то @ можно не вводить.

__________________
*. И Случай, бог изобретатель. *

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *