Книги_AutoCad_2 / Настройка AutoCAD_Sham_Tickoo-Customizing_2006г
.pdf
Вычисление математических и геометрических выражений |
653 |
Command: CAL
>>Expression: v=[2,2,0] (Определение вектора v)
Command: CAL
>>Expression: ang(v) (v — ранее определенный вектор)
45.0
◊◊◊
Команда: CAL
>>Выражение: v=[2,2,0] (Определение вектора v)
Команда: CAL
>>Выражение: ang(v) (v — ранее определенный вектор)
45.0
Вектор v образует с положительной осью Х угол, равный 45 градусам.
Функция ang(р1,р2)
Функция ang(р1,р2) используется для вычисления угла, образованного отрезком Р1Р2 и положительной осью Х. Предположим, что начальная и конечные точки отрезка имеют координаты (1,1,0) и (4,4,0) соответственно:
Command: CAL
>>Expression: р1=[1,1,0] (Определение вектора р1)
Command: CAL
>>Expression: р2=[4,4,0] (Определение вектора р2)
Command: CAL >>Expression: ang(р1,р2) 45.0
Если линия уже начерчена, можно определить величину угла, используя следующую функцию:
Command: CAL
>>Expression: ang(end,end)
>>Select entity for END snap: Выберите первый конец отрезка Р1Р2 >>Select entity for END snap: Выберите второй конец отрезка Р1Р2 31.7134 (Угол, возвращенный этой функцией)
◊◊◊
Команда: CAL
>>Выражение: ang(end,end)
>>Объект для привязки END: Выберите первый конец отрезка Р1Р2 >>Объект для привязки END: Выберите первый конец отрезка Р1Р2 31.7134 (Угол, возвращенный функцией)
Функция ang(apex,p1,p2)
Функция ang(apex,p1,p2) используется для вычисления угла, образованного лучами (apex,P1) и (apex,P2), выходящими из одной точки (см. рис. 19.4). В этом случае для определения величины угла необходимо выполнить следующие команды:
Command: CAL
>>Expression: ang(end,end,end)
>>Select entity for END snap: Выберите первую конечную точку (вершину угла)
654 Глава 19
>>Select entity for END snap: Выберите вторую конечную точку (Р1) >>Select entity for END snap: Выберите третью конечную точку (Р2) 51.41459 (Угол, возвращенный функцией)
◊◊◊
Команда: CAL
>>Выражение: ang(end,end,end)
>>Объект для привязки END: Выберите первую конечную точку (вершину угла) >>Объект для привязки END: Выберите вторую конечную точку (Р1)
>>Выделите объект для привязки END: Выберите третью конечную точку (Р2)
51.41459 (Угол, возвращенный функцией)
Функция ang(apex,p1,p2,р)
Функция ang(apex,p1,p2,р) может быть использована для вычисления угла, образованного лучами (apex,p1) и (apex,p2), выходящими из одной точки. Последняя точка (р) используется для определения ориентации угла.
Определение координат точки пересечения
Для определения местоположения точки пересечения линий Р1Р2 и Р3Р4 можно воспользоваться следующей функцией:
ill(p1,p2,p3,p4)
Точки Р1 и Р2 принадлежат одной линии, а точки Р3 и Р4 принадлежат второй линии, как показано на рис. 19.5. При использовании этой функции рекомендуется отключить режим объектной привязки.
Пример 4
В этом примере вы построите окружность, центр которой находится в точке пересечения линий Р1Р2 и Р3Р4. Предполагается, что эти линии уже начерчены на чертеже (рис. 19.5).
Выключите режим объектной привязки, а затем определите местоположение точки пересечения и начертите окружность с центром в этой точке, используя следующие команды:
Command: Щелкните на кнопке Circle (Окружность)
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL
>>Expression: ill(end,end,end)
>>Select entity for END snap: Выберите точку Р1 >>Select entity for END snap: Выберите точку Р2 >>Select entity for END snap: Выберите точку Р3 >>Select entity for END snap: Выберите точку Р4
Specify radius of circle or [Diameter] <current>: Введите радиус
◊◊◊
Команда: CIRCLE
Центр круга или [3T/2T/KKP (кас кас радиус)]: 'CAL
>>Выражение: ill(end,end,end,end)
>>Объект для привязки END: Выберите точку Р1
Вычисление математических и геометрических выражений |
655 |
>>Объект для привязки END: Выберите точку Р2 >>Объект для привязки END: Выберите точку Р3 >>Объект для привязки END: Выберите точку Р4
Радиус круга или [Диаметр] <текущий>: Введите радиус
Рис. 19.5. Нахождение точки пересечения
Совет
Вместо выражения ill(end,end,end,end) может использоваться сокращенная запись 

