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

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

Как создать равные отрезки.

Ответ
Поиск в этой теме
Непрочитано 28.11.2010, 20:02 #1
Как создать равные отрезки.
aTBepTKa
 
Регистрация: 16.11.2008
Сообщений: 55

Допустим есть три точки: А, В, С. Из точки С нужно построить такой отрезок, длина которого, будет равна отрезку АВ. Как это сделать с минимальной затратой времени?

С моими нынешними знаниями, приходиться строить отрезок АВ, потом перемещать его одним инструментом, и вращать другим. Это слишком долго. Может быть есть такой волшебный инструмент, который облегчит мою жизнь?
Просмотров: 5663
 
Непрочитано 28.11.2010, 20:06
#2
T-Yoke

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


Стройте по координатам, копируйте базовый отрезок, обрезайте по заданной линии... да много разных способов. Выбирайте какой нравится.
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I
T-Yoke вне форума  
 
Непрочитано 28.11.2010, 20:22
#3
onick


 
Регистрация: 27.10.2010
Калининград
Сообщений: 246


Измерьте dist между А и В, полученное значение выделите в командной строке и скопируйте в буфер. Из точки С (указав ее) в режиме ortho отложите отрезок вставив в командную строку значение из буфера...

ну и волшебная команда _align...
onick вне форума  
 
Автор темы   Непрочитано 28.11.2010, 20:24
#4
aTBepTKa


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


Вот примерно так:

Хотелось бы пропустить второй этап (построение отрезка АВ), и иметь возможность сразу перейти к третьему (построить отрезок длиной АВ).
aTBepTKa вне форума  
 
Непрочитано 28.11.2010, 20:25
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426


1. Построить отрезок АВ
2. Используя команду mocoro, скопировать отрезок в точку С
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.11.2010, 20:26
#6
T-Yoke

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


А направление отрезка важно? Если да, то Я бы скопировал и выровнял по заданному направлению.
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I
T-Yoke вне форума  
 
Непрочитано 28.11.2010, 20:27
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426


Ну да, команда _.align никуда не делась
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.11.2010, 20:36
#8
aTBepTKa


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


даже немного точнее покажу процесс, вот:

Его мне нужно упростить. В идеале было бы так: выбираем волшебный инструмент, мне предлагают выбрать две точки, т.е. необходиую длину. Затем я строю отрезок как обычным инструментом "Отрезок", но длина остается фиксированной.

Последний раз редактировалось aTBepTKa, 28.11.2010 в 20:42.
aTBepTKa вне форума  
 
Непрочитано 28.11.2010, 20:41
#9
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


aTBepTKa, создавай свою программу
Хмурый вне форума  
 
Автор темы   Непрочитано 28.11.2010, 20:42
#10
aTBepTKa


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


Цитата:
Сообщение от onick Посмотреть сообщение
Измерьте dist между А и В, полученное значение выделите в командной строке и скопируйте в буфер. Из точки С (указав ее) в режиме ortho отложите отрезок вставив в командную строку значение из буфера...

ну и волшебная команда _align...
Этот метод проведения данного мероприятия, пока подходит больше всего
aTBepTKa вне форума  
 
Непрочитано 29.11.2010, 01:50
#11
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,929


Цитата:
Сообщение от onick Посмотреть сообщение
Измерьте dist между А и В, полученное значение выделите в командной строке и скопируйте в буфер. Из точки С (указав ее) в режиме ortho отложите отрезок вставив в командную строку значение из буфера...
... получив в итоге не идентичный по длине отрезок.
engngr вне форума  
 
Непрочитано 29.11.2010, 06:20
#12
n0str0m0

геолог
 
Регистрация: 02.09.2009
Тында, Дальний Восток
Сообщений: 413
<phrase 1=


C 2010 акада появилась ПАРАМЕТРИЗАЦИЯ. Сейчас попрообовал функцию равенство. Рисуешь отрезки как угодно, затем выбираешь с нужной длиной как источник, в параметризации выбираешь равенство, щелкаешь на источнике, а затем на дочерних объектах, они становятся равными по длине источнику. При изменении длины одного из них меняется длина всех остальных. При желании равенство у необходимых отрезков можно удалить и они не будут больше участвовать в этой оргии удлинения.

Последний раз редактировалось n0str0m0, 29.11.2010 в 06:40.
n0str0m0 вне форума  
 
