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

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

Многократное копирование примитива с указанием расстояния

Ответ
Поиск в этой теме
Непрочитано 17.11.2009, 09:33 #1
Многократное копирование примитива с указанием расстояния
Малявка
 
Егорьевск Моск.обл.
Регистрация: 28.02.2007
Сообщений: 206

Здравствуйте! Чего-то торможу, прошу помощи.
Простой вопрос: рисую оси на разном расстоянии друг от друга. Выбираю линию, давлю кнопку "копировать", мышкой указываю начальную точку копирования и направление копирования, ввожу с клавиатуры расстояние вставки линии. Всё как обычно. А вот чтобы вставить новую (третью) линию (на расстоянии, отличном от введенного), приходится копировать уже вторую линию и выполнять прежние телодвижения. Подскажите, можно ли, скопировав один раз первую линию и указав направление вставки, вводить расстояния между осями (линиями) и жать ентер, и так многократно.
Спасибо.
p.s. AutoCAD 2008 rus

Последний раз редактировалось Малявка, 17.11.2009 в 09:34. Причина: добавление p.s.
Просмотров: 12499
 
Непрочитано 17.11.2009, 09:40
#2
Кулик Алексей aka kpblc
Moderator

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


Profan где-то (то ли здесь, то ли на caduser.ru) выкладывал решение этой проблемы. Лисповое решение
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.11.2009, 09:40
#3
Рyslan


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


массив. или тоже копирование, но расстояния складывай. например первое расстояние 5м второе 10м третье 15м и так далее
Рyslan вне форума  
 
Непрочитано 17.11.2009, 09:54
#4
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Вот это решение:
http://www.caduser.ru/forum/index.ph...D=44&TID=19844
Profan вне форума  
 
Непрочитано 17.11.2009, 10:17
#5
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Моё решение:
http://dwg.ru/dnl/554
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Автор темы   Непрочитано 17.11.2009, 10:45
#6
Малявка


 
Регистрация: 28.02.2007
Егорьевск Моск.обл.
Сообщений: 206


Pyslan, мне и нужно без складывания расстояний, указывать только приращения.
Спасибо всем откликнувшимся, всё посмотрю, выберу наиболее подходящее решение.
- - - - - - - - -
через полчаса:
Неа, ничего не подходит. То есть существуют варианты, но опять же с лишними телодвижениями мышкой и клавиатурой.
Как бы сделать так, чтобы один раз выделить примитивы (саму ось и её название в кружочке), указать направление копирования, а потом только забивать приращение от последней вставленной оси и давить ентер, забивать и давить, забивать и давить...

(Хи, позволю поизвращаться: можно даже сделать так, чтобы название осей само вставлялось последовательно: A,B,C,D.E и т.д., или 16,17,18,19. Но это лишнее, усложняющее макрос. Помогите только с "забивать и давить")
Спасибо.

Последний раз редактировалось Малявка, 17.11.2009 в 11:09. Причина: Результат тестирования макросов
Малявка вне форума  
 
Непрочитано 17.11.2009, 11:18
#7
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,536
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от Малявка Посмотреть сообщение
Как бы сделать так, чтобы один раз выделить примитивы (саму ось и её название в кружочке), указать направление копирования, а потом только забивать приращение от последней вставленной оси и давить ентер, забивать и давить, забивать и давить...
Krieger вроде в ТипсэндТрикс еще макрос приводил для этого дела
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 17.11.2009, 11:22
#8
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Цитата:
Сообщение от Малявка Посмотреть сообщение
Неа, ничего не подходит. То есть существуют варианты, но опять же с лишними телодвижениями мышкой и клавиатурой.
Как бы сделать так, чтобы один раз выделить примитивы (саму ось и её название в кружочке), указать направление копирования, а потом только забивать приращение от последней вставленной оси и давить ентер, забивать и давить, забивать и давить...
Дык у меня так и есть...
Хотя можно и без лиспа. Вводим команду "_сopy", выделяем объекты для копирования, указываем базовую точку, выбираем привязку "_from", снова указываем базовую точку, можно через собаку "@", указываем направление отводя подальше курсор и набираем только приращения и enter.
__________________
Делай хорошо, плохо само получится.

Последний раз редактировалось Krieger, 17.11.2009 в 11:27.
Krieger вне форума  
 
Непрочитано 17.11.2009, 11:28
#9
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Э, так это построение осей... Для этого есть и другие программы...
Profan вне форума  
 
