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

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

Автолисп округление числа

Ответ
Поиск в этой теме
Непрочитано 01.07.2015, 16:17 #1
Автолисп округление числа
DENBASS2004
 
Регистрация: 24.06.2009
Сообщений: 94

Добрый день. Подскажите. В строке (setq L2 (sqrt (* 4 (- (expt Rn 2) (expt (- Rn L 63) 2))))) я вычисляю цифру. Она получается дробным числом. Вы можете подставить вместо букв любые цифры. Просто мне нужно что бы работала в таком формате, у меня все буквы определены ранее. Затем есть строка (atoi "L2"), здесь L2 должна округляться до целой. Но у меня просто пишет 0, не воспринимает букву. Если ставлю просто число то работает. (atoi (list L2)) тоже не принимает. Как нужно прописать эту строку, что бы он воспринимал ее как ранее рассчитанную величину?
Просмотров: 4121
 
Непрочитано 01.07.2015, 16:19
#2
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от DENBASS2004 Посмотреть сообщение
не воспринимает букву
И не будет. Слушай, DENBASS2004, купи три книжки: по программированию вообще, Полещука по лиспу и "САПР на базе AutoCAD". И изучай их. Заодно разберешься, что такое переменная, что такое функция и далее.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 01.07.2015, 16:30
#3
DENBASS2004


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
И не будет. Слушай, DENBASS2004, купи три книжки: по программированию вообще, Полещука по лиспу и "САПР на базе AutoCAD". И изучай их. Заодно разберешься, что такое переменная, что такое функция и далее.
Есть у меня Полищук, по нему и учусь. Но некоторые моменты пока пойму много времени уходит. Понимаю что здесь что то элементарное и специалист мне бы подсказал за пару секунд. А вообще форум для чего создан? Подсказывать или просто тыкать людям какие они бестолковые??? Ну не силен я в программировании, изучаю. Но не все получается.
DENBASS2004 вне форума  
 
Непрочитано 01.07.2015, 16:34
#4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


Вот Вам и советуют сначала элементарные вещи в книжках прочитать, там понятнее и комплексно все написано. А на форуме, обрывки и ласкутки по сложным моментам. Это как сравнивать школу и программу "Своя игра". Оно для разного.
Boxa вне форума  
 
Непрочитано 01.07.2015, 16:40
#5
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от DENBASS2004 Посмотреть сообщение
Понимаю что здесь что то элементарное и специалист мне бы подсказал за пару секунд. А вообще форум для чего создан?
Всем начинающим надо начинать с темы http://forum.dwg.ru/showthread.php?t=22894
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 01.07.2015, 16:42
#6
DENBASS2004


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
Вот Вам и советуют сначала элементарные вещи в книжках прочитать, там понятнее и комплексно все написано. А на форуме, обрывки и ласкутки по сложным моментам. Это как сравнивать школу и программу "Своя игра". Оно для разного.
Спасибо за помощь!

----- добавлено через ~33 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
И не будет. Слушай, DENBASS2004, купи три книжки: по программированию вообще, Полещука по лиспу и "САПР на базе AutoCAD". И изучай их. Заодно разберешься, что такое переменная, что такое функция и далее.
Вот он волшебный полищук сделал следующее
(setq L1 (sqrt (* 4 (- (expt Rn 2) (expt (- Rn L) 2)))))
(setq L2 (rtos L1 2 0))
Округлил до целого, но блин пришлось новую переменную заводить.
DENBASS2004 вне форума  
 
Непрочитано 01.07.2015, 17:29
#7
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от DENBASS2004 Посмотреть сообщение
Округлил до целого, но блин пришлось новую переменную заводить.
А что, одной переменной никак?
(setq L1 (rtos (sqrt (* 4 (- (expt Rn 2) (expt (- Rn L) 2)))) 2 0))
roaa вне форума  
 
Непрочитано 01.07.2015, 17:31
#8
printme


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


В Вашем случае правильно не (atoi "L2"), а (atoi L2), без кавычек, иначе лисп пытается преобразовать в число строку "L2". Это работает если в переменной L2 расположена именно строка. Если Вам надо преобразовать вещественное число в целое используя промежуточное преобразование в строку, то сначала преобразуйте вещественное число в строку, а потом строку в целое: (atoi (rtos L2)).

Последний раз редактировалось printme, 01.07.2015 в 17:42.
printme вне форума  
 
Непрочитано 01.07.2015, 17:34
#9
frostmourn


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


А 63 куда делось?
Цитата:
Сообщение от DENBASS2004 Посмотреть сообщение
(setq L2 (sqrt (* 4 (- (expt Rn 2) (expt (- Rn L 63) 2)))))
frostmourn вне форума  
 
Автор темы   Непрочитано 02.07.2015, 06:09
#10
DENBASS2004


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


Цитата:
Сообщение от roaa Посмотреть сообщение
setq L1 (rtos (sqrt (* 4 (- (expt Rn 2) (expt (- Rn L) 2)))) 2 0))
Да, сработало, вчера сам добил но уже дома. Вообще обнаружил одну вещь. На работе у меня автокад 2015, а дома 2009. Так вот дома все работает, а на работе не все. Например дома у меня режет балку по заданной плоскости, а на работе вообще ни как не реагирует на эту команду.
DENBASS2004 вне форума  
 
Непрочитано 02.07.2015, 08:31
#11
VVA

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


Цитата:
Сообщение от DENBASS2004 Посмотреть сообщение
На работе у меня автокад 2015, а дома 2009. Так вот дома все работает, а на работе не все.
На 99% проблема с command/command-s http://forum.dwg.ru/showthread.php?p...98#post1328098
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 02.07.2015, 09:00
#12
DENBASS2004


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


Цитата:
Сообщение от VVA Посмотреть сообщение
На 99% проблема с command/command-s
Спасибо попробую. Да, напридумывают умные головы что нибудь, а остальным подстраивайся под это
DENBASS2004 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Автолисп округление числа



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Округление числа CB Библиотека функций 19 05.12.2022 05:57
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Сквозная нумерация динамических блоков zenon Программирование 214 28.08.2020 08:45
Оптимизация обработки большого числа элементов АлексЮстасу Программирование 127 05.10.2017 01:18