Как построить окружность 2PR?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как построить окружность 2PR?

Как построить окружность 2PR?

Ответ
Поиск в этой теме
Непрочитано 09.09.2005, 19:04 #1
Как построить окружность 2PR?
Cage
 
Регистрация: 09.09.2005
Сообщений: 2

Подскажите, как построить окружность по двум точкам и радиусу в акаде. Приходится делать небольшие, но нудные при большом кол-ве, дополнительные построения. Т.е. необходима команда 2PR.
Понимаю, что не всегда такое построение возможно (когда расстояние между точками больше диаметра окружности), поэтому, наверное, такая возможность "в стандартную комплектацию" акада не входит. А может и я не нашел, так что буду признателен.
Просмотров: 5552
 
Непрочитано 09.09.2005, 20:22
#2
Огурец

Profan
 
Регистрация: 27.04.2005
Москва
Сообщений: 6,763
Отправить сообщение для Огурец с помощью Skype™


Уважаемый Cage!
Такое построение можно выполнить командой align. Отмечаете две точки, строите окружность нужного радиуса, отключаете все привязки кроме Node и Nearest, набираете al и указываете перемещение ближайших (на глазок) точек окружности к заданным точкам. Третью пару игнорируете, на масштабирование отвечаете - N. При необходимости повторите операцию. По моему так быстрее, чем строить вспомогательные линии.
Огурец вне форума  
 
Непрочитано 09.09.2005, 20:57
#3
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,345


Можно аркой, последовательность такая:
ark -> точку указываем -> end -> следующую точку ->radius
asys вне форума  
 
Непрочитано 10.09.2005, 00:13
#4
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Цитата:
Asys: Можно аркой, последовательность такая:
Вообще-то Cаge просил окружность, а не арку. Но, как говорил Вовочка, мне нравится ход ваших мыслей. не забудбте только замкнуть дугу командой ToolPak->Convert->Arks-> to Circles.
Лентяй вне форума  
 
Непрочитано 10.09.2005, 00:57
#5
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Пардон-с, забыл, что у Cage ToolPak'а может не быть. Тогда можно использовать нижеприведенную прогу.
Код:
[Выделить все]
(defun C:A2C (/ ark ent csp cpt rad kw)
  (initget "Last Select")
  (setq kw (getkword "\nLast Ark or <Select> [Last/Select]: ?"))
  (if (null kw) (setq kw "Select"))
  (setq ark (vlax-ename->vla-object (if (= kw "Select") (car (entsel)) (entlast)))
        (vlax-invoke (vla-get-ActiveDocument (vlax-get-acad-object)) "ObjectIDtoObject" (vla-get-ownerID ark))
        cpt (vla-get-Center ark)
        rad (vla-get-Radius ark));setq
  (vla-addCircle csp cpt rad)
  (vla-delete ark)
);end
Лентяй вне форума  
 
Непрочитано 10.09.2005, 11:45
#6
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,345


Тем не менее, построение одной командой, а в 2006 версии есть у арки ручки работающие на подобии extenda. Ну или тул пак наконец
asys вне форума  
 
Непрочитано 10.09.2005, 14:27
#7
Огурец

Profan
 
Регистрация: 27.04.2005
Москва
Сообщений: 6,763
Отправить сообщение для Огурец с помощью Skype™


Уважаемые коллеги!
Ещё один способ: Строим в одной из двух точек окружность заданного радиуса. COPY во вторую точку и в intersection получившихся окружностей. Две первые стираем, оставшаяся - то, что надо.
Огурец вне форума  
 
Непрочитано 10.09.2005, 15:22
#8
che

Прораб
 
Регистрация: 16.05.2005
Osh
Сообщений: 52


>Лентяй

При загрузке кода выдается ошибка:

; error: bad variable name in SETQ: (vlax-invoke (vla-get-ActiveDocument (vlax-get-acad-object)) "ObjectIDtoObject" (vla-get-OwnerID ARK))
che вне форума  
 