Автор темы   Непрочитано 17.11.2009, 11:40
#10
Малявка


 
Регистрация: 28.02.2007
Егорьевск Моск.обл.
Сообщений: 206


Krieger, получилось! Большое спасибо!
Profan, я в первом посте сказала про оси... Кстати, а какие другие программы?
Малявка вне форума  
 
Непрочитано 17.11.2009, 11:43
#11
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Есть моя программа на форуме caduser.ru (в готовых программах). В СПДС есть...
Profan вне форума  
 
Непрочитано 17.11.2009, 12:10
#12
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


Krieger, а я и не знал, что такое возможно. Но вот вопрос: все вышеописанные действия должны выполняться, кроме ввода команды _from, и через систему контекстного меню или опций. А вот не выполняются никак иначе, кроме описанного способа. Мне вот, например, с клавиатуры долго (ещё учитывая переключение раскладки) команду вводить. Попроще способа нет?
cancercat вне форума  
 
Непрочитано 17.11.2009, 12:12
#13
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,536
<phrase 1= Отправить сообщение для wetr с помощью Skype™


cancercat, ->макрос
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 17.11.2009, 12:19
#14
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


wetr, а в LT версии макросы разве работают? Да и неохота на это заморачиваться. Мне ж ведь не самому, а людям объяснять. А им попроще надо...
cancercat вне форума  
 
Непрочитано 17.11.2009, 12:37
#15
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Цитата:
Сообщение от cancercat Посмотреть сообщение
wetr, а в LT версии макросы разве работают? Да и неохота на это заморачиваться. Мне ж ведь не самому, а людям объяснять. А им попроще надо...
Автокадовские макросы работают, лисп нет.
Цитата:
Но вот вопрос: все вышеописанные действия должны выполняться, кроме ввода команды _from, и через систему контекстного меню или опций. А вот не выполняются никак иначе, кроме описанного способа. Мне вот, например, с клавиатуры долго (ещё учитывая переключение раскладки) команду вводить. Попроще способа нет?
Команду можешь и с кнопки ввести, это без разницы.
Попробуй такой макрос:
Код:
[Выделить все]
_select;\_copy;_p;;_Multiple;\_from;@
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 17.11.2009, 13:06
#16
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


Krieger, это всё конечно хорошо, но куда мне это прицепить? Как мне макрос на кнопку повесить? И эту кнопку ведь создать сначала надо...
Да, а при вооде непостредственно в командную строку пишет "неизвестная команда"...
cancercat вне форума  
 
Непрочитано 17.11.2009, 13:13
#17
Кулик Алексей aka kpblc
Moderator

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


И будет писать!
См. dwg.ru/art/2
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.11.2009, 13:22
#18
Рyslan


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


по поводу #8 не знал. мне кажется координатные оси ставятся через такие расстояния, которые можно в уме быстро сложить....так что я за обычное копирование+приращение расстояния
Рyslan вне форума  
 
Непрочитано 17.11.2009, 13:27
#19
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


Кулик Алексей aka kpblc, читаю! Скачано уже давно. Даже как-то создавал свою панель и кнопки на ней. Как-то всё слишком сложно. Пока мне это кажется пустой тратой времени. Сейчас даже повторить не смог то, что делал. Видимо, не надо мне этого пока ещё. Как мой брат говорит:"Человек учит что-то только тогда, когда это ему действительно надо"...
Однако, вопрос остаётся открытым - откуда в команде _copy взялась опция _from? Как её ещё можно реализовать, кроме ввода в командную строку? Ведь почти любую опцию команды (да и саму команду) можно задать через систему меню, в том числе и контекстного. Команда _from - явно не самоделка, а встроенная. Так где она "сидит"?
cancercat вне форума  
 
Автор темы   Непрочитано 17.11.2009, 13:32
#20
Малявка


 
Регистрация: 28.02.2007
Егорьевск Моск.обл.
Сообщений: 206


Pyslan, вот мои расстояния между осями:
500, 2590, 3110, 700, 3400, 700, 3110, 3390, 500.
Будущий чертеж расположения фундаментов строящегося цеха.
Мне как-то не очень "хоцца" такое считать.
Cancercat, а как бы команду _from пристроить так, чтобы её не вводить в ком. строку?

Последний раз редактировалось Малявка, 17.11.2009 в 13:33. Причина: Добавление
Малявка вне форума  
 
Непрочитано 17.11.2009, 13:35
#21
Рyslan


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


