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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

Ответ
Поиск в этой теме
Непрочитано 20.07.2008, 20:12
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)
Red Nova
 
ՃԱՐՏԱՐԱԳԵՏ, Տ.Գ.Թ.
 
Торонто
Регистрация: 23.10.2007
Сообщений: 1,980

Со школы не ладится у меня с программированием. Все предметы щелкал, а на экзамене по информатике (Visual foxpro) программку типа суммирования столбцов списал у соседа (это уже в университете).
Не смотря на эте намерен научится писать программы для Автокада на лиспе, скачал книгу Хювенена, несколько примеров создания программ, но после получасового “смотрения” таких книг мое мышление явно притормаживает.
Решил пойти другим путем.
Нашел самый короткий лисп из моей коллекции, и прошу программистов с этого форума пошагово объяснить какой символ что означает. Надеюсь на вашу помощь.


Код:
[Выделить все]
(defun c:make-blocks-explodeable (/ adoc)
  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-startundomark
  (vlax-for blk_def (vla-get-blocks adoc)
    (if (and (equal (vla-get-isxref blk_def) :vlax-false)
             (equal (vla-get-islayout blk_def) :vlax-false)
             ) ;_ end of and
      (vl-catch-all-apply '(lambda () (vla-put-explodable blk_def :vlax-true)))
      ) ;_ end of if
    ) ;_ end of vlax-for
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
_____________________________________________________________________________________________________________

Прошло много лет и топик теперь представляет из себя площадку для обучения азов программирования для многих начинающих.
Так что начинающие лиспогрызы приветствуются .
__________________
Блог

Последний раз редактировалось Red Nova, 12.07.2017 в 05:43.
Просмотров: 1965811
 
Непрочитано 27.10.2015, 14:48
#2761
Кулик Алексей aka kpblc
Moderator

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


Pavel_GP, у меня уже второй день на работе завал. С тобой поделиться задачками?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.10.2015, 14:58
#2762
Pavel_GP

Инженер-гидрограф
 
Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170


Я жду, а не требую, инет на работе упал, сижу на смартфоне.
__________________
AutoCAD Civil 3D 2012г. 32-разрядная.
Pavel_GP вне форума  
 
Непрочитано 27.10.2015, 15:25
#2763
Jerald

Конструктор
 
Регистрация: 04.04.2007
Киев
Сообщений: 536


Цитата:
Сообщение от ProPeller Посмотреть сообщение
например
Код:
[Выделить все]
 (setvar "cecolor" "1")
А как рандом задать в диапазоне?
Jerald вне форума  
 
Непрочитано 27.10.2015, 15:27
#2764
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Jerald Посмотреть сообщение
А как рандом задать в диапазоне?
Какой диапазон?
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 27.10.2015, 15:32
#2765
Jerald

Конструктор
 
Регистрация: 04.04.2007
Киев
Сообщений: 536


Любой. Дайте синтаксис. Я сам разберусь.
Последовательно переключаться между цветами, нажимая на одну кнопку, я так понимаю посложнее будет, так как где-то придётся хранить переменную последнего значения?
Jerald вне форума  
 
Непрочитано 27.10.2015, 15:39
1 | #2766
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Jerald Посмотреть сообщение
Любой. Дайте синтаксис. Я сам разберусь.
Любой, так любой. Разбирайтесь.
Код:
[Выделить все]
 (substr (rtos (getvar "cdate") 2 8) 16)
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 27.10.2015, 16:09
#2767
gomer

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


Цитата:
Сообщение от Pavel_GP Посмотреть сообщение
Что скажешь по коду
что тут говорить, печальный копипаст...
gomer вне форума  
 
Непрочитано 27.10.2015, 16:49
#2768
Pavel_GP

Инженер-гидрограф
 
Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170


Цитата:
Сообщение от gomer Посмотреть сообщение
что тут говорить, печальный копипаст...
Ты лучше по делу бы сказал, а языком чесать каждый может
Слова твои ничем не подкреплены, опять болтовня...
Подскажи решение, если есть что сказать?
__________________
AutoCAD Civil 3D 2012г. 32-разрядная.
Pavel_GP вне форума  
 
Непрочитано 27.10.2015, 20:14
#2769
gomer

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


Цитата:
Сообщение от Pavel_GP Посмотреть сообщение
Ты лучше по делу бы сказал, а языком чесать каждый может
Слова твои ничем не подкреплены, опять болтовня...
Подскажи решение, если есть что сказать?
Increase Size Decrease Size Нажмите для просмотра
http://www.youtube.com/watch?v=goRyvCyikNwзы, что тут говорить, когда ты не хочешь понимать, что, где, куда и зачем ты копипастишь. может ты спец по дельфинам, но в лиспе ты бегиннер, так что оставь свое высокомерие и rtfm
зызы от меня тебе только один совет: не все, что ты видишь, достойно подражания и не все выглядит так, как ты это себе представляешь
gomer вне форума  
 
Непрочитано 28.10.2015, 08:30
#2770
Pavel_GP

Инженер-гидрограф
 
Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170


Цитата:
Сообщение от gomer Посмотреть сообщение
бла бла бла
no comments...
Я не думал, что на таком специфическом форуме могут быть тролли и флудерасты, которые кроме своего носа ничего не видят, даже название топика, жаль...
__________________
AutoCAD Civil 3D 2012г. 32-разрядная.
Pavel_GP вне форума  
 
Непрочитано 28.10.2015, 10:39
#2771
Jerald

Конструктор
 
Регистрация: 04.04.2007
Киев
Сообщений: 536


Цитата:
Сообщение от ProPeller Посмотреть сообщение
(substr (rtos (getvar "cdate") 2 8) 16)
Как понять, в каком это диапазоне?

Вот такая конструкция разве не должны работать?
(setvar "cecolor" "(substr (rtos (getvar "cdate") 2 8) 16)")
Jerald вне форума  
 
Непрочитано 28.10.2015, 11:03
#2772
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Jerald Посмотреть сообщение
Как понять, в каком это диапазоне?
Вы, вроде как, грозились разобраться самостоятельно. Вам дали алгоритм. К чему теперь эти вопросы?


Цитата:
Сообщение от Jerald Посмотреть сообщение
Вот такая конструкция разве не должны работать?
(setvar "cecolor" "(substr (rtos (getvar "cdate") 2 8) 16)")
Так работать не будет. Из (substr (rtos (getvar "cdate") 2 8) 16) уже полчается строка. Заключать данное выражение в кавычки, неминуемо приведет к ошибке.
Код:
[Выделить все]
 (setvar "cecolor" (substr (rtos (getvar "cdate") 2 8) 16))
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 28.10.2015, 11:07
#2773
Jerald

Конструктор
 
Регистрация: 04.04.2007
Киев
Сообщений: 536


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Вы, вроде как, грозились разобраться самостоятельно. Вам дали алгоритм. К чему теперь эти вопросы?
Сбрехал нечаянно. Но, синтаксис выражения в программировании обычно не так дают. А с указанием переменных и регулярных выражений.
Jerald вне форума  
 
Непрочитано 28.10.2015, 11:30
#2774
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Jerald Посмотреть сообщение
Но, синтаксис выражения в программировании обычно не так дают.
Ну вам-то виднее, как синтаксис дают. Странно, что вы тогда не можете решить простейших задач.

Вы хотели с переменными? Вот вам с переменными. С Глобальными!

Код:
[Выделить все]
 (setq RndCol (substr (rtos (getvar "cdate") 2 8) 16))
(setvar "cecolor" RndCol)
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 28.10.2015, 13:51
#2775
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Offtop: Когда мы с братом или с сестрой в детстве ссорились или даже дрались, бабушка поговаривала: "Один задириха, другой неспустиха"

Цитата:
Сообщение от Jerald Посмотреть сообщение
Цитата:
Сообщение от ProPeller Посмотреть сообщение
(substr (rtos (getvar "cdate") 2 8) 16)
Как понять, в каком это диапазоне?
Чтобы понять, в каком это диапазоне, нужно понять, что это вообще такое. А это - подстрока (начиная с 16-го символа) строки, образованной переводом переменной CDATE в строку посредством функции rtos с округлением до 8 знаков после запятой. И если посетить в Сети буквально пару-тройку страниц по теме, то можно понять, что эти два последних символа обозначают сотые доли секудны текущего времени. Соответственно интервал, подразумеваемый ProPeller'ом - от "00" (что соответствует значению "ПоБлоку") до "99". Правда, в зависимости от значения переменной DIMZIN строка, например "10" может превратиться в "1", что в данном случае не критично, ибо нужны случайные числа, но она также может превратиться и в просто "" при "00", а такое значение переменной CECOLOR системой отвергнется. Не универсальное, однако, решение - в одном случае из ста вылетит с ошибкой, если DIMZIN установлен в 8, как по умолчанию.
skkkk вне форума  
 
Непрочитано 28.10.2015, 13:59
#2776
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от skkkk Посмотреть сообщение
Не универсальное, однако, решение
Дык я и хотел помочь. Написал бы ему нормальный рандом в диапазоне от 0-255 и было бы счастье, а мне сказали мол "дай алгоритм" и все тут. Вот я и дал.
Offtop: Просто на работе куча таки "пассажиров", которые сначала делают вид, что все поняли, а потом начинаю с вопросами бегать. Это у меня уже рефлекс наверное. Я так-то не злой))
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 28.10.2015, 14:18
#2777
Pavel_GP