Непрочитано 29.11.2010, 09:03
#13
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


aTBepTKa, Попробуй такую программульку (без "защиты от дурака").
Код:
[Выделить все]
(defun c:m_l (/ l_l p1 p2 rasst pt an pt2)
  (setq l_l (entget (car (entsel "\nВыберите исходный отрезок:"))))
  (setq p1 (cdr (assoc 10 l_l)))
  (setq p2 (cdr (assoc 11 l_l)))
  (setq rasst (distance p1 p2)) ;_ конец setq
  (setq pt (getpoint "\nТочка вставки")) ;_ конец setq
  (setq an (getangle pt "\nУгол поворота"))
  (setq pt2 (polar pt an rasst)) ;_ конец setq
  (vl-cmdf "_.line" "_none" pt "_none" pt2 "")
) ;_ конец defun

Последний раз редактировалось E-degtyarev, 30.11.2010 в 04:30.
E-degtyarev вне форума  
 
Автор темы   Непрочитано 29.11.2010, 21:37
#14
aTBepTKa


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


Просмотрел код программы, понял что это оно самое! Теперь только осталось кого нибудь попросить, чтобы мне объяснили что с этим кодом делать.
aTBepTKa вне форума  
 
Непрочитано 29.11.2010, 21:46
#15
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


aTBepTKa, если понял код- то должен знать, как его употребить
http://dwg.ru/pub/9
Хмурый вне форума  
 
Автор темы   Непрочитано 29.11.2010, 21:54
#16
aTBepTKa


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


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

Путем научного тыка, я этот код откомпилировал (или сохранил, не знаю как правильно) в файлы с расширениями *.fas, *.vls и *.lsp. В меню автокада нашел кнопку загрузить приложение. Ну и соответственно загрузил эти файлы. Теперь эту радость нужно как-то к кнопке прикрутить, или вызвать из командной строки. Если конечно я до этого все правильно сделал.

Не заметил ссылку под предыдущим сообщением, сейчас посмотрим что там есть.

Добавлено:
Немного усложнил я себе жизнь, еще задействовал встроенный редактор Visual LISP, но в итоге получил все то же самое. И пытался запустить эту программу из командной строки. Да вот только я дурак, вместо m_l(эль) писал m_1(один). Теперь разобрался. Я даже гордиться собой начал, что все получилось

Большое спасибо товарищ E-degtyarev. Просто не передать как я вам благодарен за эти счастливые 10 строчек кода

Последний раз редактировалось aTBepTKa, 29.11.2010 в 22:04.
aTBepTKa вне форума  
 
Непрочитано 30.11.2010, 04:29
#17
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


aTBepTKa,-вариант с указанием 2х точек:
Код:
[Выделить все]
(defun c:m_n (/ p1 p2 rasst pt an pt2)
  (setq p1 (getpoint "\nУкажите 1-ю точку:"))
  (setq p2 (getpoint p1 "\nУкажите 2-ю точку:"))
  (setq rasst (distance p1 p2))
  (setq pt (getpoint "\nТочка вставки:")) 
  (setq an (getangle pt "\nУгол поворота:"))
  (setq pt2 (polar pt an rasst)) 
  (vl-cmdf "_.line" "_non" pt "_non" pt2 "")
)
E-degtyarev вне форума  
 
Непрочитано 30.11.2010, 16:57
#18
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


aTBepTKa, а если не секрет, для чего тебе такая функция?
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Автор темы   Непрочитано 30.11.2010, 20:01
#19
aTBepTKa


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


Я студент, делаю чертежи по начертательной геометрии. Довольно часто мне приходиться откладывать в разных местах равные отрезки. Вот тут мне и приходиться использовать подобную функцию.
aTBepTKa вне форума  
 
Непрочитано 30.11.2010, 21:16
#20
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426


ИМХО - проще будет блок создавать
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как создать равные отрезки.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа автоматически рисующая из конечных точек выбранных отрезков отрезки до выбраного отрезка с привязкой перпендикуляр. С.А.Б Программирование 12 17.11.2010 05:51
Создать блок Creator Динамические блоки 25 08.02.2008 19:11
Как создать виртуальный принтер Владислав Кулигин Компьютерная и бытовая техника, электроника и инструмент 4 03.01.2008 17:54