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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Извлечение из сложного списка строк числовых значений

Извлечение из сложного списка строк числовых значений

Ответ
Поиск в этой теме
Непрочитано 17.12.2008, 08:02 #1
Извлечение из сложного списка строк числовых значений
Макс_Кунгур
 
Регистрация: 10.12.2008
Сообщений: 122

Добрый день. Подскажите, пожалуйста, как в AutoLisp из списка ("0.7" "5.6" "13.4" "27.8" "29.6" "35.0") извлечь данные в числовое значение переменных, предположим s1=0.7, s2=5.6, s3=13.4, s4=27.8, s5=29.6, s6=35.0
Просмотров: 2927
 
Автор темы   Непрочитано 17.12.2008, 08:14
#2
Макс_Кунгур


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


Или из списка (("S") (0.7) (5.6) (13.4) (27.8) (29.6) (35.0)) извлечь данные в числовое значение переменных, предположим s1=0.7, s2=5.6, s3=13.4, s4=27.8, s5=29.6, s6=35.0
Макс_Кунгур вне форума  
 
Непрочитано 17.12.2008, 08:16
#3
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Код:
[Выделить все]
(defun test (lst)
  (mapcar '(lambda (x) (atof x)) lst)
)
Проверка:
Цитата:
_$ (test '("0.7" "5.6" "13.4" "27.8" "29.6" "35.0"))
(0.7 5.6 13.4 27.8 29.6 35.0)
Makswell вне форума  
 
Автор темы   Непрочитано 17.12.2008, 09:11
#4
Макс_Кунгур


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


Спасибо огромное, а как сейчас из этого списка каждое по отдельности число вывести в отдельные переменные, например, x1,x2,x3....
Макс_Кунгур вне форума  
 
Автор темы   Непрочитано 17.12.2008, 09:42
#5
Макс_Кунгур


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


вот так я выделил каждый элемент
(foreach sl lst
(setq sl1 (nth 0 sl))
(setq sl2 (nth 1 sl))
(setq sl3 (nth 2 sl))
(setq sl4 (nth 3 sl))
(setq sl5 (nth 4 sl))
(setq sl6 (nth 5 sl)))
это я понимаю пошагово, если значений 6 в списке, а если их будет меньше или больше, как это будет выглядеть?
Макс_Кунгур вне форума  
 
Непрочитано 17.12.2008, 10:37
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Если не секрет зачем нужны такая куча переменных, чем список не устраивает?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 17.12.2008, 11:29
#7
Макс_Кунгур


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


Мне нужен не весь список, а переменные по отдельности, с которыми я буду работать в дальнейшем с каждым числом индивидуально
Макс_Кунгур вне форума  
 
Непрочитано 17.12.2008, 12:03
#8
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Код:
[Выделить все]
(defun test (lst / n)
  (setq n 1)
  (foreach item	lst
    (set (read (strcat "s" (itoa n))) (atof item))
    (setq n (1+ n))
  )
 )
Makswell вне форума  
 
Автор темы   Непрочитано 17.12.2008, 12:09
#9
Макс_Кунгур


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


Спасибо, очень помогло. Скажи, пожалуйста, вот есть функция POLAR, определения точки T2 путем перемещения....У меня есть точка с координатами (x1,y1,z1). Как мне провести линию на расстояние r от этой точки, но только по оси Z. Т.е. должна образоваться точка с координатами (x1,y1,z2), где z2=z1-r
Макс_Кунгур вне форума  
 
Непрочитано 17.12.2008, 12:20
#10
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Второй аргумент функции polar - это угол, отсчитываемый от оси X в плоскости XY. Так что polar в твоём случае не поможет.
Makswell вне форума  
 
Автор темы   Непрочитано 17.12.2008, 12:26
#11
Макс_Кунгур


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


вот я спрашиваю как это сделать, используя другой метод. Результат 1- это нарисовать линию от точки (x,y,z1) до точки (x,y,z2), где z2=z1-r (r-произвольное расстояние, константа), результат 2 - нарисовать окружности с центрами в т. (x,y,z1), (x,y,z2), (x,y,z3).....
Макс_Кунгур вне форума  
 
Непрочитано 17.12.2008, 12:53
#12
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Да хотя бы так:
Код:
[Выделить все]
(vl-cmdf "_.LINE" pt (list (nth 0 pt) (nth 1 pt) (+ (nth 2 pt) r)) "")
где:
pt - трехмерная точка (LIST)
r - смещение по оси z (REAL)
Makswell вне форума  
 
Автор темы   Непрочитано 17.12.2008, 13:10
#13
Макс_Кунгур


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


Спасибо. Вопрос закрыт
Макс_Кунгур вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Извлечение из сложного списка строк числовых значений



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
структурированный список Holon Программирование 22 11.09.2007 14:09