Инженер-гидрограф
 
Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170


Подскажите с помощью функции inters, возможно найти координаты точки тх, если известны координаты точек (1-4)? (Пример см. вложение)
спс.
Миниатюры
Нажмите на изображение для увеличения
Название: точка пересечения.png
Просмотров: 22
Размер:	5.7 Кб
ID:	159373  
__________________
AutoCAD Civil 3D 2012г. 32-разрядная.
Pavel_GP вне форума  
 
Непрочитано 28.10.2015, 14:30
1 | #2778
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Pavel_GP Посмотреть сообщение
Подскажите с помощью функции inters, возможно найти координаты точки тх, если известны координаты точек (1-4)? (Пример см. вложение)
спс.
Последним аргументом укажите nil

Например:

Код:
[Выделить все]
 (inters pnt1 pnt2 pnt3 pnt4 nil)
__________________
Автоматизация должна быть автоматической.
ProPeller вне форума  
 
Непрочитано 28.10.2015, 16:15
#2779
Jerald

Конструктор
 
Регистрация: 04.04.2007
Киев
Сообщений: 536


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Ну вам-то виднее, как синтаксис дают. Странно, что вы тогда не можете решить простейших задач.

Вы хотели с переменными? Вот вам с переменными. С Глобальными!

Код:
[Выделить все]
 (setq RndCol (substr (rtos (getvar "cdate") 2 8) 16))
(setvar "cecolor" RndCol)
Вы получаете случайное число взятием остатка от деления текущего времени? И вы делаете это как бы "вручную"? Разве в лиспе нету функции, которая это всё делает сама?

Вот, к примеру, рандом в php
int rand ( int $min , int $max )

Вот в C++
int a = random(N); //генерит число в промежутке [0; N)
Jerald вне форума  
 
Непрочитано 28.10.2015, 16:22
#2780
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от Jerald Посмотреть сообщение
Разве в лиспе нету функции, которая это всё делает сама?
К сожалению нет.

Может вас спасет вот эта программка, будет как
Цитата:
функция, которая это всё делает сама
__________________
Автоматизация должна быть автоматической.

Последний раз редактировалось ProPeller, 28.10.2015 в 16:30.
ProPeller вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу)

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Сейсмозащита и сейсмоизоляция существующих, построенных зд. IANationalInformAgentstvo Прочее. Архитектура и строительство 216 20.01.2015 16:51
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46