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

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

Как начертить линию перпендикулярно от точки начала?

Ответ
Поиск в этой теме
Непрочитано 03.02.2013, 13:31 #1
Как начертить линию перпендикулярно от точки начала?
Moris
 
Регистрация: 15.09.2003
Сообщений: 452

Есть линия 1
Из точки 2 нужно провести линию 3 под углом 90 градусов к линии 1.
Как это сделать используя минимальное количество действий?


Просмотров: 39117
 
Непрочитано 03.02.2013, 13:42
#2
dyr

Мы считаем, ...таем, ...таем!
 
Регистрация: 12.08.2008
Europe
Сообщений: 763


[quote=Moris;1038320]Есть линия 1
Из точки 2 нужно провести линию 3 под углом 90 градусов к линии 1.
Как это сделать используя минимальное количество действий?


[/QUOTE

копирование с поворотом в произвольной точке не катит?
__________________
The cat that walks by itself.
dyr вне форума  
 
Автор темы   Непрочитано 03.02.2013, 13:56
#3
Moris


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


Нет катит. Нужно сразу от линии под прямым углом.
Moris вне форума  
 
Непрочитано 03.02.2013, 14:19
#4
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


Повернуть систему координат и рисовать с ОРТО
Nike вне форума  
 
Непрочитано 03.02.2013, 14:31
#5
nikita_sh_al


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


из произвольной точки провести перпендикуляр к линии 1 и полученную линию 3 перенести командой _MOVE в нужную точку
nikita_sh_al вне форума  
 
Непрочитано 03.02.2013, 14:47
2 | #6
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


Попробуйте воспользоваться таким макросом:

^C^C(Setq Om (Getvar "Orthomode"));(setvar "UCSFOLLOW" 0);_Select;_Single;_Nea;\_Ucsicon;_Of;_Ucs;_New;_Object;@;_Ortho;_On;_Pline;\\;_Ucs;_Pr;_Ucsicon;_On;(Setvar "Orthomode" Om)
__________________
Как-то так.
sertor вне форума  
 
Автор темы   Непрочитано 03.02.2013, 15:02
#7
Moris


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


Цитата:
Сообщение от sertor Посмотреть сообщение
Попробуйте воспользоваться таким макросом:

^C^C(Setq Om (Getvar "Orthomode"));(setvar "UCSFOLLOW" 0);_Select;_Single;_Nea;\_Ucsicon;_Of;_Ucs;_New;_Object;@;_Ortho;_On;_Pline;\\;_Ucs;_Pr;_Ucsicon;_On;(Setvar "Orthomode" Om)
Приделал кнопку, буду пользоваться.
Спасибо
Moris вне форума  
 
Непрочитано 03.02.2013, 15:28
#8
skkkk


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


Цитата:
Сообщение от sertor Посмотреть сообщение
Попробуйте воспользоваться таким макросом
Макрос не возвращает систему координат, если нажать Esc и не повторяется по правой кнопке (или по Enter/Space)
skkkk вне форума  
 
Непрочитано 03.02.2013, 15:37
#9
Vlad®

розмысл
 
Регистрация: 12.06.2005
Иркутск
Сообщений: 1,973
<phrase 1=


Разве нет такой кнопки изначально?
Миниатюры
Нажмите на изображение для увеличения
Название: ПО.gif
Просмотров: 3399
Размер:	34.0 Кб
ID:	95820  
Vlad® вне форума  
 
Непрочитано 03.02.2013, 15:39
#10
PsixVK


 
Регистрация: 19.10.2012
Киев
Сообщений: 748


Цитата:
Макрос не возвращает систему координат, если нажать Esc и не повторяется по правой кнопке (или по Enter/Space)
не нажимайте Esc
и перпендикуляр к какойто линии не так часто нужно рисовать потому повтор по правой кнопке или по Enter/Space можно не использовать
лучше всего забить в горячую клавишу
Цитата:
Разве нет такой кнопки изначально?
кнопка есть но тот макрос работает намного удобней

Последний раз редактировалось PsixVK, 03.02.2013 в 15:50.
PsixVK вне форума  
 
Непрочитано 03.02.2013, 16:03
#11
T-Yoke

Артиллерист - вертолётчик. Дипломированный инженер-механик. Technologist
 
Регистрация: 29.11.2004
Где-то около Москвы
Сообщений: 16,748
Отправить сообщение для T-Yoke с помощью Skype™


Цитата:
Сообщение от Moris Посмотреть сообщение
Есть линия 1
Из точки 2 нужно провести линию 3 под углом 90 градусов к линии 1.
Как это сделать используя минимальное количество действий?
То есть вся проблема, провести перпендикуляр не за два действия, как предложил dyr, а за одно?
Я бы, честно говоря, остановился на стандартной кнопке "Нормаль" и выполнял за два действия,
1. провел линию из произвольной точки по нормали к базовой линии,
2. сместил её к концу (или к заданной точке) базовой линии.
но раз надо... цепляйте макрос.
Миниатюры
Нажмите на изображение для увеличения
Название: Нормаль.jpg
Просмотров: 18414
Размер:	124.8 Кб
ID:	95824  
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I

Последний раз редактировалось T-Yoke, 03.02.2013 в 16:14.
T-Yoke вне форума  
 
Непрочитано 03.02.2013, 17:30
#12
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от nikita_sh_al Посмотреть сообщение
из произвольной точки провести перпендикуляр к линии 1 и полученную линию 3 перенести командой _MOVE в нужную точку
Но можно и наоборот. Из произвольной точки на линии 1 ВОССТАНОВИТЬ перпендикуляр. А затем перенести в нужную точку. Для этого взяв команду _Line и затем привязку Per подвести курсор к линии и дождаться появления значка Нормаль с тремя точками...
Уже много автокадов назад это можно было сделать.
Макрос в посте #6 взят в основе из моей книги ....Язык макрокоманд и создание кнопок. Здесь он немного модифицированный, но все равно не худо-бы сослаться на первоисточник (на форуме так принято)
Vova вне форума  
 
Непрочитано 03.02.2013, 17:38
#13
Injener-81


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


Есть в АвтоКаде параметрические функции
Injener-81 вне форума  
 
Непрочитано 03.02.2013, 17:42
#14
skkkk


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


Лиспом это можно реализовать за 2 клика, не считая вызова команды (макросом выходит 3). Плюс повтор по Enter/Space
Примерно так:
Код:
[Выделить все]
(defun C:PERP (/ *error* osm cmd adoc pt1 pt2 crv ang1 ang2 ang)

	(defun *error* (msg)
		(vl-cmdf "_redrawall")
		(vla-EndUndoMark adoc)
		(setvar "OSMODE" osm)
		(setvar "CMDECHO" cmd)
	)
	(setq osm (getvar "OSMODE"))
	(setq cmd (getvar "CMDECHO"))
	(vl-load-com)
	(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
	(vla-StartUndoMark adoc)
	(setvar "CMDECHO" 0)
	(setvar "OSMODE" 547)
	(setq pt1 (getpoint "\nУкажите точку на линии <выход> : "))
	(setq crv (vlax-ename->vla-object (ssname (ssget pt1 '((0 . "*LINE"))) 0)))
	(setq pt2 (vlax-curve-getPointAtParam crv (+ (vlax-curve-getParamAtPoint crv pt1) 0.0001)))
	(if (null pt2)(setq pt2 (vlax-curve-getPointAtParam crv (- (vlax-curve-getParamAtPoint crv pt1) 0.0001))))
	(setq ang1 (* 0.5 pi))
	(setq ang2 (angle pt1 pt2))
	(setq ang (+ ang1 ang2))
	(setq ang (angtos ang 0 15))
	(vl-cmdf "_.LINE" "_none" pt1 (strcat "<" ang))(princ "Укажите вторую точку или введите длину линии: ")(vl-cmdf pause "")
	(setvar "OSMODE" osm)
	(setvar "CMDECHO" cmd)
	(vla-EndUndoMark adoc)
	(vl-cmdf "_redrawall")
	(princ)
)
Научился у VVA. Без претензии на исключительность.
skkkk вне форума  
 
Непрочитано 03.02.2013, 17:50
#15
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


Этот лисп чертит перпендикуляр не только к линии,а и к дуге,окружности..
Вложения
Тип файла: lsp per.lsp (1.5 Кб, 443 просмотров)
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Непрочитано 03.02.2013, 18:37
#16
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


Цитата:
Сообщение от getr Посмотреть сообщение
Этот лисп чертит перпендикуляр не только к линии,а и к дуге,окружности..
В AutoCAD 2012 работает нормально. В 2013- работает почему-то некорректно (выворачивает ПСК). Может только у меня?
__________________
Как-то так.
sertor вне форума  
 
Непрочитано 03.02.2013, 18:50
#17
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от skkkk Посмотреть сообщение
Лиспом это можно реализовать за 2 клика, не считая вызова команды (макросом выходит 3)
Все хорошо если просто... Но вот нам надо сделать перпендикуляр в месте пересечения. И тогда два клика сработает правильно только если тот, к которому нужен перпендикуляр, является верхним (по порядку Draworder) обЪектом. Потому и сделан в макросе третий клик чтобы выбрать нужный
Vova вне форума  
 
Непрочитано 03.02.2013, 19:01
#18
skkkk


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


Vova, согласен, так всегда и бывает: решение для частного случая, как в шапке темы, отнюдь не универсально, а универсальность требует конкретики, а значит, и дополнительных действий (кликов).
skkkk вне форума  
 
Непрочитано 03.02.2013, 19:31
#19
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


->sertor
лисп не мой, найден на просторах инета...нужны знатоки лиспа, может там подправить чего немного надо..сам я не в состоянии.
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Автор темы   Непрочитано 04.02.2013, 01:06
#20
Moris


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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Vova, согласен, так всегда и бывает: решение для частного случая, как в шапке темы, отнюдь не универсально, а универсальность требует конкретики, а значит, и дополнительных действий (кликов).
да, и лисп per и тот маркос дополняют друг друга, поэтому обоих прикрутил на автокад
Moris вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как начертить линию перпендикулярно от точки начала?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lisp.Как провести линию из точки ровно до блока? Composter LISP 2 22.02.2012 15:19
Как начертить плиту если все 4 точки в разных плоскостях? ronik710 AutoCAD 9 14.02.2011 03:36
Как на лиспе начертить много линий по заданным координатам из одной точки topograf83 LISP 4 26.09.2009 22:53
Как начертить линию с заданным углом наклона? evsu AutoCAD 12 07.11.2008 23:29
как с помощью vba начертить линию vasyavip Программирование 77 09.10.2008 23:17