|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
ЧАСЫ на Лиспе - Олимпийская задачка
Сообщений: n/a
|
||
Просмотров: 11641
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
И вид - спередии? Сбоку? Сзади? 3Д или 2Д?
И наручные? Или с кукушкой? И кукушка должна выскакивать и чего-то пищать или нет? И самое главное - пока часы работают, в каде можно будет работать или нет? ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Цитата:
За полгода может быть утрясутся условия задачи, потом за два дня код напишем, а оставшиеся полтора года уйдут на отлов багов. ПэЭс: для разнообразия попутно можно сделать песочную и солнечную версии. С последней, боюсь, могут возникнуть проблемы из за нехватки разрядности АКАД. Солнечную систему случайно никто 1:1 не моделировал в 3D ? |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>VK
Цитата:
Желающие могут написать прогу для визуализации движения небесных тел на AutoLISP ![]() Данилину предлагается нарисовать собственное виденье Марса и потренироваться в реалистичности рендеринга. |
|||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
ходящих Ищите и обрящете |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Да можно сделать то... И даже тикать будут... Только если на чистом Лиспе - то получится совершенно бестолковая ерунда. Во первых, использовать бесконечный цикл вроде "посмотреть скока время (в системе) -> перечертить (или повернуть) примитивы-стрелки" (чтоб не сбивать точность хода, вряд ли стоит делать через дилей). Естественно, никакие другие действия с этим документом (где работает часовой Лисп) сделать нельзя. Во вторых, Лисп работает только с активным документом, стало быть при переходе на другой документ чтото должно испортиться в этой системе. Может как то можно решить проблему с компиляцией в VLX, но очень не уверен, что получится.
Другое дело, если использовать внешнее по отношению к АКАДу приложение как часовой механизм, а АКАДу оставить скромную роль "циферблата со стрелками". Тогда в одном файле можно и на часы любоваться и план застройки Марса чертить.... |
|||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
Переименуй расширение на LSP :x |
|||
![]() |
|
||||
А они и впрямь нужны?
Можешь сам добавить или лучше сразу определить конечные рамки, в смысле, что нужно от этих часов... Можно и корпус в трехмерке сварганить или настоящий часовой механизм с шестеренками (чтоб было видно как работают). PS. Мне в этой затее было интересно реализовать более менее оптимальный код, с наименьшим количеством построений - в принципе, задача выполнена. ![]() |
||||
![]() |
|
||||
Цитата:
Я делал чистую демонстрацию - не думал, что ее будут использовать как будильник в акаде... PS. Сам то я использую "Chameleon Clock" - простой и не напрягает. |
||||
![]() |
|
||||
>Asys
Цитата:
Код:
Код:
>МВ Не понял... Что значит воплотить в картинку - эта программа выводит на экран циферблат нарисованный блоком на ограниченное время, а после чистит за собой файл... Правда время показывает системное - обновляет около 5 раз в секунду. Поясни, в чем проблема. |
||||
![]() |
|
||||
Посмотри здесь
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=19612AN |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
>Елпанов Евгений
Запустил на русском акаде и получил Цитата:
Былобы неплохо добавить что-то типа Код:
![]() |
|||
![]() |
|
||||
Регистрация: 12.01.2006
Донецк
Сообщений: 30
|
ЧАСЫ ИДУЩИЕ 10 секунд
;************************************************************ (defun *ERROR* () (command "_ZOOM" "_ALL" ) (command "_ERASE" "_w" '(-100.0 -100.0) '(100.0 100.0) "") (SetVar "FILEDIA" 1) (princ) ) ; end defun *error* ;*********************************************************** (defun C:PSW (/ A A1 A2 A3 A4 B1 T0 T1 T2 U U1 W1 W2 W3) (setvar "CMDECHO" 0) (command "_ZOOM" "_w" '(-100.0 -100.0) '(100.0 100.0)) (setq T1 (list 0.0 90.0)) (setq T2 (list 0.0 100.0)) (setq T0 (list 0.0 0.0)) (command "_LINE" T1 T2 "") (setq A (entlast)) (command "_ARRAY" A "" "_p" T0 60 "" "") ;*************************************************** (setq T1 (list 0.0 85.0)) (setq T2 (list 0.0 100.0)) (command "_PLINE" T1 "_w" 2.0 2.0 T2 "") (setq A (entlast)) (command "_ARRAY" A "" "_p" (list 0.0 0.0) 12 "" "") ;*************************************************** (repeat 10 (setq A (rtos (getvar "CDATE") 2 8)) (setq A1 (substr A 10 2)); Часы (setq A2 (substr A 12 2)); Минуты (setq A3 (substr A 14 2)); Cекунды (setq A4 A3) ;***************************************************** (setq B1 (+ (atoi A1) (/ (atoi A2) 60.0))) (setq U (- 90.0 (* B1 30.0))) (command "_PLINE" (polar T0 (G2R (+ 180.0 U)) 20.0) T0 "_w" 4.0 4.0 (polar T0 (G2R U) 50.0) "" ) (setq W1 (entlast)) ;***************************************************** (setq B1 (+ (atof A2) (/ (atof A3) 60.0) )) (setq U (- 90.0 (* B1 6.0))) (command "_PLINE" (polar T0 (G2R (+ 180.0 U)) 20.0) T0 "_w" 4.0 4.0 (polar T0 (G2R U) 80.0) "" ) (setq W2 (entlast)) ;***************************************************** (setq B1 (atof A3)) (setq U (- 90.0 (* B1 6.0))) (setq U1 (fix (- 90.0 (* B1 6.0)))) (command "_LINE" (polar T0 (G2R (+ 180.0 U)) 20.0) (polar T0 (G2R U) 100.0) "") (setq W3 (entlast)) ;***************************************************** (while (= A3 A4) (setq A (rtos (getvar "CDATE") 2 8)) (setq A4 (substr A 14 2)) ) ;***************************************************** (entdel W1) (entdel W2) (entdel W3) ); REPEAT (command "_ZOOM" "_ALL" ) (command "_ERASE" "_w" '(-100.0 -100.0) '(100.0 100.0) "") (SetVar "FILEDIA" 1) (princ) ) |
|||
![]() |
|
||||
Регистрация: 12.01.2006
Донецк
Сообщений: 30
|
ФУНКЦИИ перевода градусы в радианы и наоборот
;************************************************************ ; Функция переводит градусы в радианы ; Параметр - угол в градусах ;************************************************************(defun G2R (GG / AA) (setq AA (/ (* pi GG) 180.0)) ) ;END DEFUN ;************************************************************ ;************************************************************ ;************************************************************ ; Функция переводит радианы в градусы ; Параметр - угол в радианах (defun R2G (GG / AA) (setq AA (/ (* 180.0 GG) pi)) ) ;END DEFUN ;************************************************************************ |
|||
![]() |
|
||||
>PSW
1 У тебя, почему то, слетело форматирование - потерялись некоторые скобки. 2 После приведения в порядок п 1 нашел еще две ошибки в вытаскивании даты не все цифры доставались, пришлось заменить Код:
Код:
Код:
После всех доделок получились приятные часики... Код:
|
||||
![]() |
|
||||
Регистрация: 12.01.2006
Донецк
Сообщений: 30
|
Евгений, в исходном тексте программы вместо числа 8 появился смайлики рожицы. Видимо их надо было отключить, а за функцию G2R правильное замечание, они у меня прописаны в ACAD.LSP, и я постоянно ими пользуюсь забывая присоединить к программам.
|
|||
![]() |
|
||||
Цитата:
[ATTACH]1137150689.rar[/ATTACH] |
||||
![]() |
|
||||
Цитата:
Наверное имеет смысл уменьшить секундную отрисовав ее тонкой линией. |
||||
![]() |
|
||||
Цитата:
[ATTACH]1137152275.rar[/ATTACH] |
||||
![]() |