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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. Копирование объектов между точками

Lisp. Копирование объектов между точками

Ответ
Поиск в этой теме
Непрочитано 08.06.2010, 23:33
Lisp. Копирование объектов между точками
Yuzer
 
Мозговой штурм
 
Рідна ненька - Україна, Харків
Регистрация: 26.10.2008
Сообщений: 5,705

Здравствуйте.
Сегодня столкнулся с трудностью: между двумя точками на одинаковом расстоянии нужно вставить n объектов.
Рисую линию, делю ее и вставляю по точкам объекты. Процесс долгий, тем более если количество объектов потом нужно менять (т.е. я их удаляю и заново повторяю процедуру).
Подскажите, пожалуйста, решение.
Просмотров: 8843
 
Непрочитано 09.06.2010, 10:18
#21
Diman111

промышл проектант
 
Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323


Чей лисп не помню - кажись с caduser из готовых программ брал. Могу и ошибаться.
Но делает то что вам надо - выбираем начальную и конечную точку и задаем количество копий.

Код:
[Выделить все]
(DEFUN C:dividecopy (/)
  (setvar "cmdecho" 0)
  (setq ss (ssadd))
  (setq ss (ssget))
  (setq pt1 (getpoint "\nНачальная точка: "))
  (setq pt2 (getpoint pt1 "\nКонечная точка: "))
  (setq dist (DISTANCE pt1 pt2))
  (setq alfa (ANGLE pt1 pt2))
  (setq N-divide (getint "\nКоличество копий: "))
  (setq dist-divide (/ dist (1+ N-divide)))
  (setq dist-divide-i dist-divide)
  (setq  i 1)
  (while (<= i N-divide)
    (setq Next-divide-pt (polar pt1 alfa dist-divide-i))
    (command "_.COPY" ss "" pt1 Next-divide-pt)
    (setq dist-divide-i (+ dist-divide-i dist-divide))
    (setq i (1+ i))
  )
  (setvar "cmdecho" 1)
  (princ)
)
Diman111 вне форума  
 
Непрочитано 09.06.2010, 11:23
#22
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Yuzer Посмотреть сообщение
C этим лиспом не получается...
Подгрузил лисп, прописываю в строке: copytr

Что делаю не так?
Подредактируй немного файл. Добавь выделенное красным. И почитай здесь Что такое это (vl-load-com) ?
Код:
[Выделить все]
(defun c:copytr ()
  (vl-load-com)
  (pl:copytr)
  (princ)
)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 10.06.2010 в 09:45.
VVA вне форума  
 
Автор темы   Непрочитано 09.06.2010, 14:35
#23
Yuzer

Мозговой штурм
 
Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705


Спасибо огромное!
Yuzer вне форума  
 
Непрочитано 09.06.2010, 17:12
#24
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Yuzer, Еще есть CopyM из Express Tools
Цитата:
Command: COPYM
Select objects: Select the objects to be copied
Base point: Specify a base point
Second point or [Repeat (last)/Divide/Measure/Array (dynamic)/Undo] <exit>:
Там и Divide и Measure. Исправленная версия от Алексея
Может будет интересен еще оди вариант: Alternative copy
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 09.06.2010, 20:52
#25
Yuzer

Мозговой штурм
 
Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705