этой функции — ille. В этом случае для определения точки пересечения необходимо ввести координаты четырех конечных точек, выбрав их на чертеже.
Способы применения геометрического калькулятора
В этом разделе содержится несколько примеров, иллюстрирующих различные способы применения геометрического калькулятора.
Пример 5
В этом примере вы построите окружность, центр которой находится на середине линии, соединяющей точки Р2 и Р4 (рис. 19.6).
Для определения местоположения центра окружности используются режимы привязки калькулятора. Например, середина отрезка находится с помощью выражения (end+end)/2. Существует другой способ определения центра окружности, состоящий в использовании функции mee, как показано на рис. 19.6.
Command: Щелкните на кнопке Circle (Окружность), которая находится на панели инструментов Draw (Рисование)
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL >>Expression: mee
>>Select entity for MEE: Выберите точку Р2 >>Select entity for MEE: Выберите точку Р4
Specify radius of circle or [Diameter] <current>: Введите радиус
656 |
Глава 19 |
Рис. 19.6. Использование функции mee
Пример 6
В этом примере вы построите окружность, которая является касательной к данной линии. Радиус окружности равен 0,5. Построенная окружность должна проходить через выделенную точку, показанную на рис. 19.7.
Рис. 19.7. Использование функции nee
Чтобы построить окружность, касательную к данной линии, необходимо прежде всего определить местоположение центра окружности, находящегося на расстоянии 0,5 единиц от выделенной точки. Эта задача может быть выполнена с помощью функции nor(p1,p2), которая возвращает единичный вектор, направленный перпендикулярно к линии Р1Р2. Для решения этой задачи можно также использовать сокращенную функцию nee. Эта функция автоматически приглашает выделить две точки, лежащие на данной линии. Для определения координат центра окружности единичный вектор нормали необходимо умножить на радиус окружности.
Command: Щелкните на кнопке Circle на панели инструментов Draw
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL >>Expression: NEA+0.5*nee
>>Select entity for NEA snap: Выберите точку на отрезке
Вычисление математических и геометрических выражений |
657 |
>>Select one endpoint for NEA snap: Выберите одну из конечных точек данного отрезка
>>Select another endpoint for NEA snap: Выберите вторую конечную точку данного отрезка
Specify radius of circle or [Diameter] <current>: 0.5
◊◊◊
Команда: CIRCLE
Центр круга или [3T/2T/KKP (кас кас радиус)]: 'CAL >>Выражение: NEA+0.5*nee
>>Объект для привязки NEA: Выберите точку на отрезке >>Конечная точка для привязки NEA: Выберите одну из конечных точек данного отрезка
>>Вторая конечная точка для привязки NEA: Выберите вторую конечную точку данного отрезка
Радиус круга или [Диаметр] <текущий>: 0.5
Пример 7
В этом примере строится окружность с центром, лежащим на данной линии. Радиус окружности составляет 0,25 от длины отрезка. Предполагается, что линия уже начерчена на чертеже (рис. 19.8).
Рис. 19.8. Использование функции dee
Чтобы определить радиус окружности, умножьте длину отрезка на 0,25. Длина отрезка, в свою очередь, может быть получена с помощью выражения dist(p1,p2) или сокращенной функции dee. При использовании функции dee калькулятор автоматически запрашивает координаты концов отрезка, определяемые выделением конечных точек на чертеже. Эта функция работает точно так же, как и функция dist(end,end).
Command: Щелкните на кнопке Circle на панели инструментов Draw
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:
Укажите точку на линии
Specify radius of circle or [Diameter] <current>: 'CAL >>Expression: 0.25*dee
>>Select one endpoint for DEE snap: Выберите одну из конечных точек данного отрезка
>>Select another endpoint for DEE snap: Выберите вторую конечную точку данного отрезка
658 |
Глава 19 |
Использование переменных AutoLISP
Геометрический калькулятор позволяет использовать переменные AutoLISP в арифметических выражениях. Кроме этого с помощью калькулятора можно присваивать этим переменным те или другие значения. Переменные AutoLISP могут иметь целочисленное, вещественное, а также двухили трехкоординатное значение. С использованием переменных AutoLISP вы познакомитесь в следующем примере.
Пример 8
В этом примере будут построены две окружности, смещенные относительно середины отрезка, соединяющего центры ранее начерченных окружностей, на 0,5 единиц. Дано: две окружности разных диаметров.
Чтобы определить местоположение центра верхней окружности, вначале необходимо найти координаты середины отрезка, соединяющего центры данных окружностей. Эта задача может быть решена путем определения переменной midpoint = (cen+cen)/2. В свою очередь, для того, чтобы задать величину смещения, можно определить вторую переменную: offset = [0,0.5]. Координаты центра верхней окружности могут быть получены при сложении двух переменных (midpoint+offset) (рис. 19.9).
Рис. 19.9. Сложение двух ранее определенных векторов
Command: CAL
>>Expression: midpoint=(cen+cen)/2
>>Select entity for CEN snap: Выберите первую окружность. >>Select entity for CEN snap: Выберите вторую окружность.
Command: CAL
>>Expression: offset=[0,0.5]
Command: Щелкните на кнопке Circle на панели инструментов Draw
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL
>>Expression: (midpoint+offset)
Specify radius or [Diameter] <current>: Введите радиус
Вычисление математических и геометрических выражений |
659 |
◊◊◊
Команда: CAL
>>Выражение: midpoint=(cen+cen)/2
>>Объект для привязки CEN: Выберите первую окружность. >>Объект для привязки CEN: Выберите вторую окружность.
Команда: CAL
>>Выражение: offset=[0,0.5]
Команда: Щелкните на кнопке Circle на панели инструментов Draw
Центр круга или [3T/2T/KKP (кас кас радиус)]: 'CAL
>>Выражение: (midpoint+offset)
Радиус круга или [Диаметр] <текущий>: Введите радиус
Чтобы определить местоположение центра нижней окружности, необходимо вычесть значение переменной offset из значения переменной midpoint:
Command: Щелкните на кнопке Circle на панели инструментов Draw
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL
>>Expression: (midpoint-offset)
Specify radius or [Diameter] <current>: Введите радиус
Те же результаты можно получить, используя следующее выражение AutoLISP:
Command: (Setq NEWPORT "(CEN+CEN)/2+[0,0.5]")
Command: Щелкните на кнопке Circle на панели инструментов Draw
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:
(cal NEWPORT) (Вызов ранее определенного выражения)
>>Select entity for CEN snap: Выбор первой окружности. >>Select entity for CEN snap: Выбор второй окружности.
Координатные фильтры
Для получения координат точки используются следующие функции:
Функция |
Описание |
xyof(p) |
Получает координаты X и Y точки (p) и возвращает точку; координата Z |
|
автоматически устанавливается в нуль |
xzof(p) |
Получает координаты X и Z точки (p) и возвращает точку; координата Y |
|
автоматически устанавливается в нуль |
yzof(p) |
Получает координаты Y и Y точки (p) и возвращает точку; координата X |
|
автоматически устанавливается в нуль |
xof(p) |
Получает координату X точки (p) и возвращает точку; координаты Y и Z |
|
автоматически устанавливаются в нуль |
yof(p) |
Получает координату Y точки (p) и возвращает точку; координаты X и Z |
|
автоматически устанавливаются в нуль |
zof(p) |
Получает координаты Z точки (p) и возвращает точку; координаты X и Y |
|
автоматически устанавливаются в нуль |
rxof(p) |
Получает координату X точки (p) |
ryof(p) |
Получает координату Y точки (p) |
rzof(p) |
Получает координату Z точки (p) |
|
|
