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

Вернуться   Форум 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.
Просмотров: 1972046
 
Непрочитано 13.10.2012, 21:25
1 | #1921
gomer

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


(command "_pline" "0,3.0902" "1.3876,5.7295" "-1.3876,5.7295" "_close")
(command "_array" "last" "" "p" "0,0" "5" "360" "_y" "")
gomer вне форума  
 
Непрочитано 13.10.2012, 21:28
#1922
Кот Пушок

Механик-конструктор
 
Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25


Спасибо!

Надо же, такое пропустил...
Смешно даже.
Кот Пушок вне форума  
 
Непрочитано 14.10.2012, 21:23
#1923
Кулик Алексей aka kpblc
Moderator

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


gomer, у тебя код какой-то странный... Часть кода универсальна, часть - только для английской версии.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.10.2012, 23:50
#1924
gomer

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


А, да, ну, не мое, не жало
это такое домашнее задание, пусть сам разбирается
gomer вне форума  
 
Непрочитано 15.10.2012, 02:10
#1925
Кот Пушок

Механик-конструктор
 
Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25


И еще вопрос.
Создаю новый слой:
(COMMAND "_layer" "_n" "MH-Hidden-Medium" "_c" "55" "MH-Hidden-Medium" "")

или:
(COMMAND "_layer" "_n" "MH-Center" "_c" "115" "MH-Center" "")

В первом случае нужна линия hidden, во втором - center.

Как это записать, чтобы заработало?

В выделенным красным цветом местах пытался писать "_h" "_hidden" "hidden" "_c" "_center" "center" - ничего не получилось.

А таки да - у меня английская версия автокада.
Кот Пушок вне форума  
 
Непрочитано 15.10.2012, 02:30
1 | #1926
gomer

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


(command "_layer" "_n" "MH-Hidden-Medium" "_c" "55" "MH-Hidden-Medium" "_l" "HIDDEN" "MH-Hidden-Medium" "")
gomer вне форума  
 
Непрочитано 15.10.2012, 04:11
#1927
Кот Пушок

Механик-конструктор
 
Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25


Цитата:
Сообщение от gomer Посмотреть сообщение
(command "_layer" "_n" "MH-Hidden-Medium" "_c" "55" "MH-Hidden-Medium" "_l" "HIDDEN" "MH-Hidden-Medium" "")
Спасибо огромное!
Теперь понял, что _с было для определения цвета, а я посчитал, что это для сплошной линии...

Красота!

Теперь буду шагать дальше.
Кот Пушок вне форума  
 
Непрочитано 15.10.2012, 08:04
#1928
gomer

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


Цитата:
Сообщение от Кот Пушок Посмотреть сообщение
Красота!

Теперь буду шагать дальше.
Шагай, только смотри что тебе акад пишет
gomer вне форума  
 
Непрочитано 16.10.2012, 21:29
#1929
Кот Пушок

Механик-конструктор
 
Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25


Еще вопрос, будьте добры, пожалуйста.
В списке слоёв имеется слой:

(command "_layer" "_n" "Worklines" "_c" "53" "Worklines" "_l" "continuous" "Worklines" "")

Его нужно запретить для печати.
Как это записать в Лиспе?
Кот Пушок вне форума  
 
Непрочитано 16.10.2012, 22:13
#1930
gomer

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


Цитата:
Сообщение от Кот Пушок Посмотреть сообщение
Его нужно запретить для печати.
Как это записать в Лиспе?
я же сказал см. командную строку, есть опция Plot (Plot/No Plot), а дальше по аналогии, что сложного?
gomer вне форума  
 
Непрочитано 16.10.2012, 22:50
#1931
Кулик Алексей aka kpblc
Moderator

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


А вот не проще ли создавать / модифицировать слой без командных методов?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.10.2012, 23:00
#1932
Кот Пушок

Механик-конструктор
 
Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25


Цитата:
Сообщение от gomer Посмотреть сообщение
я же сказал см. командную строку, есть опция Plot (Plot/No Plot), а дальше по аналогии, что сложного?
Не сложно, когда знаешь, как записать, чтобы лисп работал.

"без командных методов". Один слой создать можно. Да и несколько не проблема.