VVA, в экспресах удобно, что есть базовая точка. Спасибо - не знал.
Если честно, то не понял в чем отличие версии Алексея (проверял на скорую руку).
Alternative copy подгрузил, но запустить не получилось (результат появился при заключении в скобки (nc), хотя должно было запустится сразу:
Цитата:
Команда: nc
Неизвестная команда "NC". Для вызова справки нажмите F1.

Команда: (nc)
; ошибка: no function definition: NC
Yuzer вне форума  
 
Непрочитано 09.06.2010, 21:33
#26
Nike

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


Цитата:
Сообщение от Yuzer Посмотреть сообщение
Команда: nc
Неизвестная команда "NC". Для вызова справки нажмите F1.
может все-таки "new-copy"? Где ты там нашел "NC"
Nike вне форума  
 
Автор темы   Непрочитано 09.06.2010, 21:54
#27
Yuzer

Мозговой штурм
 
Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705


Nike, начало лиспа:

Цитата:
defun c:nc ( / ss start next adoc _cmdecho oBjLst)
тем более по ссылке VVA есть маленький видеоролик

p.s. new-copy я тоже пробовал.
Yuzer вне форума  
 
Непрочитано 09.06.2010, 22:05
#28
Nike

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


аа, код со второй страницы..
У меня работает
Nike вне форума  
 
Непрочитано 09.06.2010, 22:15
#29
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Yuzer Посмотреть сообщение
Если честно, то не понял в чем отличие версии Алексея (проверял на скорую руку).
Ни в чем. Та тема называется "Ошибки Express Tools". В #27 посте была описана проблема. Будем надеяться, что Алексей ее исправил.

Цитата:
Сообщение от Yuzer Посмотреть сообщение
Alternative copy подгрузил, но запустить не получилось
Там 2 NC. Ты грузил этот? Может плохо скопировал? Иногда не захватывается скобка в начале или конце кода
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 09.06.2010, 22:28
#30
Yuzer

Мозговой штурм
 
Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705


Часть не копирнулась.
Спасибо за разъяснения.
Yuzer вне форума  
 
Непрочитано 09.06.2010, 23:56
#31
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Yuzer Посмотреть сообщение
Что делаю не так?
Все так...
в программе отсутствует функция (vl-load-com)
Ой, Можно ли сделать, чтоб сразу к новому можно было переходить... Или сообщения удалять? Хотя б последнее

Последний раз редактировалось gomer, 10.06.2010 в 00:03.
gomer вне форума  
 
Непрочитано 10.06.2010, 01:19
#32
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от gomer Посмотреть сообщение
сразу к новому можно было переходить...
См.аттач.

Цитата:
Сообщение от gomer Посмотреть сообщение
Или сообщения удалять? Хотя б последнее
Я случайно создал тему не в том разделе или случайно продублировал тему / пост. Что делать?
Миниатюры
Нажмите на изображение для увеличения
Название: 001.jpg
Просмотров: 82
Размер:	39.0 Кб
ID:	40587  
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.10.2011, 19:25
#33
Garand


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


Здравствуйте!
Имеется несколько иная задача: нужно расставить объекты через задаваемый интервал на определенном отрезке, но так, чтобы этот массив объектов разместился равноудаленно от его концов. (т.е., симметрично центру). Кто-нибудь сможет предложить решение? (а если еще такое же распределение по площади - вообще будет супер).
Garand вне форума  
 
Непрочитано 01.10.2013, 14:31
#34
Любознательный

Проектирование систем автоматизации, связи, сигнализации, организация электронного документооборота
 
Регистрация: 03.03.2005
Харьков
Сообщений: 20


Большая просьба доработать код программы kpblc'а (разрешение автора имеется) test, приведенной на http://forum.dwg.ru/showpost.php?p=580435&postcount=13, добавив проверку и выполнение следующего:
1 если дистанция между точками меньше или равна 10400, то количество сегментов 2,
если больше 10400, но меньше или равна 20800, то количество сегментов 4,
если больше 20800, но меньше или равна 31200, то количество сегментов 6 и т.д.
2 удалить все четные точки.

Если интересует для чего это - для прикидки расположения дымовых датчиков пожарной сигнализации на плане помещения, нормируемое максимальное расстояние от датчика до стены 5,3 м, между датчиками 10,5 м.

Буду премного благодарен.
Любознательный вне форума  
 
Непрочитано 01.10.2013, 14:44
1 | #35
Nike

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


Любознательный, мож тебе готовую программу подкинуть? http://dwg.ru/dnl/522
Nike вне форума  
 
Непрочитано 01.10.2013, 15:12
#36
Любознательный

Проектирование систем автоматизации, связи, сигнализации, организация электронного документооборота
 
Регистрация: 03.03.2005
Харьков
Сообщений: 20


Спасибо, изучаю.
Любознательный вне форума  
 
Непрочитано 01.10.2013, 15:15
#37
Profan


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


Nike, а еще какие-нибудь у тебя сырые проги есть?
Profan вне форума  
 
Непрочитано 01.10.2013, 15:21
#38
Nike

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


Profan, есть одна.
"nanoCAD" называется.
Nike вне форума  
 
Непрочитано 01.10.2013, 15:23
#39
Profan


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


Тьфу, блин.
Profan вне форума  
 
Непрочитано 01.10.2013, 15:48
#40
Nike

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


Profan, навалом всякого барахла. Всё отсюда да с кадюзера. А что интересует?
Nike вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. Копирование объектов между точками



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Копирование, сортировка, переименование листов (layout) VVA Готовые программы 115 28.03.2025 20:59
Lisp: Обработка объектов и получение списка свойств (координаты точек) Nanotronic LISP 2 23.04.2009 23:07
LISP. Распределение по слоям объектов dim.,hatch,text Суханова LISP 5 28.08.2008 13:31
Как определить расстояние между 2 точками по spline? Хотабыч Программирование 5 22.01.2006 15:33
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19