да я так, пять копеек вставил
Рyslan вне форума  
 
Непрочитано 17.11.2009, 13:54
#22
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


Малявка, если б я знал, давно бы сделал. А так все вопросы к Кулик Алексей aka kpblc и другим гуру! Кстати, для копирования на одинаковое расстояние можно использовать команду _offset (подобие). Мне кажется, что так будет в некоторых случаях быстрее, чем создавать массив. А числа можно и на калькуляторе сложить!

Последний раз редактировалось cancercat, 17.11.2009 в 14:00.
cancercat вне форума  
 
Непрочитано 17.11.2009, 13:56
#23
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Опция объектной привязки "_from" когда-то была в виде Lisp-файла. Вот как выглядел код:

Код:
[Выделить все]
 
;--- смещение относительно указанной точки ---
(defun RP (/ a bx by b)
     (setvar "cmdecho" 0)
     (initget 1)
     (princ "\n Выбери базовую точку: ")
     (setq a (getpoint))
     (initget 1)
     (setq bx (getint  "\n Смещение по X: "))
     (setq by (getint  "\n Смещение по Y: "))
     (setq b (list (+ (car a) bx)
                   (+ (cadr a) by)))
)
Где теперь находится этот код - затрудняюсь ответить. Возможно в каком-нибудь *.arx или в acad.exe.
Profan вне форума  
 
Непрочитано 17.11.2009, 14:03
#24
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


Profan, спасибо. Вот только Лисп-команды в LT версии не работают. Откуда она там взялась?
А кнопку надо сделать. Хотя бы для того, чтобы самому понять... Ещё вопрос - при сохранении CUI файла у меня сбивется расположение панелей. Вопрос глупый, но как этого избежать?
cancercat вне форума  
 
Непрочитано 17.11.2009, 14:06
#25
Рyslan


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


хехе, про офсет я забыл, точно
Рyslan вне форума  
 
Автор темы   Непрочитано 17.11.2009, 14:15
#26
Малявка


 
Регистрация: 28.02.2007
Егорьевск Моск.обл.
Сообщений: 206


cancercat, на одинаковые расстояния - я делаю массивом. Offcet у меня не проходит, ведь я копирую не одну линию, а сразу с текстом (назнание оси) и кружочком вокруг него.
Малявка вне форума  
 
Непрочитано 17.11.2009, 15:16
#27
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


Малявка, тады ой! Или вводи с ком. строки, или делай кнопку и вешай на неё макрос!
cancercat вне форума  
 
Автор темы   Непрочитано 17.11.2009, 15:19
#28
Малявка


 
Регистрация: 28.02.2007
Егорьевск Моск.обл.
Сообщений: 206


cancercat, так какой макрос именно для моего простого случая? Мне их накидали вагон и тележку.
Малявка вне форума  
 
Непрочитано 17.11.2009, 16:04
#29
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


Малявка, см. пост от Krieger, № 15 и прочитай dwg.ru/art/2
cancercat вне форума  
 
Автор темы   Непрочитано 17.11.2009, 16:53
#30
Малявка


 
Регистрация: 28.02.2007
Егорьевск Моск.обл.
Сообщений: 206


Спасибо!
Малявка вне форума  
 
Непрочитано 17.11.2009, 17:06
#31
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


"_from" это не команда, это привязка (или команда работающая как привязка). Её можно выбрать из контекстного меню с привязками, которое вызывается ПКМ с зажатой ctrl.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 17.11.2009, 17:30
#32
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


Krieger, спасибо! Хорошая вещь, надо будет использовать.
Малявка, обрати внимание!
cancercat вне форума  
 
Непрочитано 17.11.2009, 17:37
#33
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Вот видюшка вам. Сначала реализация моего лиспа из поста 5, потом, то как элементарно использовать макрос из поста 15.
Вложения
Тип файла: rar Multicopy.rar (595.9 Кб, 110 просмотров)
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 13.04.2010, 00:12
#34
МИНЗДРАВ

Oxypropane welder
 
Регистрация: 29.01.2008
Unix
Сообщений: 770


Подскажите пожалуйста. как сделать "копировать многократно" по умолчанию в акад 2002?
(тут http://forum.dwg.ru/showthread.php?t...hlight=copy%2A читалось. Хотелось-бы всётаки по умолчанию что-то сделать)
Команда _copy* что-то там ещё, из 2008го acada, почему-то в 2002ом - не работает...
МИНЗДРАВ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Многократное копирование примитива с указанием расстояния