Я делаю заготовку шаблона из 50-ти, который будет загружаться при начале работы.

Последний раз редактировалось Кот Пушок, 16.10.2012 в 23:21.
Кот Пушок вне форума  
 
Непрочитано 16.10.2012, 23:30
#1933
Кулик Алексей aka kpblc
Moderator

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


А потом к файлу, с таким трудом подготовленному, будет применен _.purge. И все, аллес!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.10.2012, 23:43
#1934
Кот Пушок

Механик-конструктор
 
Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А потом к файлу, с таким трудом подготовленному, будет применен _.purge. И все, аллес!
Спасибо за помощь.

Премного благодарен.
Кот Пушок вне форума  
 
Непрочитано 17.10.2012, 00:02
#1935
Кулик Алексей aka kpblc
Moderator

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


Как один из вариантов: http://kpblc.blogspot.com/2009/07/txt.html
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.10.2012, 00:10
#1936
Кот Пушок

Механик-конструктор
 
Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Как один из вариантов: http://kpblc.blogspot.com/2009/07/txt.html
Спасибо за информацию. С работы у меня, к сожалению, не открывается, посмотрю дома.
Любая информация будет мне на данном этапе полезна - грЫзём гранит науки.

Сейчас записал так:

(command "_layer" "_n" "Worklines" "_c" "53" "Worklines" "_l" "continuous" "Worklines" "_plot" "no" "Worklines" "")

Заработало.

Уря!

Дальше буду изучать, как защитить созданный список слоёв от редактирования.
Кот Пушок вне форума  
 
Непрочитано 17.10.2012, 00:17
#1937
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Кот Пушок Посмотреть сообщение
как защитить созданный список слоёв от редактирования.
Вариант 1: поместить его напрямую в код.
Вариант 2: поместить настройки в сторонний текстовый файл, располагаемый на сервере, и файл закрыть от редактирования.
Вариант 3: поместить настройки в сторонний dws-файл, располагаемый на сервере, и файл подключать автоматически
Вариант 4: поместить настройки в сторонний dwg-файл, и-далее-все-то-же-самое
Вариант 5: ...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.10.2012, 00:32
#1938
Кот Пушок

Механик-конструктор
 
Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вариант 5: ...
Да, тут есть над чем работать.

Я видел список слоёв, под которым помещен отдельный "список комманд", запрещающих редактирование.
Не пробовал еще, как он работает, да и прочитать эти команды я пока не могу.

Ну, да что-то будет сделанно.
Даже если и применить Purge All , можно потом перезагрузить лисп, и слои вернутся на место.
Так што - буду работать...
Кот Пушок вне форума  
 
Непрочитано 17.10.2012, 01:16
#1939
gomer

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


Цитата:
Сообщение от Кот Пушок Посмотреть сообщение
Не сложно, когда знаешь, как записать, чтобы лисп работал.
важно не столько знать как, а понимать что ты хочешь + курить мануалы
Кот Пушок, ну вот ты уже знаешь как создавать слой с опциями, даже несколькими, как их добавлять в конец лисп-выражения, печатаемость слоя - тоже опция, чтоб ее применить, ее также надо добавить как и цвет, тип линии... Просто вызови команду -layer и смотри последовательность ввода, чтоб сделать слой непечатаемым
gomer вне форума  
 
Непрочитано 17.10.2012, 01:30
#1940
Кот Пушок

Механик-конструктор
 
Регистрация: 13.10.2012
Everett, WA, USA
Сообщений: 25


Цитата:
Сообщение от gomer Посмотреть сообщение
Просто вызови команду -layer и смотри последовательность ввода, чтоб сделать слой непечатаемым
Это я делал.
Я знаю, как работать с коммандной строкой.
А вот как записать - не сразу понял.

Писал "_No plot" "N" "plot", еще чего-то, пока не додумался до "_plot" "no"

Не, я ж конешно, понимаю, што гуру любят повыделоваться над новичками, тута ничего не поделаешь.

Но вот почему я такой дурной - если меня что-то спросят, я возьму, да и расскажу.
Кот Пушок вне форума  
Ответ
Вернуться   Форум 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