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

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

Комрады, не работает простой лисп по копированию отрезка.

Ответ
Поиск в этой теме
Непрочитано 04.09.2015, 21:13 #1
Комрады, не работает простой лисп по копированию отрезка.
MegaMost
 
Регистрация: 03.09.2015
Сообщений: 15

Лисп должен нарисовать отрезок и скопировать его заданное количество раз.

Код:
[Выделить все]
 (defun c:md01 ()
  (setq a (list 0 0)
	b (list 1 1))
  
  (command "отрезок" a b "")
  (setq m (getreal "\n расстояние между линиями")
	j (getint "\n количество повторений"))
  (repeat j
    (setq rast (* j m ) 
	  vt (polar a 0 rast))
    (command "Копировать" b "" a vt))
  
  (setvar "cmdecho" 1)
  (princ)
)
Просмотров: 2327
 
Непрочитано 04.09.2015, 22:04
#2
gomer

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


Цитата:
Сообщение от MegaMost Посмотреть сообщение
ировать" b
не нужно кастрировать команды...
gomer вне форума  
 
Автор темы   Непрочитано 04.09.2015, 22:31
#3
MegaMost


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


забыл уточнить, что на деле получается, что отрезок копируется только на последнем цикле. Т.е. если задать расстояние между отрезками 1, а кол-во повторений 3, то скопируется один раз с расстоянием 3

----- добавлено через 52 сек. -----
Цитата:
Сообщение от gomer Посмотреть сообщение
не нужно кастрировать команды...
Что это означает
MegaMost вне форума  
 
Непрочитано 04.09.2015, 23:03
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от MegaMost Посмотреть сообщение
Т.е. если задать расстояние между отрезками 1, а кол-во повторений 3, то скопируется один раз с расстоянием 3
Не-а. Там их 3 штуки будет в одном месте. Расстояние на каждой итерации одно и то же число.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 04.09.2015, 23:11
#5
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от MegaMost Посмотреть сообщение
Комрады, не работает простой лисп по копированию отрезка.
Ок, будем знать
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 05.09.2015, 05:49
#6
Krieger

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


Код:
[Выделить все]
  (defun c:md01 ()
  (setq a (list 0 0)
	b (list 1 1))
  
  (command "_line" a b "")
  (setq m (getreal "\n расстояние между линиями: ")
	j (getint "\n количество повторений: "))
  (repeat j
    (setq rast (* j m ) 
	  vt (polar a 0 rast))
    (command "_copy" b "" a vt)
    (setq j (1- j)))
  
  (setvar "cmdecho" 1)
  (princ)
)
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 05.09.2015, 11:17
#7
gomer

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


Цитата:
Сообщение от Krieger Посмотреть сообщение
"_copy" b
Нельзя так просто взять и скопировать b. И вообще в науке нет места религии...

Код:
[Выделить все]
 (defun c:md01 ()

  (setq	m (getreal "\nРасстояние между линиями: ")
	j (getint "\nКоличество повторений: ")
  )

  (setq	a (list 0 0)
	b (list 1 1)

  )
  
  (setvar "cmdecho" 0)
  (command "_line" a b "")

  (repeat j
    (command "_.copy" "_l" "" a (polar a 0 m))
  )

  (setvar "cmdecho" 1)
  (princ)
)
gomer вне форума  
 
Непрочитано 05.09.2015, 20:18
#8
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,009


команда "_arrayrect" схожа по действию
Сергей812 вне форума  
 
Автор темы   Непрочитано 07.09.2015, 00:15
#9
MegaMost


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


Цитата:
Сообщение от gomer Посмотреть сообщение
(command "_.copy" "_l" "" a (polar a 0 m))
Ув. гуру автокада, я вырос на русскоязычных версиях и команды тоже на русском языке ввожу, поэтому ВОПРОС: что означает "_l" и какой буквой заменить?
MegaMost вне форума  
 
Непрочитано 07.09.2015, 00:23
#10
Кулик Алексей aka kpblc
Moderator

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


http://autolisp.ru/2010/03/04/localization/ - так что я бы не стал менять английские элементы на локализованные.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.09.2015, 00:23
#11
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,009


Судя по коду - это Last. Т.е. строиться отрезок, потом копируется в цикле. Первый раз с построенного отрезка, затем - с последнего экземпляра скопированного.
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Комрады, не работает простой лисп по копированию отрезка.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчет геметрических характеристик сечений, черчение елипс инерции - не работает лисп Student LISP 14 17.02.2014 10:27
ЛИСП: не работает из лиспа вызов команды _clip cj_lex LISP 2 21.04.2012 16:32
почему то не работает Лисп Август LISP 15 13.04.2011 09:42
Не работает код ЛИСП: невозможно создать новые слои... Иван Hayes LISP 7 09.10.2010 20:57
Нужен лисп (удлиннитель отрезка) dextron3 LISP 22 16.07.2007 11:51