Непрочитано 11.09.2005, 04:26
#9
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Учили же меня в школе: "Не делай ошибок при списывании"... Должно быть так:
Код:
[Выделить все]
(defun C:A2C (/ ark ent csp cpt rad kw) 
  (initget "Last Select") 
  (setq kw (getkword "\nLast Ark or <Select> [Last/Select]: ?")) 
  (if (null kw) (setq kw "Select")) 
  (setq ark (vlax-ename->vla-object (if (= kw "Select") (car (entsel)) (entlast))) 
        csp (vlax-invoke (vla-get-ActiveDocument (vlax-get-acad-object)) "ObjectIDtoObject" (vla-get-ownerID ark)) 
        cpt (vla-get-Center ark) 
        rad (vla-get-Radius ark));setq 
  (vla-addCircle csp cpt rad) 
  (vla-delete ark) 
);end
Тереь должно работать. [/quote][/b]
Лентяй вне форума  
 
Непрочитано 11.09.2005, 04:29
#10
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Учили же меня в школе: "Не делай ошибок при списывании"... Должно быть так:
Код:
[Выделить все]
(defun C:A2C (/ ark ent csp cpt rad kw) 
  (initget "Last Select") 
  (setq kw (getkword "\nLast Ark or <Select> [Last/Select]: ?")) 
  (if (null kw) (setq kw "Select")) 
  (setq ark (vlax-ename->vla-object (if (= kw "Select") (car (entsel)) (entlast))) 
        csp (vlax-invoke (vla-get-ActiveDocument (vlax-get-acad-object)) "ObjectIDtoObject" (vla-get-ownerID ark)) 
        cpt (vla-get-Center ark) 
        rad (vla-get-Radius ark));setq 
  (vla-addCircle csp cpt rad) 
  (vla-delete ark) 
);end
Теперь должно работать.
Лентяй вне форума  
 
Непрочитано 11.09.2005, 18:13
#11
Tech


 
Регистрация: 18.10.2004
Odessa
Сообщений: 226
<phrase 1=


Цитата:
Сообщение от Лентяй
Теперь должно работать.
И в самом деле работает, и очень даже неплохо. У меня до недавнего времени был (не помню где украл) LISP в 5!!! раз длиннее и работающий через раз. Но я не об этом, если привязываться к 2006-му то в нем есть уже встроенная команда JOIN делающая то же самое, но в вашем LISPе есть интересная фича LAST автодески до этого не додумались. СПАСИБО
Tech вне форума  
 
Непрочитано 12.09.2005, 03:02
#12
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Всегда пожалуйста! Впочем, сделайте мне маленькое одолжение - всякий раз, пользуясь этой программой, громко и четко благодарите меня за то, что есть.
Лентяй вне форума  
 
Непрочитано 12.09.2005, 13:02
#13
Tech


 
Регистрация: 18.10.2004
Odessa
Сообщений: 226
<phrase 1=


Лентяй

Цитата:
пользуясь этой программой, громко и четко благодарите меня за то, что есть
Уже так делаю
Tech вне форума  
 
Автор темы   Непрочитано 12.09.2005, 17:15
#14
Cage


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


Большое всем спасибо!
На самом деле цель была действительно построить дугу, поэтому через ARC - самое то, но я почему-то проглядел "внутренности" этой команды. Да и никогда раньше не требовалось делать такое построение. А тут...
Вобщем, я проводил нужную окружность через одну из точек, из этой же точки строил окружность, проходящую через вторую точку, и далее использовал rotate -> reference для нужной окружности.
Огурец, я, так понимаю, построение с помощью alingn - приблизительное, или я не уловил смысла?
Еще понравилось построение тремя окружностями - вспомнил сразу лохматого года учебник, где этому учили, но только циркулем.
Да, вывод один: когда перестаешь регулярно использовать инструмент, к сожалению, навыки теряются. Но зато есть этот форум. Еще раз спасибо.
Cage вне форума  
 
Непрочитано 12.09.2005, 19:05
#15
Огурец

Profan
 
Регистрация: 27.04.2005
Москва
Сообщений: 6,763
Отправить сообщение для Огурец с помощью Skype™


Уважаемый Cage!
Действительно, такое построение приблизительно, но может выполняться при повторении с любой точностью. Вряд ли стоит пользоваться им в данном случае, но бывает, что такой способ выручает при сложных кривых - он весьма универсален.
Огурец вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как построить окружность 2PR?

Реклама i